aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordrumsetmonkey <abelleisle@roadrunner.com>2015-11-30 08:47:24 -0500
committerdrumsetmonkey <abelleisle@roadrunner.com>2015-11-30 08:47:24 -0500
commit0415b7f0a9305cd43e8fd8c77a8bafd3b8016dd0 (patch)
treeffa56707d10b2bbcd54e0e571c915c85c708520a
parentfbe1b6c3a0a3427111577e6b77600f5669012583 (diff)
Working on animations
-rw-r--r--config/items.h10
-rw-r--r--include/common.h2
-rw-r--r--include/inventory.h11
-rw-r--r--src/Texture.cpp1
-rw-r--r--src/entities.cpp4
-rw-r--r--src/inventory.cpp44
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};