diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2015-11-30 08:47:24 -0500 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2015-11-30 08:47:24 -0500 |
commit | 0415b7f0a9305cd43e8fd8c77a8bafd3b8016dd0 (patch) | |
tree | ffa56707d10b2bbcd54e0e571c915c85c708520a | |
parent | fbe1b6c3a0a3427111577e6b77600f5669012583 (diff) |
Working on animations
-rw-r--r-- | config/items.h | 10 | ||||
-rw-r--r-- | include/common.h | 2 | ||||
-rw-r--r-- | include/inventory.h | 11 | ||||
-rw-r--r-- | src/Texture.cpp | 1 | ||||
-rw-r--r-- | src/entities.cpp | 4 | ||||
-rw-r--r-- | src/inventory.cpp | 44 |
6 files changed, 41 insertions, 31 deletions
diff --git a/config/items.h b/config/items.h index 62db071..fc0ca96 100644 --- a/config/items.h +++ b/config/items.h @@ -1,6 +1,6 @@ ID DEBUG_ITEM - NAME "Debug\0" + NAME "Debug" TYPE TOOL WIDTH 1 HEIGHT 1 @@ -9,7 +9,7 @@ ID DEBUG_ITEM ENI ID TEST_ITEM - NAME "Dank MayMay\0" + NAME "Dank MayMay" TYPE TOOL WIDTH HLINE HEIGHT HLINE @@ -18,7 +18,7 @@ ID TEST_ITEM ENI ID PLAYER_BAG - NAME "Your Bag\0" + NAME "Your Bag" TYPE EQUIP WIDTH HLINE*5 HEIGHT HLINE*5 @@ -27,7 +27,7 @@ ID PLAYER_BAG ENI ID FLASHLIGHT - NAME "Flashlight\0" + NAME "Flashlight" TYPE TOOL WIDTH HLINE*2 HEIGHT HLINE*4 @@ -36,7 +36,7 @@ ID FLASHLIGHT ENI ID SWORD_WOOD - NAME "Wood Sword\0" + NAME "Wood Sword" TYPE SWORD WIDTH HLINE*4 HEIGHT HLINE*10 diff --git a/include/common.h b/include/common.h index 525a4cd..869c811 100644 --- a/include/common.h +++ b/include/common.h @@ -123,6 +123,8 @@ extern float handAngle; * */ + extern unsigned int loops; + //GLuint loadTexture(const char *fileName); /* diff --git a/include/inventory.h b/include/inventory.h index 2793ad7..3b4c260 100644 --- a/include/inventory.h +++ b/include/inventory.h @@ -3,6 +3,7 @@ #include <common.h> #include <string.h> +#include <boost/range/adaptor/reversed.hpp> #define DEBUG @@ -49,24 +50,30 @@ public: int maxStackSize; char* textureLoc; Texturec *tex; + GLuint text; int count; Item(ITEM_ID i, char* n, ITEM_TYPE t, float w, float h, int m, char* tl): id(i), type(t), width(w), height(h), maxStackSize(m){ count = 0; - name = (char*)calloc(strlen(n ),sizeof(char)); - textureLoc = (char*)calloc(strlen(tl),sizeof(char)); + name = (char*)calloc(strlen(n )+1,sizeof(char)); + textureLoc = (char*)calloc(strlen(tl)+1,sizeof(char)); strcpy(name,n); strcpy(textureLoc,tl); tex= new Texturec(1,textureLoc); + text = Texture::loadTexture(textureLoc); } GLuint rtex(){ return tex->image[0]; } }; +static Item item[5]= { + #include "../config/items.h" +}; + struct item_t{ int count; ITEM_ID id; diff --git a/src/Texture.cpp b/src/Texture.cpp index 82baa71..586f5fd 100644 --- a/src/Texture.cpp +++ b/src/Texture.cpp @@ -13,7 +13,6 @@ namespace Texture{ GLuint loadTexture(const char *fileName){ SDL_Surface *image; GLuint object = 0; - unsigned int i; for(unsigned int i=0;i<LoadedTextureCounter;i++){ if(!strcmp(LoadedTexture[i]->name,fileName)){ diff --git a/src/entities.cpp b/src/entities.cpp index 97b4d35..c2c560a 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -108,7 +108,7 @@ Object::Object(int id):identifier(id){ height = HLINE * 8; maxHealth = health = 1; - //tex = new Texturec(1, item[id].textureLoc); + tex = new Texturec(1, item[id].textureLoc); questObject = false; pickupDialog="\0"; @@ -122,7 +122,7 @@ Object::Object(int id, bool qo, char *pd):identifier(id),questObject(qo),pickupD height = HLINE * 8; maxHealth = health = 1; - //tex = new Texturec(1, item[id].textureLoc); + tex = new Texturec(1, item[id].textureLoc); } diff --git a/src/inventory.cpp b/src/inventory.cpp index 45d5bce..ed22fb6 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -7,10 +7,6 @@ extern Player *player; extern GLuint invUI; -static Item item[5]= { - #include "../config/items.h" -}; - void itemDraw(Player *p,ITEM_ID id); Inventory::Inventory(unsigned int s){ @@ -63,6 +59,7 @@ int Inventory::takeItem(ITEM_ID id,unsigned char count){ void Inventory::draw(void){ ui::putText(offset.x-SCREEN_WIDTH/2,480,"%d",sel); unsigned int i=0; + static unsigned int lop = 0; float y,xoff; @@ -81,7 +78,7 @@ void Inventory::draw(void){ //dfp[a] = 0; a++; }a=0; - if(invOpening){ + if(invOpening && lop % 1 == 0){ end = 0; for(auto &d : dfp){ if(a != 0){ @@ -94,18 +91,12 @@ void Inventory::draw(void){ a++; }a=0; if(end < numSlot)invOpen=true; - }else if(!invOpening){ - for(auto &d : dfp){ + }else if(!invOpening && lop % 1 == 0){ + for(auto &d : boost::adaptors::reverse(dfp)){ if(d > 0){ - if(a != 0){ - //d-=25; - if(dfp[a-1]+25<d || dfp[a-1]<=0)d-=25; - }else{ - d-=25; - } + d-=25; }else end++; - a++; - }a=0; + } if(end >= numSlot)invOpen=false; } if(invOpen){ @@ -115,14 +106,24 @@ void Inventory::draw(void){ curCoord[a].y += float((dfp[a]) * sin(angle*PI/180)); r.end = curCoord[a]; - item[inv[i].id].tex->bind(0); - glColor4f(1.0f, 1.0f, 1.0f, (float)dfp[a]/(float)range); + glColor4f(0.0f, 0.0f, 0.0f, ((float)dfp[a]/(float)range)); glBegin(GL_QUADS); - glTexCoord2i(0,1);glVertex2i(r.end.x, r.end.y); - glTexCoord2i(1,1);glVertex2i(r.end.x+45, r.end.y); - glTexCoord2i(1,0);glVertex2i(r.end.x+45, r.end.y+45); - glTexCoord2i(0,0);glVertex2i(r.end.x, r.end.y+45); + glVertex2i(r.end.x, r.end.y); + glVertex2i(r.end.x+45, r.end.y); + glVertex2i(r.end.x+45, r.end.y+45); + glVertex2i(r.end.x, r.end.y+45); glEnd(); + + if(inv[a].count > 0){ + glBindTexture(GL_TEXTURE_2D, item[inv[a].id].text); + glColor4f(1.0f, 1.0f, 1.0f, (float)dfp[a]/(float)range); + glBegin(GL_QUADS); + glTexCoord2i(0,1);glVertex2i(r.end.x, r.end.y); + glTexCoord2i(1,1);glVertex2i(r.end.x+45, r.end.y); + glTexCoord2i(1,0);glVertex2i(r.end.x+45, r.end.y+45); + glTexCoord2i(0,0);glVertex2i(r.end.x, r.end.y+45); + glEnd(); + } a++; } } @@ -159,6 +160,7 @@ void Inventory::draw(void){ } }*/ if(inv[sel].count)itemDraw(player,inv[sel].id); + lop++; } static vec2 item_coord = {0,0}; |