From 8abbd3c053d173b3f79227db63be012c8211352b Mon Sep 17 00:00:00 2001 From: Flugente Date: Mon, 19 May 2014 21:14:58 +0000 Subject: [PATCH] Fix: boxer never got out of boxing ring, leading to an endless clock git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7222 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- TacticalAI/DecideAction.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/TacticalAI/DecideAction.cpp b/TacticalAI/DecideAction.cpp index 950f94f5..20e59ba6 100644 --- a/TacticalAI/DecideAction.cpp +++ b/TacticalAI/DecideAction.cpp @@ -749,16 +749,20 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier) { // done! - // WANNE: This should fix the bug if any merc are still under PC control. This could happen after boxing in SAN MONA. - SOLDIERTYPE *pTeamSoldier; - for (INT8 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++) + // Flugente: only do this if we are not boxing. Otherwise this might interfere with boxing scripts, as they temporariyl set a PC under AI control (when leaaving the ring) + if ( gTacticalStatus.bBoxingState == NOT_BOXING ) { - pTeamSoldier=MercPtrs[bLoop]; + // WANNE: This should fix the bug if any merc are still under PC control. This could happen after boxing in SAN MONA. + SOLDIERTYPE *pTeamSoldier; + for (INT8 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++) + { + pTeamSoldier=MercPtrs[bLoop]; - if (pTeamSoldier->flags.uiStatusFlags & SOLDIER_PCUNDERAICONTROL) - pTeamSoldier->flags.uiStatusFlags &= (~SOLDIER_PCUNDERAICONTROL); + if (pTeamSoldier->flags.uiStatusFlags & SOLDIER_PCUNDERAICONTROL) + pTeamSoldier->flags.uiStatusFlags &= (~SOLDIER_PCUNDERAICONTROL); - pTeamSoldier->DeleteBoxingFlag( ); + pTeamSoldier->DeleteBoxingFlag( ); + } } if (pSoldier->bTeam == gbPlayerNum || CountPeopleInBoxingRing() == 0)