Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jan 17, 2016, 10:29:21 PM (9 years ago)
Author:
landauf
Message:

merged branch cpp11_v3 back to trunk

Location:
code/trunk
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/orxonox/controllers/AIController.cc

    r9667 r11071  
    249249            }
    250250            else
    251                 this->setPreviousMode();//If bot dies -> getControllableEntity == NULL -> get out of ROCKET mode
     251                this->setPreviousMode();//If bot dies -> getControllableEntity == nullptr -> get out of ROCKET mode
    252252        }//END_OF ROCKET MODE
    253253
  • code/trunk/src/orxonox/controllers/AIController.h

    r9667 r11071  
    4444            virtual ~AIController();
    4545
    46             virtual void tick(float dt); //<! Carrying out the targets set in action().
     46            virtual void tick(float dt) override; //<! Carrying out the targets set in action().
    4747
    4848        protected:
  • code/trunk/src/orxonox/controllers/ActionpointController.cc

    r11052 r11071  
    339339            inLoop = this->bInLoop_;
    340340
    341             Action::Value value;
     341            Action value;
    342342           
    343343            if ( actionName == "FIGHT" )
     
    371371            return this->actionpoints_[index];
    372372        else
    373             return 0;
     373            return nullptr;
    374374    }
    375375    //XML method
    376     Action::Value ActionpointController::getAction ()
     376    Action ActionpointController::getAction ()
    377377    {
    378378        return this->action_;
     
    401401    }
    402402    //XML method
    403     void ActionpointController::setAction (Action::Value action)
     403    void ActionpointController::setAction (Action action)
    404404    {
    405405        this->action_ = action;
    406406    }
    407407    //set action and target/protect
    408     void ActionpointController::setAction (Action::Value action, ControllableEntity* target)
     408    void ActionpointController::setAction (Action action, ControllableEntity* target)
    409409    {
    410410        if (!this || !this->getControllableEntity())
     
    423423    }
    424424    //set action and target position
    425     void ActionpointController::setAction (Action::Value action, const Vector3& target)
     425    void ActionpointController::setAction (Action action, const Vector3& target)
    426426    {
    427427        if (!this || !this->getControllableEntity())
     
    434434    }
    435435    //set action and target position and orientation
    436     void ActionpointController::setAction (Action::Value action, const Vector3& target,  const Quaternion& orient )
     436    void ActionpointController::setAction (Action action, const Vector3& target,  const Quaternion& orient )
    437437    {
    438438        if (!this || !this->getControllableEntity())
     
    476476                return;
    477477
    478             this->setTarget(0);
     478            this->setTarget(nullptr);
    479479            this->setTargetPosition(this->getControllableEntity()->getWorldPosition());
    480480            this->action_ = Action::NONE;
     
    506506                if (targetName == "")
    507507                    break;
    508                 for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
    509                 {
    510                     if (!this || !this->getControllableEntity())
    511                         return;
    512                     if (CommonController::getName(*itP) == targetName)
     508                for (Pawn* pawn : ObjectList<Pawn>())
     509                {
     510                    if (!this || !this->getControllableEntity())
     511                        return;
     512                    if (CommonController::getName(pawn) == targetName)
    513513                    {
    514                         this->setTarget (static_cast<ControllableEntity*>(*itP));
     514                        this->setTarget (static_cast<ControllableEntity*>(pawn));
    515515                    }
    516516                }
     
    541541                if (protectName == "reservedKeyword:human")
    542542                {
    543                     for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
     543                    for (Pawn* pawn : ObjectList<Pawn>())
    544544                    {
    545                         if (orxonox_cast<ControllableEntity*>(*itP) && ((*itP)->getController()) && ((*itP)->getController()->getIdentifier()->getName() == "NewHumanController"))
     545                        if (orxonox_cast<ControllableEntity*>(pawn) && (pawn->getController()) && (pawn->getController()->getIdentifier()->getName() == "NewHumanController"))
    546546                        {
    547                             this->setProtect (static_cast<ControllableEntity*>(*itP));
     547                            this->setProtect (static_cast<ControllableEntity*>(pawn));
    548548                        }
    549549                    }
     
    551551                else
    552552                {
    553                     for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
     553                    for (Pawn* pawn : ObjectList<Pawn>())
    554554                    {
    555                         if (CommonController::getName(*itP) == protectName)
     555                        if (CommonController::getName(pawn) == protectName)
    556556                        {
    557                             this->setProtect (static_cast<ControllableEntity*>(*itP));
     557                            this->setProtect (static_cast<ControllableEntity*>(pawn));
    558558                        }
    559559                    }                           
     
    578578                std::string targetName = p.name;
    579579
    580                 for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
    581                 {
    582                     if (CommonController::getName(*itP) == targetName)
     580                for (Pawn* pawn : ObjectList<Pawn>())
     581                {
     582                    if (CommonController::getName(pawn) == targetName)
    583583                    {
    584584                        if (!this || !this->getControllableEntity())
    585585                            return;
    586                         this->setTarget (static_cast<ControllableEntity*>(*itP));
     586                        this->setTarget (static_cast<ControllableEntity*>(pawn));
    587587                    }
    588588                }
     
    702702    {
    703703        if (!this || !this->getControllableEntity())
    704             return 0;
    705 
    706         Pawn* closestTarget = 0;
     704            return nullptr;
     705
     706        Pawn* closestTarget = nullptr;
    707707        float minDistance =  std::numeric_limits<float>::infinity();
    708708        Gametype* gt = this->getGametype();
    709         for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
     709        for (Pawn* pawn : ObjectList<Pawn>())
    710710        {
    711711            if (!this || !this->getControllableEntity())
    712                 return 0;
    713             if ( CommonController::sameTeam (this->getControllableEntity(), static_cast<ControllableEntity*>(*itP), gt) )
     712                return nullptr;
     713            if ( CommonController::sameTeam (this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), gt) )
    714714                continue;
    715715
    716             float distance = CommonController::distance (*itP, this->getControllableEntity());
     716            float distance = CommonController::distance (pawn, this->getControllableEntity());
    717717            if (distance < minDistance)
    718718            {
    719                 closestTarget = *itP;
     719                closestTarget = pawn;
    720720                minDistance = distance;
    721721            }
     
    725725           return closestTarget;
    726726        }
    727         return 0; 
     727        return nullptr;
    728728    }
    729729    //push action FIGHT to the stack and set target to the closest enemy
  • code/trunk/src/orxonox/controllers/ActionpointController.h

    r11052 r11071  
    6565        All the demos are in a file called AITest.oxw. In the menu look for New AI Testing Level.
    6666    */
    67     namespace Action
     67    enum class Action
    6868    { 
    69         enum Value
    70         {
    71             NONE, FLY, FIGHT, PROTECT, FIGHTALL, ATTACK
    72         };
    73        
    74     }
     69        NONE, FLY, FIGHT, PROTECT, FIGHTALL, ATTACK
     70    };
    7571   
    7672    struct Point {
    77         Action::Value action;
     73        Action action;
    7874        std::string name;
    7975        Vector3 position;
    8076        bool inLoop;
    81     } ;
    82     namespace PickupType
    83     {
    84         enum Value
    85         { 
    86             NONE, DAMAGE, HEALTH, SPEED, PORTAL
    87         };
    88     }
     77    };
    8978
    9079    class _OrxonoxExport ActionpointController : public FightingController, public Tickable
     
    9483            ActionpointController(Context* context);
    9584            virtual ~ActionpointController();
    96             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);         
     85            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    9786               
    9887            /**
     
    10190                In tick ship flies and fires.
    10291            */
    103             virtual void tick(float dt);   
     92            virtual void tick(float dt) override;
    10493            /**
    10594            @brief
     
    186175            virtual void takeActionpoints (const std::vector<Point>& vector, const std::vector<Point>& loop, bool b);
    187176
    188             virtual Action::Value getAction ();
     177            virtual Action getAction ();
    189178            virtual std::string getActionName();
    190179
    191             void setAction (Action::Value action);
    192             void setAction (Action::Value action, ControllableEntity* target);
    193             void setAction (Action::Value action, const Vector3& target);
    194             void setAction (Action::Value action, const Vector3& target,  const Quaternion& orient );
     180            void setAction (Action action);
     181            void setAction (Action action, ControllableEntity* target);
     182            void setAction (Action action, const Vector3& target);
     183            void setAction (Action action, const Vector3& target,  const Quaternion& orient );
    195184
    196185            virtual bool setWingman(ActionpointController* wingman)
     
    210199                WeakPtr<ActionpointController> myDivisionLeader_;
    211200            //----[Actionpoint information]----
    212                 Action::Value action_;
     201                Action action_;
    213202                std::string protectName_;
    214203                std::string targetName_;
    215                 std::vector<WeakPtr<WorldEntity> > actionpoints_;
     204                std::vector<WeakPtr<WorldEntity>> actionpoints_;
    216205                float squaredaccuracy_;
    217                 std::vector<Point > parsedActionpoints_;//<! actionpoints as they are stored here after being parsed from XML
    218                 std::vector<Point > loopActionpoints_;  //<! actionpoints that are to be looped
     206                std::vector<Point> parsedActionpoints_; //<! actionpoints as they are stored here after being parsed from XML
     207                std::vector<Point> loopActionpoints_;   //<! actionpoints that are to be looped
    219208                bool bInLoop_;                          //<! variable for addActionpoint method
    220209                bool bLoop_;                            //<! is state machine looping?
  • code/trunk/src/orxonox/controllers/ArtificialController.cc

    r11052 r11071  
    5656        this->currentWaypoint_ = 0;
    5757        this->setAccuracy(5);
    58         this->defaultWaypoint_ = NULL;
     58        this->defaultWaypoint_ = nullptr;
    5959        this->mode_ = DEFAULT;//Vector-implementation: mode_.push_back(DEFAULT);
    6060    }
     
    177177            {
    178178                this->weaponModes_.clear(); // reset previous weapon information
    179                 WeaponSlot* wSlot = 0;
     179                WeaponSlot* wSlot = nullptr;
    180180                for(int l=0; (wSlot = pawn->getWeaponSlot(l)) ; l++)
    181181                {
    182                     WeaponMode* wMode = 0;
     182                    WeaponMode* wMode = nullptr;
    183183                    for(int i=0; (wMode = wSlot->getWeapon()->getWeaponmode(i)) ; i++)
    184184                    {
     
    207207    void ArtificialController::setAllBotLevel(float level)
    208208    {
    209         for (ObjectList<ArtificialController>::iterator it = ObjectList<ArtificialController>::begin(); it != ObjectList<ArtificialController>::end(); ++it)
    210             it->setBotLevel(level);
     209        for (ArtificialController* controller : ObjectList<ArtificialController>())
     210            controller->setBotLevel(level);
    211211    }
    212212
     
    222222    {
    223223        SpaceShip* ship = orxonox_cast<SpaceShip*>(this->getControllableEntity());
    224         if(ship == NULL) return;
     224        if(ship == nullptr) return;
    225225        if(ship->getBoostPower()*1.5f > ship->getInitialBoostPower() ) //upper limit ->boost
    226226            this->getControllableEntity()->boost(true);
     
    231231    int ArtificialController::getFiremode(std::string name)
    232232    {
    233         for (std::map< std::string, int >::iterator it = this->weaponModes_.begin(); it != this->weaponModes_.end(); ++it)
    234         {
    235             if (it->first == name)
    236                 return it->second;
     233        for (const auto& mapEntry : this->weaponModes_)
     234        {
     235            if (mapEntry.first == name)
     236                return mapEntry.second;
    237237        }
    238238        return -1;
     
    249249            return this->waypoints_[index];
    250250        else
    251             return 0;
     251            return nullptr;
    252252    }
    253253
     
    258258    void ArtificialController::updatePointsOfInterest(std::string name, float searchDistance)
    259259    {
    260         WorldEntity* waypoint = NULL;
    261         for (ObjectList<WorldEntity>::iterator it = ObjectList<WorldEntity>::begin(); it != ObjectList<WorldEntity>::end(); ++it)
    262         {
    263             if((*it)->getIdentifier() == ClassByString(name))
     260        WorldEntity* waypoint = nullptr;
     261        for (WorldEntity* we : ObjectList<WorldEntity>())
     262        {
     263            if(we->getIdentifier() == ClassByString(name))
    264264            {
    265265                ControllableEntity* controllable = this->getControllableEntity();
    266266                if(!controllable) continue;
    267                 float actualDistance = ( (*it)->getPosition() - controllable->getPosition() ).length();
     267                float actualDistance = ( we->getPosition() - controllable->getPosition() ).length();
    268268                if(actualDistance > searchDistance || actualDistance < 5.0f) continue;
    269269                    // TODO: PickupSpawner: adjust waypoint accuracy to PickupSpawner's triggerdistance
     
    271271                else
    272272                {
    273                     waypoint = *it;
     273                    waypoint = we;
    274274                    break;
    275275                }
  • code/trunk/src/orxonox/controllers/ArtificialController.h

    r9667 r11071  
    4242            virtual ~ArtificialController();
    4343
    44             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
     44            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    4545
    4646            void abandonTarget(Pawn* target);
    4747
    48             virtual void changedControllableEntity();
     48            virtual void changedControllableEntity() override;
    4949
    5050            virtual void doFire();
     
    8989
    9090            //WAYPOINT DATA
    91             std::vector<WeakPtr<WorldEntity> > waypoints_;
     91            std::vector<WeakPtr<WorldEntity>> waypoints_;
    9292            size_t currentWaypoint_;
    9393            float squaredaccuracy_;
  • code/trunk/src/orxonox/controllers/CommonController.cc

    r11052 r11071  
    8383        int team2 = entity2->getTeam();
    8484
    85         Controller* controller = 0;
     85        Controller* controller = nullptr;
    8686        if (entity1->getController())
    8787            controller = entity1->getController();
     
    120120        }
    121121
    122         TeamBaseMatchBase* base = 0;
     122        TeamBaseMatchBase* base = nullptr;
    123123        base = orxonox_cast<TeamBaseMatchBase*>(entity1);
    124124        if (base)
     
    154154        }
    155155
    156         DroneController* droneController = 0;
     156        DroneController* droneController = nullptr;
    157157        droneController = orxonox_cast<DroneController*>(entity1->getController());
    158158        if (droneController && static_cast<ControllableEntity*>(droneController->getOwner()) == entity2)
  • code/trunk/src/orxonox/controllers/Controller.cc

    r9797 r11071  
    4040        RegisterObject(Controller);
    4141
    42         this->player_ = 0;
    43         this->controllableEntity_ = 0;
     42        this->player_ = nullptr;
     43        this->controllableEntity_ = nullptr;
    4444        this->bGodMode_ = false;
    4545        this->team_=-1;
  • code/trunk/src/orxonox/controllers/Controller.h

    r9797 r11071  
    4545            Controller(Context* context);
    4646            virtual ~Controller();
    47             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
     47            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    4848            inline void setPlayer(PlayerInfo* player)
    4949                { this->player_ = player; }
  • code/trunk/src/orxonox/controllers/ControllerDirector.cc

    r10622 r11071  
    3232
    3333        // Initialize member variables
    34         this->player_ = NULL;
    35         this->entity_ = NULL;
    36         this->pTrigger_ = NULL;
     34        this->player_ = nullptr;
     35        this->entity_ = nullptr;
     36        this->pTrigger_ = nullptr;
    3737        this->context_ = context;
    3838    }
     
    110110    {
    111111        this->pTrigger_ = orxonox_cast<PlayerTrigger*>(trigger);
    112         this->player_ = NULL;
     112        this->player_ = nullptr;
    113113
    114114        orxout(verbose) << "Preparation to take Control!" << endl;
    115115
    116116        // Check whether it is a player trigger and extract pawn from it
    117         if(this->pTrigger_ != NULL)
     117        if(this->pTrigger_ != nullptr)
    118118        {
    119119            // Get the object which triggered the event.
     
    121121
    122122            // Check if there actually was a player returned.
    123             if( this->player_ == NULL) return false;
     123            if( this->player_ == nullptr) return false;
    124124        }
    125125        else
  • code/trunk/src/orxonox/controllers/ControllerDirector.h

    r10622 r11071  
    4343            virtual ~ControllerDirector() { }
    4444
    45             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
     45            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    4646            bool party(bool bTriggered, BaseObject* trigger);
    47             virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
     47            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
    4848
    4949            inline void setScriptName(const std::string& name) { this->scriptname_ = name; }
  • code/trunk/src/orxonox/controllers/DivisionController.cc

    r11052 r11071  
    4040        RegisterObject(DivisionController);
    4141        this->setFormationMode(FormationMode::DIAMOND);
    42         this->target_ = 0;
    43         this->myFollower_ = 0;
    44         this->myWingman_ = 0;
     42        this->target_ = nullptr;
     43        this->myFollower_ = nullptr;
     44        this->myWingman_ = nullptr;
    4545    }
    4646
    4747    DivisionController::~DivisionController()
    4848    {
    49         for (size_t i = 0; i < this->actionpoints_.size(); ++i)
     49        for (WorldEntity* actionpoint : this->actionpoints_)
    5050        {
    51             if(this->actionpoints_[i])
    52                 this->actionpoints_[i]->destroy();
     51            if (actionpoint)
     52                actionpoint->destroy();
    5353        }
    5454        this->parsedActionpoints_.clear();
    5555        this->actionpoints_.clear();
    5656    }
    57 
    58     void DivisionController::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    59     {
    60         SUPER(DivisionController, XMLPort, xmlelement, mode);
    61        
    62     }
    63     void DivisionController::tick(float dt)
    64     {   
    65         if (!this->isActive())
    66             return;   
    67        
    68         SUPER(DivisionController, tick, dt);
    69        
    70     }
    7157    void DivisionController::action()
    7258    {   
  • code/trunk/src/orxonox/controllers/DivisionController.h

    r11052 r11071  
    5050            //----[/language demanded functions]----           
    5151
    52             //----[orxonox demanded functions]----
    53                 virtual void tick(float dt);
    54 
    55                 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);         
    56             //----[orxonox demanded functions]----
    57 
    5852            //----[own functions]----
    59                 virtual bool setFollower(ActionpointController* newFollower);
    60                 virtual bool setWingman(ActionpointController* newWingman);
    61                 virtual bool hasWingman();
    62                 virtual bool hasFollower();
     53                virtual bool setFollower(ActionpointController* newFollower) override;
     54                virtual bool setWingman(ActionpointController* newWingman) override;
     55                virtual bool hasWingman() override;
     56                virtual bool hasFollower() override;
    6357               
    6458            //----[/own functions]----
    65             virtual void stayNearProtect();
     59            virtual void stayNearProtect() override;
    6660
    6761        protected:
    6862            //----action must only be managed by this----
    69             virtual void action(); //<! action() is called in regular intervals managing the bot's behaviour.
     63            virtual void action() override; //<! action() is called in regular intervals managing the bot's behaviour.
    7064
    7165        private:
  • code/trunk/src/orxonox/controllers/DroneController.cc

    r9667 r11071  
    4949        RegisterObject(DroneController);
    5050
    51         this->owner_ = 0;
    52         this->drone_ = 0;
     51        this->owner_ = nullptr;
     52        this->drone_ = nullptr;
    5353        this->isShooting_ = false;
    5454        this->setAccuracy(10);
  • code/trunk/src/orxonox/controllers/DroneController.h

    r9667 r11071  
    5353            virtual ~DroneController();
    5454
    55             virtual void tick(float dt); //!< The controlling happens here. This method defines what the controller has to do each tick.
     55            virtual void tick(float dt) override; //!< The controlling happens here. This method defines what the controller has to do each tick.
    5656
    5757            void setOwner(Pawn* owner);
  • code/trunk/src/orxonox/controllers/FightingController.cc

    r11052 r11071  
    2727 */
    2828#include "controllers/FightingController.h"
    29 #include "core/XMLPort.h"
    3029#include "util/Math.h"
    3130
     
    5655    {
    5756       
    58     }
    59     void FightingController::XMLPort( Element& xmlelement, XMLPort::Mode mode )
    60     {
    61         SUPER( FightingController, XMLPort, xmlelement, mode );
    6257    }
    6358    void FightingController::lookAtTarget(float dt)
     
    243238    {
    244239        if (!this || !this->getControllableEntity())
    245             return 0;
    246 
    247         Pawn* closestTarget = 0;
     240            return nullptr;
     241
     242        Pawn* closestTarget = nullptr;
    248243        float minDistance =  std::numeric_limits<float>::infinity();
    249244        Gametype* gt = this->getGametype();
    250         for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
    251         {
    252             if ( CommonController::sameTeam (this->getControllableEntity(), static_cast<ControllableEntity*>(*itP), gt) )
     245        for (Pawn* pawn : ObjectList<Pawn>())
     246        {
     247            if ( CommonController::sameTeam (this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), gt) )
    253248                continue;
    254249
    255             float distance = CommonController::distance (*itP, this->getControllableEntity());
     250            float distance = CommonController::distance (pawn, this->getControllableEntity());
    256251            if (distance < minDistance)
    257252            {
    258                 closestTarget = *itP;
     253                closestTarget = pawn;
    259254                minDistance = distance;
    260255            }
     
    264259           return closestTarget;
    265260        }
    266         return 0; 
     261        return nullptr;
    267262    }
    268263    //I checked it out, rockets DO NOT cause any problems! this->getControllableEntity() is always a SpaceShip
     
    340335            {
    341336                this->weaponModes_.clear(); // reset previous weapon information
    342                 WeaponSlot* wSlot = 0;
     337                WeaponSlot* wSlot = nullptr;
    343338                for(int l=0; (wSlot = pawn->getWeaponSlot(l)) ; l++)
    344339                {
    345                     WeaponMode* wMode = 0;
     340                    WeaponMode* wMode = nullptr;
    346341                    for(int i=0; (wMode = wSlot->getWeapon()->getWeaponmode(i)) ; i++)
    347342                    {
     
    361356    }
    362357
    363     int FightingController::getFiremode(std::string name)
    364     {
    365         for (std::map< std::string, int >::iterator it = this->weaponModes_.begin(); it != this->weaponModes_.end(); ++it)
    366         {
    367             if (it->first == name)
    368                 return it->second;
     358    int FightingController::getFiremode(const std::string& name)
     359    {
     360        for (const auto& mapEntry : this->weaponModes_)
     361        {
     362            if (mapEntry.first == name)
     363                return mapEntry.second;
    369364        }
    370365        return -1;
  • code/trunk/src/orxonox/controllers/FightingController.h

    r11052 r11071  
    5050            virtual ~FightingController();
    5151           
    52             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
    53        
    5452            float squaredDistanceToTarget() const;
    5553            bool isLookingAtTarget(float angle) const;
     
    7472                                                                        //<! this and target_ plus or minus some amount in difference vector direction,
    7573                                                                        //<! depending on whether it is better to close up or survive.
    76             void dodgeTowards (Vector3& position);  //fly towards position and awoid being hit
    7774            void doFire();  //<! choose weapon, set aim at target_ and fire
    7875            WeakPtr<ControllableEntity> target_;
     
    9996            void setupWeapons(); //<! Defines which weapons are available for a bot. Is recalled whenever a bot was killed.
    10097            bool bSetupWorked; //<! If false, setupWeapons() is called.
    101             int getFiremode(std::string name);
     98            int getFiremode(const std::string& name);
    10299         
    103100    };
  • code/trunk/src/orxonox/controllers/FlyingController.cc

    r11052 r11071  
    6161    }
    6262   
    63     void FlyingController::setFormationModeXML(std::string val)
     63    void FlyingController::setFormationModeXML(const std::string& val)
    6464    {
    6565        const std::string valUpper = getUppercase(val);
    66         FormationMode::Value value;
     66        FormationMode value;
    6767       
    6868        if (valUpper == "WALL")
     
    233233            return;
    234234        SpaceShip* ship = orxonox_cast<SpaceShip*>(this->getControllableEntity());
    235         if(ship == NULL) return;
     235        if(ship == nullptr) return;
    236236        if(ship->getBoostPower()*1.5f > ship->getInitialBoostPower()) //upper limit ->boost
    237237        {
  • code/trunk/src/orxonox/controllers/FlyingController.h

    r11052 r11071  
    4141
    4242    //Formation mode for the divisions
    43     namespace FormationMode
     43    enum class FormationMode
    4444    {
    45         enum Value
    46         {
    47             FINGER4, DIAMOND, WALL
    48         };
    49     }
     45        FINGER4, DIAMOND, WALL
     46    };
    5047
    5148    class _OrxonoxExport FlyingController : public CommonController
     
    5855            FlyingController(Context* context);
    5956            virtual ~FlyingController();
    60             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
     57            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    6158
    6259            void setSpread (int spread)                         //<! spread is a multiplier for formation flight, should be bigger than 100
     
    6562                { return this->spread_; }
    6663
    67             void setFormationModeXML(std::string val);
     64            void setFormationModeXML(const std::string& val);
    6865            std::string getFormationModeXML() const;
    6966
    70             void setFormationMode(FormationMode::Value val)
     67            void setFormationMode(FormationMode val)
    7168                { this->formationMode_ = val; }
    72             FormationMode::Value getFormationMode() const
     69            FormationMode getFormationMode() const
    7370                { return this->formationMode_; }
    7471            bool bCopyOrientation_;                             //<! set to true by default, MasterController sets it in its tick(),
     
    9188                                                                    //<! this stays in a certain position relative to leader     
    9289           
    93             FormationMode::Value formationMode_;
     90            FormationMode formationMode_;
    9491         
    9592            float rotationProgress_;    //<! for slerping
  • code/trunk/src/orxonox/controllers/FormationController.cc

    r11052 r11071  
    5858    RegisterClass(FormationController);
    5959
    60     static const unsigned int STANDARD_MAX_FORMATION_SIZE = 9;
    61     static const int RADIUS_TO_SEARCH_FOR_MASTERS = 5000;
    62     static const float FORMATION_LENGTH =  110;
    63     static const float FORMATION_WIDTH =  110;
    64     static const int FREEDOM_COUNT = 4; //seconds the slaves in a formation will be set free when master attacks an enemy
    65     static const float SPEED_MASTER = 0.6f;
    66     static const float ROTATEFACTOR_MASTER = 0.2f;
    67     static const float SPEED_FREE = 0.8f;
    68     static const float ROTATEFACTOR_FREE = 0.8f;
     60    static constexpr unsigned int STANDARD_MAX_FORMATION_SIZE = 9;
     61    static constexpr int RADIUS_TO_SEARCH_FOR_MASTERS = 5000;
     62    static constexpr float FORMATION_LENGTH =  110;
     63    static constexpr float FORMATION_WIDTH =  110;
     64    static constexpr int FREEDOM_COUNT = 4; //seconds the slaves in a formation will be set free when master attacks an enemy
     65    static constexpr float SPEED_MASTER = 0.6f;
     66    static constexpr float ROTATEFACTOR_MASTER = 0.2f;
     67    static constexpr float SPEED_FREE = 0.8f;
     68    static constexpr float ROTATEFACTOR_FREE = 0.8f;
    6969
    7070    FormationController::FormationController(Context* context) : Controller(context)
     
    7272        RegisterObject(FormationController);
    7373
    74         this->target_ = 0;
     74        this->target_ = nullptr;
    7575        this->formationFlight_ = false;
    7676        this->passive_ = false;
    7777        this->maxFormationSize_ = STANDARD_MAX_FORMATION_SIZE;
    78         this->myMaster_ = 0;
     78        this->myMaster_ = nullptr;
    7979        this->freedomCount_ = 0;
    8080
     
    9797            this->removeFromFormation();
    9898
    99             for (ObjectList<FormationController>::iterator it = ObjectList<FormationController>::begin(); it; ++it)
    100             {
    101                 if (*it != this)
     99            for (FormationController* controller : ObjectList<FormationController>())
     100            {
     101                if (controller != this)
    102102                {
    103                     if (it->myMaster_ == this)
     103                    if (controller->myMaster_ == this)
    104104                    {
    105                         orxout(internal_error) << this << " is still master in " << (*it) << endl;
    106                         it->myMaster_ = 0;
     105                        orxout(internal_error) << this << " is still master in " << controller << endl;
     106                        controller->myMaster_ = nullptr;
    107107                    }
    108108
    109109                    while (true)
    110110                    {
    111                         std::vector<FormationController*>::iterator it2 = std::find(it->slaves_.begin(), it->slaves_.end(), this);
    112                         if (it2 != it->slaves_.end())
     111                        std::vector<FormationController*>::iterator it2 = std::find(controller->slaves_.begin(), controller->slaves_.end(), this);
     112                        if (it2 != controller->slaves_.end())
    113113                        {
    114                             orxout(internal_error) << this << " is still slave in " << (*it) << endl;
    115                             it->slaves_.erase(it2);
     114                            orxout(internal_error) << this << " is still slave in " << controller << endl;
     115                            controller->slaves_.erase(it2);
    116116                        }
    117117                        else
     
    140140    void FormationController::formationflight(const bool form)
    141141    {
    142         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    143         {
    144             Controller* controller = 0;
    145 
    146             if (it->getController())
    147                 controller = it->getController();
    148             else if (it->getXMLController())
    149                 controller = it->getXMLController();
     142        for (Pawn* pawn : ObjectList<Pawn>())
     143        {
     144            Controller* controller = nullptr;
     145
     146            if (pawn->getController())
     147                controller = pawn->getController();
     148            else if (pawn->getXMLController())
     149                controller = pawn->getXMLController();
    150150
    151151            if (!controller)
     
    171171    void FormationController::masteraction(const int action)
    172172    {
    173         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    174         {
    175             Controller* controller = 0;
    176 
    177             if (it->getController())
    178                 controller = it->getController();
    179             else if (it->getXMLController())
    180                 controller = it->getXMLController();
     173        for (Pawn* pawn : ObjectList<Pawn>())
     174        {
     175            Controller* controller = nullptr;
     176
     177            if (pawn->getController())
     178                controller = pawn->getController();
     179            else if (pawn->getXMLController())
     180                controller = pawn->getXMLController();
    181181
    182182            if (!controller)
     
    201201    void FormationController::passivebehaviour(const bool passive)
    202202    {
    203         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    204         {
    205             Controller* controller = 0;
    206 
    207             if (it->getController())
    208                 controller = it->getController();
    209             else if (it->getXMLController())
    210                 controller = it->getXMLController();
     203        for (Pawn* pawn : ObjectList<Pawn>())
     204        {
     205            Controller* controller = nullptr;
     206
     207            if (pawn->getController())
     208                controller = pawn->getController();
     209            else if (pawn->getXMLController())
     210                controller = pawn->getXMLController();
    211211
    212212            if (!controller)
     
    228228    void FormationController::formationsize(const int size)
    229229    {
    230         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    231         {
    232             Controller* controller = 0;
    233 
    234             if (it->getController())
    235                 controller = it->getController();
    236             else if (it->getXMLController())
    237                 controller = it->getXMLController();
     230        for (Pawn* pawn : ObjectList<Pawn>())
     231        {
     232            Controller* controller = nullptr;
     233
     234            if (pawn->getController())
     235                controller = pawn->getController();
     236            else if (pawn->getXMLController())
     237                controller = pawn->getXMLController();
    238238
    239239            if (!controller)
     
    383383        }
    384384
    385         this->myMaster_ = 0;
     385        this->myMaster_ = nullptr;
    386386        this->state_ = FREE;
    387387    }
     
    398398        int teamSize = 0;
    399399        //go through all pawns
    400         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
     400        for (Pawn* pawn : ObjectList<Pawn>())
    401401        {
    402402
     
    405405            if (!gt)
    406406            {
    407                 gt=it->getGametype();
    408             }
    409             if (!FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(*it),gt))
     407                gt=pawn->getGametype();
     408            }
     409            if (!FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(pawn),gt))
    410410                continue;
    411411
    412412            //has it an FormationController?
    413             Controller* controller = 0;
    414 
    415             if (it->getController())
    416                 controller = it->getController();
    417             else if (it->getXMLController())
    418                 controller = it->getXMLController();
     413            Controller* controller = nullptr;
     414
     415            if (pawn->getController())
     416                controller = pawn->getController();
     417            else if (pawn->getXMLController())
     418                controller = pawn->getXMLController();
    419419
    420420            if (!controller)
     
    422422
    423423            //is pawn oneself?
    424             if (orxonox_cast<ControllableEntity*>(*it) == this->getControllableEntity())
     424            if (orxonox_cast<ControllableEntity*>(pawn) == this->getControllableEntity())
    425425                continue;
    426426
     
    433433                continue;
    434434
    435             float distance = (it->getPosition() - this->getControllableEntity()->getPosition()).length();
     435            float distance = (pawn->getPosition() - this->getControllableEntity()->getPosition()).length();
    436436
    437437            // is pawn in range?
     
    440440                if(newMaster->slaves_.size() > this->maxFormationSize_) continue;
    441441
    442                 for(std::vector<FormationController*>::iterator itSlave = this->slaves_.begin(); itSlave != this->slaves_.end(); itSlave++)
     442                for(FormationController* slave : this->slaves_)
    443443                {
    444                     (*itSlave)->myMaster_ = newMaster;
    445                     newMaster->slaves_.push_back(*itSlave);
     444                    slave->myMaster_ = newMaster;
     445                    newMaster->slaves_.push_back(slave);
    446446                }
    447447                this->slaves_.clear();
     
    458458        {
    459459            this->state_ = MASTER;
    460             this->myMaster_ = 0;
     460            this->myMaster_ = nullptr;
    461461        }
    462462    }
     
    486486            int i = 1;
    487487
    488             for(std::vector<FormationController*>::iterator it = slaves_.begin(); it != slaves_.end(); it++)
     488            for(FormationController* slave : slaves_)
    489489            {
    490490                pos = Vector3::ZERO;
     
    497497                    dest+=FORMATION_LENGTH*(orient*WorldEntity::BACK);
    498498                }
    499                 (*it)->setTargetOrientation(orient);
    500                 (*it)->setTargetPosition(pos);
     499                slave->setTargetOrientation(orient);
     500                slave->setTargetPosition(pos);
    501501                left=!left;
    502502            }
     
    518518            newMaster->state_ = MASTER;
    519519            newMaster->slaves_ = this->slaves_;
    520             newMaster->myMaster_ = 0;
    521 
    522             for(std::vector<FormationController*>::iterator it = newMaster->slaves_.begin(); it != newMaster->slaves_.end(); it++)
    523             {
    524                 (*it)->myMaster_ = newMaster;
     520            newMaster->myMaster_ = nullptr;
     521
     522            for(FormationController* slave : newMaster->slaves_)
     523            {
     524                slave->myMaster_ = newMaster;
    525525            }
    526526        }
     
    547547                newMaster->state_ = MASTER;
    548548                newMaster->slaves_ = this->slaves_;
    549                 newMaster->myMaster_ = 0;
    550 
    551                 for(std::vector<FormationController*>::iterator it = newMaster->slaves_.begin(); it != newMaster->slaves_.end(); it++)
     549                newMaster->myMaster_ = nullptr;
     550
     551                for(FormationController* slave : newMaster->slaves_)
    552552                {
    553                     (*it)->myMaster_ = newMaster;
     553                    slave->myMaster_ = newMaster;
    554554                }
    555555            }
     
    569569        if(this->state_ != MASTER) return;
    570570
    571         for(std::vector<FormationController*>::iterator it = slaves_.begin(); it != slaves_.end(); it++)
    572         {
    573             (*it)->state_ = FREE;
    574             (*it)->myMaster_ = 0;
     571        for(FormationController* slave : slaves_)
     572        {
     573            slave->state_ = FREE;
     574            slave->myMaster_ = nullptr;
    575575        }
    576576        this->slaves_.clear();
     
    584584        if(this->state_ != MASTER) return;
    585585
    586         for(std::vector<FormationController*>::iterator it = slaves_.begin(); it != slaves_.end(); it++)
    587         {
    588             (*it)->state_ = FREE;
    589             (*it)->forceFreedom();
    590             (*it)->targetPosition_ = this->targetPosition_;
    591             (*it)->bShooting_ = true;
     586        for(FormationController* slave : slaves_)
     587        {
     588            slave->state_ = FREE;
     589            slave->forceFreedom();
     590            slave->targetPosition_ = this->targetPosition_;
     591            slave->bShooting_ = true;
    592592//             (*it)->getControllableEntity()->fire(0);// fire once for fun
    593593        }
     
    629629
    630630        //search new Master, then take lead
    631         if (this->state_==FREE && this->myMaster_==0)
     631        if (this->state_==FREE && this->myMaster_==nullptr)
    632632        {
    633633          searchNewMaster();
     
    650650            this->slaves_.push_back(this->myMaster_);
    651651            //set this as new master
    652             for(std::vector<FormationController*>::iterator it = slaves_.begin(); it != slaves_.end(); it++)
    653             {
    654                  (*it)->myMaster_=this;
    655             }
    656             this->myMaster_=0;
     652            for(FormationController* slave : slaves_)
     653            {
     654                 slave->myMaster_=this;
     655            }
     656            this->myMaster_=nullptr;
    657657            this->state_=MASTER;
    658658        }
     
    694694        if (this->state_ == MASTER)
    695695        {
    696             for(std::vector<FormationController*>::iterator it = slaves_.begin(); it != slaves_.end(); it++)
    697             {
    698                  (*it)->formationMode_ = val;
     696            for(FormationController* slave : slaves_)
     697            {
     698                 slave->formationMode_ = val;
    699699                 if (val == ATTACK)
    700                      (*it)->forgetTarget();
     700                     slave->forgetTarget();
    701701            }
    702702        }
     
    773773    {
    774774
    775         Pawn *humanPawn = NULL;
    776         NewHumanController *currentHumanController = NULL;
     775        Pawn *humanPawn = nullptr;
     776        NewHumanController *currentHumanController = nullptr;
    777777        std::vector<FormationController*> allMasters;
    778778
    779         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    780         {
    781             Controller* controller = 0;
    782 
    783             if (it->getController())
    784                 controller = it->getController();
    785             else if (it->getXMLController())
    786                 controller = it->getXMLController();
     779        for (Pawn* pawn : ObjectList<Pawn>())
     780        {
     781            Controller* controller = nullptr;
     782
     783            if (pawn->getController())
     784                controller = pawn->getController();
     785            else if (pawn->getXMLController())
     786                controller = pawn->getXMLController();
    787787
    788788            if (!controller)
     
    791791            currentHumanController = orxonox_cast<NewHumanController*>(controller);
    792792
    793             if(currentHumanController) humanPawn = *it;
     793            if(currentHumanController) humanPawn = pawn;
    794794
    795795            FormationController *aiController = orxonox_cast<FormationController*>(controller);
     
    800800        }
    801801
    802         if((humanPawn != NULL) && (allMasters.size() != 0))
     802        if((humanPawn != nullptr) && (allMasters.size() != 0))
    803803        {
    804804            float posHuman = humanPawn->getPosition().length();
     
    808808            int i = 0;
    809809
    810             for(std::vector<FormationController*>::iterator it = allMasters.begin(); it != allMasters.end(); it++, i++)
    811             {
    812                 if (!FormationController::sameTeam((*it)->getControllableEntity(), humanPawn, (*it)->getGametype())) continue;
    813                 distance = posHuman - (*it)->getControllableEntity()->getPosition().length();
     810            for(FormationController* master : allMasters)
     811            {
     812                if (!FormationController::sameTeam(master->getControllableEntity(), humanPawn, master->getGametype())) continue;
     813                distance = posHuman - master->getControllableEntity()->getPosition().length();
    814814                if(distance < minDistance) index = i;
     815                i++;
    815816            }
    816817            allMasters[index]->followInit(humanPawn);
     
    826827    void FormationController::followInit(Pawn* pawn, const bool always, const int secondsToFollow)
    827828    {
    828         if (pawn == NULL || this->state_ != MASTER)
     829        if (pawn == nullptr || this->state_ != MASTER)
    829830            return;
    830831        this->specificMasterAction_  =  FOLLOW;
     
    844845    {
    845846
    846         Pawn *humanPawn = NULL;
    847         NewHumanController *currentHumanController = NULL;
    848 
    849         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    850         {
    851             if (!it->getController())
     847        Pawn *humanPawn = nullptr;
     848        NewHumanController *currentHumanController = nullptr;
     849
     850        for (Pawn* pawn : ObjectList<Pawn>())
     851        {
     852            if (!pawn->getController())
    852853                continue;
    853854
    854             currentHumanController = orxonox_cast<NewHumanController*>(it->getController());
     855            currentHumanController = orxonox_cast<NewHumanController*>(pawn->getController());
    855856            if(currentHumanController)
    856857            {
    857                 if (!FormationController::sameTeam(this->getControllableEntity(), *it, this->getGametype())) continue;
    858                 humanPawn = *it;
     858                if (!FormationController::sameTeam(this->getControllableEntity(), pawn, this->getGametype())) continue;
     859                humanPawn = pawn;
    859860                break;
    860861            }
    861862        }
    862863
    863         if((humanPawn != NULL))
     864        if((humanPawn != nullptr))
    864865                this->followInit(humanPawn);
    865866    }
     
    918919        this->forgetTarget();
    919920
    920         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it; ++it)
    921         {
    922             if (FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(*it), this->getGametype()))
     921        for (Pawn* pawn : ObjectList<Pawn>())
     922        {
     923            if (FormationController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), this->getGametype()))
    923924                continue;
    924925
    925926            /* So AI won't choose invisible Spaceships as target */
    926             if (!it->getRadarVisibility())
     927            if (!pawn->getRadarVisibility())
    927928                continue;
    928929
    929             if (static_cast<ControllableEntity*>(*it) != this->getControllableEntity())
     930            if (static_cast<ControllableEntity*>(pawn) != this->getControllableEntity())
    930931            {
    931932                float speed = this->getControllableEntity()->getVelocity().length();
    932933                Vector3 distanceCurrent = this->targetPosition_ - this->getControllableEntity()->getPosition();
    933                 Vector3 distanceNew = it->getPosition() - this->getControllableEntity()->getPosition();
    934                 if (!this->target_ || it->getPosition().squaredDistance(this->getControllableEntity()->getPosition()) * (1.5f + acos((this->getControllableEntity()->getOrientation() * WorldEntity::FRONT).dotProduct(distanceNew) / speed / distanceNew.length()) / math::twoPi)
     934                Vector3 distanceNew = pawn->getPosition() - this->getControllableEntity()->getPosition();
     935                if (!this->target_ || pawn->getPosition().squaredDistance(this->getControllableEntity()->getPosition()) * (1.5f + acos((this->getControllableEntity()->getOrientation() * WorldEntity::FRONT).dotProduct(distanceNew) / speed / distanceNew.length()) / math::twoPi)
    935936                        < this->targetPosition_.squaredDistance(this->getControllableEntity()->getPosition()) * (1.5f + acos((this->getControllableEntity()->getOrientation() * WorldEntity::FRONT).dotProduct(distanceCurrent) / speed / distanceCurrent.length()) / math::twoPi) + rnd(-250, 250))
    936937                {
    937                     this->setTarget(*it);
     938                    this->setTarget(pawn);
    938939                }
    939940            }
     
    943944    void FormationController::forgetTarget()
    944945    {
    945         this->target_ = 0;
     946        this->target_ = nullptr;
    946947        this->bShooting_ = false;
    947948    }
     
    963964        int team2 = entity2->getTeam();
    964965
    965         Controller* controller = 0;
     966        Controller* controller = nullptr;
    966967        if (entity1->getController())
    967968            controller = entity1->getController();
     
    10001001        }
    10011002
    1002         TeamBaseMatchBase* base = 0;
     1003        TeamBaseMatchBase* base = nullptr;
    10031004        base = orxonox_cast<TeamBaseMatchBase*>(entity1);
    10041005        if (base)
     
    10341035        }
    10351036
    1036         DroneController* droneController = 0;
     1037        DroneController* droneController = nullptr;
    10371038        droneController = orxonox_cast<DroneController*>(entity1->getController());
    10381039        if (droneController && static_cast<ControllableEntity*>(droneController->getOwner()) == entity2)
  • code/trunk/src/orxonox/controllers/FormationController.h

    r10631 r11071  
    5050      virtual ~FormationController();
    5151
    52       virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
     52      virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    5353
    5454
     
    9393           { return this->formationMode_; }
    9494
    95       virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
     95      virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) override;
    9696
    9797      FormationController* getMaster( void ) { return myMaster_; }
     
    9999      FormationController* getSlave( void ) { return this->slaves_.back(); }
    100100
    101       virtual void changedControllableEntity();
     101      virtual void changedControllableEntity() override;
    102102
    103103  protected:
  • code/trunk/src/orxonox/controllers/HumanController.cc

    r11052 r11071  
    6565    RegisterUnloadableClass(HumanController);
    6666
    67     HumanController* HumanController::localController_s = 0;
     67    HumanController* HumanController::localController_s = nullptr;
    6868
    6969    HumanController::HumanController(Context* context) : FormationController(context)
     
    8181            HumanController::localController_s->removeFromFormation();
    8282        }
    83         HumanController::localController_s = 0;
     83        HumanController::localController_s = nullptr;
    8484    }
    8585
     
    321321            return orxonox_cast<Pawn*>(HumanController::localController_s->getControllableEntity());
    322322        else
    323             return NULL;
     323            return nullptr;
    324324    }
    325325
  • code/trunk/src/orxonox/controllers/HumanController.h

    r10624 r11071  
    4747            virtual ~HumanController();
    4848
    49             virtual void tick(float dt);
     49            virtual void tick(float dt) override;
    5050
    5151            static void moveFrontBack(const Vector2& value);
  • code/trunk/src/orxonox/controllers/MasterController.cc

    r11052 r11071  
    5858        {
    5959            //fill the vector in the first tick
    60             for (ObjectList<ActionpointController>::iterator it = ObjectList<ActionpointController>::begin(); it; ++it)
     60            for (ActionpointController* controller : ObjectList<ActionpointController>())
    6161            {
    6262                //----0ptr?----
    63                 if (!it)
     63                if (!controller)
    6464                    continue;
    65                 this->controllers_.push_back(*it);
     65                this->controllers_.push_back(controller);
    6666            }
    6767        }
  • code/trunk/src/orxonox/controllers/MasterController.h

    r11052 r11071  
    6161
    6262            //----[orxonox demanded functions]----
    63                 virtual void tick(float dt);
     63                virtual void tick(float dt) override;
    6464
    6565            //----[orxonox demanded functions]----
     
    6868         
    6969        private:
    70             std::vector<WeakPtr<ActionpointController> > controllers_;  //<! vector of controllers, which action(), canFire() and maneuver() methods are to be called
     70            std::vector<WeakPtr<ActionpointController>> controllers_;//<! vector of controllers, which action(), canFire() and maneuver() methods are to be called
    7171            size_t indexOfCurrentController_;                        //<! index of current controller
    7272            unsigned int numberOfTicksPassedSinceLastActionCall_;
  • code/trunk/src/orxonox/controllers/NewHumanController.cc

    r10631 r11071  
    5858    RegisterUnloadableClass(NewHumanController);
    5959
    60     NewHumanController* NewHumanController::localController_s = 0;
     60    NewHumanController* NewHumanController::localController_s = nullptr;
    6161
    6262    NewHumanController::NewHumanController(Context* context)
    6363        : HumanController(context)
    64         , crossHairOverlay_(NULL)
    65         , centerOverlay_(NULL)
    66         , damageOverlayTop_(NULL)
    67         , damageOverlayRight_(NULL)
    68         , damageOverlayBottom_(NULL)
    69         , damageOverlayLeft_(NULL)
     64        , crossHairOverlay_(nullptr)
     65        , centerOverlay_(nullptr)
     66        , damageOverlayTop_(nullptr)
     67        , damageOverlayRight_(nullptr)
     68        , damageOverlayBottom_(nullptr)
     69        , damageOverlayLeft_(nullptr)
    7070        , damageOverlayTT_(0)
    7171        , damageOverlayTR_(0)
    7272        , damageOverlayTB_(0)
    7373        , damageOverlayTL_(0)
    74         , arrowsOverlay1_(NULL)
    75         , arrowsOverlay2_(NULL)
    76         , arrowsOverlay3_(NULL)
    77         , arrowsOverlay4_(NULL)
     74        , arrowsOverlay1_(nullptr)
     75        , arrowsOverlay2_(nullptr)
     76        , arrowsOverlay3_(nullptr)
     77        , arrowsOverlay4_(nullptr)
    7878    {
    7979        RegisterObject(NewHumanController);
     
    445445            pawn->setAimPosition( mouseRay.getOrigin() + mouseRay.getDirection() * 3000 );
    446446
    447         if( this->getControllableEntity() && this->getControllableEntity()->getTarget() != 0 )
    448             this->getControllableEntity()->setTarget( 0 );
     447        if( this->getControllableEntity() && this->getControllableEntity()->getTarget() != nullptr )
     448            this->getControllableEntity()->setTarget( nullptr );
    449449
    450450        //return this->controllableEntity_->getWorldPosition() + (this->controllableEntity_->getWorldOrientation() * Vector3::NEGATIVE_UNIT_Z * 2000);
  • code/trunk/src/orxonox/controllers/NewHumanController.h

    r9667 r11071  
    4545            virtual ~NewHumanController();
    4646
    47             virtual void tick(float dt);
     47            virtual void tick(float dt) override;
    4848
    49             virtual void frontback(const Vector2& value);
    50             virtual void yaw(const Vector2& value);
    51             virtual void pitch(const Vector2& value);
     49            virtual void frontback(const Vector2& value) override;
     50            virtual void yaw(const Vector2& value) override;
     51            virtual void pitch(const Vector2& value) override;
    5252
    5353            static void accelerate();
    5454            static void decelerate();
    5555
    56             virtual void doFire(unsigned int firemode);
     56            virtual void doFire(unsigned int firemode) override;
    5757
    58             virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage);
     58            virtual void hit(Pawn* originator, btManifoldPoint& contactpoint, float damage) override;
    5959
    6060            static void unfire();
     
    6565            static void changeMode();
    6666
    67             virtual void changedControllableEntity();
    68             virtual void doPauseControl();
    69             virtual void doResumeControl();
     67            virtual void changedControllableEntity() override;
     68            virtual void doPauseControl() override;
     69            virtual void doResumeControl() override;
    7070
    7171            float getCurrentYaw(){ return this->currentYaw_; }
  • code/trunk/src/orxonox/controllers/ScriptController.cc

    r10622 r11071  
    6464        /* Set default values for all variables */
    6565        /* - pointers to zero */
    66         this->player_ = NULL;
    67         this->entity_ = NULL;
     66        this->player_ = nullptr;
     67        this->entity_ = nullptr;
    6868
    6969        /* - times */
     
    121121
    122122      /* Debugging: print all the scriptcontroller object pointers */
    123       for(ObjectList<ScriptController>::iterator it =
    124         ObjectList<ScriptController>::begin();
    125         it != ObjectList<ScriptController>::end(); ++it)
    126       { orxout(verbose) << "Have object in list: " << *it << endl; }
     123      for(ScriptController* controller : ObjectList<ScriptController>())
     124      { orxout(verbose) << "Have object in list: " << controller << endl; }
    127125
    128126      /* Find the first one with a nonzero ID */
    129       for(ObjectList<ScriptController>::iterator it =
    130         ObjectList<ScriptController>::begin();
    131         it != ObjectList<ScriptController>::end(); ++it)
     127      for(ScriptController* controller : ObjectList<ScriptController>())
    132128      {
    133129        // TODO: do some selection here. Currently just returns the first one
    134         if( (*it)->getID() > 0 )
    135         { orxout(verbose) << "Controller to return: " << *it << endl;
    136           return *it;
     130        if( controller->getID() > 0 )
     131        { orxout(verbose) << "Controller to return: " << controller << endl;
     132          return controller;
    137133        }
    138134     
    139135      }
    140       return NULL;
     136      return nullptr;
    141137    }
    142138
  • code/trunk/src/orxonox/controllers/ScriptController.h

    r10622 r11071  
    7171            void setPlayer(PlayerInfo* player) { this->player_ = player; }
    7272           
    73             virtual void tick(float dt);
     73            virtual void tick(float dt) override;
    7474
    7575            // LUA interface
  • code/trunk/src/orxonox/controllers/SectionController.cc

    r11052 r11071  
    4040        this->setFormationMode(FormationMode::FINGER4);
    4141
    42         this->myWingman_ = 0;
    43         this->myDivisionLeader_ = 0;
     42        this->myWingman_ = nullptr;
     43        this->myDivisionLeader_ = nullptr;
    4444        this->bFirstAction_ = true;
    4545
     
    4848    SectionController::~SectionController()
    4949    {
    50        for (size_t i = 0; i < this->actionpoints_.size(); ++i)
    51         {
    52             if(this->actionpoints_[i])
    53                 this->actionpoints_[i]->destroy();
     50        for (WorldEntity* actionpoint : this->actionpoints_)
     51        {
     52            if (actionpoint)
     53                actionpoint->destroy();
    5454        }
    5555        this->parsedActionpoints_.clear();
    5656        this->actionpoints_.clear();
    57     }
    58     void SectionController::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    59     {
    60         SUPER(SectionController, XMLPort, xmlelement, mode);
    61     }
    62 
    63     //----in tick, move (or look) and shoot----
    64     void SectionController::tick(float dt)
    65     {
    66         if (!this->isActive())
    67             return;
    68    
    69         SUPER(SectionController, tick, dt);
    70        
    7157    }
    7258
     
    131117    {
    132118        //----If division leader fights, cover him by fighting emenies close to his target----
    133         Action::Value action = this->myDivisionLeader_->getAction();
     119        Action action = this->myDivisionLeader_->getAction();
    134120
    135121        if (action == Action::FIGHT || action == Action::FIGHTALL || action == Action::ATTACK)
     
    147133                    Vector3 divisionTargetPosition = this->myDivisionLeader_->getTarget()->getWorldPosition();
    148134                    Gametype* gt = this->getGametype();
    149                     for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
     135                    for (Pawn* pawn : ObjectList<Pawn>())
    150136                    {
    151137                        //----is enemy?----
    152                         if ( CommonController::sameTeam (this->getControllableEntity(), static_cast<ControllableEntity*>(*itP), gt) )
     138                        if ( CommonController::sameTeam (this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), gt) )
    153139                            continue;           
    154140                        //----in range?----
    155                         if (((*itP)->getWorldPosition() - divisionTargetPosition).length() < 3000 &&
    156                             (*itP) != this->myDivisionLeader_->getTarget())
     141                        if ((pawn->getWorldPosition() - divisionTargetPosition).length() < 3000 &&
     142                            pawn != this->myDivisionLeader_->getTarget())
    157143                        {
    158144                            foundTarget = true;
    159                             target =  (*itP);
     145                            target = pawn;
    160146                            break;
    161147                        }
     
    188174        this->setFormationMode( this->myDivisionLeader_->getFormationMode() );
    189175        this->spread_ = this->myDivisionLeader_->getSpread();
    190         Vector3* targetRelativePosition;
    191176        switch (this->formationMode_){
    192177            case FormationMode::WALL:
    193             {
    194                 targetRelativePosition = new Vector3 (-2.0f*this->spread_, 0, 0);   
    195                 break;
    196             }
     178                return Vector3 (-2.0f*this->spread_, 0, 0);
     179
    197180            case FormationMode::FINGER4:
    198             {
    199                 targetRelativePosition = new Vector3 (-2.0f*this->spread_, 0, 1.0f*this->spread_);   
    200                 break;
    201             }
     181                return Vector3 (-2.0f*this->spread_, 0, 1.0f*this->spread_);
    202182           
    203183            case FormationMode::DIAMOND:
    204             {
    205                 targetRelativePosition = new Vector3 (-2.0f*this->spread_, 0, 1.0f*this->spread_);
    206                 break;
    207             }
    208         }
    209         Vector3 result = *targetRelativePosition;
    210         delete targetRelativePosition;
    211         return result;
     184                return Vector3 (-2.0f*this->spread_, 0, 1.0f*this->spread_);
     185
     186            default:
     187                return Vector3::ZERO;
     188        }
    212189    }
    213190
     
    226203
    227204        if (!this->getControllableEntity())
    228             return 0;
    229 
    230         ActionpointController* closestLeader = 0;
     205            return nullptr;
     206
     207        ActionpointController* closestLeader = nullptr;
    231208        float minDistance =  std::numeric_limits<float>::infinity();
    232209        //go through all pawns
    233         for (ObjectList<ActionpointController>::iterator it = ObjectList<ActionpointController>::begin(); it; ++it)
     210        for (ActionpointController* controller : ObjectList<ActionpointController>())
    234211        {
    235212            //0ptr or not DivisionController?
    236             if (!(it) || !((it)->getIdentifier()->getName() == "DivisionController") || !(it->getControllableEntity()))
     213            if (!controller || !(controller->getIdentifier()->getName() == "DivisionController") || !(controller->getControllableEntity()))
    237214                continue;
    238215            //same team?
    239             if ((this->getControllableEntity()->getTeam() != (it)->getControllableEntity()->getTeam()))
     216            if ((this->getControllableEntity()->getTeam() != controller->getControllableEntity()->getTeam()))
    240217                continue;
    241218
    242219            //is equal to this?
    243             if (orxonox_cast<ControllableEntity*>(*it) == this->getControllableEntity())
     220            if (orxonox_cast<ControllableEntity*>(controller) == this->getControllableEntity())
    244221                continue;
    245222
    246             float distance = CommonController::distance (it->getControllableEntity(), this->getControllableEntity());
     223            float distance = CommonController::distance (controller->getControllableEntity(), this->getControllableEntity());
    247224           
    248             if (distance < minDistance && !(it->hasFollower()))
    249             {
    250                 closestLeader = *it;
     225            if (distance < minDistance && !(controller->hasFollower()))
     226            {
     227                closestLeader = controller;
    251228                minDistance = distance;
    252229            }
     
    258235                return closestLeader;
    259236        }
    260         return 0;
     237        return nullptr;
    261238    }
    262239
  • code/trunk/src/orxonox/controllers/SectionController.h

    r11052 r11071  
    4949            //----[/language demanded functions]----
    5050           
    51             //----[orxonox demanded functions]----
    52                 virtual void tick(float dt);
    53                
    54                 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
    55             //----[/orxonox demanded functions]----
    56            
    5751            //----[own functions]----
    5852                ActionpointController* findNewDivisionLeader();
    5953
    60                 virtual bool setWingman(ActionpointController* newWingman);
    61                 virtual bool hasWingman();
    62                 virtual bool hasFollower()
     54                virtual bool setWingman(ActionpointController* newWingman) override;
     55                virtual bool hasWingman() override;
     56                virtual bool hasFollower() override
    6357                    { return false; }
    6458                void chooseTarget();
     
    6761        protected:       
    6862            //----action must only be managed by this----     
    69                 virtual void action(); //<! action() is called in regular intervals by MasterController managing the bot's behaviour.
     63                virtual void action() override; //<! action() is called in regular intervals by MasterController managing the bot's behaviour.
    7064                Vector3 getFormationPosition ();
    7165                void keepFormation();
  • code/trunk/src/orxonox/controllers/WaypointController.cc

    r9667 r11071  
    4444    WaypointController::~WaypointController()
    4545    {
    46         for (size_t i = 0; i < this->waypoints_.size(); ++i)
     46        for (WorldEntity* waypoint : this->waypoints_)
    4747        {
    48             if(this->waypoints_[i])
    49                 this->waypoints_[i]->destroy();
     48            if(waypoint)
     49                waypoint->destroy();
    5050        }
    5151    }
  • code/trunk/src/orxonox/controllers/WaypointController.h

    r9667 r11071  
    4444            virtual ~WaypointController();
    4545
    46             virtual void tick(float dt);
     46            virtual void tick(float dt) override;
    4747
    4848        protected:
  • code/trunk/src/orxonox/controllers/WaypointPatrolController.cc

    r9716 r11071  
    8787        float shortestsqdistance = (float)static_cast<unsigned int>(-1);
    8888
    89         for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
     89        for (Pawn* pawn : ObjectList<Pawn>())
    9090        {
    91             if (ArtificialController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(*it), this->getGametype()))
     91            if (ArtificialController::sameTeam(this->getControllableEntity(), static_cast<ControllableEntity*>(pawn), this->getGametype()))
    9292                continue;
    9393
    94             float sqdistance = it->getPosition().squaredDistance(myposition);
     94            float sqdistance = pawn->getPosition().squaredDistance(myposition);
    9595            if (sqdistance < shortestsqdistance)
    9696            {
    9797                shortestsqdistance = sqdistance;
    98                 this->target_ = (*it);
     98                this->target_ = pawn;
    9999            }
    100100        }
    101101
    102102        if (shortestsqdistance > (this->alertnessradius_ * this->alertnessradius_))
    103             this->target_ = 0;
     103            this->target_ = nullptr;
    104104    }
    105105}
  • code/trunk/src/orxonox/controllers/WaypointPatrolController.h

    r9716 r11071  
    4343            virtual ~WaypointPatrolController() {}
    4444
    45             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
    46             virtual void tick(float dt);
     45            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
     46            virtual void tick(float dt) override;
    4747
    4848            inline void setAlertnessRadius(float radius)
  • code/trunk/src/orxonox/controllers/WingmanController.cc

    r11052 r11071  
    3939    {
    4040        RegisterObject(WingmanController);
    41         this->myLeader_ = 0;
     41        this->myLeader_ = nullptr;
    4242        this->bFirstAction_ = true;
    4343
     
    4646    WingmanController::~WingmanController()
    4747    {
    48         for (size_t i = 0; i < this->actionpoints_.size(); ++i)
     48        for (WorldEntity* actionpoint : this->actionpoints_)
    4949        {
    50             if(this->actionpoints_[i])
    51                 this->actionpoints_[i]->destroy();
     50            if (actionpoint)
     51                actionpoint->destroy();
    5252        }
    5353        this->parsedActionpoints_.clear();
    5454        this->actionpoints_.clear();
    55     }
    56  
    57     void WingmanController::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    58     {
    59         SUPER(WingmanController, XMLPort, xmlelement, mode);
    60     }
    61    
    62     //----in tick, move (or look) and shoot----
    63     void WingmanController::tick(float dt)
    64     {   
    65         if (!this->isActive())
    66             return;
    67        
    68         SUPER(WingmanController, tick, dt);
    69 
    7055    }
    7156   
     
    122107    Vector3 WingmanController::getFormationPosition ()
    123108    {
    124 
    125 
    126109        this->setFormationMode( this->myLeader_->getFormationMode() );
    127         Vector3* targetRelativePosition;
    128110        this->spread_ = this->myLeader_->getSpread();
    129111        if (this->myLeader_->getIdentifier()->getName() == "DivisionController")
     
    131113            switch (this->formationMode_){
    132114                case FormationMode::WALL:
    133                 {
    134                     targetRelativePosition = new Vector3 (2.0f*this->spread_, 0, 0 - 1.0f*this->tolerance_);
    135                     break;
    136                 }
     115                    return Vector3 (2.0f*this->spread_, 0, 0 - 1.0f*this->tolerance_);
    137116                case FormationMode::FINGER4:
    138                 {
    139                     targetRelativePosition = new Vector3 (2.0f*this->spread_, 0, this->spread_ - 1.0f*this->tolerance_);
    140                     break;
    141                 }
     117                    return Vector3 (2.0f*this->spread_, 0, this->spread_ - 1.0f*this->tolerance_);
    142118                case FormationMode::DIAMOND:
    143                 {
    144                     targetRelativePosition = new Vector3 (2.0f*this->spread_, 0, this->spread_ - 1.0f*this->tolerance_);
    145                     break;
    146                 }
     119                    return Vector3 (2.0f*this->spread_, 0, this->spread_ - 1.0f*this->tolerance_);
     120                default:
     121                    return Vector3::ZERO;
    147122            }
    148123        }
     
    151126            switch (this->formationMode_){
    152127                case FormationMode::WALL:
    153                 {
    154                     targetRelativePosition = new Vector3 (-2.0f*this->spread_, 0, 0 - 1.0f*this->tolerance_);
    155                     break;
    156                 }
     128                    return Vector3 (-2.0f*this->spread_, 0, 0 - 1.0f*this->tolerance_);
    157129                case FormationMode::FINGER4:
    158                 {
    159                     targetRelativePosition = new Vector3 (-2.0f*this->spread_, 0, this->spread_ - 1.0f*this->tolerance_);
    160                     break;
    161                 }
     130                    return Vector3 (-2.0f*this->spread_, 0, this->spread_ - 1.0f*this->tolerance_);
    162131                case FormationMode::DIAMOND:
    163                 {
    164                     targetRelativePosition = new Vector3 (2.0f*this->spread_, -1.0f*this->spread_, 0 - 1.0f*this->tolerance_);
    165                     break;
    166                 }
     132                    return Vector3 (2.0f*this->spread_, -1.0f*this->spread_, 0 - 1.0f*this->tolerance_);
     133                default:
     134                    return Vector3::ZERO;
    167135            }
    168136        }
    169         Vector3 result = *targetRelativePosition;
    170         delete targetRelativePosition;
    171         return result;
    172137    }
    173138    void WingmanController::keepFormation()
     
    185150
    186151        if (!this->getControllableEntity())
    187             return 0;
     152            return nullptr;
    188153
    189154        //----vars for finding the closest leader----
    190         ActionpointController* closestLeader = 0;
     155        ActionpointController* closestLeader = nullptr;
    191156        float minDistance =  std::numeric_limits<float>::infinity();
    192157        Gametype* gt = this->getGametype();
    193158
    194         for (ObjectList<ActionpointController>::iterator it = ObjectList<ActionpointController>::begin(); it; ++it)
     159        for (ActionpointController* controller : ObjectList<ActionpointController>())
    195160        {
    196161            //----0ptr or not a leader or dead?----
    197             if (!it ||
    198                 (it->getIdentifier()->getName() != "SectionController" && it->getIdentifier()->getName() != "DivisionController") ||
    199                 !(it->getControllableEntity()))
     162            if (!controller ||
     163                (controller->getIdentifier()->getName() != "SectionController" && controller->getIdentifier()->getName() != "DivisionController") ||
     164                !(controller->getControllableEntity()))
    200165                continue;
    201166           
    202167            //----same team?----
    203             if ( !CommonController::sameTeam (this->getControllableEntity(), (it)->getControllableEntity(), gt) )
     168            if ( !CommonController::sameTeam (this->getControllableEntity(), controller->getControllableEntity(), gt) )
    204169                continue;
    205170           
    206171            //----check distance----
    207             float distance = CommonController::distance (it->getControllableEntity(), this->getControllableEntity());
    208             if (distance < minDistance && !(it->hasWingman()))
     172            float distance = CommonController::distance (controller->getControllableEntity(), this->getControllableEntity());
     173            if (distance < minDistance && !(controller->hasWingman()))
    209174            {
    210                 closestLeader = *it;
     175                closestLeader = controller;
    211176                minDistance = distance;
    212177            }
     
    222187            }
    223188        }
    224         return 0;
     189        return nullptr;
    225190    }
    226191
  • code/trunk/src/orxonox/controllers/WingmanController.h

    r11052 r11071  
    5151           
    5252            //----[orxonox demanded functions]----
    53                 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
    54 
    55                 virtual void tick(float dt);
    56                 virtual bool hasWingman()
     53                virtual bool hasWingman() override
    5754                    { return false; }
    58                 virtual bool hasFollower()
     55                virtual bool hasFollower() override
    5956                    { return false; }
    6057            //----[/orxonox demanded functions]----
     
    6663        protected:
    6764            //----action must only be managed by this----
    68                 virtual void action(); //<! action() is called in regular intervals managing the bot's behaviour.
     65                virtual void action() override; //<! action() is called in regular intervals managing the bot's behaviour.
    6966                Vector3 getFormationPosition ();
    7067                void keepFormation();
Note: See TracChangeset for help on using the changeset viewer.