diff options
-rw-r--r-- | src/server/game/Entities/AreaTrigger/AreaTrigger.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp index 7fb0e6d2f73..5106b37cea1 100644 --- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp +++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp @@ -69,6 +69,16 @@ void AreaTrigger::RemoveFromWorld() ///- Remove the AreaTrigger from the accessor and from all lists of objects in world if (IsInWorld()) { + _isRemoved = true; + + if (Unit* caster = GetCaster()) + caster->_UnregisterAreaTrigger(this); + + // Handle removal of all units, calling OnUnitExit & deleting auras if needed + HandleUnitEnterExit({}); + + _ai->OnRemove(); + WorldObject::RemoveFromWorld(); GetMap()->GetObjectsStore().Remove<AreaTrigger>(GetGUID()); } @@ -194,16 +204,6 @@ void AreaTrigger::Remove() { if (IsInWorld()) { - _isRemoved = true; - - if (Unit* caster = GetCaster()) - caster->_UnregisterAreaTrigger(this); - - // Handle removal of all units, calling OnUnitExit & deleting auras if needed - HandleUnitEnterExit({}); - - _ai->OnRemove(); - AddObjectToRemoveList(); // calls RemoveFromWorld } } |