Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 25, 2015, 6:46:20 PM (9 years ago)
Author:
gania
Message:

almost all works now, check AITest.oxw

Location:
code/branches/campaignHS15/src/orxonox/controllers
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc

    r10856 r10859  
    6363    CommonController::CommonController( Context* context ): Controller( context )
    6464    {
    65         this->squaredaccuracy_ = 10000;
     65        this->squaredaccuracy_ = 2500;
    6666        this->bFirstTick_ = true;
    6767        this->tolerance_ = 50;
     
    7171        this->bInLoop_ = false;
    7272        this->bLoop_ = false;
     73        this->bEndLoop_ = false;
     74        this->parsedActionpoints_.clear();
    7375        RegisterObject( CommonController );
     76
    7477    }
    7578    CommonController::~CommonController()
    7679    {
    77        
    7880    }
    7981    void CommonController::tick(float dt)
     
    161163        Vector3 position;
    162164        std::string targetName;
    163         bool inLoop;
     165        bool inLoop = false;
    164166        Point p;
    165167        if (static_cast<Actionpoint*> (actionpoint))
     
    170172            position = ap->getWorldPosition();
    171173
    172             if (!this->bInLoop_ && ap->getStartLoop())
     174            if (this->bEndLoop_)
     175            {
     176                this->bInLoop_ = false;
     177            }
     178            if (!this->bInLoop_ && ap->getLoopStart())
    173179            {
    174180                this->bInLoop_ = true;
    175181            }
    176             if (this->bInLoop_ && ap->getEndLoop())
    177             {
    178                 this->bInLoop_ = false;
     182            if (this->bInLoop_ && ap->getLoopEnd())
     183            {
     184                this->bEndLoop_ = true;
    179185            }
    180186            inLoop = this->bInLoop_;
     
    197203                ThrowException( ParseError, std::string( "Attempting to set an unknown Action: '" )+ actionName + "'." );
    198204            p.action = value; p.name = targetName; p.position = position; p.inLoop = inLoop;
    199             parsedActionpoints_.push_back(p);
    200205        }
    201206        else
     
    519524        while( diff>math::twoPi )diff-=math::twoPi;
    520525        while( diff<-math::twoPi )diff+=math::twoPi;
    521         this->getControllableEntity() ->rotateRoll( diff*ROTATEFACTOR * dt );
     526        this->getControllableEntity() ->rotateRoll( diff*0.2f*ROTATEFACTOR * dt );
    522527    }
    523528    void CommonController::copyTargetOrientation( float dt )
     
    975980    void CommonController::nextActionpoint()
    976981    {
     982        if (!this || !this->getControllableEntity())
     983            return;
    977984        if (this->bLoop_)
    978985        {
     
    10191026    void CommonController::action()
    10201027    {
     1028        if (!this || !this->getControllableEntity())
     1029            return;
     1030        orxout (internal_error) << "Size of actions is " << this->parsedActionpoints_.size() << endl;
    10211031        this->startAttackingEnemiesThatAreClose();
    10221032        //No action -> pop one from stack
     
    11261136      this->bLoop_ = b;
    11271137      this->setAction (Action::NONE);
    1128       this->setTarget(0);
    1129       this->setTargetPosition (this->getControllableEntity()->getWorldPosition());
     1138      // this->setTarget(0);
     1139      // this->setTargetPosition (this->getControllableEntity()->getWorldPosition());
    11301140      orxout(internal_error) << "Top action is " << this->parsedActionpoints_.back().action << endl;
    11311141    }
  • code/branches/campaignHS15/src/orxonox/controllers/CommonController.h

    r10856 r10859  
    138138                virtual void stayNearProtect();
    139139                virtual void action(); //<! action() is called in regular intervals managing the bot's behaviour.
    140            
     140                 virtual void takeActionpoints (std::vector<Point > vector, std::vector<Point > loop, bool b);
     141   
    141142        protected:
    142143            //----[Flying methods]----
     
    227228                bool bFirstTick_;
    228229                bool bInLoop_;
    229                 bool bLoop_;                   
     230                bool bLoop_;   
     231                bool bEndLoop_;               
    230232            //----[/"Private" variables]----   
    231         virtual void takeActionpoints (std::vector<Point > vector, std::vector<Point > loop, bool b);
    232233           
    233234    };
  • code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc

    r10858 r10859  
    5050    DivisionController::~DivisionController()
    5151    {
    52         if (this->myFollower_)
    53         {
    54             this->myFollower_->takeActionpoints(this->parsedActionpoints_, this->loopActionpoints_, this->bLoop_);
    55             if (this->myWingman_)
    56             {
    57                 this->myWingman_->setAction(Action::FIGHTALL);
    58             }
    59         }
    60         else if (this->myWingman_)
    61         {
    62             this->myWingman_->takeActionpoints(this->parsedActionpoints_, this->loopActionpoints_, this->bLoop_);
    63         }
     52        // if (!(this->parsedActionpoints_.empty() && this->loopActionpoints_.empty()))
     53        // {
     54        //     if (this->myFollower_)
     55        //     {
     56        //         this->myFollower_->takeActionpoints(this->parsedActionpoints_, this->loopActionpoints_, this->bLoop_);
     57        //         if (this->myWingman_)
     58        //         {
     59        //             this->myWingman_->setAction(Action::FIGHTALL);
     60        //         }
     61        //     }
     62        //     else if (this->myWingman_)
     63        //     {
     64        //         this->myWingman_->takeActionpoints(this->parsedActionpoints_, this->loopActionpoints_, this->bLoop_);
     65        //     }   
     66        // }
    6467        for (size_t i = 0; i < this->actionpoints_.size(); ++i)
    6568        {
     
    8588    void DivisionController::action()
    8689    {   
     90        if (!this || !this->getControllableEntity())
     91            return;
    8792        CommonController::action();
     93       
    8894    }
    8995    void DivisionController::stayNearProtect()
  • code/branches/campaignHS15/src/orxonox/controllers/LeaderController.cc

    r10856 r10859  
    5252    }
    5353   
    54 
     54   
    5555
    5656}
  • code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc

    r10858 r10859  
    5151    SectionController::~SectionController()
    5252    {
    53         if (this->myWingman_)
    54         {
    55             this->myWingman_->takeActionpoints(this->parsedActionpoints_, this->loopActionpoints_, this->bLoop_);
    56         }
     53        // if (this->myWingman_)
     54        // {
     55        //     this->myWingman_->takeActionpoints(this->parsedActionpoints_, this->loopActionpoints_, this->bLoop_);
     56        // }
    5757       for (size_t i = 0; i < this->actionpoints_.size(); ++i)
    5858        {
     
    8282    void SectionController::action()
    8383    {
     84        if (!this || !this->getControllableEntity())
     85            return;
    8486
    8587        //----If no leader, find one---- 
  • code/branches/campaignHS15/src/orxonox/controllers/WingmanController.cc

    r10858 r10859  
    130130                        return;
    131131                    }
     132                   
    132133                    ControllableEntity* leaderEntity = this->myLeader_->getControllableEntity();
    133134                    Quaternion orient = leaderEntity->getWorldOrientation();
     
    176177                case FormationMode::WALL:
    177178                {
    178                     targetRelativePositionOfWingman = new Vector3 (400, 0, 0); 
     179                    targetRelativePosition = new Vector3 (400, 0, 0); 
    179180                    break;
    180181                }
    181182                case FormationMode::FINGER4:
    182183                {
    183                     targetRelativePositionOfWingman = new Vector3 (400, 0, 200); 
     184                    targetRelativePosition = new Vector3 (400, 0, 200); 
    184185                    break;
    185186                }
    186187                case FormationMode::DIAMOND:
    187188                {
    188                     targetRelativePositionOfWingman = new Vector3 (400, 0, 200);                 
     189                    targetRelativePosition = new Vector3 (400, 0, 200);                 
    189190                    break;
    190191                }
     
    193194        else
    194195        {
     196
    195197            switch (this->formationMode_){
    196198                case FormationMode::WALL:
    197199                {
    198                     targetRelativePositionOfWingman = new Vector3 (-400, 0, 0); 
     200                    targetRelativePosition = new Vector3 (-400, 0, 0); 
    199201                    break;
    200202                }
    201203                case FormationMode::FINGER4:
    202204                {
    203                     targetRelativePositionOfWingman = new Vector3 (-400, 0, 200); 
     205                    targetRelativePosition = new Vector3 (-400, 0, 200); 
    204206                    break;
    205207                }
    206208                case FormationMode::DIAMOND:
    207209                {
    208                     targetRelativePositionOfWingman = new Vector3 (400, -200, 0);                 
     210                    targetRelativePosition = new Vector3 (400, -200, 0);                 
    209211                    break;
    210212                }
Note: See TracChangeset for help on using the changeset viewer.