[Orxonox-commit 7112] r11729 - in code/branches/Presentation_HS17_merge/src/modules: asteroids2D dodgerace

landauf at orxonox.net landauf at orxonox.net
Sun Feb 11 16:49:56 CET 2018


Author: landauf
Date: 2018-02-11 16:49:56 +0100 (Sun, 11 Feb 2018)
New Revision: 11729

Modified:
   code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc
   code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h
   code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h
   code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc
   code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h
Log:
fixed crash when setting highscore

Modified: code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc	2018-02-11 15:13:55 UTC (rev 11728)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.cc	2018-02-11 15:49:56 UTC (rev 11729)
@@ -58,6 +58,7 @@
 #include "core/CoreIncludes.h"
 #include "Highscore.h"
 #include "gamestates/GSLevel.h"
+#include "infos/PlayerInfo.h"
 
 namespace orxonox
 {
@@ -123,7 +124,6 @@
         //Do this only for the first tick, generate 5 stones in the beginning
         if(this->firstTick_)
         {
-            getPlayer();
             for(int i = 0; i < 5; ++i)
             {
                 spawnStone();
@@ -140,7 +140,6 @@
 
         //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
         switch(newStone->getSize()){
@@ -162,14 +161,11 @@
 
     Asteroids2DShip* Asteroids2D::getPlayer()
     {
-        if (player == nullptr)
+        for (Asteroids2DShip* ship : ObjectList<Asteroids2DShip>())
         {
-            for (Asteroids2DShip* ship : ObjectList<Asteroids2DShip>())
-            {
-                player = ship;
-            }
+            return ship;
         }
-        return player;
+        return nullptr;
     }
 
     void Asteroids2D::costLife()
@@ -200,6 +196,7 @@
 
     void Asteroids2D::playerPreSpawn(PlayerInfo* player)
     {
+        this->playerInfo_ = player;
         if(lives <= 0)
         {
             this->end();
@@ -225,7 +222,7 @@
         if (Highscore::exists())
         {
             int score = this->getPoints();
-            Highscore::getInstance().storeScore("Asteroids2D", score, this->getPlayer()->getPlayer());
+            Highscore::getInstance().storeScore("Asteroids2D", score, this->playerInfo_);
         }
         GSLevel::startMainMenu();
     }

Modified: code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h	2018-02-11 15:13:55 UTC (rev 11728)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2D.h	2018-02-11 15:49:56 UTC (rev 11729)
@@ -93,7 +93,7 @@
 
 
 
-            WeakPtr<Asteroids2DShip> player;
+            WeakPtr<PlayerInfo> playerInfo_;
             void toggleShowLevel(){bShowLevel = !bShowLevel;}
 
             WeakPtr<Asteroids2DCenterPoint> center_;

Modified: code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h	2018-02-11 15:13:55 UTC (rev 11728)
+++ code/branches/Presentation_HS17_merge/src/modules/asteroids2D/Asteroids2DStone.h	2018-02-11 15:49:56 UTC (rev 11729)
@@ -52,7 +52,6 @@
             virtual void tick(float dt) override;
             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;
             virtual void split();
@@ -61,7 +60,6 @@
        private:
           Asteroids2D* getGame();
           WeakPtr<Asteroids2D> game;
-          WeakPtr<Asteroids2DShip> player;          
        		int size;				// three sizes, 3-> two 2s, 2-> two 1s, 1-> die
        		float width, height;	//field
           float MAX_SPEED = 100;

Modified: code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc	2018-02-11 15:13:55 UTC (rev 11728)
+++ code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.cc	2018-02-11 15:49:56 UTC (rev 11729)
@@ -36,6 +36,7 @@
 #include "DodgeRaceCube.h"
 #include "core/CoreIncludes.h"
 #include "Highscore.h"
+#include "infos/PlayerInfo.h"
 
 namespace orxonox
 {
@@ -89,13 +90,14 @@
 
     void DodgeRace::tick(float dt)
     {
-        if (getPlayer() != nullptr)
+        DodgeRaceShip* player = this->getPlayer();
+        if (player != nullptr)
         {
-            currentPosition = getPlayer()->getWorldPosition().x;
+            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++)
             {
@@ -122,7 +124,7 @@
 
                     }
 
-                    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);
                 }
 
@@ -138,14 +140,11 @@
 
     DodgeRaceShip* DodgeRace::getPlayer()
     {
-        if (player == nullptr)
+        for (DodgeRaceShip* ship : ObjectList<DodgeRaceShip>())
         {
-            for (DodgeRaceShip* ship : ObjectList<DodgeRaceShip>())
-            {
-                player = ship;
-            }
+            return ship;
         }
-        return player;
+        return nullptr;
     }
 
     void DodgeRace::costLife()
@@ -189,6 +188,7 @@
 
     void DodgeRace::playerPreSpawn(PlayerInfo* player)
     {
+        this->playerInfo_ = player;
         if(lives <= 0)
         {
             this->end();
@@ -227,7 +227,7 @@
         if (Highscore::exists())
         {
             int score = this->getPoints();
-            Highscore::getInstance().storeScore("Dodge Race", score, this->getPlayer()->getPlayer());
+            Highscore::getInstance().storeScore("Dodge Race", score, this->playerInfo_);
         }
         GSLevel::startMainMenu();
     }

Modified: code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h	2018-02-11 15:13:55 UTC (rev 11728)
+++ code/branches/Presentation_HS17_merge/src/modules/dodgerace/DodgeRace.h	2018-02-11 15:49:56 UTC (rev 11729)
@@ -102,7 +102,7 @@
             Timer endGameTimer;
 
             DodgeRaceShip* getPlayer();
-            WeakPtr<DodgeRaceShip> player;
+            WeakPtr<PlayerInfo> playerInfo_;
             std::vector<DodgeRaceCube*> cubeList;
             void toggleShowLevel(){bShowLevel = !bShowLevel;}
             void addPoints(int numPoints);



More information about the Orxonox-commit mailing list