diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2016-01-13 07:31:16 -0500 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2016-01-13 07:31:16 -0500 |
commit | 23a4b0cc3ab09d58127a73b12c43aff37e5056ef (patch) | |
tree | 0e7d2f923311804c6a9e4270812174de45f2f7d2 /src | |
parent | 1574754cdaca14d68459cc520b63b6b3c449ecbd (diff) |
Fire Pit
Diffstat (limited to 'src')
-rw-r--r-- | src/common.cpp | 1 | ||||
-rw-r--r-- | src/entities.cpp | 26 | ||||
-rw-r--r-- | src/ui.cpp | 19 | ||||
-rw-r--r-- | src/world.cpp | 34 |
4 files changed, 49 insertions, 31 deletions
diff --git a/src/common.cpp b/src/common.cpp index 6307790..ead2dc3 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -84,7 +84,6 @@ void strVectorSortAlpha(std::vector<std::string> *v){ change = false; for(unsigned int i=0;i<v->size()-1;i++){ if(v[0][i] > v[0][i+1]){ - std::cout<<"swap "<<v[0][i]<<" <-> "<<v[0][i+1]<<std::endl; std::swap(v[0][i],v[0][i+1]); change = true; } diff --git a/src/entities.cpp b/src/entities.cpp index 627946b..abb1427 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -19,7 +19,8 @@ std::string sTexLoc[] = { "assets/townhall.png", "assets/house1.png", "assets/house1.png", "assets/fountain1.png", - "assets/lampPost1.png"}; + "assets/lampPost1.png", + "assets/brazzier.png"}; void getRandomName(Entity *e){ unsigned int tempNum,max=0; @@ -453,9 +454,6 @@ unsigned int Structures::spawn(BUILD_SUB sub, float x, float y, World *oi){ alive = true; bsubtype = sub; - int s = -1; - s = sub; - inWorld = oi; /* @@ -471,9 +469,15 @@ unsigned int Structures::spawn(BUILD_SUB sub, float x, float y, World *oi){ "assets/lampPost1.png")*/; unsigned int tempN = (getRand() % 5 + 2); - switch(s){ + switch(sub){ + case TOWN_HALL: + tex = new Texturec(1, sTexLoc[sub].c_str()); + width = 50 * HLINE; + height = 40 * HLINE; + + break; case HOUSE: - tex = new Texturec(1, sTexLoc[s].c_str()); + tex = new Texturec(1, sTexLoc[sub].c_str()); width = 50 * HLINE; height = 40 * HLINE; for(unsigned int i = 0;i < tempN;i++){ @@ -484,20 +488,24 @@ unsigned int Structures::spawn(BUILD_SUB sub, float x, float y, World *oi){ */ oi->addNPC(loc.x + i * HLINE ,100); - } break; case FOUNTAIN: - tex = new Texturec(1, sTexLoc[s].c_str()); + tex = new Texturec(1, sTexLoc[sub].c_str()); width = 50 * HLINE; height = 40 * HLINE; break; case LAMP_POST: - tex = new Texturec(1, sTexLoc[s].c_str()); + tex = new Texturec(1, sTexLoc[sub].c_str()); width = 10 * HLINE; height = 40 * HLINE; oi->addLight({x+SCREEN_WIDTH/2,y+30*HLINE},{1.0f,1.0f,1.0f}); break; + case FIRE_PIT: + tex = new Texturec(1, sTexLoc[sub].c_str()); + width = 12 * HLINE; + height = 12 * HLINE; + break; default: break; } @@ -825,6 +825,25 @@ DONE: case SDLK_g: currentWorld->addStructure(LAMP_POST, player->loc.x, player->loc.y, currentWorld); break; + case SDLK_h: + currentWorld->addStructure(TOWN_HALL, player->loc.x, player->loc.y, currentWorld); + break; + case SDLK_j: + currentWorld->addStructure(FOUNTAIN, player->loc.x, player->loc.y, currentWorld); + break; + case SDLK_v: + currentWorld->addVillage(player->loc.x, player->loc.y, 5, 10, 100, currentWorld); + break; + case SDLK_b: + currentWorld->addStructure(FIRE_PIT, player->loc.x, player->loc.y, currentWorld); + break; + case SDLK_F12: + std::cout << "Took screenshot" << std::endl; + // Make the BYTE array, factor of 3 because it's RBG. + static GLubyte* pixels = new GLubyte[ 3 * SCREEN_WIDTH * SCREEN_HEIGHT]; + glReadPixels(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, GL_RGB, GL_UNSIGNED_BYTE, pixels); + + break; default: break; } diff --git a/src/world.cpp b/src/world.cpp index 451a022..e56720d 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -231,9 +231,12 @@ void World::deleteEntities(void){ entity.pop_back(); } while(!particles.empty()){ - delete particles.back(); + //delete particles.back(); particles.pop_back(); } + while(!light.empty()){ + light.pop_back(); + } } World::~World(void){ @@ -426,14 +429,13 @@ void World::update(Player *p,unsigned int delta){ uint oh = 0; for(auto &pa : particles){ if(pa->kill(deltaTime)){ - delete pa; + //delete pa; particles.erase(particles.begin()+oh); }else if(pa->canMove){ pa->loc.y += pa->vely * deltaTime; pa->loc.x += pa->velx * deltaTime; - for(auto &b : build){ - if(b->bsubtype==FOUNTAIN){ + if(b->bsubtype==FOUNTAIN && pa->fountain){ if(pa->loc.x >= b->loc.x && pa->loc.x <= b->loc.x+b->width){ if(pa->loc.y <= b->loc.y + b->height*.25){ delete pa; @@ -442,8 +444,7 @@ void World::update(Player *p,unsigned int delta){ } } } - } - oh++; + }oh++; }oh=0; if(ui::dialogImportant){ @@ -1048,7 +1049,7 @@ LOOOOP: part->velx = 0; part->canMove = false; }else{ - if(part->vely > -2)part->vely-=.003 * deltaTime; + if(!part->gravity && part->vely > -2)part->vely-=.003 * deltaTime; } what++; }what=0; @@ -1067,21 +1068,12 @@ void World::addStructure(BUILD_SUB sub, float x,float y,World *inside){ entity.push_back(build.back()); } -void World::addVillage(int bCount, int npcMin, int npcMax,World *inside){ +void World::addVillage(int x, int y, int bCount, int npcMin, int npcMax,World *inside){ std::cout << npcMin << ", " << npcMax << std::endl; - //int xwasd; - for(int i = 0; i < bCount; i++){ - addStructure(HOUSE,x_start + (i * 300),100,inside); - /*std::cout<<"1\n"; - HERE: - xwasd = (rand()%(int)x+1000*HLINE); - for(auto &bu : build){ - if(xwasd > bu->loc.x && xwasd < bu->loc.x+bu->width)goto HERE; - } - std::cout<<"2\n"; - addStructure(t,HOUSE,xwasd,y,inside); - std::cout<<"3\n";*/ - } + this->addStructure(TOWN_HALL, x,y, inside); + bCount--; + this->addStructure(LAMP_POST, x-3*HLINE,y, this); + this->addStructure(LAMP_POST, x+53*HLINE,y, this); } void World::addMob(int t,float x,float y){ mob.push_back(new Mob(t)); |