Changeset 3150
- Timestamp:
- 02/03/2010 02:10:27 PM (7 months ago)
- Location:
- trunk/src/arcemu-world
- Files:
-
- 3 modified
-
MapMgr.cpp (modified) (1 diff)
-
MapMgr.h (modified) (1 diff)
-
Object.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/arcemu-world/MapMgr.cpp
r3149 r3150 1494 1494 // Update creatures. 1495 1495 { 1496 CreatureSet creatures(activeCreatures); 1497 CreatureSet::iterator itr = creatures.begin(); 1496 creature_iterator = activeCreatures.begin(); 1498 1497 Creature * ptr; 1499 1498 Pet * ptr2; 1500 1499 1501 for(; itr != creatures.end();) 1502 { 1503 ptr = *itr; 1504 ++itr; 1505 if( activeCreatures.find(ptr) != activeCreatures.end())//required by owners despawning creatures and deleting *(++itr) 1506 ptr->Update(difftime); 1500 for(; creature_iterator != activeCreatures.end();) 1501 { 1502 ptr = *creature_iterator; 1503 ++creature_iterator; 1504 ptr->Update(difftime); 1507 1505 } 1508 1506 -
trunk/src/arcemu-world/MapMgr.h
r3131 r3150 122 122 uint32 m_CreatureHighGuid; 123 123 std::vector< Creature* > CreatureStorage; 124 CreatureSet::iterator creature_iterator;//required by owners despawning creatures and deleting *(++itr) 124 125 Creature * CreateCreature(uint32 entry, bool isVehicle = false); 125 126 -
trunk/src/arcemu-world/Object.cpp
r3138 r3150 3241 3241 { 3242 3242 case TYPEID_UNIT: 3243 // check iterator 3244 if(mgr->creature_iterator != mgr->activeCreatures.end() && (*mgr->creature_iterator) == TO_CREATURE(this)) 3245 ++mgr->creature_iterator; 3243 3246 mgr->activeCreatures.erase((Creature*)this); 3244 3247 break;