From 5fea48409227c74c761661c0236e1839cc3fb76d Mon Sep 17 00:00:00 2001 From: joschiwald Date: Sat, 3 Jun 2017 19:31:00 +0200 Subject: Core/AreaTrigger: Make sure areatrigger is removed correctly --- src/server/game/Entities/AreaTrigger/AreaTrigger.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src') 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(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 } } -- cgit v1.2.3