diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/entities.cpp | 6 | ||||
-rw-r--r-- | src/inventory.cpp | 60 | ||||
-rw-r--r-- | src/ui.cpp | 9 |
3 files changed, 56 insertions, 19 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index 729bcdd..f812919 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)); @@ -205,7 +205,7 @@ void Entity::draw(void){ //draws the entities if(type == PLAYERT){ static int texState = 0; static bool up = true; - if(loops % (int)((float)5 / (float)speed) == 0){ + if(loops % (int)((float)2 / (float)speed) == 0){ if(up){ texState+=1; if(texState==2)up=false; diff --git a/src/inventory.cpp b/src/inventory.cpp index 310a6b5..7d3bc6d 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; @@ -140,7 +148,7 @@ void Inventory::draw(void){ curCoord[a].y += float((dfp[a]) * sin(angle*PI/180)); r.end = curCoord[a]; - glColor4f(0.0f, 0.0f, 0.0f, ((float)dfp[a]/(float)range)*0.4f); + glColor4f(1.0f, 1.0f, 1.0f, ((float)dfp[a]/(float)range)*0.4f); 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)); @@ -153,16 +161,30 @@ void Inventory::draw(void){ glBindTexture(GL_TEXTURE_2D, itemtex[inv[a].id]); glColor4f(1.0f, 1.0f, 1.0f, ((float)dfp[a]/(float)range)*0.8f); 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); - glEnd(); + 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),r.end.y-(itemWide*.9),"%s",item[inv[a].id].name); ui::putText(r.end.x-(itemWide/2)+(itemWide*.85),r.end.y-(itemWide/2),"%d",inv[a].count); } a++; + if(sel==a){ + glBegin(GL_LINES); + glColor4f(1.0f, 0.0f, 0.0f, 0.0f); + glVertex2i(r.start.x,r.start.y); + glColor4f(1.0f, 0.0f, 0.0f, 0.8f); + glVertex2i(r.end.x+20, r.end.y-20); + glEnd(); + } } }else if(invHover){ static unsigned int highlight = 0; @@ -179,7 +201,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 +227,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 +238,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. @@ -512,7 +517,7 @@ namespace ui { */ if(player->inv->invOpen){ - hub.y = player->loc.y + fontSize * 10; + hub.y = player->loc.y + fontSize * 8; hub.x = player->loc.x; putStringCentered(hub.x,hub.y,"Current Quests:"); @@ -641,6 +646,7 @@ DONE: if(debug)posFlag ^= true; break; case SDLK_e: + edown=true; if(!heyOhLetsGo){ heyOhLetsGo = loops; player->inv->mouseSel = false; @@ -670,6 +676,7 @@ DONE: player->speed = 1; break; case SDLK_e: + edown=false; if(player->inv->invHover){ player->inv->invHover = false; }else{ |