[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