Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10244 in orxonox.OLD for branches/ai/src/ai/ai_team.cc


Ignore:
Timestamp:
Jan 17, 2007, 12:43:30 AM (17 years ago)
Author:
tfahrni
Message:

tired

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ai/src/ai/ai_team.cc

    r10226 r10244  
    1515#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_AI
    1616#include "ai_team.h"
     17#include "swarm_gorel.h"
     18#include "swarm_module.h"
    1719#include "debug.h"
    1820
    1921void AITeam::process(float dt)
    2022{
    21         std::map<int,AISwarm*>::iterator it;
     23        std::map<int,SwarmModule*>::iterator it;
    2224        for (it= swarms.begin(); it!= swarms.end(); it++ ){
    23                 if(enemyList->size()>0){
    24                         it->second->setTarget(enemyList->at(0));
    25                         it->second->setDestination(enemyList->at(0)->getAbsCoor());
     25       
     26                if(it->second->taskDone()){
     27                        std::cout << "Task Done!\n";
     28                        changeSwarmModule(it, new SwarmGoRel);
     29               
     30                        if(enemyList->size()>0){
     31                                it->second->setEnemyList(enemyList);
     32                                it->second->orderRelObject(enemyList->at(0));
     33                                it->second->orderRelPos(Vector(60,0,0));
     34                                it->second->orderSpeed(50);
     35                                it->second->orderView(Vector(0,0,1));
     36                                it->second->orderMaxTime(5);
     37                        }
    2638                }
    2739                it->second->process(dt);
     
    2941}
    3042
     43void AITeam::changeSwarmModule(std::map<int,SwarmModule*>::iterator it,SwarmModule* newAI)
     44{
     45                        SwarmModule* oldAI = it->second;
     46                        newAI->getAttributesFrom(oldAI);
     47                        it->second=newAI;
     48                        delete oldAI;
     49}
     50
    3151
    3252void AITeam::addAI(int swarmNumber, WorldEntity* npc)
    3353{
    34         std::pair<std::map<int,AISwarm*>::iterator,bool> p;
    35         AISwarm* newSwarm=new AISwarm();
     54        std::pair<std::map<int,SwarmModule*>::iterator,bool> p;
     55        SwarmModule* newSwarm=new SwarmGoRel();
    3656        p=swarms.insert(std::make_pair(swarmNumber,newSwarm));
    3757        if(!p.second)delete newSwarm;
     
    4262void AITeam::removeAI(int swarmNumber, WorldEntity* npc)
    4363{
    44         std::map<int,AISwarm*>::iterator it = swarms.find(swarmNumber);
     64        std::map<int,SwarmModule*>::iterator it = swarms.find(swarmNumber);
    4565        if(it==swarms.end())return;
    4666        it->second->removeAI(npc);
Note: See TracChangeset for help on using the changeset viewer.