From 4b8bea57d845dab783e178fe7dbe70c177bac18f Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 16 Oct 2022 17:58:58 +0200 Subject: [PATCH] Core/Units: ensure that we always have a valid caster when a charmed unit allows its charmer to cast spells directly --- src/server/game/Entities/Unit/Unit.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 70b3d4e4df..04d82c706e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -14344,8 +14344,13 @@ void Unit::ProcessPendingSpellCastRequest() Unit* charmer = caster->GetCharmer(); if (charmer && (!charmer->IsOnVehicle(this) || spellInfo->CheckVehicle(charmer) != SPELL_CAST_OK)) return; - - caster = charmer; + else if (charmer) + caster = charmer; + else + { + TC_LOG_ERROR("spells", "Creature %s tried to allow its charmer to cast spell %u but there is no charmer.", caster->GetGUID().ToString(), spellInfo->Id); + return; + } } if (caster->GetTypeId() == TYPEID_PLAYER && !caster->ToPlayer()->HasActiveSpell(spellInfo->Id) && !spellInfo->IsRaidMarker() &&