diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 9d05420f..c32f3dbb 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -25925,6 +25925,14 @@ BOOLEAN SOLDIERTYPE::IsCowering(void) return FALSE; } +BOOLEAN SOLDIERTYPE::IsGivingAid(void) +{ + if (this->usAnimState == GIVING_AID || this->usAnimState == GIVING_AID_PRN || this->usAnimState == START_AID || this->usAnimState == START_AID_PRN) + return TRUE; + + return FALSE; +} + void SOLDIERTYPE::RetreatCounterStart(UINT16 usValue) { usSkillCounter[SOLDIER_COUNTER_RETREAT] = max(usValue, usSkillCounter[SOLDIER_COUNTER_RETREAT]); diff --git a/Tactical/Soldier Control.h b/Tactical/Soldier Control.h index 749554ea..3f7755ac 100644 --- a/Tactical/Soldier Control.h +++ b/Tactical/Soldier Control.h @@ -1867,6 +1867,7 @@ public: UINT8 ShockLevelPercent(void); BOOLEAN TakenLargeHit(void); BOOLEAN IsCowering(void); + BOOLEAN IsGivingAid(void); void RetreatCounterStart(UINT16 usValue); void RetreatCounterStop(void); diff --git a/TacticalAI/AIMain.cpp b/TacticalAI/AIMain.cpp index 49ac80f6..f925cacc 100644 --- a/TacticalAI/AIMain.cpp +++ b/TacticalAI/AIMain.cpp @@ -2632,7 +2632,7 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier) if (pSoldier->stats.bLife >= OKLIFE && pSoldier->bBreath > 0 && !pSoldier->bCollapsed && - (pSoldier->usAnimState == GIVING_AID || pSoldier->usAnimState == GIVING_AID_PRN)) + pSoldier->IsGivingAid()) { if (gAnimControl[pSoldier->usAnimState].ubEndHeight == ANIM_PRONE) pSoldier->ChangeSoldierState(END_AID_PRN, 0, 0); diff --git a/TacticalAI/DecideAction.cpp b/TacticalAI/DecideAction.cpp index 1e10adc6..ab046507 100644 --- a/TacticalAI/DecideAction.cpp +++ b/TacticalAI/DecideAction.cpp @@ -2522,7 +2522,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier) pSoldier->stats.bLife >= OKLIFE && !pSoldier->bCollapsed && !pSoldier->bBreathCollapsed && - (pSoldier->usAnimState == COWERING || pSoldier->usAnimState == COWERING_PRONE)) + pSoldier->IsCowering()) { return AI_ACTION_STOP_COWERING; } @@ -2533,7 +2533,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier) pSoldier->stats.bLife >= OKLIFE && !pSoldier->bCollapsed && !pSoldier->bBreathCollapsed && - (pSoldier->usAnimState == GIVING_AID || pSoldier->usAnimState == GIVING_AID_PRN)) + pSoldier->IsGivingAid()) { return AI_ACTION_STOP_MEDIC; } @@ -4934,7 +4934,7 @@ INT16 ubMinAPCost; pSoldier->stats.bLife >= OKLIFE && !pSoldier->bCollapsed && !pSoldier->bBreathCollapsed && - (pSoldier->usAnimState == COWERING || pSoldier->usAnimState == COWERING_PRONE)) + pSoldier->IsCowering()) { return AI_ACTION_STOP_COWERING; } @@ -4945,7 +4945,7 @@ INT16 ubMinAPCost; pSoldier->stats.bLife >= OKLIFE && !pSoldier->bCollapsed && !pSoldier->bBreathCollapsed && - (pSoldier->usAnimState == GIVING_AID || pSoldier->usAnimState == GIVING_AID_PRN)) + pSoldier->IsGivingAid()) { return AI_ACTION_STOP_MEDIC; } @@ -10143,11 +10143,11 @@ void LogDecideInfo(SOLDIERTYPE *pSoldier) DebugAI(AI_MSG_INFO, pSoldier, String("Health %d/%d Breath %d/%d Shock %d Tolerance %d AI Morale %d Morale %d", pSoldier->stats.bLife, pSoldier->stats.bLifeMax, pSoldier->bBreath, pSoldier->bBreathMax, pSoldier->aiData.bShock, CalcSuppressionTolerance(pSoldier), pSoldier->aiData.bAIMorale, pSoldier->aiData.bMorale)); DebugAI(AI_MSG_INFO, pSoldier, String("Spot %d level %d opponents %d", pSoldier->sGridNo, pSoldier->pathing.bLevel, pSoldier->aiData.bOppCnt)); DebugAI(AI_MSG_INFO, pSoldier, String("ubServiceCount %d ubServicePartner %d fDoingSurgery %d", pSoldier->ubServiceCount, pSoldier->ubServicePartner, pSoldier->fDoingSurgery)); - if (pSoldier->usAnimState == COWERING || pSoldier->usAnimState == COWERING_PRONE) + if (pSoldier->IsCowering()) { DebugAI(AI_MSG_INFO, pSoldier, String("Cowering")); } - if (pSoldier->usAnimState == GIVING_AID || pSoldier->usAnimState == GIVING_AID_PRN) + if (pSoldier->IsGivingAid()) { DebugAI(AI_MSG_INFO, pSoldier, String("Giving aid")); }