[Orxonox-commit 2091] r6807 - code/trunk/src/modules/objects/triggers

dafrick at orxonox.net dafrick at orxonox.net
Thu Apr 29 15:40:03 CEST 2010


Author: dafrick
Date: 2010-04-29 15:40:02 +0200 (Thu, 29 Apr 2010)
New Revision: 6807

Modified:
   code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc
Log:
DistanceMultiTrigger fix. Thanks to Fabian.


Modified: code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc
===================================================================
--- code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc	2010-04-29 13:27:24 UTC (rev 6806)
+++ code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc	2010-04-29 13:40:02 UTC (rev 6807)
@@ -84,12 +84,13 @@
             }
         }
         
-        for(std::set<WorldEntity*>::iterator it = this->range_.begin(); it != this->range_.end(); it++)
+        for(std::set<WorldEntity*>::iterator it = this->range_.begin(); it != this->range_.end(); )
         {
             Vector3 distanceVec = (*it)->getWorldPosition() - this->getWorldPosition();
             if (distanceVec.length() >= this->distance_)
             {
-                if(!this->removeFromRange(*it))
+                WorldEntity* temp = *(it++);
+                if(!this->removeFromRange(temp))
                     continue;
                 
                 if(queue == NULL)
@@ -98,9 +99,11 @@
                 }
                 MultiTriggerState* state = new MultiTriggerState;
                 state->bTriggered = false;
-                state->originator = *it;
+                state->originator = temp;
                 queue->push(state);
             }
+            else
+                ++it;
         }
         
         return queue;




More information about the Orxonox-commit mailing list