fixes and added TODOs

This commit is contained in:
Anselme 2016-05-18 17:50:22 +02:00
parent dfb5d471a6
commit 84a9aad3e0
3 changed files with 21 additions and 10 deletions

View File

@ -2,19 +2,20 @@
#include "map.h"
Simulation::Simulation(Map *_map,std::vector<BehaviorFunction> _behaviors):
Simulation::Simulation(Map *_map, std::vector<BehaviorFunction> &_behaviors):
p_map(_map)
{
int i=0;
for(auto behavior : _behaviors){
for(BehaviorFunction &behavior : _behaviors){
glm::vec3 color;
color[i%3]=0.5f*(1 + i/3);
m_teams.push_back(Team(color, color, behavior));
i++;
// TODO : display the spawns on the map
}
}
void Simulation::run()
void Simulation::update()
{
for(int i=0; i<m_teams.size(); ++i){
Team &t = m_teams[i];
@ -26,5 +27,4 @@ void Simulation::run()
}
t.updateDudes();
}
}

View File

@ -15,8 +15,12 @@ private:
Map *p_map;
std::vector<Team> m_teams;
public:
Simulation(Map *_map, std::vector<BehaviorFunction> _behaviors);
void run();
Simulation(Map *_map, std::vector<BehaviorFunction> &_behaviors);
/**
* @brief update runs one step of simulation
*/
void update();
};
#endif // SIMULATION_H

View File

@ -12,13 +12,20 @@ Team::Team(const glm::vec3 &teamColor, const glm::vec3 &dudeColor, BehaviorFunct
bool Team::updateSpawn()
{
if(m_foodQuantity > 0)
return !(--m_spawnCooldown);
{
--m_spawnCooldown;
if(!m_spawnCooldown)
{
m_spawnCooldown = SPAWN_COOLDOWN;
--m_foodQuantity;
return true;
}
}
return false;
}
void Team::spawn(Coord &d, Map &map)
{
m_spawnCooldown = SPAWN_COOLDOWN;
--m_foodQuantity;
m_dudes.push_back(Dude(d, map));
}
@ -27,6 +34,6 @@ void Team::updateDudes()
for (Dude &dude : m_dudes){
Action* action;
m_behavior(action, dude.getMemory(), &dude);
// TODO perform action
// TODO perform action (cf old_code/main.c -> void handleAction(t_dude* dude) )
}
}