From d0bfe95c78c0141c552f0a1f58eba7753d65f1f0 Mon Sep 17 00:00:00 2001 From: Flugente Date: Thu, 31 Oct 2019 23:43:43 +0000 Subject: [PATCH] If the new JA2_Options.ini option GEARKITS_ALWAYS_AVAILABLE is TRUE (default: FALSE), a merc's gear kits are always available during the hiring process, even if they've been bought before. For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=358411&#msg_358411 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8704 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameSettings.cpp | 3 +++ GameSettings.h | 3 +++ Laptop/AimMembers.cpp | 6 +++--- Laptop/mercs Files.cpp | 19 +++++++++++-------- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index 6043bb936..377b7a796 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -812,6 +812,9 @@ void LoadGameExternalOptions() // Bob: externalized Slay's chance to leave gGameExternalOptions.ubHourlyChanceSlayWillLeave = iniReader.ReadInteger("Recruitment Settings", "SLAY_HOURLY_CHANCE_TO_LEAVE", 15, 0, 100); + // Flugente: gear kits are always available, even if they've been bought before + gGameExternalOptions.fGearKitsAlwaysAvailable = iniReader.ReadBoolean("Recruitment Settings", "GEARKITS_ALWAYS_AVAILABLE", FALSE ); + // anv: playable Speck gGameExternalOptions.fEnableRecruitableSpeck = iniReader.ReadBoolean("Recruitment Settings", "RECRUITABLE_SPECK", TRUE); // anv: John Kulba becomes recruitable as a merc after finishing escort quest diff --git a/GameSettings.h b/GameSettings.h index 7ead1358b..b73242972 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -823,6 +823,9 @@ typedef struct // Bob: % chance Slay will leave every hour if left alone in sector UINT16 ubHourlyChanceSlayWillLeave; + // Flugente: gear kits are always available, even if they've been bought before + BOOLEAN fGearKitsAlwaysAvailable; + // anv: playable Speck BOOLEAN fEnableRecruitableSpeck; // anv: John Kulba becomes recruitable as a merc after finishing escort quest diff --git a/Laptop/AimMembers.cpp b/Laptop/AimMembers.cpp index aed596859..93db0671d 100644 --- a/Laptop/AimMembers.cpp +++ b/Laptop/AimMembers.cpp @@ -1553,7 +1553,7 @@ BOOLEAN DisplayMercsInventory(UINT8 ubMercID) UINT8 ubColumnCount=0; //if the mercs inventory has already been purchased, dont display the inventory - if( gMercProfiles[ ubMercID ].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS ) + if ( (gMercProfiles[ ubMercID ].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) && !gGameExternalOptions.fGearKitsAlwaysAvailable ) return( TRUE ); if(gGameExternalOptions.gfUseNewStartingGearInterface) @@ -5106,7 +5106,7 @@ void HandleAimMemberKeyBoardInput() { gbCurrentSoldier = gAimAvailability[AimMercArray[gbCurrentIndex]].ProfilId; - if (!(gMercProfiles[gbCurrentSoldier].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS)) + if ( !(gMercProfiles[gbCurrentSoldier].ubMiscFlags & PROFILE_MISC_FLAG_ALREADY_USED_ITEMS) || gGameExternalOptions.fGearKitsAlwaysAvailable ) { for ( UINT8 i = INV_START_POS; i