Index: code/trunk/src/modules/designtools/CreateStars.h
===================================================================
--- code/trunk/src/modules/designtools/CreateStars.h	(revision 11056)
+++ code/trunk/src/modules/designtools/CreateStars.h	(revision 11071)
@@ -43,5 +43,5 @@
             void createBillboards();
 
-            void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             void setNumStars(int num) {
Index: code/trunk/src/modules/designtools/ScreenshotManager.cc
===================================================================
--- code/trunk/src/modules/designtools/ScreenshotManager.cc	(revision 11056)
+++ code/trunk/src/modules/designtools/ScreenshotManager.cc	(revision 11071)
@@ -69,5 +69,5 @@
         Constructor. 
     */
-    ScreenshotManager::ScreenshotManager() : finalPicturePB_(NULL), data_(NULL)
+    ScreenshotManager::ScreenshotManager() : finalPicturePB_(nullptr), data_(nullptr)
     {
         RegisterObject(ScreenshotManager);
@@ -90,13 +90,13 @@
     void ScreenshotManager::cleanup(void)
     {
-        if(this->finalPicturePB_ != NULL)
+        if(this->finalPicturePB_ != nullptr)
         {
             delete this->finalPicturePB_;
-            this->finalPicturePB_ = NULL;
-        }
-        if(this->data_ != NULL)
+            this->finalPicturePB_ = nullptr;
+        }
+        if(this->data_ != nullptr)
         {
             delete this->data_;
-            this->data_ = NULL;
+            this->data_ = nullptr;
         }
         if(!this->tempTexture_.isNull())
@@ -151,5 +151,5 @@
         // Get the screenshot.
         Ogre::Image* finalImage = getScreenshot();
-        if(finalImage != NULL)
+        if(finalImage != nullptr)
         {
             // Save it.
@@ -173,6 +173,6 @@
     Ogre::Image* ScreenshotManager::getScreenshot()
     {
-        if(CameraManager::getInstance().getActiveCamera() == NULL )
-            return NULL;
+        if(CameraManager::getInstance().getActiveCamera() == nullptr )
+            return nullptr;
         return this->getScreenshot(CameraManager::getInstance().getActiveCamera()->getOgreCamera());
     }
@@ -189,6 +189,6 @@
     Ogre::Image* ScreenshotManager::getScreenshot(Ogre::Camera* camera)
     {
-        if(camera == NULL)
-            return NULL;
+        if(camera == nullptr)
+            return nullptr;
         
         // Update the internal parameters.
Index: code/trunk/src/modules/designtools/SkyboxGenerator.cc
===================================================================
--- code/trunk/src/modules/designtools/SkyboxGenerator.cc	(revision 11056)
+++ code/trunk/src/modules/designtools/SkyboxGenerator.cc	(revision 11071)
@@ -82,17 +82,17 @@
         this->faceCounter_ = 0;
         
-        this->names_.push_back("fr");
-        this->names_.push_back("lf");
-        this->names_.push_back("bk");
-        this->names_.push_back("rt");
-        this->names_.push_back("up");
-        this->names_.push_back("dn");
-        
-        this->rotations_.push_back(std::pair<int, int>(90, 0));
-        this->rotations_.push_back(std::pair<int, int>(90, 0));
-        this->rotations_.push_back(std::pair<int, int>(90, 0));
-        this->rotations_.push_back(std::pair<int, int>(90, 90));
-        this->rotations_.push_back(std::pair<int, int>(0, 180));
-        this->rotations_.push_back(std::pair<int, int>(0, 90));
+        this->names_.emplace_back("fr");
+        this->names_.emplace_back("lf");
+        this->names_.emplace_back("bk");
+        this->names_.emplace_back("rt");
+        this->names_.emplace_back("up");
+        this->names_.emplace_back("dn");
+        
+        this->rotations_.emplace_back(90, 0);
+        this->rotations_.emplace_back(90, 0);
+        this->rotations_.emplace_back(90, 0);
+        this->rotations_.emplace_back(90, 90);
+        this->rotations_.emplace_back(0, 180);
+        this->rotations_.emplace_back(0, 90);
     }
 
@@ -146,6 +146,6 @@
             }
 
-            ControllableEntity* entity = NULL;
-            if(HumanController::getLocalControllerSingleton() != NULL && HumanController::getLocalControllerSingleton()->getControllableEntity() != NULL)
+            ControllableEntity* entity = nullptr;
+            if(HumanController::getLocalControllerSingleton() != nullptr && HumanController::getLocalControllerSingleton()->getControllableEntity() != nullptr)
                 entity = HumanController::getLocalControllerSingleton()->getControllableEntity();
             else
Index: code/trunk/src/modules/designtools/SkyboxGenerator.h
===================================================================
--- code/trunk/src/modules/designtools/SkyboxGenerator.h	(revision 11056)
+++ code/trunk/src/modules/designtools/SkyboxGenerator.h	(revision 11071)
@@ -65,5 +65,5 @@
             SkyboxGenerator();
             virtual ~SkyboxGenerator();
-            void tick(float dt); // This is where the skybox generation happens.
+            virtual void tick(float dt) override; // This is where the skybox generation happens.
             static void createSkybox(void); // Generate the 6 faces of a skybox.
             void setConfigValues(void); // Sets some config values.
@@ -106,5 +106,5 @@
             
             std::vector<std::string> names_; //!< The names of the image files for the skybox faces to be generated.
-            std::vector< std::pair<int, int> > rotations_; //!< The rotation in yaw an pitch direction that is applied to the camera after a specific face has been generated.
+            std::vector< std::pair<int, int>> rotations_; //!< The rotation in yaw an pitch direction that is applied to the camera after a specific face has been generated.
             
             // Storage variables
Index: code/trunk/src/modules/docking/Dock.cc
===================================================================
--- code/trunk/src/modules/docking/Dock.cc	(revision 11056)
+++ code/trunk/src/modules/docking/Dock.cc	(revision 11071)
@@ -87,8 +87,8 @@
 
         PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
-        PlayerInfo* player = NULL;
+        PlayerInfo* player = nullptr;
 
         // Check whether it is a player trigger and extract pawn from it
-        if(pTrigger != NULL)
+        if(pTrigger != nullptr)
         {
             if(!pTrigger->isForPlayer()) {  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
@@ -103,5 +103,5 @@
             return false;
         }
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(verbose, context::docking) << "Docking::execute Can't retrieve PlayerInfo from Trigger. (" << trigger->getIdentifier()->getName() << ")" << endl;
@@ -131,8 +131,8 @@
     {
         PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
-        PlayerInfo* player = NULL;
+        PlayerInfo* player = nullptr;
 
         // Check whether it is a player trigger and extract pawn from it
-        if(pTrigger != NULL)
+        if(pTrigger != nullptr)
         {
             if(!pTrigger->isForPlayer()) {  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
@@ -147,5 +147,5 @@
             return false;
         }
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(verbose, context::docking) << "Docking::execute Can't retrieve PlayerInfo from Trigger. (" << trigger->getIdentifier()->getName() << ")" << endl;
@@ -214,7 +214,7 @@
     {
         PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
-        for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
-        {
-            if(it->dock(player))
+        for(Dock* dock : ObjectList<Dock>())
+        {
+            if(dock->dock(player))
                 break;
         }
@@ -224,7 +224,7 @@
     {
         PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
-        for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
-        {
-            if(it->undock(player))
+        for(Dock* dock : ObjectList<Dock>())
+        {
+            if(dock->undock(player))
                 break;
         }
@@ -295,7 +295,7 @@
         int i = 0;
         PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
-        for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
-        {
-            if(it->candidates_.find(player) != it->candidates_.end())
+        for(Dock* dock : ObjectList<Dock>())
+        {
+            if(dock->candidates_.find(player) != dock->candidates_.end())
                 i++;
         }
@@ -306,14 +306,14 @@
     {
         PlayerInfo* player = HumanController::getLocalControllerSingleton()->getPlayer();
-        for(ObjectList<Dock>::iterator it = ObjectList<Dock>::begin(); it != ObjectList<Dock>::end(); ++it)
-        {
-            if(it->candidates_.find(player) != it->candidates_.end())
+        for(Dock* dock : ObjectList<Dock>())
+        {
+            if(dock->candidates_.find(player) != dock->candidates_.end())
             {
                 if(index == 0)
-                    return *it;
+                    return dock;
                 index--;
             }
         }
-        return NULL;
+        return nullptr;
     }
 
@@ -327,11 +327,11 @@
     const DockingEffect* Dock::getEffect(unsigned int i) const
     {
-        for (std::list<DockingEffect*>::const_iterator effect = this->effects_.begin(); effect != this->effects_.end(); ++effect)
+        for (DockingEffect* effect : this->effects_)
         {
             if(i == 0)
-               return *effect;
+               return effect;
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
@@ -346,11 +346,11 @@
     const DockingAnimation* Dock::getAnimation(unsigned int i) const
     {
-        for (std::list<DockingAnimation*>::const_iterator animation = this->animations_.begin(); animation != this->animations_.end(); ++animation)
+        for (DockingAnimation* animation : this->animations_)
         {
             if(i == 0)
-               return *animation;
+               return animation;
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 }
Index: code/trunk/src/modules/docking/Dock.h
===================================================================
--- code/trunk/src/modules/docking/Dock.h	(revision 11056)
+++ code/trunk/src/modules/docking/Dock.h	(revision 11071)
@@ -65,6 +65,6 @@
 
             // XML interface
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             // XML functions
Index: code/trunk/src/modules/docking/DockToShip.cc
===================================================================
--- code/trunk/src/modules/docking/DockToShip.cc	(revision 11056)
+++ code/trunk/src/modules/docking/DockToShip.cc	(revision 11071)
@@ -72,5 +72,5 @@
 
         DockingTarget *target = DockingEffect::findTarget(this->target_);
-        if (target == NULL) {
+        if (target == nullptr) {
             orxout(internal_warning, context::docking) << "Can't retrieve target for '" << this->target_ << "'.." << endl;
             return false;
@@ -78,5 +78,5 @@
 
         ControllableEntity *dockTo = (ControllableEntity*) target->getParent();
-        if (dockTo == NULL) {
+        if (dockTo == nullptr) {
             orxout(internal_warning, context::docking) << "Parent is not a ControllableEntity.." << endl;
             return false;
Index: code/trunk/src/modules/docking/DockToShip.h
===================================================================
--- code/trunk/src/modules/docking/DockToShip.h	(revision 11056)
+++ code/trunk/src/modules/docking/DockToShip.h	(revision 11071)
@@ -60,10 +60,10 @@
             virtual ~DockToShip();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             void setTargetId(const std::string& str);
             const std::string& getTargetId() const;
 
-            virtual bool docking(PlayerInfo* player); //!< Called when docking starts
-            virtual bool release(PlayerInfo* player); //!< Called when player wants undock
+            virtual bool docking(PlayerInfo* player) override; //!< Called when docking starts
+            virtual bool release(PlayerInfo* player) override; //!< Called when player wants undock
         private:
             std::string target_;
Index: code/trunk/src/modules/docking/DockingAnimation.cc
===================================================================
--- code/trunk/src/modules/docking/DockingAnimation.cc	(revision 11056)
+++ code/trunk/src/modules/docking/DockingAnimation.cc	(revision 11071)
@@ -45,5 +45,5 @@
         RegisterObject(DockingAnimation);
 
-        this->parent_ = NULL;
+        this->parent_ = nullptr;
     }
 
@@ -57,10 +57,10 @@
         bool check = true;
 
-        for (std::list<DockingAnimation*>::iterator animation = animations.begin(); animation != animations.end(); animation++)
+        for (DockingAnimation* animation : animations)
         {
             if(dock)
-                check &= (*animation)->docking(player);
+                check &= animation->docking(player);
             else
-                check &= (*animation)->release(player);
+                check &= animation->release(player);
         }
 
Index: code/trunk/src/modules/docking/DockingController.cc
===================================================================
--- code/trunk/src/modules/docking/DockingController.cc	(revision 11056)
+++ code/trunk/src/modules/docking/DockingController.cc	(revision 11071)
@@ -44,7 +44,7 @@
         RegisterObject(DockingController);
 
-        this->dock_ = NULL;
-        this->player_ = NULL;
-        this->entity_ = NULL;
+        this->dock_ = nullptr;
+        this->player_ = nullptr;
+        this->entity_ = nullptr;
     }
 
@@ -122,5 +122,5 @@
         this->player_->startControl(this->entity_);
         this->setActive(false);
-        this->controllableEntity_ = NULL;
+        this->controllableEntity_ = nullptr;
 
         if (this->docking_)
Index: code/trunk/src/modules/docking/DockingController.h
===================================================================
--- code/trunk/src/modules/docking/DockingController.h	(revision 11056)
+++ code/trunk/src/modules/docking/DockingController.h	(revision 11071)
@@ -45,5 +45,5 @@
             virtual ~DockingController();
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
             void takeControl(bool docking);
@@ -53,5 +53,5 @@
 
         protected:
-            virtual void positionReached();
+            virtual void positionReached() override;
 
         private:
Index: code/trunk/src/modules/docking/DockingEffect.cc
===================================================================
--- code/trunk/src/modules/docking/DockingEffect.cc	(revision 11056)
+++ code/trunk/src/modules/docking/DockingEffect.cc	(revision 11071)
@@ -53,10 +53,10 @@
         bool check = true;
 
-        for (std::list<DockingEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
+        for (DockingEffect* effect : effects)
         {
             if (dock)
-                check &= (*effect)->docking(player);
+                check &= effect->docking(player);
             else
-                check &= (*effect)->release(player);
+                check &= effect->release(player);
         }
 
@@ -65,10 +65,10 @@
 
     DockingTarget *DockingEffect::findTarget(std::string name) {
-        for (ObjectList<DockingTarget>::iterator it = ObjectList<DockingTarget>::begin(); it != ObjectList<DockingTarget>::end(); ++it)
+        for (DockingTarget* target : ObjectList<DockingTarget>())
         {
-            if ((*it)->getName().compare(name) == 0)
-                return (*it);
+            if (target->getName().compare(name) == 0)
+                return target;
         }
-        return NULL;
+        return nullptr;
     }
 }
Index: code/trunk/src/modules/docking/DockingTarget.cc
===================================================================
--- code/trunk/src/modules/docking/DockingTarget.cc	(revision 11056)
+++ code/trunk/src/modules/docking/DockingTarget.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "DockingTarget.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 
@@ -49,12 +48,4 @@
     {
     }
-
-    void DockingTarget::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(DockingTarget, XMLPort, xmlelement, mode);
-
-        orxout(verbose, context::docking) << "DockingTarget with name '" << this->getName() << "' created.." << endl;
-    }
-
 }
 
Index: code/trunk/src/modules/docking/DockingTarget.h
===================================================================
--- code/trunk/src/modules/docking/DockingTarget.h	(revision 11056)
+++ code/trunk/src/modules/docking/DockingTarget.h	(revision 11071)
@@ -58,6 +58,4 @@
             virtual ~DockingTarget();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
     };
 
Index: code/trunk/src/modules/docking/MoveToDockingTarget.h
===================================================================
--- code/trunk/src/modules/docking/MoveToDockingTarget.h	(revision 11056)
+++ code/trunk/src/modules/docking/MoveToDockingTarget.h	(revision 11071)
@@ -59,6 +59,6 @@
             virtual ~MoveToDockingTarget();
 
-            virtual bool docking(PlayerInfo* player); //!< Called when a player starts docking
-            virtual bool release(PlayerInfo* player); //!< Called when player wants to undock
+            virtual bool docking(PlayerInfo* player) override; //!< Called when a player starts docking
+            virtual bool release(PlayerInfo* player) override; //!< Called when player wants to undock
     };
 
Index: code/trunk/src/modules/dodgerace/DodgeRace.cc
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRace.cc	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRace.cc	(revision 11071)
@@ -59,5 +59,5 @@
         comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&DodgeRace::comboControll, this)));
         this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
-        this->center_ = 0;
+        this->center_ = nullptr;
 
         this->setHUDTemplate("DodgeRaceHUD");
@@ -67,5 +67,5 @@
     {
         level++;
-        if (getPlayer() != NULL)
+        if (getPlayer() != nullptr)
         {
             for (int i = 0; i < 7; i++)
@@ -89,5 +89,5 @@
     void DodgeRace::tick(float dt)
     {
-        if (getPlayer() != NULL)
+        if (getPlayer() != nullptr)
         {
             currentPosition = getPlayer()->getWorldPosition().x;
@@ -138,9 +138,9 @@
     DodgeRaceShip* DodgeRace::getPlayer()
     {
-        if (player == NULL)
-        {
-            for (ObjectList<DodgeRaceShip>::iterator it = ObjectList<DodgeRaceShip>::begin(); it != ObjectList<DodgeRaceShip>::end(); ++it)
-            {
-                player = *it;
+        if (player == nullptr)
+        {
+            for (DodgeRaceShip* ship : ObjectList<DodgeRaceShip>())
+            {
+                player = ship;
             }
         }
@@ -177,5 +177,5 @@
         this->bForceSpawn_ = false;
 
-        if (this->center_ == NULL)  // abandon mission!
+        if (this->center_ == nullptr)  // abandon mission!
         {
             orxout(internal_error) << "DodgeRace: No Centerpoint specified." << endl;
Index: code/trunk/src/modules/dodgerace/DodgeRace.h
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRace.h	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRace.h	(revision 11071)
@@ -68,10 +68,10 @@
             DodgeRace(Context* context);
 
-            virtual void start();
-            virtual void end();
+            virtual void start() override;
+            virtual void end() override;
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual void playerPreSpawn(PlayerInfo* player);
+            virtual void playerPreSpawn(PlayerInfo* player) override;
 
             void levelUp();
@@ -84,5 +84,5 @@
             void setCenterpoint(DodgeRaceCenterPoint* center)
                        { this->center_ = center; }
-            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+            virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command
 
             // checks if multiplier should be reset.
Index: code/trunk/src/modules/dodgerace/DodgeRaceCenterPoint.cc
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRaceCenterPoint.cc	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRaceCenterPoint.cc	(revision 11071)
@@ -49,12 +49,7 @@
     }
 
-    void DodgeRaceCenterPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(DodgeRaceCenterPoint, XMLPort, xmlelement, mode);
-    }
-
     void DodgeRaceCenterPoint::checkGametype()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(DodgeRace)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(DodgeRace)))
         {
             DodgeRace* DodgeRaceGametype = orxonox_cast<DodgeRace*>(this->getGametype());
Index: code/trunk/src/modules/dodgerace/DodgeRaceCenterPoint.h
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRaceCenterPoint.h	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRaceCenterPoint.h	(revision 11071)
@@ -50,6 +50,4 @@
             DodgeRaceCenterPoint(Context* context); //checks whether the gametype is actually DodgeRace.
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
         private:
             void checkGametype();
Index: code/trunk/src/modules/dodgerace/DodgeRaceHUDinfo.cc
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRaceHUDinfo.cc	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRaceHUDinfo.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(DodgeRaceHUDinfo);
 
-        this->DodgeRaceGame = 0;
+        this->DodgeRaceGame = nullptr;
         this->bShowPoints_ = true;
     }
@@ -86,5 +86,5 @@
         else
         {
-            this->DodgeRaceGame = 0;
+            this->DodgeRaceGame = nullptr;
         }
     }
Index: code/trunk/src/modules/dodgerace/DodgeRaceHUDinfo.h
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRaceHUDinfo.h	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRaceHUDinfo.h	(revision 11071)
@@ -44,7 +44,7 @@
             DodgeRaceHUDinfo(Context* context);
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
 
             inline void setShowPoints(bool value)
Index: code/trunk/src/modules/dodgerace/DodgeRaceShip.cc
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRaceShip.cc	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRaceShip.cc	(revision 11071)
@@ -91,5 +91,5 @@
         // Camera
         Camera* camera = this->getCamera();
-        if (camera != NULL)
+        if (camera != nullptr)
         {
             // camera->setPosition(Vector3(-pos.z, -posforeward, 0));
@@ -142,5 +142,5 @@
     }
 
-    inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
     {
 
@@ -152,9 +152,9 @@
     DodgeRace* DodgeRaceShip::getGame()
     {
-        if (game == NULL)
+        if (game == nullptr)
         {
-            for (ObjectList<DodgeRace>::iterator it = ObjectList<DodgeRace>::begin(); it != ObjectList<DodgeRace>::end(); ++it)
+            for (DodgeRace* race : ObjectList<DodgeRace>())
             {
-                game = *it;
+                game = race;
             }
         }
Index: code/trunk/src/modules/dodgerace/DodgeRaceShip.h
===================================================================
--- code/trunk/src/modules/dodgerace/DodgeRaceShip.h	(revision 11056)
+++ code/trunk/src/modules/dodgerace/DodgeRaceShip.h	(revision 11071)
@@ -52,21 +52,23 @@
             DodgeRaceShip(Context* context);
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
             // overwrite for 2d movement
-            virtual void moveFrontBack(const Vector2& value);
-            virtual void moveRightLeft(const Vector2& value);
+            virtual void moveFrontBack(const Vector2& value) override;
+            virtual void moveRightLeft(const Vector2& value) override;
 
             // Starts or stops fireing
-            virtual void boost(bool bBoost);
+            virtual void boost(bool bBoost) override;
 
             //no rotation!
-            virtual void rotateYaw(const Vector2& value){};
-            virtual void rotatePitch(const Vector2& value){};
+            virtual void rotateYaw(const Vector2& value) override{};
+            virtual void rotatePitch(const Vector2& value) override{};
 
             //return to main menu if game has ended.
-            virtual void rotateRoll(const Vector2& value){if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+            virtual void rotateRoll(const Vector2& value) override{if (getGame()) if (getGame()->bEndGame) getGame()->end();};
 
             virtual void updateLevel();
+
+            virtual inline bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
 
             float speed, damping, posforeward;
@@ -74,8 +76,7 @@
 
         protected:
-            virtual void death();
+            virtual void death() override;
 
         private:
-            virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
             DodgeRace* getGame();
             WeakPtr<DodgeRace> game;
Index: code/trunk/src/modules/gametypes/OldRaceCheckPoint.cc
===================================================================
--- code/trunk/src/modules/gametypes/OldRaceCheckPoint.cc	(revision 11056)
+++ code/trunk/src/modules/gametypes/OldRaceCheckPoint.cc	(revision 11071)
@@ -49,5 +49,5 @@
 
         this->setRadarObjectColour(ColourValue::Blue);
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarVisibility(false);
     }
Index: code/trunk/src/modules/gametypes/OldRaceCheckPoint.h
===================================================================
--- code/trunk/src/modules/gametypes/OldRaceCheckPoint.h	(revision 11056)
+++ code/trunk/src/modules/gametypes/OldRaceCheckPoint.h	(revision 11071)
@@ -48,9 +48,9 @@
             virtual ~OldRaceCheckPoint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
 
             protected:
-            virtual void triggered(bool bIsTriggered);
+            virtual void triggered(bool bIsTriggered) override;
             inline void setLast(bool isLast)
                 { this->bIsLast_ = isLast; }
@@ -64,5 +64,5 @@
             inline float getTimeLimit()
                 { return this->bTimeLimit_;}
-            inline const WorldEntity* getWorldEntity() const
+            virtual inline const WorldEntity* getWorldEntity() const override
                 { return this; }
 
Index: code/trunk/src/modules/gametypes/OldSpaceRace.h
===================================================================
--- code/trunk/src/modules/gametypes/OldSpaceRace.h	(revision 11056)
+++ code/trunk/src/modules/gametypes/OldSpaceRace.h	(revision 11071)
@@ -55,9 +55,9 @@
             virtual ~OldSpaceRace() {}
 
-            virtual void start();
-            virtual void end();
+            virtual void start() override;
+            virtual void end() override;
 
             virtual void newCheckpointReached();
-            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command.
+            virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command.
                                                         //<! This is only a temporary solution. Better: create racingBots.
 
Index: code/trunk/src/modules/gametypes/RaceCheckPoint.cc
===================================================================
--- code/trunk/src/modules/gametypes/RaceCheckPoint.cc	(revision 11056)
+++ code/trunk/src/modules/gametypes/RaceCheckPoint.cc	(revision 11071)
@@ -53,5 +53,5 @@
 
         this->setRadarObjectColour(ColourValue::Blue);
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarVisibility(false);
         this->settingsChanged();
@@ -125,5 +125,5 @@
             }
         }
-        return NULL;
+        return nullptr;
     }
 
@@ -146,11 +146,11 @@
     {
         Vector3 checkpoints(-1,-1,-1); int count=0;
-        for (std::set<int>::iterator it= nextCheckpoints_.begin();it!=nextCheckpoints_.end(); it++ )
+        for (int nextCheckpoint : nextCheckpoints_)
         {
             switch (count)
             {
-                case 0: checkpoints.x = static_cast<Ogre::Real>(*it); break;
-                case 1: checkpoints.y = static_cast<Ogre::Real>(*it); break;
-                case 2: checkpoints.z = static_cast<Ogre::Real>(*it); break;
+                case 0: checkpoints.x = static_cast<Ogre::Real>(nextCheckpoint); break;
+                case 1: checkpoints.y = static_cast<Ogre::Real>(nextCheckpoint); break;
+                case 2: checkpoints.z = static_cast<Ogre::Real>(nextCheckpoint); break;
             }
             ++count;
Index: code/trunk/src/modules/gametypes/RaceCheckPoint.h
===================================================================
--- code/trunk/src/modules/gametypes/RaceCheckPoint.h	(revision 11056)
+++ code/trunk/src/modules/gametypes/RaceCheckPoint.h	(revision 11071)
@@ -48,5 +48,5 @@
             virtual ~RaceCheckPoint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             inline void setCheckpointIndex(int checkpointIndex)
@@ -92,7 +92,7 @@
         protected:
 
-            virtual void fire(bool bIsTriggered, BaseObject* originator);
+            virtual void fire(bool bIsTriggered, BaseObject* originator) override;
 
-            inline const WorldEntity* getWorldEntity() const
+            virtual inline const WorldEntity* getWorldEntity() const override
             {
                 return this;
Index: code/trunk/src/modules/gametypes/SpaceRace.cc
===================================================================
--- code/trunk/src/modules/gametypes/SpaceRace.cc	(revision 11056)
+++ code/trunk/src/modules/gametypes/SpaceRace.cc	(revision 11071)
@@ -88,6 +88,6 @@
             this->cantMove_ = true;
 
-            for (ObjectList<Engine>::iterator it = ObjectList<Engine>::begin(); it; ++it)
-                it->setActive(false);
+            for (Engine* engine : ObjectList<Engine>())
+                engine->setActive(false);
         }
 
@@ -95,6 +95,6 @@
         if (!this->isStartCountdownRunning() && this->cantMove_)
         {
-            for (ObjectList<Engine>::iterator it = ObjectList<Engine>::begin(); it; ++it)
-                it->setActive(true);
+            for (Engine* engine : ObjectList<Engine>())
+                engine->setActive(true);
 
             this->cantMove_= false;
Index: code/trunk/src/modules/gametypes/SpaceRace.h
===================================================================
--- code/trunk/src/modules/gametypes/SpaceRace.h	(revision 11056)
+++ code/trunk/src/modules/gametypes/SpaceRace.h	(revision 11071)
@@ -57,7 +57,7 @@
             virtual ~SpaceRace() {}
 
-            void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual void end();
+            virtual void end() override;
 
             void newCheckpointReached(RaceCheckPoint* checkpoint, PlayerInfo* player);
@@ -70,7 +70,7 @@
                 { return this->clock_; }
 
-            bool allowPawnHit(Pawn* victim, Pawn* originator);
-            bool allowPawnDamage(Pawn* victim, Pawn* originator);
-            bool allowPawnDeath(Pawn* victim, Pawn* originator);
+            virtual bool allowPawnHit(Pawn* victim, Pawn* originator) override;
+            virtual bool allowPawnDamage(Pawn* victim, Pawn* originator) override;
+            virtual bool allowPawnDeath(Pawn* victim, Pawn* originator) override;
 
         private:
Index: code/trunk/src/modules/gametypes/SpaceRaceController.cc
===================================================================
--- code/trunk/src/modules/gametypes/SpaceRaceController.cc	(revision 11056)
+++ code/trunk/src/modules/gametypes/SpaceRaceController.cc	(revision 11071)
@@ -59,10 +59,10 @@
 
         virtualCheckPointIndex = -2;
-        if (ObjectList<SpaceRaceManager>::size() != 1)
-            orxout(internal_warning) << "Expected 1 instance of SpaceRaceManager but found " << ObjectList<SpaceRaceManager>::size() << endl;
-        for (ObjectList<SpaceRaceManager>::iterator it = ObjectList<SpaceRaceManager>::begin(); it != ObjectList<SpaceRaceManager>::end(); ++it)
-        {
-            checkpoints = it->getAllCheckpoints();
-            nextRaceCheckpoint_ = it->findCheckpoint(0);
+        if (ObjectList<SpaceRaceManager>().size() != 1)
+            orxout(internal_warning) << "Expected 1 instance of SpaceRaceManager but found " << ObjectList<SpaceRaceManager>().size() << endl;
+        for (SpaceRaceManager* manager : ObjectList<SpaceRaceManager>())
+        {
+            checkpoints = manager->getAllCheckpoints();
+            nextRaceCheckpoint_ = manager->findCheckpoint(0);
         }
 
@@ -98,5 +98,5 @@
                     RaceCheckPoint* point2 = findCheckpoint((*numb));
 
-                    //if(point2 != NULL)
+                    //if(point2 != nullptr)
                     //placeVirtualCheckpoints((*it), point2);
                 }
@@ -126,8 +126,8 @@
         staticRacePoints_ = findStaticCheckpoints(nextRaceCheckpoint_, checkpoints);
         // initialisation of currentRaceCheckpoint_
-        currentRaceCheckpoint_ = NULL;
+        currentRaceCheckpoint_ = nullptr;
 
         int i;
-        for (i = -2; findCheckpoint(i) != NULL; i--)
+        for (i = -2; findCheckpoint(i) != nullptr; i--)
         {
             continue;
@@ -154,16 +154,16 @@
     {
         std::map<RaceCheckPoint*, int> zaehler; // counts how many times the checkpoint was reached (for simulation)
-        for (unsigned int i = 0; i < allCheckpoints.size(); i++)
-        {
-            zaehler.insert(std::pair<RaceCheckPoint*, int>(allCheckpoints[i],0));
+        for (RaceCheckPoint* checkpoint : allCheckpoints)
+        {
+            zaehler.insert(std::pair<RaceCheckPoint*, int>(checkpoint,0));
         }
         int maxWays = rekSimulationCheckpointsReached(currentCheckpoint, zaehler);
 
         std::vector<RaceCheckPoint*> returnVec;
-        for (std::map<RaceCheckPoint*, int>::iterator iter = zaehler.begin(); iter != zaehler.end(); iter++)
-        {
-            if (iter->second == maxWays)
-            {
-                returnVec.push_back(iter->first);
+        for (const auto& mapEntry : zaehler)
+        {
+            if (mapEntry.second == maxWays)
+            {
+                returnVec.push_back(mapEntry.first);
             }
         }
@@ -187,15 +187,15 @@
         {
             int numberOfWays = 0; // counts number of ways from this Point to the last point
-            for (std::set<int>::iterator it = currentCheckpoint->getNextCheckpoints().begin(); it!= currentCheckpoint->getNextCheckpoints().end(); ++it)
-            {
-                if (currentCheckpoint == findCheckpoint(*it))
+            for (int checkpointIndex : currentCheckpoint->getNextCheckpoints())
+            {
+                if (currentCheckpoint == findCheckpoint(checkpointIndex))
                 {
                     //orxout() << currentCheckpoint->getCheckpointIndex()<<endl;
                     continue;
                 }
-                if (findCheckpoint(*it) == NULL)
-                    orxout(internal_warning) << "Problematic Point: " << (*it) << endl;
+                if (findCheckpoint(checkpointIndex) == nullptr)
+                    orxout(internal_warning) << "Problematic Point: " << checkpointIndex << endl;
                 else
-                    numberOfWays += rekSimulationCheckpointsReached(findCheckpoint(*it), zaehler);
+                    numberOfWays += rekSimulationCheckpointsReached(findCheckpoint(checkpointIndex), zaehler);
             }
             zaehler[currentCheckpoint] += numberOfWays;
@@ -209,5 +209,5 @@
     float SpaceRaceController::distanceSpaceshipToCheckPoint(RaceCheckPoint* CheckPoint)
     {
-        if (this->getControllableEntity() != NULL)
+        if (this->getControllableEntity() != nullptr)
         {
             return (CheckPoint->getPosition()- this->getControllableEntity()->getPosition()).length();
@@ -223,13 +223,13 @@
     {
         float minDistance = 0;
-        RaceCheckPoint* minNextRaceCheckPoint = NULL;
+        RaceCheckPoint* minNextRaceCheckPoint = nullptr;
 
         // find the next checkpoint with the minimal distance
-        for (std::set<int>::iterator it = raceCheckpoint->getNextCheckpoints().begin(); it != raceCheckpoint->getNextCheckpoints().end(); ++it)
-        {
-            RaceCheckPoint* nextRaceCheckPoint = findCheckpoint(*it);
+        for (int checkpointIndex : raceCheckpoint->getNextCheckpoints())
+        {
+            RaceCheckPoint* nextRaceCheckPoint = findCheckpoint(checkpointIndex);
             float distance = recCalculateDistance(nextRaceCheckPoint, this->getControllableEntity()->getPosition());
 
-            if (distance < minDistance || minNextRaceCheckPoint == NULL)
+            if (distance < minDistance || minNextRaceCheckPoint == nullptr)
             {
                 minDistance = distance;
@@ -255,9 +255,9 @@
         {
             float minimum = std::numeric_limits<float>::max();
-            for (std::set<int>::iterator it = currentCheckPoint->getNextCheckpoints().begin(); it != currentCheckPoint->getNextCheckpoints().end(); ++it)
+            for (int checkpointIndex : currentCheckPoint->getNextCheckpoints())
             {
                 int dist_currentCheckPoint_currentPosition = static_cast<int> ((currentPosition- currentCheckPoint->getPosition()).length());
 
-                minimum = std::min(minimum, dist_currentCheckPoint_currentPosition + recCalculateDistance(findCheckpoint(*it), currentCheckPoint->getPosition()));
+                minimum = std::min(minimum, dist_currentCheckPoint_currentPosition + recCalculateDistance(findCheckpoint(checkpointIndex), currentCheckPoint->getPosition()));
                 // minimum of distanz from 'currentPosition' to the next static Checkpoint
             }
@@ -271,5 +271,5 @@
     RaceCheckPoint* SpaceRaceController::adjustNextPoint()
     {
-        if (currentRaceCheckpoint_ == NULL) // no Adjust possible
+        if (currentRaceCheckpoint_ == nullptr) // no Adjust possible
 
         {
@@ -289,8 +289,8 @@
     RaceCheckPoint* SpaceRaceController::findCheckpoint(int index) const
     {
-        for (size_t i = 0; i < this->checkpoints_.size(); ++i)
-            if (this->checkpoints_[i]->getCheckpointIndex() == index)
-                return this->checkpoints_[i];
-        return NULL;
+        for (RaceCheckPoint* checkpoint : this->checkpoints_)
+            if (checkpoint->getCheckpointIndex() == index)
+                return checkpoint;
+        return nullptr;
     }
 
@@ -299,5 +299,6 @@
         orxout()<<"add VCP at"<<virtualCheckPointPosition.x<<", "<<virtualCheckPointPosition.y<<", "<<virtualCheckPointPosition.z<<endl;
         RaceCheckPoint* newTempRaceCheckPoint;
-        for (ObjectList<SpaceRaceManager>::iterator it = ObjectList<SpaceRaceManager>::begin(); it!= ObjectList<SpaceRaceManager>::end(); ++it)
+        ObjectList<SpaceRaceManager> list;
+        for (ObjectList<SpaceRaceManager>::iterator it = list.begin(); it!= list.end(); ++it)
         {
             newTempRaceCheckPoint = new RaceCheckPoint((*it));
@@ -347,5 +348,5 @@
     void SpaceRaceController::tick(float dt)
     {
-        if (this->getControllableEntity() == NULL || this->getControllableEntity()->getPlayer() == NULL )
+        if (this->getControllableEntity() == nullptr || this->getControllableEntity()->getPlayer() == nullptr )
         {
             //orxout()<< this->getControllableEntity() << " in tick"<<endl;
@@ -414,10 +415,10 @@
         btScalar radiusObject;
 
-        for (std::vector<StaticEntity*>::const_iterator it = allObjects.begin(); it != allObjects.end(); ++it)
-        {
-            for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape) != 0; everyShape++)
-            {
-                btCollisionShape* currentShape = (*it)->getAttachedCollisionShape(everyShape)->getCollisionShape();
-                if(currentShape == NULL)
+        for (StaticEntity* object : allObjects)
+        {
+            for (int everyShape=0; object->getAttachedCollisionShape(everyShape) != nullptr; everyShape++)
+            {
+                btCollisionShape* currentShape = object->getAttachedCollisionShape(everyShape)->getCollisionShape();
+                if(currentShape == nullptr)
                 continue;
 
@@ -444,8 +445,8 @@
         for (std::vector<StaticEntity*>::iterator it = allObjects.begin(); it != allObjects.end(); ++it)
         {
-            for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape) != 0; everyShape++)
+            for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape) != nullptr; everyShape++)
             {
                 btCollisionShape* currentShape = (*it)->getAttachedCollisionShape(everyShape)->getCollisionShape();
-                if(currentShape == NULL)
+                if(currentShape == nullptr)
                 continue;
 
@@ -488,8 +489,9 @@
         std::vector<StaticEntity*> problematicObjects;
 
-        for (ObjectList<StaticEntity>::iterator it = ObjectList<StaticEntity>::begin(); it!= ObjectList<StaticEntity>::end(); ++it)
-        {
-
-            if (dynamic_cast<RaceCheckPoint*>(*it) != NULL)
+        ObjectList<StaticEntity> list;
+        for (ObjectList<StaticEntity>::iterator it = list.begin(); it!= list.end(); ++it)
+        {
+
+            if (dynamic_cast<RaceCheckPoint*>(*it) != nullptr)
             {
                 continue;
@@ -537,10 +539,10 @@
         //                    btVector3 positionObject;
         //                    btScalar radiusObject;
-        //                    if((*it)==NULL)
+        //                    if((*it)==nullptr)
         //                    {   orxout()<<"Problempoint 1.1"<<endl; continue;}
         //                    //TODO: Probably it points on a wrong object
-        //                    for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape)!=0; everyShape++)
+        //                    for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape)!=nullptr; everyShape++)
         //                    {
-        //                        if((*it)->getAttachedCollisionShape(everyShape)->getCollisionShape()==NULL)
+        //                        if((*it)->getAttachedCollisionShape(everyShape)->getCollisionShape()==nullptr)
         //                        {    continue;}
         //
@@ -570,9 +572,9 @@
         //                        btVector3 positionObject;
         //                        btScalar radiusObject;
-        //                        if((*it)==NULL)
+        //                        if((*it)==nullptr)
         //                        {   orxout()<<"Problempoint 1"<<endl; continue;}
-        //                        for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape)!=0; everyShape++)
+        //                        for (int everyShape=0; (*it)->getAttachedCollisionShape(everyShape)!=nullptr; everyShape++)
         //                        {
-        //                            if((*it)->getAttachedCollisionShape(everyShape)->getCollisionShape()==NULL)
+        //                            if((*it)->getAttachedCollisionShape(everyShape)->getCollisionShape()==nullptr)
         //                            {   orxout()<<"Problempoint 2.2"<<endl; continue;}
         //                            (*it)->getAttachedCollisionShape(everyShape)->getCollisionShape()->getBoundingSphere(positionObject,radiusObject);
Index: code/trunk/src/modules/gametypes/SpaceRaceController.h
===================================================================
--- code/trunk/src/modules/gametypes/SpaceRaceController.h	(revision 11056)
+++ code/trunk/src/modules/gametypes/SpaceRaceController.h	(revision 11071)
@@ -42,6 +42,6 @@
             SpaceRaceController(Context* context);
             virtual ~SpaceRaceController();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
 
         private:
Index: code/trunk/src/modules/gametypes/SpaceRaceManager.cc
===================================================================
--- code/trunk/src/modules/gametypes/SpaceRaceManager.cc	(revision 11056)
+++ code/trunk/src/modules/gametypes/SpaceRaceManager.cc	(revision 11071)
@@ -54,6 +54,6 @@
     SpaceRaceManager::~SpaceRaceManager()
     {
-        for (size_t i = 0; i < this->checkpoints_.size(); ++i)
-        this->checkpoints_[i]->destroy();
+        for (RaceCheckPoint* checkpoint : this->checkpoints_)
+        checkpoint->destroy();
     }
 
@@ -71,5 +71,5 @@
         this->players_ = this->race_->getPlayers();
 
-        if (this->checkpoints_[0] != NULL && !this->firstcheckpointvisible_)
+        if (this->checkpoints_[0] != nullptr && !this->firstcheckpointvisible_)
         {
             this->checkpoints_[0]->setRadarVisibility(true);
@@ -77,11 +77,11 @@
         }
 
-        for ( std::map< PlayerInfo*, Player>::iterator it = players_.begin(); it != players_.end(); ++it)
+        for (const auto& mapEntry : players_)
         {
 
-            for (size_t i = 0; i < this->checkpoints_.size(); ++i)
+            for (RaceCheckPoint* checkpoint : this->checkpoints_)
             {
-                if (this->checkpoints_[i]->playerWasHere(it->first)){
-                this->checkpointReached(this->checkpoints_[i], it->first /*this->checkpoints_[i]->getPlayer()*/);
+                if (checkpoint->playerWasHere(mapEntry.first)){
+                this->checkpointReached(checkpoint, mapEntry.first /*this->checkpoints_[i]->getPlayer()*/);
                 }
             }
@@ -100,5 +100,5 @@
         return this->checkpoints_[index];
         else
-        return 0;
+        return nullptr;
     }
 
@@ -113,18 +113,18 @@
     RaceCheckPoint* SpaceRaceManager::findCheckpoint(int index) const
     {
-        for (size_t i = 0; i < this->checkpoints_.size(); ++i)
-        if (this->checkpoints_[i]->getCheckpointIndex() == index)
-        return this->checkpoints_[i];
-        return 0;
+        for (RaceCheckPoint* checkpoint : this->checkpoints_)
+        if (checkpoint->getCheckpointIndex() == index)
+        return checkpoint;
+        return nullptr;
     }
 
     bool SpaceRaceManager::reachedValidCheckpoint(RaceCheckPoint* oldCheckpoint, RaceCheckPoint* newCheckpoint, PlayerInfo* player) const
     {
-        if (oldCheckpoint != NULL)
+        if (oldCheckpoint != nullptr)
         {
             // the player already visited an old checkpoint; see which checkpoints are possible now
             const std::set<int>& possibleCheckpoints = oldCheckpoint->getNextCheckpoints();
-            for (std::set<int>::const_iterator it = possibleCheckpoints.begin(); it != possibleCheckpoints.end(); ++it)
-            if (this->findCheckpoint(*it) == newCheckpoint)
+            for (int possibleCheckpoint : possibleCheckpoints)
+            if (this->findCheckpoint(possibleCheckpoint) == newCheckpoint)
             return true;
             return false;
@@ -179,6 +179,6 @@
         {
             const std::set<int>& oldVisible = oldCheckpoint->getNextCheckpoints();
-            for (std::set<int>::const_iterator it = oldVisible.begin(); it != oldVisible.end(); ++it)
-            this->findCheckpoint(*it)->setRadarVisibility(false);
+            for (int checkpointIndex : oldVisible)
+            this->findCheckpoint(checkpointIndex)->setRadarVisibility(false);
         }
 
@@ -188,6 +188,6 @@
 
             const std::set<int>& newVisible = newCheckpoint->getNextCheckpoints();
-            for (std::set<int>::const_iterator it = newVisible.begin(); it != newVisible.end(); ++it)
-            this->findCheckpoint(*it)->setRadarVisibility(true);
+            for (int checkpointIndex : newVisible)
+            this->findCheckpoint(checkpointIndex)->setRadarVisibility(true);
         }
     }
Index: code/trunk/src/modules/gametypes/SpaceRaceManager.h
===================================================================
--- code/trunk/src/modules/gametypes/SpaceRaceManager.h	(revision 11056)
+++ code/trunk/src/modules/gametypes/SpaceRaceManager.h	(revision 11071)
@@ -58,5 +58,5 @@
             virtual ~SpaceRaceManager() ;
 
-            void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             void addCheckpoint(RaceCheckPoint* checkpoint);
@@ -69,5 +69,5 @@
             std::vector<RaceCheckPoint*> getAllCheckpoints();
 
-            void tick(float dt);
+            virtual void tick(float dt) override;
 
         protected:
Index: code/trunk/src/modules/hover/FlagHUD.cc
===================================================================
--- code/trunk/src/modules/hover/FlagHUD.cc	(revision 11056)
+++ code/trunk/src/modules/hover/FlagHUD.cc	(revision 11071)
@@ -48,5 +48,5 @@
         RegisterObject(FlagHUD);
 
-        this->hoverGame_ = NULL;
+        this->hoverGame_ = nullptr;
         this->panel_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
             .createOverlayElement("Panel", "FlagHUD_Panel_" + getUniqueNumberString()));
@@ -101,5 +101,5 @@
         else
         {
-            this->hoverGame_ = 0;
+            this->hoverGame_ = nullptr;
         }
     }
Index: code/trunk/src/modules/hover/FlagHUD.h
===================================================================
--- code/trunk/src/modules/hover/FlagHUD.h	(revision 11056)
+++ code/trunk/src/modules/hover/FlagHUD.h	(revision 11071)
@@ -47,6 +47,6 @@
         virtual ~FlagHUD();
 
-        virtual void tick(float dt);
-        virtual void changedOwner();
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
 
         void setFlagCount(int flagCount);
Index: code/trunk/src/modules/hover/Hover.cc
===================================================================
--- code/trunk/src/modules/hover/Hover.cc	(revision 11056)
+++ code/trunk/src/modules/hover/Hover.cc	(revision 11071)
@@ -48,5 +48,5 @@
         RegisterObject(Hover);
 
-        this->origin_ = NULL;
+        this->origin_ = nullptr;
         this->numberOfFlags_ = 1;
         this->firstTick_ = true;
Index: code/trunk/src/modules/hover/Hover.h
===================================================================
--- code/trunk/src/modules/hover/Hover.h	(revision 11056)
+++ code/trunk/src/modules/hover/Hover.h	(revision 11071)
@@ -50,5 +50,5 @@
             Hover(Context* context);
 
-            virtual void tick(float dt);          
+            virtual void tick(float dt) override;
 
             void setOrigin(HoverOrigin* origin)
Index: code/trunk/src/modules/hover/HoverFlag.cc
===================================================================
--- code/trunk/src/modules/hover/HoverFlag.cc	(revision 11056)
+++ code/trunk/src/modules/hover/HoverFlag.cc	(revision 11071)
@@ -49,11 +49,11 @@
         RegisterObject(HoverFlag);
 
-        this->model_ = NULL;
-        this->cs_ = NULL;
+        this->model_ = nullptr;
+        this->cs_ = nullptr;
         this->collided_ = false;
 
         this->enableCollisionCallback();
         this->setCollisionResponse(true);
-        this->setCollisionType(Static);
+        this->setCollisionType(CollisionType::Static);
     }
 
Index: code/trunk/src/modules/hover/HoverFlag.h
===================================================================
--- code/trunk/src/modules/hover/HoverFlag.h	(revision 11056)
+++ code/trunk/src/modules/hover/HoverFlag.h	(revision 11071)
@@ -51,5 +51,5 @@
             void init(int xCoordinate, int yCoordinate, int cellSize);
 
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint);            
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
 
             inline bool getCollided() const
Index: code/trunk/src/modules/hover/HoverOrigin.cc
===================================================================
--- code/trunk/src/modules/hover/HoverOrigin.cc	(revision 11056)
+++ code/trunk/src/modules/hover/HoverOrigin.cc	(revision 11071)
@@ -58,5 +58,5 @@
     void HoverOrigin::checkGametype()
     {
-        if (getGametype() != NULL && this->getGametype()->isA(Class(Hover)))
+        if (getGametype() != nullptr && this->getGametype()->isA(Class(Hover)))
         {
             Hover* hoverGametype = orxonox_cast<Hover*>(this->getGametype());
Index: code/trunk/src/modules/hover/HoverOrigin.h
===================================================================
--- code/trunk/src/modules/hover/HoverOrigin.h	(revision 11056)
+++ code/trunk/src/modules/hover/HoverOrigin.h	(revision 11071)
@@ -108,6 +108,6 @@
         public:
             HoverOrigin(Context* context); //!< Constructor. Registers and initializes the object and checks whether the gametype is actually Hover.
-            virtual ~HoverOrigin() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method to create a HoverOrigin through XML.
+            virtual ~HoverOrigin() = default;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a HoverOrigin through XML.
             
             inline void setNumCells(int numCells)
Index: code/trunk/src/modules/hover/HoverShip.h
===================================================================
--- code/trunk/src/modules/hover/HoverShip.h	(revision 11056)
+++ code/trunk/src/modules/hover/HoverShip.h	(revision 11071)
@@ -44,5 +44,5 @@
             HoverShip(Context* context);
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             /// sets this ships jumpBoost
@@ -53,19 +53,19 @@
                 { return this->jumpBoost_; }
 
-            virtual void moveFrontBack(const Vector2& value);
+            virtual void moveFrontBack(const Vector2& value) override;
 
-            virtual void moveRightLeft(const Vector2& value);
+            virtual void moveRightLeft(const Vector2& value) override;
 
-            virtual void moveUpDown(const Vector2& value);
+            virtual void moveUpDown(const Vector2& value) override;
 
-            virtual void rotateYaw(const Vector2& value);
+            virtual void rotateYaw(const Vector2& value) override;
 
-            virtual void rotatePitch(const Vector2& value);
+            virtual void rotatePitch(const Vector2& value) override;
 
-            virtual void rotateRoll(const Vector2& value);
+            virtual void rotateRoll(const Vector2& value) override;
 
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
 
-            virtual void boost(bool bBoost);
+            virtual void boost(bool bBoost) override;
 
         private:
Index: code/trunk/src/modules/hover/HoverWall.cc
===================================================================
--- code/trunk/src/modules/hover/HoverWall.cc	(revision 11056)
+++ code/trunk/src/modules/hover/HoverWall.cc	(revision 11071)
@@ -46,10 +46,10 @@
         RegisterObject(HoverWall);
 
-        this->model_ = NULL;
-        this->cs_ = NULL;
+        this->model_ = nullptr;
+        this->cs_ = nullptr;
 
         this->enableCollisionCallback();
         this->setCollisionResponse(true);
-        this->setCollisionType(Static);
+        this->setCollisionType(CollisionType::Static);
     }
 
Index: code/trunk/src/modules/hover/TimeHUD.cc
===================================================================
--- code/trunk/src/modules/hover/TimeHUD.cc	(revision 11056)
+++ code/trunk/src/modules/hover/TimeHUD.cc	(revision 11071)
@@ -47,5 +47,5 @@
         this->time_ = 0.0f;
         this->running_ = false;
-        this->hoverGame_ = 0;
+        this->hoverGame_ = nullptr;
         setRunning(true);
     }
@@ -98,5 +98,5 @@
         else
         {
-            this->hoverGame_ = 0;
+            this->hoverGame_ = nullptr;
         }
     }
Index: code/trunk/src/modules/hover/TimeHUD.h
===================================================================
--- code/trunk/src/modules/hover/TimeHUD.h	(revision 11056)
+++ code/trunk/src/modules/hover/TimeHUD.h	(revision 11071)
@@ -45,6 +45,6 @@
             TimeHUD(Context* context);
 
-            virtual void tick(float dt);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void changedOwner() override;
 
             /// sets if the clock is running
Index: code/trunk/src/modules/invader/Invader.cc
===================================================================
--- code/trunk/src/modules/invader/Invader.cc	(revision 11056)
+++ code/trunk/src/modules/invader/Invader.cc	(revision 11071)
@@ -61,5 +61,5 @@
         RegisterObject(Invader);
         this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
-        this->center_ = 0;
+        this->center_ = nullptr;
         bEndGame = false;
         lives = 3;
@@ -78,5 +78,5 @@
     {
         level++;
-        if (getPlayer() != NULL)
+        if (getPlayer() != nullptr)
         {
             for (int i = 0; i < 7; i++)
@@ -103,8 +103,8 @@
     InvaderShip* Invader::getPlayer()
     {
-        if (player == NULL)
+        if (player == nullptr)
         {
-            for (ObjectList<InvaderShip>::iterator it = ObjectList<InvaderShip>::begin(); it != ObjectList<InvaderShip>::end(); ++it)
-                player = *it;
+            for (InvaderShip* ship : ObjectList<InvaderShip>())
+                player = ship;
         }
         return player;
@@ -113,5 +113,5 @@
     void Invader::spawnEnemy()
     {
-        if (getPlayer() == NULL)
+        if (getPlayer() == nullptr)
             return;
 
@@ -134,4 +134,9 @@
             newPawn->setPosition(player->getPosition() + Vector3(500.f + 100 * i, 0, float(rand())/RAND_MAX * 400 - 200));
         }
+    }
+
+    void Invader::setCenterpoint(InvaderCenterPoint* center)
+    {
+        this->center_ = center;
     }
 
@@ -160,5 +165,5 @@
         this->bForceSpawn_ = true;
 
-        if (this->center_ == NULL)  // abandon mission!
+        if (this->center_ == nullptr)  // abandon mission!
         {
             orxout(internal_error) << "Invader: No Centerpoint specified." << endl;
Index: code/trunk/src/modules/invader/Invader.h
===================================================================
--- code/trunk/src/modules/invader/Invader.h	(revision 11056)
+++ code/trunk/src/modules/invader/Invader.h	(revision 11071)
@@ -39,7 +39,4 @@
 
 #include "gametypes/Deathmatch.h"
-
-#include "InvaderCenterPoint.h"
-
 #include "tools/Timer.h"
 
@@ -52,12 +49,11 @@
             Invader(Context* context);
 
-            virtual void start();
-            virtual void end();
-            virtual void addBots(unsigned int amount){} //<! overwrite function in order to bypass the addbots command
+            virtual void start() override;
+            virtual void end() override;
+            virtual void addBots(unsigned int amount) override{} //<! overwrite function in order to bypass the addbots command
 
             void spawnEnemy();
 
-            void setCenterpoint(InvaderCenterPoint* center)
-            { this->center_ = center; }
+            void setCenterpoint(InvaderCenterPoint* center);
 
             int getLives(){return this->lives;}
Index: code/trunk/src/modules/invader/InvaderCenterPoint.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderCenterPoint.cc	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderCenterPoint.cc	(revision 11071)
@@ -49,12 +49,7 @@
     }
 
-    void InvaderCenterPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(InvaderCenterPoint, XMLPort, xmlelement, mode);
-    }
-
     void InvaderCenterPoint::checkGametype()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Invader)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Invader)))
         {
             Invader* InvaderGametype = orxonox_cast<Invader*>(this->getGametype());
Index: code/trunk/src/modules/invader/InvaderCenterPoint.h
===================================================================
--- code/trunk/src/modules/invader/InvaderCenterPoint.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderCenterPoint.h	(revision 11071)
@@ -47,6 +47,4 @@
             InvaderCenterPoint(Context* context); //checks whether the gametype is actually Invader.
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
         private:
             void checkGametype();
Index: code/trunk/src/modules/invader/InvaderEnemy.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemy.cc	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderEnemy.cc	(revision 11071)
@@ -32,6 +32,8 @@
 */
 
-#include "invader/InvaderPrereqs.h"
 #include "InvaderEnemy.h"
+
+#include "core/CoreIncludes.h"
+#include "Invader.h"
 #include "InvaderShip.h"
 
@@ -54,5 +56,5 @@
             removeHealth(2000);
 
-        if (player != NULL)
+        if (player != nullptr)
         {
             float newZ = 2/(pow(abs(getPosition().x - player->getPosition().x) * 0.01f, 2) + 1) * (player->getPosition().z - getPosition().z);
@@ -62,5 +64,5 @@
     }
 
-    inline bool InvaderEnemy::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    inline bool InvaderEnemy::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
     {
         if(orxonox_cast<InvaderShip*>(otherObject))
@@ -71,8 +73,8 @@
     Invader* InvaderEnemy::getGame()
     {
-        if (game == NULL)
+        if (game == nullptr)
         {
-            for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
-                game = *it;
+            for (Invader* invader : ObjectList<Invader>())
+                game = invader;
         }
         return game;
@@ -82,5 +84,5 @@
     {
         Pawn::damage(damage, healthdamage, shielddamage, originator, cs);
-        if (getGame() && orxonox_cast<InvaderShip*>(originator) != NULL && getHealth() <= 0)
+        if (getGame() && orxonox_cast<InvaderShip*>(originator) != nullptr && getHealth() <= 0)
             getGame()->addPoints(42);
     }
Index: code/trunk/src/modules/invader/InvaderEnemy.h
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemy.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderEnemy.h	(revision 11071)
@@ -37,5 +37,5 @@
 #include "invader/InvaderPrereqs.h"
 
-#include "worldentities/pawns/SpaceShip.h"
+#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
@@ -46,7 +46,7 @@
             InvaderEnemy(Context* context);
 
-            virtual void tick(float dt);
-            virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
-            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs);
+            virtual void tick(float dt) override;
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs) override;
             virtual void setPlayer(InvaderShip* player){this->player = player;}
 
Index: code/trunk/src/modules/invader/InvaderEnemyShooter.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemyShooter.cc	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderEnemyShooter.cc	(revision 11071)
@@ -32,7 +32,10 @@
 */
 
-#include "invader/InvaderPrereqs.h"
 #include "InvaderEnemyShooter.h"
-// #include "worldentities/pawns/SpaceShip.h"
+
+#include "core/CoreIncludes.h"
+#include "core/command/Executor.h"
+#include "Invader.h"
+#include "InvaderShip.h"
 
 namespace orxonox
@@ -56,5 +59,5 @@
             removeHealth(2000);
 
-        if (player != NULL)
+        if (player != nullptr)
         {
             float distPlayer = player->getPosition().z - getPosition().z;
@@ -74,5 +77,5 @@
     {
         Pawn::damage(damage, healthdamage, shielddamage, originator, cs);
-        if (getGame() && orxonox_cast<InvaderShip*>(originator) != NULL && getHealth() <= 0)
+        if (getGame() && orxonox_cast<InvaderShip*>(originator) != nullptr && getHealth() <= 0)
             getGame()->addPoints(3*42);
     }
Index: code/trunk/src/modules/invader/InvaderEnemyShooter.h
===================================================================
--- code/trunk/src/modules/invader/InvaderEnemyShooter.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderEnemyShooter.h	(revision 11071)
@@ -47,6 +47,6 @@
             InvaderEnemyShooter(Context* context);
 
-            virtual void tick(float dt);
-            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs);
+            virtual void tick(float dt) override;
+            virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs) override;
         protected:
             void shoot();
Index: code/trunk/src/modules/invader/InvaderHUDinfo.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderHUDinfo.cc	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderHUDinfo.cc	(revision 11071)
@@ -30,5 +30,5 @@
 #include "core/XMLPort.h"
 #include "util/Convert.h"
-// #include "Invader.h"
+#include "Invader.h"
 
 namespace orxonox
@@ -40,5 +40,5 @@
         RegisterObject(InvaderHUDinfo);
 
-        this->InvaderGame = 0;
+        this->InvaderGame = nullptr;
         this->bShowLives_ = false;
         this->bShowLevel_ = false;
@@ -132,5 +132,5 @@
         else
         {
-            this->InvaderGame = 0;
+            this->InvaderGame = nullptr;
         }
     }
Index: code/trunk/src/modules/invader/InvaderHUDinfo.h
===================================================================
--- code/trunk/src/modules/invader/InvaderHUDinfo.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderHUDinfo.h	(revision 11071)
@@ -40,7 +40,7 @@
             InvaderHUDinfo(Context* context);
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
 
             inline void setShowLives(bool value)
Index: code/trunk/src/modules/invader/InvaderShip.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderShip.cc	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderShip.cc	(revision 11071)
@@ -37,4 +37,7 @@
 #include "core/XMLPort.h"
 #include "Invader.h"
+#include "InvaderEnemy.h"
+#include "graphics/Camera.h"
+#include "weapons/projectiles/Projectile.h"
 
 namespace orxonox
@@ -92,5 +95,5 @@
         // Camera
         Camera* camera = this->getCamera();
-        if (camera != NULL)
+        if (camera != nullptr)
         {
             camera->setPosition(Vector3(-pos.z, -posforeward, 0));
@@ -139,5 +142,11 @@
         isFireing = bBoost;
     }
-    inline bool InvaderShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+    void InvaderShip::rotateRoll(const Vector2& value)
+    {
+        if (getGame())
+            if (getGame()->bEndGame)
+                getGame()->end();
+    }
+    inline bool InvaderShip::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
     {
         // orxout() << "touch!!! " << endl; //<< otherObject << " at " << contactPoint;
@@ -145,5 +154,5 @@
         Projectile* shot = orxonox_cast<Projectile*>(otherObject);
         // ensure that this gets only called once per enemy.
-        if (enemy != NULL && lastEnemy != enemy)
+        if (enemy != nullptr && lastEnemy != enemy)
         {
             lastEnemy = enemy;
@@ -156,7 +165,7 @@
         }
         // was shot, decrease multiplier
-        else if (shot != NULL  && lastShot != shot)
+        else if (shot != nullptr  && lastShot != shot)
         {
-            if (getGame() && orxonox_cast<InvaderEnemy*>(shot->getShooter()) != NULL)
+            if (getGame() && orxonox_cast<InvaderEnemy*>(shot->getShooter()) != nullptr)
             {
                 if (getGame()->multiplier > 1)
@@ -173,8 +182,8 @@
     Invader* InvaderShip::getGame()
     {
-        if (game == NULL)
+        if (game == nullptr)
         {
-            for (ObjectList<Invader>::iterator it = ObjectList<Invader>::begin(); it != ObjectList<Invader>::end(); ++it)
-                game = *it;
+            for (Invader* invader : ObjectList<Invader>())
+                game = invader;
         }
         return game;
Index: code/trunk/src/modules/invader/InvaderShip.h
===================================================================
--- code/trunk/src/modules/invader/InvaderShip.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderShip.h	(revision 11071)
@@ -37,7 +37,6 @@
 #include "invader/InvaderPrereqs.h"
 
+#include "weapons/WeaponsPrereqs.h"
 #include "worldentities/pawns/SpaceShip.h"
-#include "graphics/Camera.h"
-#include "weapons/projectiles/Projectile.h"
 
 namespace orxonox
@@ -48,25 +47,25 @@
             InvaderShip(Context* context);
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
             // overwrite for 2d movement
-            virtual void moveFrontBack(const Vector2& value);
-            virtual void moveRightLeft(const Vector2& value);
+            virtual void moveFrontBack(const Vector2& value) override;
+            virtual void moveRightLeft(const Vector2& value) override;
 
             // Starts or stops fireing
-            virtual void boost(bool bBoost);
+            virtual void boost(bool bBoost) override;
 
             //no rotation!
-            virtual void rotateYaw(const Vector2& value){}; 
-            virtual void rotatePitch(const Vector2& value){};
+            virtual void rotateYaw(const Vector2& value) override{}; 
+            virtual void rotatePitch(const Vector2& value) override{};
             //return to main menu if game has ended.
-            virtual void rotateRoll(const Vector2& value){if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+            virtual void rotateRoll(const Vector2& value) override;
 
             virtual void updateLevel();
 
-            virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
+            virtual inline bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
 
         protected:
-            virtual void death();
+            virtual void death() override;
         private:
             Invader* getGame();
Index: code/trunk/src/modules/invader/InvaderWeapon.h
===================================================================
--- code/trunk/src/modules/invader/InvaderWeapon.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderWeapon.h	(revision 11071)
@@ -35,8 +35,8 @@
 #define _InvaderWeapon_H__
 
+#include "invader/InvaderPrereqs.h"
+
+#include "weapons/WeaponsPrereqs.h"
 #include "weapons/weaponmodes/HsW01.h"
-#include "weapons/WeaponsPrereqs.h"
-
-#include "tools/Timer.h"
 
 namespace orxonox
@@ -48,5 +48,5 @@
             virtual ~InvaderWeapon();
         protected:
-            virtual void shot();
+            virtual void shot() override;
             WeakPtr<Projectile> projectile;
     };
Index: code/trunk/src/modules/invader/InvaderWeaponEnemy.cc
===================================================================
--- code/trunk/src/modules/invader/InvaderWeaponEnemy.cc	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderWeaponEnemy.cc	(revision 11071)
@@ -34,4 +34,7 @@
 #include "InvaderWeaponEnemy.h"
 
+#include "core/CoreIncludes.h"
+#include "weapons/projectiles/Projectile.h"
+
 namespace orxonox
 {
Index: code/trunk/src/modules/invader/InvaderWeaponEnemy.h
===================================================================
--- code/trunk/src/modules/invader/InvaderWeaponEnemy.h	(revision 11056)
+++ code/trunk/src/modules/invader/InvaderWeaponEnemy.h	(revision 11071)
@@ -35,7 +35,7 @@
 #define _InvaderWeaponEnemy_H__
 
-// #include "weapons/weaponmodes/HsW01.h"
-// #include "weapons/WeaponsPrereqs.h"
-#include "invader/InvaderWeapon.h"
+#include "invader/InvaderPrereqs.h"
+
+#include "InvaderWeapon.h"
 #include "tools/Timer.h"
 
@@ -47,5 +47,5 @@
             InvaderWeaponEnemy(Context* context);
         protected:
-            virtual void shot();
+            virtual void shot() override;
     };
 }
Index: code/trunk/src/modules/jump/Jump.cc
===================================================================
--- code/trunk/src/modules/jump/Jump.cc	(revision 11056)
+++ code/trunk/src/modules/jump/Jump.cc	(revision 11071)
@@ -34,9 +34,5 @@
 #include "Jump.h"
 #include "core/CoreIncludes.h"
-#include "core/EventIncludes.h"
-#include "core/command/Executor.h"
-#include "core/config/ConfigValueIncludes.h"
-#include "gamestates/GSLevel.h"
-#include "chat/ChatManager.h"
+
 #include "JumpCenterpoint.h"
 #include "JumpPlatform.h"
@@ -56,5 +52,8 @@
 #include "JumpBoots.h"
 #include "JumpShield.h"
+
+#include "gamestates/GSLevel.h"
 #include "infos/PlayerInfo.h"
+#include "graphics/Camera.h"
 
 namespace orxonox
@@ -66,10 +65,8 @@
         RegisterObject(Jump);
 
-        center_ = 0;
-        figure_ = 0;
-        camera = 0;
+        center_ = nullptr;
+        figure_ = nullptr;
+        camera = nullptr;
         setHUDTemplate("JumpHUD");
-
-        setConfigValues();
     }
 
@@ -86,5 +83,5 @@
         SUPER(Jump, tick, dt);
 
-        if (figure_ != NULL)
+        if (figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getPosition();
@@ -101,5 +98,5 @@
                 if (screenShiftSinceLastUpdate_ > center_->getSectionLength())
                 {
-                    if (sectionNumber_ > 2 && sectionNumber_%4 == 0 && rand()%2 == 0 && figure_->propellerActive_ == false && figure_->rocketActive_ == false && addAdventure(adventureNumber_) == true)
+                    if (sectionNumber_ > 2 && sectionNumber_%4 == 0 && rand()%2 == 0 && figure_->propellerActive_ == nullptr && figure_->rocketActive_ == nullptr && addAdventure(adventureNumber_) == true)
                     {
                         screenShiftSinceLastUpdate_ -= 2*center_->getSectionLength();
@@ -133,5 +130,5 @@
 
 
-            if (camera != NULL)
+            if (camera != nullptr)
             {
                 Vector3 cameraPosition = Vector3(0, totalScreenShift_, 0);
@@ -144,10 +141,9 @@
         }
 
-        ObjectList<JumpPlatform>::iterator beginPlatform = ObjectList<JumpPlatform>::begin();
-        ObjectList<JumpPlatform>::iterator endPlatform = ObjectList<JumpPlatform>::end();
-        ObjectList<JumpPlatform>::iterator itPlatform = beginPlatform;
+        ObjectList<JumpPlatform> listPlatform;
+        ObjectList<JumpPlatform>::iterator itPlatform = listPlatform.begin();
         Vector3 platformPosition;
 
-        while (itPlatform != endPlatform)
+        while (itPlatform != listPlatform.end())
         {
             platformPosition = itPlatform->getPosition();
@@ -166,9 +162,8 @@
 
         // Deleted deactivated platforms
-        ObjectList<JumpPlatformDisappear>::iterator beginDisappear = ObjectList<JumpPlatformDisappear>::begin();
-        ObjectList<JumpPlatformDisappear>::iterator endDisappear = ObjectList<JumpPlatformDisappear>::end();
-        ObjectList<JumpPlatformDisappear>::iterator itDisappear = beginDisappear;
-
-        while (itDisappear != endDisappear)
+        ObjectList<JumpPlatformDisappear> listDisappear;
+        ObjectList<JumpPlatformDisappear>::iterator itDisappear = listDisappear.begin();
+
+        while (itDisappear != listDisappear.end())
         {
             if (!itDisappear->isActive())
@@ -185,9 +180,8 @@
         }
 
-        ObjectList<JumpPlatformTimer>::iterator beginTimer = ObjectList<JumpPlatformTimer>::begin();
-        ObjectList<JumpPlatformTimer>::iterator endTimer = ObjectList<JumpPlatformTimer>::end();
-        ObjectList<JumpPlatformTimer>::iterator itTimer = beginTimer;
-
-        while (itTimer != endTimer)
+        ObjectList<JumpPlatformTimer> listTimer;
+        ObjectList<JumpPlatformTimer>::iterator itTimer = listTimer.begin();
+
+        while (itTimer != listTimer.end())
         {
             if (!itTimer->isActive())
@@ -204,10 +198,9 @@
         }
 
-        ObjectList<JumpProjectile>::iterator beginProjectile = ObjectList<JumpProjectile>::begin();
-        ObjectList<JumpProjectile>::iterator endProjectile = ObjectList<JumpProjectile>::end();
-        ObjectList<JumpProjectile>::iterator itProjectile = beginProjectile;
+        ObjectList<JumpProjectile> listProjectile;
+        ObjectList<JumpProjectile>::iterator itProjectile = listProjectile.begin();
         Vector3 projectilePosition;
 
-        while (itProjectile != endProjectile)
+        while (itProjectile != listProjectile.end())
         {
             projectilePosition = itProjectile->getPosition();
@@ -225,10 +218,9 @@
         }
 
-        ObjectList<JumpEnemy>::iterator beginEnemy = ObjectList<JumpEnemy>::begin();
-        ObjectList<JumpEnemy>::iterator endEnemy = ObjectList<JumpEnemy>::end();
-        ObjectList<JumpEnemy>::iterator itEnemy = beginEnemy;
+        ObjectList<JumpEnemy> listEnemy;
+        ObjectList<JumpEnemy>::iterator itEnemy = listEnemy.begin();
         Vector3 enemyPosition;
 
-        while (itEnemy != endEnemy)
+        while (itEnemy != listEnemy.end())
         {
             enemyPosition = itEnemy->getPosition();
@@ -246,10 +238,9 @@
         }
 
-        ObjectList<JumpItem>::iterator beginItem = ObjectList<JumpItem>::begin();
-        ObjectList<JumpItem>::iterator endItem = ObjectList<JumpItem>::end();
-        ObjectList<JumpItem>::iterator itItem = beginItem;
+        ObjectList<JumpItem> listItem;
+        ObjectList<JumpItem>::iterator itItem = listItem.begin();
         Vector3 itemPosition;
 
-        while (itItem != endItem)
+        while (itItem != listItem.end())
         {
             itemPosition = itItem->getPosition();
@@ -273,12 +264,12 @@
     void Jump::cleanup()
     {
-        camera = 0;
+        camera = nullptr;
     }
 
     void Jump::start()
     {
-        if (center_ != NULL) // There needs to be a JumpCenterpoint, i.e. the area the game takes place.
-        {
-            if (figure_ == NULL)
+        if (center_ != nullptr) // There needs to be a JumpCenterpoint, i.e. the area the game takes place.
+        {
+            if (figure_ == nullptr)
             {
                 figure_ = new JumpFigure(center_->getContext());
@@ -301,5 +292,5 @@
         Deathmatch::start();
 
-        if (figure_ != NULL)
+        if (figure_ != nullptr)
         {
             camera = figure_->getCamera();
@@ -328,5 +319,5 @@
         assert(player);
 
-        if (figure_->getPlayer() == NULL)
+        if (figure_->getPlayer() == nullptr)
         {
             player->startControl(figure_);
@@ -337,5 +328,5 @@
     PlayerInfo* Jump::getPlayer() const
     {
-        if (this->figure_ != NULL)
+        if (this->figure_ != nullptr)
         {
             return this->figure_->getPlayer();
@@ -343,5 +334,5 @@
         else
         {
-            return 0;
+            return nullptr;
         }
     }
@@ -349,5 +340,5 @@
     void Jump::addPlatform(JumpPlatform* newPlatform, std::string platformTemplate, float xPosition, float zPosition)
     {
-        if (newPlatform != NULL && center_ != NULL)
+        if (newPlatform != nullptr && center_ != nullptr)
         {
             newPlatform->addTemplate(platformTemplate);
@@ -417,5 +408,5 @@
     {
         JumpProjectile* newProjectile = new JumpProjectile(center_->getContext());
-        if (newProjectile != NULL && center_ != NULL)
+        if (newProjectile != nullptr && center_ != nullptr)
         {
             newProjectile->addTemplate(center_->getProjectileTemplate());
@@ -430,5 +421,5 @@
     {
         JumpSpring* newSpring = new JumpSpring(center_->getContext());
-        if (newSpring != NULL && center_ != NULL)
+        if (newSpring != nullptr && center_ != nullptr)
         {
             newSpring->addTemplate(center_->getSpringTemplate());
@@ -443,5 +434,5 @@
     {
         JumpSpring* newSpring = new JumpSpring(center_->getContext());
-        if (newSpring != NULL && center_ != NULL)
+        if (newSpring != nullptr && center_ != nullptr)
         {
             newSpring->addTemplate(center_->getSpringTemplate());
@@ -456,5 +447,5 @@
     {
         JumpRocket* newRocket = new JumpRocket(center_->getContext());
-        if (newRocket != NULL && center_ != NULL)
+        if (newRocket != nullptr && center_ != nullptr)
         {
             newRocket->addTemplate(center_->getRocketTemplate());
@@ -469,5 +460,5 @@
     {
         JumpRocket* newRocket = new JumpRocket(center_->getContext());
-        if (newRocket != NULL && center_ != NULL)
+        if (newRocket != nullptr && center_ != nullptr)
         {
             newRocket->addTemplate(center_->getRocketTemplate());
@@ -482,5 +473,5 @@
     {
         JumpPropeller* newPropeller = new JumpPropeller(center_->getContext());
-        if (newPropeller != NULL && center_ != NULL)
+        if (newPropeller != nullptr && center_ != nullptr)
         {
             newPropeller->addTemplate(center_->getPropellerTemplate());
@@ -495,5 +486,5 @@
     {
         JumpPropeller* newPropeller = new JumpPropeller(center_->getContext());
-        if (newPropeller != NULL && center_ != NULL)
+        if (newPropeller != nullptr && center_ != nullptr)
         {
             newPropeller->addTemplate(center_->getPropellerTemplate());
@@ -508,5 +499,5 @@
     {
         JumpBoots* newBoots = new JumpBoots(center_->getContext());
-        if (newBoots != NULL && center_ != NULL)
+        if (newBoots != nullptr && center_ != nullptr)
         {
             newBoots->addTemplate(center_->getBootsTemplate());
@@ -521,5 +512,5 @@
     {
         JumpBoots* newBoots = new JumpBoots(center_->getContext());
-        if (newBoots != NULL && center_ != NULL)
+        if (newBoots != nullptr && center_ != nullptr)
         {
             newBoots->addTemplate(center_->getBootsTemplate());
@@ -534,5 +525,5 @@
     {
         JumpShield* newShield = new JumpShield(center_->getContext());
-        if (newShield != NULL && center_ != NULL)
+        if (newShield != nullptr && center_ != nullptr)
         {
             newShield->addTemplate(center_->getShieldTemplate());
@@ -547,5 +538,5 @@
     {
         JumpShield* newShield = new JumpShield(center_->getContext());
-        if (newShield != NULL && center_ != NULL)
+        if (newShield != nullptr && center_ != nullptr)
         {
             newShield->addTemplate(center_->getShieldTemplate());
@@ -560,5 +551,5 @@
     {
         JumpEnemy* newEnemy = new JumpEnemy(center_->getContext());
-        if (newEnemy != NULL && center_ != NULL)
+        if (newEnemy != nullptr && center_ != nullptr)
         {
             switch (type)
@@ -619,12 +610,12 @@
         const int numJ = 4;
 
-        enum PlatformType
-        {
-            PLATFORM_EMPTY, PLATFORM_STATIC, PLATFORM_HMOVE, PLATFORM_VMOVE, PLATFORM_DISAPPEAR, PLATFORM_TIMER, PLATFORM_FAKE
+        enum class PlatformType
+        {
+            EMPTY, STATIC, HMOVE, VMOVE, DISAPPEAR, TIMER, FAKE
         };
 
-        enum ItemType
-        {
-            ITEM_NOTHING, ITEM_SPRING, ITEM_PROPELLER, ITEM_ROCKET, ITEM_BOOTS, ITEM_SHIELD
+        enum class ItemType
+        {
+            NOTHING, SPRING, PROPELLER, ROCKET, BOOTS, SHIELD
         };
 
@@ -640,5 +631,5 @@
             for (int j = 0; j < numJ; ++j)
             {
-                matrix[i][j].type = PLATFORM_EMPTY;
+                matrix[i][j].type = PlatformType::EMPTY;
                 matrix[i][j].done = false;
             }
@@ -646,9 +637,9 @@
         PlatformType platformtype1;
         PlatformType platformtype2;
-        ItemType itemType = ITEM_NOTHING;
+        ItemType itemType = ItemType::NOTHING;
 
         if (rand()%2 == 0)
         {
-            itemType = ITEM_SPRING;
+            itemType = ItemType::SPRING;
         }
         else if (rand()%2 == 0 && sectionNumber_ > 3)
@@ -657,14 +648,14 @@
             {
             case 0:
-                itemType = ITEM_PROPELLER;
+                itemType = ItemType::PROPELLER;
                 break;
             case 1:
-                itemType = ITEM_ROCKET;
+                itemType = ItemType::ROCKET;
                 break;
             case 2:
-                itemType = ITEM_BOOTS;
+                itemType = ItemType::BOOTS;
                 break;
             case 3:
-                itemType = ITEM_SHIELD;
+                itemType = ItemType::SHIELD;
                 break;
             default:
@@ -676,122 +667,122 @@
         {
         case 0:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 1:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 2:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 3:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 4:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 5:
-            platformtype1 = PLATFORM_STATIC;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::STATIC;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 6:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 7:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 8:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 9:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 10:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 11:
-            platformtype1 = PLATFORM_HMOVE;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::HMOVE;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 12:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 13:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 14:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 15:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 16:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 17:
-            platformtype1 = PLATFORM_DISAPPEAR;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::DISAPPEAR;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 18:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 19:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 20:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 21:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 22:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 23:
-            platformtype1 = PLATFORM_VMOVE;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::VMOVE;
+            platformtype2 = PlatformType::TIMER;
             break;
         case 24:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_STATIC;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::STATIC;
             break;
         case 25:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_HMOVE;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::HMOVE;
             break;
         case 26:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_DISAPPEAR;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::DISAPPEAR;
             break;
         case 27:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_VMOVE;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::VMOVE;
             break;
         case 28:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::TIMER;
             break;
         default:
-            platformtype1 = PLATFORM_TIMER;
-            platformtype2 = PLATFORM_TIMER;
+            platformtype1 = PlatformType::TIMER;
+            platformtype2 = PlatformType::TIMER;
             break;
         }
@@ -816,6 +807,6 @@
         if (platformtype1 == platformtype2 && sectionNumber_ > 10 && rand()%2 == 0)
         {
-            matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
+            matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
         }
 
@@ -825,9 +816,9 @@
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
         }
@@ -836,17 +827,17 @@
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
         }
@@ -855,25 +846,25 @@
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
             if (rand()%2 == 0)
             {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_EMPTY;
-            }
-            else
-            {
-                matrix[rand()%numI][rand()%numJ].type = PLATFORM_FAKE;
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::EMPTY;
+            }
+            else
+            {
+                matrix[rand()%numI][rand()%numJ].type = PlatformType::FAKE;
             }
         }
@@ -898,8 +889,8 @@
                     switch(matrix[i][j].type)
                     {
-                    case PLATFORM_EMPTY:
+                    case PlatformType::EMPTY:
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_STATIC:
+                    case PlatformType::STATIC:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -907,5 +898,5 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_FAKE:
+                    case PlatformType::FAKE:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -913,5 +904,5 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_TIMER:
+                    case PlatformType::TIMER:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -919,5 +910,5 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_DISAPPEAR:
+                    case PlatformType::DISAPPEAR:
                         xPosition = randomXPosition(numJ, j);
                         zPosition = sectionBegin + i*sectionLength/numI;
@@ -925,7 +916,7 @@
                         matrix[i][j].done = true;
                         break;
-                    case PLATFORM_HMOVE:
+                    case PlatformType::HMOVE:
                         xVelocity = randomSpeed();
-                        if (j <= numJ-3 && matrix[i][j+1].type == PLATFORM_HMOVE && matrix[i][j+2].type == PLATFORM_HMOVE && rand()%2 == 0)
+                        if (j <= numJ-3 && matrix[i][j+1].type == PlatformType::HMOVE && matrix[i][j+2].type == PlatformType::HMOVE && rand()%2 == 0)
                         {
                             leftBoundary = randomXPositionLeft(numJ, j);
@@ -938,5 +929,5 @@
                             matrix[i][j+2].done = true;
                         }
-                        else if (j <= numJ-2 && matrix[i][j+1].type == PLATFORM_HMOVE && rand()%2 == 0)
+                        else if (j <= numJ-2 && matrix[i][j+1].type == PlatformType::HMOVE && rand()%2 == 0)
                         {
                             leftBoundary = randomXPositionLeft(numJ, j);
@@ -958,7 +949,7 @@
                         }
                         break;
-                    case PLATFORM_VMOVE:
+                    case PlatformType::VMOVE:
                         zVelocity = randomSpeed();
-                        if (i <= numI-3 && matrix[i+1][j].type == PLATFORM_VMOVE && matrix[i+2][j].type == PLATFORM_VMOVE && rand()%2 == 0)
+                        if (i <= numI-3 && matrix[i+1][j].type == PlatformType::VMOVE && matrix[i+2][j].type == PlatformType::VMOVE && rand()%2 == 0)
                         {
                             lowerBoundary = randomZPositionLower(numI, i, sectionBegin, sectionEnd);
@@ -971,5 +962,5 @@
                             matrix[i+2][j].done = true;
                         }
-                        else if (i <= numI-2 && matrix[i+1][j].type == PLATFORM_VMOVE && rand()%2 == 0)
+                        else if (i <= numI-2 && matrix[i+1][j].type == PlatformType::VMOVE && rand()%2 == 0)
                         {
                             lowerBoundary = randomZPositionLower(numI, i, sectionBegin, sectionEnd);
@@ -1009,14 +1000,14 @@
                 switch (itemType)
                 {
-                case ITEM_ROCKET:
+                case ItemType::ROCKET:
                     addRocket(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
-                case ITEM_PROPELLER:
+                case ItemType::PROPELLER:
                     addPropeller(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
-                case ITEM_BOOTS:
+                case ItemType::BOOTS:
                     addBoots(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
-                case ITEM_SHIELD:
+                case ItemType::SHIELD:
                     addShield(0.0, randomPosition(sectionBegin, sectionBegin + sectionLength), -fieldWidth/2, fieldWidth/2, 0.0, 0.0, randomSpeed(), 0.0);
                     break;
@@ -1029,14 +1020,14 @@
                 switch (itemType)
                 {
-                case ITEM_ROCKET:
+                case ItemType::ROCKET:
                     addRocket(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
-                case ITEM_PROPELLER:
+                case ItemType::PROPELLER:
                     addPropeller(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
-                case ITEM_BOOTS:
+                case ItemType::BOOTS:
                     addBoots(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
-                case ITEM_SHIELD:
+                case ItemType::SHIELD:
                     addShield(randomPosition(-fieldWidth/2, fieldWidth/2), sectionBegin + sectionLength/2, 0.0, 0.0, sectionBegin, sectionEnd, 0.0, randomSpeed());
                     break;
@@ -1054,17 +1045,17 @@
                 switch (itemType)
                 {
-                case ITEM_SPRING:
+                case ItemType::SPRING:
                     addSpring(itemPlatform);
                     break;
-                case ITEM_ROCKET:
+                case ItemType::ROCKET:
                     addRocket(itemPlatform);
                     break;
-                case ITEM_PROPELLER:
+                case ItemType::PROPELLER:
                     addPropeller(itemPlatform);
                     break;
-                case ITEM_BOOTS:
+                case ItemType::BOOTS:
                     addBoots(itemPlatform);
                     break;
-                case ITEM_SHIELD:
+                case ItemType::SHIELD:
                     addShield(itemPlatform);
                     break;
@@ -1273,19 +1264,19 @@
     float Jump::getFuel() const
     {
-        if (this->figure_ != NULL)
-        {
-            if (this->figure_->rocketActive_ != NULL)
+        if (this->figure_ != nullptr)
+        {
+            if (this->figure_->rocketActive_ != nullptr)
             {
                 return this->figure_->rocketActive_->getFuelState();
             }
-            else if (this->figure_->propellerActive_ != NULL)
+            else if (this->figure_->propellerActive_ != nullptr)
             {
                 return this->figure_->propellerActive_->getFuelState();
             }
-            else if (this->figure_->shieldActive_ != NULL)
+            else if (this->figure_->shieldActive_ != nullptr)
             {
                 return this->figure_->shieldActive_->getFuelState();
             }
-            else if (this->figure_->bootsActive_ != NULL)
+            else if (this->figure_->bootsActive_ != nullptr)
             {
                 return this->figure_->bootsActive_->getFuelState();
@@ -1300,3 +1291,9 @@
         return figure_->dead_;
     }
+
+    void Jump::setCenterpoint(JumpCenterpoint* center)
+    {
+        center_ = center;
+    }
+
 }
Index: code/trunk/src/modules/jump/Jump.h
===================================================================
--- code/trunk/src/modules/jump/Jump.h	(revision 11056)
+++ code/trunk/src/modules/jump/Jump.h	(revision 11071)
@@ -31,9 +31,5 @@
 
 #include "jump/JumpPrereqs.h"
-#include "tools/Timer.h"
-#include "graphics/Camera.h"
 #include "gametypes/Deathmatch.h"
-#include "JumpCenterpoint.h"
-#include <list>
 
 namespace orxonox
@@ -44,13 +40,12 @@
             Jump(Context* context);
             virtual ~Jump();
-            virtual void tick(float dt);
-            virtual void start();
-            virtual void end();
-            virtual void spawnPlayer(PlayerInfo* player);
+            virtual void tick(float dt) override;
+            virtual void start() override;
+            virtual void end() override;
+            virtual void spawnPlayer(PlayerInfo* player) override;
             int getScore(PlayerInfo* player) const;
             float getFuel() const;
             bool getDead(PlayerInfo* player) const;
-            void setCenterpoint(JumpCenterpoint* center)
-                { center_ = center; }
+            void setCenterpoint(JumpCenterpoint* center);
             PlayerInfo* getPlayer() const;
 
Index: code/trunk/src/modules/jump/JumpBoots.cc
===================================================================
--- code/trunk/src/modules/jump/JumpBoots.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpBoots.cc	(revision 11071)
@@ -35,12 +35,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
-
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -67,9 +60,4 @@
     }
 
-    void JumpBoots::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpBoots, XMLPort, xmlelement, mode);
-    }
-
     void JumpBoots::tick(float dt)
     {
@@ -78,5 +66,5 @@
         Vector3 rocketPosition = getWorldPosition();
 
-        if (attachedToFigure_ == false && figure_ != NULL)
+        if (attachedToFigure_ == false && figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getWorldPosition();
Index: code/trunk/src/modules/jump/JumpBoots.h
===================================================================
--- code/trunk/src/modules/jump/JumpBoots.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpBoots.h	(revision 11071)
@@ -30,8 +30,6 @@
 #define _JumpBoots_H__
 
-#include "jump/JumpPrereqs.h"
-#include "util/Math.h"
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpItem.h"
 
 namespace orxonox
@@ -42,7 +40,6 @@
             JumpBoots(Context* context);
             virtual ~JumpBoots();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void touchFigure();
+            virtual void tick(float dt) override;
+            virtual void touchFigure() override;
             virtual float getFuelState();
         protected:
Index: code/trunk/src/modules/jump/JumpCenterpoint.cc
===================================================================
--- code/trunk/src/modules/jump/JumpCenterpoint.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpCenterpoint.cc	(revision 11071)
@@ -33,4 +33,5 @@
 
 #include "JumpCenterpoint.h"
+
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
@@ -82,5 +83,5 @@
     void JumpCenterpoint::checkGametype()
     {
-        if (getGametype() != NULL && this->getGametype()->isA(Class(Jump)))
+        if (getGametype() != nullptr && this->getGametype()->isA(Class(Jump)))
         {
             Jump* jumpGametype = orxonox_cast<Jump*>(this->getGametype());
Index: code/trunk/src/modules/jump/JumpCenterpoint.h
===================================================================
--- code/trunk/src/modules/jump/JumpCenterpoint.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpCenterpoint.h	(revision 11071)
@@ -31,9 +31,4 @@
 
 #include "jump/JumpPrereqs.h"
-
-#include <string>
-
-#include <util/Math.h>
-
 #include "worldentities/StaticEntity.h"
 
@@ -113,5 +108,5 @@
             JumpCenterpoint(Context* context); //!< Constructor. Registers and initializes the object and checks whether the gametype is actually Jump.
             virtual ~JumpCenterpoint() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method to create a JumpCenterpoint through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a JumpCenterpoint through XML.
             void setPlatformStaticTemplate(const std::string& balltemplate)
                 { this->platformStaticTemplate_ = balltemplate; }
Index: code/trunk/src/modules/jump/JumpEnemy.cc
===================================================================
--- code/trunk/src/modules/jump/JumpEnemy.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpEnemy.cc	(revision 11071)
@@ -35,12 +35,6 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
-
+#include "core/XMLPort.h"
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -57,5 +51,5 @@
 
         dead_ = false;
-        figure_ = 0;
+        figure_ = nullptr;
         width_ = 0.0;
         height_ = 0.0;
@@ -125,5 +119,5 @@
         Vector3 enemyPosition = getPosition();
 
-        if (figure_ != NULL)
+        if (figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getPosition();
Index: code/trunk/src/modules/jump/JumpEnemy.h
===================================================================
--- code/trunk/src/modules/jump/JumpEnemy.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpEnemy.h	(revision 11071)
@@ -37,9 +37,5 @@
 
 #include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
 #include "worldentities/MovableEntity.h"
-
 
 namespace orxonox
@@ -50,6 +46,6 @@
             JumpEnemy(Context* context);
             virtual ~JumpEnemy();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             void setFieldDimension(float width, float height)
                 { this->fieldWidth_ = width; this->fieldHeight_ = height; }
Index: code/trunk/src/modules/jump/JumpFigure.cc
===================================================================
--- code/trunk/src/modules/jump/JumpFigure.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpFigure.cc	(revision 11071)
@@ -36,4 +36,9 @@
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
+#include "graphics/Model.h"
+#include "JumpRocket.h"
+#include "JumpPropeller.h"
+#include "JumpBoots.h"
+#include "JumpShield.h"
 
 namespace orxonox
@@ -46,6 +51,6 @@
 
         // initialize variables
-        leftHand_ = NULL;
-        rightHand_ = NULL;
+        leftHand_ = nullptr;
+        rightHand_ = nullptr;
         fieldHeight_ = 0;
         fieldWidth_ = 0;
@@ -70,8 +75,8 @@
         animateHands_ = false;
         turnUp_ = false;
-        rocketActive_ = NULL;
-        propellerActive_ = NULL;
-        bootsActive_ = NULL;
-        shieldActive_ = NULL;
+        rocketActive_ = nullptr;
+        propellerActive_ = nullptr;
+        bootsActive_ = nullptr;
+        shieldActive_ = nullptr;
         rocketSpeed_ = 0.0;
         propellerSpeed_ = 0.0;
@@ -106,9 +111,9 @@
             // Move up/down
             Vector3 velocity = getVelocity();
-            if (rocketActive_ != NULL)
+            if (rocketActive_ != nullptr)
             {
                 velocity.z = rocketSpeed_;
             }
-            else if (propellerActive_ != NULL)
+            else if (propellerActive_ != nullptr)
             {
                 velocity.z = propellerSpeed_;
@@ -139,9 +144,9 @@
                 }
 
-                if (leftHand_ != NULL)
+                if (leftHand_ != nullptr)
                 {
                     leftHand_->setOrientation(Vector3(0.0, 1.0, 0.0), Degree(-handAngle_));
                 }
-                if (rightHand_ != NULL)
+                if (rightHand_ != nullptr)
                 {
                     rightHand_->setOrientation(Vector3(0.0, 1.0, 0.0), Degree(handAngle_));
@@ -207,5 +212,5 @@
         {
             Vector3 velocity = getVelocity();
-            if (bootsActive_ == NULL)
+            if (bootsActive_ == nullptr)
             {
                 velocity.z = 1.2f*jumpSpeed_;
@@ -234,5 +239,5 @@
     void JumpFigure::CollisionWithEnemy(JumpEnemy* enemy)
     {
-        if (rocketActive_ == NULL && propellerActive_ == NULL && shieldActive_ == NULL)
+        if (rocketActive_ == nullptr && propellerActive_ == nullptr && shieldActive_ == nullptr)
         {
             dead_ = true;
@@ -242,5 +247,5 @@
     bool JumpFigure::StartRocket(JumpRocket* rocket)
     {
-        if (rocketActive_ == NULL && propellerActive_ == NULL && bootsActive_ == NULL)
+        if (rocketActive_ == nullptr && propellerActive_ == nullptr && bootsActive_ == nullptr)
         {
             attach(rocket);
@@ -261,10 +266,10 @@
         detach(rocket);
         rocket->destroy();
-        rocketActive_ = NULL;
+        rocketActive_ = nullptr;
     }
 
     bool JumpFigure::StartPropeller(JumpPropeller* propeller)
     {
-        if (rocketActive_ == NULL && propellerActive_ == NULL && bootsActive_ == NULL)
+        if (rocketActive_ == nullptr && propellerActive_ == nullptr && bootsActive_ == nullptr)
         {
             attach(propeller);
@@ -285,10 +290,10 @@
         detach(propeller);
         propeller->destroy();
-        propellerActive_ = NULL;
+        propellerActive_ = nullptr;
     }
 
     bool JumpFigure::StartBoots(JumpBoots* boots)
     {
-        if (rocketActive_ == NULL && propellerActive_ == NULL && bootsActive_ == NULL)
+        if (rocketActive_ == nullptr && propellerActive_ == nullptr && bootsActive_ == nullptr)
         {
             attach(boots);
@@ -309,10 +314,10 @@
         detach(boots);
         boots->destroy();
-        bootsActive_ = NULL;
+        bootsActive_ = nullptr;
     }
 
     bool JumpFigure::StartShield(JumpShield* shield)
     {
-        if (shieldActive_ == false)
+        if (shieldActive_ == nullptr)
         {
             attach(shield);
@@ -333,5 +338,5 @@
         detach(shield);
         shield->destroy();
-        shieldActive_ = NULL;
+        shieldActive_ = nullptr;
     }
 
Index: code/trunk/src/modules/jump/JumpFigure.h
===================================================================
--- code/trunk/src/modules/jump/JumpFigure.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpFigure.h	(revision 11071)
@@ -40,13 +40,13 @@
             JumpFigure(Context* context); //!< Constructor. Registers and initializes the object.
             virtual ~JumpFigure() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
-            virtual void moveFrontBack(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void moveRightLeft(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
+            virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void rotateYaw(const Vector2& value) override;
+            virtual void rotatePitch(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
             void fire(unsigned int firemode);
-            virtual void fired(unsigned int firemode);
+            virtual void fired(unsigned int firemode) override;
             virtual void JumpFromPlatform(JumpPlatform* platform);
             virtual void JumpFromSpring(JumpSpring* spring);
Index: code/trunk/src/modules/jump/JumpItem.cc
===================================================================
--- code/trunk/src/modules/jump/JumpItem.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpItem.cc	(revision 11071)
@@ -35,12 +35,6 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
-
+#include "core/XMLPort.h"
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -54,5 +48,5 @@
         attachedToFigure_ = false;
 
-        figure_ = 0;
+        figure_ = nullptr;
         height_ = 0.0;
         width_ = 0.0;
Index: code/trunk/src/modules/jump/JumpItem.h
===================================================================
--- code/trunk/src/modules/jump/JumpItem.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpItem.h	(revision 11071)
@@ -37,7 +37,4 @@
 
 #include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
 #include "worldentities/MovableEntity.h"
 
@@ -50,6 +47,6 @@
             JumpItem(Context* context);
             virtual ~JumpItem();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             virtual void setProperties(float newLeftBoundary, float newRightBoundary, float newLowerBoundary, float newUpperBoundary, float newHSpeed, float newVSpeed);
             virtual void setFigure(JumpFigure* newFigure);
Index: code/trunk/src/modules/jump/JumpPlatform.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatform.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatform.cc	(revision 11071)
@@ -36,11 +36,7 @@
 #include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
-
+#include "core/XMLPort.h"
+#include "sound/WorldSound.h"
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -52,5 +48,5 @@
         RegisterObject(JumpPlatform);
 
-        figure_ = 0;
+        figure_ = nullptr;
 
         setPosition(Vector3(0,0,0));
@@ -90,5 +86,5 @@
         Vector3 platformPosition = this->getPosition();
 
-        if (figure_ != NULL)
+        if (figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getPosition();
Index: code/trunk/src/modules/jump/JumpPlatform.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatform.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatform.h	(revision 11071)
@@ -36,6 +36,5 @@
 #define _JumpPlatform_H__
 
-#include "jump/JumpPrereqs.h"
-#include "util/Math.h"
+#include "JumpPrereqs.h"
 #include "worldentities/MovableEntity.h"
 
@@ -47,6 +46,6 @@
             JumpPlatform(Context* context);
             virtual ~JumpPlatform();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             void setFigure(JumpFigure* newFigure);
             virtual void touchFigure();
Index: code/trunk/src/modules/jump/JumpPlatformDisappear.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformDisappear.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformDisappear.cc	(revision 11071)
@@ -35,12 +35,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-
-#include "gametypes/Gametype.h"
-
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -58,14 +51,4 @@
     {
 
-    }
-
-    void JumpPlatformDisappear::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpPlatformDisappear, XMLPort, xmlelement, mode);
-    }
-
-    void JumpPlatformDisappear::tick(float dt)
-    {
-        SUPER(JumpPlatformDisappear, tick, dt);
     }
 
Index: code/trunk/src/modules/jump/JumpPlatformDisappear.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformDisappear.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformDisappear.h	(revision 11071)
@@ -36,7 +36,6 @@
 #define _JumpPlatformDisappear_H__
 
-#include "jump/JumpPrereqs.h"
-#include "util/Math.h"
-#include "worldentities/MovableEntity.h"
+#include "JumpPrereqs.h"
+#include "JumpPlatform.h"
 
 namespace orxonox
@@ -47,9 +46,7 @@
             JumpPlatformDisappear(Context* context);
             virtual ~JumpPlatformDisappear();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
             virtual void setProperties(bool active);
             virtual bool isActive();
-            virtual void touchFigure();
+            virtual void touchFigure() override;
 
         protected:
Index: code/trunk/src/modules/jump/JumpPlatformFake.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformFake.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformFake.cc	(revision 11071)
@@ -33,10 +33,6 @@
 
 #include "JumpPlatformFake.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "gametypes/Gametype.h"
-#include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -53,14 +49,3 @@
 
     }
-
-    void JumpPlatformFake::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpPlatformFake, XMLPort, xmlelement, mode);
-    }
-
-    void JumpPlatformFake::tick(float dt)
-    {
-        SUPER(JumpPlatformFake, tick, dt);
-    }
-
 }
Index: code/trunk/src/modules/jump/JumpPlatformFake.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformFake.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformFake.h	(revision 11071)
@@ -36,10 +36,6 @@
 #define _JumpPlatformFake_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpPlatform.h"
 
 namespace orxonox
@@ -50,6 +46,4 @@
             JumpPlatformFake(Context* context);
             virtual ~JumpPlatformFake();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
     };
 }
Index: code/trunk/src/modules/jump/JumpPlatformHMove.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformHMove.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformHMove.cc	(revision 11071)
@@ -33,10 +33,7 @@
 
 #include "JumpPlatformHMove.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "gametypes/Gametype.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -54,9 +51,4 @@
     {
 
-    }
-
-    void JumpPlatformHMove::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpPlatformHMove, XMLPort, xmlelement, mode);
     }
 
Index: code/trunk/src/modules/jump/JumpPlatformHMove.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformHMove.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformHMove.h	(revision 11071)
@@ -30,10 +30,6 @@
 #define _JumpPlatformHMove_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpPlatform.h"
 
 namespace orxonox
@@ -45,8 +41,7 @@
             JumpPlatformHMove(Context* context);
             virtual ~JumpPlatformHMove();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
             virtual void setProperties(float leftBoundary, float rightBoundary, float speed);
-            virtual void touchFigure();
+            virtual void touchFigure() override;
 
         protected:
Index: code/trunk/src/modules/jump/JumpPlatformStatic.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformStatic.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformStatic.cc	(revision 11071)
@@ -33,10 +33,7 @@
 
 #include "JumpPlatformStatic.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "gametypes/Gametype.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -55,15 +52,4 @@
     }
 
-    //xml port for loading sounds
-    void JumpPlatformStatic::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpPlatformStatic, XMLPort, xmlelement, mode);
-    }
-
-    void JumpPlatformStatic::tick(float dt)
-    {
-        SUPER(JumpPlatformStatic, tick, dt);
-    }
-
     void JumpPlatformStatic::touchFigure()
     {
Index: code/trunk/src/modules/jump/JumpPlatformStatic.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformStatic.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformStatic.h	(revision 11071)
@@ -30,10 +30,6 @@
 #define _JumpPlatformStatic_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpPlatform.h"
 
 namespace orxonox
@@ -45,8 +41,5 @@
             virtual ~JumpPlatformStatic();
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
-            virtual void touchFigure();
+            virtual void touchFigure() override;
     };
 }
Index: code/trunk/src/modules/jump/JumpPlatformTimer.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformTimer.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformTimer.cc	(revision 11071)
@@ -33,10 +33,9 @@
 
 #include "JumpPlatformTimer.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "gametypes/Gametype.h"
+#include "core/XMLPort.h"
+#include "graphics/ParticleSpawner.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -48,5 +47,5 @@
         RegisterObject(JumpPlatformTimer);
 
-        particleSpawner_ = NULL;
+        particleSpawner_ = nullptr;
 
         setProperties(3.0);
@@ -72,5 +71,5 @@
 
         time_ -= dt;
-        if (time_ < effectStartTime_ && particleSpawner_ == NULL)
+        if (time_ < effectStartTime_ && particleSpawner_ == nullptr)
         {
 
Index: code/trunk/src/modules/jump/JumpPlatformTimer.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformTimer.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformTimer.h	(revision 11071)
@@ -36,11 +36,6 @@
 #define _JumpPlatformTimer_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-#include "graphics/ParticleSpawner.h"
-
+#include "JumpPrereqs.h"
+#include "JumpPlatform.h"
 
 namespace orxonox
@@ -51,9 +46,9 @@
             JumpPlatformTimer(Context* context);
             virtual ~JumpPlatformTimer();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             virtual void setProperties(float time);
             virtual bool isActive(void);
-            virtual void touchFigure();
+            virtual void touchFigure() override;
 
             void setEffectPath(const std::string& effectPath)
Index: code/trunk/src/modules/jump/JumpPlatformVMove.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformVMove.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformVMove.cc	(revision 11071)
@@ -33,10 +33,7 @@
 
 #include "JumpPlatformVMove.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "gametypes/Gametype.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -54,9 +51,4 @@
     {
 
-    }
-
-    void JumpPlatformVMove::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpPlatformVMove, XMLPort, xmlelement, mode);
     }
 
Index: code/trunk/src/modules/jump/JumpPlatformVMove.h
===================================================================
--- code/trunk/src/modules/jump/JumpPlatformVMove.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPlatformVMove.h	(revision 11071)
@@ -30,7 +30,6 @@
 #define _JumpPlatformVMove_H__
 
-#include "jump/JumpPrereqs.h"
-#include "util/Math.h"
-#include "worldentities/MovableEntity.h"
+#include "JumpPrereqs.h"
+#include "JumpPlatform.h"
 
 namespace orxonox
@@ -41,8 +40,7 @@
             JumpPlatformVMove(Context* context);
             virtual ~JumpPlatformVMove();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
             virtual void setProperties(float leftBoundary, float rightBoundary, float speed);
-            virtual void touchFigure();
+            virtual void touchFigure() override;
 
         protected:
Index: code/trunk/src/modules/jump/JumpProjectile.cc
===================================================================
--- code/trunk/src/modules/jump/JumpProjectile.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpProjectile.cc	(revision 11071)
@@ -33,11 +33,8 @@
 
 #include "JumpProjectile.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
+#include "JumpEnemy.h"
 
 namespace orxonox
@@ -49,5 +46,5 @@
         RegisterObject(JumpProjectile);
 
-        figure_ = 0;
+        figure_ = nullptr;
         setPosition(Vector3(0,0,0));
         setVelocity(Vector3(0,0,250.0));
@@ -60,9 +57,4 @@
     }
 
-    void JumpProjectile::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpProjectile, XMLPort, xmlelement, mode);
-    }
-
     void JumpProjectile::tick(float dt)
     {
@@ -71,13 +63,13 @@
         Vector3 projectilePosition = getPosition();
 
-        for (ObjectList<JumpEnemy>::iterator it = ObjectList<JumpEnemy>::begin(); it != ObjectList<JumpEnemy>::end(); ++it)
+        for (JumpEnemy* enemy : ObjectList<JumpEnemy>())
         {
-            Vector3 enemyPosition = it->getPosition();
-            float enemyWidth = it->getWidth();
-            float enemyHeight = it->getHeight();
+            Vector3 enemyPosition = enemy->getPosition();
+            float enemyWidth = enemy->getWidth();
+            float enemyHeight = enemy->getHeight();
 
             if(projectilePosition.x > enemyPosition.x-enemyWidth && projectilePosition.x < enemyPosition.x+enemyWidth && projectilePosition.z > enemyPosition.z-enemyHeight && projectilePosition.z < enemyPosition.z+enemyHeight)
             {
-                it->dead_ = true;
+                enemy->dead_ = true;
             }
         }
Index: code/trunk/src/modules/jump/JumpProjectile.h
===================================================================
--- code/trunk/src/modules/jump/JumpProjectile.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpProjectile.h	(revision 11071)
@@ -43,7 +43,5 @@
             virtual ~JumpProjectile();
 
-            virtual void tick(float dt);
-
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
 
             void setFieldDimension(float width, float height)
Index: code/trunk/src/modules/jump/JumpPropeller.cc
===================================================================
--- code/trunk/src/modules/jump/JumpPropeller.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPropeller.cc	(revision 11071)
@@ -35,12 +35,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
-
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -67,9 +60,4 @@
     }
 
-    void JumpPropeller::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpPropeller, XMLPort, xmlelement, mode);
-    }
-
     void JumpPropeller::tick(float dt)
     {
@@ -78,5 +66,5 @@
         Vector3 PropellerPosition = getWorldPosition();
 
-        if (attachedToFigure_ == false && figure_ != NULL)
+        if (attachedToFigure_ == false && figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getWorldPosition();
Index: code/trunk/src/modules/jump/JumpPropeller.h
===================================================================
--- code/trunk/src/modules/jump/JumpPropeller.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpPropeller.h	(revision 11071)
@@ -30,10 +30,6 @@
 #define _JumpPropeller_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpItem.h"
 
 namespace orxonox
@@ -44,7 +40,6 @@
             JumpPropeller(Context* context);
             virtual ~JumpPropeller();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void touchFigure();
+            virtual void tick(float dt) override;
+            virtual void touchFigure() override;
             virtual float getFuelState();
         protected:
Index: code/trunk/src/modules/jump/JumpRocket.cc
===================================================================
--- code/trunk/src/modules/jump/JumpRocket.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpRocket.cc	(revision 11071)
@@ -33,11 +33,7 @@
 
 #include "JumpRocket.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -64,9 +60,4 @@
     }
 
-    void JumpRocket::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpRocket, XMLPort, xmlelement, mode);
-    }
-
     void JumpRocket::tick(float dt)
     {
@@ -75,5 +66,5 @@
         Vector3 rocketPosition = getWorldPosition();
 
-        if (attachedToFigure_ == false && figure_ != NULL)
+        if (attachedToFigure_ == false && figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getWorldPosition();
Index: code/trunk/src/modules/jump/JumpRocket.h
===================================================================
--- code/trunk/src/modules/jump/JumpRocket.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpRocket.h	(revision 11071)
@@ -30,7 +30,6 @@
 #define _JumpRocket_H__
 
-#include "jump/JumpPrereqs.h"
-#include "util/Math.h"
-#include "worldentities/MovableEntity.h"
+#include "JumpPrereqs.h"
+#include "JumpItem.h"
 
 namespace orxonox
@@ -41,7 +40,6 @@
             JumpRocket(Context* context);
             virtual ~JumpRocket();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void touchFigure();
+            virtual void tick(float dt) override;
+            virtual void touchFigure() override;
             virtual float getFuelState();
         protected:
Index: code/trunk/src/modules/jump/JumpScore.cc
===================================================================
--- code/trunk/src/modules/jump/JumpScore.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpScore.cc	(revision 11071)
@@ -33,4 +33,5 @@
 
 #include "JumpScore.h"
+
 #include "core/CoreIncludes.h"
 #include "core/XMLPort.h"
@@ -38,5 +39,4 @@
 #include "infos/PlayerInfo.h"
 #include "Jump.h"
-#include "sound/WorldSound.h"
 
 namespace orxonox
@@ -48,5 +48,5 @@
         RegisterObject(JumpScore);
 
-        owner_ = NULL;
+        owner_ = nullptr;
         showScore_ = false;
         showFuel_ = false;
@@ -73,5 +73,5 @@
         SUPER(JumpScore, tick, dt);
 
-        if (owner_ != NULL)
+        if (owner_ != nullptr)
         {
             if (!owner_->hasEnded())
@@ -79,5 +79,5 @@
                 player_ = owner_->getPlayer();
 
-                if (player_ != NULL)
+                if (player_ != nullptr)
                 {
                     if (showScore_ == true)
@@ -116,5 +116,5 @@
         SUPER(JumpScore, changedOwner);
 
-        if (this->getOwner() != NULL && this->getOwner()->getGametype())
+        if (this->getOwner() != nullptr && this->getOwner()->getGametype())
         {
             this->owner_ = orxonox_cast<Jump*>(this->getOwner()->getGametype());
@@ -122,5 +122,5 @@
         else
         {
-            this->owner_ = NULL;
+            this->owner_ = nullptr;
         }
     }
Index: code/trunk/src/modules/jump/JumpScore.h
===================================================================
--- code/trunk/src/modules/jump/JumpScore.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpScore.h	(revision 11071)
@@ -44,7 +44,7 @@
             virtual ~JumpScore();
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
 
             void setShowScore(const bool showScore)
Index: code/trunk/src/modules/jump/JumpShield.cc
===================================================================
--- code/trunk/src/modules/jump/JumpShield.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpShield.cc	(revision 11071)
@@ -35,12 +35,5 @@
 
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
-
 #include "JumpFigure.h"
-
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -67,9 +60,4 @@
     }
 
-    void JumpShield::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpShield, XMLPort, xmlelement, mode);
-    }
-
     void JumpShield::tick(float dt)
     {
@@ -78,5 +66,5 @@
         Vector3 shieldPosition = getWorldPosition();
 
-        if (attachedToFigure_ == false && figure_ != NULL)
+        if (attachedToFigure_ == false && figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getWorldPosition();
Index: code/trunk/src/modules/jump/JumpShield.h
===================================================================
--- code/trunk/src/modules/jump/JumpShield.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpShield.h	(revision 11071)
@@ -30,10 +30,6 @@
 #define _JumpShield_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpItem.h"
 
 namespace orxonox
@@ -44,7 +40,6 @@
             JumpShield(Context* context);
             virtual ~JumpShield();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void touchFigure();
+            virtual void tick(float dt) override;
+            virtual void touchFigure() override;
             virtual float getFuelState();
         protected:
Index: code/trunk/src/modules/jump/JumpSpring.cc
===================================================================
--- code/trunk/src/modules/jump/JumpSpring.cc	(revision 11056)
+++ code/trunk/src/modules/jump/JumpSpring.cc	(revision 11071)
@@ -33,11 +33,7 @@
 
 #include "JumpSpring.h"
+
 #include "core/CoreIncludes.h"
-#include "core/GameMode.h"
-#include "graphics/Model.h"
-#include "gametypes/Gametype.h"
 #include "JumpFigure.h"
-#include "sound/WorldSound.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -63,9 +59,4 @@
     }
 
-    void JumpSpring::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(JumpSpring, XMLPort, xmlelement, mode);
-    }
-
     void JumpSpring::tick(float dt)
     {
@@ -80,5 +71,5 @@
         Vector3 springPosition = getWorldPosition();
 
-        if (figure_ != NULL)
+        if (figure_ != nullptr)
         {
             Vector3 figurePosition = figure_->getWorldPosition();
@@ -103,5 +94,5 @@
     void JumpSpring::accelerateFigure()
     {
-        if (figure_ != 0)
+        if (figure_ != nullptr)
         {
             figure_->JumpFromSpring(this);
Index: code/trunk/src/modules/jump/JumpSpring.h
===================================================================
--- code/trunk/src/modules/jump/JumpSpring.h	(revision 11056)
+++ code/trunk/src/modules/jump/JumpSpring.h	(revision 11071)
@@ -30,10 +30,6 @@
 #define _JumpSpring_H__
 
-#include "jump/JumpPrereqs.h"
-
-#include "util/Math.h"
-
-#include "worldentities/MovableEntity.h"
-
+#include "JumpPrereqs.h"
+#include "JumpItem.h"
 
 namespace orxonox
@@ -44,8 +40,7 @@
             JumpSpring(Context* context);
             virtual ~JumpSpring();
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void tick(float dt) override;
             virtual void accelerateFigure();
-            virtual void touchFigure();
+            virtual void touchFigure() override;
         protected:
             float stretch_;
Index: code/trunk/src/modules/mini4dgame/Mini4Dgame.cc
===================================================================
--- code/trunk/src/modules/mini4dgame/Mini4Dgame.cc	(revision 11056)
+++ code/trunk/src/modules/mini4dgame/Mini4Dgame.cc	(revision 11071)
@@ -66,5 +66,5 @@
         RegisterObject(Mini4Dgame);
 
-        this->board_ = 0;
+        this->board_ = nullptr;
 
         // Set the type of Bots for this particular Gametype.
@@ -88,8 +88,8 @@
     void Mini4Dgame::cleanup()
     {
-        if(this->board_ != NULL)// Destroy the board, if present.
+        if(this->board_ != nullptr)// Destroy the board, if present.
         {
             //this->board_->destroy();
-            this->board_ = 0;
+            this->board_ = nullptr;
         }
     }
@@ -101,8 +101,8 @@
     void Mini4Dgame::start()
     {
-        if (this->board_ != NULL) // There needs to be a Mini4DgameCenterpoint, i.e. the area the game takes place.
+        if (this->board_ != nullptr) // There needs to be a Mini4DgameCenterpoint, i.e. the area the game takes place.
         {
             /*
-            if (this->board_ == NULL)
+            if (this->board_ == nullptr)
             {
                 this->board_ = new Mini4DgameBoard(this->board_->getContext());
@@ -155,11 +155,11 @@
     {
         // first spawn human players to assign always the left bat to the player in singleplayer
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (const auto& mapEntry : this->players_)
+            if (mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(mapEntry.first);
         // now spawn bots
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (!it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (const auto& mapEntry : this->players_)
+            if (!mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(mapEntry.first);
     }
 
@@ -174,5 +174,5 @@
         assert(player);
 
-        if(false)//this->player_ == NULL)
+        if(false)//this->player_ == nullptr)
         {
             //this->player_ = player;
@@ -183,5 +183,5 @@
     void Mini4Dgame::undoStone()//Vector4 move, const int playerColor)
     {
-        ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>::begin();
+        ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>().begin();
         it->undoMove();
     }
@@ -191,5 +191,5 @@
     {
         Mini4DgamePosition move = Mini4DgamePosition(x,y,z,w);
-        ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>::begin();
+        ObjectList<Mini4DgameBoard>::iterator it = ObjectList<Mini4DgameBoard>().begin();
         it->makeMove(move);
     }
Index: code/trunk/src/modules/mini4dgame/Mini4Dgame.h
===================================================================
--- code/trunk/src/modules/mini4dgame/Mini4Dgame.h	(revision 11056)
+++ code/trunk/src/modules/mini4dgame/Mini4Dgame.h	(revision 11071)
@@ -41,16 +41,4 @@
 namespace orxonox
 {
-
-    namespace mini4DgamePlayerColor
-    {
-        enum color
-        {
-            none,
-            red,
-            blue,
-            green
-        };
-    }
-
     /**
     @brief
@@ -65,8 +53,8 @@
             virtual ~Mini4Dgame(); //!< Destructor. Cleans up, if initialized.
 
-            virtual void start(void); //!< Starts the Mini4Dgame minigame.
-            virtual void end(void); ///!< Ends the Mini4Dgame minigame.
+            virtual void start(void) override; //!< Starts the Mini4Dgame minigame.
+            virtual void end(void) override; ///!< Ends the Mini4Dgame minigame.
 
-            virtual void spawnPlayer(PlayerInfo* player); //!< Spawns the input player.
+            virtual void spawnPlayer(PlayerInfo* player) override; //!< Spawns the input player.
 
             void setGameboard(Mini4DgameBoard* board)
@@ -84,5 +72,5 @@
 
         protected:
-            virtual void spawnPlayersIfRequested(); //!< Spawns player.
+            virtual void spawnPlayersIfRequested() override; //!< Spawns player.
 
 
Index: code/trunk/src/modules/mini4dgame/Mini4DgameAI.cc
===================================================================
--- code/trunk/src/modules/mini4dgame/Mini4DgameAI.cc	(revision 11056)
+++ code/trunk/src/modules/mini4dgame/Mini4DgameAI.cc	(revision 11071)
@@ -60,5 +60,5 @@
 
         this->setConfigValues();
-        this->center_ = 0;
+        this->center_ = nullptr;
     }
 
@@ -104,5 +104,5 @@
                 for(int k=0;k<4;k++){
                     for(int l=0;l<4;l++){
-                        if (this->board_[i][j][k][l]==mini4DgamePlayerColor::none)
+                        if (this->board_[i][j][k][l]==Mini4DgamePlayerColor::none)
                             possibleMoves.push_back(Vector4(i,j,k,l));
                     }
@@ -112,15 +112,3 @@
         return possibleMoves;
     }
-
-    /**
-    @brief
-        Is called each tick.
-        Implements the behavior of the PongAI (i.e. its intelligence).
-    @param dt
-        The time that has elapsed since the last tick.
-    */
-    void Mini4DgameAI::tick(float dt)
-    {
-
-    }
 }
Index: code/trunk/src/modules/mini4dgame/Mini4DgameAI.h
===================================================================
--- code/trunk/src/modules/mini4dgame/Mini4DgameAI.h	(revision 11056)
+++ code/trunk/src/modules/mini4dgame/Mini4DgameAI.h	(revision 11071)
@@ -39,6 +39,4 @@
 #include <list>
 
-#include "tools/interfaces/Tickable.h"
-
 #include "controllers/Controller.h"
 #include "Mini4DgameCenterpoint.h"
@@ -55,5 +53,5 @@
         Oliver Richter
     */
-    class _Mini4DgameExport Mini4DgameAI : public Controller, public Tickable
+    class _Mini4DgameExport Mini4DgameAI : public Controller
     {
         public:
@@ -73,7 +71,4 @@
             Vector4 makeMove(float timeout);
 
-
-            virtual void tick(float dt);
-
             void setCenterpoint(Mini4DgameCenterpoint* center)
                             { this->center_ = center; }
@@ -81,5 +76,5 @@
         protected:
 
-            std::list<std::pair<Timer*, char> > reactionTimers_; //!< A list of reaction timers and the directions that take effect when their timer expires.
+            std::list<std::pair<Timer*, char>> reactionTimers_; //!< A list of reaction timers and the directions that take effect when their timer expires.
             Mini4DgameCenterpoint* center_;
 
@@ -88,5 +83,5 @@
             std::list<Vector4> getPossibleMoves();
             void copyBoard();
-            mini4DgamePlayerColor::color board_[4][4][4][4];
+            Mini4DgamePlayerColor board_[4][4][4][4];
     };
 }
Index: code/trunk/src/modules/mini4dgame/Mini4DgameBoard.cc
===================================================================
--- code/trunk/src/modules/mini4dgame/Mini4DgameBoard.cc	(revision 11056)
+++ code/trunk/src/modules/mini4dgame/Mini4DgameBoard.cc	(revision 11071)
@@ -40,6 +40,4 @@
 #include "graphics/BlinkingBillboard.h"
 
-#include "core/XMLPort.h"
-
 #include "Mini4Dgame.h"
 
@@ -63,6 +61,6 @@
                 for(int k=0;k<4;k++){
                     for(int l=0;l<4;l++){
-                        this->board[i][j][k][l]=mini4DgamePlayerColor::none;
-                        this->blinkingBillboards[i][j][k][l] = 0;
+                        this->board[i][j][k][l]=Mini4DgamePlayerColor::none;
+                        this->blinkingBillboards[i][j][k][l] = nullptr;
                     }
                 }
@@ -71,11 +69,4 @@
         this->player_toggle_ = false;
         this->checkGametype();
-    }
-
-
-    //xml port for loading sounds
-    void Mini4DgameBoard::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Mini4DgameBoard, XMLPort, xmlelement, mode);
     }
 
@@ -88,5 +79,5 @@
         return (move.x<4 && move.y<4 && move.z<4 && move.w<4
                 && move.x>=0 && move.y>=0 && move.z>=0 && move.w>=0
-                && this->board[move.x][move.y][move.z][move.w] == mini4DgamePlayerColor::none);
+                && this->board[move.x][move.y][move.z][move.w] == Mini4DgamePlayerColor::none);
     }
 
@@ -95,7 +86,7 @@
         const Mini4DgamePosition& move = moves.back();
         moves.pop_back();
-        this->board[move.x][move.y][move.z][move.w] = mini4DgamePlayerColor::none;
+        this->board[move.x][move.y][move.z][move.w] = Mini4DgamePlayerColor::none;
         this->blinkingBillboards[move.x][move.y][move.z][move.w]->destroy();
-        this->blinkingBillboards[move.x][move.y][move.z][move.w] = 0;
+        this->blinkingBillboards[move.x][move.y][move.z][move.w] = nullptr;
         if(player_toggle_){
             this->player_toggle_ = false;
@@ -124,14 +115,14 @@
 
             moves.push_back(move);
-            mini4DgamePlayerColor::color playerColor = mini4DgamePlayerColor::none;
+            Mini4DgamePlayerColor playerColor = Mini4DgamePlayerColor::none;
             if(player_toggle_){
-                playerColor = mini4DgamePlayerColor::blue;
+                playerColor = Mini4DgamePlayerColor::blue;
                 this->player_toggle_ = false;
             }else{
-                playerColor = mini4DgamePlayerColor::green;
+                playerColor = Mini4DgamePlayerColor::green;
                 this->player_toggle_ = true;
             }
 
-            this->board[move.x][move.y][move.z][move.w] = (mini4DgamePlayerColor::color) playerColor;
+            this->board[move.x][move.y][move.z][move.w] = playerColor;
 
             BlinkingBillboard* bb = new BlinkingBillboard(this->getContext());
@@ -155,9 +146,9 @@
 
             switch(playerColor){
-            case mini4DgamePlayerColor::red:
+            case Mini4DgamePlayerColor::red:
                 bb->setColour(ColourValue(1,0,0)); break;
-            case mini4DgamePlayerColor::green:
+            case Mini4DgamePlayerColor::green:
                 bb->setColour(ColourValue(0,1,0)); break;
-            case mini4DgamePlayerColor::blue:
+            case Mini4DgamePlayerColor::blue:
                 bb->setColour(ColourValue(0,0,1)); break;
             default: break;
@@ -169,5 +160,5 @@
 
             Mini4DgameWinner winner = this->getWinner();
-            if(winner.color_ != mini4DgamePlayerColor::none)
+            if(winner.color_ != Mini4DgamePlayerColor::none)
             {
                 orxout(user_status) << "Mini4Dgame: win!!!!!!!" << endl;
@@ -197,10 +188,10 @@
     {
         Mini4DgameWinner winner;
-        winner.color_ = mini4DgamePlayerColor::none;
+        winner.color_ = Mini4DgamePlayerColor::none;
 
         //check diagonals rows-columns-height-numbers
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][i][i][i]==mini4DgamePlayerColor::none || this->board[0][0][0][0] != this->board[i][i][i][i])
+            if(this->board[i][i][i][i]==Mini4DgamePlayerColor::none || this->board[0][0][0][0] != this->board[i][i][i][i])
                 break;
             if(i==3)
@@ -218,5 +209,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][i][i][i]==mini4DgamePlayerColor::none || this->board[3][0][0][0] != this->board[3-i][i][i][i])
+            if(this->board[3-i][i][i][i]==Mini4DgamePlayerColor::none || this->board[3][0][0][0] != this->board[3-i][i][i][i])
                 break;
             if(i==3)
@@ -234,5 +225,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][3-i][i][i]==mini4DgamePlayerColor::none || this->board[0][3][0][0] != this->board[i][3-i][i][i])
+            if(this->board[i][3-i][i][i]==Mini4DgamePlayerColor::none || this->board[0][3][0][0] != this->board[i][3-i][i][i])
                 break;
             if(i==3)
@@ -250,5 +241,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][i][3-i][i]==mini4DgamePlayerColor::none || this->board[0][0][3][0] != this->board[i][i][3-i][i])
+            if(this->board[i][i][3-i][i]==Mini4DgamePlayerColor::none || this->board[0][0][3][0] != this->board[i][i][3-i][i])
                 break;
             if(i==3)
@@ -266,5 +257,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[i][i][i][3-i]==mini4DgamePlayerColor::none || this->board[0][0][0][3] != this->board[i][i][i][3-i])
+            if(this->board[i][i][i][3-i]==Mini4DgamePlayerColor::none || this->board[0][0][0][3] != this->board[i][i][i][3-i])
                 break;
             if(i==3)
@@ -282,5 +273,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][3-i][i][i]==mini4DgamePlayerColor::none || this->board[3][3][0][0] != this->board[3-i][3-i][i][i])
+            if(this->board[3-i][3-i][i][i]==Mini4DgamePlayerColor::none || this->board[3][3][0][0] != this->board[3-i][3-i][i][i])
                 break;
             if(i==3)
@@ -298,5 +289,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][i][3-i][i]==mini4DgamePlayerColor::none || this->board[3][0][3][0] != this->board[3-i][i][3-i][i])
+            if(this->board[3-i][i][3-i][i]==Mini4DgamePlayerColor::none || this->board[3][0][3][0] != this->board[3-i][i][3-i][i])
                 break;
             if(i==3)
@@ -314,5 +305,5 @@
         for(int i=1; i<4; i++)
         {
-            if(this->board[3-i][i][i][3-i]==mini4DgamePlayerColor::none || this->board[3][0][0][3] != this->board[3-i][i][i][3-i])
+            if(this->board[3-i][i][i][3-i]==Mini4DgamePlayerColor::none || this->board[3][0][0][3] != this->board[3-i][i][i][3-i])
                 break;
             if(i==3)
@@ -334,5 +325,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][i][l]==mini4DgamePlayerColor::none || this->board[0][0][0][l] != this->board[i][i][i][l])
+                if(this->board[i][i][i][l]==Mini4DgamePlayerColor::none || this->board[0][0][0][l] != this->board[i][i][i][l])
                     break;
                 if(i==3)
@@ -350,5 +341,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[3-i][i][i][l]==mini4DgamePlayerColor::none || this->board[3][0][0][l] != this->board[3-i][i][i][l])
+                if(this->board[3-i][i][i][l]==Mini4DgamePlayerColor::none || this->board[3][0][0][l] != this->board[3-i][i][i][l])
                     break;
                 if(i==3)
@@ -366,5 +357,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][3-i][i][l]==mini4DgamePlayerColor::none || this->board[0][3][0][l] != this->board[i][3-i][i][l])
+                if(this->board[i][3-i][i][l]==Mini4DgamePlayerColor::none || this->board[0][3][0][l] != this->board[i][3-i][i][l])
                     break;
                 if(i==3)
@@ -382,5 +373,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][3-i][l]==mini4DgamePlayerColor::none || this->board[0][0][3][l] != this->board[i][i][3-i][l])
+                if(this->board[i][i][3-i][l]==Mini4DgamePlayerColor::none || this->board[0][0][3][l] != this->board[i][i][3-i][l])
                     break;
                 if(i==3)
@@ -403,5 +394,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][l][i]==mini4DgamePlayerColor::none || this->board[0][0][l][0] != this->board[i][i][l][i])
+                if(this->board[i][i][l][i]==Mini4DgamePlayerColor::none || this->board[0][0][l][0] != this->board[i][i][l][i])
                     break;
                 if(i==3)
@@ -419,5 +410,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[3-i][i][l][i]==mini4DgamePlayerColor::none || this->board[3][0][l][0] != this->board[3-i][i][l][i])
+                if(this->board[3-i][i][l][i]==Mini4DgamePlayerColor::none || this->board[3][0][l][0] != this->board[3-i][i][l][i])
                     break;
                 if(i==3)
@@ -435,5 +426,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][3-i][l][i]==mini4DgamePlayerColor::none || this->board[0][3][l][0] != this->board[i][3-i][l][i])
+                if(this->board[i][3-i][l][i]==Mini4DgamePlayerColor::none || this->board[0][3][l][0] != this->board[i][3-i][l][i])
                     break;
                 if(i==3)
@@ -451,5 +442,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][i][l][3-i]==mini4DgamePlayerColor::none || this->board[0][0][l][3] != this->board[i][i][l][3-i])
+                if(this->board[i][i][l][3-i]==Mini4DgamePlayerColor::none || this->board[0][0][l][3] != this->board[i][i][l][3-i])
                     break;
                 if(i==3)
@@ -472,5 +463,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][l][i][i]==mini4DgamePlayerColor::none || this->board[0][l][0][0] != this->board[i][l][i][i])
+                if(this->board[i][l][i][i]==Mini4DgamePlayerColor::none || this->board[0][l][0][0] != this->board[i][l][i][i])
                     break;
                 if(i==3)
@@ -488,5 +479,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[3-i][l][i][i]==mini4DgamePlayerColor::none || this->board[3][l][0][0] != this->board[3-i][l][i][i])
+                if(this->board[3-i][l][i][i]==Mini4DgamePlayerColor::none || this->board[3][l][0][0] != this->board[3-i][l][i][i])
                     break;
                 if(i==3)
@@ -504,5 +495,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][l][3-i][i]==mini4DgamePlayerColor::none || this->board[0][l][3][0] != this->board[i][l][3-i][i])
+                if(this->board[i][l][3-i][i]==Mini4DgamePlayerColor::none || this->board[0][l][3][0] != this->board[i][l][3-i][i])
                     break;
                 if(i==3)
@@ -520,5 +511,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[i][l][i][3-i]==mini4DgamePlayerColor::none || this->board[0][l][0][3] != this->board[i][l][i][3-i])
+                if(this->board[i][l][i][3-i]==Mini4DgamePlayerColor::none || this->board[0][l][0][3] != this->board[i][l][i][3-i])
                     break;
                 if(i==3)
@@ -541,5 +532,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][i][i][i]==mini4DgamePlayerColor::none || this->board[l][0][0][0] != this->board[l][i][i][i])
+                if(this->board[l][i][i][i]==Mini4DgamePlayerColor::none || this->board[l][0][0][0] != this->board[l][i][i][i])
                     break;
                 if(i==3)
@@ -557,5 +548,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][3-i][i][i]==mini4DgamePlayerColor::none || this->board[l][3][0][0] != this->board[l][3-i][i][i])
+                if(this->board[l][3-i][i][i]==Mini4DgamePlayerColor::none || this->board[l][3][0][0] != this->board[l][3-i][i][i])
                     break;
                 if(i==3)
@@ -573,5 +564,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][i][3-i][i]==mini4DgamePlayerColor::none || this->board[l][0][3][0] != this->board[l][i][3-i][i])
+                if(this->board[l][i][3-i][i]==Mini4DgamePlayerColor::none || this->board[l][0][3][0] != this->board[l][i][3-i][i])
                     break;
                 if(i==3)
@@ -589,5 +580,5 @@
             for(int i=1; i<4; i++)
             {
-                if(this->board[l][i][i][3-i]==mini4DgamePlayerColor::none || this->board[l][0][0][3] != this->board[l][i][i][3-i])
+                if(this->board[l][i][i][3-i]==Mini4DgamePlayerColor::none || this->board[l][0][0][3] != this->board[l][i][i][3-i])
                     break;
                 if(i==3)
@@ -611,5 +602,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[i][i][k][l]==mini4DgamePlayerColor::none || this->board[0][0][k][l] != this->board[i][i][k][l])
+                    if(this->board[i][i][k][l]==Mini4DgamePlayerColor::none || this->board[0][0][k][l] != this->board[i][i][k][l])
                         break;
                     if(i==3)
@@ -627,5 +618,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[3-i][i][k][l]==mini4DgamePlayerColor::none || this->board[3][0][k][l] != this->board[3-i][i][k][l])
+                    if(this->board[3-i][i][k][l]==Mini4DgamePlayerColor::none || this->board[3][0][k][l] != this->board[3-i][i][k][l])
                         break;
                     if(i==3)
@@ -644,5 +635,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[i][k][i][l]==mini4DgamePlayerColor::none || this->board[0][k][0][l] != this->board[i][k][i][l])
+                    if(this->board[i][k][i][l]==Mini4DgamePlayerColor::none || this->board[0][k][0][l] != this->board[i][k][i][l])
                         break;
                     if(i==3)
@@ -660,5 +651,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[3-i][k][i][l]==mini4DgamePlayerColor::none || this->board[3][k][0][l] != this->board[3-i][k][i][l])
+                    if(this->board[3-i][k][i][l]==Mini4DgamePlayerColor::none || this->board[3][k][0][l] != this->board[3-i][k][i][l])
                         break;
                     if(i==3)
@@ -677,5 +668,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[i][k][l][i]==mini4DgamePlayerColor::none || this->board[0][k][l][0] != this->board[i][k][l][i])
+                    if(this->board[i][k][l][i]==Mini4DgamePlayerColor::none || this->board[0][k][l][0] != this->board[i][k][l][i])
                         break;
                     if(i==3)
@@ -693,5 +684,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[3-i][k][l][i]==mini4DgamePlayerColor::none || this->board[3][k][l][0] != this->board[3-i][k][l][i])
+                    if(this->board[3-i][k][l][i]==Mini4DgamePlayerColor::none || this->board[3][k][l][0] != this->board[3-i][k][l][i])
                         break;
                     if(i==3)
@@ -710,5 +701,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][i][i][l]==mini4DgamePlayerColor::none || this->board[k][0][0][l] != this->board[k][i][i][l])
+                    if(this->board[k][i][i][l]==Mini4DgamePlayerColor::none || this->board[k][0][0][l] != this->board[k][i][i][l])
                         break;
                     if(i==3)
@@ -726,5 +717,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][3-i][i][l]==mini4DgamePlayerColor::none || this->board[k][3][0][l] != this->board[k][3-i][i][l])
+                    if(this->board[k][3-i][i][l]==Mini4DgamePlayerColor::none || this->board[k][3][0][l] != this->board[k][3-i][i][l])
                         break;
                     if(i==3)
@@ -743,5 +734,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][i][l][i]==mini4DgamePlayerColor::none || this->board[k][0][l][0] != this->board[k][i][l][i])
+                    if(this->board[k][i][l][i]==Mini4DgamePlayerColor::none || this->board[k][0][l][0] != this->board[k][i][l][i])
                         break;
                     if(i==3)
@@ -759,5 +750,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][3-i][l][i]==mini4DgamePlayerColor::none || this->board[k][3][l][0] != this->board[k][3-i][l][i])
+                    if(this->board[k][3-i][l][i]==Mini4DgamePlayerColor::none || this->board[k][3][l][0] != this->board[k][3-i][l][i])
                         break;
                     if(i==3)
@@ -776,5 +767,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][l][i][i]==mini4DgamePlayerColor::none || this->board[k][l][0][0] != this->board[k][l][i][i])
+                    if(this->board[k][l][i][i]==Mini4DgamePlayerColor::none || this->board[k][l][0][0] != this->board[k][l][i][i])
                         break;
                     if(i==3)
@@ -792,5 +783,5 @@
                 for(int i=1; i<4; i++)
                 {
-                    if(this->board[k][l][3-i][i]==mini4DgamePlayerColor::none || this->board[k][l][3][0] != this->board[k][l][3-i][i])
+                    if(this->board[k][l][3-i][i]==Mini4DgamePlayerColor::none || this->board[k][l][3][0] != this->board[k][l][3-i][i])
                         break;
                     if(i==3)
@@ -813,5 +804,5 @@
             for(int k=0;k<4;k++){
                 for(int l=0;l<4;l++){
-                    if(this->board[0][j][k][l]!= mini4DgamePlayerColor::none
+                    if(this->board[0][j][k][l]!= Mini4DgamePlayerColor::none
                        && this->board[0][j][k][l]==this->board[1][j][k][l]
                        && this->board[1][j][k][l]==this->board[2][j][k][l]
@@ -835,5 +826,5 @@
             for(int k=0;k<4;k++){
                 for(int l=0;l<4;l++){
-                    if(this->board[i][0][k][l]!= mini4DgamePlayerColor::none
+                    if(this->board[i][0][k][l]!= Mini4DgamePlayerColor::none
                                && this->board[i][0][k][l]==this->board[i][1][k][l]
                                && this->board[i][1][k][l]==this->board[i][2][k][l]
@@ -857,5 +848,5 @@
             for(int j=0;j<4;j++){
                 for(int l=0;l<4;l++){
-                    if(this->board[i][j][0][l]!= mini4DgamePlayerColor::none
+                    if(this->board[i][j][0][l]!= Mini4DgamePlayerColor::none
                                        && this->board[i][j][0][l]==this->board[i][j][1][l]
                                        && this->board[i][j][1][l]==this->board[i][j][2][l]
@@ -879,5 +870,5 @@
             for(int j=0;j<4;j++){
                 for(int k=0;k<4;k++){
-                    if(this->board[i][j][k][0]!= mini4DgamePlayerColor::none
+                    if(this->board[i][j][k][0]!= Mini4DgamePlayerColor::none
                                        && this->board[i][j][k][0]==this->board[i][j][k][1]
                                        && this->board[i][j][k][1]==this->board[i][j][k][2]
@@ -905,5 +896,5 @@
     void Mini4DgameBoard::checkGametype()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Mini4Dgame)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Mini4Dgame)))
         {
             Mini4Dgame* Mini4DgameGametype = orxonox_cast<Mini4Dgame*>(this->getGametype());
Index: code/trunk/src/modules/mini4dgame/Mini4DgameBoard.h
===================================================================
--- code/trunk/src/modules/mini4dgame/Mini4DgameBoard.h	(revision 11056)
+++ code/trunk/src/modules/mini4dgame/Mini4DgameBoard.h	(revision 11071)
@@ -42,4 +42,11 @@
 namespace orxonox
 {
+    enum class Mini4DgamePlayerColor
+    {
+        none,
+        red,
+        blue,
+        green
+    };
 
     struct Mini4DgamePosition
@@ -58,5 +65,5 @@
         int winningHeight[4];
         int winningNumber[4];
-        int color_;
+        Mini4DgamePlayerColor color_;
     };
 
@@ -74,6 +81,4 @@
             //virtual ~Mini4DgameBoard();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
             bool isValidMove(const Mini4DgamePosition& move);
             void undoMove();
@@ -88,5 +93,5 @@
             bool player_toggle_;
             BlinkingBillboard* blinkingBillboards[4][4][4][4];
-            int board[4][4][4][4]; //!< The logical board where the game takes place. board[row][column][height][number]
+            Mini4DgamePlayerColor board[4][4][4][4]; //!< The logical board where the game takes place. board[row][column][height][number]
     };
 }
Index: code/trunk/src/modules/notifications/NotificationDispatcher.cc
===================================================================
--- code/trunk/src/modules/notifications/NotificationDispatcher.cc	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationDispatcher.cc	(revision 11071)
@@ -113,5 +113,5 @@
         // TODO: Needed?
         const std::string message = this->createNotificationMessage();
-        NotificationListener::sendNotification(message, this->getSender(), notificationMessageType::info, notificationSendMode::local);
+        NotificationListener::sendNotification(message, this->getSender(), NotificationMessageType::info, NotificationSendMode::local);
 
         // Broadcast
@@ -144,5 +144,5 @@
             const std::string message = this->createNotificationMessage();
             // TODO: Make the type configurable.
-            NotificationListener::sendNotification(message, this->getSender(), notificationMessageType::info, notificationSendMode::network, clientId);
+            NotificationListener::sendNotification(message, this->getSender(), NotificationMessageType::info, NotificationSendMode::network, clientId);
         }
         else if(GameMode::isServer())
@@ -177,8 +177,8 @@
 
         PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
-        PlayerInfo* player = NULL;
+        PlayerInfo* player = nullptr;
 
         // If the trigger is a PlayerTrigger.
-        if(pTrigger != NULL)
+        if(pTrigger != nullptr)
         {
             if(!pTrigger->isForPlayer())  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
@@ -190,5 +190,5 @@
             return false;
 
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(verbose, context::notifications) << "The NotificationDispatcher was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << endl;
Index: code/trunk/src/modules/notifications/NotificationDispatcher.h
===================================================================
--- code/trunk/src/modules/notifications/NotificationDispatcher.h	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationDispatcher.h	(revision 11071)
@@ -79,6 +79,6 @@
             virtual ~NotificationDispatcher(); //!< Destructor.
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a NotificationDispatcher object through XML.
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a NotificationDispatcher object through XML.
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             /**
Index: code/trunk/src/modules/notifications/NotificationManager.cc
===================================================================
--- code/trunk/src/modules/notifications/NotificationManager.cc	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationManager.cc	(revision 11071)
@@ -69,6 +69,6 @@
     {
         // Destroys all Notifications.
-        for(std::multimap<std::time_t, Notification*>::iterator it = this->allNotificationsList_.begin(); it!= this->allNotificationsList_.end(); it++)
-            it->second->destroy();
+        for(const auto& mapEntry : this->allNotificationsList_)
+            mapEntry.second->destroy();
         this->allNotificationsList_.clear();
 
@@ -106,5 +106,5 @@
         Returns true if successful.
     */
-    bool NotificationManager::registerNotification(const std::string& message, const std::string& sender, notificationMessageType::Value type)
+    bool NotificationManager::registerNotification(const std::string& message, const std::string& sender, NotificationMessageType type)
     {
         // TODO: Do something with the type.
@@ -124,8 +124,8 @@
         Returns true if the command was successfully executed.
     */
-    bool NotificationManager::executeCommand(notificationCommand::Value command, const std::string& sender)
+    bool NotificationManager::executeCommand(NotificationCommand command, const std::string& sender)
     {
         bool commandExecuted = false;
-        if(command == notificationCommand::clear)
+        if(command == NotificationCommand::clear)
         {
             if(this->commandClear(sender))
@@ -152,10 +152,10 @@
         bool executed = false;
         // Clear all NotificationQueues that have the input sender as target.
-        for(std::map<const std::string, NotificationQueue*>::iterator it = this->queues_.begin(); it != this->queues_.end(); it++) // Iterate through all NotificationQueues.
-        {
-            const std::set<std::string>& set = it->second->getTargetsSet();
+        for(const auto& mapEntry : this->queues_) // Iterate through all NotificationQueues.
+        {
+            const std::set<std::string>& set = mapEntry.second->getTargetsSet();
             // If either the sender is 'all', the NotificationQueue has as target all or the NotificationQueue has the input sender as a target.
             if(all || set.find(NotificationListener::ALL) != set.end() || set.find(sender) != set.end())
-                executed = it->second->tidy() || executed;
+                executed = mapEntry.second->tidy() || executed;
         }
 
@@ -187,7 +187,7 @@
 
         // Insert the Notification in all NotificationQueues that have its sender as target.
-        for(std::map<const std::string, NotificationQueue*>::iterator it = this->queues_.begin(); it != this->queues_.end(); it++) // Iterate through all NotificationQueues.
-        {
-            const std::set<std::string>& set = it->second->getTargetsSet();
+        for(const auto& mapEntry : this->queues_) // Iterate through all NotificationQueues.
+        {
+            const std::set<std::string>& set = mapEntry.second->getTargetsSet();
             bool bAll = set.find(NotificationListener::ALL) != set.end();
             // If either the Notification has as sender 'all', the NotificationQueue displays all Notifications or the NotificationQueue has the sender of the Notification as target.
@@ -195,6 +195,6 @@
             {
                 if(!bAll)
-                    this->notificationLists_[it->second->getName()]->insert(std::pair<std::time_t, Notification*>(time, notification)); // Insert the Notification in the notifications list of the current NotificationQueue.
-                it->second->update(notification, time); // Update the NotificationQueue.
+                    this->notificationLists_[mapEntry.second->getName()]->insert(std::pair<std::time_t, Notification*>(time, notification)); // Insert the Notification in the notifications list of the current NotificationQueue.
+                mapEntry.second->update(notification, time); // Update the NotificationQueue.
             }
         }
@@ -334,5 +334,5 @@
         // If all senders are the target of the NotificationQueue, then the list of Notifications for that specific NotificationQueue is the same as the list of all Notifications.
         bool bAll = set.find(NotificationListener::ALL) != set.end();
-        std::multimap<std::time_t, Notification*>* map = NULL;
+        std::multimap<std::time_t, Notification*>* map = nullptr;
         if(bAll)
             this->notificationLists_[queue->getName()] = &this->allNotificationsList_;
@@ -345,8 +345,8 @@
 
         // Iterate through all Notifications to determine whether any of them should belong to the newly registered NotificationQueue.
-        for(std::multimap<std::time_t, Notification*>::iterator it = this->allNotificationsList_.begin(); it != this->allNotificationsList_.end(); it++)
-        {
-            if(!bAll && set.find(it->second->getSender()) != set.end()) // Checks whether the listener has the sender of the current Notification as target.
-                map->insert(std::pair<std::time_t, Notification*>(it->first, it->second));
+        for(const auto& mapEntry : this->allNotificationsList_)
+        {
+            if(!bAll && set.find(mapEntry.second->getSender()) != set.end()) // Checks whether the listener has the sender of the current Notification as target.
+                map->insert(std::pair<std::time_t, Notification*>(mapEntry.first, mapEntry.second));
         }
 
@@ -395,12 +395,12 @@
         The name of the NotificationQueue.
     @return
-        Returns a pointer to the NotificationQueue with the input name. Returns NULL if no NotificationQueue with such a name exists.
+        Returns a pointer to the NotificationQueue with the input name. Returns nullptr if no NotificationQueue with such a name exists.
     */
     NotificationQueue* NotificationManager::getQueue(const std::string & name)
     {
         std::map<const std::string, NotificationQueue*>::iterator it = this->queues_.find(name);
-        // Returns NULL if no such NotificationQueue exists.
+        // Returns nullptr if no such NotificationQueue exists.
         if(it == this->queues_.end())
-            return NULL;
+            return nullptr;
 
         return (*it).second;
@@ -437,5 +437,5 @@
 
     */
-    Notification::Notification(const std::string& message, const std::string& sender, notificationMessageType::Value type)
+    Notification::Notification(const std::string& message, const std::string& sender, NotificationMessageType type)
     {
         this->initialize();
Index: code/trunk/src/modules/notifications/NotificationManager.h
===================================================================
--- code/trunk/src/modules/notifications/NotificationManager.h	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationManager.h	(revision 11071)
@@ -62,5 +62,5 @@
     {
         public:
-            Notification(const std::string& message, const std::string& sender, notificationMessageType::Value type);
+            Notification(const std::string& message, const std::string& sender, NotificationMessageType type);
             virtual ~Notification();
 
@@ -89,5 +89,5 @@
             @return Returns an enum with the type of the Notification.
             */
-            inline notificationMessageType::Value getType(void) const
+            inline NotificationMessageType getType(void) const
                 { return this->type_; }
 
@@ -95,5 +95,5 @@
             std::string message_; //!< The Notification message.
             std::string sender_; //!< The sender of the notification.
-            notificationMessageType::Value type_; //!< The type of the notification.
+            NotificationMessageType type_; //!< The type of the notification.
 
             void initialize(void); //!< Registers the object and sets some default values.
@@ -120,5 +120,5 @@
             virtual ~NotificationManager();
 
-            virtual void preDestroy(void); // Is called before the object is destroyed.
+            virtual void preDestroy(void) override; // Is called before the object is destroyed.
 
             /**
@@ -128,6 +128,6 @@
             static NotificationManager& getInstance() { return Singleton<NotificationManager>::getInstance(); } // tolua_export
 
-            virtual bool registerNotification(const std::string& message, const std::string& sender, notificationMessageType::Value type);
-            virtual bool executeCommand(notificationCommand::Value command, const std::string& sender);
+            virtual bool registerNotification(const std::string& message, const std::string& sender, NotificationMessageType type) override;
+            virtual bool executeCommand(NotificationCommand command, const std::string& sender) override;
 
             bool registerNotification(Notification* notification); // Registers a Notification within the NotificationManager.
Index: code/trunk/src/modules/notifications/NotificationQueue.cc
===================================================================
--- code/trunk/src/modules/notifications/NotificationQueue.cc	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationQueue.cc	(revision 11071)
@@ -206,8 +206,8 @@
         {
             // Add all Notifications that have been created after this NotificationQueue was created.
-            for(std::multimap<std::time_t, Notification*>::iterator it = notifications->begin(); it != notifications->end(); it++)
+            for(const auto& mapEntry : *notifications)
             {
-                if(it->first >= this->creationTime_)
-                    this->push(it->second, it->first);
+                if(mapEntry.first >= this->creationTime_)
+                    this->push(mapEntry.second, mapEntry.first);
             }
         }
@@ -336,6 +336,6 @@
         this->ordering_.clear();
         // Delete all NotificationContainers in the list.
-        for(std::vector<NotificationContainer*>::iterator it = this->notifications_.begin(); it != this->notifications_.end(); it++)
-            delete *it;
+        for(NotificationContainer* notification : this->notifications_)
+            delete notification;
 
         this->notifications_.clear();
@@ -426,5 +426,5 @@
         bool first = true;
         // Iterate through the set of targets.
-        for(std::set<std::string>::const_iterator it = this->targets_.begin(); it != this->targets_.end(); it++)
+        for(const std::string& target : this->targets_)
         {
             if(!first)
@@ -432,5 +432,5 @@
             else
                 first = false;
-            stream << *it;
+            stream << target;
         }
 
Index: code/trunk/src/modules/notifications/NotificationQueue.h
===================================================================
--- code/trunk/src/modules/notifications/NotificationQueue.h	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationQueue.h	(revision 11071)
@@ -97,8 +97,8 @@
             virtual ~NotificationQueue();
 
-            virtual void tick(float dt); // To update from time to time.
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-
-            virtual void changedName(void);
+            virtual void tick(float dt) override; // To update from time to time.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+
+            virtual void changedName(void) override;
             
             void update(void); // Updates the NotificationQueue.
Index: code/trunk/src/modules/notifications/NotificationQueueCEGUI.cc
===================================================================
--- code/trunk/src/modules/notifications/NotificationQueueCEGUI.cc	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationQueueCEGUI.cc	(revision 11071)
@@ -290,11 +290,11 @@
         The name of the NotificationQueueCEGUI to be got.
     @return
-        Returns a pointer to the NotificationQueueCEGUI, or NULL if it doesn't exist.
+        Returns a pointer to the NotificationQueueCEGUI, or nullptr if it doesn't exist.
     */
     /*static*/ NotificationQueueCEGUI* NotificationQueueCEGUI::getQueue(const std::string& name)
     {
         NotificationQueue* queue = NotificationManager::getInstance().getQueue(name);
-        if(queue == NULL || !queue->isA(Class(NotificationQueueCEGUI)))
-            return NULL;
+        if(queue == nullptr || !queue->isA(Class(NotificationQueueCEGUI)))
+            return nullptr;
         return static_cast<NotificationQueueCEGUI*>(queue);
     }
Index: code/trunk/src/modules/notifications/NotificationQueueCEGUI.h
===================================================================
--- code/trunk/src/modules/notifications/NotificationQueueCEGUI.h	(revision 11056)
+++ code/trunk/src/modules/notifications/NotificationQueueCEGUI.h	(revision 11071)
@@ -73,7 +73,7 @@
             virtual ~NotificationQueueCEGUI();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            virtual void changedName(void);
+            virtual void changedName(void) override;
 
             void destroy(bool noGraphics = false); // Destroys the NotificationQueue.
@@ -136,11 +136,11 @@
             void registerVariables();
             
-            virtual void create(void); // Creates the NotificationQueue in lua.
+            virtual void create(void) override; // Creates the NotificationQueue in lua.
             
-            virtual void notificationPushed(Notification* notification); // Is called by the NotificationQueue when a Notification was pushed
-            virtual void notificationPopped(void); // Is called by the NotificationQueue when a Notification was popped.
-            virtual void notificationRemoved(unsigned int index); // Is called when a Notification was removed.
+            virtual void notificationPushed(Notification* notification) override; // Is called by the NotificationQueue when a Notification was pushed
+            virtual void notificationPopped(void) override; // Is called by the NotificationQueue when a Notification was popped.
+            virtual void notificationRemoved(unsigned int index) override; // Is called when a Notification was removed.
             
-            virtual void clear(bool noGraphics = false); // Clears the NotificationQueue by removing all NotificationContainers.
+            virtual void clear(bool noGraphics = false) override; // Clears the NotificationQueue by removing all NotificationContainers.
 
         protected:
Index: code/trunk/src/modules/objects/Attacher.cc
===================================================================
--- code/trunk/src/modules/objects/Attacher.cc	(revision 11056)
+++ code/trunk/src/modules/objects/Attacher.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(Attacher);
 
-        this->target_ = 0;
+        this->target_ = nullptr;
     }
 
@@ -61,6 +61,6 @@
         SUPER(Attacher, changedActivity);
 
-        for (std::list<WorldEntity*>::iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-            (*it)->setActive(this->isActive());
+        for (WorldEntity* object : this->objects_)
+            object->setActive(this->isActive());
     }
 
@@ -69,6 +69,6 @@
         SUPER(Attacher, changedVisibility);
 
-        for (std::list<WorldEntity*>::iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-            (*it)->setVisible(this->isVisible());
+        for (WorldEntity* object : this->objects_)
+            object->setVisible(this->isVisible());
     }
 
@@ -83,12 +83,12 @@
     {
         unsigned int i = 0;
-        for (std::list<WorldEntity*>::const_iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
+        for (WorldEntity* object : this->objects_)
         {
             if (i == index)
-                return (*it);
+                return object;
 
             ++i;
         }
-        return 0;
+        return nullptr;
     }
 
@@ -96,15 +96,15 @@
     {
         this->targetname_ = target;
-        this->target_ = 0;
+        this->target_ = nullptr;
 
         if (this->targetname_.empty())
             return;
 
-        for (ObjectList<WorldEntity>::iterator it = ObjectList<WorldEntity>::begin(); it != ObjectList<WorldEntity>::end(); ++it)
+        for (WorldEntity* worldEntity : ObjectList<WorldEntity>())
         {
-            if (it->getName() == this->targetname_)
+            if (worldEntity->getName() == this->targetname_)
             {
-                this->target_ = *it;
-                this->attachToParent(*it);
+                this->target_ = worldEntity;
+                this->attachToParent(worldEntity);
             }
         }
Index: code/trunk/src/modules/objects/Attacher.h
===================================================================
--- code/trunk/src/modules/objects/Attacher.h	(revision 11056)
+++ code/trunk/src/modules/objects/Attacher.h	(revision 11071)
@@ -51,9 +51,9 @@
             virtual ~Attacher() {}
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            virtual void processEvent(Event& event);
-            virtual void changedActivity();
-            virtual void changedVisibility();
+            virtual void processEvent(Event& event) override;
+            virtual void changedActivity() override;
+            virtual void changedVisibility() override;
 
             void addObject(WorldEntity* object);
@@ -64,5 +64,5 @@
                 { return this->targetname_; }
 
-            void loadedNewXMLName(BaseObject* object);
+            virtual void loadedNewXMLName(BaseObject* object) override;
 
         private:
Index: code/trunk/src/modules/objects/ForceField.cc
===================================================================
--- code/trunk/src/modules/objects/ForceField.cc	(revision 11056)
+++ code/trunk/src/modules/objects/ForceField.cc	(revision 11071)
@@ -67,5 +67,5 @@
         this->setMassDiameter(0);   //! We allow point-masses
         this->setLength(2000);
-        this->mode_ = forceFieldMode::tube;
+        this->mode_ = ForceFieldMode::tube;
         
         this->registerVariables();
@@ -115,8 +115,8 @@
     void ForceField::tick(float dt)
     {
-        if(this->mode_ == forceFieldMode::tube)
-        {
-            // Iterate over all objects that could possibly be affected by the ForceField.
-            for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
+        if(this->mode_ == ForceFieldMode::tube)
+        {
+            // Iterate over all objects that could possibly be affected by the ForceField.
+            for (MobileEntity* mobileEntity : ObjectList<MobileEntity>())
             {
                 // The direction of the orientation of the force field.
@@ -125,5 +125,5 @@
 
                 // Vector from the center of the force field to the object its acting on.
-                Vector3 distanceVector = it->getWorldPosition() - (this->getWorldPosition() + (this->halfLength_ * direction));
+                Vector3 distanceVector = mobileEntity->getWorldPosition() - (this->getWorldPosition() + (this->halfLength_ * direction));
 
                 // The object is outside a ball around the center with radius length/2 of the ForceField.
@@ -132,5 +132,5 @@
 
                 // The distance of the object form the orientation vector. (Or rather the smallest distance from the orientation vector)
-                float distanceFromDirectionVector = ((it->getWorldPosition() - this->getWorldPosition()).crossProduct(direction)).length();
+                float distanceFromDirectionVector = ((mobileEntity->getWorldPosition() - this->getWorldPosition()).crossProduct(direction)).length();
 
                 // If the object in a tube of radius 'radius' around the direction of orientation.
@@ -140,13 +140,13 @@
                 // Apply a force to the object in the direction of the orientation.
                 // The force is highest when the object is directly on the direction vector, with a linear decrease, finally reaching zero, when distanceFromDirectionVector = radius.
-                it->applyCentralForce((this->radius_ - distanceFromDirectionVector)/this->radius_ * this->velocity_ * direction);
-            }
-        }
-        else if(this->mode_ == forceFieldMode::sphere)
-        {
-            // Iterate over all objects that could possibly be affected by the ForceField.
-            for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
-            {
-                Vector3 distanceVector = it->getWorldPosition() - this->getWorldPosition();
+                mobileEntity->applyCentralForce((this->radius_ - distanceFromDirectionVector)/this->radius_ * this->velocity_ * direction);
+            }
+        }
+        else if(this->mode_ == ForceFieldMode::sphere)
+        {
+            // Iterate over all objects that could possibly be affected by the ForceField.
+            for (MobileEntity* mobileEntity : ObjectList<MobileEntity>())
+            {
+                Vector3 distanceVector = mobileEntity->getWorldPosition() - this->getWorldPosition();
                 float distance = distanceVector.length();
                 // If the object is within 'radius' distance.
@@ -155,14 +155,14 @@
                     distanceVector.normalise();
                     // Apply a force proportional to the velocity, with highest force at the origin of the sphere, linear decreasing until reaching a distance of 'radius' from the origin, where the force reaches zero. 
-                    it->applyCentralForce((this->radius_ - distance)/this->radius_ * this->velocity_ * distanceVector);
-                }
-            }
-        }
-        else if(this->mode_ == forceFieldMode::invertedSphere)
-        {
-            // Iterate over all objects that could possibly be affected by the ForceField.
-            for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
-            {
-                Vector3 distanceVector = this->getWorldPosition() - it->getWorldPosition();
+                    mobileEntity->applyCentralForce((this->radius_ - distance)/this->radius_ * this->velocity_ * distanceVector);
+                }
+            }
+        }
+        else if(this->mode_ == ForceFieldMode::invertedSphere)
+        {
+            // Iterate over all objects that could possibly be affected by the ForceField.
+            for (MobileEntity* mobileEntity : ObjectList<MobileEntity>())
+            {
+                Vector3 distanceVector = this->getWorldPosition() - mobileEntity->getWorldPosition();
                 float distance = distanceVector.length();
                 // If the object is within 'radius' distance and no more than 'length' away from the boundary of the sphere.
@@ -172,14 +172,14 @@
                     distanceVector.normalise();
                     // Apply a force proportional to the velocity, with highest force at the boundary of the sphere, linear decreasing until reaching a distance of 'radius-length' from the origin, where the force reaches zero.
-                    it->applyCentralForce((distance-range)/range * this->velocity_ * distanceVector);
-                }
-            }
-        }
-        else if(this->mode_ == forceFieldMode::newtonianGravity)
-        {
-            // Iterate over all objects that could possibly be affected by the ForceField.
-            for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
-            {
-                Vector3 distanceVector = it->getWorldPosition() - this->getWorldPosition();
+                    mobileEntity->applyCentralForce((distance-range)/range * this->velocity_ * distanceVector);
+                }
+            }
+        }
+        else if(this->mode_ == ForceFieldMode::newtonianGravity)
+        {
+            // Iterate over all objects that could possibly be affected by the ForceField.
+            for (MobileEntity* mobileEntity : ObjectList<MobileEntity>())
+            {
+                Vector3 distanceVector = mobileEntity->getWorldPosition() - this->getWorldPosition();
                 float distance = distanceVector.length();
                 // If the object is within 'radius' distance and especially further away than massRadius_
@@ -197,14 +197,14 @@
                     
                     // Note: this so called force is actually an acceleration!
-                    it->applyCentralForce((-1) * (ForceField::attenFactor_ * ForceField::gravConstant_ * this->getMass()) / (distance * distance) * distanceVector);
-                }
-            }
-        }
-        else if(this->mode_ == forceFieldMode::homogen)
-        {
-            // Iterate over all objects that could possibly be affected by the ForceField.
-            for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
-            {
-                Vector3 distanceVector = it->getWorldPosition() - this->getWorldPosition();
+                    mobileEntity->applyCentralForce((-1) * (ForceField::attenFactor_ * ForceField::gravConstant_ * this->getMass()) / (distance * distance) * distanceVector);
+                }
+            }
+        }
+        else if(this->mode_ == ForceFieldMode::homogen)
+        {
+            // Iterate over all objects that could possibly be affected by the ForceField.
+            for (MobileEntity* mobileEntity : ObjectList<MobileEntity>())
+            {
+                Vector3 distanceVector = mobileEntity->getWorldPosition() - this->getWorldPosition();
                 float distance = distanceVector.length();
                 if (distance < this->radius_ && distance > this->massRadius_)
@@ -212,5 +212,5 @@
                     // Add a Acceleration in forceDirection_.
                     // Vector3(0,0,0) is the direction, where the force should work.
-                    it->addAcceleration(forceDirection_ , Vector3(0,0,0));
+                    mobileEntity->addAcceleration(forceDirection_ , Vector3(0,0,0));
                 }
             }
@@ -227,19 +227,19 @@
     {
         if(mode == ForceField::modeTube_s)
-            this->mode_ = forceFieldMode::tube;
+            this->mode_ = ForceFieldMode::tube;
         else if(mode == ForceField::modeSphere_s)
-            this->mode_ = forceFieldMode::sphere;
+            this->mode_ = ForceFieldMode::sphere;
         else if(mode == ForceField::modeInvertedSphere_s)
-            this->mode_ = forceFieldMode::invertedSphere;
+            this->mode_ = ForceFieldMode::invertedSphere;
         else if(mode == ForceField::modeNewtonianGravity_s)
-            this->mode_ = forceFieldMode::newtonianGravity;
+            this->mode_ = ForceFieldMode::newtonianGravity;
 
         else if(mode == ForceField::modeHomogen_s)
-            this->mode_ = forceFieldMode::homogen;
+            this->mode_ = ForceFieldMode::homogen;
 
         else
         {
             orxout(internal_warning) << "Wrong mode '" << mode << "' in ForceField. Setting to 'tube'." << endl;
-            this->mode_ = forceFieldMode::tube;
+            this->mode_ = ForceFieldMode::tube;
         }
     }
@@ -255,14 +255,14 @@
         switch(this->mode_)
         {
-            case forceFieldMode::tube:
+            case ForceFieldMode::tube:
                 return ForceField::modeTube_s;
-            case forceFieldMode::sphere:
+            case ForceFieldMode::sphere:
                 return ForceField::modeSphere_s;
-            case forceFieldMode::invertedSphere:
+            case ForceFieldMode::invertedSphere:
                 return ForceField::modeInvertedSphere_s;
-            case forceFieldMode::newtonianGravity:
+            case ForceFieldMode::newtonianGravity:
                 return ForceField::modeNewtonianGravity_s;
 
-            case forceFieldMode::homogen:
+            case ForceFieldMode::homogen:
                 return ForceField::modeHomogen_s;
 
Index: code/trunk/src/modules/objects/ForceField.h
===================================================================
--- code/trunk/src/modules/objects/ForceField.h	(revision 11056)
+++ code/trunk/src/modules/objects/ForceField.h	(revision 11071)
@@ -52,14 +52,11 @@
     @ingroup Objects
     */
-    namespace forceFieldMode
-    {
-        enum Value {
-            tube, //!< The ForceField has a tube shape.
-            sphere, //!< The ForceField has a spherical shape.
-            invertedSphere, //!< The ForceField has a spherical shape but "inverted" behavior.
-            newtonianGravity, //!< The ForceField imitates Newtonian gravitation for use in stellar bodies.
-            homogen //!< Local homogenous Force field with changeable direction for the Space Station
-        };
-    }
+    enum class ForceFieldMode {
+        tube, //!< The ForceField has a tube shape.
+        sphere, //!< The ForceField has a spherical shape.
+        invertedSphere, //!< The ForceField has a spherical shape but "inverted" behavior.
+        newtonianGravity, //!< The ForceField imitates Newtonian gravitation for use in stellar bodies.
+        homogen //!< Local homogenous Force field with changeable direction for the Space Station
+    };
 
     /**
@@ -92,7 +89,7 @@
             virtual ~ForceField();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Creates a ForceField object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Creates a ForceField object through XML.
             void registerVariables(); //!< Registers the variables that should get synchronised over the network
-            virtual void tick(float dt); //!< A method that is called every tick.
+            virtual void tick(float dt) override; //!< A method that is called every tick.
             
 
@@ -172,5 +169,5 @@
             float massRadius_; //!< The radius of the stellar body for the Newtonian ForceField.
             float halfLength_; //!< Half of the length of the ForceField.
-            int mode_; //!< The mode of the ForceField.
+            ForceFieldMode mode_; //!< The mode of the ForceField.
             
             //! Gravitational constant for Newtonian ForceFields.
Index: code/trunk/src/modules/objects/Planet.h
===================================================================
--- code/trunk/src/modules/objects/Planet.h	(revision 11056)
+++ code/trunk/src/modules/objects/Planet.h	(revision 11071)
@@ -52,9 +52,9 @@
             virtual ~Planet();
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            virtual void changedVisibility();
+            virtual void changedVisibility() override;
 
             inline void setMeshSource(const std::string& meshname)
Index: code/trunk/src/modules/objects/Script.cc
===================================================================
--- code/trunk/src/modules/objects/Script.cc	(revision 11056)
+++ code/trunk/src/modules/objects/Script.cc	(revision 11071)
@@ -140,8 +140,8 @@
 
         PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
-        PlayerInfo* player = NULL;
+        PlayerInfo* player = nullptr;
 
         // If the trigger is a PlayerTrigger.
-        if(pTrigger != NULL)
+        if(pTrigger != nullptr)
         {
             if(!pTrigger->isForPlayer())  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
@@ -153,5 +153,5 @@
             return false;
 
-        if(player == NULL)  //TODO: Will this ever happen? If not, change in NotificationDispatcher as well.
+        if(player == nullptr)  //TODO: Will this ever happen? If not, change in NotificationDispatcher as well.
         {
             orxout(internal_warning) << "The Script was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << endl;
@@ -196,7 +196,7 @@
             {
                 const std::map<unsigned int, PlayerInfo*> clients = PlayerManager::getInstance().getClients();
-                for(std::map<unsigned int, PlayerInfo*>::const_iterator it = clients.begin(); it != clients.end(); it++)
+                for(const auto& mapEntry : clients)
                 {
-                    callStaticNetworkFunction(&Script::executeHelper, it->first, this->getCode(), this->getMode(), this->getNeedsGraphics());
+                    callStaticNetworkFunction(&Script::executeHelper, mapEntry.first, this->getCode(), this->getMode(), this->getNeedsGraphics());
                     if(this->times_ != Script::INF) // Decrement the number of remaining executions.
                     {
Index: code/trunk/src/modules/objects/Script.h
===================================================================
--- code/trunk/src/modules/objects/Script.h	(revision 11056)
+++ code/trunk/src/modules/objects/Script.h	(revision 11071)
@@ -51,12 +51,9 @@
     @brief The mode a specific @ref orxonox::Script "Script" is in.
     */
-    namespace ScriptMode
+    enum class ScriptMode
     {
-        enum Value
-        {
-            normal, //!< The @ref orxonox::Script "Scripts'" code is executed through the @ref orxonox::CommandExecutor "CommandExecutor".
-            lua //!< The @ref orxonox::Script "Scripts'" code is executed through lua.
-        };
-    }
+        normal, //!< The @ref orxonox::Script "Scripts'" code is executed through the @ref orxonox::CommandExecutor "CommandExecutor".
+        lua //!< The @ref orxonox::Script "Scripts'" code is executed through lua.
+    };
 
     /**
@@ -98,6 +95,6 @@
             virtual ~Script();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a Script object through XML.
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode); //!< Creates a port that can be used to channel events and react to them.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a Script object through XML.
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Creates a port that can be used to channel events and react to them.
 
             bool trigger(bool triggered, BaseObject* trigger); //!< Is called when an event comes in trough the event port.
@@ -168,6 +165,6 @@
                 { return this->forAll_; }
 
-            virtual void clientConnected(unsigned int clientId); //!< Callback that is called when a new client has connected.
-            virtual void clientDisconnected(unsigned int clientid) {}
+            virtual void clientConnected(unsigned int clientId) override; //!< Callback that is called when a new client has connected.
+            virtual void clientDisconnected(unsigned int clientid) override {}
 
         private:
@@ -178,5 +175,5 @@
 
             std::string code_; //!< The code that is executed by this Script.
-            ScriptMode::Value mode_; //!< The mode the Script is in. Determines whether the code is executed the normal way or in lua.
+            ScriptMode mode_; //!< The mode the Script is in. Determines whether the code is executed the normal way or in lua.
             std::string modeStr_; //!< The mode the Script is in, as a string. Is used for networking purposes.
             bool onLoad_; //!< Whether the Scripts code is executed upon loading (creation) of this Script.
@@ -193,5 +190,5 @@
             @param mode The mode of the Script.
             */
-            inline void setMode(ScriptMode::Value mode)
+            inline void setMode(ScriptMode mode)
                 { this->mode_ = mode; }
     };
Index: code/trunk/src/modules/objects/SpaceBoundaries.cc
===================================================================
--- code/trunk/src/modules/objects/SpaceBoundaries.cc	(revision 11056)
+++ code/trunk/src/modules/objects/SpaceBoundaries.cc	(revision 11071)
@@ -59,9 +59,9 @@
             this->pawnsIn_.clear();
 
-            for( std::vector<BillboardAdministration>::iterator current = this->billboards_.begin(); current != this->billboards_.end(); current++)
+            for(BillboardAdministration& billboard : this->billboards_)
             {
-                if( current->billy != NULL)
-                {
-                    delete current->billy;
+                if( billboard.billy != nullptr)
+                {
+                    delete billboard.billy;
                 }
             }
@@ -73,7 +73,6 @@
     {
         pawnsIn_.clear();
-        for(ObjectList<Pawn>::iterator current = ObjectList<Pawn>::begin(); current != ObjectList<Pawn>::end(); ++current)
-        {
-            Pawn* currentPawn = *current;
+        for(Pawn* currentPawn : ObjectList<Pawn>())
+        {
             if( this->reaction_ == 0 )
             {
@@ -127,5 +126,5 @@
     void SpaceBoundaries::setBillboardOptions(Billboard *billy)
     {
-        if(billy != NULL)
+        if(billy != nullptr)
         {
             billy->setMaterial("Grid");
@@ -138,8 +137,8 @@
     void SpaceBoundaries::removeAllBillboards()
     {
-        for( std::vector<BillboardAdministration>::iterator current = this->billboards_.begin(); current != this->billboards_.end(); current++ )
-        {
-            current->usedYet = false;
-            current->billy->setVisible(false);
+        for(BillboardAdministration& billboard : this->billboards_)
+        {
+            billboard.usedYet = false;
+            billboard.billy->setVisible(false);
         }
     }
@@ -208,7 +207,6 @@
         float distance;
         bool humanItem;
-        for( std::list<WeakPtr<Pawn> >::iterator current = pawnsIn_.begin(); current != pawnsIn_.end(); current++ )
-        {
-            Pawn* currentPawn = *current;
+        for(Pawn* currentPawn : pawnsIn_)
+        {
             if( currentPawn && currentPawn->getNode() ) 
             {
@@ -250,5 +248,5 @@
     float SpaceBoundaries::computeDistance(WorldEntity *item)
     {
-        if(item != NULL)
+        if(item != nullptr)
         {
             Vector3 itemPosition = item->getWorldPosition();
@@ -310,5 +308,5 @@
     bool SpaceBoundaries::isHumanPlayer(Pawn *item)
     {
-        if(item != NULL)
+        if(item != nullptr)
         {
             if(item->getPlayer())
Index: code/trunk/src/modules/objects/SpaceBoundaries.h
===================================================================
--- code/trunk/src/modules/objects/SpaceBoundaries.h	(revision 11056)
+++ code/trunk/src/modules/objects/SpaceBoundaries.h	(revision 11071)
@@ -93,7 +93,7 @@
             int getReaction();
 
-            void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            void tick(float dt);
+            virtual void tick(float dt) override;
 
         private:
@@ -101,5 +101,5 @@
 
             // Variabeln::
-            std::list<WeakPtr<Pawn> > pawnsIn_; //!< List of the pawns that this instance of SpaceBoundaries has to handle.
+            std::list<WeakPtr<Pawn>> pawnsIn_; //!< List of the pawns that this instance of SpaceBoundaries has to handle.
 
             std::vector<BillboardAdministration> billboards_;
Index: code/trunk/src/modules/objects/Turret.cc
===================================================================
--- code/trunk/src/modules/objects/Turret.cc	(revision 11056)
+++ code/trunk/src/modules/objects/Turret.cc	(revision 11071)
@@ -278,5 +278,5 @@
             //slower the closer it is to the destination
             Quaternion drot = Quaternion::nlerp(dt*this->rotationThrust_/20.f, Quaternion::IDENTITY, this->rotation_);
-            this->rotate(drot, WorldEntity::World);
+            this->rotate(drot, WorldEntity::TransformSpace::World);
             this->rotation_ = Quaternion::IDENTITY;
         }
Index: code/trunk/src/modules/objects/Turret.h
===================================================================
--- code/trunk/src/modules/objects/Turret.h	(revision 11056)
+++ code/trunk/src/modules/objects/Turret.h	(revision 11071)
@@ -61,12 +61,12 @@
             virtual ~Turret();
 
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
+            virtual void rotatePitch(const Vector2& value) override;
+            virtual void rotateYaw(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
             virtual float isInRange(const WorldEntity* target);
             virtual void aimAtPosition(const Vector3 &position);
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
 
             /** @brief Sets the maximum distance the turret is allowed to shoot. @param radius The distance*/
Index: code/trunk/src/modules/objects/controllers/TeamTargetProxy.cc
===================================================================
--- code/trunk/src/modules/objects/controllers/TeamTargetProxy.cc	(revision 11056)
+++ code/trunk/src/modules/objects/controllers/TeamTargetProxy.cc	(revision 11071)
@@ -28,4 +28,5 @@
 
 #include "TeamTargetProxy.h"
+#include "core/CoreIncludes.h"
 #include "worldentities/ControllableEntity.h"
 #include "worldentities/pawns/Pawn.h"
Index: code/trunk/src/modules/objects/controllers/TurretController.cc
===================================================================
--- code/trunk/src/modules/objects/controllers/TurretController.cc	(revision 11056)
+++ code/trunk/src/modules/objects/controllers/TurretController.cc	(revision 11071)
@@ -30,4 +30,6 @@
 #include "worldentities/pawns/Pawn.h"
 #include "objects/Turret.h"
+#include "core/object/ObjectList.h"
+#include "core/CoreIncludes.h"
 
  namespace orxonox
@@ -81,5 +83,5 @@
         {
             this->forgetTarget();
-            turret->setTarget(0);
+            turret->setTarget(nullptr);
         }
 
@@ -99,12 +101,11 @@
         float minScore = FLT_MAX;
         float tempScore;
-        Pawn* minScorePawn = 0;
-
-        for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
-        {
-            Pawn* entity = orxonox_cast<Pawn*>(*it);
-            if (!entity || FormationController::sameTeam(turret, entity, this->getGametype()))
+        Pawn* minScorePawn = nullptr;
+
+        for (Pawn* pawn : ObjectList<Pawn>())
+        {
+            if (!pawn || FormationController::sameTeam(turret, pawn, this->getGametype()))
                 continue;
-            tempScore = turret->isInRange(entity);
+            tempScore = turret->isInRange(pawn);
             if(tempScore != -1.f)
             {
@@ -112,5 +113,5 @@
                 {
                     minScore = tempScore;
-                    minScorePawn = entity;
+                    minScorePawn = pawn;
                 }
             }
Index: code/trunk/src/modules/objects/eventsystem/EventDispatcher.cc
===================================================================
--- code/trunk/src/modules/objects/eventsystem/EventDispatcher.cc	(revision 11056)
+++ code/trunk/src/modules/objects/eventsystem/EventDispatcher.cc	(revision 11071)
@@ -45,6 +45,6 @@
     {
         if (this->isInitialized())
-            for (std::list<BaseObject*>::iterator it = this->targets_.begin(); it != this->targets_.end(); ++it)
-                (*it)->destroy();
+            for (BaseObject* target : this->targets_)
+                target->destroy();
     }
 
@@ -61,6 +61,6 @@
     void EventDispatcher::processEvent(Event& event)
     {
-        for (std::list<BaseObject*>::iterator it = this->targets_.begin(); it != this->targets_.end(); ++it)
-            (*it)->processEvent(event);
+        for (BaseObject* target : this->targets_)
+            target->processEvent(event);
     }
 
@@ -73,11 +73,11 @@
     {
         unsigned int i = 0;
-        for (std::list<BaseObject*>::const_iterator it = this->targets_.begin(); it != this->targets_.end(); ++it)
+        for (BaseObject* target : this->targets_)
         {
             if (i == index)
-                return (*it);
+                return target;
             ++i;
         }
-        return 0;
+        return nullptr;
     }
 }
Index: code/trunk/src/modules/objects/eventsystem/EventFilter.cc
===================================================================
--- code/trunk/src/modules/objects/eventsystem/EventFilter.cc	(revision 11056)
+++ code/trunk/src/modules/objects/eventsystem/EventFilter.cc	(revision 11071)
@@ -70,7 +70,7 @@
         {
             bool success = false;
-            for (std::list<EventName*>::const_iterator it = this->names_.begin(); it != this->names_.end(); ++it)
+            for (EventName* name : this->names_)
             {
-                if ((*it)->getName() == event.name_)
+                if (name->getName() == event.name_)
                 {
                     success = true;
@@ -96,11 +96,11 @@
     {
         unsigned int i = 0;
-        for (std::list<BaseObject*>::const_iterator it = this->sources_.begin(); it != this->sources_.end(); ++it)
+        for (BaseObject* source : this->sources_)
         {
             if (i == index)
-                return (*it);
+                return source;
             ++i;
         }
-        return 0;
+        return nullptr;
     }
 
@@ -113,11 +113,11 @@
     {
         unsigned int i = 0;
-        for (std::list<EventName*>::const_iterator it = this->names_.begin(); it != this->names_.end(); ++it)
+        for (EventName* name : this->names_)
         {
             if (i == index)
-                return (*it);
+                return name;
             ++i;
         }
-        return 0;
+        return nullptr;
     }
 }
Index: code/trunk/src/modules/objects/eventsystem/EventListener.cc
===================================================================
--- code/trunk/src/modules/objects/eventsystem/EventListener.cc	(revision 11056)
+++ code/trunk/src/modules/objects/eventsystem/EventListener.cc	(revision 11071)
@@ -78,7 +78,7 @@
             return;
 
-        for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it != ObjectList<BaseObject>::end(); ++it)
-            if (it->getName() == this->eventName_)
-                this->addEventSource(*it, "");
+        for (BaseObject* object : ObjectList<BaseObject>())
+            if (object->getName() == this->eventName_)
+                this->addEventSource(object, "");
     }
 
Index: code/trunk/src/modules/objects/eventsystem/EventTarget.cc
===================================================================
--- code/trunk/src/modules/objects/eventsystem/EventTarget.cc	(revision 11056)
+++ code/trunk/src/modules/objects/eventsystem/EventTarget.cc	(revision 11071)
@@ -73,7 +73,7 @@
         this->target_ = name;
 
-        for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it != ObjectList<BaseObject>::end(); ++it)
-            if (it->getName() == this->target_)
-                this->addEventTarget(*it);
+        for (BaseObject* object : ObjectList<BaseObject>())
+            if (object->getName() == this->target_)
+                this->addEventTarget(object);
     }
 
Index: code/trunk/src/modules/objects/triggers/CheckPoint.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/CheckPoint.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/CheckPoint.cc	(revision 11071)
@@ -56,5 +56,5 @@
 
         this->setRadarObjectColour(ColourValue::Green);
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarVisibility(false);
 
Index: code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc	(revision 11071)
@@ -58,5 +58,5 @@
 
         this->distance_ = 100.0f;
-        this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::off);
+        this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::off);
         this->targetName_ = "";
         this->beaconMask_.exclude(Class(BaseObject));
@@ -97,13 +97,13 @@
     {
 
-        std::queue<MultiTriggerState*>* queue = NULL;
+        std::queue<MultiTriggerState*>* queue = nullptr;
 
         // Check for objects that were in range but no longer are. Iterate through all objects, that are in range.
-        for(std::set<WeakPtr<WorldEntity> >::iterator it = this->range_.begin(); it != this->range_.end(); )
+        for(std::set<WeakPtr<WorldEntity>>::iterator it = this->range_.begin(); it != this->range_.end(); )
         {
             WorldEntity* entity = *it;
 
             // If the entity no longer exists.
-            if(entity == NULL)
+            if(entity == nullptr)
             {
                 this->range_.erase(it++);
@@ -118,5 +118,5 @@
 
                 // If no queue has been created, yet.
-                if(queue == NULL)
+                if(queue == nullptr)
                     queue = new std::queue<MultiTriggerState*>();
 
@@ -136,5 +136,5 @@
         ClassTreeMask targetMask = this->getTargetMask();
         // If we are in identify-mode another target mask has to be applies to find the DistanceTriggerBeacons.
-        if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
+        if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::identify)
             targetMask = this->beaconMask_;
 
@@ -145,5 +145,5 @@
 
             // If the DistanceMultiTrigger is in identify-mode and the DistanceTriggerBeacon attached to the object has the wrong name we ignore it.
-            if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
+            if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::identify)
             {
                 if(entity->getName() != this->targetName_)
@@ -155,12 +155,12 @@
             
             // If the DistanceMultiTrigger is in exclude mode and the DistanceTriggerBeacon attached to the object has the right name, we ignore it.
-            if(this->beaconMode_ == distanceMultiTriggerBeaconMode::exclude)
+            if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::exclude)
             {
                 
-                const std::set<WorldEntity*> attached = entity->getAttachedObjects();
+                const std::set<WorldEntity*> attachedObjects = entity->getAttachedObjects();
                 bool found = false;
-                for(std::set<WorldEntity*>::const_iterator it = attached.begin(); it != attached.end(); it++)
+                for(WorldEntity* attachedObject : attachedObjects)
                 {
-                    if((*it)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(*it)->getName() == this->targetName_)
+                    if(attachedObject->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(attachedObject)->getName() == this->targetName_)
                     {
                         found = true;
@@ -182,9 +182,9 @@
 
                 // Change the entity to the parent of the DistanceTriggerBeacon (if in identify-mode), which is the entity to which the beacon is attached.
-                if(this->beaconMode_ == distanceMultiTriggerBeaconMode::identify)
+                if(this->beaconMode_ == DistanceMultiTriggerBeaconMode::identify)
                     entity = entity->getParent();
 
                 // If no queue has been created, yet.
-                if(queue == NULL)
+                if(queue == nullptr)
                     queue = new std::queue<MultiTriggerState*>();
 
@@ -206,5 +206,5 @@
         The mode as an enum.
     */
-    void DistanceMultiTrigger::setBeaconModeDirect(distanceMultiTriggerBeaconMode::Value mode)
+    void DistanceMultiTrigger::setBeaconModeDirect(DistanceMultiTriggerBeaconMode mode)
     {
         this->beaconMode_ = mode;
@@ -221,9 +221,9 @@
         switch(this->getBeaconModeDirect())
         {
-            case distanceMultiTriggerBeaconMode::off :
+            case DistanceMultiTriggerBeaconMode::off :
                 return DistanceMultiTrigger::beaconModeOff_s;
-            case distanceMultiTriggerBeaconMode::identify:
+            case DistanceMultiTriggerBeaconMode::identify:
                 return DistanceMultiTrigger::beaconModeIdentify_s;
-            case distanceMultiTriggerBeaconMode::exclude:
+            case DistanceMultiTriggerBeaconMode::exclude:
                 return DistanceMultiTrigger::beaconModeExlcude_s;
             default :
@@ -242,9 +242,9 @@
     {
         if(mode == DistanceMultiTrigger::beaconModeOff_s)
-            this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::off);
+            this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::off);
         else if(mode == DistanceMultiTrigger::beaconModeIdentify_s)
-            this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::identify);
+            this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::identify);
         else if(mode == DistanceMultiTrigger::beaconModeExlcude_s)
-            this->setBeaconModeDirect(distanceMultiTriggerBeaconMode::exclude);
+            this->setBeaconModeDirect(DistanceMultiTriggerBeaconMode::exclude);
         else
             orxout(internal_error, context::triggers) << "Invalid beacon mode in DistanceMultiTrigger." << endl;
@@ -261,5 +261,5 @@
     bool DistanceMultiTrigger::addToRange(WorldEntity* entity)
     {
-        std::pair<std::set<WeakPtr<WorldEntity> >::iterator, bool> pair = this->range_.insert(entity);
+        std::pair<std::set<WeakPtr<WorldEntity>>::iterator, bool> pair = this->range_.insert(entity);
         return pair.second;
     }
Index: code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.h	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.h	(revision 11071)
@@ -55,12 +55,9 @@
     @ingroup MultiTrigger
     */
-    namespace distanceMultiTriggerBeaconMode
-    {
-        enum Value {
-            off, //!< The DistanceMultiTrigger is not in <em>beacon-mode</em>.
-            identify, //!< The DistanceTrigger is in <em>identify-mode</em>.
-            exclude //!< The DistanceTrigger is in <em>exclude-mode</em>.
-        };
-    }
+    enum class DistanceMultiTriggerBeaconMode {
+        off, //!< The DistanceMultiTrigger is not in <em>beacon-mode</em>.
+        identify, //!< The DistanceTrigger is in <em>identify-mode</em>.
+        exclude //!< The DistanceTrigger is in <em>exclude-mode</em>.
+    };
 
     /**
@@ -113,10 +110,10 @@
                 { return this->distance_; }
             
-            void setBeaconModeDirect(distanceMultiTriggerBeaconMode::Value mode); // Set the beacon mode.
+            void setBeaconModeDirect(DistanceMultiTriggerBeaconMode mode); // Set the beacon mode.
             /**
             @brief Get the beacon mode.
             @return Returns the mode as an enum.
             */
-            inline distanceMultiTriggerBeaconMode::Value getBeaconModeDirect(void) const
+            inline DistanceMultiTriggerBeaconMode getBeaconModeDirect(void) const
                 { return this->beaconMode_; }
             void setBeaconMode(const std::string& mode); // Set the beacon mode.
@@ -149,9 +146,9 @@
             float distance_; //!< The distance at which the DistanceMultiTrigger triggers.
 
-            distanceMultiTriggerBeaconMode::Value beaconMode_; //!< The beacon mode, the DistanceMultiTrigger is in.
+            DistanceMultiTriggerBeaconMode beaconMode_; //!< The beacon mode, the DistanceMultiTrigger is in.
             std::string targetName_; //!< The target name, used in <em>single-target</em> mode.
             ClassTreeMask beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
 
-            std::set<WeakPtr<WorldEntity> > range_; //!< The set of entities that currently are in range of the DistanceMultiTrigger.
+            std::set<WeakPtr<WorldEntity>> range_; //!< The set of entities that currently are in range of the DistanceMultiTrigger.
 
     };
Index: code/trunk/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceTrigger.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/DistanceTrigger.cc	(revision 11071)
@@ -106,5 +106,5 @@
             this->setForPlayer(true);
 
-        if (targetId == NULL)
+        if (targetId == nullptr)
         {
             orxout(internal_error, context::triggers) << "\"" << targetStr << "\" is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ')' << endl;
@@ -147,5 +147,5 @@
     {
         // Check whether there is a cached object, it still exists and whether it is still in range, if so nothing further needs to be done.
-        if(this->cache_ != NULL)
+        if(this->cache_ != nullptr)
         {
             if((this->cache_->getWorldPosition() - this->getWorldPosition()).length() < this->distance_)
@@ -158,5 +158,5 @@
         ClassTreeMask targetMask = this->targetMask_;
         // If we are in identify-mode another target mask has to be applies to find the DistanceTriggerBeacons.
-        if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
+        if(this->beaconMode_ == DistanceTriggerBeaconMode::identify)
             targetMask = this->beaconMask_;
 
@@ -167,5 +167,5 @@
 
             // If the DistanceTrigger is in identify-mode and the DistanceTriggerBeacon attached to the object has the wrong name we ignore it.
-            if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
+            if(this->beaconMode_ == DistanceTriggerBeaconMode::identify)
             {
                 if(entity->getName() != this->targetName_)
@@ -177,12 +177,12 @@
 
             // If the DistanceTrigger is in exclude mode and the DistanceTriggerBeacon attached to the object has the right name, we ignore it.
-            if(this->beaconMode_ == distanceTriggerBeaconMode::exclude)
+            if(this->beaconMode_ == DistanceTriggerBeaconMode::exclude)
             {
 
-                const std::set<WorldEntity*> attached = entity->getAttachedObjects();
+                const std::set<WorldEntity*> attachedObjects = entity->getAttachedObjects();
                 bool found = false;
-                for(std::set<WorldEntity*>::const_iterator it = attached.begin(); it != attached.end(); it++)
+                for(WorldEntity* attachedObject : attachedObjects)
                 {
-                    if((*it)->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(*it)->getName() == this->targetName_)
+                    if(attachedObject->isA(ClassIdentifier<DistanceTriggerBeacon>::getIdentifier()) && static_cast<DistanceTriggerBeacon*>(attachedObject)->getName() == this->targetName_)
                     {
                         found = true;
@@ -202,12 +202,12 @@
                 {
                     // Change the entity to the parent of the DistanceTriggerBeacon (if in identify-mode), which is the entity to which the beacon is attached.
-                    if(this->beaconMode_ == distanceTriggerBeaconMode::identify)
+                    if(this->beaconMode_ == DistanceTriggerBeaconMode::identify)
                         entity = entity->getParent();
 
                     Pawn* pawn = orxonox_cast<Pawn*>(entity);
-                    if(pawn != NULL)
+                    if(pawn != nullptr)
                         this->setTriggeringPawn(pawn);
                     else
-                        orxout(internal_warning, context::triggers) << "Pawn was NULL." << endl;
+                        orxout(internal_warning, context::triggers) << "Pawn was nullptr." << endl;
                 }
                 
@@ -228,5 +228,5 @@
         The mode as an enum.
     */
-    void DistanceTrigger::setBeaconModeDirect(distanceTriggerBeaconMode::Value mode)
+    void DistanceTrigger::setBeaconModeDirect(DistanceTriggerBeaconMode mode)
     {
         this->beaconMode_ = mode;
@@ -243,9 +243,9 @@
         switch(this->getBeaconModeDirect())
         {
-            case distanceTriggerBeaconMode::off :
+            case DistanceTriggerBeaconMode::off :
                 return DistanceTrigger::beaconModeOff_s;
-            case distanceTriggerBeaconMode::identify:
+            case DistanceTriggerBeaconMode::identify:
                 return DistanceTrigger::beaconModeIdentify_s;
-            case distanceTriggerBeaconMode::exclude:
+            case DistanceTriggerBeaconMode::exclude:
                 return DistanceTrigger::beaconModeExlcude_s;
             default :
@@ -264,9 +264,9 @@
     {
         if(mode == DistanceTrigger::beaconModeOff_s)
-            this->setBeaconModeDirect(distanceTriggerBeaconMode::off);
+            this->setBeaconModeDirect(DistanceTriggerBeaconMode::off);
         else if(mode == DistanceTrigger::beaconModeIdentify_s)
-            this->setBeaconModeDirect(distanceTriggerBeaconMode::identify);
+            this->setBeaconModeDirect(DistanceTriggerBeaconMode::identify);
         else if(mode == DistanceTrigger::beaconModeExlcude_s)
-            this->setBeaconModeDirect(distanceTriggerBeaconMode::exclude);
+            this->setBeaconModeDirect(DistanceTriggerBeaconMode::exclude);
         else
             orxout(internal_error, context::triggers) << "Invalid beacon mode in DistanceTrigger." << endl;
@@ -282,5 +282,5 @@
         Returns true if it is triggered ,false if not.
     */
-    bool DistanceTrigger::isTriggered(TriggerMode::Value mode)
+    bool DistanceTrigger::isTriggered(TriggerMode mode)
     {
         if (Trigger::isTriggered(mode))
Index: code/trunk/src/modules/objects/triggers/DistanceTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceTrigger.h	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/DistanceTrigger.h	(revision 11071)
@@ -55,12 +55,9 @@
   @ingroup NormalTrigger
   */
-  namespace distanceTriggerBeaconMode
-  {
-      enum Value {
-          off,
-          identify,
-          exclude
-      };
-  }
+  enum class DistanceTriggerBeaconMode {
+      off,
+      identify,
+      exclude
+  };
 
     /**
@@ -118,10 +115,10 @@
                 { return this->distance_; }
 
-            void setBeaconModeDirect(distanceTriggerBeaconMode::Value mode); // Set the beacon mode.
+            void setBeaconModeDirect(DistanceTriggerBeaconMode mode); // Set the beacon mode.
             /**
             @brief Get the beacon mode.
             @return Returns the mode as an enum.
             */
-            inline distanceTriggerBeaconMode::Value getBeaconModeDirect(void) const
+            inline DistanceTriggerBeaconMode getBeaconModeDirect(void) const
             { return this->beaconMode_; }
             void setBeaconMode(const std::string& mode); // Set the beacon mode.
@@ -144,5 +141,5 @@
 
         protected:
-            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the DistanceTrigger is triggered.
+            virtual bool isTriggered(TriggerMode mode) override; // Check whether the DistanceTrigger is triggered.
             /**
             @brief Notifies interested parties about a change of the DistanceTrigger's target mask.
@@ -160,5 +157,5 @@
             float distance_; //!< The range of the DistanceTrigger.
             
-            distanceTriggerBeaconMode::Value beaconMode_; //!< The beacon mode.
+            DistanceTriggerBeaconMode beaconMode_; //!< The beacon mode.
             std::string targetName_; //!< The name a DistanceTriggerBeacon needs to have to make the DistanceTrigger react to it if in beacon-mode.
             ClassTreeMask beaconMask_; //!< A mask, that only accepts DistanceTriggerBeacons.
Index: code/trunk/src/modules/objects/triggers/EventMultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/EventMultiTrigger.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/EventMultiTrigger.cc	(revision 11071)
@@ -96,5 +96,5 @@
     {
         // If the originator is a MultiTriggerContainer, the event originates from a MultiTrigger and thus the event only triggers the EventMultiTrigger for the originator that caused the MultiTrigger to trigger.
-        if(originator != NULL && originator->isA(ClassIdentifier<MultiTriggerContainer>::getIdentifier()))
+        if(originator != nullptr && originator->isA(ClassIdentifier<MultiTriggerContainer>::getIdentifier()))
         {
             MultiTriggerContainer* container = static_cast<MultiTriggerContainer*>(originator);
Index: code/trunk/src/modules/objects/triggers/EventTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/EventTrigger.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/EventTrigger.cc	(revision 11071)
@@ -79,5 +79,5 @@
         It should be triggered if it is triggered according just to its sub-triggers and if the last event that came in was an event that changed from not triggered to triggered.
     */
-    bool EventTrigger::isTriggered(TriggerMode::Value mode)
+    bool EventTrigger::isTriggered(TriggerMode mode)
     {
         if (Trigger::isTriggered(mode))
Index: code/trunk/src/modules/objects/triggers/EventTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/EventTrigger.h	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/EventTrigger.h	(revision 11071)
@@ -84,5 +84,5 @@
 
         protected:
-            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the EventTrigger should be triggered.
+            virtual bool isTriggered(TriggerMode mode) override; // Check whether the EventTrigger should be triggered.
 
         private:
Index: code/trunk/src/modules/objects/triggers/MultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTrigger.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/MultiTrigger.cc	(revision 11071)
@@ -124,13 +124,13 @@
         // Let the MultiTrigger return the states that trigger and process the new states if there are any.
         std::queue<MultiTriggerState*>* queue  = this->letTrigger();
-        if(queue != NULL)
+        if(queue != nullptr)
         {
             while(queue->size() > 0)
             {
                 MultiTriggerState* state = queue->front();
-                // If the state is NULL. (This really shouldn't happen)
-                if(state == NULL)
+                // If the state is nullptr. (This really shouldn't happen)
+                if(state == nullptr)
                 {
-                    orxout(internal_error, context::triggers) << "In MultiTrigger '" << this->getName() << "' (&" << this << "), Error: State of new states queue was NULL. State ignored." << endl;
+                    orxout(internal_error, context::triggers) << "In MultiTrigger '" << this->getName() << "' (&" << this << "), Error: State of new states queue was nullptr. State ignored." << endl;
                     queue->pop();
                     continue;
@@ -227,5 +227,5 @@
                             {
                                 // If the MultiTrigger is set to broadcast and has no originator a boradcast is fired.
-                                if(this->getBroadcast() && state->originator == NULL)
+                                if(this->getBroadcast() && state->originator == nullptr)
                                     this->broadcast(bActive);
                                 // Else a normal event is fired.
@@ -240,11 +240,11 @@
                         {
                             // Print some debug output if the state has changed.
-                            if(state->originator != NULL)
+                            if(state->originator != nullptr)
                                 orxout(verbose, context::triggers) << "MultiTrigger '" << this->getName() << "' (&" << this << ") changed state. originator: " << state->originator->getIdentifier()->getName() << " (&" << state->originator << "), active: " << bActive << ", triggered: " << state->bTriggered << "." << endl;
                             else
-                                orxout(verbose, context::triggers) << "MultiTrigger '" << this->getName() << "' (&" << this << ") changed state. originator: NULL, active: " << bActive << ", triggered: " << state->bTriggered << "." << endl;
+                                orxout(verbose, context::triggers) << "MultiTrigger '" << this->getName() << "' (&" << this << ") changed state. originator: nullptr, active: " << bActive << ", triggered: " << state->bTriggered << "." << endl;
 
                             // If the MultiTrigger has a parent trigger, that is itself a MultiTrigger, it needs to call a method to notify him, that its activity has changed.
-                            if(this->parent_ != NULL && this->parent_->isMultiTrigger())
+                            if(this->parent_ != nullptr && this->parent_->isMultiTrigger())
                                 static_cast<MultiTrigger*>(this->parent_)->childActivityChanged(state->originator);
                         }
@@ -265,5 +265,5 @@
                 else
                 {
-                    this->stateQueue_.push_back(std::pair<float, MultiTriggerState*>(timeRemaining-dt, state));
+                    this->stateQueue_.emplace_back(timeRemaining-dt, state);
                     this->stateQueue_.pop_front();
                 }
@@ -299,5 +299,5 @@
 
         // If the target is not a valid class name display an error.
-        if (target == NULL)
+        if (target == nullptr)
         {
             orxout(internal_error, context::triggers) << "'" << targetStr << "' is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ")" << endl;
@@ -327,5 +327,5 @@
 
         // If the target is not a valid class name display an error.
-        if (target == NULL)
+        if (target == nullptr)
         {
             orxout(internal_error, context::triggers) << "'" << targetStr << "' is not a valid class name to include in ClassTreeMask (in " << this->getName() << ", class " << this->getIdentifier()->getName() << ")" << endl;
@@ -346,5 +346,5 @@
     std::queue<MultiTriggerState*>* MultiTrigger::letTrigger(void)
     {
-        return NULL;
+        return nullptr;
     }
 
@@ -443,6 +443,6 @@
     void MultiTrigger::fire(bool status, BaseObject* originator)
     {
-        // If the originator is NULL, a normal event without MultiTriggerContainer is sent.
-        if(originator == NULL)
+        // If the originator is nullptr, a normal event without MultiTriggerContainer is sent.
+        if(originator == nullptr)
         {
             this->fireEvent(status);
@@ -479,5 +479,5 @@
     bool MultiTrigger::addState(MultiTriggerState* state)
     {
-        assert(state); // The state really shouldn't be NULL.
+        assert(state); // The state really shouldn't be nullptr.
 
         // If the originator is no target of this MultiTrigger.
@@ -489,5 +489,5 @@
 
         // Add it ot the state queue with the delay specified for the MultiTrigger.
-        this->stateQueue_.push_back(std::pair<float, MultiTriggerState*>(this->getDelay(), state));
+        this->stateQueue_.emplace_back(this->getDelay(), state);
 
         return true;
@@ -504,7 +504,6 @@
     bool MultiTrigger::checkAnd(BaseObject* triggerer)
     {
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(TriggerBase* trigger : this->children_)
+        {
             if(trigger->isMultiTrigger())
             {
@@ -531,7 +530,6 @@
     bool MultiTrigger::checkOr(BaseObject* triggerer)
     {
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(TriggerBase* trigger : this->children_)
+        {
             if(trigger->isMultiTrigger())
             {
@@ -559,7 +557,6 @@
     {
         bool triggered = false;
-        for(std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            TriggerBase* trigger = *it;
+        for(TriggerBase* trigger : this->children_)
+        {
             if(triggered)
             {
Index: code/trunk/src/modules/objects/triggers/MultiTrigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTrigger.h	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/MultiTrigger.h	(revision 11071)
@@ -76,5 +76,5 @@
         - @b simultaneousTriggerers The number of simultaneous triggerers limits the number of objects that are allowed to trigger the MultiTrigger at the same time. Or more precisely, the number of distinct objects the MultiTrigger has <em>triggered</em> states for, at each point in time. The default is <code>-1</code>, which denotes infinity.
         - @b mode The mode describes how the MultiTrigger acts in relation to all the triggers, that are appended to it. There are 3 modes: <em>and</em>, meaning that the MultiTrigger can only be triggered if all the appended triggers are active. <em>or</em>, meaning that the MultiTrigger can only triggered if at least one of the appended triggers is active. And <em>xor</em>, meaning that the MultiTrigger can only be triggered if one and only one appended trigger is active. Note, that I wrote <em>can only be active</em>, that implies, that there is an additional condition to the <em>activity</em> of the MultiTrigger and that is the fulfillment of the triggering condition (the MultiTrigger itself doesn't have one, but all derived classes should). Also bear in mind, that the <em>activity</em> of a MultiTrigger is still coupled to the object that triggered it. The default is <em>and</em>.
-        - @b broadcast Broadcast is a boolean, if true the MutliTrigger is in <em>broadcast-mode</em>, meaning, that all trigger events that are caused by no originator (originator is NULL) are broadcast as having come from every possible originator, or more precisely as having come from all objects that are specified targets of this MultiTrigger. The default is false.
+        - @b broadcast Broadcast is a boolean, if true the MutliTrigger is in <em>broadcast-mode</em>, meaning, that all trigger events that are caused by no originator (originator is nullptr) are broadcast as having come from every possible originator, or more precisely as having come from all objects that are specified targets of this MultiTrigger. The default is false.
         - @b target The target describes the kind of objects that are allowed to trigger this MultiTrigger. The default is @ref orxonox::Pawn "Pawn".
         - Also there is the possibility of appending triggers (as long as they inherit from TriggerBase) to the MultiTrigger just by adding them as children in the XML description of your MultiTrigger.
@@ -110,6 +110,6 @@
             */
             inline bool isActive(void) const
-                { return this->isActive(NULL); }
-            bool isActive(BaseObject* triggerer = NULL) const; //!< Check whether the MultiTrigger is active for a given object.
+                { return this->isActive(nullptr); }
+            bool isActive(BaseObject* triggerer = nullptr) const; //!< Check whether the MultiTrigger is active for a given object.
 
             /**
@@ -145,5 +145,5 @@
             */
             inline bool isTarget(BaseObject* target)
-                { if(target == NULL) return true; else return targetMask_.isIncluded(target->getIdentifier()); }
+                { if(target == nullptr) return true; else return targetMask_.isIncluded(target->getIdentifier()); }
                 
             void addTarget(const std::string& targets); //!< Add some target to the MultiTrigger.
@@ -152,10 +152,10 @@
             virtual std::queue<MultiTriggerState*>* letTrigger(void); //!< This method is called by the MultiTrigger to get information about new trigger events that need to be looked at.
 
-            void changeTriggered(BaseObject* originator = NULL); //!< This method can be called by any class inheriting from MultiTrigger to change it's triggered status for a specified originator.
-
-            bool isModeTriggered(BaseObject* triggerer = NULL); //!< Checks whether the MultiTrigger is triggered concerning it's children.
-            bool isTriggered(BaseObject* triggerer = NULL); //!< Get whether the MultiTrigger is triggered for a given object.
-
-            virtual void fire(bool status, BaseObject* originator = NULL);  //!< Helper method. Creates an Event for the given status and originator and fires it.
+            void changeTriggered(BaseObject* originator = nullptr); //!< This method can be called by any class inheriting from MultiTrigger to change it's triggered status for a specified originator.
+
+            bool isModeTriggered(BaseObject* triggerer = nullptr); //!< Checks whether the MultiTrigger is triggered concerning it's children.
+            bool isTriggered(BaseObject* triggerer = nullptr); //!< Get whether the MultiTrigger is triggered for a given object.
+
+            virtual void fire(bool status, BaseObject* originator = nullptr);  //!< Helper method. Creates an Event for the given status and originator and fires it.
             void broadcast(bool status); //!< Helper method. Broadcasts an Event for every object that is a target.
 
@@ -192,5 +192,5 @@
             std::set<BaseObject*> triggered_; //!< The set of all objects the MultiTrigger is triggered for.
 
-            std::deque< std::pair<float, MultiTriggerState*> > stateQueue_; //!< The queue of states waiting to become active.
+            std::deque<std::pair<float, MultiTriggerState*>> stateQueue_; //!< The queue of states waiting to become active.
 
             ClassTreeMask targetMask_; //!< The target mask, masking all objects that can trigger this MultiTrigger.
Index: code/trunk/src/modules/objects/triggers/MultiTriggerContainer.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTriggerContainer.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/MultiTriggerContainer.cc	(revision 11071)
@@ -50,5 +50,5 @@
         The creator.
     */
-    MultiTriggerContainer::MultiTriggerContainer(Context* context) : BaseObject(context), originator_(NULL), data_(NULL)
+    MultiTriggerContainer::MultiTriggerContainer(Context* context) : BaseObject(context), originator_(nullptr), data_(nullptr)
     {
         RegisterObject(MultiTriggerContainer);
@@ -70,5 +70,5 @@
 
         Pawn* pawn = orxonox_cast<Pawn*>(data);
-        if(pawn != NULL)
+        if(pawn != nullptr)
         {
             this->setForPlayer(true);
Index: code/trunk/src/modules/objects/triggers/Trigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/Trigger.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/Trigger.cc	(revision 11071)
@@ -37,5 +37,4 @@
 #include "core/CoreIncludes.h"
 #include "core/GameMode.h"
-#include "core/XMLPort.h"
 #include "core/command/ConsoleCommandIncludes.h"
 
@@ -86,13 +85,4 @@
     {
 
-    }
-
-    /**
-    @brief
-        Method for creating a Trigger object through XML.
-    */
-    void Trigger::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(Trigger, XMLPort, xmlelement, mode);
     }
 
@@ -203,5 +193,5 @@
         Returns true if the Trigger should be triggered and false if not.
     */
-    bool Trigger::isTriggered(TriggerMode::Value mode)
+    bool Trigger::isTriggered(TriggerMode mode)
     {
         // If the trigger has sub-triggers.
@@ -234,7 +224,7 @@
     {
         // Iterate over all sub-triggers.
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if (!(*it)->isActive())
+        for (TriggerBase* child : this->children_)
+        {
+            if (!child->isActive())
                 return false;
         }
@@ -252,7 +242,7 @@
     {
         // Iterate over all sub-triggers.
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if ((*it)->isActive())
+        for (TriggerBase* child : this->children_)
+        {
+            if (child->isActive())
                 return true;
         }
@@ -270,9 +260,9 @@
     {
         bool test = false;
-        for (std::set<TriggerBase*>::iterator it = this->children_.begin(); it != this->children_.end(); ++it)
-        {
-            if (test && (*it)->isActive())
+        for (TriggerBase* child : this->children_)
+        {
+            if (test && child->isActive())
                 return false;
-            if ((*it)->isActive())
+            if (child->isActive())
                 test = true;
         }
@@ -346,6 +336,6 @@
     {
         // Iterate over all Triggers.
-        for (ObjectList<Trigger>::iterator it = ObjectList<Trigger>::begin(); it != ObjectList<Trigger>::end(); ++it)
-            it->setVisible(bVisible);
+        for (Trigger* trigger : ObjectList<Trigger>())
+            trigger->setVisible(bVisible);
     }
 
Index: code/trunk/src/modules/objects/triggers/Trigger.h
===================================================================
--- code/trunk/src/modules/objects/triggers/Trigger.h	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/Trigger.h	(revision 11071)
@@ -83,5 +83,4 @@
             virtual ~Trigger();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); // Method for creating a Trigger object through XML.
             virtual void tick(float dt);
 
@@ -105,5 +104,5 @@
             inline bool isTriggered()
                 { return this->isTriggered(this->mode_); }
-            virtual bool isTriggered(TriggerMode::Value mode); // Check whether the Trigger should be triggered, given only its sub-triggers, given a specific mode.
+            virtual bool isTriggered(TriggerMode mode); // Check whether the Trigger should be triggered, given only its sub-triggers, given a specific mode.
             virtual void triggered(bool bIsTriggered); // Fires an event with the input triggered state.
 
@@ -127,5 +126,5 @@
             BillboardSet debugBillboard_; //!< A set of debug billboards to visualize the state of the trigger.
 
-            std::queue<std::pair<float, char> > stateChanges_; //!< A queue of state changes (in the same format as latestState_) paired with the time they will take effect since the last state change took effect.
+            std::queue<std::pair<float, char>> stateChanges_; //!< A queue of state changes (in the same format as latestState_) paired with the time they will take effect since the last state change took effect.
     };
 
Index: code/trunk/src/modules/objects/triggers/TriggerBase.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/TriggerBase.cc	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/TriggerBase.cc	(revision 11071)
@@ -67,5 +67,5 @@
         this->mode_ = TriggerMode::EventTriggerAND;
 
-        this->parent_ = NULL;
+        this->parent_ = nullptr;
 
         this->bMultiTrigger_ = false;
@@ -100,15 +100,4 @@
 
         XMLPortObject(TriggerBase, TriggerBase, "", addTrigger, getTrigger, xmlelement, mode);
-    }
-
-    /**
-    @brief
-        A method that is executed each tick.
-    @param dt
-        The duration of the last tick.
-    */
-    void TriggerBase::tick(float dt)
-    {
-        SUPER(TriggerBase, tick, dt);
     }
 
@@ -170,5 +159,5 @@
         The index.
     @return
-        Returns a pointer ot the trigger. NULL if no such trigger exists.
+        Returns a pointer ot the trigger. nullptr if no such trigger exists.
     */
     const TriggerBase* TriggerBase::getTrigger(unsigned int index) const
@@ -176,5 +165,5 @@
         // If the index is greater than the number of children.
         if (this->children_.size() <= index)
-            return NULL;
+            return nullptr;
 
         std::set<TriggerBase*>::const_iterator it;
Index: code/trunk/src/modules/objects/triggers/TriggerBase.h
===================================================================
--- code/trunk/src/modules/objects/triggers/TriggerBase.h	(revision 11056)
+++ code/trunk/src/modules/objects/triggers/TriggerBase.h	(revision 11071)
@@ -52,13 +52,10 @@
     @ingroup Triggers
     */
-    namespace TriggerMode
+    enum class TriggerMode
     {
-        enum Value
-        {
-            EventTriggerAND, //!< The <em>and</em> mode. The trigger can only trigger if all the children are active. 
-            EventTriggerOR, //!< The <em>or</em> mode. The trigger can only trigger if at least one child is active.
-            EventTriggerXOR, //!< The <em>xor</em> mode. The trigger can only trigger if exactly one child is active. 
-        };
-    }
+        EventTriggerAND, //!< The <em>and</em> mode. The trigger can only trigger if all the children are active.
+        EventTriggerOR, //!< The <em>or</em> mode. The trigger can only trigger if at least one child is active.
+        EventTriggerXOR, //!< The <em>xor</em> mode. The trigger can only trigger if exactly one child is active.
+    };
 
     /**
@@ -78,5 +75,4 @@
 
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);  //!< Method for creating a TriggerBase object through XML.
-            virtual void tick(float dt); //!< A method that is executed each tick.
 
             /**
@@ -158,5 +154,5 @@
             @param mode The mode of the trigger.
             */
-            inline void setMode(TriggerMode::Value mode) //!< Get the mode of the trigger.
+            inline void setMode(TriggerMode mode) //!< Get the mode of the trigger.
                 { this->mode_ = mode; }
             const std::string& getModeString(void) const;
@@ -165,5 +161,5 @@
             @return Returns and Enum for the mode of the trigger.
             */
-            inline TriggerMode::Value getMode(void) const
+            inline TriggerMode getMode(void) const
                 { return mode_; }
 
@@ -211,5 +207,5 @@
 
             bool bInvertMode_; //!< Bool for the invert-mode, if true the trigger is inverted.
-            TriggerMode::Value mode_; //!< The mode of the trigger.
+            TriggerMode mode_; //!< The mode of the trigger.
 
             TriggerBase* parent_; //!< The parent of this trigger.
Index: code/trunk/src/modules/overlays/FadeoutText.h
===================================================================
--- code/trunk/src/modules/overlays/FadeoutText.h	(revision 11056)
+++ code/trunk/src/modules/overlays/FadeoutText.h	(revision 11071)
@@ -44,6 +44,6 @@
             virtual ~FadeoutText() {}
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
 
             inline void setDelay(float delay)
@@ -58,6 +58,6 @@
 
         private:
-            virtual void changedColour();
-            virtual void changedCaption();
+            virtual void changedColour() override;
+            virtual void changedCaption() override;
 
             void fadeout();
Index: code/trunk/src/modules/overlays/GUIOverlay.cc
===================================================================
--- code/trunk/src/modules/overlays/GUIOverlay.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/GUIOverlay.cc	(revision 11071)
@@ -92,5 +92,5 @@
             ControllableEntity* entity = orxonox_cast<ControllableEntity*>(this->getOwner());
             if (entity)
-                GUIManager::getInstance().setPlayer(name, entity->getPlayer()); //Set Player is going to be NULL, so it needs to be set in changedVisibility() as well.
+                GUIManager::getInstance().setPlayer(name, entity->getPlayer()); //Set Player is going to be nullptr, so it needs to be set in changedVisibility() as well.
         }
     }
Index: code/trunk/src/modules/overlays/GUIOverlay.h
===================================================================
--- code/trunk/src/modules/overlays/GUIOverlay.h	(revision 11056)
+++ code/trunk/src/modules/overlays/GUIOverlay.h	(revision 11071)
@@ -44,11 +44,11 @@
             virtual ~GUIOverlay();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             void setGUIName(const std::string& name);
             inline const std::string& getGUIName() const { return this->guiName_; }
 
-            virtual void changedVisibility();
-            virtual void changedOwner();
+            virtual void changedVisibility() override;
+            virtual void changedOwner() override;
 
         private:
Index: code/trunk/src/modules/overlays/OverlayText.cc
===================================================================
--- code/trunk/src/modules/overlays/OverlayText.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/OverlayText.cc	(revision 11071)
@@ -32,5 +32,4 @@
 #include <OgrePanelOverlayElement.h>
 #include <OgreTextAreaOverlayElement.h>
-#include <boost/static_assert.hpp>
 
 #include "util/StringUtils.h"
@@ -43,7 +42,7 @@
     RegisterClass(OverlayText);
 
-    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Left   == (int)OverlayText::Left);
-    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Center == (int)OverlayText::Center);
-    BOOST_STATIC_ASSERT((int)Ogre::TextAreaOverlayElement::Right  == (int)OverlayText::Right);
+    static_assert((int)Ogre::TextAreaOverlayElement::Left   == (int)OverlayText::Alignment::Left,   "check enum");
+    static_assert((int)Ogre::TextAreaOverlayElement::Center == (int)OverlayText::Alignment::Center, "check enum");
+    static_assert((int)Ogre::TextAreaOverlayElement::Right  == (int)OverlayText::Alignment::Right,  "check enum");
 
     OverlayText::OverlayText(Context* context)
@@ -86,9 +85,9 @@
     {
         if (alignment == "right")
-            this->setAlignment(OverlayText::Right);
+            this->setAlignment(OverlayText::Alignment::Right);
         else if (alignment == "center")
-            this->setAlignment(OverlayText::Center);
+            this->setAlignment(OverlayText::Alignment::Center);
         else // "left" and default
-            this->setAlignment(OverlayText::Left);
+            this->setAlignment(OverlayText::Alignment::Left);
     }
 
@@ -112,7 +111,7 @@
     void OverlayText::sizeChanged()
     {
-        if (this->rotState_ == Horizontal)
+        if (this->rotState_ == RotationState::Horizontal)
             this->overlay_->setScale(size_.y * sizeCorrection_.y, size_.y * sizeCorrection_.y);
-        else if (this->rotState_ == Vertical)
+        else if (this->rotState_ == RotationState::Vertical)
             this->overlay_->setScale(size_.y / (sizeCorrection_.y * sizeCorrection_.y), size_.y * sizeCorrection_.y);
         else
Index: code/trunk/src/modules/overlays/OverlayText.h
===================================================================
--- code/trunk/src/modules/overlays/OverlayText.h	(revision 11056)
+++ code/trunk/src/modules/overlays/OverlayText.h	(revision 11071)
@@ -42,5 +42,5 @@
     {
     public:
-        enum Alignment
+        enum class Alignment
         {
             Left,
@@ -52,5 +52,5 @@
         virtual ~OverlayText();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
         void setCaption(const std::string& caption);
@@ -76,5 +76,5 @@
 
     protected:
-        virtual void sizeChanged();
+        virtual void sizeChanged() override;
         virtual void changedColour() {}
         virtual void changedCaption() {}
Index: code/trunk/src/modules/overlays/debugging/DebugFPSText.h
===================================================================
--- code/trunk/src/modules/overlays/debugging/DebugFPSText.h	(revision 11056)
+++ code/trunk/src/modules/overlays/debugging/DebugFPSText.h	(revision 11071)
@@ -43,5 +43,5 @@
         virtual ~DebugFPSText();
 
-        virtual void tick(float dt);
+        virtual void tick(float dt) override;
     };
 }
Index: code/trunk/src/modules/overlays/debugging/DebugPositionText.cc
===================================================================
--- code/trunk/src/modules/overlays/debugging/DebugPositionText.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/debugging/DebugPositionText.cc	(revision 11071)
@@ -52,5 +52,5 @@
         SUPER(DebugPositionText, tick, dt);
         
-        ObjectList<NewHumanController>::iterator it = ObjectList<NewHumanController>::begin();
+        ObjectList<NewHumanController>::iterator it = ObjectList<NewHumanController>().begin();
         if (it && it->getControllableEntity() )
         {
Index: code/trunk/src/modules/overlays/debugging/DebugPositionText.h
===================================================================
--- code/trunk/src/modules/overlays/debugging/DebugPositionText.h	(revision 11056)
+++ code/trunk/src/modules/overlays/debugging/DebugPositionText.h	(revision 11071)
@@ -43,5 +43,5 @@
         virtual ~DebugPositionText();
 
-        virtual void tick(float dt);
+        virtual void tick(float dt) override;
     };
 }
Index: code/trunk/src/modules/overlays/debugging/DebugRTRText.h
===================================================================
--- code/trunk/src/modules/overlays/debugging/DebugRTRText.h	(revision 11056)
+++ code/trunk/src/modules/overlays/debugging/DebugRTRText.h	(revision 11071)
@@ -43,5 +43,5 @@
         virtual ~DebugRTRText();
 
-        virtual void tick(float dt);
+        virtual void tick(float dt) override;
     };
 }
Index: code/trunk/src/modules/overlays/hud/AnnounceMessage.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/AnnounceMessage.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/AnnounceMessage.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(AnnounceMessage);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
 
         this->setDelay(3.0f);
Index: code/trunk/src/modules/overlays/hud/AnnounceMessage.h
===================================================================
--- code/trunk/src/modules/overlays/hud/AnnounceMessage.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/AnnounceMessage.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~AnnounceMessage() {}
 
-            virtual void changedOwner();
+            virtual void changedOwner() override;
 
-            void announcemessage(const GametypeInfo* gtinfo, const std::string& message);
+            virtual void announcemessage(const GametypeInfo* gtinfo, const std::string& message) override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/ChatOverlay.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/ChatOverlay.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/ChatOverlay.cc	(revision 11071)
@@ -58,6 +58,6 @@
     ChatOverlay::~ChatOverlay()
     {
-        for (std::set<Timer*>::iterator it = this->timers_.begin(); it != this->timers_.end(); ++it)
-            delete (*it);
+        for (Timer* timer : this->timers_)
+            delete timer;
     }
 
@@ -92,7 +92,7 @@
         this->text_->setCaption("");
 
-        for (std::list<Ogre::DisplayString>::iterator it = this->messages_.begin(); it != this->messages_.end(); ++it)
+        for (const Ogre::DisplayString& message : this->messages_)
         {
-            this->text_->setCaption(this->text_->getCaption() + "\n" + (*it));
+            this->text_->setCaption(this->text_->getCaption() + "\n" + message);
         }
     }
Index: code/trunk/src/modules/overlays/hud/ChatOverlay.h
===================================================================
--- code/trunk/src/modules/overlays/hud/ChatOverlay.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/ChatOverlay.h	(revision 11071)
@@ -49,5 +49,5 @@
 
         protected:
-            virtual void incomingChat(const std::string& message, const std::string& name);
+            virtual void incomingChat(const std::string& message, const std::string& name) override;
 
             std::list<Ogre::DisplayString> messages_;
Index: code/trunk/src/modules/overlays/hud/CountDown.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/CountDown.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/CountDown.cc	(revision 11071)
@@ -71,5 +71,5 @@
         RegisterObject(CountDown);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
         this->hasStopped_ = false;
     }
Index: code/trunk/src/modules/overlays/hud/CountDown.h
===================================================================
--- code/trunk/src/modules/overlays/hud/CountDown.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/CountDown.h	(revision 11071)
@@ -44,7 +44,7 @@
             virtual ~CountDown();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
-            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
+            virtual void tick(float dt) override;
 
             inline void setCounter(float value)
Index: code/trunk/src/modules/overlays/hud/DeathMessage.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/DeathMessage.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/DeathMessage.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(DeathMessage);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
 
         this->setDelay(2.0f);
Index: code/trunk/src/modules/overlays/hud/DeathMessage.h
===================================================================
--- code/trunk/src/modules/overlays/hud/DeathMessage.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/DeathMessage.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~DeathMessage() {}
 
-            virtual void changedOwner();
+            virtual void changedOwner() override;
 
-            void deathmessage(const GametypeInfo* gtinfo, const std::string& message);
+            virtual void deathmessage(const GametypeInfo* gtinfo, const std::string& message) override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/GametypeFadingMessage.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/GametypeFadingMessage.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/GametypeFadingMessage.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(GametypeFadingMessage);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
         this->setDelay(2.0f);
         this->setFadeouttime(0.5f);
Index: code/trunk/src/modules/overlays/hud/GametypeFadingMessage.h
===================================================================
--- code/trunk/src/modules/overlays/hud/GametypeFadingMessage.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/GametypeFadingMessage.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~GametypeFadingMessage();
 
-            virtual void changedOwner();
+            virtual void changedOwner() override;
 
-            void fadingmessage(const GametypeInfo* gtinfo, const std::string& message);
+            virtual void fadingmessage(const GametypeInfo* gtinfo, const std::string& message) override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/GametypeStaticMessage.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/GametypeStaticMessage.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/GametypeStaticMessage.cc	(revision 11071)
@@ -42,5 +42,5 @@
     {
         RegisterObject(GametypeStaticMessage);
-        this->owner_ = 0;
+        this->owner_ = nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/GametypeStaticMessage.h
===================================================================
--- code/trunk/src/modules/overlays/hud/GametypeStaticMessage.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/GametypeStaticMessage.h	(revision 11071)
@@ -46,7 +46,7 @@
             virtual ~GametypeStaticMessage();
 
-            virtual void changedOwner();
+            virtual void changedOwner() override;
 
-            void staticmessage(const GametypeInfo* gtinfo, const std::string& message, const ColourValue& colour);
+            virtual void staticmessage(const GametypeInfo* gtinfo, const std::string& message, const ColourValue& colour) override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/HUDBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDBar.cc	(revision 11071)
@@ -219,5 +219,5 @@
             return barColours_[index];
         else
-            return 0;
+            return nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDBar.h	(revision 11071)
@@ -52,5 +52,5 @@
         virtual ~BarColour() { }
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);     
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
         void setColour(const ColourValue& colour) { this->colour_ = colour; }
@@ -72,5 +72,5 @@
         virtual ~HUDBar();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
         void clearColours();
Index: code/trunk/src/modules/overlays/hud/HUDBoostBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDBoostBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDBoostBar.cc	(revision 11071)
@@ -42,5 +42,5 @@
         RegisterObject(HUDBoostBar);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
         this->flashInterval_ = 0.25f;
         this->flashDt_ = 0.0f;
Index: code/trunk/src/modules/overlays/hud/HUDBoostBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDBoostBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDBoostBar.h	(revision 11071)
@@ -43,6 +43,6 @@
         virtual ~HUDBoostBar();
 
-        virtual void tick(float dt);
-        virtual void changedOwner();
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
 
     private:
Index: code/trunk/src/modules/overlays/hud/HUDEnemyHealthBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDEnemyHealthBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDEnemyHealthBar.cc	(revision 11071)
@@ -30,4 +30,5 @@
 
 #include "core/config/ConfigValueIncludes.h"
+#include "core/CoreIncludes.h"
 #include "worldentities/pawns/Pawn.h"
 
@@ -41,5 +42,5 @@
 
         this->setConfigValues();
-        this->owner_ = 0;
+        this->owner_ = nullptr;
     }
 
@@ -62,5 +63,5 @@
     void HUDEnemyHealthBar::updateTarget()
     {
-        Pawn* pawn = NULL;
+        Pawn* pawn = nullptr;
         if (this->owner_ && this->useEnemyBar_)
         {
@@ -73,9 +74,9 @@
             // Don't show the HealthBar if the pawn is invisible
             if (pawn && !pawn->isVisible())
-                pawn = NULL;
+                pawn = nullptr;
         }
         // Set the pawn as owner of the HealthBar
         this->setHealthBarOwner(pawn);
-        this->setVisible(pawn != NULL);
+        this->setVisible(pawn != nullptr);
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDEnemyHealthBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDEnemyHealthBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDEnemyHealthBar.h	(revision 11071)
@@ -41,7 +41,7 @@
 
             void setConfigValues();
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            void changedOwner();
+            virtual void changedOwner() override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/HUDEnemyShieldBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDEnemyShieldBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDEnemyShieldBar.cc	(revision 11071)
@@ -41,5 +41,5 @@
 
         this->setConfigValues();
-        this->owner_ = NULL;
+        this->owner_ = nullptr;
     }
 
@@ -62,5 +62,5 @@
     void HUDEnemyShieldBar::updateTarget()
     {
-        Pawn* pawn = NULL;
+        Pawn* pawn = nullptr;
         if (this->owner_ && this->useEnemyBar_)
         {
@@ -73,9 +73,9 @@
             // Don't show the EnemyShieldBar if the pawn is invisible
             if (pawn && !pawn->isVisible())
-                pawn = NULL;
+                pawn = nullptr;
         }
         // Set the pawn as owner of the EnemyShieldBar
         this->setShieldBarOwner(pawn);
-        this->setVisible(pawn != NULL);
+        this->setVisible(pawn != nullptr);
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDEnemyShieldBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDEnemyShieldBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDEnemyShieldBar.h	(revision 11071)
@@ -45,7 +45,7 @@
 
             void setConfigValues();
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            void changedOwner();
+            virtual void changedOwner() override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/HUDHealthBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDHealthBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDHealthBar.cc	(revision 11071)
@@ -43,5 +43,5 @@
         RegisterObject(HUDHealthBar);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
         this->bUseBarColour_ = false;
         this->textOffset_ = Vector2(0.0f, 0.0f);
@@ -66,5 +66,5 @@
         {
             this->textoverlay_->destroy();
-            this->textoverlay_ = NULL;
+            this->textoverlay_ = nullptr;
         }
     }
Index: code/trunk/src/modules/overlays/hud/HUDHealthBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDHealthBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDHealthBar.h	(revision 11071)
@@ -45,10 +45,10 @@
             virtual ~HUDHealthBar();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
-            virtual void changedOwner();
-            virtual void changedOverlayGroup();
-            virtual void changedVisibility();
-            virtual void changedName();
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
+            virtual void changedOwner() override;
+            virtual void changedOverlayGroup() override;
+            virtual void changedVisibility() override;
+            virtual void changedName() override;
 
             inline void setTextFont(const std::string& font)
@@ -112,8 +112,8 @@
                 { this->owner_ = owner; }
         protected:
-            virtual void positionChanged();
-            virtual void sizeChanged();
+            virtual void positionChanged() override;
+            virtual void sizeChanged() override;
         private:
-            virtual void positionText();
+            void positionText();
             WeakPtr<Pawn> owner_;
             StrongPtr<OverlayText> textoverlay_;
Index: code/trunk/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDNavigation.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDNavigation.cc	(revision 11071)
@@ -53,5 +53,4 @@
 #include "core/config/ConfigValueIncludes.h"
 #include "tools/TextureGenerator.h"
-// #include <boost/bind/bind_template.hpp>
 
 
@@ -69,5 +68,5 @@
     RegisterClass ( HUDNavigation );
 
-    HUDNavigation* HUDNavigation::localHUD_s = 0;
+    HUDNavigation* HUDNavigation::localHUD_s = nullptr;
 
     HUDNavigation::HUDNavigation(Context* context) :
@@ -132,8 +131,8 @@
         }
         this->fontName_ = font;
-        for (std::map<RadarViewable*, ObjectInfo>::iterator it = this->activeObjectList_.begin(); it != this->activeObjectList_.end(); ++it)
-        {
-            if (it->second.text_ != NULL)
-                it->second.text_->setFontName(this->fontName_);
+        for (const auto& mapEntry : this->activeObjectList_)
+        {
+            if (mapEntry.second.text_ != nullptr)
+                mapEntry.second.text_->setFontName(this->fontName_);
         }
     }
@@ -152,8 +151,8 @@
         }
         this->textSize_ = size;
-        for (std::map<RadarViewable*, ObjectInfo>::iterator it = this->activeObjectList_.begin(); it!=this->activeObjectList_.end(); ++it)
-        {
-            if (it->second.text_)
-                it->second.text_->setCharHeight(size);
+        for (const auto& mapEntry : this->activeObjectList_)
+        {
+            if (mapEntry.second.text_)
+                mapEntry.second.text_->setCharHeight(size);
         }
     }
@@ -183,10 +182,10 @@
 
         Camera* cam = CameraManager::getInstance().getActiveCamera();
-        if (cam == NULL)
+        if (cam == nullptr)
         return;
         const Matrix4& camTransform = cam->getOgreCamera()->getProjectionMatrix() * cam->getOgreCamera()->getViewMatrix();
 
-        for (std::list<std::pair<RadarViewable*, unsigned int> >::iterator listIt = this->sortedObjectList_.begin(); listIt != this->sortedObjectList_.end(); ++listIt)
-        listIt->second = (int)((listIt->first->getRVWorldPosition() - HumanController::getLocalControllerSingleton()->getControllableEntity()->getWorldPosition()).length() + 0.5f);
+        for (std::pair<RadarViewable*, unsigned int>& pair : this->sortedObjectList_)
+        pair.second = (int)((pair.first->getRVWorldPosition() - HumanController::getLocalControllerSingleton()->getControllableEntity()->getWorldPosition()).length() + 0.5f);
 
         this->sortedObjectList_.sort(compareDistance);
@@ -209,5 +208,5 @@
         bool nextHasToBeSelected = false;
 
-        for (std::list<std::pair<RadarViewable*, unsigned int> >::iterator listIt = this->sortedObjectList_.begin(); listIt != this->sortedObjectList_.end(); ++markerCount, ++listIt)
+        for (std::list<std::pair<RadarViewable*, unsigned int>>::iterator listIt = this->sortedObjectList_.begin(); listIt != this->sortedObjectList_.end(); ++markerCount, ++listIt)
         {
 
@@ -469,7 +468,7 @@
                     if(!it->second.selected_
                             || it->first->getRVVelocity().squaredLength() == 0
-                            || pawn == NULL
+                            || pawn == nullptr
                             /* TODO : improve getTeam in such a way that it works
-                             * || humanPawn == NULL
+                             * || humanPawn == nullptr
                              * || pawn->getTeam() == humanPawn->getTeam()*/)
                     {
@@ -525,16 +524,16 @@
         float yScale = this->getActualSize().y;
 
-        for (std::map<RadarViewable*, ObjectInfo>::iterator it = this->activeObjectList_.begin(); it != this->activeObjectList_.end(); ++it)
-        {
-            if (it->second.health_ != NULL)
-                it->second.health_->setDimensions(this->healthMarkerSize_ * xScale, this->healthMarkerSize_ * yScale);
-            if (it->second.healthLevel_ != NULL)
-                it->second.healthLevel_->setDimensions(this->healthLevelMarkerSize_ * xScale, this->healthLevelMarkerSize_ * yScale);
-            if (it->second.panel_ != NULL)
-                it->second.panel_->setDimensions(this->navMarkerSize_ * xScale, this->navMarkerSize_ * yScale);
-            if (it->second.text_ != NULL)
-                it->second.text_->setCharHeight(this->textSize_ * yScale);
-            if (it->second.target_ != NULL)
-                it->second.target_->setDimensions(this->aimMarkerSize_ * xScale, this->aimMarkerSize_ * yScale);
+        for (const auto& mapEntry : this->activeObjectList_)
+        {
+            if (mapEntry.second.health_ != nullptr)
+                mapEntry.second.health_->setDimensions(this->healthMarkerSize_ * xScale, this->healthMarkerSize_ * yScale);
+            if (mapEntry.second.healthLevel_ != nullptr)
+                mapEntry.second.healthLevel_->setDimensions(this->healthLevelMarkerSize_ * xScale, this->healthLevelMarkerSize_ * yScale);
+            if (mapEntry.second.panel_ != nullptr)
+                mapEntry.second.panel_->setDimensions(this->navMarkerSize_ * xScale, this->navMarkerSize_ * yScale);
+            if (mapEntry.second.text_ != nullptr)
+                mapEntry.second.text_->setCharHeight(this->textSize_ * yScale);
+            if (mapEntry.second.target_ != nullptr)
+                mapEntry.second.target_->setDimensions(this->aimMarkerSize_ * xScale, this->aimMarkerSize_ * yScale);
         }
     }
@@ -546,5 +545,5 @@
 
         if (this->activeObjectList_.size() >= this->markerLimit_)
-        if (object == NULL)
+        if (object == nullptr)
         return;
 
@@ -634,5 +633,5 @@
         }
 
-        for (std::list<std::pair<RadarViewable*, unsigned int> >::iterator listIt = this->sortedObjectList_.begin(); listIt != this->sortedObjectList_.end(); ++listIt)
+        for (std::list<std::pair<RadarViewable*, unsigned int>>::iterator listIt = this->sortedObjectList_.begin(); listIt != this->sortedObjectList_.end(); ++listIt)
         {
             if ((listIt->first) == viewable)
@@ -664,8 +663,8 @@
     {
         const std::set<RadarViewable*>& respawnObjects = this->getOwner()->getScene()->getRadar()->getRadarObjects();
-        for (std::set<RadarViewable*>::const_iterator it = respawnObjects.begin(); it != respawnObjects.end(); ++it)
-        {
-            if (!(*it)->isHumanShip_)
-            this->addObject(*it);
+        for (RadarViewable* respawnObject : respawnObjects)
+        {
+            if (!respawnObject->isHumanShip_)
+            this->addObject(respawnObject);
         }
     }
Index: code/trunk/src/modules/overlays/hud/HUDNavigation.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDNavigation.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDNavigation.h	(revision 11071)
@@ -51,19 +51,19 @@
             void setConfigValues();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void tick(float dt);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void tick(float dt) override;
 
             // RadarListener interface
-            virtual void addObject(RadarViewable* object);
-            virtual void removeObject(RadarViewable* viewable);
-            virtual void objectChanged(RadarViewable* viewable);
+            virtual void addObject(RadarViewable* object) override;
+            virtual void removeObject(RadarViewable* viewable) override;
+            virtual void objectChanged(RadarViewable* viewable) override;
 
-            virtual void changedOwner();
-            virtual void sizeChanged();
-            virtual void angleChanged() { }
-            virtual void positionChanged() { }
-            virtual void radarTick(float dt) {}
+            virtual void changedOwner() override;
+            virtual void sizeChanged() override;
+            virtual void angleChanged() override { }
+            virtual void positionChanged() override { }
+            virtual void radarTick(float dt) override {}
 
-            inline float getRadarSensitivity() const
+            virtual inline float getRadarSensitivity() const override
                 { return 1.0f; }
 
@@ -141,5 +141,5 @@
 
             std::map<RadarViewable*, ObjectInfo> activeObjectList_;
-            std::list<std::pair<RadarViewable*, unsigned int> > sortedObjectList_;
+            std::list<std::pair<RadarViewable*, unsigned int>> sortedObjectList_;
 
             float healthMarkerSize_;
Index: code/trunk/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRadar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDRadar.cc	(revision 11071)
@@ -65,8 +65,8 @@
         this->setMaximumDotSize3D(0.07f);
 
-        this->shapeMaterials_[RadarViewable::Dot]      = "RadarDot.png";
-        this->shapeMaterials_[RadarViewable::Triangle] = "RadarTriangle.png";
-        this->shapeMaterials_[RadarViewable::Square]   = "RadarSquare.png";
-        this->owner_ = 0;
+        this->shapeMaterials_[RadarViewable::Shape::Dot]      = "RadarDot.png";
+        this->shapeMaterials_[RadarViewable::Shape::Triangle] = "RadarTriangle.png";
+        this->shapeMaterials_[RadarViewable::Shape::Square]   = "RadarSquare.png";
+        this->owner_ = nullptr;
 
         this->map3DFront_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
@@ -92,8 +92,7 @@
             Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->map3DBack_);
 
-            for (std::map<RadarViewable*,Ogre::PanelOverlayElement*>::iterator it = this->radarObjects_.begin();
-                it != this->radarObjects_.end(); ++it)
-            {
-                Ogre::OverlayManager::getSingleton().destroyOverlayElement(it->second);
+            for (const auto& mapEntry : this->radarObjects_)
+            {
+                Ogre::OverlayManager::getSingleton().destroyOverlayElement(mapEntry.second);
             }
         }
@@ -166,7 +165,6 @@
     {
         const std::set<RadarViewable*>& objectSet = this->getCreator()->getScene()->getRadar()->getRadarObjects();
-        std::set<RadarViewable*>::const_iterator it;
-        for( it=objectSet.begin(); it!=objectSet.end(); ++it )
-            this->addObject(*it);
+        for( RadarViewable* viewable : objectSet )
+            this->addObject(viewable);
         this->radarTick(0);
     }
@@ -184,6 +182,4 @@
 
         // update the distances for all objects
-        std::map<RadarViewable*,Ogre::PanelOverlayElement*>::iterator it;
-
 
         if(RadarMode_)
@@ -202,8 +198,8 @@
         }
 
-        for( it = this->radarObjects_.begin(); it != this->radarObjects_.end(); ++it )
+        for( const auto& mapEntry : this->radarObjects_ )
         {
             // Make sure the object really is a WorldEntity
-            const WorldEntity* wePointer = it->first->getWorldEntity();
+            const WorldEntity* wePointer = mapEntry.first->getWorldEntity();
             if( !wePointer )
             {
@@ -211,5 +207,5 @@
                 assert(0);
             }
-            bool isFocus = (it->first == focusObject);
+            bool isFocus = (mapEntry.first == focusObject);
             // set size to fit distance...
             float distance = (wePointer->getWorldPosition() - this->owner_->getPosition()).length();
@@ -218,8 +214,8 @@
             float size;
             if(RadarMode_)
-                size = maximumDotSize3D_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
+                size = maximumDotSize3D_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * mapEntry.first->getRadarObjectScale();
             else
-                size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * it->first->getRadarObjectScale();
-            it->second->setDimensions(size, size);
+                size = maximumDotSize_ * halfDotSizeDistance_ / (halfDotSizeDistance_ + distance) * mapEntry.first->getRadarObjectScale();
+            mapEntry.second->setDimensions(size, size);
 
             // calc position on radar...
@@ -235,7 +231,7 @@
                 int zOrder = determineMap3DZOrder(this->owner_->getPosition(), this->owner_->getOrientation() * WorldEntity::FRONT, this->owner_->getOrientation() * WorldEntity::UP, wePointer->getWorldPosition(), detectionLimit_);
                 if(overXZPlain == false /*&& (it->second->getZOrder() >  100 * this->overlay_->getZOrder())*/) // it appears that zOrder of attached Overlayelements is 100 times the zOrder of the Overlay
-                    it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 - 70 + zOrder);
+                    mapEntry.second->_notifyZOrder(this->overlay_->getZOrder() * 100 - 70 + zOrder);
                 if(overXZPlain == true /*&& (it->second->getZOrder() <= 100 * this->overlay_->getZOrder())*/)
-                    it->second->_notifyZOrder(this->overlay_->getZOrder() * 100 + 70 + zOrder);
+                    mapEntry.second->_notifyZOrder(this->overlay_->getZOrder() * 100 + 70 + zOrder);
             }
             else
@@ -243,10 +239,10 @@
 
             coord *= math::pi / 3.5f; // small adjustment to make it fit the texture
-            it->second->setPosition((1.0f + coord.x - size) * 0.5f, (1.0f - coord.y - size) * 0.5f);
+            mapEntry.second->setPosition((1.0f + coord.x - size) * 0.5f, (1.0f - coord.y - size) * 0.5f);
 
             if( distance < detectionLimit_ || detectionLimit_ < 0 )
-                it->second->show();
+                mapEntry.second->show();
             else
-                it->second->hide();
+                mapEntry.second->hide();
 
             // if this object is in focus, then set the focus marker
@@ -256,5 +252,5 @@
                 this->marker_->setPosition((1.0f + coord.x - size * 1.5f) * 0.5f, (1.0f - coord.y - size * 1.5f) * 0.5f);
                 if(RadarMode_)
-                    this->marker_->_notifyZOrder(it->second->getZOrder() -1);
+                    this->marker_->_notifyZOrder(mapEntry.second->getZOrder() -1);
                 this->marker_->show();
             }
Index: code/trunk/src/modules/overlays/hud/HUDRadar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRadar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDRadar.h	(revision 11071)
@@ -50,6 +50,6 @@
         virtual ~HUDRadar();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-        virtual void changedOwner();
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+        virtual void changedOwner() override;
         void setConfigValues();
 
@@ -80,5 +80,5 @@
         void set3DMaterialBack(std::string material3DBack) { this->material3DBack_ = material3DBack; }
 
-        float getRadarSensitivity() const { return this->sensitivity_; }
+        virtual float getRadarSensitivity() const override { return this->sensitivity_; }
         // used also by RadarListener interface!
         void setRadarSensitivity(float sensitivity) { this->sensitivity_ = sensitivity; }
@@ -89,8 +89,8 @@
 
         // RadarListener interface
-        virtual void addObject(RadarViewable* viewable);
-        virtual void removeObject(RadarViewable* viewable);
-        virtual void objectChanged( RadarViewable* rv );
-        void radarTick(float dt);
+        virtual void addObject(RadarViewable* viewable) override;
+        virtual void removeObject(RadarViewable* viewable) override;
+        virtual void objectChanged( RadarViewable* rv ) override;
+        virtual void radarTick(float dt) override;
         bool showObject( RadarViewable* rv ); //!< Do not display an object on radar, if showObject(.) is false.
 
Index: code/trunk/src/modules/overlays/hud/HUDRocketFuelBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRocketFuelBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDRocketFuelBar.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(HUDRocketFuelBar);
 
-        this->owner_ = NULL;
+        this->owner_ = nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDRocketFuelBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDRocketFuelBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDRocketFuelBar.h	(revision 11071)
@@ -49,6 +49,6 @@
         virtual ~HUDRocketFuelBar();
 
-        virtual void tick(float dt);
-        virtual void changedOwner();
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
 
     private:
Index: code/trunk/src/modules/overlays/hud/HUDShieldBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDShieldBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDShieldBar.cc	(revision 11071)
@@ -41,5 +41,5 @@
         RegisterObject(HUDShieldBar);
 
-        this->owner_ = NULL;
+        this->owner_ = nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDShieldBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDShieldBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDShieldBar.h	(revision 11071)
@@ -49,6 +49,6 @@
         virtual ~HUDShieldBar();
 
-        virtual void tick(float dt);
-        virtual void changedOwner();
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
 
         inline void setShieldBarOwner(Pawn* owner)
Index: code/trunk/src/modules/overlays/hud/HUDSpeedBar.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDSpeedBar.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDSpeedBar.cc	(revision 11071)
@@ -43,5 +43,5 @@
         RegisterObject(HUDSpeedBar);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDSpeedBar.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDSpeedBar.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDSpeedBar.h	(revision 11071)
@@ -44,6 +44,6 @@
         virtual ~HUDSpeedBar();
 
-        virtual void tick(float dt);
-        virtual void changedOwner();
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
 
     private:
Index: code/trunk/src/modules/overlays/hud/HUDTimer.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDTimer.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDTimer.cc	(revision 11071)
@@ -42,5 +42,5 @@
         RegisterObject(HUDTimer);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/HUDTimer.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDTimer.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDTimer.h	(revision 11071)
@@ -43,7 +43,7 @@
         virtual ~HUDTimer();
 
-        virtual void tick(float dt);
+        virtual void tick(float dt) override;
 
-        virtual void changedOwner();
+        virtual void changedOwner() override;
 
     private:
Index: code/trunk/src/modules/overlays/hud/HUDWeapon.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDWeapon.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDWeapon.cc	(revision 11071)
@@ -44,5 +44,4 @@
         weaponModeHUDActualSize_ = Vector2(0.0f,0.0f);
 
-        weaponModes_ = NULL;
         weaponIndex_ = 0;
         hudWeaponModes_.clear();
@@ -77,5 +76,5 @@
         if (!weapon_)
         {
-            // TODO: destroy this HUD id the Weapon does no more exist. (Wehen the weak pointer is NULL)
+            // TODO: destroy this HUD id the Weapon does no more exist. (Wehen the weak pointer is null)
         }
     }    
@@ -115,8 +114,8 @@
         bool visible = this->isVisible();
 
-        for (std::vector<WeakPtr<HUDWeaponMode> >::iterator it = hudWeaponModes_.begin(); it != hudWeaponModes_.end(); ++it)
-        {
-            (*it)->changedVisibility(); //inform all Child Overlays that our visibility has changed
-            (*it)->setVisible(visible);
+        for (HUDWeaponMode* hudWeaponMode : hudWeaponModes_)
+        {
+            hudWeaponMode->changedVisibility(); //inform all Child Overlays that our visibility has changed
+            hudWeaponMode->setVisible(visible);
         }
     }
@@ -141,5 +140,5 @@
     void HUDWeapon::updateWeaponModeList()
     {
-        if (owner_ == NULL || weapon_ == NULL)
+        if (owner_ == nullptr || weapon_ == nullptr)
         {
             return;
@@ -147,6 +146,4 @@
             
         destroyHUDChilds();
-
-        weaponModes_ = weapon_->getAllWeaponmodes();
 
         updateSize();
@@ -157,5 +154,5 @@
     void HUDWeapon::createHUDChilds()
     {
-        if (weaponModes_ == NULL)
+        if (weapon_ == nullptr)
         {
             return;
@@ -164,5 +161,5 @@
         int positionIndex = 0;
 
-        for (std::multimap<unsigned int, WeaponMode*>::iterator it = weaponModes_->begin(); it != weaponModes_->end(); ++it)
+        for (const auto& mapEntry : weapon_->getAllWeaponmodes())
         {
             HUDWeaponMode* hudWeaponMode = new HUDWeaponMode(this->getContext());
@@ -170,5 +167,5 @@
             hudWeaponMode->setOverlayGroup(this->getOverlayGroup());
             hudWeaponMode->setVisible(this->isVisible());
-            hudWeaponMode->setWeaponMode(it->second);
+            hudWeaponMode->setWeaponMode(mapEntry.second);
             hudWeaponMode->setWeaponIndex(this->weaponIndex_);                    
             hudWeaponMode->setAspectCorrection(false);
@@ -185,10 +182,10 @@
         int positionIndex = 0;
 
-        for (std::vector<WeakPtr<HUDWeaponMode> >::iterator it = hudWeaponModes_.begin(); it != hudWeaponModes_.end(); ++it)
-        {
-            (*it)->setPositionOffset(this->positionOffset_);
-            (*it)->setWeaponModeIndex(positionIndex);
-            (*it)->setWeaponIndex(this->weaponIndex_);
-            (*it)->setWeaponModeHUDActualSize(this->weaponModeHUDActualSize_);
+        for (HUDWeaponMode* hudWeaponMode : hudWeaponModes_)
+        {
+            hudWeaponMode->setPositionOffset(this->positionOffset_);
+            hudWeaponMode->setWeaponModeIndex(positionIndex);
+            hudWeaponMode->setWeaponIndex(this->weaponIndex_);
+            hudWeaponMode->setWeaponModeHUDActualSize(this->weaponModeHUDActualSize_);
 
             ++ positionIndex;
@@ -198,7 +195,7 @@
     void HUDWeapon::destroyHUDChilds()
     {
-        for (std::vector<WeakPtr<HUDWeaponMode> >::iterator it = hudWeaponModes_.begin(); it != hudWeaponModes_.end(); ++it)
-        {
-            (*it)->destroy();
+        for (HUDWeaponMode* hudWeaponMode : hudWeaponModes_)
+        {
+            hudWeaponMode->destroy();
         } 
 
@@ -208,7 +205,7 @@
     void HUDWeapon::updateSize()
     {
-        if (weaponModes_ != NULL)
-        {
-            this->setSize(Vector2(weaponModeHUDActualSize_.x,weaponModeHUDActualSize_.y*weaponModes_->size()));
+        if (weapon_ != nullptr)
+        {
+            this->setSize(Vector2(weaponModeHUDActualSize_.x,weaponModeHUDActualSize_.y*weapon_->getAllWeaponmodes().size()));
             updatePosition();
         }        
@@ -217,5 +214,5 @@
     void HUDWeapon::updatePosition()
     {
-        if (weaponModes_ != NULL)
+        if (weapon_ != nullptr)
         {
             this->setPosition(Vector2(weaponModeHUDActualSize_.x*weaponIndex_,0.0f) + this->positionOffset_);
Index: code/trunk/src/modules/overlays/hud/HUDWeapon.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDWeapon.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDWeapon.h	(revision 11071)
@@ -55,14 +55,14 @@
         virtual ~HUDWeapon();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-        virtual void tick(float dt);
-        virtual void changedOwner();
-        virtual void changedOverlayGroup();
-        virtual void changedVisibility();
-        virtual void changedName();
-        virtual void positionChanged();
-        virtual void sizeChanged();
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
+        virtual void changedOverlayGroup() override;
+        virtual void changedVisibility() override;
+        virtual void changedName() override;
+        virtual void positionChanged() override;
+        virtual void sizeChanged() override;
 
-        virtual void setWeapon(Weapon* weapon);
+        void setWeapon(Weapon* weapon);
 
         inline void setWeaponModeHUDActualSize(Vector2 vector)
@@ -84,16 +84,15 @@
 
     private:
-        virtual void createHUDChilds();
-        virtual void positionHUDChilds();
-        virtual void destroyHUDChilds();
-        virtual void updateWeaponModeList();
-        virtual void updateSize();
-        virtual void updatePosition();
+        void createHUDChilds();
+        void positionHUDChilds();
+        void destroyHUDChilds();
+        void updateWeaponModeList();
+        void updateSize();
+        void updatePosition();
 
         WeakPtr<Pawn> owner_;
         WeakPtr<Weapon> weapon_;
 
-        std::multimap<unsigned int, WeaponMode*>* weaponModes_;
-        std::vector<WeakPtr<HUDWeaponMode> > hudWeaponModes_;
+        std::vector<WeakPtr<HUDWeaponMode>> hudWeaponModes_;
 
         Ogre::PanelOverlayElement* overlayElement_;
Index: code/trunk/src/modules/overlays/hud/HUDWeaponMode.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDWeaponMode.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDWeaponMode.cc	(revision 11071)
@@ -29,7 +29,7 @@
 #include "HUDWeaponMode.h"
 
+#include "util/Convert.h"
+#include "util/StringUtils.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Convert.h"
 #include "core/class/Super.h"
 
@@ -76,5 +76,5 @@
         textOverlayLeft_->setPickPoint(Vector2(0.0f,0.0f));
         textOverlayLeft_->setVisible(true);
-        textOverlayLeft_->setAlignment(OverlayText::Center);
+        textOverlayLeft_->setAlignment(OverlayText::Alignment::Center);
         textOverlayLeft_->setTextSize(0.02f);
         textOverlayLeft_->setColour(ColourValue(0.21,0.70,0.21,1.0));
@@ -87,5 +87,5 @@
         textOverlayRight_->setPickPoint(Vector2(0.0f,0.0f));
         textOverlayRight_->setVisible(true);
-        textOverlayRight_->setAlignment(OverlayText::Center);
+        textOverlayRight_->setAlignment(OverlayText::Alignment::Center);
         textOverlayRight_->setTextSize(0.02f);
         textOverlayRight_->setColour(ColourValue(0.21,0.70,0.21,1.0));
@@ -107,9 +107,4 @@
     }
 
-    void HUDWeaponMode::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(HUDWeaponMode, XMLPort, xmlelement, mode);
-    }
-
     void HUDWeaponMode::tick(float dt)
     {
@@ -131,7 +126,7 @@
             Munition* munition = this->weaponMode_->getMunition();
 
-            if (munition != NULL)
-            {
-                MunitionDeployment::Value deployment = munition->getMunitionDeployment();
+            if (munition != nullptr)
+            {
+                MunitionDeployment deployment = munition->getMunitionDeployment();
 
                 if (deployment == MunitionDeployment::Share)
@@ -242,7 +237,7 @@
         Munition* munition = this->weaponMode_->getMunition();
 
-        if (munition != NULL)
-        {
-            MunitionDeployment::Value deployment = munition->getMunitionDeployment();
+        if (munition != nullptr)
+        {
+            MunitionDeployment deployment = munition->getMunitionDeployment();
 
             if (deployment == MunitionDeployment::Share)
Index: code/trunk/src/modules/overlays/hud/HUDWeaponMode.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDWeaponMode.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDWeaponMode.h	(revision 11071)
@@ -57,14 +57,13 @@
         virtual ~HUDWeaponMode();
 
-        virtual void tick(float dt);
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-        virtual void changedOwner();
-        virtual void changedOverlayGroup();
-        virtual void changedVisibility();
-        virtual void changedName();
-        virtual void positionChanged();
-        virtual void sizeChanged();
+        virtual void tick(float dt) override;
+        virtual void changedOwner() override;
+        virtual void changedOverlayGroup() override;
+        virtual void changedVisibility() override;
+        virtual void changedName() override;
+        virtual void positionChanged() override;
+        virtual void sizeChanged() override;
 
-        virtual void setWeaponMode(WeaponMode* weaponMode);
+        void setWeaponMode(WeaponMode* weaponMode);
 
         inline void setWeaponModeHUDActualSize(Vector2 vector)
@@ -89,7 +88,7 @@
 
     private:
-        virtual void updateSize();
-        virtual void updatePosition();
-        virtual void positionHUDChilds();
+        void updateSize();
+        void updatePosition();
+        void positionHUDChilds();
 
         WeakPtr<Pawn> owner_;
Index: code/trunk/src/modules/overlays/hud/HUDWeaponSystem.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDWeaponSystem.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDWeaponSystem.cc	(revision 11071)
@@ -103,8 +103,8 @@
         bool visible = this->isVisible();
 
-        for (std::vector<WeakPtr<HUDWeapon> >::iterator it = hudWeapons_.begin(); it != hudWeapons_.end(); ++it)
+        for (HUDWeapon* hudWeapon : hudWeapons_)
         {
-            (*it)->changedVisibility(); //inform all Child Overlays that our visibility has changed
-            (*it)->setVisible(visible);
+            hudWeapon->changedVisibility(); //inform all Child Overlays that our visibility has changed
+            hudWeapon->setVisible(visible);
         }
     }
@@ -117,5 +117,5 @@
     void HUDWeaponSystem::updateWeaponList()
     {
-        if (owner_ == NULL)
+        if (owner_ == nullptr)
         {
             return;
@@ -126,18 +126,19 @@
         destroyHUDChilds();
 
-        std::vector<WeaponPack*>* weaponPacks = owner_->getAllWeaponPacks();
+        if (owner_->getWeaponSystem())
+        {
+            const std::vector<WeaponPack*>& weaponPacks = owner_->getWeaponSystem()->getAllWeaponPacks();
+            for (WeaponPack* weaponPack : weaponPacks)
+            {
+                const std::vector<Weapon*>& weapons = weaponPack->getAllWeapons();
+                for (Weapon* weapon : weapons)
+                {
+                    this->weapons_.push_back(weapon);
+                }
+            }
 
-        for (std::vector<WeaponPack*>::const_iterator itPacks = weaponPacks->begin(); itPacks != weaponPacks->end(); ++itPacks)
-        {
-            std::vector<Weapon*>* weapons = (*itPacks)->getAllWeapons();
-
-            for (std::vector<Weapon*>::const_iterator itWeapons = weapons->begin(); itWeapons != weapons->end(); ++itWeapons)
-            {
-                this->weapons_.push_back(*itWeapons);
-            }
+            createHUDChilds();
+            positionHUDChilds();
         }
-
-        createHUDChilds();
-        positionHUDChilds();
     }
 
@@ -146,5 +147,5 @@
         int positionIndex = 0;
 
-        for (std::vector<WeakPtr<Weapon> >::iterator it = weapons_.begin(); it != weapons_.end(); ++it)
+        for (Weapon* weapon : weapons_)
         {
             HUDWeapon* hudWeapon = new HUDWeapon(this->getContext());
@@ -152,5 +153,5 @@
             hudWeapon->setOverlayGroup(this->getOverlayGroup());
             hudWeapon->setVisible(this->isVisible());
-            hudWeapon->setWeapon(*it);
+            hudWeapon->setWeapon(weapon);
             hudWeapon->setAspectCorrection(false);
             hudWeapon->setPickPoint(Vector2(0.0f,0.0f));
@@ -167,9 +168,9 @@
         Vector2 offset = this->getPosition();
 
-        for (std::vector<WeakPtr<HUDWeapon> >::iterator it = hudWeapons_.begin(); it != hudWeapons_.end(); ++it)
+        for (HUDWeapon* hudWeapon : hudWeapons_)
         {
-            (*it)->setPositionOffset(offset);
-            (*it)->setWeaponIndex(positionIndex);
-            (*it)->setWeaponModeHUDActualSize(this->weaponModeHUDActualSize_);
+            hudWeapon->setPositionOffset(offset);
+            hudWeapon->setWeaponIndex(positionIndex);
+            hudWeapon->setWeaponModeHUDActualSize(this->weaponModeHUDActualSize_);
 
             ++ positionIndex;
@@ -179,7 +180,7 @@
     void HUDWeaponSystem::destroyHUDChilds()
     {
-        for (std::vector<WeakPtr<HUDWeapon> >::iterator it = hudWeapons_.begin(); it != hudWeapons_.end(); ++it)
+        for (HUDWeapon* hudWeapon : hudWeapons_)
         {
-            (*it)->destroy();
+            hudWeapon->destroy();
         } 
 
Index: code/trunk/src/modules/overlays/hud/HUDWeaponSystem.h
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDWeaponSystem.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/HUDWeaponSystem.h	(revision 11071)
@@ -49,11 +49,11 @@
         virtual ~HUDWeaponSystem();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-        virtual void changedOwner();
-        virtual void changedOverlayGroup();
-        virtual void changedVisibility();
-        virtual void changedName();
-        virtual void positionChanged();
-        virtual void sizeChanged();
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+        virtual void changedOwner() override;
+        virtual void changedOverlayGroup() override;
+        virtual void changedVisibility() override;
+        virtual void changedName() override;
+        virtual void positionChanged() override;
+        virtual void sizeChanged() override;
     protected:
         inline void setWeaponModeHUDSize(Vector2 vector)
@@ -64,13 +64,13 @@
             { return weaponModeHUDSize_; }
     private:
-        virtual void updateWeaponList();
-        virtual void createHUDChilds();
-        virtual void positionHUDChilds();
-        virtual void destroyHUDChilds();
+        void updateWeaponList();
+        void createHUDChilds();
+        void positionHUDChilds();
+        void destroyHUDChilds();
 
         WeakPtr<Pawn> owner_;
 
-        std::vector<WeakPtr<Weapon> > weapons_;
-        std::vector<WeakPtr<HUDWeapon> > hudWeapons_;
+        std::vector<WeakPtr<Weapon>> weapons_;
+        std::vector<WeakPtr<HUDWeapon>> hudWeapons_;
 
         Vector2 weaponModeHUDSize_;
Index: code/trunk/src/modules/overlays/hud/KillMessage.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/KillMessage.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/KillMessage.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(KillMessage);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
 
         this->setDelay(2.0f);
Index: code/trunk/src/modules/overlays/hud/KillMessage.h
===================================================================
--- code/trunk/src/modules/overlays/hud/KillMessage.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/KillMessage.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~KillMessage() {}
 
-            virtual void changedOwner();
+            virtual void changedOwner() override;
 
-            void killmessage(const GametypeInfo* gtinfo, const std::string& message);
+            virtual void killmessage(const GametypeInfo* gtinfo, const std::string& message) override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/LastManStandingInfos.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/LastManStandingInfos.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/LastManStandingInfos.cc	(revision 11071)
@@ -43,6 +43,6 @@
         RegisterObject(LastManStandingInfos);
 
-        this->lms_ = 0;
-        this->player_ = 0;
+        this->lms_ = nullptr;
+        this->player_ = nullptr;
         this->bShowLives_ = false;
         this->bShowPlayers_ = false;
@@ -91,6 +91,6 @@
         else
         {
-            this->player_ = 0;
-            this->lms_ = 0;
+            this->player_ = nullptr;
+            this->lms_ = nullptr;
         }
     }
Index: code/trunk/src/modules/overlays/hud/LastManStandingInfos.h
===================================================================
--- code/trunk/src/modules/overlays/hud/LastManStandingInfos.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/LastManStandingInfos.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~LastManStandingInfos();
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
 
             inline void setShowLives(bool value)
Index: code/trunk/src/modules/overlays/hud/LastTeamStandingInfos.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/LastTeamStandingInfos.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/LastTeamStandingInfos.cc	(revision 11071)
@@ -43,6 +43,6 @@
         RegisterObject(LastTeamStandingInfos);
 
-        this->lts_ = 0;
-        this->player_ = 0;
+        this->lts_ = nullptr;
+        this->player_ = nullptr;
         this->bShowLives_ = false;
         this->bShowTeams_ = false;
@@ -91,6 +91,6 @@
         else
         {
-            this->player_ = 0;
-            this->lts_ = 0;
+            this->player_ = nullptr;
+            this->lts_ = nullptr;
         }
     }
Index: code/trunk/src/modules/overlays/hud/LastTeamStandingInfos.h
===================================================================
--- code/trunk/src/modules/overlays/hud/LastTeamStandingInfos.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/LastTeamStandingInfos.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~LastTeamStandingInfos();
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
 
             inline void setShowLives(bool value)
Index: code/trunk/src/modules/overlays/hud/PauseNotice.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/PauseNotice.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/PauseNotice.cc	(revision 11071)
@@ -40,5 +40,5 @@
         RegisterObject(PauseNotice);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
     }
 
Index: code/trunk/src/modules/overlays/hud/PauseNotice.h
===================================================================
--- code/trunk/src/modules/overlays/hud/PauseNotice.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/PauseNotice.h	(revision 11071)
@@ -42,8 +42,8 @@
             PauseNotice(Context* context);
 
-            virtual void changedOwner();
+            virtual void changedOwner() override;
 
         protected:
-            virtual void changedTimeFactor(float factor_new, float factor_old);
+            virtual void changedTimeFactor(float factor_new, float factor_old) override;
 
         private:
Index: code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.cc
===================================================================
--- code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.cc	(revision 11071)
@@ -43,5 +43,5 @@
         RegisterObject(TeamBaseMatchScore);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
 
         this->bShowBases_ = false;
@@ -120,5 +120,5 @@
             this->owner_ = orxonox_cast<TeamBaseMatch*>(this->getOwner()->getGametype());
         else
-            this->owner_ = 0;
+            this->owner_ = nullptr;
     }
 }
Index: code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.h
===================================================================
--- code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.h	(revision 11056)
+++ code/trunk/src/modules/overlays/hud/TeamBaseMatchScore.h	(revision 11071)
@@ -43,7 +43,7 @@
             virtual ~TeamBaseMatchScore();
 
-            virtual void tick(float dt);
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner();
+            virtual void tick(float dt) override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override;
 
             inline void setShowBases(bool value)
Index: code/trunk/src/modules/overlays/stats/CreateLines.cc
===================================================================
--- code/trunk/src/modules/overlays/stats/CreateLines.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/stats/CreateLines.cc	(revision 11071)
@@ -37,20 +37,20 @@
     CreateLines::CreateLines(float leftOffset, float topOffset, float width, float height)
     {
-        playerNameText_ = new OverlayText(0);
+        playerNameText_ = new OverlayText(nullptr);
         playerNameText_->setTextSize(0.04f);
         playerNameText_->setColour(ColourValue(0.0f, 0.75f, 0.2f, 1.0f));
         playerNameText_->setPosition(Vector2(0.1f, topOffset + 0.01f));
 
-        scoreText_ = new OverlayText(0);
+        scoreText_ = new OverlayText(nullptr);
         scoreText_->setTextSize(0.04f);
         scoreText_->setColour(ColourValue(0.0f, 0.75f, 0.2f, 1.0f));
         scoreText_->setPosition(Vector2(0.6f, topOffset + 0.01f));
 
-        deathsText_ = new OverlayText(0);
+        deathsText_ = new OverlayText(nullptr);
         deathsText_->setTextSize(0.04f);
         deathsText_->setColour(ColourValue(0, 0.75f, 0.2f, 1.0f));
         deathsText_->setPosition(Vector2(0.8f, topOffset + 0.01f));
 
-        background_ = new Stats(0);
+        background_ = new Stats(nullptr);
         background_->setPosition(Vector2(leftOffset, topOffset));
         background_->setSize(Vector2(width, height));
Index: code/trunk/src/modules/overlays/stats/CreateLines.h
===================================================================
--- code/trunk/src/modules/overlays/stats/CreateLines.h	(revision 11056)
+++ code/trunk/src/modules/overlays/stats/CreateLines.h	(revision 11071)
@@ -29,4 +29,6 @@
 
 #include "overlays/OverlaysPrereqs.h"
+
+#include <string>
 
 namespace orxonox
Index: code/trunk/src/modules/overlays/stats/Scoreboard.cc
===================================================================
--- code/trunk/src/modules/overlays/stats/Scoreboard.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/stats/Scoreboard.cc	(revision 11071)
@@ -60,6 +60,6 @@
         SUPER(Scoreboard, changedVisibility);
 
-        for (unsigned int i = 0; i < this->lines_.size(); ++i)
-            this->lines_[i]->changedVisibility();
+        for (CreateLines* line : this->lines_)
+            line->changedVisibility();
     }
 
@@ -94,9 +94,9 @@
 
         unsigned int index = 0;
-        for (std::map<PlayerInfo*, Player>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
+        for (const auto& mapEntry : playerList)
         {
-            this->lines_[index]->setPlayerName(multi_cast<std::string>(it->first->getName()));
-            this->lines_[index]->setScore(multi_cast<std::string>(it->second.frags_));
-            this->lines_[index]->setDeaths(multi_cast<std::string>(it->second.killed_));
+            this->lines_[index]->setPlayerName(multi_cast<std::string>(mapEntry.first->getName()));
+            this->lines_[index]->setScore(multi_cast<std::string>(mapEntry.second.frags_));
+            this->lines_[index]->setDeaths(multi_cast<std::string>(mapEntry.second.killed_));
             index++;
         }
Index: code/trunk/src/modules/overlays/stats/Scoreboard.h
===================================================================
--- code/trunk/src/modules/overlays/stats/Scoreboard.h	(revision 11056)
+++ code/trunk/src/modules/overlays/stats/Scoreboard.h	(revision 11071)
@@ -44,5 +44,5 @@
         virtual ~Scoreboard();
 
-        virtual void tick(float dt);
+        virtual void tick(float dt) override;
 
         inline void setCreateLines(CreateLines* cl)
@@ -51,5 +51,5 @@
             { return this->createlines_; }
 
-        virtual void changedVisibility();
+        virtual void changedVisibility() override;
 
     private: // functions
Index: code/trunk/src/modules/overlays/stats/Stats.cc
===================================================================
--- code/trunk/src/modules/overlays/stats/Stats.cc	(revision 11056)
+++ code/trunk/src/modules/overlays/stats/Stats.cc	(revision 11071)
@@ -46,6 +46,6 @@
     Stats::Stats(Context* context)
         : OrxonoxOverlay(context)
-        , statsOverlayNoise_(0)
-        , statsOverlayBorder_(0)
+        , statsOverlayNoise_(nullptr)
+        , statsOverlayBorder_(nullptr)
     {
         RegisterObject(Stats);
Index: code/trunk/src/modules/overlays/stats/Stats.h
===================================================================
--- code/trunk/src/modules/overlays/stats/Stats.h	(revision 11056)
+++ code/trunk/src/modules/overlays/stats/Stats.h	(revision 11071)
@@ -46,5 +46,5 @@
         void setConfigValues();
 
-        virtual void tick(float dt);
+        virtual void tick(float dt) override;
 
     private: // variables
Index: code/trunk/src/modules/pickup/CollectiblePickup.cc
===================================================================
--- code/trunk/src/modules/pickup/CollectiblePickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/CollectiblePickup.cc	(revision 11071)
@@ -47,5 +47,5 @@
         Registers the object and initializes variables.
     */
-    CollectiblePickup::CollectiblePickup() : collection_(NULL)
+    CollectiblePickup::CollectiblePickup() : collection_(nullptr)
     {
         RegisterObject(CollectiblePickup);
@@ -103,5 +103,5 @@
     void CollectiblePickup::wasRemovedFromCollection(void)
     {
-        this->collection_ = NULL;
+        this->collection_ = nullptr;
     }
 }
Index: code/trunk/src/modules/pickup/CollectiblePickup.h
===================================================================
--- code/trunk/src/modules/pickup/CollectiblePickup.h	(revision 11056)
+++ code/trunk/src/modules/pickup/CollectiblePickup.h	(revision 11071)
@@ -61,6 +61,6 @@
             virtual ~CollectiblePickup(); //! Destructor.
 
-            virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void changedPickedUp(void); //!< Is called when the pickup has transited from picked up to dropped or the other way around.
+            virtual void changedUsed(void) override; //!< Is called when the pickup has transited from used to unused or the other way around.
+            virtual void changedPickedUp(void) override; //!< Is called when the pickup has transited from picked up to dropped or the other way around.
 
             /**
@@ -69,5 +69,5 @@
             */
             bool isInCollection(void) const
-                { return this->collection_ != NULL; }
+                { return this->collection_ != nullptr; }
 
         private:
Index: code/trunk/src/modules/pickup/Pickup.cc
===================================================================
--- code/trunk/src/modules/pickup/Pickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/Pickup.cc	(revision 11071)
@@ -78,6 +78,6 @@
     void Pickup::initialize(void)
     {
-        this->activationType_ = pickupActivationType::immediate;
-        this->durationType_ = pickupDurationType::once;
+        this->activationType_ = PickupActivationType::immediate;
+        this->durationType_ = PickupDurationType::once;
     }
 
@@ -105,7 +105,7 @@
         switch(this->getActivationType())
         {
-            case pickupActivationType::immediate:
+            case PickupActivationType::immediate:
                 return activationTypeImmediate_s;
-            case pickupActivationType::onUse:
+            case PickupActivationType::onUse:
                 return activationTypeOnUse_s;
             default:
@@ -124,7 +124,7 @@
         switch(this->getDurationType())
         {
-            case pickupDurationType::once:
+            case PickupDurationType::once:
                 return durationTypeOnce_s;
-            case pickupDurationType::continuous:
+            case PickupDurationType::continuous:
                 return durationTypeContinuous_s;
             default:
@@ -142,7 +142,7 @@
     {
         if(type == Pickup::activationTypeImmediate_s)
-            this->setActivationType(pickupActivationType::immediate);
+            this->setActivationType(PickupActivationType::immediate);
         else if(type == Pickup::activationTypeOnUse_s)
-            this->setActivationType(pickupActivationType::onUse);
+            this->setActivationType(PickupActivationType::onUse);
         else
             orxout(internal_error, context::pickups) << "Invalid activationType '" << type << "' in " << this->getIdentifier()->getName() << "." << endl;
@@ -158,7 +158,7 @@
     {
         if(type == Pickup::durationTypeOnce_s)
-            this->setDurationType(pickupDurationType::once);
+            this->setDurationType(PickupDurationType::once);
         else if(type == Pickup::durationTypeContinuous_s)
-            this->setDurationType(pickupDurationType::continuous);
+            this->setDurationType(PickupDurationType::continuous);
         else
             orxout(internal_error, context::pickups) << "Invalid durationType '" << type << "' in " << this->getIdentifier()->getName() << "." << endl;
Index: code/trunk/src/modules/pickup/Pickup.h
===================================================================
--- code/trunk/src/modules/pickup/Pickup.h	(revision 11056)
+++ code/trunk/src/modules/pickup/Pickup.h	(revision 11071)
@@ -53,12 +53,9 @@
     @ingroup Pickup
     */
-    namespace pickupActivationType
+    enum class PickupActivationType
     {
-        enum Value
-        {
-            immediate, //!< Means that the @ref orxonox::Pickup "Pickup" will be used immediately after pickup.
-            onUse, //!< Means that the @ref orxonox::Pickup "Pickup" will be used at a later point trough some external influence.
-        };
-    }
+        immediate, //!< Means that the @ref orxonox::Pickup "Pickup" will be used immediately after pickup.
+        onUse, //!< Means that the @ref orxonox::Pickup "Pickup" will be used at a later point trough some external influence.
+    };
 
     /**
@@ -68,12 +65,9 @@
     @ingroup Pickup
     */
-    namespace pickupDurationType
+    enum class PickupDurationType
     {
-        enum Value
-        {
-            once, //!< Means that the @ref orxonox::Pickup "Pickup" will be used only once at a singular time instant.
-            continuous, //!< Means that the @ref orxonox::Pickup "Pickup" will be used over a continuous timespan.
-        };
-    }
+        once, //!< Means that the @ref orxonox::Pickup "Pickup" will be used only once at a singular time instant.
+        continuous, //!< Means that the @ref orxonox::Pickup "Pickup" will be used over a continuous timespan.
+    };
 
     /**
@@ -103,7 +97,7 @@
             virtual ~Pickup(); //!< Destructor.
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            virtual const std::string& getRepresentationName() const
+            virtual const std::string& getRepresentationName() const override
                 { return this->representationName_; }
 
@@ -112,5 +106,5 @@
             @return Returns the activation type of the Pickup.
             */
-            inline pickupActivationType::Value getActivationType(void) const
+            inline PickupActivationType getActivationType(void) const
                 { return this->activationType_; }
             /**
@@ -118,5 +112,5 @@
             @return Returns the duration type of the Pickup.
             */
-            inline pickupDurationType::Value getDurationType(void) const
+            inline PickupDurationType getDurationType(void) const
                 { return this->durationType_; }
 
@@ -129,5 +123,5 @@
             */
             inline bool isImmediate(void) const
-                { return this->getActivationType() == pickupActivationType::immediate; }
+                { return this->getActivationType() == PickupActivationType::immediate; }
             /**
             @brief Get whether the activation type is 'onUse'.
@@ -135,5 +129,5 @@
             */
             inline bool isOnUse(void) const
-                { return this->getActivationType() == pickupActivationType::onUse; }
+                { return this->getActivationType() == PickupActivationType::onUse; }
             /**
             @brief Get whether the duration type is 'once'.
@@ -141,5 +135,5 @@
             */
             inline bool isOnce(void) const
-                { return this->getDurationType() == pickupDurationType::once; }
+                { return this->getDurationType() == PickupDurationType::once; }
             /**
             @brief Get whether the duration type is 'continuous'.
@@ -147,10 +141,10 @@
             */
             inline bool isContinuous(void) const
-                { return this->getDurationType() == pickupDurationType::continuous; }
+                { return this->getDurationType() == PickupDurationType::continuous; }
 
-            virtual void changedPickedUp(void); //!< Should be called when the pickup has transited from picked up to dropped or the other way around.
+            virtual void changedPickedUp(void) override; //!< Should be called when the pickup has transited from picked up to dropped or the other way around.
 
         protected:
-            virtual bool createSpawner(void); //!< Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
+            virtual bool createSpawner(void) override; //!< Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
 
             /**
@@ -164,5 +158,5 @@
             @param type The activation type of the Pickup.
             */
-            inline void setActivationType(pickupActivationType::Value type)
+            inline void setActivationType(PickupActivationType type)
                 { this->activationType_ = type; }
             /**
@@ -170,5 +164,5 @@
             @param type The duration type of the Pickup.
             */
-            inline void setDurationType(pickupDurationType::Value type)
+            inline void setDurationType(PickupDurationType type)
                 { this->durationType_ = type; }
 
@@ -180,6 +174,6 @@
 
             std::string representationName_; //!< The name of the associated PickupRepresentation.
-            pickupActivationType::Value activationType_; //!< The activation type of the Pickup.
-            pickupDurationType::Value durationType_; //!< The duration type of the Pickup.
+            PickupActivationType activationType_; //!< The activation type of the Pickup.
+            PickupDurationType durationType_; //!< The duration type of the Pickup.
 
             //! Strings for the activation and duration types.
Index: code/trunk/src/modules/pickup/PickupCollection.cc
===================================================================
--- code/trunk/src/modules/pickup/PickupCollection.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupCollection.cc	(revision 11071)
@@ -68,8 +68,8 @@
     {
         // Destroy all Pickupables constructing this PickupCollection.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            (*it)->wasRemovedFromCollection();
-            (*it)->destroy();
+        for(CollectiblePickup* pickup : this->pickups_)
+        {
+            pickup->wasRemovedFromCollection();
+            pickup->destroy();
         }
         this->pickups_.clear();
@@ -99,6 +99,6 @@
         this->processingUsed_ = true;
         // Change used for all Pickupables this PickupCollection consists of.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-            (*it)->setUsed(this->isUsed());
+        for(CollectiblePickup* pickup : this->pickups_)
+            pickup->setUsed(this->isUsed());
 
         this->processingUsed_ = false;
@@ -119,9 +119,9 @@
         size_t numPickupsEnabled = 0;
         size_t numPickupsInUse = 0;
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if ((*it)->isEnabled())
+        for(CollectiblePickup* pickup : this->pickups_)
+        {
+            if (pickup->isEnabled())
                 ++numPickupsEnabled;
-            if ((*it)->isUsed())
+            if (pickup->isUsed())
                 ++numPickupsInUse;
         }
@@ -146,10 +146,10 @@
 
         // Change the PickupCarrier for all Pickupables this PickupCollection consists of.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if(this->getCarrier() == NULL)
-                (*it)->setCarrier(NULL);
+        for(CollectiblePickup* pickup : this->pickups_)
+        {
+            if(this->getCarrier() == nullptr)
+                pickup->setCarrier(nullptr);
             else
-                (*it)->setCarrier(this->getCarrier()->getTarget(*it));
+                pickup->setCarrier(this->getCarrier()->getTarget(pickup));
         }
     }
@@ -186,7 +186,7 @@
         // If at least all the enabled pickups of this PickupCollection are no longer picked up.
         bool isOnePickupEnabledAndPickedUp = false;
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if ((*it)->isEnabled() && (*it)->isPickedUp())
+        for(CollectiblePickup* pickup : this->pickups_)
+        {
+            if (pickup->isEnabled() && pickup->isPickedUp())
             {
                 isOnePickupEnabledAndPickedUp = true;
@@ -208,7 +208,7 @@
     bool PickupCollection::isTarget(const PickupCarrier* carrier) const
     {
-        for(std::list<CollectiblePickup*>::const_iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            if(!carrier->isTarget(*it))
+        for(CollectiblePickup* pickup : this->pickups_)
+        {
+            if(!carrier->isTarget(pickup))
                 return false;
         }
@@ -227,5 +227,5 @@
     bool PickupCollection::addPickupable(CollectiblePickup* pickup)
     {
-        if(pickup == NULL)
+        if(pickup == nullptr)
             return false;
 
@@ -247,5 +247,5 @@
     {
         if(this->pickups_.size() >= index)
-            return NULL;
+            return nullptr;
 
         std::list<CollectiblePickup*>::const_iterator it = this->pickups_.begin();
Index: code/trunk/src/modules/pickup/PickupCollection.h
===================================================================
--- code/trunk/src/modules/pickup/PickupCollection.h	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupCollection.h	(revision 11071)
@@ -73,15 +73,15 @@
             virtual ~PickupCollection(); //!< Destructor.
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Creates an instance of this Class through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Creates an instance of this Class through XML.
 
-            virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void changedCarrier(void); //!< Is called when the pickup has changed its PickupCarrier.
-            virtual void changedPickedUp(void); //!< Is called when the pickup has transited from picked up to dropped or the other way around.
+            virtual void changedUsed(void) override; //!< Is called when the pickup has transited from used to unused or the other way around.
+            virtual void changedCarrier(void) override; //!< Is called when the pickup has changed its PickupCarrier.
+            virtual void changedPickedUp(void) override; //!< Is called when the pickup has transited from picked up to dropped or the other way around.
 
-            virtual bool isTarget(const PickupCarrier* carrier) const; //!< Get whether a given class, represented by the input Identifier, is a target of this PickupCollection.
+            virtual bool isTarget(const PickupCarrier* carrier) const override; //!< Get whether a given class, represented by the input Identifier, is a target of this PickupCollection.
 
             inline void setRepresentationName(const std::string& name)
                 { this->representationName_ = name; }
-            virtual const std::string& getRepresentationName() const
+            virtual const std::string& getRepresentationName() const override
                 { return this->representationName_; }
 
@@ -98,5 +98,5 @@
 
         protected:
-            virtual bool createSpawner(void); //!< Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
+            virtual bool createSpawner(void) override; //!< Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
 
         private:
Index: code/trunk/src/modules/pickup/PickupManager.cc
===================================================================
--- code/trunk/src/modules/pickup/PickupManager.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupManager.cc	(revision 11071)
@@ -68,5 +68,5 @@
         Constructor. Registers the PickupManager and creates the default PickupRepresentation.
     */
-    PickupManager::PickupManager() : guiLoaded_(false), pickupHighestIndex_(0), defaultRepresentation_(NULL)
+    PickupManager::PickupManager() : guiLoaded_(false), pickupHighestIndex_(0), defaultRepresentation_(nullptr)
     {
         RegisterObject(PickupManager);
@@ -85,5 +85,5 @@
     {
         // Destroying the default representation.
-        if(this->defaultRepresentation_ != NULL)
+        if(this->defaultRepresentation_ != nullptr)
             this->defaultRepresentation_->destroy();
 
@@ -91,6 +91,6 @@
 
         // Destroying all the PickupInventoryContainers that are still there.
-        for(std::map<uint32_t, PickupInventoryContainer*>::iterator it = this->pickupInventoryContainers_.begin(); it != this->pickupInventoryContainers_.end(); it++)
-            delete it->second;
+        for(const auto& mapEntry : this->pickupInventoryContainers_)
+            delete mapEntry.second;
         this->pickupInventoryContainers_.clear();
 
@@ -184,16 +184,16 @@
         CollectiblePickup* collectible = orxonox_cast<CollectiblePickup*>(pickup);
         // If the Pickupable is part of a PickupCollection it isn't displayed in the PickupInventory, just the PickupCollection is.
-        if(collectible != NULL && collectible->isInCollection())
+        if(collectible != nullptr && collectible->isInCollection())
             return;
 
         // Getting clientId of the host this change of the pickup's used status concerns.
         PickupCarrier* carrier = pickup->getCarrier();
-        while(carrier->getCarrierParent() != NULL)
+        while(carrier->getCarrierParent() != nullptr)
             carrier = carrier->getCarrierParent();
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
-        if(pawn == NULL)
+        if(pawn == nullptr)
             return;
         PlayerInfo* info = pawn->getPlayer();
-        if(info == NULL)
+        if(info == nullptr)
             return;
         unsigned int clientId = info->getClientID();
@@ -265,16 +265,16 @@
         CollectiblePickup* collectible = orxonox_cast<CollectiblePickup*>(pickup);
         // If the Pickupable is part of a PickupCollection it isn't displayed in the PickupInventory, just the PickupCollection is.
-        if(collectible != NULL && collectible->isInCollection())
+        if(collectible != nullptr && collectible->isInCollection())
             return;
 
         // Getting clientId of the host this change of the pickup's pickedUp status concerns.
         PickupCarrier* carrier = pickup->getCarrier();
-        while(carrier->getCarrierParent() != NULL)
+        while(carrier->getCarrierParent() != nullptr)
             carrier = carrier->getCarrierParent();
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
-        if(pawn == NULL)
+        if(pawn == nullptr)
             return;
         PlayerInfo* info = pawn->getFormerPlayer();
-        if(info == NULL)
+        if(info == nullptr)
             return;
         unsigned int clientId = info->getClientID();
@@ -399,5 +399,5 @@
                 return;
             Pickupable* pickupable = this->pickups_.find(pickup)->second;
-            if(pickupable != NULL)
+            if(pickupable != nullptr)
                 pickupable->drop();
         }
@@ -442,5 +442,5 @@
                 return;
             Pickupable* pickupable = this->pickups_.find(pickup)->second;
-            if(pickupable != NULL)
+            if(pickupable != nullptr)
                 pickupable->setUsed(use);
         }
Index: code/trunk/src/modules/pickup/PickupManager.h
===================================================================
--- code/trunk/src/modules/pickup/PickupManager.h	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupManager.h	(revision 11071)
@@ -117,7 +117,7 @@
             PickupRepresentation* getRepresentation(const std::string& name); // tolua_export
 
-            virtual void pickupChangedUsed(Pickupable* pickup, bool used); //!< Is called by the PickupListener to notify the PickupManager, that the input Pickupable has transited to the input used state.
+            virtual void pickupChangedUsed(Pickupable* pickup, bool used) override; //!< Is called by the PickupListener to notify the PickupManager, that the input Pickupable has transited to the input used state.
             static void pickupChangedUsedNetwork(uint32_t pickup, bool inUse, bool usable, bool unusable); //!< Helper method to react to the change in the used status of a Pickupable.
-            virtual void pickupChangedPickedUp(Pickupable* pickup, bool pickedUp); //!< Is called by the PickupListener to notify the PickupManager, that the input Pickupable has transited to the input pickedUp state.
+            virtual void pickupChangedPickedUp(Pickupable* pickup, bool pickedUp) override; //!< Is called by the PickupListener to notify the PickupManager, that the input Pickupable has transited to the input pickedUp state.
             static void pickupChangedPickedUpNetwork(uint32_t pickup, bool usable, uint32_t representationObjectId, const std::string& representationName, bool pickedUp); //!< Helper method to react to the change in the pickedUp status of a Pickupable.
 
@@ -161,5 +161,5 @@
             std::map<uint32_t, PickupInventoryContainer*>::iterator pickupsIterator_; //!< An iterator pointing to the current Pickupable in pickupsList_.
 
-            std::map<uint32_t, WeakPtr<Pickupable> > pickups_; //!< Map linking a number identifying a Pickupable to a weak pointer of a Pickupable.
+            std::map<uint32_t, WeakPtr<Pickupable>> pickups_; //!< Map linking a number identifying a Pickupable to a weak pointer of a Pickupable.
             std::map<Pickupable*, uint32_t> indexes_;//!< Map linking Pickupable to the number identifying it.
 
Index: code/trunk/src/modules/pickup/PickupRepresentation.cc
===================================================================
--- code/trunk/src/modules/pickup/PickupRepresentation.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupRepresentation.cc	(revision 11071)
@@ -52,5 +52,5 @@
         This is primarily for use of the PickupManager in creating a default PickupRepresentation.
     */
-    PickupRepresentation::PickupRepresentation() : BaseObject(NULL), Synchronisable(NULL), spawnerRepresentation_(NULL)
+    PickupRepresentation::PickupRepresentation() : BaseObject(nullptr), Synchronisable(nullptr), spawnerRepresentation_(nullptr)
     {
         RegisterObject(PickupRepresentation);
@@ -64,5 +64,5 @@
         Default Constructor. Registers the object and initializes its member variables.
     */
-    PickupRepresentation::PickupRepresentation(Context* context) : BaseObject(context), Synchronisable(context), spawnerRepresentation_(NULL)
+    PickupRepresentation::PickupRepresentation(Context* context) : BaseObject(context), Synchronisable(context), spawnerRepresentation_(nullptr)
     {
         RegisterObject(PickupRepresentation);
@@ -78,5 +78,5 @@
     PickupRepresentation::~PickupRepresentation()
     {
-        if(this->spawnerRepresentation_ != NULL)
+        if(this->spawnerRepresentation_ != nullptr)
             this->spawnerRepresentation_->destroy();
 
@@ -135,5 +135,5 @@
     StaticEntity* PickupRepresentation::createSpawnerRepresentation(PickupSpawner* spawner)
     {
-        if(this->spawnerRepresentation_ == NULL)
+        if(this->spawnerRepresentation_ == nullptr)
         {
             orxout(verbose, context::pickups) << "PickupRepresentation: No spawner representation found." << endl;
@@ -149,5 +149,5 @@
         this->spawnerRepresentation_->setVisible(true);
         StaticEntity* temp = this->spawnerRepresentation_;
-        this->spawnerRepresentation_ = NULL;
+        this->spawnerRepresentation_ = nullptr;
 
         return temp;
@@ -164,5 +164,5 @@
     {
         this->spawnerRepresentation_ = representation;
-        if(this->spawnerRepresentation_ != NULL)
+        if(this->spawnerRepresentation_ != nullptr)
             this->spawnerRepresentation_->setVisible(false);
     }
Index: code/trunk/src/modules/pickup/PickupRepresentation.h
===================================================================
--- code/trunk/src/modules/pickup/PickupRepresentation.h	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupRepresentation.h	(revision 11071)
@@ -98,5 +98,5 @@
             virtual ~PickupRepresentation(); //!< Destructor.
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a PickupRepresentation object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a PickupRepresentation object through XML.
 
             /**
@@ -119,8 +119,8 @@
             @brief Get the StaticEntity that defines how the PickupSpawner of the Pickupable represented by this PickupRepresentation looks like.
             @param index The index.
-            @return Returns (for index = 0) a pointer to the StaticEntity. For index > 0 it returns NULL.
+            @return Returns (for index = 0) a pointer to the StaticEntity. For index > 0 it returns nullptr.
             */
             inline const StaticEntity* getSpawnerRepresentationIndex(unsigned int index) const
-                { if(index == 0) return this->spawnerRepresentation_; return NULL; }
+                { if(index == 0) return this->spawnerRepresentation_; return nullptr; }
             /**
             @brief Get the name of the image representing the pickup in the PickupInventory.
@@ -129,5 +129,5 @@
             inline const std::string& getInventoryRepresentation(void) const { return this->inventoryRepresentation_; } // tolua_export
 
-            virtual void changedName();
+            virtual void changedName() override;
 
             StaticEntity* createSpawnerRepresentation(PickupSpawner* spawner); //!< Create a spawnerRepresentation for a specific PickupSpawner.
Index: code/trunk/src/modules/pickup/PickupSpawner.cc
===================================================================
--- code/trunk/src/modules/pickup/PickupSpawner.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupSpawner.cc	(revision 11071)
@@ -55,5 +55,5 @@
         Pointer to the object which created this item.
     */
-    PickupSpawner::PickupSpawner(Context* context) : StaticEntity(context), pickup_(NULL), representation_(NULL), pickupTemplate_(NULL)
+    PickupSpawner::PickupSpawner(Context* context) : StaticEntity(context), pickup_(nullptr), representation_(nullptr), pickupTemplate_(nullptr)
     {
         RegisterObject(PickupSpawner);
@@ -74,5 +74,5 @@
         this->selfDestruct_ = false;
 
-        this->setPickupable(NULL);
+        this->setPickupable(nullptr);
     }
 
@@ -83,5 +83,5 @@
     PickupSpawner::~PickupSpawner()
     {
-        if(this->isInitialized() && this->selfDestruct_ && this->pickup_ != NULL)
+        if(this->isInitialized() && this->selfDestruct_ && this->pickup_ != nullptr)
             this->pickup_->destroy();
     }
@@ -158,16 +158,16 @@
 
             // Iterate trough all Pawns.
-            for(ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+            for(Pawn* pawn : ObjectList<Pawn>())
             {
-                if(spawner == NULL) // Stop if the PickupSpawner has been deleted (e.g. because it has run out of pickups to distribute).
+                if(spawner == nullptr) // Stop if the PickupSpawner has been deleted (e.g. because it has run out of pickups to distribute).
                     break;
 
-                Vector3 distance = it->getWorldPosition() - this->getWorldPosition();
-                PickupCarrier* carrier = static_cast<PickupCarrier*>(*it);
+                Vector3 distance = pawn->getWorldPosition() - this->getWorldPosition();
+                PickupCarrier* carrier = static_cast<PickupCarrier*>(pawn);
                 // If a PickupCarrier, that fits the target-range of the Pickupable spawned by this PickupSpawner, is in trigger-distance and the carrier is not blocked.
-                if(distance.length() < this->triggerDistance_ && carrier != NULL && this->blocked_.find(carrier) == this->blocked_.end())
+                if(distance.length() < this->triggerDistance_ && carrier != nullptr && this->blocked_.find(carrier) == this->blocked_.end())
                 {
                     if(carrier->isTarget(this->pickup_))
-                        this->trigger(*it);
+                        this->trigger(pawn);
                 }
             }
@@ -195,5 +195,5 @@
         pickedUp = false; // To avoid compiler warning.
 
-        this->setPickupable(NULL);
+        this->setPickupable(nullptr);
         this->decrementSpawnsRemaining();
     }
@@ -282,11 +282,11 @@
         {
             orxout(internal_error, context::pickups) << "Massive Error: PickupSpawner still alive until having spawned last item." << endl;
-            return NULL;
-        }
-
-        if (this->pickupTemplate_ != NULL)
+            return nullptr;
+        }
+
+        if (this->pickupTemplate_ != nullptr)
         {
             Identifier* identifier = this->pickupTemplate_->getBaseclassIdentifier();
-            if (identifier != NULL)
+            if (identifier != nullptr)
             {
                 Pickupable* pickup = orxonox_cast<Pickupable*>(identifier->fabricate(this->getContext()));
@@ -298,5 +298,5 @@
         }
 
-        return NULL;
+        return nullptr;
     }
 
@@ -309,13 +309,13 @@
     void PickupSpawner::setPickupable(Pickupable* pickup)
     {
-        if (this->representation_ != NULL)
+        if (this->representation_ != nullptr)
         {
             this->representation_->destroy();
-            this->representation_ = NULL;
-        }
-
-        if (pickup != NULL)
-        {
-            if (this->pickup_ != NULL)
+            this->representation_ = nullptr;
+        }
+
+        if (pickup != nullptr)
+        {
+            if (this->pickup_ != nullptr)
                 this->pickup_->destroy();
 
Index: code/trunk/src/modules/pickup/PickupSpawner.h
===================================================================
--- code/trunk/src/modules/pickup/PickupSpawner.h	(revision 11056)
+++ code/trunk/src/modules/pickup/PickupSpawner.h	(revision 11071)
@@ -82,6 +82,6 @@
             static PickupSpawner* createDroppedPickup(Context* context, Pickupable* pickup, PickupCarrier* carrier, float triggerDistance = 10.0);
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);  //!< Method for creating a PickupSpawner through XML.
-            virtual void tick(float dt); //!< Tick, checks if any Pawn is close enough to trigger.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;  //!< Method for creating a PickupSpawner through XML.
+            virtual void tick(float dt) override; //!< Tick, checks if any Pawn is close enough to trigger.
 
             /**
Index: code/trunk/src/modules/pickup/items/BoostPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/BoostPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/BoostPickup.cc	(revision 11071)
@@ -106,5 +106,5 @@
 
         SpaceShip* ship = this->carrierToSpaceShipHelper();
-        if(ship == NULL) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
+        if(ship == nullptr) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
             this->Pickupable::destroy();
 
@@ -128,5 +128,5 @@
         Helper to transform the PickupCarrier to a SpaceShip, and throw an error message if the conversion fails.
     @return
-        A pointer to the SpaceShip, or NULL if the conversion failed.
+        A pointer to the SpaceShip, or nullptr if the conversion failed.
     */
     SpaceShip* BoostPickup::carrierToSpaceShipHelper(void)
@@ -135,5 +135,5 @@
         SpaceShip* ship = orxonox_cast<SpaceShip*>(carrier);
 
-        if(ship == NULL)
+        if(ship == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in BoostPickup." << endl;
Index: code/trunk/src/modules/pickup/items/BoostPickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/BoostPickup.h	(revision 11056)
+++ code/trunk/src/modules/pickup/items/BoostPickup.h	(revision 11071)
@@ -52,7 +52,7 @@
             virtual ~BoostPickup(); //!< Destructor.
 
-            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a BoostPickup object through XML.
+            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode) override; //!< Method for creating a BoostPickup object through XML.
 
-            virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
+            virtual void changedUsed(void) override; //!< Is called when the pickup has transited from used to unused or the other way around.
             inline float getBoostRefill()
                 { return this->boostRefill_; }
Index: code/trunk/src/modules/pickup/items/DamageBoostPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/DamageBoostPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/DamageBoostPickup.cc	(revision 11071)
@@ -106,5 +106,5 @@
 
         SpaceShip* ship = this->carrierToSpaceShipHelper();
-        if(ship == NULL) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
+        if(ship == nullptr) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
             this->Pickupable::destroy();
 
@@ -152,5 +152,5 @@
         Helper to transform the PickupCarrier to a SpaceShip, and throw an error message if the conversion fails.
     @return
-        A pointer to the SpaceShip, or NULL if the conversion failed.
+        A pointer to the SpaceShip, or nullptr if the conversion failed.
     */
     SpaceShip* DamageBoostPickup::carrierToSpaceShipHelper(void)
@@ -159,5 +159,5 @@
         SpaceShip* ship = orxonox_cast<SpaceShip*>(carrier);
 
-        if(ship == NULL)
+        if(ship == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in DamageBoostPickup." << endl;
Index: code/trunk/src/modules/pickup/items/DronePickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/DronePickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/DronePickup.cc	(revision 11071)
@@ -74,5 +74,5 @@
     {
         this->addTarget(ClassIdentifier<Pawn>::getIdentifier());
-        this->setDurationType(pickupDurationType::once);
+        this->setDurationType(PickupDurationType::once);
         this->droneTemplate_ = "";
     }
@@ -122,5 +122,5 @@
 
                 Pawn* pawn = this->carrierToPawnHelper();
-                if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+                if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                     this->Pickupable::destroy();
 
@@ -131,5 +131,5 @@
                 Controller* controller = drone->getController();
                 DroneController* droneController = orxonox_cast<DroneController*>(controller);
-                if(droneController != NULL)
+                if(droneController != nullptr)
                 {
                     droneController->setOwner(pawn);
@@ -156,5 +156,5 @@
         Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
     @return
-        A pointer to the Pawn, or NULL if the conversion failed.
+        A pointer to the Pawn, or nullptr if the conversion failed.
     */
     Pawn* DronePickup::carrierToPawnHelper(void)
@@ -163,5 +163,5 @@
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
-        if(pawn == NULL)
+        if(pawn == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in DronePickup." << endl;
Index: code/trunk/src/modules/pickup/items/HealthPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/HealthPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/HealthPickup.cc	(revision 11071)
@@ -77,5 +77,5 @@
         this->health_ = 0.0f;
         this->healthRate_ = 0.0f;
-        this->healthType_ = pickupHealthType::limited;
+        this->healthType_ = PickupHealthType::limited;
         this->maxHealthSave_ = 0.0f;
         this->maxHealthOverwrite_ = 0.0f;
@@ -114,5 +114,5 @@
         {
             Pawn* pawn = this->carrierToPawnHelper();
-            if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+            if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                 this->Pickupable::destroy();
 
@@ -127,11 +127,11 @@
             switch(this->getHealthType())
             {
-                case pickupHealthType::permanent:
+                case PickupHealthType::permanent:
                     if(pawn->getMaxHealth() < fullHealth)
                         pawn->setMaxHealth(fullHealth);
-                case pickupHealthType::limited:
+                case PickupHealthType::limited:
                     pawn->addHealth(health);
                     break;
-                case pickupHealthType::temporary:
+                case PickupHealthType::temporary:
                     if(pawn->getMaxHealth() > fullHealth)
                     {
@@ -168,5 +168,5 @@
             {
                 Pawn* pawn = this->carrierToPawnHelper();
-                if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+                if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                     this->Pickupable::destroy();
 
@@ -174,12 +174,12 @@
                 switch(this->getHealthType())
                 {
-                    case pickupHealthType::permanent:
+                    case PickupHealthType::permanent:
                         health = pawn->getHealth()+this->getHealth();
                         if(pawn->getMaxHealth() < health)
                             pawn->setMaxHealth(health);
-                    case pickupHealthType::limited:
+                    case PickupHealthType::limited:
                         pawn->addHealth(this->getHealth());
                         break;
-                    case pickupHealthType::temporary:
+                    case PickupHealthType::temporary:
                         health = pawn->getHealth()+this->getHealth();
                         if(pawn->getMaxHealth() < health)
@@ -201,10 +201,10 @@
         else
         {
-            if(this->getHealthType() == pickupHealthType::temporary)
+            if(this->getHealthType() == PickupHealthType::temporary)
             {
                 PickupCarrier* carrier = this->getCarrier();
                 Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
-                if(pawn == NULL)
+                if(pawn == nullptr)
                 {
                     orxout(internal_error, context::pickups) << "Something went horribly wrong in Health Pickup. PickupCarrier is '" << carrier->getIdentifier()->getName() << "' instead of Pawn." << endl;
@@ -233,5 +233,5 @@
         Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
     @return
-        A pointer to the Pawn, or NULL if the conversion failed.
+        A pointer to the Pawn, or nullptr if the conversion failed.
     */
     Pawn* HealthPickup::carrierToPawnHelper(void)
@@ -240,5 +240,5 @@
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
-        if(pawn == NULL)
+        if(pawn == nullptr)
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in HealthPickup." << endl;
 
@@ -256,9 +256,9 @@
         switch(this->getHealthType())
         {
-            case pickupHealthType::limited:
+            case PickupHealthType::limited:
                 return HealthPickup::healthTypeLimited_s;
-            case pickupHealthType::temporary:
+            case PickupHealthType::temporary:
                 return HealthPickup::healthTypeTemporary_s;
-            case pickupHealthType::permanent:
+            case PickupHealthType::permanent:
                 return HealthPickup::healthTypePermanent_s;
             default:
@@ -308,9 +308,9 @@
     {
         if(type == HealthPickup::healthTypeLimited_s)
-            this->setHealthType(pickupHealthType::limited);
+            this->setHealthType(PickupHealthType::limited);
         else if(type == HealthPickup::healthTypeTemporary_s)
-            this->setHealthType(pickupHealthType::temporary);
+            this->setHealthType(PickupHealthType::temporary);
         else if(type == HealthPickup::healthTypePermanent_s)
-            this->setHealthType(pickupHealthType::permanent);
+            this->setHealthType(PickupHealthType::permanent);
         else
             orxout(internal_error, context::pickups) << "Invalid healthType '" << type << "' in HealthPickup." << endl;
Index: code/trunk/src/modules/pickup/items/HealthPickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/HealthPickup.h	(revision 11056)
+++ code/trunk/src/modules/pickup/items/HealthPickup.h	(revision 11071)
@@ -51,13 +51,10 @@
     @ingroup PickupItems
     */
-    namespace pickupHealthType
+    enum class PickupHealthType
     {
-        enum Value
-        {
-            limited, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" only increases the users health to its maximum health.
-            temporary, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" temporarily increases the users health even above its maximum health, but only as long as it is in use.
-            permanent //!< Means that the @ref orxonox::HealthPickup "HealthPickup" increases the users health even above its maximum health and increases the maximum health permanently such that it matches the new health.
-        };
-    }
+        limited, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" only increases the users health to its maximum health.
+        temporary, //!< Means that the @ref orxonox::HealthPickup "HealthPickup" temporarily increases the users health even above its maximum health, but only as long as it is in use.
+        permanent //!< Means that the @ref orxonox::HealthPickup "HealthPickup" increases the users health even above its maximum health and increases the maximum health permanently such that it matches the new health.
+    };
 
     /**
@@ -115,5 +112,5 @@
             @return Returns the health type as an enum.
             */
-            inline pickupHealthType::Value getHealthType(void) const
+            inline PickupHealthType getHealthType(void) const
                 { return this->healthType_; }
             const std::string& getHealthTypeAsString(void) const; //!< Get the health type of this pickup.
@@ -127,5 +124,5 @@
             @param type The type of this pickup as an enum.
             */
-            inline void setHealthType(pickupHealthType::Value type)
+            inline void setHealthType(PickupHealthType type)
                 { this->healthType_ = type; }
             void setHealthTypeAsString(const std::string& type); //!< Set the type of the HealthPickup.
@@ -139,5 +136,5 @@
             float maxHealthSave_; //!< Helper to remember what the actual maxHealth of the Pawn was before we changed it.
             float maxHealthOverwrite_; //!< Helper to remember with which value we overwrote the maxHealh, to detect if someone else changed it as well.
-            pickupHealthType::Value healthType_; //!< The type of the HealthPickup.
+            PickupHealthType healthType_; //!< The type of the HealthPickup.
 
             //! Strings for the health types.
Index: code/trunk/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/InvisiblePickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/InvisiblePickup.cc	(revision 11071)
@@ -139,5 +139,5 @@
     {
         Pawn* pawn = this->carrierToPawnHelper();
-        if(pawn == NULL)
+        if(pawn == nullptr)
             return false;
 
@@ -163,5 +163,5 @@
         Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
     @return
-        A pointer to the Pawn, or NULL if the conversion failed.
+        A pointer to the Pawn, or nullptr if the conversion failed.
     */
     Pawn* InvisiblePickup::carrierToPawnHelper(void)
@@ -170,5 +170,5 @@
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
-        if(pawn == NULL)
+        if(pawn == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in InvisiblePickup." << endl;
Index: code/trunk/src/modules/pickup/items/MetaPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/MetaPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/MetaPickup.cc	(revision 11071)
@@ -79,6 +79,6 @@
         this->addTarget(ClassIdentifier<PickupCarrier>::getIdentifier());
 
-        this->setDurationType(pickupDurationType::once);
-        this->metaType_ = pickupMetaType::none;
+        this->setDurationType(PickupDurationType::once);
+        this->metaType_ = PickupMetaType::none;
     }
 
@@ -104,11 +104,11 @@
 
         // If the MetaPickup transited to used, and the metaType is not none.
-        if(this->isUsed() && this->metaType_ != pickupMetaType::none)
+        if(this->isUsed() && this->metaType_ != PickupMetaType::none)
         {
             PickupCarrier* carrier = this->getCarrier();
-            if(this->getMetaType() != pickupMetaType::none && carrier != NULL)
+            if(this->getMetaType() != PickupMetaType::none && carrier != nullptr)
             {
                 // If the metaType is destroyCarrier, then the PickupCarrier is destroyed.
-                if(this->getMetaType() == pickupMetaType::destroyCarrier)
+                if(this->getMetaType() == PickupMetaType::destroyCarrier)
                 {
                     Pawn* pawn = orxonox_cast<Pawn*>(carrier);
@@ -118,22 +118,21 @@
                 std::set<Pickupable*> pickups = carrier->getPickups();
                 // Iterate over all Pickupables of the PickupCarrier.
-                for(std::set<Pickupable*>::iterator it = pickups.begin(); it != pickups.end(); it++)
+                for(Pickupable* pickup : pickups)
                 {
-                    Pickupable* pickup = (*it);
-                    if(pickup == NULL || pickup == this)
+                    if(pickup == nullptr || pickup == this)
                         continue;
 
                     // If the metaType is use, then the Pickupable is set to used.
-                    if(this->getMetaType() == pickupMetaType::use && !pickup->isUsed())
+                    if(this->getMetaType() == PickupMetaType::use && !pickup->isUsed())
                     {
                         pickup->setUsed(true);
                     }
                     // If the metaType is drop, then the Pickupable is dropped.
-                    else if(this->getMetaType() == pickupMetaType::drop)
+                    else if(this->getMetaType() == PickupMetaType::drop)
                     {
                         pickup->drop();
                     }
                     // If the metaType is destroy, then the Pickupable is destroyed.
-                    else if(this->getMetaType() == pickupMetaType::destroy)
+                    else if(this->getMetaType() == PickupMetaType::destroy)
                     {
                         pickup->Pickupable::destroy();
@@ -155,13 +154,13 @@
         switch(this->getMetaType())
         {
-            case pickupMetaType::none:
+            case PickupMetaType::none:
                 return MetaPickup::metaTypeNone_s;
-            case pickupMetaType::use:
+            case PickupMetaType::use:
                 return MetaPickup::metaTypeUse_s;
-            case pickupMetaType::drop:
+            case PickupMetaType::drop:
                 return MetaPickup::metaTypeDrop_s;
-            case pickupMetaType::destroy:
+            case PickupMetaType::destroy:
                 return MetaPickup::metaTypeDestroy_s;
-            case pickupMetaType::destroyCarrier:
+            case PickupMetaType::destroyCarrier:
                 return MetaPickup::metaTypeDestroyCarrier_s;
             default:
@@ -180,21 +179,21 @@
         if(type == MetaPickup::metaTypeNone_s)
         {
-            this->setMetaType(pickupMetaType::none);
+            this->setMetaType(PickupMetaType::none);
         }
         else if(type == MetaPickup::metaTypeUse_s)
         {
-            this->setMetaType(pickupMetaType::use);
+            this->setMetaType(PickupMetaType::use);
         }
         else if(type == MetaPickup::metaTypeDrop_s)
         {
-            this->setMetaType(pickupMetaType::drop);
+            this->setMetaType(PickupMetaType::drop);
         }
         else if(type == MetaPickup::metaTypeDestroy_s)
         {
-            this->setMetaType(pickupMetaType::destroy);
+            this->setMetaType(PickupMetaType::destroy);
         }
         else if(type == MetaPickup::metaTypeDestroyCarrier_s)
         {
-            this->setMetaType(pickupMetaType::destroyCarrier);
+            this->setMetaType(PickupMetaType::destroyCarrier);
         }
         else
Index: code/trunk/src/modules/pickup/items/MetaPickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/MetaPickup.h	(revision 11056)
+++ code/trunk/src/modules/pickup/items/MetaPickup.h	(revision 11071)
@@ -48,15 +48,12 @@
     @ingroup PickupItems
     */
-    namespace pickupMetaType
+    enum class PickupMetaType
     {
-        enum Value
-        {
-            none, //!< The @ref orxonox::MetaPickup "MetaPickup" does nothing.
-            use, //!< The @ref orxonox::MetaPickup "MetaPickup" uses all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
-            drop, //!< The @ref orxonox::MetaPickup "MetaPickup" drops all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
-            destroy, //!< The @ref orxonox::MetaPickup "MetaPickup" destroys all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
-            destroyCarrier //!< The @ref orxonox::MetaPickup "MetaPickup" destroys the @ref orxonox::PickupCarrier "PickupCarrier".
-        };
-    }
+        none, //!< The @ref orxonox::MetaPickup "MetaPickup" does nothing.
+        use, //!< The @ref orxonox::MetaPickup "MetaPickup" uses all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
+        drop, //!< The @ref orxonox::MetaPickup "MetaPickup" drops all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
+        destroy, //!< The @ref orxonox::MetaPickup "MetaPickup" destroys all the @ref orxonox::PickupCarrier "PickupCarriers'" @ref orxonox::Pickupable "Pickupables".
+        destroyCarrier //!< The @ref orxonox::MetaPickup "MetaPickup" destroys the @ref orxonox::PickupCarrier "PickupCarrier".
+    };
 
     /**
@@ -100,5 +97,5 @@
             @return Returns an enum with the meta type of the MetaPickup.
             */
-            inline pickupMetaType::Value getMetaType(void) const
+            inline PickupMetaType getMetaType(void) const
                 { return this->metaType_; }
             const std::string& getMetaTypeAsString(void) const; //!< Get the meta type of this MetaPickup.
@@ -109,5 +106,5 @@
             @param type The meta type as an enum.
             */
-            inline void setMetaType(pickupMetaType::Value type)
+            inline void setMetaType(PickupMetaType type)
                 { this->metaType_ =  type; }
             void setMetaTypeAsString(const std::string& type); //!< Set the meta type of this MetaPickup.
@@ -116,5 +113,5 @@
             void initialize(void); //!< Initializes the member variables.
 
-            pickupMetaType::Value metaType_; //!< The meta type of the MetaPickup, determines which actions are taken.
+            PickupMetaType metaType_; //!< The meta type of the MetaPickup, determines which actions are taken.
 
             //! Static strings for the meta types.
Index: code/trunk/src/modules/pickup/items/MunitionContainer.h
===================================================================
--- code/trunk/src/modules/pickup/items/MunitionContainer.h	(revision 11056)
+++ code/trunk/src/modules/pickup/items/MunitionContainer.h	(revision 11071)
@@ -53,5 +53,5 @@
             virtual ~MunitionContainer();
 
-            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode) override;
 
             inline const std::string& getMunitionName() const
Index: code/trunk/src/modules/pickup/items/MunitionPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/MunitionPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/MunitionPickup.cc	(revision 11071)
@@ -86,5 +86,5 @@
     void MunitionPickup::addMunitionContainer(MunitionContainer* munitionContainer)
     {
-        OrxAssert(munitionContainer != NULL, "The munitionContainer cannot be NULL.");
+        OrxAssert(munitionContainer != nullptr, "The munitionContainer cannot be nullptr.");
         this->munitionContainers_.push_back(munitionContainer);
     }
@@ -93,5 +93,5 @@
     {
         if(this->munitionContainers_.size() >= index)
-            return NULL;
+            return nullptr;
         else
             return this->munitionContainers_[index];
@@ -108,5 +108,5 @@
         Pawn* pawn = this->carrierToPawnHelper();
 
-        if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+        if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
             this->Pickupable::destroy();
 
@@ -114,16 +114,16 @@
         if(this->isUsed())
         {
-            for(std::vector<MunitionContainer*>::iterator it = this->munitionContainers_.begin(); it != this->munitionContainers_.end(); ++it)
+            for(MunitionContainer* container : this->munitionContainers_)
             {
                 //Get pointer to the appropriate munition
-                SubclassIdentifier<Munition> identifier = (*it)->getMunitionType();
+                SubclassIdentifier<Munition> identifier = container->getMunitionType();
                 Munition* munition = pawn->getMunition(&identifier);
                 if (munition)
                 {
                     // Add munition and magzines
-                    munition->addMunition((*it)->getMunitionAmount());
-                    munition->addMagazines((*it)->getMagazinesAmount());
+                    munition->addMunition(container->getMunitionAmount());
+                    munition->addMagazines(container->getMagazinesAmount());
                 }
-                (*it)->destroy();
+                container->destroy();
             }
             // This will destroy the pickp
@@ -140,5 +140,5 @@
         Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
     @return
-        A pointer to the Pawn, or NULL if the conversion failed.
+        A pointer to the Pawn, or nullptr if the conversion failed.
     */
     Pawn* MunitionPickup::carrierToPawnHelper(void)
@@ -147,5 +147,5 @@
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
-        if(pawn == NULL)
+        if(pawn == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in MunitionPickup." << endl;
Index: code/trunk/src/modules/pickup/items/MunitionPickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/MunitionPickup.h	(revision 11056)
+++ code/trunk/src/modules/pickup/items/MunitionPickup.h	(revision 11071)
@@ -59,9 +59,9 @@
             virtual ~MunitionPickup(); //!< Destructor.
 
-            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a MunitionPickup object through XML.
+            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode) override; //!< Method for creating a MunitionPickup object through XML.
 
-            virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
+            virtual void changedUsed(void) override; //!< Is called when the pickup has transited from used to unused or the other way around.
 
-            virtual void addMunitionContainer(MunitionContainer* munitionContainer);
+            void addMunitionContainer(MunitionContainer* munitionContainer);
             MunitionContainer* getMunitionContainer(unsigned int index);
 
Index: code/trunk/src/modules/pickup/items/ShieldPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/ShieldPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/ShieldPickup.cc	(revision 11071)
@@ -99,5 +99,5 @@
 
         Pawn* pawn = this->carrierToPawnHelper();
-        if(pawn == NULL)
+        if(pawn == nullptr)
             this->Pickupable::destroy();
 
@@ -143,5 +143,5 @@
     Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
     @return
-    A pointer to the Pawn, or NULL if the conversion failed.
+    A pointer to the Pawn, or nullptr if the conversion failed.
     */
     Pawn* ShieldPickup::carrierToPawnHelper(void)
@@ -150,5 +150,5 @@
         Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
-        if(pawn == NULL)
+        if(pawn == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in ShieldPickup." << endl;
Index: code/trunk/src/modules/pickup/items/ShrinkPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/ShrinkPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/ShrinkPickup.cc	(revision 11071)
@@ -146,5 +146,5 @@
         {
             Pawn* pawn = this->carrierToPawnHelper();
-            if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+            if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
             {
                 this->Pickupable::destroy();
@@ -173,5 +173,5 @@
                 //TODO: Deploy particle effect.
                 Pawn* pawn = this->carrierToPawnHelper();
-                if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+                if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                     return;
 
@@ -182,10 +182,10 @@
 
                 // Iterate over all camera positions and inversely move the camera to create a shrinking sensation.
-                const std::list< StrongPtr<CameraPosition> >& cameraPositions = pawn->getCameraPositions();
+                const std::list<StrongPtr<CameraPosition>>& cameraPositions = pawn->getCameraPositions();
                 int size = cameraPositions.size();
                 for(int index = 0; index < size; index++)
                 {
                     CameraPosition* cameraPos = pawn->getCameraPosition(index);
-                    if(cameraPos == NULL)
+                    if(cameraPos == nullptr)
                         continue;
                     cameraPos->setPosition(cameraPos->getPosition()/factor);
@@ -201,5 +201,5 @@
                 //TODO: Deploy particle effect.
                 Pawn* pawn = this->carrierToPawnHelper();
-                if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+                if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                     return;
 
@@ -208,10 +208,10 @@
 
                 // Iterate over all camera positions and inversely move the camera to create a shrinking sensation.
-                const std::list< StrongPtr<CameraPosition> >& cameraPositions = pawn->getCameraPositions();
+                const std::list<StrongPtr<CameraPosition>>& cameraPositions = pawn->getCameraPositions();
                 int size = cameraPositions.size();
                 for(int index = 0; index < size; index++)
                 {
                     CameraPosition* cameraPos = pawn->getCameraPosition(index);
-                    if(cameraPos == NULL)
+                    if(cameraPos == nullptr)
                         continue;
                     cameraPos->setPosition(cameraPos->getPosition()/this->shrinkFactor_);
@@ -237,5 +237,5 @@
             {
                 Pawn* pawn = this->carrierToPawnHelper();
-                if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+                if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                 {
                     this->Pickupable::destroy();
@@ -263,10 +263,10 @@
 
                 // Iterate over all camera positions and inversely move the camera to create a shrinking sensation.
-                const std::list< StrongPtr<CameraPosition> >& cameraPositions = pawn->getCameraPositions();
+                const std::list<StrongPtr<CameraPosition>>& cameraPositions = pawn->getCameraPositions();
                 int size = cameraPositions.size();
                 for(int index = 0; index < size; index++)
                 {
                     CameraPosition* cameraPos = pawn->getCameraPosition(index);
-                    if(cameraPos == NULL)
+                    if(cameraPos == nullptr)
                         continue;
                     cameraPos->setPosition(cameraPos->getPosition()/factor);
@@ -277,5 +277,5 @@
             {
                 Pawn* pawn = this->carrierToPawnHelper();
-                if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+                if(pawn == nullptr) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
                     this->Pickupable::destroy();
 
@@ -304,10 +304,10 @@
 
                 // Iterate over all camera positions and inversely move the camera to create a shrinking sensation.
-                const std::list< StrongPtr<CameraPosition> >& cameraPositions = pawn->getCameraPositions();
+                const std::list<StrongPtr<CameraPosition>>& cameraPositions = pawn->getCameraPositions();
                 int size = cameraPositions.size();
                 for(int index = 0; index < size; index++)
                 {
                     CameraPosition* cameraPos = pawn->getCameraPosition(index);
-                    if(cameraPos == NULL)
+                    if(cameraPos == nullptr)
                         continue;
                     cameraPos->setPosition(cameraPos->getPosition()/factor);
Index: code/trunk/src/modules/pickup/items/SpeedPickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/SpeedPickup.cc	(revision 11056)
+++ code/trunk/src/modules/pickup/items/SpeedPickup.cc	(revision 11071)
@@ -99,5 +99,5 @@
 
         SpaceShip* ship = this->carrierToSpaceShipHelper();
-        if(ship == NULL) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
+        if(ship == nullptr) // If the PickupCarrier is no SpaceShip, then this pickup is useless and therefore is destroyed.
             this->Pickupable::destroy();
 
@@ -143,5 +143,5 @@
         Helper to transform the PickupCarrier to a SpaceShip, and throw an error message if the conversion fails.
     @return
-        A pointer to the SpaceShip, or NULL if the conversion failed.
+        A pointer to the SpaceShip, or nullptr if the conversion failed.
     */
     SpaceShip* SpeedPickup::carrierToSpaceShipHelper(void)
@@ -150,5 +150,5 @@
         SpaceShip* ship = orxonox_cast<SpaceShip*>(carrier);
 
-        if(ship == NULL)
+        if(ship == nullptr)
         {
             orxout(internal_error, context::pickups) << "Invalid PickupCarrier in SpeedPickup." << endl;
Index: code/trunk/src/modules/pong/Pong.cc
===================================================================
--- code/trunk/src/modules/pong/Pong.cc	(revision 11056)
+++ code/trunk/src/modules/pong/Pong.cc	(revision 11071)
@@ -64,8 +64,8 @@
         RegisterObject(Pong);
 
-        this->center_ = 0;
-        this->ball_ = 0;
-        this->bat_[0] = 0;
-        this->bat_[1] = 0;
+        this->center_ = nullptr;
+        this->ball_ = nullptr;
+        this->bat_[0] = nullptr;
+        this->bat_[1] = nullptr;
 
         this->setHUDTemplate("PongHUD");
@@ -103,8 +103,8 @@
     void Pong::cleanup()
     {
-        if (this->ball_ != NULL) // Destroy the ball, if present.
+        if (this->ball_ != nullptr) // Destroy the ball, if present.
         {
             this->ball_->destroy();
-            this->ball_ = 0;
+            this->ball_ = nullptr;
         }
 
@@ -112,8 +112,8 @@
         for (size_t i = 0; i < 2; ++i)
         {
-            if (this->bat_[0] != NULL)
+            if (this->bat_[0] != nullptr)
             {
                 this->bat_[0]->destroy();
-                this->bat_[0] = 0;
+                this->bat_[0] = nullptr;
             }
         }
@@ -127,7 +127,7 @@
     void Pong::start()
     {
-        if (this->center_ != NULL) // There needs to be a PongCenterpoint, i.e. the area the game takes place.
-        {
-            if (this->ball_ == NULL) // If there is no ball, create a new ball.
+        if (this->center_ != nullptr) // There needs to be a PongCenterpoint, i.e. the area the game takes place.
+        {
+            if (this->ball_ == nullptr) // If there is no ball, create a new ball.
             {
                 this->ball_ = new PongBall(this->center_->getContext());
@@ -145,10 +145,10 @@
 
             // If one of the bats is missing, create it. Apply the template for the bats as specified in the centerpoint.
-            for (size_t i = 0; i < 2; ++i)
+            for (WeakPtr<orxonox::PongBat>& bat : this->bat_)
             {
-                if (this->bat_[i] == NULL)
+                if (bat == nullptr)
                 {
-                    this->bat_[i] = new PongBat(this->center_->getContext());
-                    this->bat_[i]->addTemplate(this->center_->getBattemplate());
+                    bat = new PongBat(this->center_->getContext());
+                    bat->addTemplate(this->center_->getBattemplate());
                 }
             }
@@ -211,11 +211,11 @@
     {
         // first spawn human players to assign always the left bat to the player in singleplayer
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (const auto& mapEntry : this->players_)
+            if (mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(mapEntry.first);
         // now spawn bots
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (!it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (const auto& mapEntry : this->players_)
+            if (!mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(mapEntry.first);
     }
 
@@ -231,5 +231,5 @@
 
         // If the first (left) bat has no player.
-        if (this->bat_[0]->getPlayer() == NULL)
+        if (this->bat_[0]->getPlayer() == nullptr)
         {
             player->startControl(this->bat_[0]);
@@ -237,5 +237,5 @@
         }
         // If the second (right) bat has no player.
-        else if (this->bat_[1]->getPlayer() == NULL)
+        else if (this->bat_[1]->getPlayer() == nullptr)
         {
             player->startControl(this->bat_[1]);
@@ -247,5 +247,5 @@
 
         // If the player is an AI, it receives a pointer to the ball.
-        if (player->getController() != NULL && player->getController()->isA(Class(PongAI)))
+        if (player->getController() != nullptr && player->getController()->isA(Class(PongAI)))
         {
             PongAI* ai = orxonox_cast<PongAI*>(player->getController());
@@ -262,5 +262,5 @@
         Deathmatch::playerScored(player, score);
 
-        if (this->center_ != NULL) // If there is a centerpoint.
+        if (this->center_ != nullptr) // If there is a centerpoint.
         {
             // Fire an event for the player that has scored, to be able to react to it in the level, e.g. by displaying fireworks.
@@ -271,10 +271,10 @@
 
             // Also announce, that the player has scored.
-            if (player != NULL)
+            if (player != nullptr)
                 this->gtinfo_->sendAnnounceMessage(player->getName() + " scored");
         }
 
         // If there is a ball present, reset its position, velocity and acceleration.
-        if (this->ball_ != NULL)
+        if (this->ball_ != nullptr)
         {
             this->ball_->setPosition(Vector3::ZERO);
@@ -285,5 +285,5 @@
 
         // If there are bats reset them to the middle position.
-        if (this->bat_[0] != NULL && this->bat_[1] != NULL)
+        if (this->bat_[0] != nullptr && this->bat_[1] != nullptr)
         {
             this->bat_[0]->setPosition(-this->center_->getFieldDimension().x / 2, 0, 0);
@@ -292,5 +292,5 @@
 
         // If a player gets enough points, he won the game -> end of game
-        PlayerInfo* winningPlayer = NULL;
+        PlayerInfo* winningPlayer = nullptr;
         if (this->getLeftPlayer() && this->getScore(this->getLeftPlayer()) >= scoreLimit_)
             winningPlayer = this->getLeftPlayer();
@@ -314,5 +314,5 @@
     void Pong::startBall()
     {
-        if (this->ball_ != NULL && this->center_ != NULL)
+        if (this->ball_ != nullptr && this->center_ != nullptr)
             this->ball_->setSpeed(this->center_->getBallSpeed());
     }
@@ -322,12 +322,12 @@
         Get the left player.
     @return
-        Returns a pointer to the player playing on the left. If there is no left player, NULL is returned.
+        Returns a pointer to the player playing on the left. If there is no left player, nullptr is returned.
     */
     PlayerInfo* Pong::getLeftPlayer() const
     {
-        if (this->bat_ != NULL && this->bat_[0] != NULL)
+        if (this->bat_ != nullptr && this->bat_[0] != nullptr)
             return this->bat_[0]->getPlayer();
         else
-            return 0;
+            return nullptr;
     }
 
@@ -336,12 +336,12 @@
         Get the right player.
     @return
-        Returns a pointer to the player playing on the right. If there is no right player, NULL is returned.
+        Returns a pointer to the player playing on the right. If there is no right player, nullptr is returned.
     */
     PlayerInfo* Pong::getRightPlayer() const
     {
-        if (this->bat_ != NULL && this->bat_[1] != NULL)
+        if (this->bat_ != nullptr && this->bat_[1] != nullptr)
             return this->bat_[1]->getPlayer();
         else
-            return 0;
+            return nullptr;
     }
 }
Index: code/trunk/src/modules/pong/Pong.h
===================================================================
--- code/trunk/src/modules/pong/Pong.h	(revision 11056)
+++ code/trunk/src/modules/pong/Pong.h	(revision 11071)
@@ -68,10 +68,10 @@
             virtual ~Pong(); //!< Destructor. Cleans up, if initialized.
 
-            virtual void start(); //!< Starts the Pong minigame.
-            virtual void end(); ///!< Ends the Pong minigame.
+            virtual void start() override; //!< Starts the Pong minigame.
+            virtual void end() override; ///!< Ends the Pong minigame.
 
-            virtual void spawnPlayer(PlayerInfo* player); //!< Spawns the input player.
+            virtual void spawnPlayer(PlayerInfo* player) override; //!< Spawns the input player.
 
-            virtual void playerScored(PlayerInfo* player, int score = 1); //!< Is called when the player scored.
+            virtual void playerScored(PlayerInfo* player, int score = 1) override; //!< Is called when the player scored.
 
             /**
@@ -87,5 +87,5 @@
 
         protected:
-            virtual void spawnPlayersIfRequested(); //!< Spawns players, and fills the rest up with bots.
+            virtual void spawnPlayersIfRequested() override; //!< Spawns players, and fills the rest up with bots.
 
             void startBall(); //!< Starts the ball with some default speed.
Index: code/trunk/src/modules/pong/PongAI.cc
===================================================================
--- code/trunk/src/modules/pong/PongAI.cc	(revision 11056)
+++ code/trunk/src/modules/pong/PongAI.cc	(revision 11071)
@@ -57,5 +57,5 @@
         RegisterObject(PongAI);
 
-        this->ball_ = 0;
+        this->ball_ = nullptr;
         this->ballDirection_ = Vector2::ZERO;
         this->ballEndPosition_ = 0;
@@ -77,6 +77,6 @@
     PongAI::~PongAI()
     {
-        for (std::list<std::pair<Timer*, char> >::iterator it = this->reactionTimers_.begin(); it != this->reactionTimers_.end(); ++it)
-            delete it->first;
+        for (std::pair<Timer*, char>& pair : this->reactionTimers_)
+            delete pair.first;
     }
 
@@ -101,5 +101,5 @@
     {
         // If either the ball, or the controllable entity (i.e. the bat) don't exist (or aren't set).
-        if (this->ball_  == NULL || this->getControllableEntity() == NULL)
+        if (this->ball_  == nullptr || this->getControllableEntity() == nullptr)
             return;
 
@@ -362,5 +362,5 @@
             // Add a new Timer
             Timer* timer = new Timer(delay, false, createExecutor(createFunctor(&PongAI::delayedMove, this)));
-            this->reactionTimers_.push_back(std::pair<Timer*, char>(timer, direction));
+            this->reactionTimers_.emplace_back(timer, direction);
         }
         else
Index: code/trunk/src/modules/pong/PongAI.h
===================================================================
--- code/trunk/src/modules/pong/PongAI.h	(revision 11056)
+++ code/trunk/src/modules/pong/PongAI.h	(revision 11071)
@@ -66,5 +66,5 @@
             void setConfigValues();
 
-            virtual void tick(float dt); //!< Implements the behavior of the PongAI (i.e. its intelligence).
+            virtual void tick(float dt) override; //!< Implements the behavior of the PongAI (i.e. its intelligence).
 
             /**
@@ -89,5 +89,5 @@
             float strength_; //!< The strength of the AI. Ranging from 0 to 1.
 
-            std::list<std::pair<Timer*, char> > reactionTimers_; //!< A list of reaction timers and the directions that take effect when their timer expires.
+            std::list<std::pair<Timer*, char>> reactionTimers_; //!< A list of reaction timers and the directions that take effect when their timer expires.
             char movement_; //!< The planned movement.
             char oldMove_; //!< The previous movement.
Index: code/trunk/src/modules/pong/PongBall.cc
===================================================================
--- code/trunk/src/modules/pong/PongBall.cc	(revision 11056)
+++ code/trunk/src/modules/pong/PongBall.cc	(revision 11071)
@@ -61,5 +61,5 @@
         this->speed_ = 0;
         this->accelerationFactor_ = 1.0f;
-        this->bat_ = 0;
+        this->bat_ = nullptr;
         this->bDeleteBats_ = false;
         this->batID_ = new unsigned int[2];
@@ -82,7 +82,7 @@
              else
              {
-                 this->defScoreSound_ = 0;
-                 this->defBatSound_ = 0;
-                 this->defBoundarySound_ = 0;
+                 this->defScoreSound_ = nullptr;
+                 this->defBatSound_ = nullptr;
+                 this->defBoundarySound_ = nullptr;
              }
     }
@@ -163,8 +163,8 @@
             float distance = 0;
 
-            if (this->bat_ != NULL) // If there are bats.
+            if (this->bat_ != nullptr) // If there are bats.
             {
                 // If the right boundary has been crossed.
-                if (position.x > this->fieldWidth_ / 2 && this->bat_[1] != NULL)
+                if (position.x > this->fieldWidth_ / 2 && this->bat_[1] != nullptr)
                 {
                     // Calculate the distance (in z-direction) between the ball and the center of the bat, weighted by half of the effective length of the bat (with additional 10%)
@@ -195,5 +195,5 @@
                 }
                 // If the left boundary has been crossed.
-                else if (position.x < -this->fieldWidth_ / 2 && this->bat_[0] != NULL)
+                else if (position.x < -this->fieldWidth_ / 2 && this->bat_[0] != nullptr)
                 {
                     // Calculate the distance (in z-direction) between the ball and the center of the bat, weighted by half of the effective length of the bat (with additional 10%)
@@ -285,5 +285,5 @@
     {
         // Make space for the bats, if they don't exist, yet.
-        if (this->bat_ == NULL)
+        if (this->bat_ == nullptr)
         {
             this->bat_ = new WeakPtr<PongBat>[2];
Index: code/trunk/src/modules/pong/PongBall.h
===================================================================
--- code/trunk/src/modules/pong/PongBall.h	(revision 11056)
+++ code/trunk/src/modules/pong/PongBall.h	(revision 11071)
@@ -63,7 +63,7 @@
             virtual ~PongBall();
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             /**
Index: code/trunk/src/modules/pong/PongBat.h
===================================================================
--- code/trunk/src/modules/pong/PongBat.h	(revision 11056)
+++ code/trunk/src/modules/pong/PongBat.h	(revision 11071)
@@ -60,10 +60,10 @@
             virtual ~PongBat() {}
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual void moveFrontBack(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void moveRightLeft(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
+            virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
 
-            virtual void changedPlayer(); //!< Is called when the player changed.
+            virtual void changedPlayer() override; //!< Is called when the player changed.
 
             /**
Index: code/trunk/src/modules/pong/PongCenterpoint.cc
===================================================================
--- code/trunk/src/modules/pong/PongCenterpoint.cc	(revision 11056)
+++ code/trunk/src/modules/pong/PongCenterpoint.cc	(revision 11071)
@@ -84,5 +84,5 @@
     void PongCenterpoint::checkGametype()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Pong)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Pong)))
         {
             Pong* pongGametype = orxonox_cast<Pong*>(this->getGametype());
Index: code/trunk/src/modules/pong/PongCenterpoint.h
===================================================================
--- code/trunk/src/modules/pong/PongCenterpoint.h	(revision 11056)
+++ code/trunk/src/modules/pong/PongCenterpoint.h	(revision 11071)
@@ -124,5 +124,5 @@
             virtual ~PongCenterpoint() {}
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method to create a PongCenterpoint through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a PongCenterpoint through XML.
 
             /**
Index: code/trunk/src/modules/pong/PongScore.cc
===================================================================
--- code/trunk/src/modules/pong/PongScore.cc	(revision 11056)
+++ code/trunk/src/modules/pong/PongScore.cc	(revision 11071)
@@ -55,5 +55,5 @@
         RegisterObject(PongScore);
 
-        this->owner_ = 0;
+        this->owner_ = nullptr;
 
         this->bShowName_ = false;
@@ -97,5 +97,5 @@
 
         // If the owner is set. The owner being a Pong game.
-        if (this->owner_ != NULL)
+        if (this->owner_ != nullptr)
         {
             if (!this->owner_->hasEnded())
@@ -113,10 +113,10 @@
 
             // Save the name and score of each player as a string.
-            if (player1_ != NULL)
+            if (player1_ != nullptr)
             {
                 name1 = player1_->getName();
                 score1 = multi_cast<std::string>(this->owner_->getScore(player1_));
             }
-            if (player2_ != NULL)
+            if (player2_ != nullptr)
             {
                 name2 = player2_->getName();
@@ -128,5 +128,5 @@
             if (this->bShowLeftPlayer_)
             {
-                if (this->bShowName_ && this->bShowScore_ && player1_ != NULL)
+                if (this->bShowName_ && this->bShowScore_ && player1_ != nullptr)
                     output1 = name1 + " - " + score1;
                 else if (this->bShowScore_)
@@ -139,5 +139,5 @@
             if (this->bShowRightPlayer_)
             {
-                if (this->bShowName_ && this->bShowScore_ && player2_ != NULL)
+                if (this->bShowName_ && this->bShowScore_ && player2_ != nullptr)
                     output2 = score2 + " - " + name2;
                 else if (this->bShowScore_)
@@ -163,5 +163,5 @@
     @brief
         Is called when the owner changes.
-        Sets the owner to NULL, if it is not a pointer to a Pong game.
+        Sets the owner to nullptr, if it is not a pointer to a Pong game.
     */
     void PongScore::changedOwner()
@@ -169,8 +169,8 @@
         SUPER(PongScore, changedOwner);
 
-        if (this->getOwner() != NULL && this->getOwner()->getGametype())
+        if (this->getOwner() != nullptr && this->getOwner()->getGametype())
             this->owner_ = orxonox_cast<Pong*>(this->getOwner()->getGametype());
         else
-            this->owner_ = 0;
+            this->owner_ = nullptr;
     }
 }
Index: code/trunk/src/modules/pong/PongScore.h
===================================================================
--- code/trunk/src/modules/pong/PongScore.h	(revision 11056)
+++ code/trunk/src/modules/pong/PongScore.h	(revision 11071)
@@ -60,7 +60,7 @@
             virtual ~PongScore();
 
-            virtual void tick(float dt); //!< Creates and sets the caption to be displayed by the PongScore.
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner(); //!< Is called when the owner changes.
+            virtual void tick(float dt) override; //!< Creates and sets the caption to be displayed by the PongScore.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedOwner() override; //!< Is called when the owner changes.
 
             /**
Index: code/trunk/src/modules/portals/PortalEndPoint.cc
===================================================================
--- code/trunk/src/modules/portals/PortalEndPoint.cc	(revision 11056)
+++ code/trunk/src/modules/portals/PortalEndPoint.cc	(revision 11071)
@@ -48,5 +48,5 @@
     std::map<unsigned int, PortalEndPoint *> PortalEndPoint::idMap_s;
 
-    PortalEndPoint::PortalEndPoint(Context* context) : StaticEntity(context), RadarViewable(this, static_cast<WorldEntity*>(this)), id_(0), trigger_(NULL), reenterDelay_(0)
+    PortalEndPoint::PortalEndPoint(Context* context) : StaticEntity(context), RadarViewable(this, static_cast<WorldEntity*>(this)), id_(0), trigger_(nullptr), reenterDelay_(0)
     {
         RegisterObject(PortalEndPoint);
@@ -57,5 +57,5 @@
 
         this->setRadarObjectColour(ColourValue::White);
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarVisibility(true);
         if( GameMode::isMaster() )
@@ -72,8 +72,8 @@
     {
         if (this->isInitialized()) {
-            if (this->trigger_ != NULL)
+            if (this->trigger_ != nullptr)
                 this->trigger_->destroy();
 
-            if (this->portalSound_ != NULL)
+            if (this->portalSound_ != nullptr)
                 this->portalSound_->destroy();
         }
@@ -112,9 +112,9 @@
 
         MultiTriggerContainer * cont = orxonox_cast<MultiTriggerContainer *>(trigger);
-        if(cont == 0)
+        if(cont == nullptr)
             return true;
 
         DistanceMultiTrigger * originatingTrigger = orxonox_cast<DistanceMultiTrigger *>(cont->getOriginator());
-        if(originatingTrigger == 0)
+        if(originatingTrigger == nullptr)
         {
             return true;
@@ -122,5 +122,5 @@
 
         MobileEntity * entity = orxonox_cast<MobileEntity *>(cont->getData());
-        if(entity == 0)
+        if(entity == nullptr)
             return true;
 
Index: code/trunk/src/modules/portals/PortalEndPoint.h
===================================================================
--- code/trunk/src/modules/portals/PortalEndPoint.h	(revision 11056)
+++ code/trunk/src/modules/portals/PortalEndPoint.h	(revision 11071)
@@ -63,11 +63,11 @@
             virtual ~PortalEndPoint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedActivity(void);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void changedActivity(void) override;
 
             inline void setTarget(const std::string & target)                 //!< add types which are allowed to activate the PortalEndPoint
                 { this->trigger_->addTarget(target); }
 
-            void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
             static std::map<unsigned int, PortalEndPoint *> idMap_s; //!< Maps the id of each PortalEndPoint to a pointer to that PortalEndPoint
             inline void setReenterDelay(unsigned int seconds)
Index: code/trunk/src/modules/portals/PortalLink.cc
===================================================================
--- code/trunk/src/modules/portals/PortalLink.cc	(revision 11056)
+++ code/trunk/src/modules/portals/PortalLink.cc	(revision 11071)
@@ -40,5 +40,5 @@
     std::map<PortalEndPoint *, PortalEndPoint *> PortalLink::links_s;
 
-    PortalLink::PortalLink(Context* context) : BaseObject(context), fromID_(0), toID_(0), from_(0), to_(0)
+    PortalLink::PortalLink(Context* context) : BaseObject(context), fromID_(0), toID_(0), from_(nullptr), to_(nullptr)
     {
         RegisterObject(PortalLink);
@@ -67,5 +67,5 @@
     void PortalLink::use(MobileEntity* entity, PortalEndPoint * entrance)
     {
-        if(entrance == 0)
+        if(entrance == nullptr)
             return;
 
Index: code/trunk/src/modules/portals/PortalLink.h
===================================================================
--- code/trunk/src/modules/portals/PortalLink.h	(revision 11056)
+++ code/trunk/src/modules/portals/PortalLink.h	(revision 11071)
@@ -56,5 +56,5 @@
             PortalLink(Context* context);
             virtual ~PortalLink();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             inline void setFromID(unsigned int from)    //!< set the ID of the PortalEndPoint which should act as the entrance of this link
Index: code/trunk/src/modules/questsystem/GlobalQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/GlobalQuest.cc	(revision 11071)
@@ -94,6 +94,6 @@
 
         // Iterate through all players possessing this Quest.
-        for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
-            QuestEffect::invokeEffects(*it, this->getFailEffectList());
+        for(PlayerInfo* questPlayer : players_)
+            QuestEffect::invokeEffects(questPlayer, this->getFailEffectList());
 
         return true;
@@ -119,6 +119,6 @@
 
         // Iterate through all players possessing the Quest.
-        for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++)
-            QuestEffect::invokeEffects(*it, this->getCompleteEffectList());
+        for(PlayerInfo* questPlayer : players_)
+            QuestEffect::invokeEffects(questPlayer, this->getCompleteEffectList());
 
         Quest::complete(player);
@@ -138,5 +138,5 @@
     bool GlobalQuest::isStartable(const PlayerInfo* player) const
     {
-        if(!(this->getParentQuest() == NULL || this->getParentQuest()->isActive(player)))
+        if(!(this->getParentQuest() == nullptr || this->getParentQuest()->isActive(player)))
             return false;
 
@@ -177,5 +177,5 @@
         The player.
     */
-    QuestStatus::Value GlobalQuest::getStatus(const PlayerInfo* player) const
+    QuestStatus GlobalQuest::getStatus(const PlayerInfo* player) const
     {
         assert(player);
@@ -198,7 +198,7 @@
         The status to be set.
     @return
-        Returns false if player is NULL.
-    */
-    bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
+        Returns false if player is nullptr.
+    */
+    bool GlobalQuest::setStatus(PlayerInfo* player, const QuestStatus & status)
     {
         assert(player);
@@ -242,12 +242,12 @@
     {
         int i = index;
-        for (std::list<QuestEffect*>::const_iterator effect = this->rewards_.begin(); effect != this->rewards_.end(); ++effect)
+        for (QuestEffect* reward : this->rewards_)
         {
             if(i == 0)
-               return *effect;
+               return reward;
 
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
Index: code/trunk/src/modules/questsystem/GlobalQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/GlobalQuest.h	(revision 11071)
@@ -93,21 +93,21 @@
             virtual ~GlobalQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a GlobalQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a GlobalQuest object through XML.
 
-            virtual bool fail(PlayerInfo* player); //!< Fails the Quest.
-            virtual bool complete(PlayerInfo* player); //!< Completes the Quest.
+            virtual bool fail(PlayerInfo* player) override; //!< Fails the Quest.
+            virtual bool complete(PlayerInfo* player) override; //!< Completes the Quest.
 
         protected:
-            virtual bool isStartable(const PlayerInfo* player) const; //!< Checks whether the Quest can be started.
-            virtual bool isFailable(const PlayerInfo* player) const; //!< Checks whether the Quest can be failed.
-            virtual bool isCompletable(const PlayerInfo* player) const; //!< Checks whether the Quest can be completed.
+            virtual bool isStartable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be started.
+            virtual bool isFailable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be failed.
+            virtual bool isCompletable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be completed.
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
 
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status); //!< Sets the status for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) override; //!< Sets the status for a specific player.
 
         private:
             std::set<PlayerInfo*> players_; //!< The set of players which possess this Quest.
-            QuestStatus::Value status_; //!< The status of this Quest.
+            QuestStatus status_; //!< The status of this Quest.
             std::list<QuestEffect*> rewards_; //!< Reward QuestEffects only invoked on the player completing the Quest.
 
Index: code/trunk/src/modules/questsystem/LocalQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/LocalQuest.cc	(revision 11071)
@@ -128,5 +128,5 @@
     bool LocalQuest::isStartable(const PlayerInfo* player) const
     {
-        if(!(this->getParentQuest() == NULL || this->getParentQuest()->isActive(player)))
+        if(!(this->getParentQuest() == nullptr || this->getParentQuest()->isActive(player)))
             return false;
 
@@ -168,9 +168,9 @@
         Returns the status of the Quest for the input player.
     */
-    QuestStatus::Value LocalQuest::getStatus(const PlayerInfo* player) const
+    QuestStatus LocalQuest::getStatus(const PlayerInfo* player) const
     {
         assert(player);
 
-        std::map<const PlayerInfo*, QuestStatus::Value>::const_iterator it = this->playerStatus_.find(player);
+        std::map<const PlayerInfo*, QuestStatus>::const_iterator it = this->playerStatus_.find(player);
         if (it != this->playerStatus_.end()) // If there is a player in the map.
             return it->second;
@@ -188,7 +188,7 @@
         The status to be set.
     @return
-        Returns false if player is NULL.
-    */
-    bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus::Value & status)
+        Returns false if player is nullptr.
+    */
+    bool LocalQuest::setStatus(PlayerInfo* player, const QuestStatus & status)
     {
         assert(player);
Index: code/trunk/src/modules/questsystem/LocalQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/LocalQuest.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/LocalQuest.h	(revision 11071)
@@ -87,19 +87,19 @@
             virtual ~LocalQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a LocalQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a LocalQuest object through XML.
 
-            virtual bool fail(PlayerInfo* player); //!< Fails the Quest.
-            virtual bool complete(PlayerInfo* player); //!< Completes the Quest.
+            virtual bool fail(PlayerInfo* player) override; //!< Fails the Quest.
+            virtual bool complete(PlayerInfo* player) override; //!< Completes the Quest.
 
         protected:
-            virtual bool isStartable(const PlayerInfo* player) const; //!< Checks whether the Quest can be started.
-            virtual bool isFailable(const PlayerInfo* player) const; //!< Checks whether the Quest can be failed.
-            virtual bool isCompletable(const PlayerInfo* player) const; //!< Checks whether the Quest can be completed.
+            virtual bool isStartable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be started.
+            virtual bool isFailable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be failed.
+            virtual bool isCompletable(const PlayerInfo* player) const override; //!< Checks whether the Quest can be completed.
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const; //!< Returns the status of the Quest for a specific player.
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status); //!< Sets the status for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const override; //!< Returns the status of the Quest for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) override; //!< Sets the status for a specific player.
 
         private:
-            std::map<const PlayerInfo*, QuestStatus::Value> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.
+            std::map<const PlayerInfo*, QuestStatus> playerStatus_; //!< List of the status for each player, with the Player-pointer as key.
 
     };
Index: code/trunk/src/modules/questsystem/Quest.cc
===================================================================
--- code/trunk/src/modules/questsystem/Quest.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/Quest.cc	(revision 11071)
@@ -55,5 +55,5 @@
         RegisterObject(Quest);
 
-        this->parentQuest_ = NULL;
+        this->parentQuest_ = nullptr;
     }
 
@@ -183,5 +183,5 @@
         The index.
     @return
-        Returns a pointer to the sub-quest at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the sub-quest at the given index. nullptr if there is no element at the given index.
     */
     const Quest* Quest::getSubQuest(unsigned int index) const
@@ -190,13 +190,13 @@
 
         // Iterate through all subquests.
-        for (std::list<Quest*>::const_iterator subQuest = this->subQuests_.begin(); subQuest != this->subQuests_.end(); ++subQuest)
+        for (Quest* quest : this->subQuests_)
         {
             if(i == 0) // We're counting down...
-               return *subQuest;
+               return quest;
 
             i--;
         }
 
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -207,5 +207,5 @@
         The index.
     @return
-        Returns a pointer to the QuestHint at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the QuestHint at the given index. nullptr if there is no element at the given index.
     */
     const QuestHint* Quest::getHint(unsigned int index) const
@@ -214,12 +214,12 @@
 
         // Iterate through all QuestHints.
-        for (std::list<QuestHint*>::const_iterator hint = this->hints_.begin(); hint != this->hints_.end(); ++hint)
+        for (QuestHint* hint : this->hints_)
         {
             if(i == 0) // We're counting down...
-               return *hint;
+               return hint;
 
             i--;
         }
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -230,5 +230,5 @@
         The index.
     @return
-        Returns a pointer to the fail QuestEffect at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the fail QuestEffect at the given index. nullptr if there is no element at the given index.
     */
     const QuestEffect* Quest::getFailEffect(unsigned int index) const
@@ -237,12 +237,12 @@
 
         // Iterate through all fail QuestEffects.
-        for (std::list<QuestEffect*>::const_iterator effect = this->failEffects_.begin(); effect != this->failEffects_.end(); ++effect)
+        for (QuestEffect* effect : this->failEffects_)
         {
             if(i == 0) // We're counting down...
-               return *effect;
+               return effect;
 
             i--;
         }
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -253,5 +253,5 @@
         The index.
     @return
-        Returns a pointer to the complete QuestEffect at the given index. NULL if there is no element at the given index.
+        Returns a pointer to the complete QuestEffect at the given index. nullptr if there is no element at the given index.
     */
     const QuestEffect* Quest::getCompleteEffect(unsigned int index) const
@@ -260,12 +260,12 @@
 
         // Iterate through all complete QuestEffects.
-        for (std::list<QuestEffect*>::const_iterator effect = this->completeEffects_.begin(); effect != this->completeEffects_.end(); ++effect)
+        for (QuestEffect* effect : this->completeEffects_)
         {
             if(i == 0) // We're counting down...
-               return *effect;
+               return effect;
 
             i--;
         }
-        return NULL; // If the index is greater than the number of elements in the list.
+        return nullptr; // If the index is greater than the number of elements in the list.
     }
 
@@ -280,5 +280,5 @@
     bool Quest::isInactive(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return true;
         return this->getStatus(player) == QuestStatus::Inactive;
@@ -295,5 +295,5 @@
     bool Quest::isActive(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return false;
         return this->getStatus(player) == QuestStatus::Active;
@@ -310,5 +310,5 @@
     bool Quest::isFailed(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return false;
         return this->getStatus(player) == QuestStatus::Failed;
@@ -325,5 +325,5 @@
     bool Quest::isCompleted(const PlayerInfo* player) const
     {
-        if(player == NULL)
+        if(player == nullptr)
             return false;
         return this->getStatus(player) == QuestStatus::Completed;
Index: code/trunk/src/modules/questsystem/Quest.h
===================================================================
--- code/trunk/src/modules/questsystem/Quest.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/Quest.h	(revision 11071)
@@ -51,14 +51,11 @@
     @ingroup Questsystem
     */
-    namespace QuestStatus
+    enum class QuestStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::Quest "Quest" is inactive.
-            Active, //!< The @ref orxonox::Quest "Quest" is active.
-            Failed, //!< The @ref orxonox::Quest "Quest" has been failed.
-            Completed //!< The @ref orxonox::Quest "Quest" has been completed.
-        };
-    }
+        Inactive, //!< The @ref orxonox::Quest "Quest" is inactive.
+        Active, //!< The @ref orxonox::Quest "Quest" is active.
+        Failed, //!< The @ref orxonox::Quest "Quest" has been failed.
+        Completed //!< The @ref orxonox::Quest "Quest" has been completed.
+    };
 
     /**
@@ -85,5 +82,5 @@
             virtual ~Quest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a Quest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a Quest object through XML.
 
             /**
@@ -143,6 +140,6 @@
                 { return this->completeEffects_; }
 
-            virtual QuestStatus::Value getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.
-            virtual bool setStatus(PlayerInfo* player, const QuestStatus::Value & status) = 0; //!< Changes the status for a specific player.
+            virtual QuestStatus getStatus(const PlayerInfo* player) const = 0; //!< Returns the status of the Quest for a specific player.
+            virtual bool setStatus(PlayerInfo* player, const QuestStatus & status) = 0; //!< Changes the status for a specific player.
 
         private:
Index: code/trunk/src/modules/questsystem/QuestDescription.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestDescription.cc	(revision 11071)
@@ -119,5 +119,5 @@
         }
 
-        NotificationListener::sendNotification(message, QuestDescription::SENDER, notificationMessageType::info, notificationSendMode::network, player->getClientID());
+        NotificationListener::sendNotification(message, QuestDescription::SENDER, NotificationMessageType::info, NotificationSendMode::network, player->getClientID());
         return true;
     }
Index: code/trunk/src/modules/questsystem/QuestDescription.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestDescription.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestDescription.h	(revision 11071)
@@ -67,5 +67,5 @@
             virtual ~QuestDescription();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestDescription object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestDescription object through XML.
 
 // tolua_begin
Index: code/trunk/src/modules/questsystem/QuestEffect.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestEffect.cc	(revision 11071)
@@ -74,6 +74,6 @@
         orxout(verbose, context::quests) << "Invoking QuestEffects on player: " << player << " ."  << endl;
 
-        for (std::list<QuestEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++)
-            temp = temp && (*effect)->invoke(player);
+        for (QuestEffect* effect : effects)
+            temp = temp && effect->invoke(player);
 
         return temp;
Index: code/trunk/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestEffectBeacon.cc	(revision 11071)
@@ -113,8 +113,8 @@
 
         PlayerTrigger* pTrigger = orxonox_cast<PlayerTrigger*>(trigger);
-        PlayerInfo* player = NULL;
+        PlayerInfo* player = nullptr;
 
         // If the trigger is a PlayerTrigger.
-        if(pTrigger != NULL)
+        if(pTrigger != nullptr)
         {
             if(!pTrigger->isForPlayer())  // The PlayerTrigger is not exclusively for Pawns which means we cannot extract one.
@@ -126,5 +126,5 @@
             return false;
 
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(verbose, context::quests) << "The QuestEffectBeacon was triggered by an entity other than a Pawn. (" << trigger->getIdentifier()->getName() << ")" << endl;
@@ -236,12 +236,12 @@
     {
         int i = index;
-        for (std::list<QuestEffect*>::const_iterator effect = this->effects_.begin(); effect != this->effects_.end(); ++effect)
+        for (QuestEffect* effect : this->effects_)
         {
             if(i == 0)
-               return *effect;
+               return effect;
 
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
Index: code/trunk/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestEffectBeacon.h	(revision 11071)
@@ -50,12 +50,9 @@
     @ingroup Questsystem
     */
-    namespace QuestEffectBeaconStatus
+    enum class QuestEffectBeaconStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is inactive.
-            Active //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is active.
-        };
-    }
+        Inactive, //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is inactive.
+        Active //!< The @ref orxonox::QuestEffectBeacon "QuestEffectBeacon" is active.
+    };
 
     /**
@@ -96,6 +93,6 @@
             virtual ~QuestEffectBeacon();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestEffectBeacon object through XML.
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestEffectBeacon object through XML.
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             bool execute(bool bTriggered, BaseObject* trigger); //!< Executes the QuestEffects of the QuestEffectBeacon.
@@ -125,5 +122,5 @@
             std::list<QuestEffect*> effects_; //!< The list of QuestEffects to be invoked on the executing player.
             int times_; //!< Number of times the beacon can be exectued.
-            QuestEffectBeaconStatus::Value status_; //!< The status of the QuestEffectBeacon, Can be eighter active or inactive.
+            QuestEffectBeaconStatus status_; //!< The status of the QuestEffectBeacon, Can be eighter active or inactive.
 
             bool setTimes(const int & n); //!< Set the number of times the QuestEffectBeacon can be executed.
Index: code/trunk/src/modules/questsystem/QuestHint.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestHint.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestHint.cc	(revision 11071)
@@ -88,13 +88,13 @@
     bool QuestHint::isActive(const PlayerInfo* player) const
     {
-        if(player == NULL) // If the player is NULL, the Quest obviously can't be active.
+        if(player == nullptr) // If the player is nullptr, the Quest obviously can't be active.
             return false;
 
         // Find the player.
-        std::map<const PlayerInfo*, QuestHintStatus::Value>::const_iterator it = this->playerStatus_.find(player);
+        std::map<const PlayerInfo*, QuestHintStatus>::const_iterator it = this->playerStatus_.find(player);
         if (it != this->playerStatus_.end()) // If the player is in the map.
-            return it->second;
+            return (it->second == QuestHintStatus::Active);
 
-        return QuestStatus::Inactive;
+        return false;
     }
 
Index: code/trunk/src/modules/questsystem/QuestHint.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestHint.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestHint.h	(revision 11071)
@@ -50,12 +50,9 @@
     @ingroup Questsystem
     */
-    namespace QuestHintStatus
+    enum class QuestHintStatus
     {
-        enum Value
-        {
-            Inactive, //!< The @ref orxonox::QuestHint "QuestHint" is inactive.
-            Active //!< The @ref orxonox::QuestHint "QuestHint" is active.
-        };
-    }
+        Inactive, //!< The @ref orxonox::QuestHint "QuestHint" is inactive.
+        Active //!< The @ref orxonox::QuestHint "QuestHint" is active.
+    };
 
     /**
@@ -85,5 +82,5 @@
             virtual ~QuestHint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestHint object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestHint object through XML.
 
             bool isActive(const PlayerInfo* player) const; //!< Returns true if the QuestHint is active for the input player.
@@ -101,5 +98,5 @@
         private:
             Quest* quest_; //!< The Quest the QuestHint belongs to.
-            std::map<const PlayerInfo*, QuestHintStatus::Value> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.
+            std::map<const PlayerInfo*, QuestHintStatus> playerStatus_; //!< List of the states for each player, with the Player-pointer as key.
 
     }; // tolua_export
Index: code/trunk/src/modules/questsystem/QuestItem.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestItem.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestItem.h	(revision 11071)
@@ -63,5 +63,5 @@
             virtual ~QuestItem();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestItem object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestItem object through XML.
 
             /**
Index: code/trunk/src/modules/questsystem/QuestListener.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestListener.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestListener.cc	(revision 11071)
@@ -59,5 +59,5 @@
 
         this->mode_ = QuestListenerMode::All;
-        this->quest_ = NULL;
+        this->quest_ = nullptr;
     }
 
@@ -81,5 +81,5 @@
         XMLPortParam(QuestListener, "mode", setMode, getMode, xmlelement, mode);
 
-        if(this->quest_ != NULL)
+        if(this->quest_ != nullptr)
             this->quest_->addListener(this); // Adds the QuestListener to the Quests list of listeners.
 
@@ -97,7 +97,6 @@
     /* static */ void QuestListener::advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status)
     {
-        for (std::list<QuestListener*>::iterator it = listeners.begin(); it != listeners.end(); ++it) // Iterate through all QuestListeners
-        {
-            QuestListener* listener = *it;
+        for (QuestListener* listener : listeners) // Iterate through all QuestListeners
+        {
             if(listener->getMode() == status || listener->getMode() == QuestListener::ALL) // Check whether the status change affects the give QuestListener.
                 listener->execute();
@@ -117,5 +116,5 @@
         this->quest_ = QuestManager::getInstance().findQuest(id); // Find the Quest corresponding to the given questId.
 
-        if(this->quest_ == NULL) // If there is no such Quest.
+        if(this->quest_ == nullptr) // If there is no such Quest.
         {
             ThrowException(Argument, "This is bad! The QuestListener has not found a Quest with a corresponding id..");
Index: code/trunk/src/modules/questsystem/QuestListener.h
===================================================================
--- code/trunk/src/modules/questsystem/QuestListener.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestListener.h	(revision 11071)
@@ -50,14 +50,11 @@
     @ingroup Questsystem
     */
-    namespace QuestListenerMode
+    enum class QuestListenerMode
     {
-        enum Value
-        {
-            All, //!< Listens to all events.
-            Start, //!< Only listens to events pertaining the starting of @ref orxonox::Quest "Quests".
-            Fail, //!< Only listens to events pertaining the failing of @ref orxonox::Quest "Quests".
-            Complete //!< Only listens to events pertaining the completing of @ref orxonox::Quest "Quests".
-        };
-    }
+        All, //!< Listens to all events.
+        Start, //!< Only listens to events pertaining the starting of @ref orxonox::Quest "Quests".
+        Fail, //!< Only listens to events pertaining the failing of @ref orxonox::Quest "Quests".
+        Complete //!< Only listens to events pertaining the completing of @ref orxonox::Quest "Quests".
+    };
 
     /**
@@ -90,5 +87,5 @@
             virtual ~QuestListener();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestListener object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a QuestListener object through XML.
 
             static void advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status); //!< Makes all QuestListener in the list aware that a certain status change has occured.
@@ -103,5 +100,5 @@
 
         private:
-            QuestListenerMode::Value mode_; //!< The mode of the QuestListener.
+            QuestListenerMode mode_; //!< The mode of the QuestListener.
             Quest* quest_; //!< A pointer to the Quest the QuestListener is reacting to.
 
Index: code/trunk/src/modules/questsystem/QuestManager.cc
===================================================================
--- code/trunk/src/modules/questsystem/QuestManager.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/QuestManager.cc	(revision 11071)
@@ -93,7 +93,7 @@
     bool QuestManager::registerQuest(Quest* quest)
     {
-        if(quest == NULL)
-        {
-            orxout(internal_error, context::quests) << "Quest pointer is NULL." << endl;
+        if(quest == nullptr)
+        {
+            orxout(internal_error, context::quests) << "Quest pointer is nullptr." << endl;
             return false;
         }
@@ -135,7 +135,7 @@
     bool QuestManager::registerHint(QuestHint* hint)
     {
-        if(hint == NULL)
-        {
-            orxout(internal_error, context::quests) << "Quest pointer is NULL." << endl;
+        if(hint == nullptr)
+        {
+            orxout(internal_error, context::quests) << "Quest pointer is nullptr." << endl;
             return false;
         }
@@ -173,5 +173,5 @@
     @return
         Returns a pointer to the Quest with the input id.
-        Returns NULL if there is no Quest with the given questId.
+        Returns nullptr if there is no Quest with the given questId.
     @throws
         Throws an exception if the given questId is invalid.
@@ -188,5 +188,5 @@
         else
         {
-           quest = NULL;
+           quest = nullptr;
            orxout(internal_warning, context::quests) << "The quest with id {" << questId << "} is nowhere to be found." << endl;
         }
@@ -202,5 +202,5 @@
     @return
         Returns a pointer to the QuestHint with the input id.
-        Returns NULL if there is no QuestHint with the given hintId.
+        Returns nullptr if there is no QuestHint with the given hintId.
     @throws
         Throws an exception if the given hintId is invalid.
@@ -217,5 +217,5 @@
         else
         {
-           hint = NULL;
+           hint = nullptr;
            orxout(internal_warning, context::quests) << "The hint with id {" << hintId << "} is nowhere to be found." << endl;
         }
@@ -235,7 +235,7 @@
     {
         int numQuests = 0;
-        for(std::map<std::string, Quest*>::iterator it = this->questMap_.begin(); it != this->questMap_.end(); it++)
-        {
-            if(it->second->getParentQuest() == NULL && !it->second->isInactive(player))
+        for(const auto& mapEntry : this->questMap_)
+        {
+            if(mapEntry.second->getParentQuest() == nullptr && !mapEntry.second->isInactive(player))
                 numQuests++;
         }
@@ -255,10 +255,10 @@
     Quest* QuestManager::getRootQuest(PlayerInfo* player, int index)
     {
-        for(std::map<std::string, Quest*>::iterator it = this->questMap_.begin(); it != this->questMap_.end(); it++)
-        {
-            if(it->second->getParentQuest() == NULL && !it->second->isInactive(player) && index-- == 0)
-                return it->second;
-        }
-        return NULL;
+        for(const auto& mapEntry : this->questMap_)
+        {
+            if(mapEntry.second->getParentQuest() == nullptr && !mapEntry.second->isInactive(player) && index-- == 0)
+                return mapEntry.second;
+        }
+        return nullptr;
     }
 
@@ -275,12 +275,12 @@
     int QuestManager::getNumSubQuests(Quest* quest, PlayerInfo* player)
     {
-        if(quest == NULL)
+        if(quest == nullptr)
             return this->getNumRootQuests(player);
 
         std::list<Quest*> quests = quest->getSubQuestList();
         int numQuests = 0;
-        for(std::list<Quest*>::iterator it = quests.begin(); it != quests.end(); it++)
-        {
-            if(!(*it)->isInactive(player))
+        for(Quest* subquest : quests)
+        {
+            if(!subquest->isInactive(player))
                 numQuests++;
         }
@@ -300,14 +300,14 @@
     Quest* QuestManager::getSubQuest(Quest* quest, PlayerInfo* player, int index)
     {
-        if(quest == NULL)
+        if(quest == nullptr)
             return this->getRootQuest(player, index);
 
         std::list<Quest*> quests = quest->getSubQuestList();
-        for(std::list<Quest*>::iterator it = quests.begin(); it != quests.end(); it++)
-        {
-            if(!(*it)->isInactive(player) && index-- == 0)
-                return *it;
-        }
-        return NULL;
+        for(Quest* subquest : quests)
+        {
+            if(!subquest->isInactive(player) && index-- == 0)
+                return quest;
+        }
+        return nullptr;
     }
 
@@ -326,7 +326,7 @@
         std::list<QuestHint*> hints = quest->getHintsList();
         int numHints = 0;
-        for(std::list<QuestHint*>::iterator it = hints.begin(); it != hints.end(); it++)
-        {
-            if((*it)->isActive(player))
+        for(QuestHint* hint : hints)
+        {
+            if(hint->isActive(player))
                 numHints++;
         }
@@ -349,10 +349,10 @@
     {
         std::list<QuestHint*> hints = quest->getHintsList();
-        for(std::list<QuestHint*>::iterator it = hints.begin(); it != hints.end(); it++)
-        {
-            if((*it)->isActive(player) && index-- == 0)
-                return *it;
-        }
-        return NULL;
+        for(QuestHint* hint : hints)
+        {
+            if(hint->isActive(player) && index-- == 0)
+                return hint;
+        }
+        return nullptr;
     }
 
@@ -367,5 +367,5 @@
     Quest* QuestManager::getParentQuest(Quest* quest)
     {
-        OrxAssert(quest, "The input Quest is NULL.");
+        OrxAssert(quest, "The input Quest is nullptr.");
         return quest->getParentQuest();
     }
@@ -381,5 +381,5 @@
     QuestDescription* QuestManager::getDescription(Quest* item)
     {
-        OrxAssert(item, "The input Quest is NULL.");
+        OrxAssert(item, "The input Quest is nullptr.");
         return item->getDescription();
     }
@@ -395,5 +395,5 @@
     QuestDescription* QuestManager::getDescription(QuestHint* item)
     {
-        OrxAssert(item, "The input QuestHint is NULL.");
+        OrxAssert(item, "The input QuestHint is nullptr.");
         return item->getDescription();
     }
@@ -409,5 +409,5 @@
     const std::string QuestManager::getId(Quest* item) const
     {
-        OrxAssert(item, "The input Quest is NULL.");
+        OrxAssert(item, "The input Quest is nullptr.");
         return item->getId();
     }
@@ -423,5 +423,5 @@
     const std::string QuestManager::getId(QuestHint* item) const
     {
-        OrxAssert(item, "The input QuestHint is NULL.");
+        OrxAssert(item, "The input QuestHint is nullptr.");
         return item->getId();
     }
@@ -440,8 +440,8 @@
     {
         PlayerInfo* player = GUIManager::getInstance().getPlayer(guiName);
-        if(player == NULL)
+        if(player == nullptr)
         {
             orxout(internal_error, context::quests) << "GUIOverlay with name '" << guiName << "' has no player." << endl;
-            return NULL;
+            return nullptr;
         }
 
Index: code/trunk/src/modules/questsystem/effects/AddQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/AddQuest.cc	(revision 11071)
@@ -90,5 +90,5 @@
         {
             Quest* quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->start(player))
+            if(quest == nullptr || !quest->start(player))
                return false;
         }
Index: code/trunk/src/modules/questsystem/effects/AddQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/AddQuest.h	(revision 11071)
@@ -62,7 +62,7 @@
         virtual ~AddQuest();
 
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuest object through XML.
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a AddQuest object through XML.
 
-        virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+        virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
     };
Index: code/trunk/src/modules/questsystem/effects/AddQuestHint.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/AddQuestHint.cc	(revision 11071)
@@ -113,5 +113,5 @@
         {
             QuestHint* hint = QuestManager::getInstance().findHint(this->hintId_);
-            if(hint == NULL || !hint->setActive(player))
+            if(hint == nullptr || !hint->setActive(player))
                 return false;
         }
Index: code/trunk/src/modules/questsystem/effects/AddQuestHint.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/AddQuestHint.h	(revision 11071)
@@ -64,7 +64,7 @@
             virtual ~AddQuestHint();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddQuestHint object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a AddQuestHint object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
         private:
Index: code/trunk/src/modules/questsystem/effects/AddReward.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/AddReward.cc	(revision 11071)
@@ -84,11 +84,11 @@
     {
         int i = index;
-        for (std::list<Rewardable*>::const_iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward)
+        for (Rewardable* reward : this->rewards_)
         {
             if(i == 0)
-               return *reward;
+               return reward;
             i--;
         }
-        return NULL;
+        return nullptr;
     }
 
@@ -106,6 +106,6 @@
 
         bool temp = true;
-        for ( std::list<Rewardable*>::iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward )
-            temp = temp && (*reward)->reward(player);
+        for (Rewardable* reward : this->rewards_)
+            temp = temp && reward->reward(player);
 
         orxout(verbose, context::quests) << "Rewardable successfully added to player." << player << " ." << endl;
Index: code/trunk/src/modules/questsystem/effects/AddReward.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/AddReward.h	(revision 11071)
@@ -68,7 +68,7 @@
             virtual ~AddReward();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a AddReward object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a AddReward object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
         private:
Index: code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/ChangeQuestStatus.h	(revision 11071)
@@ -59,5 +59,5 @@
             virtual ~ChangeQuestStatus();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a ChangeQuestStatus object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a ChangeQuestStatus object through XML.
 
             virtual bool invoke(PlayerInfo* player) = 0; //!< Invokes the QuestEffect.
Index: code/trunk/src/modules/questsystem/effects/CompleteQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/CompleteQuest.cc	(revision 11071)
@@ -92,5 +92,5 @@
         {
             quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->complete(player))
+            if(quest == nullptr || !quest->complete(player))
                return false;
         }
Index: code/trunk/src/modules/questsystem/effects/CompleteQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/CompleteQuest.h	(revision 11071)
@@ -62,7 +62,7 @@
             virtual ~CompleteQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a CompleteQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a CompleteQuest object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
     };
Index: code/trunk/src/modules/questsystem/effects/FailQuest.cc
===================================================================
--- code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/FailQuest.cc	(revision 11071)
@@ -91,5 +91,5 @@
         {
             quest = QuestManager::getInstance().findQuest(this->getQuestId());
-            if(quest == NULL || !quest->fail(player))
+            if(quest == nullptr || !quest->fail(player))
                return false;
         }
Index: code/trunk/src/modules/questsystem/effects/FailQuest.h
===================================================================
--- code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 11056)
+++ code/trunk/src/modules/questsystem/effects/FailQuest.h	(revision 11071)
@@ -62,7 +62,7 @@
             virtual ~FailQuest();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a FailQuest object through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method for creating a FailQuest object through XML.
 
-            virtual bool invoke(PlayerInfo* player); //!< Invokes the QuestEffect.
+            virtual bool invoke(PlayerInfo* player) override; //!< Invokes the QuestEffect.
 
     };
Index: code/trunk/src/modules/tetris/Tetris.cc
===================================================================
--- code/trunk/src/modules/tetris/Tetris.cc	(revision 11056)
+++ code/trunk/src/modules/tetris/Tetris.cc	(revision 11071)
@@ -66,5 +66,5 @@
         RegisterObject(Tetris);
 
-        this->activeBrick_ = 0;
+        this->activeBrick_ = nullptr;
 
         // Pre-set the timer, but don't start it yet.
@@ -72,7 +72,7 @@
         this->starttimer_.stopTimer();
 
-        this->player_ = NULL;
+        this->player_ = nullptr;
         this->setHUDTemplate("TetrisHUD");
-        this->futureBrick_ = 0;
+        this->futureBrick_ = nullptr;
     }
 
@@ -96,14 +96,14 @@
         {
             this->activeBrick_->destroy();
-            this->activeBrick_ = 0;
+            this->activeBrick_ = nullptr;
         }
         if (this->futureBrick_)
         {
             this->futureBrick_->destroy();
-            this->futureBrick_ = 0;
-        }
-
-        for (std::list<StrongPtr<TetrisStone> >::iterator it = this->stones_.begin(); it != this->stones_.end(); ++it)
-            (*it)->destroy();
+            this->futureBrick_ = nullptr;
+        }
+
+        for (TetrisStone* stone : this->stones_)
+            stone->destroy();
         this->stones_.clear();
     }
@@ -113,5 +113,5 @@
         SUPER(Tetris, tick, dt);
 
-        if((this->activeBrick_ != NULL)&&(!this->hasEnded()))
+        if((this->activeBrick_ != nullptr)&&(!this->hasEnded()))
         {
             if(!this->isValidBrickPosition(this->activeBrick_))
@@ -136,7 +136,7 @@
             return false;
 
-        for(std::list<StrongPtr<TetrisStone> >::const_iterator it = this->stones_.begin(); it != this->stones_.end(); ++it)
-        {
-            const Vector3& currentStonePosition = (*it)->getPosition(); //!< Saves the position of the currentStone
+        for(TetrisStone* someStone : this->stones_)
+        {
+            const Vector3& currentStonePosition = someStone->getPosition(); //!< Saves the position of the currentStone
 
             if((position.x == currentStonePosition.x) && abs(position.y-currentStonePosition.y) < this->center_->getStoneSize())
@@ -192,8 +192,8 @@
 
         // check for collisions with all stones
-        for(std::list<StrongPtr<TetrisStone> >::const_iterator it = this->stones_.begin(); it != this->stones_.end(); ++it)
+        for(TetrisStone* someStone : this->stones_)
         {
             //Vector3 currentStonePosition = rotateVector((*it)->getPosition(), this->activeBrick_->getRotationCount());
-            const Vector3& currentStonePosition = (*it)->getPosition(); //!< Saves the position of the currentStone
+            const Vector3& currentStonePosition = someStone->getPosition(); //!< Saves the position of the currentStone
 
             //filter out cases where the falling stone is already below a steady stone
@@ -290,5 +290,5 @@
     void Tetris::start()
     {
-        if (this->center_ != NULL) // There needs to be a TetrisCenterpoint, i.e. the area the game takes place.
+        if (this->center_ != nullptr) // There needs to be a TetrisCenterpoint, i.e. the area the game takes place.
         {
             // Create the first brick.
@@ -323,5 +323,5 @@
     {
         this->activeBrick_->setVelocity(Vector3::ZERO);
-        if(this->activeBrick_ != NULL)
+        if(this->activeBrick_ != nullptr)
         {
             this->player_->stopControl();
@@ -341,7 +341,7 @@
     {
         // Spawn a human player.
-        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)
-            if (it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))
-                this->spawnPlayer(it->first);
+        for (const auto& mapEntry : this->players_)
+            if (mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_))
+                this->spawnPlayer(mapEntry.first);
     }
     
@@ -351,5 +351,5 @@
         if(player && player->isHumanPlayer())
         {
-            if(this->activeBrick_ != NULL)
+            if(this->activeBrick_ != nullptr)
             {
                 this->player_->stopControl();
@@ -370,5 +370,5 @@
         assert(player);
 
-        if(this->player_ == NULL)
+        if(this->player_ == nullptr)
         {
             this->player_ = player;
@@ -381,9 +381,9 @@
     void Tetris::startBrick(void)
     {
-        if(this->player_ == NULL)
+        if(this->player_ == nullptr)
             return;
 
         unsigned int cameraIndex = 0;
-        if(this->activeBrick_ != NULL)
+        if(this->activeBrick_ != nullptr)
         {
             // Get camera settings
@@ -396,5 +396,5 @@
         // Make the last brick to be created the active brick.
         this->activeBrick_ = this->futureBrick_;
-        this->futureBrick_ = 0;
+        this->futureBrick_ = nullptr;
 
         // set its position
@@ -437,5 +437,5 @@
         Get the player.
     @return
-        Returns a pointer to the player. If there is no player, NULL is returned.
+        Returns a pointer to the player. If there is no player, nullptr is returned.
     */
     PlayerInfo* Tetris::getPlayer(void) const
@@ -469,7 +469,7 @@
         {
             stonesPerRow = 0;
-            for(std::list<StrongPtr<TetrisStone> >::iterator it = this->stones_.begin(); it != this->stones_.end(); )
-            {
-                std::list<StrongPtr<TetrisStone> >::iterator it_temp = it++;
+            for(std::list<StrongPtr<TetrisStone>>::iterator it = this->stones_.begin(); it != this->stones_.end(); )
+            {
+                std::list<StrongPtr<TetrisStone>>::iterator it_temp = it++;
                 correctPosition = static_cast<unsigned int>(((*it_temp)->getPosition().y - 5)/this->center_->getStoneSize());
                 if(correctPosition == row)
@@ -491,5 +491,5 @@
     void Tetris::clearRow(unsigned int row)
     {// clear the full row
-        for(std::list<StrongPtr<TetrisStone> >::iterator it = this->stones_.begin(); it != this->stones_.end(); )
+        for(std::list<StrongPtr<TetrisStone>>::iterator it = this->stones_.begin(); it != this->stones_.end(); )
         {
             if(static_cast<unsigned int>(((*it)->getPosition().y - 5)/this->center_->getStoneSize()) == row)
@@ -502,8 +502,8 @@
         }
       // adjust height of stones above the deleted row //TODO: check if this could be a source of a bug.
-        for(std::list<StrongPtr<TetrisStone> >::iterator it = this->stones_.begin(); it != this->stones_.end(); ++it)
-        {
-            if(static_cast<unsigned int>(((*it)->getPosition().y - 5)/this->center_->getStoneSize()) > row)
-                (*it)->setPosition((*it)->getPosition()-Vector3(0,10,0));
+        for(TetrisStone* stone : this->stones_)
+        {
+            if(static_cast<unsigned int>((stone->getPosition().y - 5)/this->center_->getStoneSize()) > row)
+                stone->setPosition(stone->getPosition()-Vector3(0,10,0));
         }
 
Index: code/trunk/src/modules/tetris/Tetris.h
===================================================================
--- code/trunk/src/modules/tetris/Tetris.h	(revision 11056)
+++ code/trunk/src/modules/tetris/Tetris.h	(revision 11071)
@@ -58,11 +58,11 @@
             virtual ~Tetris(); //!< Destructor. Cleans up, if initialized.
 
-            virtual void start(void); //!< Starts the Tetris minigame.
-            virtual void end(void); ///!< Ends the Tetris minigame.
+            virtual void start(void) override; //!< Starts the Tetris minigame.
+            virtual void end(void) override; ///!< Ends the Tetris minigame.
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual void spawnPlayer(PlayerInfo* player); //!< Spawns the input player.
-            virtual bool playerLeft(PlayerInfo* player);
+            virtual void spawnPlayer(PlayerInfo* player) override; //!< Spawns the input player.
+            virtual bool playerLeft(PlayerInfo* player) override;
 
             void setCenterpoint(TetrisCenterpoint* center);
@@ -77,5 +77,5 @@
 
         protected:
-            virtual void spawnPlayersIfRequested(); //!< Spawns player.
+            virtual void spawnPlayersIfRequested() override; //!< Spawns player.
 
 
@@ -93,5 +93,5 @@
 
             WeakPtr<TetrisCenterpoint> center_; //!< The playing field.
-            std::list<StrongPtr<TetrisStone> > stones_; //!< A list of all stones in play.
+            std::list<StrongPtr<TetrisStone>> stones_; //!< A list of all stones in play.
             WeakPtr<TetrisBrick> activeBrick_;
             WeakPtr<TetrisBrick> futureBrick_;
Index: code/trunk/src/modules/tetris/TetrisBrick.cc
===================================================================
--- code/trunk/src/modules/tetris/TetrisBrick.cc	(revision 11056)
+++ code/trunk/src/modules/tetris/TetrisBrick.cc	(revision 11071)
@@ -81,14 +81,14 @@
             this->attach(stone);
             this->formBrick(stone, i);
-            if(this->tetris_ != NULL)
+            if(this->tetris_ != nullptr)
             {
                 stone->setGame(this->tetris_);
-                if(this->tetris_->getCenterpoint() != NULL)
+                if(this->tetris_->getCenterpoint() != nullptr)
                     stone->addTemplate(this->tetris_->getCenterpoint()->getStoneTemplate());
                 else
-                    orxout()<< "tetris_->getCenterpoint == NULL in TetrisBrick.cc"<< endl;
+                    orxout()<< "tetris_->getCenterpoint == nullptr in TetrisBrick.cc"<< endl;
             }
             else
-                orxout()<< "tetris_ == NULL in TetrisBrick.cc"<< endl;
+                orxout()<< "tetris_ == nullptr in TetrisBrick.cc"<< endl;
         }
     }
@@ -161,5 +161,5 @@
         if(i < this->brickStones_.size())
             return this->brickStones_[i];
-        else return NULL;
+        else return nullptr;
     }
 
@@ -167,10 +167,10 @@
     Tetris* TetrisBrick::getTetris()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Tetris)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Tetris)))
         {
             Tetris* tetrisGametype = orxonox_cast<Tetris*>(this->getGametype());
             return tetrisGametype;
         }
-        return NULL;
+        return nullptr;
     }
 
@@ -239,9 +239,9 @@
     {
         assert(this->tetris_);
-        for(unsigned int i = 0; i < this->brickStones_.size(); i++)
-        {
-            this->brickStones_[i]->detachFromParent();
-            this->brickStones_[i]->attachToParent(center);
-            this->brickStones_[i]->setPosition(this->getPosition()+this->tetris_->rotateVector(this->brickStones_[i]->getPosition(),this->rotationCount_ ));
+        for(TetrisStone* stone : this->brickStones_)
+        {
+            stone->detachFromParent();
+            stone->attachToParent(center);
+            stone->setPosition(this->getPosition()+this->tetris_->rotateVector(stone->getPosition(),this->rotationCount_ ));
         }
         this->brickStones_.clear();
Index: code/trunk/src/modules/tetris/TetrisBrick.h
===================================================================
--- code/trunk/src/modules/tetris/TetrisBrick.h	(revision 11056)
+++ code/trunk/src/modules/tetris/TetrisBrick.h	(revision 11071)
@@ -57,7 +57,7 @@
             virtual ~TetrisBrick() {}
 
-            virtual void moveFrontBack(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void moveRightLeft(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void changedPlayer(); //!< Is called when the player changed.
+            virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void changedPlayer() override; //!< Is called when the player changed.
 
             bool isValidMove(const Vector3& position, bool isRotation);
Index: code/trunk/src/modules/tetris/TetrisCenterpoint.cc
===================================================================
--- code/trunk/src/modules/tetris/TetrisCenterpoint.cc	(revision 11056)
+++ code/trunk/src/modules/tetris/TetrisCenterpoint.cc	(revision 11071)
@@ -84,5 +84,5 @@
     void TetrisCenterpoint::checkGametype()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(Tetris)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Tetris)))
         {
             Tetris* tetrisGametype = orxonox_cast<Tetris*>(this->getGametype());
Index: code/trunk/src/modules/tetris/TetrisCenterpoint.h
===================================================================
--- code/trunk/src/modules/tetris/TetrisCenterpoint.h	(revision 11056)
+++ code/trunk/src/modules/tetris/TetrisCenterpoint.h	(revision 11071)
@@ -62,5 +62,5 @@
             virtual ~TetrisCenterpoint() {}
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method to create a TetrisCenterpoint through XML.
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a TetrisCenterpoint through XML.
 
             /**
Index: code/trunk/src/modules/tetris/TetrisScore.cc
===================================================================
--- code/trunk/src/modules/tetris/TetrisScore.cc	(revision 11056)
+++ code/trunk/src/modules/tetris/TetrisScore.cc	(revision 11071)
@@ -36,5 +36,4 @@
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 #include "util/Convert.h"
 
@@ -56,6 +55,6 @@
         RegisterObject(TetrisScore);
 
-        this->owner_ = 0;
-        this->player_ = NULL;
+        this->owner_ = nullptr;
+        this->player_ = nullptr;
     }
 
@@ -66,13 +65,4 @@
     TetrisScore::~TetrisScore()
     {
-    }
-
-    /**
-    @brief
-        Method to create a TetrisScore through XML.
-    */
-    void TetrisScore::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(TetrisScore, XMLPort, xmlelement, mode);
     }
 
@@ -89,5 +79,5 @@
 
         // If the owner is set. The owner being a Tetris game.
-        if (this->owner_ != NULL)
+        if (this->owner_ != nullptr)
         {
             std::string score("0");
@@ -101,5 +91,5 @@
             {
                 // Save the name and score of each player as a string.
-                if (player_ != NULL)
+                if (player_ != nullptr)
                     score = multi_cast<std::string>(this->owner_->getScore(player_));
             }
@@ -111,5 +101,5 @@
     @brief
         Is called when the owner changes.
-        Sets the owner to NULL, if it is not a pointer to a Tetris game.
+        Sets the owner to nullptr, if it is not a pointer to a Tetris game.
     */
     void TetrisScore::changedOwner()
@@ -117,8 +107,8 @@
         SUPER(TetrisScore, changedOwner);
 
-        if (this->getOwner() != NULL && this->getOwner()->getGametype())
+        if (this->getOwner() != nullptr && this->getOwner()->getGametype())
             this->owner_ = orxonox_cast<Tetris*>(this->getOwner()->getGametype());
         else
-            this->owner_ = 0;
+            this->owner_ = nullptr;
     }
 }
Index: code/trunk/src/modules/tetris/TetrisScore.h
===================================================================
--- code/trunk/src/modules/tetris/TetrisScore.h	(revision 11056)
+++ code/trunk/src/modules/tetris/TetrisScore.h	(revision 11071)
@@ -60,7 +60,6 @@
             virtual ~TetrisScore();
 
-            virtual void tick(float dt); //!< Creates and sets the caption to be displayed by the TetrisScore.
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void changedOwner(); //!< Is called when the owner changes.
+            virtual void tick(float dt) override; //!< Creates and sets the caption to be displayed by the TetrisScore.
+            virtual void changedOwner() override; //!< Is called when the owner changes.
 
         private:
Index: code/trunk/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefense.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefense.cc	(revision 11071)
@@ -90,6 +90,6 @@
         RegisterObject(TowerDefense);
 
-        selecter = NULL;
-        this->player_ = NULL;        
+        selecter = nullptr;
+        this->player_ = nullptr;
         this->setHUDTemplate("TowerDefenseHUD");
         this->waveNumber_ = 0;
@@ -117,7 +117,7 @@
     void TowerDefense::start()
     {        
-        if (center_ != NULL) // There needs to be a TowerDefenseCenterpoint, i.e. the area the game takes place.
-        {
-            if (selecter == NULL)
+        if (center_ != nullptr) // There needs to be a TowerDefenseCenterpoint, i.e. the area the game takes place.
+        {
+            if (selecter == nullptr)
             {
                 selecter = new TowerDefenseSelecter(this->center_->getContext());                
@@ -176,5 +176,5 @@
         WaypointController* controller = (WaypointController*)(en1->getXMLController());
 
-        if (controller != NULL && waypoints_.size() > 1)
+        if (controller != nullptr && waypoints_.size() > 1)
         {
             en1->setPosition(waypoints_.at(0)->getPosition() + offset_);
@@ -183,8 +183,8 @@
             en1->lookAt(waypoints_.at(1)->getPosition() + offset_);
 
-            for (unsigned int i = 0; i < waypoints_.size(); ++ i)
+            for (TowerDefenseField* field : waypoints_)
             {
                 orxonox::WeakPtr<MovableEntity> waypoint = new MovableEntity(this->center_->getContext());
-                waypoint->setPosition(waypoints_.at(i)->getPosition() + offset_);
+                waypoint->setPosition(field->getPosition() + offset_);
                 controller->addWaypoint(waypoint);
             }
@@ -208,5 +208,5 @@
         player_ = player;
 
-        if (selecter->getPlayer() == NULL)
+        if (selecter->getPlayer() == nullptr)
         {
             player_->startControl(selecter);
@@ -219,5 +219,5 @@
         Get the player.
     @return
-        Returns a pointer to the player. If there is no player, NULL is returned.
+        Returns a pointer to the player. If there is no player, nullptr is returned.
     */
     PlayerInfo* TowerDefense::getPlayer(void) const
@@ -265,5 +265,5 @@
         SUPER(TowerDefense, tick, dt);
 
-        if (hasStarted() == false || player_ == NULL)
+        if (hasStarted() == false || player_ == nullptr)
         {
             return;
@@ -273,5 +273,5 @@
 
         //build/upgrade tower at selecter position
-        if (selecter != NULL && selecter->buildTower_ == true)
+        if (selecter != nullptr && selecter->buildTower_ == true)
         {
             selecter->buildTower_ = false;
@@ -287,7 +287,7 @@
         }
         
-        for (std::list<WeakPtr<TowerDefenseEnemy> >::iterator it = enemies_.begin(); it != enemies_.end(); )
-        {
-            if (*it == NULL)
+        for (std::list<WeakPtr<TowerDefenseEnemy>>::iterator it = enemies_.begin(); it != enemies_.end(); )
+        {
+            if (*it == nullptr)
             {
                 // the enemy was destroyed by a tower - remove it from the list
@@ -355,5 +355,5 @@
                 fields_[i][j]->create(fields.at(pos), fields.at(pos+1));
                 pos += 2;
-                if (fields_[i][j]->getType() == START)
+                if (fields_[i][j]->getType() == TowerDefenseFieldType::START)
                 {
                     startCoord.Set(i,j);
@@ -365,5 +365,5 @@
         TDCoordinate* thisCoord = &startCoord;
         TDCoordinate* nextCoord;
-        while ((nextCoord = getNextStreetCoord(thisCoord)) != NULL)
+        while ((nextCoord = getNextStreetCoord(thisCoord)) != nullptr)
         {
             waypoints_.push_back(fields_[nextCoord->GetX()][nextCoord->GetY()]);            
@@ -379,7 +379,7 @@
         TDCoordinate* nextCoord = new TDCoordinate(0,0);
 
-        if (thisField->getType() != STREET && thisField->getType() != START)
-        {
-            return NULL;
+        if (thisField->getType() != TowerDefenseFieldType::STREET && thisField->getType() != TowerDefenseFieldType::START)
+        {
+            return nullptr;
         }
 
@@ -406,5 +406,5 @@
         }
 
-        return NULL;
+        return nullptr;
     }
 }
Index: code/trunk/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefense.h	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefense.h	(revision 11071)
@@ -53,8 +53,8 @@
         virtual ~TowerDefense();        
         void addTowerDefenseEnemy(int templatenr);
-        virtual void start(); //<! The function is called when the gametype starts
-        virtual void end();
-        virtual void tick(float dt);
-        virtual void spawnPlayer(PlayerInfo* player);
+        virtual void start() override; //<! The function is called when the gametype starts
+        virtual void end() override;
+        virtual void tick(float dt) override;
+        virtual void spawnPlayer(PlayerInfo* player) override;
         PlayerInfo* getPlayer(void) const;
         int getCredit(){ return this->credit_; }
@@ -87,7 +87,7 @@
         int waveNumber_;
         int lifes_;
-        std::list<orxonox::WeakPtr<TowerDefenseEnemy> > enemies_;
+        std::list<orxonox::WeakPtr<TowerDefenseEnemy>> enemies_;
         TowerDefenseField* fields_[16][16];
-        std::vector<orxonox::WeakPtr<TowerDefenseField> > waypoints_;
+        std::vector<orxonox::WeakPtr<TowerDefenseField>> waypoints_;
         Vector3 endpoint_;
         Vector3 offset_;        
Index: code/trunk/src/modules/towerdefense/TowerDefenseCenterpoint.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseCenterpoint.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseCenterpoint.cc	(revision 11071)
@@ -92,5 +92,5 @@
     void TowerDefenseCenterpoint::checkGametype()
     {
-        if (this->getGametype() != NULL && this->getGametype()->isA(Class(TowerDefense)))
+        if (this->getGametype() != nullptr && this->getGametype()->isA(Class(TowerDefense)))
         {
             // Sets the centerpoint of the gametype. The gametype uses this to later spawn in towers, he needs the tower template stored in the center point
Index: code/trunk/src/modules/towerdefense/TowerDefenseCenterpoint.h
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseCenterpoint.h	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseCenterpoint.h	(revision 11071)
@@ -52,5 +52,5 @@
             virtual ~TowerDefenseCenterpoint() {}
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
             /**
Index: code/trunk/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseEnemy.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseEnemy.cc	(revision 11071)
@@ -27,5 +27,5 @@
         RegisterObject(TowerDefenseEnemy);
 
-        this->setCollisionType(WorldEntity::Dynamic);
+        this->setCollisionType(WorldEntity::CollisionType::Dynamic);
         //needed to keep track of the PlayerStats coded in TowerDefense.h
         this->td = orxonox_cast<TowerDefense*>(this->getGametype());
@@ -38,22 +38,15 @@
     }
 
-    void TowerDefenseEnemy::tick(float dt)
-    {   
-        //orxout() << "TDE tick1" << endl;
-        SUPER(TowerDefenseEnemy, tick, dt);
-        //orxout() << "TDE tick2" << endl;
-    }
-
     WeakPtr<TowerDefense> TowerDefenseEnemy::getGame()
     {
-        if (game == NULL)
+        if (game == nullptr)
         {
-            for (ObjectList<TowerDefense>::iterator it = ObjectList<TowerDefense>::begin(); it != ObjectList<TowerDefense>::end(); ++it)
-                game = *it;
+            for (TowerDefense* towerDefense : ObjectList<TowerDefense>())
+                game = towerDefense;
         }
         return game;
     }
 
-    void TowerDefenseEnemy::damage(float damage, float healthdamage, float shielddamage, Pawn* originator)
+    void TowerDefenseEnemy::damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs)
     {
         Pawn::damage(damage, healthdamage, shielddamage, originator);
Index: code/trunk/src/modules/towerdefense/TowerDefenseEnemy.h
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseEnemy.h	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseEnemy.h	(revision 11071)
@@ -37,6 +37,5 @@
         //health gibt es unter: health_
 
-        virtual void tick(float dt);
-        virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
+        virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs) override;
 
     private:
Index: code/trunk/src/modules/towerdefense/TowerDefenseField.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseField.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseField.cc	(revision 11071)
@@ -49,7 +49,7 @@
         RegisterObject(TowerDefenseField);
 
-        tower_ = NULL;
-        type_ = FREE;
-        center_ = NULL;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::FREE;
+        center_ = nullptr;
         upgrade_ = 0;
         setPosition(0,0,0);                            
@@ -119,5 +119,5 @@
     bool TowerDefenseField::canUpgrade()
     {
-        if (tower_ != NULL && upgrade_ < 5)
+        if (tower_ != nullptr && upgrade_ < 5)
         {
             return true;
@@ -129,5 +129,5 @@
     void TowerDefenseField::setAngle(int newAngle)
     {
-        if (modelGround_ != NULL)
+        if (modelGround_ != nullptr)
         {
             switch (newAngle)
@@ -152,5 +152,5 @@
         }
 
-        if (modelObject_ != NULL)
+        if (modelObject_ != nullptr)
         {
             switch (newAngle)
@@ -185,6 +185,6 @@
     {            
         modelGround_->setMeshSource("TD_F1.mesh");
-        tower_ = NULL;
-        type_ = FREE;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::FREE;
         setUpgrade(0);
         setAngle(orientation);
@@ -194,6 +194,6 @@
     {      
         modelGround_->setMeshSource("TD_S5.mesh");
-        tower_ = NULL;
-        type_ = START;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::START;
         setUpgrade(0);
         setAngle(orientation);    
@@ -204,6 +204,6 @@
     {     
         modelGround_->setMeshSource("TD_S4.mesh");
-        tower_ = NULL;
-        type_ = END;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::END;
         setUpgrade(0);
         setAngle(orientation);
@@ -213,6 +213,6 @@
     {      
         modelGround_->setMeshSource("TD_S1.mesh");
-        tower_ = NULL;
-        type_ = STREET;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::STREET;
         setUpgrade(0);
         setAngle(orientation);
@@ -222,6 +222,6 @@
     {     
         modelGround_->setMeshSource("TD_S2.mesh");
-        tower_ = NULL;
-        type_ = STREET;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::STREET;
         setUpgrade(0);
         setAngle(orientation);
@@ -231,6 +231,6 @@
     {    
         modelGround_->setMeshSource("TD_S3.mesh");
-        tower_ = NULL;
-        type_ = STREET;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::STREET;
         setUpgrade(0);
         setAngle(orientation);
@@ -241,6 +241,6 @@
         modelGround_->setMeshSource("TD_F1.mesh");
         modelObject_->setMeshSource("TD_O1.mesh");
-        tower_ = NULL;
-        type_ = OBSTACLE;
+        tower_ = nullptr;
+        type_ = TowerDefenseFieldType::OBSTACLE;
         setUpgrade(0);
         setAngle(orientation);
@@ -249,12 +249,12 @@
     void TowerDefenseField::createTower(int upgrade)
     {        
-        if (tower_ == NULL)
+        if (tower_ == nullptr)
         {
             modelGround_->setMeshSource("TD_F1.mesh");
             tower_ = new TowerDefenseTower(center_->getContext());
             attach(tower_);
-            type_ = TOWER;
+            type_ = TowerDefenseFieldType::TOWER;
             setUpgrade(upgrade);
-            if (upgrade_ > 0 && modelObject_ != NULL)
+            if (upgrade_ > 0 && modelObject_ != nullptr)
             {
                 switch (upgrade_)
@@ -287,8 +287,8 @@
     void TowerDefenseField::destroyTower()
     {
-        if (tower_ != NULL)
+        if (tower_ != nullptr)
         {
             tower_->destroy();
-            tower_ = NULL;
+            tower_ = nullptr;
         }
     }
Index: code/trunk/src/modules/towerdefense/TowerDefenseField.h
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseField.h	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseField.h	(revision 11071)
@@ -46,5 +46,5 @@
 namespace orxonox
 {
-    enum TowerDefenseFieldType
+    enum class TowerDefenseFieldType
     { 
         FREE,
@@ -62,7 +62,7 @@
             TowerDefenseField(Context* context);
             virtual ~TowerDefenseField() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
             const bool isFree() const
-                { return type_==FREE; }
+                { return type_==TowerDefenseFieldType::FREE; }
             virtual void create(char object, char param);
             virtual void setCenterpoint(TowerDefenseCenterpoint* center);
Index: code/trunk/src/modules/towerdefense/TowerDefenseHUDController.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseHUDController.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseHUDController.cc	(revision 11071)
@@ -39,5 +39,5 @@
     {
         RegisterObject(TowerDefenseHUDController);
-        this->td = 0;
+        this->td = nullptr;
     }
 
@@ -89,5 +89,5 @@
                     else
                     {
-                        this->td = 0;
+                        this->td = nullptr;
                     }
                 }
Index: code/trunk/src/modules/towerdefense/TowerDefenseHUDController.h
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseHUDController.h	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseHUDController.h	(revision 11071)
@@ -53,7 +53,7 @@
 
 
-        virtual void tick(float dt);
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-        virtual void changedOwner();
+        virtual void tick(float dt) override;
+        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+        virtual void changedOwner() override;
         void setShowlives(bool temp)
             { this->showlives = temp; }
Index: code/trunk/src/modules/towerdefense/TowerDefenseSelecter.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseSelecter.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseSelecter.cc	(revision 11071)
@@ -35,5 +35,4 @@
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 #include "graphics/Model.h"
 
@@ -59,9 +58,4 @@
     {
 
-    }
-
-    void TowerDefenseSelecter::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(TowerDefenseSelecter, XMLPort, xmlelement, mode);
     }
 
Index: code/trunk/src/modules/towerdefense/TowerDefenseSelecter.h
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseSelecter.h	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseSelecter.h	(revision 11071)
@@ -41,14 +41,13 @@
             TowerDefenseSelecter(Context* context); //!< Constructor. Registers and initializes the object.
             virtual ~TowerDefenseSelecter();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);         
-            virtual void tick(float dt);            
-            virtual void moveFrontBack(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void moveRightLeft(const Vector2& value); //!< Overloaded the function to steer the bat up and down.
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
+            virtual void tick(float dt) override;            
+            virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down.
+            virtual void rotateYaw(const Vector2& value) override;
+            virtual void rotatePitch(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
             void fire(unsigned int firemode);
-            virtual void fired(unsigned int firemode);
-            virtual void boost(bool bBoost);
+            virtual void fired(unsigned int firemode) override;
+            virtual void boost(bool bBoost) override;
             virtual void setSelectedPosition(TDCoordinate* newPos);
             virtual void setSelectedPosition(int x, int y);
Index: code/trunk/src/modules/towerdefense/TowerDefenseTower.cc
===================================================================
--- code/trunk/src/modules/towerdefense/TowerDefenseTower.cc	(revision 11056)
+++ code/trunk/src/modules/towerdefense/TowerDefenseTower.cc	(revision 11071)
@@ -25,6 +25,6 @@
     {
         RegisterObject(TowerDefenseTower);
-        game_ =NULL;
-        this->setCollisionType(WorldEntity::None);
+        game_ =nullptr;
+        this->setCollisionType(WorldEntity::CollisionType::None);
         upgrade = 1;
 
Index: code/trunk/src/modules/weapons/IceGunFreezer.cc
===================================================================
--- code/trunk/src/modules/weapons/IceGunFreezer.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/IceGunFreezer.cc	(revision 11071)
@@ -63,17 +63,4 @@
     /**
     @brief
-        The controlling happens here. This method defines what the controller has to do each tick.
-    @param dt
-        The duration of the tick.
-    */
-    void IceGunFreezer::tick(float dt)
-    {
-        SUPER(IceGunFreezer, tick, dt);
-
-
-    }
-
-    /**
-    @brief
         Sets the freeze time variable to the passed value.
     */
@@ -101,5 +88,5 @@
 
         // Check if the freezer is attached to a parent and check if the parent is a SpaceShip
-        if (parent != NULL && parent->isA(Class(SpaceShip)))
+        if (parent != nullptr && parent->isA(Class(SpaceShip)))
         {
             freezedSpaceShip_ = orxonox_cast<SpaceShip*>(parent);
@@ -118,5 +105,5 @@
     void IceGunFreezer::stopFreezing()
     {
-        if (freezedSpaceShip_ != NULL && freezeFactor_ != 0.0)
+        if (freezedSpaceShip_ != nullptr && freezeFactor_ != 0.0)
         {
             freezedSpaceShip_->addSpeedFactor(1/freezeFactor_);
Index: code/trunk/src/modules/weapons/IceGunFreezer.h
===================================================================
--- code/trunk/src/modules/weapons/IceGunFreezer.h	(revision 11056)
+++ code/trunk/src/modules/weapons/IceGunFreezer.h	(revision 11071)
@@ -37,5 +37,4 @@
 #include "weapons/WeaponsPrereqs.h"
 
-#include "tools/interfaces/Tickable.h"
 #include "worldentities/StaticEntity.h"
 #include "graphics/Model.h"
@@ -50,10 +49,9 @@
     @ingroup Weapons
     */
-    class _WeaponsExport IceGunFreezer : public StaticEntity, public Tickable
+    class _WeaponsExport IceGunFreezer : public StaticEntity
     {
         public:
             IceGunFreezer(Context* context);
             virtual ~IceGunFreezer();
-            virtual void tick(float dt);
             virtual void startFreezing();
             virtual void stopFreezing();
Index: code/trunk/src/modules/weapons/RocketController.cc
===================================================================
--- code/trunk/src/modules/weapons/RocketController.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/RocketController.cc	(revision 11071)
@@ -38,4 +38,5 @@
 #include "projectiles/SimpleRocket.h"
 #include "weaponmodes/SimpleRocketFire.h"
+#include "core/CoreIncludes.h"
 
 namespace orxonox
Index: code/trunk/src/modules/weapons/RocketController.h
===================================================================
--- code/trunk/src/modules/weapons/RocketController.h	(revision 11056)
+++ code/trunk/src/modules/weapons/RocketController.h	(revision 11071)
@@ -55,5 +55,5 @@
             virtual ~RocketController();
 
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
             /**
             @brief Get the rocket that is controlled by this controller.
Index: code/trunk/src/modules/weapons/munitions/FusionMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/FusionMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/FusionMunition.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "FusionMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -57,8 +56,3 @@
         this->reloadTime_ = 0.5f;
     }
-
-    void FusionMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(FusionMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/FusionMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/FusionMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/FusionMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             FusionMunition(Context* context);
-            virtual ~FusionMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~FusionMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/munitions/GravityBombMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/GravityBombMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/GravityBombMunition.cc	(revision 11071)
@@ -7,5 +7,4 @@
 #include "GravityBombMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -27,9 +26,4 @@
         this->reloadTime_ = 0.0f;
     }
-
-    void GravityBombMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(GravityBombMunition, XMLPort, xmlelement, mode);
-    }
 }
 
Index: code/trunk/src/modules/weapons/munitions/GravityBombMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/GravityBombMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/GravityBombMunition.h	(revision 11071)
@@ -27,6 +27,5 @@
         public:
             GravityBombMunition(Context* context);
-            virtual ~GravityBombMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~GravityBombMunition() = default;
     };
 
Index: code/trunk/src/modules/weapons/munitions/IceMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/IceMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/IceMunition.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "IceMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -55,8 +54,3 @@
         this->reloadTime_ = 0.5f;
     }
-
-    void IceMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(IceMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/IceMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/IceMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/IceMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             IceMunition(Context* context);
-            virtual ~IceMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~IceMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/munitions/LaserMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/LaserMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/LaserMunition.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "LaserMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -58,8 +57,3 @@
         this->reloadTime_ = 0.5f;
     }
-
-    void LaserMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(LaserMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/LaserMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/LaserMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/LaserMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             LaserMunition(Context* context);
-            virtual ~LaserMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~LaserMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/munitions/LightningMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/LightningMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/LightningMunition.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "LightningMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -55,8 +54,3 @@
         this->reloadTime_ = 0.5f;    
     }
-
-    void LightningMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(LightningMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/LightningMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/LightningMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/LightningMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             LightningMunition(Context* context);
-            virtual ~LightningMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~LightningMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/munitions/MineMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/MineMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/MineMunition.cc	(revision 11071)
@@ -54,8 +54,3 @@
         this->reloadTime_ = 0.5f;
     }
-
-    void MineMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(MineMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/MineMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/MineMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/MineMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             MineMunition(Context* context);
-            virtual ~MineMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~MineMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/munitions/RocketMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/RocketMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/RocketMunition.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "RocketMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -55,8 +54,3 @@
         this->reloadTime_ = 0.5f;
     }
-
-    void RocketMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(RocketMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/RocketMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/RocketMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/RocketMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             RocketMunition(Context* context);
-            virtual ~RocketMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~RocketMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/munitions/SplitMunition.cc
===================================================================
--- code/trunk/src/modules/weapons/munitions/SplitMunition.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/SplitMunition.cc	(revision 11071)
@@ -34,5 +34,4 @@
 #include "SplitMunition.h"
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
 
 namespace orxonox
@@ -55,8 +54,3 @@
         this->reloadTime_ = 0.5f;
     }
-
-    void SplitMunition::XMLPort(Element& xmlelement, XMLPort::Mode mode)
-    {
-        SUPER(SplitMunition, XMLPort, xmlelement, mode);
-    }
 }
Index: code/trunk/src/modules/weapons/munitions/SplitMunition.h
===================================================================
--- code/trunk/src/modules/weapons/munitions/SplitMunition.h	(revision 11056)
+++ code/trunk/src/modules/weapons/munitions/SplitMunition.h	(revision 11071)
@@ -52,6 +52,5 @@
         public:
             SplitMunition(Context* context);
-            virtual ~SplitMunition() {}
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual ~SplitMunition() = default;
     };
 }
Index: code/trunk/src/modules/weapons/projectiles/BasicProjectile.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/BasicProjectile.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/BasicProjectile.cc	(revision 11071)
@@ -88,5 +88,5 @@
                                     // The projectile is destroyed by its tick()-function (in the following tick).
 
-            Pawn* victim = orxonox_cast<Pawn*>(otherObject); // If otherObject isn't a Pawn, then victim is NULL
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject); // If otherObject isn't a Pawn, then victim is nullptr
 
             WorldEntity* entity = orxonox_cast<WorldEntity*>(this);
@@ -146,8 +146,8 @@
     bool BasicProjectile::isObjectRelatedToShooter(WorldEntity* otherObject)
     {
-        for (WorldEntity* shooter = this->getShooter(); shooter != NULL; shooter = shooter->getParent())
+        for (WorldEntity* shooter = this->getShooter(); shooter != nullptr; shooter = shooter->getParent())
             if (otherObject == shooter)
                 return true;
-        for (WorldEntity* object = otherObject; object != NULL; object = object->getParent())
+        for (WorldEntity* object = otherObject; object != nullptr; object = object->getParent())
             if (otherObject == this->getShooter())
                 return true;
Index: code/trunk/src/modules/weapons/projectiles/BillboardProjectile.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/BillboardProjectile.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/BillboardProjectile.h	(revision 11071)
@@ -61,5 +61,5 @@
             virtual void setMaterial(const std::string& material);
             virtual const std::string& getMaterial();
-            virtual void changedVisibility();
+            virtual void changedVisibility() override;
 
         private:
Index: code/trunk/src/modules/weapons/projectiles/GravityBomb.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/GravityBomb.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/GravityBomb.cc	(revision 11071)
@@ -28,5 +28,5 @@
                 this->timeToLife_= LIFETIME;
                 this->setCollisionResponse(false);
-                this->setCollisionType(WorldEntity::Dynamic);
+                this->setCollisionType(WorldEntity::CollisionType::Dynamic);
                 this->enableCollisionCallback();
 
Index: code/trunk/src/modules/weapons/projectiles/GravityBomb.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/GravityBomb.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/GravityBomb.h	(revision 11071)
@@ -41,7 +41,7 @@
             GravityBomb(Context* context);
             virtual ~GravityBomb();
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
             void detonate();
         private:
Index: code/trunk/src/modules/weapons/projectiles/GravityBombField.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/GravityBombField.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/GravityBombField.cc	(revision 11071)
@@ -41,5 +41,5 @@
         //Make the Field visible on Radar and minimap.
         this->setRadarObjectColour(ColourValue(1.0, 0.0, 0.2,1)); // Red
-        this->setRadarObjectShape(RadarViewable::Dot);
+        this->setRadarObjectShape(RadarViewable::Shape::Dot);
         this->setRadarObjectScale(1.0f);
         
@@ -125,18 +125,18 @@
 
             //Check if any pawn is inside the shockwave and hit it with dammage proportional to the distance between explosion centre and pawn. Make sure, the same pawn is damaged only once.
-            for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+            for (Pawn* pawn : ObjectList<Pawn>())
             {
-                Vector3 distanceVector = it->getWorldPosition()-this->getWorldPosition();
+                Vector3 distanceVector = pawn->getWorldPosition()-this->getWorldPosition();
                  //orxout(debug_output) << "Found Pawn:" << it->getWorldPosition() << endl;
                 if(distanceVector.length()< forceSphereRadius_)
                 {
                     //orxout(debug_output) << "Force sphere radius is: " << forceSphereRadius_ << " Distance to Pawn is: " << distanceVector.length();
-                    if (std::find(victimsAlreadyDamaged_.begin(),victimsAlreadyDamaged_.end(),*it) == victimsAlreadyDamaged_.end())
+                    if (std::find(victimsAlreadyDamaged_.begin(),victimsAlreadyDamaged_.end(),pawn) == victimsAlreadyDamaged_.end())
                     {
                         //orxout(debug_output) << "Found Pawn to damage: " << it->getWorldPosition() << endl;
                         float damage = FORCE_FIELD_EXPLOSION_DAMMAGE*(1-distanceVector.length()/EXPLOSION_RADIUS);
                         //orxout(debug_output) << "Damage: " << damage << endl;
-                        it->hit(shooter_, it->getWorldPosition(), NULL, damage, 0,0);
-                        victimsAlreadyDamaged_.push_back(*it);
+                        pawn->hit(shooter_, pawn->getWorldPosition(), nullptr, damage, 0,0);
+                        victimsAlreadyDamaged_.push_back(pawn);
                     }
                 }
Index: code/trunk/src/modules/weapons/projectiles/GravityBombField.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/GravityBombField.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/GravityBombField.h	(revision 11071)
@@ -39,5 +39,5 @@
     GravityBombField(Context* context);
     virtual ~GravityBombField();
-    virtual void tick(float dt);
+    virtual void tick(float dt) override;
     virtual void destroy();
 
Index: code/trunk/src/modules/weapons/projectiles/IceGunProjectile.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/IceGunProjectile.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/IceGunProjectile.cc	(revision 11071)
@@ -120,5 +120,5 @@
             Vector3 offset = this->getWorldPosition() - otherObject->getWorldPosition();
             freezer->setPosition(Vector3(0,0,0));
-            freezer->translate(offset, WorldEntity::World);
+            freezer->translate(offset, WorldEntity::TransformSpace::World);
             // Start the freezing effect.
             freezer->startFreezing();
Index: code/trunk/src/modules/weapons/projectiles/IceGunProjectile.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/IceGunProjectile.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/IceGunProjectile.h	(revision 11071)
@@ -62,5 +62,5 @@
 
         protected:
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
             static const float particleDestructionDelay_;
         private:
Index: code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.cc	(revision 11071)
@@ -48,5 +48,5 @@
         this->textureIndex_ = 1;
         this->setMass(2);
-        this->setCollisionType(Dynamic);
+        this->setCollisionType(CollisionType::Dynamic);
         this->maxTextureIndex_ = 8;
         this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&LightningGunProjectile::changeTexture, this)));
Index: code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/LightningGunProjectile.h	(revision 11071)
@@ -58,5 +58,5 @@
             virtual ~LightningGunProjectile() {}
 
-            virtual void setMaterial(const std::string& material);
+            virtual void setMaterial(const std::string& material) override;
 
         private:
Index: code/trunk/src/modules/weapons/projectiles/MineProjectile.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/MineProjectile.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/MineProjectile.cc	(revision 11071)
@@ -112,5 +112,5 @@
         modelRing4_->yaw(Degree(270));
 
-        emitter_ = NULL;
+        emitter_ = nullptr;
 
         if (GameMode::isMaster())
@@ -121,5 +121,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(true);
-            this->setCollisionType(Dynamic);
+            this->setCollisionType(CollisionType::Dynamic);
 
             // Create a sphere collision shape and attach it to the projectile.
@@ -217,10 +217,10 @@
             {
                 // Damage all pawns within the damage radius
-                for (ObjectList<Pawn>::iterator it = ObjectList<Pawn>::begin(); it != ObjectList<Pawn>::end(); ++it)
+                for (Pawn* pawn : ObjectList<Pawn>())
                 {
-                    Vector3 distanceVector = it->getWorldPosition()-this->getWorldPosition();
+                    Vector3 distanceVector = pawn->getWorldPosition()-this->getWorldPosition();
                     if(distanceVector.length()< damageRadius_)
                     {
-                        it->hit(this->getShooter(), it->getWorldPosition(), NULL, this->getDamage(), this->getHealthDamage(), this->getShieldDamage());
+                        pawn->hit(this->getShooter(), pawn->getWorldPosition(), nullptr, this->getDamage(), this->getHealthDamage(), this->getShieldDamage());
                     }
                 }
Index: code/trunk/src/modules/weapons/projectiles/MineProjectile.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/MineProjectile.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/MineProjectile.h	(revision 11071)
@@ -57,8 +57,8 @@
             virtual ~MineProjectile();
 
-            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            virtual void setMaxTimeUntilExplosion(float maxTimeUntilExplosion);
-            virtual void setTimeUntilActivation(float timeUntilActivation);
+            void setMaxTimeUntilExplosion(float maxTimeUntilExplosion);
+            void setTimeUntilActivation(float timeUntilActivation);
         protected:
             static const float triggerRadius_;
@@ -84,7 +84,7 @@
             WeakPtr<DistanceTrigger> distanceTrigger_;
 
-            virtual void destructionEffect();
-            virtual void allowExplosion();
-            virtual void explode();
+            void destructionEffect();
+            void allowExplosion();
+            void explode();
     };
 }
Index: code/trunk/src/modules/weapons/projectiles/ParticleProjectile.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/ParticleProjectile.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/ParticleProjectile.cc	(revision 11071)
@@ -58,5 +58,5 @@
         }
         else
-            this->particles_ = 0;
+            this->particles_ = nullptr;
     }
 
Index: code/trunk/src/modules/weapons/projectiles/ParticleProjectile.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/ParticleProjectile.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/ParticleProjectile.h	(revision 11071)
@@ -53,5 +53,5 @@
             ParticleProjectile(Context* context);
             virtual ~ParticleProjectile();
-            virtual void changedVisibility();
+            virtual void changedVisibility() override;
 
         private:
Index: code/trunk/src/modules/weapons/projectiles/Projectile.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/Projectile.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/Projectile.cc	(revision 11071)
@@ -57,5 +57,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Dynamic);
+            this->setCollisionType(CollisionType::Dynamic);
 
             // Create a sphere collision shape and attach it to the projectile.
@@ -94,5 +94,5 @@
     void Projectile::setCollisionShapeRadius(float radius)
     {
-        if (collisionShape_ != NULL && radius > 0)
+        if (collisionShape_ != nullptr && radius > 0)
         {
             collisionShape_->setRadius(radius);
Index: code/trunk/src/modules/weapons/projectiles/Projectile.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/Projectile.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/Projectile.h	(revision 11071)
@@ -64,6 +64,6 @@
             void setConfigValues();
 
-            virtual void tick(float dt);
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
+            virtual void tick(float dt) override;
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
 
         protected:
Index: code/trunk/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/Rocket.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/Rocket.cc	(revision 11071)
@@ -70,5 +70,5 @@
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->setVelocity(0,0,-100);
 
@@ -92,5 +92,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape
@@ -117,6 +117,6 @@
         else
         {
-            this->defSndWpnEngine_ = 0;
-            this->defSndWpnLaunch_ = 0;
+            this->defSndWpnEngine_ = nullptr;
+            this->defSndWpnLaunch_ = nullptr;
         }
 
@@ -128,5 +128,5 @@
 
         this->setRadarObjectColour(ColourValue(1.0, 0.5, 0.0)); // orange
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarObjectScale(0.5f);
     }
Index: code/trunk/src/modules/weapons/projectiles/Rocket.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/Rocket.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/Rocket.h	(revision 11071)
@@ -62,17 +62,17 @@
             virtual ~Rocket();
 
-            virtual void tick(float dt); //!< Defines which actions the Rocket has to take in each tick.
+            virtual void tick(float dt) override; //!< Defines which actions the Rocket has to take in each tick.
 
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
-            virtual void destroyObject(void);
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
+            virtual void destroyObject(void) override;
             void destructionEffect();
 
-            virtual void moveFrontBack(const Vector2& value) {}
-            virtual void moveRightLeft(const Vector2& value) {}
-            virtual void moveUpDown(const Vector2& value) {}
+            virtual void moveFrontBack(const Vector2& value) override {}
+            virtual void moveRightLeft(const Vector2& value) override {}
+            virtual void moveUpDown(const Vector2& value) override {}
 
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
+            virtual void rotateYaw(const Vector2& value) override;
+            virtual void rotatePitch(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
 
             /**
@@ -114,12 +114,12 @@
                 { this->rotateRoll(Vector2(value, 0)); }
 
-            virtual void setShooter(Pawn* shooter);
+            virtual void setShooter(Pawn* shooter) override;
 
-            virtual void fired(unsigned int firemode);
+            virtual void fired(unsigned int firemode) override;
 
             /**
             @brief Set the maximum lifetime of the rocket.
             */
-            virtual void setMaxFuel(float fuel);
+            void setMaxFuel(float fuel);
             /**
             @brief Get the maximum lifetime of the rocket.
@@ -127,5 +127,5 @@
             inline float getMaxFuel() const
                 { return lifetime_; }
-            virtual float getFuel() const;
+            float getFuel() const;
 
         private:
Index: code/trunk/src/modules/weapons/projectiles/RocketOld.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/RocketOld.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/RocketOld.cc	(revision 11071)
@@ -70,5 +70,5 @@
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->setVelocity(0,0,-100);
 
@@ -92,5 +92,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape
@@ -117,6 +117,6 @@
         else
         {
-            this->defSndWpnEngine_ = 0;
-            this->defSndWpnLaunch_ = 0;
+            this->defSndWpnEngine_ = nullptr;
+            this->defSndWpnLaunch_ = nullptr;
         }
 
@@ -128,5 +128,5 @@
 
         this->setRadarObjectColour(ColourValue(1.0, 0.5, 0.0)); // orange
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarObjectScale(0.5f);
     }
Index: code/trunk/src/modules/weapons/projectiles/RocketOld.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/RocketOld.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/RocketOld.h	(revision 11071)
@@ -62,17 +62,17 @@
             virtual ~RocketOld();
 
-            virtual void tick(float dt); //!< Defines which actions the RocketOld has to take in each tick.
+            virtual void tick(float dt) override; //!< Defines which actions the RocketOld has to take in each tick.
 
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
-            virtual void destroyObject(void);
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
+            virtual void destroyObject(void) override;
             void destructionEffect();
 
-            virtual void moveFrontBack(const Vector2& value) {}
-            virtual void moveRightLeft(const Vector2& value) {}
-            virtual void moveUpDown(const Vector2& value) {}
+            virtual void moveFrontBack(const Vector2& value) override {}
+            virtual void moveRightLeft(const Vector2& value) override {}
+            virtual void moveUpDown(const Vector2& value) override {}
 
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
+            virtual void rotateYaw(const Vector2& value) override;
+            virtual void rotatePitch(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
 
             /**
@@ -114,7 +114,7 @@
                 { this->rotateRoll(Vector2(value, 0)); }
 
-            virtual void setShooter(Pawn* shooter);
+            virtual void setShooter(Pawn* shooter) override;
 
-            virtual void fired(unsigned int firemode);
+            virtual void fired(unsigned int firemode) override;
 
         private:
Index: code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc
===================================================================
--- code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/SimpleRocket.cc	(revision 11071)
@@ -70,5 +70,5 @@
         if (GameMode::isMaster())
         {
-            this->setCollisionType(WorldEntity::Kinematic);
+            this->setCollisionType(WorldEntity::CollisionType::Kinematic);
             this->fuel_ = true;
 
@@ -87,5 +87,5 @@
             this->enableCollisionCallback();
             this->setCollisionResponse(false);
-            this->setCollisionType(Kinematic);
+            this->setCollisionType(CollisionType::Kinematic);
 
             // Add collision shape.
@@ -101,5 +101,5 @@
 
         this->setRadarObjectColour(ColourValue(1.0, 1.0, 0.0)); // yellow
-        this->setRadarObjectShape(RadarViewable::Triangle);
+        this->setRadarObjectShape(RadarViewable::Shape::Triangle);
         this->setRadarObjectScale(0.5f);
     }
Index: code/trunk/src/modules/weapons/projectiles/SimpleRocket.h
===================================================================
--- code/trunk/src/modules/weapons/projectiles/SimpleRocket.h	(revision 11056)
+++ code/trunk/src/modules/weapons/projectiles/SimpleRocket.h	(revision 11071)
@@ -62,17 +62,17 @@
             SimpleRocket(Context* context);
             virtual ~SimpleRocket();
-            virtual void tick(float dt);
+            virtual void tick(float dt) override;
 
-            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint);
+            virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* cs, btManifoldPoint& contactPoint) override;
 
             void disableFire(); //!< Method to disable the fire and stop all acceleration
 
-            virtual void moveFrontBack(const Vector2& value){}
-            virtual void moveRightLeft(const Vector2& value){}
-            virtual void moveUpDown(const Vector2& value){}
+            virtual void moveFrontBack(const Vector2& value) override{}
+            virtual void moveRightLeft(const Vector2& value) override{}
+            virtual void moveUpDown(const Vector2& value) override{}
 
-            virtual void rotateYaw(const Vector2& value);
-            virtual void rotatePitch(const Vector2& value);
-            virtual void rotateRoll(const Vector2& value);
+            virtual void rotateYaw(const Vector2& value) override;
+            virtual void rotatePitch(const Vector2& value) override;
+            virtual void rotateRoll(const Vector2& value) override;
             void setDestroy();
 
@@ -115,5 +115,5 @@
                 { this->rotateRoll(Vector2(value, 0)); }
 
-            virtual void setShooter(Pawn* shooter);
+            virtual void setShooter(Pawn* shooter) override;
 
             inline bool hasFuel() const
Index: code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/EnergyDrink.h	(revision 11071)
@@ -57,6 +57,6 @@
             virtual ~EnergyDrink() {}
 
-            virtual void fire();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void fire() override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
         private:
Index: code/trunk/src/modules/weapons/weaponmodes/FusionFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/FusionFire.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/FusionFire.h	(revision 11071)
@@ -54,5 +54,5 @@
             virtual ~FusionFire() {}
 
-            virtual void fire();
+            virtual void fire() override;
 
         private:
Index: code/trunk/src/modules/weapons/weaponmodes/GravityBombFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/GravityBombFire.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/GravityBombFire.h	(revision 11071)
@@ -34,5 +34,5 @@
             virtual ~GravityBombFire();
 
-            virtual void fire();
+            virtual void fire() override;
 
         private:
Index: code/trunk/src/modules/weapons/weaponmodes/HsW01.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/HsW01.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/HsW01.h	(revision 11071)
@@ -56,6 +56,6 @@
             virtual ~HsW01();
 
-            virtual void fire();
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void fire() override;
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
         protected:
Index: code/trunk/src/modules/weapons/weaponmodes/IceGun.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/IceGun.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/IceGun.h	(revision 11071)
@@ -54,6 +54,6 @@
             virtual ~IceGun();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void fire();
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void fire() override;
             
             inline void setFreezeTime(float freezeTime)
Index: code/trunk/src/modules/weapons/weaponmodes/LaserFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LaserFire.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/LaserFire.h	(revision 11071)
@@ -54,5 +54,5 @@
             virtual ~LaserFire() {}
 
-            virtual void fire();
+            virtual void fire() override;
 
         private:
Index: code/trunk/src/modules/weapons/weaponmodes/LightningGun.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/LightningGun.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/LightningGun.h	(revision 11071)
@@ -54,5 +54,5 @@
             virtual ~LightningGun();
 
-            virtual void fire();
+            virtual void fire() override;
 
        private:
Index: code/trunk/src/modules/weapons/weaponmodes/MineGun.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/MineGun.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/MineGun.h	(revision 11071)
@@ -59,6 +59,6 @@
             virtual ~MineGun();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void fire();
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void fire() override;
 
             inline float getMaxTimeUntilExplosion() const
Index: code/trunk/src/modules/weapons/weaponmodes/RocketFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFire.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFire.h	(revision 11071)
@@ -54,7 +54,7 @@
             virtual ~RocketFire();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
 
-            virtual void fire();
+            virtual void fire() override;
             inline void setFuel(float fuel)
                 { this->fuel_ = fuel; }
Index: code/trunk/src/modules/weapons/weaponmodes/RocketFireOld.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/RocketFireOld.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/RocketFireOld.h	(revision 11071)
@@ -54,5 +54,5 @@
             virtual ~RocketFireOld();
 
-            virtual void fire();
+            virtual void fire() override;
 
         private:
Index: code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/SimpleRocketFire.h	(revision 11071)
@@ -53,5 +53,5 @@
             virtual ~SimpleRocketFire();
             void deactivateFire();
-            virtual void fire();
+            virtual void fire() override;
 
         private:
Index: code/trunk/src/modules/weapons/weaponmodes/SplitGun.h
===================================================================
--- code/trunk/src/modules/weapons/weaponmodes/SplitGun.h	(revision 11056)
+++ code/trunk/src/modules/weapons/weaponmodes/SplitGun.h	(revision 11071)
@@ -54,6 +54,6 @@
             virtual ~SplitGun();
 
-            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            virtual void fire();
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+            virtual void fire() override;
 
             inline void setNumberOfSplits(int numberOfSplits)
