[Orxonox-commit 3507] r8193 - code/trunk/src/modules/objects/triggers

dafrick at orxonox.net dafrick at orxonox.net
Wed Apr 6 11:12:39 CEST 2011


Author: dafrick
Date: 2011-04-06 11:12:38 +0200 (Wed, 06 Apr 2011)
New Revision: 8193

Modified:
   code/trunk/src/modules/objects/triggers/MultiTrigger.cc
   code/trunk/src/modules/objects/triggers/TriggerBase.h
Log:

Resolving bug in MultiTrigger.


Modified: code/trunk/src/modules/objects/triggers/MultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/MultiTrigger.cc	2011-04-04 14:53:58 UTC (rev 8192)
+++ code/trunk/src/modules/objects/triggers/MultiTrigger.cc	2011-04-06 09:12:38 UTC (rev 8193)
@@ -115,7 +115,7 @@
             this->broadcast(false);
         }
 
-        // Check if the object is active (this is NOT MultiTrigger::isActive()!)
+        // Check if the object is active (this is NOT MultiTrigger::isActive()!), it is whether the MultiTrigger actually does anything, ever.
         if (!this->BaseObject::isActive())
             return;
 
@@ -204,7 +204,7 @@
                             if(bActive == true)
                             {
                                 // If the MultiTrigger has not exceeded its remaining activations.
-                                if(this->remainingActivations_ > 0)
+                                if(this->hasRemainingActivations())
                                 {
                                     this->active_.insert(state->originator);
                                     if(this->remainingActivations_ != INF_s)
@@ -217,7 +217,7 @@
                             else
                             {
                                 // If the MultiTrigger doesn't stay active or hasn't' exceeded its remaining activations.
-                                if(!this->getStayActive() || this->remainingActivations_ > 0)
+                                if(!this->getStayActive() || this->hasRemainingActivations())
                                     this->active_.erase(state->originator);
                                 else
                                     bFire = false;

Modified: code/trunk/src/modules/objects/triggers/TriggerBase.h
===================================================================
--- code/trunk/src/modules/objects/triggers/TriggerBase.h	2011-04-04 14:53:58 UTC (rev 8192)
+++ code/trunk/src/modules/objects/triggers/TriggerBase.h	2011-04-06 09:12:38 UTC (rev 8193)
@@ -184,6 +184,9 @@
             */
             inline void setActivations(int activations)
                 { if(activations >= 0 || activations == INF_s) this->remainingActivations_ = activations; }
+                
+            inline bool hasRemainingActivations(void)
+                { return this->remainingActivations_ == INF_s || this->remainingActivations_  > 0; }
 
             /**
             @brief Adds the parent of a MultiTrigger.




More information about the Orxonox-commit mailing list