From e4d30987bf32440a17fb316dff7f81aa2d722974 Mon Sep 17 00:00:00 2001 From: Sevenfm Date: Thu, 6 Feb 2020 17:18:49 +0000 Subject: [PATCH] Fix possible bug when executing AI_ACTION_STOP_COWERING. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8742 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- TacticalAI/AIMain.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/TacticalAI/AIMain.cpp b/TacticalAI/AIMain.cpp index 235f44076..85203d561 100644 --- a/TacticalAI/AIMain.cpp +++ b/TacticalAI/AIMain.cpp @@ -2147,8 +2147,14 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier) } break; - case AI_ACTION_STOP_COWERING: - if (SoldierAI(pSoldier)) + case AI_ACTION_STOP_COWERING: + if (pSoldier->flags.uiStatusFlags & SOLDIER_COWERING) + { + // stop cowering for civilians + pSoldier->aiData.usActionData = ANIM_STAND; + pSoldier->SetSoldierCowerState(FALSE); + } + else if (SoldierAI(pSoldier) && (pSoldier->usAnimState == COWERING || pSoldier->usAnimState == COWERING_PRONE)) { // sevenfm: stop cowering for soldiers if (pSoldier->usAnimState == COWERING) @@ -2174,19 +2180,14 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier) } // clear cowering flag pSoldier->flags.uiStatusFlags &= (~SOLDIER_COWERING); + ActionDone(pSoldier); + } + else + { + // nothing to do! + ActionDone(pSoldier); + return(FALSE); } - else if (pSoldier->flags.uiStatusFlags & SOLDIER_COWERING) - { - // stop cowering for civilians - pSoldier->aiData.usActionData = ANIM_STAND; - pSoldier->SetSoldierCowerState(FALSE); - } - else - { - // nothing to do! - ActionDone(pSoldier); - return(FALSE); - } break; case AI_ACTION_GIVE_AID: // help injured/dying friend