[Orxonox-commit 4283] r8954 - in code/branches/spaceraceTwo/src/modules: gametypes objects/triggers
eceline at orxonox.net
eceline at orxonox.net
Wed Nov 30 16:17:00 CET 2011
Author: eceline
Date: 2011-11-30 16:17:00 +0100 (Wed, 30 Nov 2011)
New Revision: 8954
Modified:
code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.cc
code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.h
code/branches/spaceraceTwo/src/modules/gametypes/SpaceRace.cc
code/branches/spaceraceTwo/src/modules/objects/triggers/DistanceMultiTrigger.h
code/branches/spaceraceTwo/src/modules/objects/triggers/MultiTrigger.h
Log:
DistanceMultiTrigger
Modified: code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.cc
===================================================================
--- code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.cc 2011-11-30 15:09:25 UTC (rev 8953)
+++ code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.cc 2011-11-30 15:17:00 UTC (rev 8954)
@@ -39,12 +39,15 @@
{
CreateFactory(RaceCheckPoint);
-
+
- RaceCheckPoint::RaceCheckPoint(BaseObject* creator): DistanceTrigger(creator), RadarViewable(creator, static_cast<WorldEntity*>(this))
+ RaceCheckPoint::RaceCheckPoint(BaseObject* creator): DistanceMultiTrigger(creator), RadarViewable(creator, static_cast<WorldEntity*>(this))
{
RegisterObject(RaceCheckPoint);
-
+ this->setDistance(100);
+ this->setBeaconMode("off");
+ this->setBroadcast(false);
+ this->setSimultaneousTriggerers(100);
this->bCheckpointIndex_ = 0;
@@ -55,11 +58,17 @@
this->setRadarObjectColour(ColourValue::Blue);
this->setRadarObjectShape(RadarViewable::Triangle);
this->setRadarVisibility(true);
+
+ //this->addTarget("WorldEntity");
+
+
}
+
- RaceCheckPoint::~RaceCheckPoint()
+ RaceCheckPoint::~RaceCheckPoint()
{
- //if (this->isInitialized())
+
+ if (this->isInitialized())
{
//for (size_t i = 0; i < 3; ++i)
// this->nextcheckpoints_[i]->destroy();
@@ -75,8 +84,10 @@
assert(gametype);
if(this->isVisible_){this->setRadarVisibility(true);}
else{this->setRadarVisibility(false);}
+
+
+
-
/*this->setRadarVisibility(false);
Vector3 v =Vector3(0,0,0);
int j=0;
@@ -102,13 +113,28 @@
XMLPortParamTemplate(RaceCheckPoint, "nextcheckpoints", setNextcheckpoint, getNextcheckpoint, xmlelement, mode,const Vector3&).defaultValues(v);
}
- void RaceCheckPoint::triggered(bool bIsTriggered, PlayerInfo* player)
+ void RaceCheckPoint::fire(bool bIsTriggered,BaseObject* player)
{
- DistanceTrigger::triggered(bIsTriggered);
+
+ //bool b= bIsTriggered;
+ //PlayerInfo* pl= player;
+ DistanceMultiTrigger::fire((bool)bIsTriggered,player);
+
+ //SUPER(RaceCheckPoint,fire,bIsTriggered,player);
+
SpaceRace* gametype = orxonox_cast<SpaceRace*>(this->getGametype().get());
assert(gametype);
- if (gametype && this->getCheckpointIndex() == gametype->getCheckpointReached(player) && bIsTriggered)
+
+ PlayerInfo* player2 = (PlayerInfo*)player;
+ assert(player2);
+ //DistanceMultiTrigger::fire(bIsTriggered,player);
+
+
+
+
+
+ if (gametype && this->getCheckpointIndex() == gametype->getCheckpointReached(player2) && bIsTriggered)
{
gametype->clock_.capture();
float time = gametype->clock_.getSecondsPrecise();
@@ -121,7 +147,7 @@
gametype->end();
else
{
- gametype->newCheckpointReached(this,player);
+ gametype->newCheckpointReached(this,player2);
this->setRadarObjectColour(ColourValue::Green); //sets the radar colour of the checkpoint to green if it is reached, else it is red.
}
}
Modified: code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.h
===================================================================
--- code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.h 2011-11-30 15:09:25 UTC (rev 8953)
+++ code/branches/spaceraceTwo/src/modules/gametypes/RaceCheckPoint.h 2011-11-30 15:17:00 UTC (rev 8954)
@@ -31,7 +31,7 @@
#include "gametypes/GametypesPrereqs.h"
-#include "objects/triggers/DistanceTrigger.h"
+#include "objects/triggers/DistanceMultiTrigger.h"
#include "interfaces/RadarViewable.h"
namespace orxonox
@@ -41,7 +41,7 @@
The RaceCheckPoint class enables the creation of a check point to use in a SpaceRace level.
!!! Don't forget to control the indexes of your check points and to set one last check point!!!
*/
- class _GametypesExport RaceCheckPoint : public DistanceTrigger, public RadarViewable
+ class _GametypesExport RaceCheckPoint : public DistanceMultiTrigger, public RadarViewable
{
public:
RaceCheckPoint(BaseObject* creator);
@@ -64,7 +64,7 @@
inline void setV(bool b)
{this->isVisible_ = b;}
protected:
- virtual void triggered(bool bIsTriggered, PlayerInfo* player);
+ virtual void fire(bool bIsTriggered,BaseObject* player);
inline void setLast(bool isLast)
{ this->bIsLast_ = isLast; }
inline bool getLast()
Modified: code/branches/spaceraceTwo/src/modules/gametypes/SpaceRace.cc
===================================================================
--- code/branches/spaceraceTwo/src/modules/gametypes/SpaceRace.cc 2011-11-30 15:09:25 UTC (rev 8953)
+++ code/branches/spaceraceTwo/src/modules/gametypes/SpaceRace.cc 2011-11-30 15:17:00 UTC (rev 8954)
@@ -116,6 +116,7 @@
}
this->addBots(this->numberOfBots_);
+
}
Modified: code/branches/spaceraceTwo/src/modules/objects/triggers/DistanceMultiTrigger.h
===================================================================
--- code/branches/spaceraceTwo/src/modules/objects/triggers/DistanceMultiTrigger.h 2011-11-30 15:09:25 UTC (rev 8953)
+++ code/branches/spaceraceTwo/src/modules/objects/triggers/DistanceMultiTrigger.h 2011-11-30 15:17:00 UTC (rev 8954)
@@ -90,7 +90,7 @@
@ingroup MultiTrigger
*/
- class _ObjectsExport DistanceMultiTrigger : public MultiTrigger
+ class _ObjectsExport DistanceMultiTrigger : public MultiTrigger
{
public:
Modified: code/branches/spaceraceTwo/src/modules/objects/triggers/MultiTrigger.h
===================================================================
--- code/branches/spaceraceTwo/src/modules/objects/triggers/MultiTrigger.h 2011-11-30 15:09:25 UTC (rev 8953)
+++ code/branches/spaceraceTwo/src/modules/objects/triggers/MultiTrigger.h 2011-11-30 15:17:00 UTC (rev 8954)
@@ -156,7 +156,7 @@
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.
- void fire(bool status, BaseObject* originator = NULL); //!< Helper method. Creates an Event for the given status and originator and fires it.
+ virtual void fire(bool status, BaseObject* originator = NULL); //!< 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.
void removeTarget(const std::string& target); //!< Remove some target from the MultiTrigger.
More information about the Orxonox-commit
mailing list