From 1749d3adfb40988b7c9b8d38127a8312aca96d66 Mon Sep 17 00:00:00 2001 From: Shadooow Date: Sat, 1 Jan 2022 13:33:34 +0000 Subject: [PATCH] Surrender GUI when talking to boxing opponent replaced with MessageBox allowing to forfeit the match. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9226 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Soldier Control.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index acd5c5f97..4122037fe 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -23300,6 +23300,15 @@ void MercStealFromMerc( SOLDIERTYPE *pSoldier, SOLDIERTYPE *pTarget ) } } +void AbandonBoxingDueToSurrenderCallback(UINT8 ubExitValue) +{ + if (ubExitValue == MSG_BOX_RETURN_YES) + { + SetBoxingState(DISQUALIFIED); + TriggerNPCRecord(DARREN, 21); + } +} + SOLDIERTYPE *pTMilitiaSoldier;//global pointer BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT8 ubTargetID, BOOLEAN fValidate ) { @@ -23374,6 +23383,12 @@ BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT8 ubTargetID, BOOLEAN fValid if ( (gSkillTraitValues.fCOTurncoats || gGameExternalOptions.fEnemyCanSurrender || gGameExternalOptions.fPlayerCanAsktoSurrender) && pTSoldier->CanBeCaptured( ) ) { // AP costs are handled inside the callback (PrisonerSurrenderMessageBoxCallBack) + if (gTacticalStatus.bBoxingState != NOT_BOXING) + { + // pop up dialogue asking whether the player wants to abandon the fight + DoMessageBox(MSG_BOX_BASIC_STYLE, Message[STR_ABANDON_FIGHT], GAME_SCREEN, (UINT8)MSG_BOX_FLAG_YESNO, AbandonBoxingDueToSurrenderCallback, NULL); + return FALSE; + } HandleSurrenderOffer( pTSoldier ); return(FALSE); }