[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