aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordrumsetmonkey <abelleisle@roadrunner.com>2016-01-13 07:31:16 -0500
committerdrumsetmonkey <abelleisle@roadrunner.com>2016-01-13 07:31:16 -0500
commit23a4b0cc3ab09d58127a73b12c43aff37e5056ef (patch)
tree0e7d2f923311804c6a9e4270812174de45f2f7d2 /src
parent1574754cdaca14d68459cc520b63b6b3c449ecbd (diff)
Fire Pit
Diffstat (limited to 'src')
-rw-r--r--src/common.cpp1
-rw-r--r--src/entities.cpp26
-rw-r--r--src/ui.cpp19
-rw-r--r--src/world.cpp34
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;
}
diff --git a/src/ui.cpp b/src/ui.cpp
index 0d01033..4212307 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -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));