Index: code/branches/cpp11_v3/src/modules/pong/Pong.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/Pong.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/Pong.cc	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/Pong.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/Pong.h	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/Pong.h	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongAI.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongAI.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongAI.cc	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongAI.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongAI.h	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongAI.h	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongBall.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongBall.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongBall.cc	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongBall.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongBall.h	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongBall.h	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongBat.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongBat.h	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongBat.h	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongCenterpoint.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongCenterpoint.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongCenterpoint.cc	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongCenterpoint.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongCenterpoint.h	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongCenterpoint.h	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongScore.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongScore.cc	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongScore.cc	(revision 11054)
@@ -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/branches/cpp11_v3/src/modules/pong/PongScore.h
===================================================================
--- code/branches/cpp11_v3/src/modules/pong/PongScore.h	(revision 11053)
+++ code/branches/cpp11_v3/src/modules/pong/PongScore.h	(revision 11054)
@@ -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.
 
             /**
