[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