aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoschiwald <joschiwald.trinity@gmail.com>2017-06-03 19:31:00 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-06-03 19:31:00 +0200
commit5fea48409227c74c761661c0236e1839cc3fb76d (patch)
tree20c0dc08fda2beaa527de8b837e40c2f35003acd
parentdf20ad1e37a52428851996736593e0376656cd3c (diff)
Core/AreaTrigger: Make sure areatrigger is removed correctly
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.cpp20
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
}
}