aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordrumsetmonkey <abelleisle@roadrunner.com>2015-12-04 08:49:02 -0500
committerdrumsetmonkey <abelleisle@roadrunner.com>2015-12-04 08:49:02 -0500
commit4c6895ba1445a040f65affea6f29ab66011960db (patch)
treec7d7d753a8361cc09da0292f03a4f6e72cd57e5d /src
parent92cd5d10c536c92e4ece15a526f124c9f3805084 (diff)
inv stuff
Diffstat (limited to 'src')
-rw-r--r--src/entities.cpp4
-rw-r--r--src/inventory.cpp34
-rw-r--r--src/ui.cpp7
3 files changed, 34 insertions, 11 deletions
diff --git a/src/entities.cpp b/src/entities.cpp
index 729bcdd..b1a0c09 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -169,8 +169,8 @@ Object::Object(ITEM_ID id, bool qo, const char *pd){
type = OBJECTT;
alive = true;
near = false;
- width = HLINE * 8;
- height = HLINE * 8;
+ width = getItemWidth(id);
+ height = getItemHeight(id);
maxHealth = health = 1;
tex = new Texturec(1,getItemTexturePath(id));
diff --git a/src/inventory.cpp b/src/inventory.cpp
index 310a6b5..e6433bb 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -26,6 +26,14 @@ char *getItemTexturePath(ITEM_ID id){
return item[id].textureLoc;
}
+int getItemWidth(ITEM_ID id){
+ return item[id].width;
+}
+
+int getItemHeight(ITEM_ID id){
+ return item[id].height;
+}
+
Item::Item(ITEM_ID i, const char *n, ITEM_TYPE t, float w, float h, int m, const char *tl){
id = i;
type = t;
@@ -179,7 +187,7 @@ void Inventory::draw(void){
highlight=sel+thing;
if(highlight>numSlot-1)highlight=numSlot-1;
if(SDL_GetMouseState(NULL, NULL) & SDL_BUTTON(SDL_BUTTON_LEFT)){
- highlight>numSlot-1 ? sel=numSlot-1 : sel = highlight;
+ sel = highlight;
mouseSel=false;
invHover=false;
selected = true;
@@ -205,10 +213,10 @@ void Inventory::draw(void){
glColor4f(0.0f, 0.0f, 0.0f, a == highlight ? 0.5f : 0.1f);
glBegin(GL_QUADS);
- glVertex2i(r.end.x-(itemWide/2), r.end.y-(itemWide/2));
- glVertex2i(r.end.x-(itemWide/2)+itemWide, r.end.y-(itemWide/2));
- glVertex2i(r.end.x-(itemWide/2)+itemWide, r.end.y-(itemWide/2)+itemWide);
- glVertex2i(r.end.x-(itemWide/2), r.end.y-(itemWide/2)+itemWide);
+ glVertex2i(r.end.x-(itemWide/2), r.end.y-(itemWide/2));
+ glVertex2i(r.end.x+(itemWide/2), r.end.y-(itemWide/2));
+ glVertex2i(r.end.x+(itemWide/2), r.end.y+(itemWide/2));
+ glVertex2i(r.end.x-(itemWide/2), r.end.y+(itemWide/2));
glEnd();
if(inv[a].count > 0){
@@ -216,16 +224,24 @@ void Inventory::draw(void){
glBindTexture(GL_TEXTURE_2D, itemtex[inv[a].id]);
glColor4f(1.0f, 1.0f, 1.0f, a == highlight ? 0.8f : 0.2f);
glBegin(GL_QUADS);
- glTexCoord2i(0,1);glVertex2i(r.end.x-(itemWide/2), r.end.y-(itemWide/2));
- glTexCoord2i(1,1);glVertex2i(r.end.x-(itemWide/2)+itemWide, r.end.y-(itemWide/2));
- glTexCoord2i(1,0);glVertex2i(r.end.x-(itemWide/2)+itemWide, r.end.y-(itemWide/2)+itemWide);
- glTexCoord2i(0,0);glVertex2i(r.end.x-(itemWide/2), r.end.y-(itemWide/2)+itemWide);
+ if(item[inv[a].id].height > item[inv[a].id].width){
+ glTexCoord2i(0,1);glVertex2i(r.end.x-((itemWide/2)*((float)item[inv[a].id].width/(float)item[inv[a].id].height)), r.end.y-(itemWide/2));
+ glTexCoord2i(1,1);glVertex2i(r.end.x+((itemWide/2)*((float)item[inv[a].id].width/(float)item[inv[a].id].height)), r.end.y-(itemWide/2));
+ glTexCoord2i(1,0);glVertex2i(r.end.x+((itemWide/2)*((float)item[inv[a].id].width/(float)item[inv[a].id].height)), r.end.y+(itemWide/2));
+ glTexCoord2i(0,0);glVertex2i(r.end.x-((itemWide/2)*((float)item[inv[a].id].width/(float)item[inv[a].id].height)), r.end.y+(itemWide/2));
+ }else{
+ glTexCoord2i(0,1);glVertex2i(r.end.x-(itemWide/2), r.end.y-(itemWide/2)*((float)item[inv[a].id].height/(float)item[inv[a].id].width));
+ glTexCoord2i(1,1);glVertex2i(r.end.x+(itemWide/2), r.end.y-(itemWide/2)*((float)item[inv[a].id].height/(float)item[inv[a].id].width));
+ glTexCoord2i(1,0);glVertex2i(r.end.x+(itemWide/2), r.end.y+(itemWide/2)*((float)item[inv[a].id].height/(float)item[inv[a].id].width));
+ glTexCoord2i(0,0);glVertex2i(r.end.x-(itemWide/2), r.end.y+(itemWide/2)*((float)item[inv[a].id].height/(float)item[inv[a].id].width));
+ }
glEnd();
glDisable(GL_TEXTURE_2D);
//ui::putText(r.end.x-(itemWide/2)+(itemWide*.85),r.end.y-(itemWide/1.75),"%d",inv[a].count);
}
a++;
}
+ if(inv[highlight].count > 0)ui::putStringCentered(player->loc.x+player->width/2, player->loc.y + range*.75,item[inv[highlight].id].name);
}
if(inv[sel].count)itemDraw(player,inv[sel].id);
lop++;
diff --git a/src/ui.cpp b/src/ui.cpp
index db376b7..6f5bdbe 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -68,6 +68,11 @@ namespace ui {
*/
vec2 mouse;
+
+ /*
+ * Variety of keydown bools
+ */
+ bool edown;
/*
* Debugging flags.
@@ -624,6 +629,7 @@ DONE:
if(SDL_KEY==SDLK_F3)debug^=true;
if(((SDL_KEY==SDLK_b) & (SDL_KEY==SDLK_F3)))posFlag^=true;
if(SDL_KEY==SDLK_e){
+ edown=true;
if(heyOhLetsGo == 0){
heyOhLetsGo = loops;
player->inv->mouseSel = false;
@@ -646,6 +652,7 @@ DONE:
if(SDL_KEY==SDLK_h)player->health-=5;
if(SDL_KEY==SDLK_f)player->light ^= true;
if(SDL_KEY==SDLK_e){
+ edown=false;
if(player->inv->invHover){
player->inv->invHover = false;
heyOhLetsGo = 0;