diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2015-12-04 08:49:02 -0500 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2015-12-04 08:49:02 -0500 |
commit | 4c6895ba1445a040f65affea6f29ab66011960db (patch) | |
tree | c7d7d753a8361cc09da0292f03a4f6e72cd57e5d /src | |
parent | 92cd5d10c536c92e4ece15a526f124c9f3805084 (diff) |
inv stuff
Diffstat (limited to 'src')
-rw-r--r-- | src/entities.cpp | 4 | ||||
-rw-r--r-- | src/inventory.cpp | 34 | ||||
-rw-r--r-- | src/ui.cpp | 7 |
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++; @@ -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; |