diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2017-06-03 19:31:00 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-06-03 19:31:00 +0200 |
commit | 5fea48409227c74c761661c0236e1839cc3fb76d (patch) | |
tree | 20c0dc08fda2beaa527de8b837e40c2f35003acd | |
parent | df20ad1e37a52428851996736593e0376656cd3c (diff) |
Core/AreaTrigger: Make sure areatrigger is removed correctly
-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 } } |