aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Changelog6
-rw-r--r--assets/dirt.pngbin0 -> 578 bytes
-rw-r--r--assets/door.pngbin255 -> 280 bytes
-rw-r--r--assets/maybeplayer.pngbin0 -> 2898 bytes
-rw-r--r--include/common.h13
-rw-r--r--include/ui.h11
-rw-r--r--main.cpp20
-rw-r--r--src/common.cpp10
-rw-r--r--src/entities.cpp7
-rw-r--r--src/gameplay.cpp2
-rw-r--r--src/inventory.cpp5
-rw-r--r--src/ui.cpp6
-rw-r--r--src/world.cpp25
-rw-r--r--xcf/dirt.xcfbin0 -> 1239 bytes
-rw-r--r--xcf/door.xcfbin1404 -> 1628 bytes
-rw-r--r--xcf/maybeplayer.xcfbin3117 -> 7564 bytes
16 files changed, 66 insertions, 39 deletions
diff --git a/Changelog b/Changelog
index c894c5c..d1fac71 100644
--- a/Changelog
+++ b/Changelog
@@ -420,3 +420,9 @@
- fixed fading bugs
- continued fixing general game bugs
- fixed structure spawn issues
+
+12/15/2015:
+===========
+
+ - began/continued work on original player sprite
+ - began working on dirt textures
diff --git a/assets/dirt.png b/assets/dirt.png
new file mode 100644
index 0000000..04c87b6
--- /dev/null
+++ b/assets/dirt.png
Binary files differ
diff --git a/assets/door.png b/assets/door.png
index 2a8b0dd..582a52d 100644
--- a/assets/door.png
+++ b/assets/door.png
Binary files differ
diff --git a/assets/maybeplayer.png b/assets/maybeplayer.png
new file mode 100644
index 0000000..ee0e49d
--- /dev/null
+++ b/assets/maybeplayer.png
Binary files differ
diff --git a/include/common.h b/include/common.h
index 31126d7..08ec73f 100644
--- a/include/common.h
+++ b/include/common.h
@@ -160,4 +160,17 @@ void safeSetColor(int r,int g,int b);
void safeSetColorA(int r,int g,int b,int a);
+/**
+ * We've encountered many problems when attempting to create delays for triggering
+ * the logic function. As a result, we decided on using the timing libraries given
+ * by <chrono> in the standard C++ library. This function simply returns the amount
+ * of milliseconds that have passed sine the epoch.
+ */
+
+#ifdef __WIN32__
+#define millis() SDL_GetTicks()
+#else
+unsigned int millis(void);
+#endif // __WIN32__
+
#endif // COMMON_H
diff --git a/include/ui.h b/include/ui.h
index 5d17c47..6a81dab 100644
--- a/include/ui.h
+++ b/include/ui.h
@@ -1,3 +1,7 @@
+/** @file ui.h
+ * @brief Contains functions for handling the user interface.
+ */
+
#ifndef UI_H
#define UI_H
@@ -12,9 +16,9 @@
namespace ui {
- /*
- * Contains the coordinates of the mouse in the window.
- */
+ /**
+ * Contains the coordinates of the mouse inside the window.
+ */
extern vec2 mouse;
@@ -90,6 +94,7 @@ namespace ui {
void toggleWhiteFast(void);
void waitForCover(void);
+ void waitForNothing(unsigned int);
}
#endif // UI_H
diff --git a/main.cpp b/main.cpp
index 5b9b1b6..a9cc2fa 100644
--- a/main.cpp
+++ b/main.cpp
@@ -4,7 +4,6 @@
*/
#include <cstdio> // fopen
-#include <chrono> // see millis()
#include <common.h>
#include <world.h>
@@ -188,25 +187,6 @@ std::string readFile(const char *filePath) {
vec2 offset; /* OFFSET!!!!!!!!!!!!!!!!!!!! */
-/**
- * millis
- *
- * We've encountered many problems when attempting to create delays for triggering
- * the logic function. As a result, we decided on using the timing libraries given
- * by <chrono> in the standard C++ library. This function simply returns the amount
- * of milliseconds that have passed sine the epoch.
- *
-**/
-
-#ifdef __WIN32__
-#define millis() SDL_GetTicks()
-#else
-unsigned int millis(void){
- std::chrono::system_clock::time_point now=std::chrono::system_clock::now();
- return std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();
-}
-#endif
-
extern WEATHER weather;
extern bool fadeEnable;
diff --git a/src/common.cpp b/src/common.cpp
index a8a964e..7449a35 100644
--- a/src/common.cpp
+++ b/src/common.cpp
@@ -1,7 +1,15 @@
#include <common.h>
#include <cstdio>
+#include <chrono>
-#define DEBUG
+#ifndef __WIN32__
+
+unsigned int millis(void){
+ std::chrono::system_clock::time_point now=std::chrono::system_clock::now();
+ return std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();
+}
+
+#endif // __WIN32__
void DEBUG_prints(const char* file, int line, const char *s,...){
va_list args;
diff --git a/src/entities.cpp b/src/entities.cpp
index 24c0d01..7ebe744 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -83,7 +83,8 @@ Player::Player(){ //sets all of the player specific traits on object creation
subtype = 0;
health = maxHealth = 100;
speed = 1;
- tex = new Texturec(3, "assets/player1.png", "assets/player.png", "assets/player2.png");
+ //tex = new Texturec(3, "assets/player1.png", "assets/player.png", "assets/player2.png");
+ tex = new Texturec(3, "assets/maybeplayer.png", "assets/maybeplayer.png", "assets/maybeplayer.png");
inv = new Inventory(PLAYER_INV_SIZE);
}
Player::~Player(){
@@ -155,8 +156,8 @@ Mob::Mob(int sub){
height = 2000;
tex = new Texturec(0);
case MS_DOOR:
- width = HLINE * 10;
- height = HLINE * 16;
+ width = HLINE * 12;
+ height = HLINE * 19;
tex = new Texturec(1,"assets/door.png");
break;
}
diff --git a/src/gameplay.cpp b/src/gameplay.cpp
index 0ee6055..d3dd03a 100644
--- a/src/gameplay.cpp
+++ b/src/gameplay.cpp
@@ -133,7 +133,6 @@ void initEverything(void){
//playerSpawnHill->addMob(MS_TRIGGER,player->loc.x,0,story);
- //worldSpawnHill2->addStructure(STRUCTURET,HOUSE,(rand()%120*HLINE),100,worldSpawnHill1,worldSpawnHill2);
//playerSpawnHill->addStructure(STRUCTURET,FOUNTAIN,(rand()%120*HLINE)+100*HLINE,100,test,iw);
//playerSpawnHill->addStructure(STRUCTURET,HOUSE2,(rand()%120*HLINE)+300*HLINE,100,test,iw);
@@ -142,6 +141,7 @@ void initEverything(void){
currentWorld = worldSpawnHill1;
+ worldSpawnHill2->addStructure(STRUCTURET,HOUSE,(rand()%120*HLINE),100,worldSpawnHill1,worldSpawnHill2);
player = new Player();
player->spawn(200,100);
diff --git a/src/inventory.cpp b/src/inventory.cpp
index 5ae97b4..52ae02c 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -299,10 +299,10 @@ void itemDraw(Player *p,ITEM_ID id,ITEM_TYPE type){
glBindTexture(GL_TEXTURE_2D,itemtex[id]);
glColor4ub(255,255,255,255);
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2f(itemLoc.x, itemLoc.y);
+ glTexCoord2i(0,1);glVertex2f(itemLoc.x, itemLoc.y);
glTexCoord2i(1,1);glVertex2f(itemLoc.x+item[id].width,itemLoc.y);
glTexCoord2i(1,0);glVertex2f(itemLoc.x+item[id].width,itemLoc.y+item[id].height);
- glTexCoord2i(0,0);glVertex2f(itemLoc.x, itemLoc.y+item[id].height);
+ glTexCoord2i(0,0);glVertex2f(itemLoc.x, itemLoc.y+item[id].height);
glEnd();
glDisable(GL_TEXTURE_2D);
glTranslatef(player->loc.x*2,0,0);
@@ -341,6 +341,7 @@ int Inventory::useItem(void){
}
break;
default:
+ //hangle++;
break;
}
}
diff --git a/src/ui.cpp b/src/ui.cpp
index 11bc195..08f503f 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -464,6 +464,12 @@ namespace ui {
}while(fadeIntensity < 255);
fadeIntensity = 255;
}
+ void waitForNothing(unsigned int ms){
+ unsigned int target = millis() + ms;
+ do{
+ mainLoop();
+ }while(millis() < target);
+ }
void importantText(const char *text,...){
va_list textArgs;
diff --git a/src/world.cpp b/src/world.cpp
index b964c9a..9a2b6d3 100644
--- a/src/world.cpp
+++ b/src/world.cpp
@@ -17,13 +17,14 @@ bool worldInside = false; // True if player is inside a structure
WEATHER weather = SUNNY;
-const char *bgPaths[2][6]={
+const char *bgPaths[2][7]={
{"assets/bg.png", // Daytime background
"assets/bgn.png", // Nighttime background
"assets/bgFarMountain.png", // Furthest layer
"assets/forestTileBack.png", // Closer layer
"assets/forestTileMid.png", // Near layer
- "assets/forestTileFront.png"}, // Closest layer
+ "assets/forestTileFront.png", // Closest layer
+ "assets/dirt.png"}, // Dirt
{"assets/bgWoodTile.png",
NULL,
NULL,
@@ -51,7 +52,7 @@ float worldGetYBase(World *w){
void World::setBackground(WORLD_BG_TYPE bgt){
switch(bgt){
case BG_FOREST:
- bgTex = new Texturec(6,bgPaths[0]);
+ bgTex = new Texturec(7,bgPaths[0]);
break;
case BG_WOODHOUSE:
bgTex = new Texturec(1,bgPaths[1]);
@@ -549,20 +550,25 @@ LOOP2:
*/
bool hey=false;
+ glEnable(GL_TEXTURE_2D);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); //for the s direction
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); //for the t direction
+ bgTex->bindNext();
glBegin(GL_QUADS);
for(i=is;i<(unsigned)ie-GEN_INC;i++){
cline[i].y+=(yoff-DRAW_Y_OFFSET); // Add the y offset
if(!cline[i].y){
cline[i].y=base;
hey=true;
- safeSetColor(cline[i].color-100+shade,cline[i].color-150+shade,cline[i].color-200+shade);
+ //safeSetColor(cline[i].color-100+shade,cline[i].color-150+shade,cline[i].color-200+shade);
}else{
- safeSetColor(cline[i].color+shade,cline[i].color-50+shade,cline[i].color-100+shade); // Set the shaded dirt color
+ //safeSetColor(cline[i].color+shade,cline[i].color-50+shade,cline[i].color-100+shade); // Set the shaded dirt color
}
- glVertex2i(cx_start+i*HLINE ,cline[i].y-GRASS_HEIGHT);
- glVertex2i(cx_start+i*HLINE+HLINE,cline[i].y-GRASS_HEIGHT);
- glVertex2i(cx_start+i*HLINE+HLINE,0);
- glVertex2i(cx_start+i*HLINE ,0);
+ glColor4ub(255,255,255,255);
+ glTexCoord2i(0,1);glVertex2i(cx_start+i*HLINE ,cline[i].y-GRASS_HEIGHT);
+ glTexCoord2i(1,1);glVertex2i(cx_start+i*HLINE+HLINE,cline[i].y-GRASS_HEIGHT);
+ glTexCoord2i(1,0);glVertex2i(cx_start+i*HLINE+HLINE,0);
+ glTexCoord2i(0,0);glVertex2i(cx_start+i*HLINE ,0);
cline[i].y-=(yoff-DRAW_Y_OFFSET); // Restore the line's y value
if(hey){
hey=false;
@@ -570,6 +576,7 @@ LOOP2:
}
}
glEnd();
+ glDisable(GL_TEXTURE_2D);
/*
* Draw grass on every line.
diff --git a/xcf/dirt.xcf b/xcf/dirt.xcf
new file mode 100644
index 0000000..6b50981
--- /dev/null
+++ b/xcf/dirt.xcf
Binary files differ
diff --git a/xcf/door.xcf b/xcf/door.xcf
index 7965018..ab8e078 100644
--- a/xcf/door.xcf
+++ b/xcf/door.xcf
Binary files differ
diff --git a/xcf/maybeplayer.xcf b/xcf/maybeplayer.xcf
index 5520815..fb885fc 100644
--- a/xcf/maybeplayer.xcf
+++ b/xcf/maybeplayer.xcf
Binary files differ