aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOvah <dreadkiller@gmx.de>2020-09-15 14:49:18 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-06 00:36:00 +0100
commitf70161dcc5af3c2c958d4df559b77ace735fc7d4 (patch)
tree4df0f3879f755732b99719a9fb634fb1681e9cf1 /src
parentc295cb9814f4c2a1878aa047cefe0cfbc7958f93 (diff)
Core/Spells: fix a possible crash when a target that has been focused during spell casts disappears
(cherry picked from commit 0d152e932cdd986f62ae22bd9fc40569892a2453)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 2952294b8d4..a2d737bb26c 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -3552,7 +3552,8 @@ void Spell::_cast(bool skipCheck)
// The spell focusing is making sure that we have a valid cast target guid when we need it so only check for a guid value here.
if (Creature* creatureCaster = m_caster->ToCreature())
if (!creatureCaster->GetTarget().IsEmpty() && !creatureCaster->HasUnitFlag(UNIT_FLAG_POSSESSED))
- creatureCaster->SetInFront(ObjectAccessor::GetUnit(*creatureCaster, creatureCaster->GetTarget()));
+ if (WorldObject const* target = ObjectAccessor::GetUnit(*creatureCaster, creatureCaster->GetTarget()))
+ creatureCaster->SetInFront(target);
SelectSpellTargets();