Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 15, 2014, 5:10:55 PM (10 years ago)
Author:
muemart
Message:

Fix team acquisition, edit test level and start to try to make a raytest

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/turretFS14/src/modules/objects/controllers/TeamTargetProxy.cc

    r10049 r10060  
    2828
    2929#include "TeamTargetProxy.h"
     30#include "worldentities/ControllableEntity.h"
    3031#include "worldentities/pawns/Pawn.h"
    3132
    32  namespace orxonox
    33  {
    34         RegisterClass(TeamTargetProxy);
     33namespace orxonox
     34{
     35        RegisterClass(TeamTargetProxy);
    3536
    36         TeamTargetProxy::TeamTargetProxy(Context* context) : FormationController(context)
     37   /**
     38       @brief
     39       Sets default values for all variables.
     40
     41       @param context
     42       The context
     43    */
     44        TeamTargetProxy::TeamTargetProxy(Context* context) : FormationController(context)
    3745        {
    3846                RegisterObject(TeamTargetProxy);
     
    4149        }
    4250
     51    /**
     52        @brief
     53        Destructor. Nothing to see here.
     54     */
    4355        TeamTargetProxy::~TeamTargetProxy()
    4456        {
    4557        }
    4658
     59    /**
     60        @brief
     61        Copies the team and the target from the parent.
     62
     63        That's all there is.
     64    */
    4765        void TeamTargetProxy::tick(float dt)
    4866        {
     
    5169
    5270        ControllableEntity* parent = orxonox_cast<ControllableEntity*> (this->getControllableEntity()->getParent());
    53                
    5471
     72        if(this->getTeam() != -1 && !this->once_ && parent)
     73        {
     74            orxout(internal_warning) << "TeamTargetProxy: Team already set, may result in undesired behaviour. Will get overridden by the parent's team." << endl;
     75        }
     76
     77        if(!this->once_)
     78            this->once_ = true;
     79
     80        //Teams aren't set immediately, after creation, so we have to check every tick...
     81        if(parent)
     82        {
     83            Controller* parentcontroller = parent->getController();
     84            if(parentcontroller)
     85            {
     86                this->setTeam(parentcontroller->getTeam());
     87            }
     88            else
     89            {
     90                this->setTeam(parent->getTeam());
     91            }
     92            this->getControllableEntity()->setTeam(parent->getTeam());
     93        }
    5594
    5695        if(parent)
    5796        {
    58 
    59             if(!this->once_)
    60             {
    61                 //Set the same team
    62                 if(parent)
    63                 {
    64                     Controller* parentcontroller = parent->getController();
    65                     if(parentcontroller)
    66                     {
    67                         this->setTeam(parentcontroller->getTeam());
    68                     }
    69                     else
    70                     {
    71                         this->setTeam(parent->getTeam());
    72                     }
    73                     this->getControllableEntity()->setTeam(parent->getTeam());
    74                 }
    75                 this->once_ = true;
    76             }
    77 
    7897            Pawn* parenttarget = orxonox_cast<Pawn*>(parent->getTarget());
    7998            if(parenttarget)
     
    83102            }
    84103        }
    85 
    86104        }
    87  }
     105}
Note: See TracChangeset for help on using the changeset viewer.