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
This commit is contained in:
@@ -13301,6 +13301,9 @@ void Unit::RemoveFromWorld()
|
|||||||
|
|
||||||
void Unit::CleanupsBeforeDelete(bool finalCleanup)
|
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())
|
if (IsInWorld())
|
||||||
RemoveFromWorld();
|
RemoveFromWorld();
|
||||||
|
|
||||||
@@ -13313,7 +13316,6 @@ void Unit::CleanupsBeforeDelete(bool finalCleanup)
|
|||||||
if (finalCleanup)
|
if (finalCleanup)
|
||||||
m_cleanupDone = true;
|
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
|
m_Events.KillAllEvents(false); // non-delatable (currently casted spells) will not deleted now but it will deleted at call in Map::RemoveAllObjectsInRemoveList
|
||||||
CombatStop();
|
CombatStop();
|
||||||
ClearComboPointHolders();
|
ClearComboPointHolders();
|
||||||
|
|||||||
Reference in New Issue
Block a user