- Timestamp:
- May 6, 2010, 4:01:25 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/modules/objects/triggers/DistanceMultiTrigger.cc
r6857 r6860 86 86 87 87 // Check for objects that were in range but no longer are. Iterate through all objects, that are in range. 88 for(std:: set<WorldEntity*>::iterator it = this->range_.begin(); it != this->range_.end(); )88 for(std::map<WorldEntity*, WeakPtr<WorldEntity>* >::iterator it = this->range_.begin(); it != this->range_.end(); ) 89 89 { 90 Vector3 distanceVec = (*it)->getWorldPosition() - this->getWorldPosition(); 90 WorldEntity* entity = it->second->get(); 91 WorldEntity* key = it->first; 92 if(entity == NULL) 93 { 94 it++; 95 this->removeFromRange(key); 96 continue; 97 } 98 99 Vector3 distanceVec = entity->getWorldPosition() - this->getWorldPosition(); 91 100 // If the object is no longer in range. 92 101 if (distanceVec.length() > this->distance_) 93 102 { 94 WorldEntity* temp = *(it++); 95 if(!this->removeFromRange(temp)) 103 if(!this->removeFromRange(entity)) 96 104 continue; 97 105 … … 103 111 MultiTriggerState* state = new MultiTriggerState; 104 112 state->bTriggered = false; 105 state->originator = temp;113 state->originator = entity; 106 114 queue->push(state); 107 115 } … … 113 121 for(ClassTreeMaskObjectIterator it = targetMask.begin(); it != targetMask.end(); ++it) 114 122 { 115 WorldEntity* entity = orxonox_cast<WorldEntity*>(*it);116 if (entity == NULL || this->inRange(entity)) //If the object is no WorldEntity or is already in range.123 WorldEntity* entity = static_cast<WorldEntity*>(*it); 124 if (entity == NULL) //If the object is no WorldEntity or is already in range. 117 125 continue; 118 126
Note: See TracChangeset
for help on using the changeset viewer.