diff options
-rw-r--r-- | include/Texture.h | 3 | ||||
-rw-r--r-- | include/entities.h | 2 | ||||
-rw-r--r-- | main.cpp | 18 | ||||
-rw-r--r-- | src/Texture.cpp | 11 | ||||
-rw-r--r-- | src/entities.cpp | 30 | ||||
-rw-r--r-- | src/gameplay.cpp | 4 |
6 files changed, 41 insertions, 27 deletions
diff --git a/include/Texture.h b/include/Texture.h index 45c8df1..5a08348 100644 --- a/include/Texture.h +++ b/include/Texture.h @@ -12,10 +12,11 @@ public: Texturec(uint amt, ...); void bindNext(); void bindPrev(); + void bind(int); GLuint *image; -private: int texState; +private: }; diff --git a/include/entities.h b/include/entities.h index 43e744e..47f7f55 100644 --- a/include/entities.h +++ b/include/entities.h @@ -94,7 +94,7 @@ public: }; class Mob : public Entity{ public: - Mob(); + Mob(int); void wander(int, vec2*); }; @@ -320,19 +320,18 @@ int main(int argc, char *argv[]){ /* * TODO - Initialize shaders n' stuff */ - - /* + /* GLuint fragShader; - GLuint shaderProgram; + GLuint shaderProgram;6da const GLchar *shaderSource = "shader.frag"; GLint bufferln = GL_FALSE; shaderProgram = glCreateProgram(); fragShader = glCreateShader(GL_FRAGMENT_SHADER); - - glShaderSource(fragShader, 1, &shaderSource, NULL); + + glShaderSource(fragShader, 1, shaderSource, NULL); glCompileShader(fragShader); glGetShaderiv(fragShader, GL_COMPILE_STATUS, &bufferln); @@ -343,11 +342,9 @@ int main(int argc, char *argv[]){ glAttachShader(shaderProgram, fragShader); glLinkProgram(shaderProgram); glValidateProgram(shaderProgram); - + */ //glEnable(GL_DEPTH_TEST); //glEnable(GL_MULTISAMPLE); - - */ /* * Open the names file containing potential names for NPCs and store it in the names file @@ -595,7 +592,7 @@ void render(){ ui::putText(player->loc.x-SCREEN_WIDTH/2, SCREEN_HEIGHT-ui::fontSize, - "FPS: %d\nG:%d\nRes: %ux%u\nE: %d\nPOS: (x)%+.2f\n (y)%+.2f\nQc: %u", + "FPS: %d\nG:%d\nRes: %ux%u\nE: %d\nPOS: (x)%+.2f\n (y)%+.2f\nQc: %u\nTS:%d\n", fps, player->ground, SCREEN_WIDTH, // Window dimensions @@ -603,7 +600,8 @@ void render(){ entity.size(), // Size of entity array player->loc.x, // The player's x coordinate debugY, // The player's y coordinate - player->qh.current.size() // Active quest count + player->qh.current.size(), // Active quest count + player->tex->texState ); } diff --git a/src/Texture.cpp b/src/Texture.cpp index 93a3792..0d67701 100644 --- a/src/Texture.cpp +++ b/src/Texture.cpp @@ -35,6 +35,15 @@ Texturec::Texturec(uint amt, ...){ va_end(fNames); } +void Texturec::bind(int bn){ + texState = bn; + glBindTexture(GL_TEXTURE_2D, image[texState]); +} + void Texturec::bindNext(){ - //glBindTexture(GL_TEXTURE_2D); + bind(++texState); +} + +void Texturec::bindPrev(){ + bind(--texState); }
\ No newline at end of file diff --git a/src/entities.cpp b/src/entities.cpp index 6d2b58c..1f45e40 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -37,7 +37,7 @@ Player::Player(){ //sets all of the player specific traits on object creation ground = false; near = true; inv = new Inventory(PLAYER_INV_SIZE); - tex = new Texturec(3, "assets/player.png", "assets/player1.png", "assets/player2.png"); + tex = new Texturec(3, "assets/player1.png", "assets/player.png", "assets/player2.png"); } NPC::NPC(){ //sets all of the NPC specific traits on object creation @@ -61,16 +61,20 @@ Structures::Structures(){ //sets the structure type tex = new Texturec(1,"assets/house1.png"); } -Mob::Mob(){ +Mob::Mob(int sub){ width = HLINE * 10; height = HLINE * 8; speed = 1; type = MOBT; //sets type to MOB - subtype = 1; //SKIRL + subtype = sub; //SKIRL alive = true; canMove = true; near = false; - tex = new Texturec(2, "assets/rabbit.png", "assets/rabbit.png1"); + if(subtype == 1){//RABBIT + tex = new Texturec(2, "assets/rabbit.png", "assets/rabbit1.png"); + }else if(subtype == 2){//BIRD + //add bird textures and bird things + } inv = new Inventory(NPC_INV_SIZE); } @@ -102,43 +106,45 @@ void Entity::draw(void){ //draws the entities if(up){ texState+=1; if(texState==2)up=false; + tex->bindNext(); }else if(!up){ texState-=1; if(texState==0)up=true; + tex->bindPrev(); } } if(ground == 0){ - glBindTexture(GL_TEXTURE_2D, tex->image[0]); + tex->bind(0); }else if(vel.x != 0){ switch(texState){ case 0: - glBindTexture(GL_TEXTURE_2D,tex->image[1]); + tex->bind(0); break; case 1: - glBindTexture(GL_TEXTURE_2D,tex->image[0]); + tex->bind(1); break; case 2: - glBindTexture(GL_TEXTURE_2D,tex->image[2]); + tex->bind(2); break; } } else{ - glBindTexture(GL_TEXTURE_2D,tex->image[0]); + tex->bind(1); } }else if(type == MOBT){ switch(subtype){ case 1: //RABBIT if(ground == 0){ - glBindTexture(GL_TEXTURE_2D, tex->image[1]); + tex->bind(1); }else if(ground == 1){ - glBindTexture(GL_TEXTURE_2D, tex->image[0]); + tex->bind(0); } break; default: break; } }else{ - glBindTexture(GL_TEXTURE_2D,tex->image[0]); + tex->bind(0); } glColor3ub(255,255,255); glBegin(GL_QUADS); diff --git a/src/gameplay.cpp b/src/gameplay.cpp index 3b9b819..f9d2578 100644 --- a/src/gameplay.cpp +++ b/src/gameplay.cpp @@ -51,8 +51,8 @@ void initEverything(void){ iw->generate(200); build[0]->inside=iw; - entity.push_back(new Mob()); //create a new entity of NPC type - mob.push_back(Mob()); //create new NPC + entity.push_back(new Mob(1)); //create a new entity of NPC type + mob.push_back(Mob(1)); //create new NPC entity[entity.size()] = &mob[mob.size()-1]; //set the new entity to have the same traits as an NPC entity[entity.size()-1]->spawn(200,100); //sets the position of the villager around the village entity.pop_back(); |