Index: /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc
===================================================================
--- /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc	(revision 11728)
+++ /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc	(revision 11729)
@@ -59,4 +59,5 @@
 #include "Highscore.h"
 #include "gamestates/GSLevel.h"
+#include "infos/PlayerInfo.h"
 
 namespace orxonox
@@ -124,5 +125,4 @@
         if(this->firstTick_)
         {
-            getPlayer();
             for(int i = 0; i < 5; ++i)
             {
@@ -141,5 +141,4 @@
         //stones are created with a size -> second constructor in Asteroids2DStone class
         Asteroids2DStone* newStone = new Asteroids2DStone(this->center_->getContext());
-        newStone->setAsteroids2DPlayer(player);
 
         //look at templates in data/levels/templates/asteroidsAsteroids2D.oxt
@@ -163,12 +162,9 @@
     Asteroids2DShip* Asteroids2D::getPlayer()
     {
-        if (player == nullptr)
-        {
-            for (Asteroids2DShip* ship : ObjectList<Asteroids2DShip>())
-            {
-                player = ship;
-            }
-        }
-        return player;
+        for (Asteroids2DShip* ship : ObjectList<Asteroids2DShip>())
+        {
+            return ship;
+        }
+        return nullptr;
     }
 
@@ -201,4 +197,5 @@
     void Asteroids2D::playerPreSpawn(PlayerInfo* player)
     {
+        this->playerInfo_ = player;
         if(lives <= 0)
         {
@@ -226,5 +223,5 @@
         {
             int score = this->getPoints();
-            Highscore::getInstance().storeScore("Asteroids2D", score, this->getPlayer()->getPlayer());
+            Highscore::getInstance().storeScore("Asteroids2D", score, this->playerInfo_);
         }
         GSLevel::startMainMenu();
Index: /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h
===================================================================
--- /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h	(revision 11728)
+++ /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h	(revision 11729)
@@ -94,5 +94,5 @@
 
 
-            WeakPtr<Asteroids2DShip> player;
+            WeakPtr<PlayerInfo> playerInfo_;
             void toggleShowLevel(){bShowLevel = !bShowLevel;}
 
Index: /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h
===================================================================
--- /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h	(revision 11728)
+++ /code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h	(revision 11729)
@@ -53,5 +53,4 @@
             Vector3 randomPosition (float maxwidth, float maxheight);
             Vector3 randomVelocity(float maxspeed);
-            void setAsteroids2DPlayer(Asteroids2DShip* player){this->player = player;};
             virtual int getSize(){ return this->size;}
             virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
@@ -62,5 +61,4 @@
           Asteroids2D* getGame();
           WeakPtr<Asteroids2D> game;
-          WeakPtr<Asteroids2DShip> player;          
        		int size;				// three sizes, 3-> two 2s, 2-> two 1s, 1-> die
        		float width, height;	//field
Index: /code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc
===================================================================
--- /code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc	(revision 11728)
+++ /code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc	(revision 11729)
@@ -37,4 +37,5 @@
 #include "core/CoreIncludes.h"
 #include "Highscore.h"
+#include "infos/PlayerInfo.h"
 
 namespace orxonox
@@ -90,11 +91,12 @@
     void DodgeRace::tick(float dt)
     {
-        if (getPlayer() != nullptr)
-        {
-            currentPosition = getPlayer()->getWorldPosition().x;
+        DodgeRaceShip* player = this->getPlayer();
+        if (player != nullptr)
+        {
+            currentPosition = player->getWorldPosition().x;
             counter = counter + (currentPosition - lastPosition);
             lastPosition = currentPosition;
             point = (int) currentPosition;
-            getPlayer()->speed = 830.0f - (point / 1000);
+            player->speed = 830.0f - (point / 1000);
 
             for(unsigned int i=0; i < cubeList.size();i++)
@@ -123,5 +125,5 @@
                     }
 
-                    cube->setPosition(getPlayer()->getWorldPosition() + Vector3(5000.0f, 0.0f, -3600.0f + (i*1200)));
+                    cube->setPosition(player->getWorldPosition() + Vector3(5000.0f, 0.0f, -3600.0f + (i*1200)));
                     //stEntity->setScale3D(50,50,50);
                 }
@@ -139,12 +141,9 @@
     DodgeRaceShip* DodgeRace::getPlayer()
     {
-        if (player == nullptr)
-        {
-            for (DodgeRaceShip* ship : ObjectList<DodgeRaceShip>())
-            {
-                player = ship;
-            }
-        }
-        return player;
+        for (DodgeRaceShip* ship : ObjectList<DodgeRaceShip>())
+        {
+            return ship;
+        }
+        return nullptr;
     }
 
@@ -190,4 +189,5 @@
     void DodgeRace::playerPreSpawn(PlayerInfo* player)
     {
+        this->playerInfo_ = player;
         if(lives <= 0)
         {
@@ -228,5 +228,5 @@
         {
             int score = this->getPoints();
-            Highscore::getInstance().storeScore("Dodge Race", score, this->getPlayer()->getPlayer());
+            Highscore::getInstance().storeScore("Dodge Race", score, this->playerInfo_);
         }
         GSLevel::startMainMenu();
Index: /code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h
===================================================================
--- /code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h	(revision 11728)
+++ /code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h	(revision 11729)
@@ -103,5 +103,5 @@
 
             DodgeRaceShip* getPlayer();
-            WeakPtr<DodgeRaceShip> player;
+            WeakPtr<PlayerInfo> playerInfo_;
             std::vector<DodgeRaceCube*> cubeList;
             void toggleShowLevel(){bShowLevel = !bShowLevel;}
