From 35547d813ae8f851146b8da9de93d1652bde96a0 Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Tue, 6 Aug 2019 18:51:42 +0200 Subject: [PATCH] Fix berserker fidget animation aborting attack. M_MoveFrame() calls first the AI functions that decide if a monster should attack or not. After that the monsters think function is called which walks through berserk_frames_stand[]. Even if the AI function found an enemy and decided to attack, the monster is still standing for this frame and berserker_fidget() is called. It may override the earlier earlier decision, aborting the attack. Even worse this may let the berserker stuck, because AI_STAND_GROUND may be cleared which prevents further attacks. This bug was present in the original code, so this is small gameplay change. It's likely also present in both addons. Reported and analyzed by @BjossiAlfreds in issue #433. He also suggested the fix. --- src/game/monster/berserker/berserker.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/game/monster/berserker/berserker.c b/src/game/monster/berserker/berserker.c index 836dcf2f..fae0d02c 100644 --- a/src/game/monster/berserker/berserker.c +++ b/src/game/monster/berserker/berserker.c @@ -123,6 +123,11 @@ berserk_fidget(edict_t *self) return; } + if (self->enemy) + { + return; + } + if (self->monsterinfo.aiflags & AI_STAND_GROUND) { return;