aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Texture.cpp1
-rw-r--r--src/entities.cpp2
-rw-r--r--src/inventory.cpp44
3 files changed, 25 insertions, 22 deletions
diff --git a/src/Texture.cpp b/src/Texture.cpp
index 8b40513..d723eda 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 4e582c9..1681efd 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -107,6 +107,7 @@ Object::Object(ITEM_ID id, bool qo, const char *pd){
pickupDialog = new char[strlen(pd)+1];
strcpy(pickupDialog,pd);
+
type = OBJECTT;
alive = true;
near = false;
@@ -115,6 +116,7 @@ Object::Object(ITEM_ID id, bool qo, const char *pd){
maxHealth = health = 1;
tex = new Texturec(1,getItemTexturePath(id));
+
}
diff --git a/src/inventory.cpp b/src/inventory.cpp
index cd01c11..3b2663b 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);
char *getItemTexturePath(ITEM_ID id){
@@ -86,6 +82,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;
static int numSlot = 7;
static std::vector<int>dfp(numSlot);
@@ -102,7 +99,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){
@@ -115,18 +112,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){
@@ -136,14 +127,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++;
}
}
@@ -181,6 +182,7 @@ void Inventory::draw(void){
}*/
if(inv[sel].count)itemDraw(player,inv[sel].id);
+ lop++;
}
static vec2 item_coord = {0,0};