Changeset 10137 in orxonox.OLD for branches/ai/src/ai/ai_engine.cc
- Timestamp:
- Dec 21, 2006, 3:49:51 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ai/src/ai/ai_engine.cc
r10135 r10137 1 2 3 1 /* 4 2 orxonox - the future of 3D-vertical-scrollers … … 12 10 13 11 ### File Specific: 14 main-programmer: Patrick Boenzli12 main-programmer: Thomas Fahrni 15 13 co-programmer: 16 14 */ 17 15 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_AI 18 19 16 #include "ai_engine.h" 20 17 #include "debug.h" … … 22 19 AIEngine* AIEngine::singletonRef = NULL; 23 20 24 AIEngine::AIEngine(){ 25 for(int i=0; i < maxTeams; i++ )teams[i]=NULL; 21 void AIEngine::tick(float dt) 22 { 23 std::map<int,AITeam*>::iterator it; 24 for (it= teams.begin(); it!= teams.end(); it++ ) 25 it->second->process(dt); 26 26 } 27 27 28 AITeam* AIEngine::getTeam(int teamNumber)28 void AIEngine::addAI(int teamNumber, int swarmNumber, AIModule* aiModule) 29 29 { 30 if(teamNumber>maxTeams || teamNumber<0)return NULL; 31 return teams[teamNumber]; 30 std::pair<std::map<int,AITeam*>::iterator,bool> p; 31 AITeam* newTeam=new AITeam(); 32 p=teams.insert(std::make_pair(teamNumber,newTeam)); 33 if(!p.second)delete newTeam; 34 p.first->second->addAI(swarmNumber, aiModule); 32 35 } 33 36 34 AITeam* AIEngine::getCreateTeam(int teamNumber)37 void AIEngine::removeAI(int teamNumber, int swarmNumber, AIModule* aiModule) 35 38 { 36 if(teamNumber>maxTeams || teamNumber<0)return NULL; 37 if(teams[teamNumber]==NULL)teams[teamNumber]=new AITeam(); 38 return teams[teamNumber]; 39 std::map<int,AITeam*>::iterator it = teams.find(swarmNumber); 40 if(it==teams.end())return; 41 it->second->removeAI(swarmNumber,aiModule); 42 if(it->second->getTeamSize()==0){ 43 delete it->second; 44 teams.erase(it); 45 } 39 46 } 40 47 41 42 void AIEngine::addTeam(int teamNumber)43 {44 if(teamNumber>maxTeams || teamNumber<0)return;45 teams[teamNumber]=new AITeam();46 }47 48 49 void AIEngine::removeTeam(int teamNumber)50 {51 if(teamNumber>maxTeams || teamNumber<0)return;52 teams[teamNumber]=NULL;53 }54 55 56 void AIEngine::tick(float dt)57 {58 for(int i=0; i < maxTeams; i++ )59 if(teams[i]!=NULL)teams[i]->process(dt);60 }61 62 63 void AIEngine::rebuildAIVector(){64 //AIVector.clear();65 66 //for(int i=0; i < maxTeams; i++ )67 //if(teams[i]!=NULL)AIVector.push_back(teams[i]);68 }
Note: See TracChangeset
for help on using the changeset viewer.