aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-01-04 23:43:20 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2011-01-04 23:43:20 +0100
commiteac259f75f7d122d3d124093513eb43967669696 (patch)
tree47ad4360e4965e1754cc1a49c9dc03dc08d102b5 /src
parent3208b7ae1f11586c3a432e792cf6d83dfbee4f46 (diff)
Core/Units: Call Unit::InterruptNonMeleeSpells before RemoveFromWorld to make GetCaster() return a valid pointer on AuraEffect unapply methods.
Fixes a crash in VisitorHelper related to Mind Vision. closes #43
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index b35ba61eb2f..f9bebe13ac1 100755
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -13301,6 +13301,9 @@ void Unit::RemoveFromWorld()
void Unit::CleanupsBeforeDelete(bool finalCleanup)
{
+ // This needs to be before RemoveFromWorld to make GetCaster() return a valid pointer on aura removal
+ InterruptNonMeleeSpells(true);
+
if (IsInWorld())
RemoveFromWorld();
@@ -13313,7 +13316,6 @@ void Unit::CleanupsBeforeDelete(bool finalCleanup)
if (finalCleanup)
m_cleanupDone = true;
- InterruptNonMeleeSpells(true);
m_Events.KillAllEvents(false); // non-delatable (currently casted spells) will not deleted now but it will deleted at call in Map::RemoveAllObjectsInRemoveList
CombatStop();
ClearComboPointHolders();