aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/entities.cpp4
-rw-r--r--src/gameplay.cpp8
-rw-r--r--src/inventory.cpp47
-rw-r--r--src/ui.cpp4
-rw-r--r--src/world.cpp6
5 files changed, 46 insertions, 23 deletions
diff --git a/src/entities.cpp b/src/entities.cpp
index 26eb09a..3488d62 100644
--- a/src/entities.cpp
+++ b/src/entities.cpp
@@ -36,7 +36,7 @@ void getRandomName(Entity *e){
}
if((fgets(bufs,16,(FILE*)names)) != NULL){
- bufs[strlen(bufs)-1] = '\0';
+ bufs[strlen(bufs)] = '\0';
strcpy(e->name,bufs);
}
@@ -206,7 +206,7 @@ void Entity::draw(void){ //draws the entities
case PLAYERT:
static int texState = 0;
static bool up = true;
- if(loops % (int)((float)3 / (float)speed) == 0){
+ if(loops % (int)((float)4/(float)speed) == 0){
if(up){
if(++texState==2)up=false;
tex->bindNext();
diff --git a/src/gameplay.cpp b/src/gameplay.cpp
index 8e7d961..8809c49 100644
--- a/src/gameplay.cpp
+++ b/src/gameplay.cpp
@@ -125,10 +125,10 @@ void initEverything(void){
playerSpawnHill->addStructure(STRUCTURET,(rand()%120*HLINE),100,test,iw);
playerSpawnHill->addMob(MS_TRIGGER,-1300,0,CUTSCENEEE);
- playerSpawnHill->addObject(SWORD_WOOD, false, "", 480,200);
- playerSpawnHill->addObject(FLASHLIGHT, false, "", 500,200);
- playerSpawnHill->addObject(PLAYER_BAG, false, "", 520,200);
- playerSpawnHill->addObject(TEST_ITEM, false, "", 540,200);
+ playerSpawnHill->addObject(SWORD_WOOD, false, "", 480,300);
+ playerSpawnHill->addObject(FLASHLIGHT, false, "", 500,300);
+ playerSpawnHill->addObject(PLAYER_BAG, false, "", 520,300);
+ playerSpawnHill->addObject(TEST_ITEM, false, "", 540,300);
//playerSpawnHill->addObject(FLASHLIGHT, true, "This looks important, do you want to pick it up?",600,200);
test->addMob(MS_RABBIT,200,100);
diff --git a/src/inventory.cpp b/src/inventory.cpp
index 7d3bc6d..8bf8d42 100644
--- a/src/inventory.cpp
+++ b/src/inventory.cpp
@@ -12,8 +12,7 @@ static const Item item[ITEM_COUNT]= {
};
static GLuint itemtex[ITEM_COUNT];
-
-void itemDraw(Player *p,ITEM_ID id);
+void itemDraw(Player *p,ITEM_ID id, ITEM_TYPE type);
void initInventorySprites(void){
unsigned int i;
@@ -69,16 +68,14 @@ int Inventory::addItem(ITEM_ID id,unsigned char count){
//std::cout << id << "," << inv[os].id << std::endl;
for(unsigned int i = 0; i < size; i++){
- if(id == inv[i].id){
+ if(inv[i].id == id){
inv[i].count += count;
- break;
- }else{
- inv[os].id = id;
- inv[os].count = count;
- os++;
- break;
+ return 0;
}
}
+ inv[os].id = id;
+ inv[os].count += count;
+ os++;
#ifdef DEBUG
DEBUG_printf("Gave player %u more %s(s)(ID: %d).\n",count,item[id].name,item[id].id);
@@ -148,7 +145,7 @@ void Inventory::draw(void){
curCoord[a].y += float((dfp[a]) * sin(angle*PI/180));
r.end = curCoord[a];
- glColor4f(1.0f, 1.0f, 1.0f, ((float)dfp[a]/(float)range)*0.4f);
+ glColor4f(0.0f, 0.0f, 0.0f, ((float)dfp[a]/(float)range)*0.5f);
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));
@@ -171,7 +168,8 @@ void Inventory::draw(void){
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();
+ }
+ 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);
@@ -257,12 +255,24 @@ void Inventory::draw(void){
}
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);
+ if(inv[sel].count)itemDraw(player,inv[sel].id,item[inv[sel].id].type);
lop++;
}
-void itemDraw(Player *p,ITEM_ID id){
+void itemDraw(Player *p,ITEM_ID id,ITEM_TYPE type){
+ static float angle = 0.0f;
+ glPushMatrix();
if(!id)return;
+ switch(type){
+ case SWORD:
+ angle = 15.0f;
+ break;
+ default:
+ angle = 0.0f;
+ }
+ //glTranslatef(player->loc.x*2,player->loc.y*2,0);
+ glTranslatef(0-player->loc.x*2,0,0);
+ glRotatef(angle, 0.0f, 1.0f, 0.0f);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D,itemtex[id]);
glColor4ub(255,255,255,255);
@@ -273,11 +283,20 @@ void itemDraw(Player *p,ITEM_ID id){
glTexCoord2i(0,0);glVertex2f(p->loc.x, p->loc.y+item[id].height);
glEnd();
glDisable(GL_TEXTURE_2D);
+ glTranslatef(player->loc.x*2,0,0);
+ glPopMatrix();
}
int Inventory::useItem(void){
- ITEM_ID id = item[inv[sel].id].id;
+ ITEM_ID id = item[inv[sel].id].id;
+ ITEM_TYPE type = item[inv[sel].id].type;
if(!invHover){
+ switch(type){
+ case SWORD:
+
+ break;
+ default:break;
+ }
switch(id){
case FLASHLIGHT:
player->light ^= true;
diff --git a/src/ui.cpp b/src/ui.cpp
index c0b5004..c59f9ee 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -631,7 +631,7 @@ DONE:
}
break;
case SDLK_LSHIFT:
- player->speed = debug ? 4 : 3;
+ player->speed = debug ? 4.0f : 3.0f;
break;
case SDLK_LCTRL:
player->speed = .5;
@@ -672,6 +672,8 @@ DONE:
player->right = false;
break;
case SDLK_LSHIFT:
+ player->speed = 1;
+ break;
case SDLK_LCTRL:
player->speed = 1;
break;
diff --git a/src/world.cpp b/src/world.cpp
index 1b90a4b..1e37a78 100644
--- a/src/world.cpp
+++ b/src/world.cpp
@@ -666,11 +666,11 @@ void World::singleDetect(Entity *e){
*/
if(!e->alive||e->health<=0){
-
for(i=0;i<entity.size();i++){
if(entity[i]==e){
switch(e->type){
case STRUCTURET:
+ std::cout<<"Killed a building..."<<std::endl;
for(j=0;j<build.size();j++){
if(build[j]==e){
delete build[j];
@@ -680,6 +680,7 @@ void World::singleDetect(Entity *e){
}
break;
case NPCT:
+ std::cout<<"Killed an NPC..."<<std::endl;
for(j=0;j<npc.size();j++){
if(npc[j]==e){
delete npc[j];
@@ -689,6 +690,7 @@ void World::singleDetect(Entity *e){
}
break;
case MOBT:
+ std::cout<<"Killed a mob..."<<std::endl;
for(j=0;j<mob.size();j++){
if(mob[j]==e){
delete mob[j];
@@ -698,6 +700,7 @@ void World::singleDetect(Entity *e){
}
break;
case OBJECTT:
+ std::cout<<"Killed an object..."<<std::endl;
for(j=0;j<object.size();j++){
if(object[j]==e){
delete object[j];
@@ -711,7 +714,6 @@ void World::singleDetect(Entity *e){
exit(0);
break;
}
- std::cout<<"Killed an entity..."<<std::endl;
entity.erase(entity.begin()+i);
return;
}