From 9bcde70dab3f93b71d2895a076532ed41a25f892 Mon Sep 17 00:00:00 2001 From: Andrius Peleckas <32540208+sanctum32@users.noreply.github.com> Date: Fri, 22 Oct 2021 14:36:07 +0300 Subject: [PATCH] fix(Core/AI): possible "self interrupts" in BossAI::ExecuteEvent calls (#8654) --- src/server/game/AI/ScriptedAI/ScriptedCreature.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 277f91bc5..16daa828d 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -622,15 +622,25 @@ void BossAI::SummonedCreatureDespawnAll() void BossAI::UpdateAI(uint32 diff) { if (!UpdateVictim()) + { return; + } events.Update(diff); if (me->HasUnitState(UNIT_STATE_CASTING)) + { return; + } - while (uint32 eventId = events.ExecuteEvent()) + while (uint32 const eventId = events.ExecuteEvent()) + { ExecuteEvent(eventId); + if (me->HasUnitState(UNIT_STATE_CASTING)) + { + return; + } + } DoMeleeAttackIfReady(); }