From b23c9ac8b105a2b675a48fe5e035eeb6ac0f0e87 Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Sat, 26 Apr 2025 00:30:45 +0300 Subject: [PATCH] Do not prompt for buying inventory for 1st kit in UB --- Laptop/mercs Files.cpp | 58 ++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/Laptop/mercs Files.cpp b/Laptop/mercs Files.cpp index 159161d7..e95782c1 100644 --- a/Laptop/mercs Files.cpp +++ b/Laptop/mercs Files.cpp @@ -418,6 +418,34 @@ BOOLEAN EnterMercsFiles() return( TRUE ); } +static void TryToHireMERC() +{ + if ( (gMercProfiles[GetAvailableMercIDFromMERCArray( gubCurMercIndex )].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) && !gGameExternalOptions.fGearKitsAlwaysAvailable ) + { + //bought gear before + fMercBuyEquipment = 0; + MercProcessHireAfterGear(); + } + else + { +#ifdef JA2UB + if ( gSelectedMercKit == 0 ) // First kit is free, due to M.E.R.C special offer + { + fMercBuyEquipment = 1; + MercProcessHireAfterGear(); + } + else + { + //prompt to buy gear + DoLapTopMessageBox( MSG_BOX_BLUE_ON_GREY, MercInfo[MERC_FILES_BUY_GEAR], LAPTOP_SCREEN, MSG_BOX_FLAG_YESNO, MercHireButtonGearYesNoCallback ); + } +#else + //prompt to buy gear + DoLapTopMessageBox( MSG_BOX_BLUE_ON_GREY, MercInfo[MERC_FILES_BUY_GEAR], LAPTOP_SCREEN, MSG_BOX_FLAG_YESNO, MercHireButtonGearYesNoCallback ); +#endif // JA2UB + } +} + void SelectMercsFaceRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ) { if (iReason & MSYS_CALLBACK_REASON_RBUTTON_UP) @@ -442,15 +470,7 @@ void SelectMercsFaceRegionCallBack(MOUSE_REGION * pRegion, INT32 iReason ) //else try to hire the merc else { - if ( (gMercProfiles[ GetAvailableMercIDFromMERCArray( gubCurMercIndex ) ].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) && !gGameExternalOptions.fGearKitsAlwaysAvailable ) - { - //bought gear before - fMercBuyEquipment = 0; - MercProcessHireAfterGear(); - } - else - //prompt to buy gear - DoLapTopMessageBox( MSG_BOX_BLUE_ON_GREY, MercInfo[ MERC_FILES_BUY_GEAR ], LAPTOP_SCREEN, MSG_BOX_FLAG_YESNO, MercHireButtonGearYesNoCallback ); + TryToHireMERC(); } } } @@ -701,15 +721,7 @@ void BtnMercHireButtonCallback(GUI_BUTTON *btn,INT32 reason) //else try to hire the merc else { - if ( (gMercProfiles[ GetAvailableMercIDFromMERCArray( gubCurMercIndex ) ].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) && !gGameExternalOptions.fGearKitsAlwaysAvailable ) - { - //bought gear before - fMercBuyEquipment = 0; - MercProcessHireAfterGear(); - } - else - //prompt to buy gear - DoLapTopMessageBox( MSG_BOX_BLUE_ON_GREY, MercInfo[ MERC_FILES_BUY_GEAR ], LAPTOP_SCREEN, MSG_BOX_FLAG_YESNO, MercHireButtonGearYesNoCallback ); + TryToHireMERC(); } InvalidateRegion(btn->Area.RegionTopLeftX, btn->Area.RegionTopLeftY, btn->Area.RegionBottomRightX, btn->Area.RegionBottomRightY); @@ -1358,15 +1370,7 @@ void HandleMercsFilesKeyBoardInput( ) //else try to hire the merc else { - //bought gear before - if ( (gMercProfiles[ GetAvailableMercIDFromMERCArray( gubCurMercIndex ) ].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) && !gGameExternalOptions.fGearKitsAlwaysAvailable ) - { - fMercBuyEquipment = 0; - MercProcessHireAfterGear(); - } - //prompt to buy gear - else - DoLapTopMessageBox( MSG_BOX_BLUE_ON_GREY, MercInfo[ MERC_FILES_BUY_GEAR ], LAPTOP_SCREEN, MSG_BOX_FLAG_YESNO, MercHireButtonGearYesNoCallback ); + TryToHireMERC(); } } break;