From 101fc8feea511e4d2e75ee5d1ea36c5460d4fc89 Mon Sep 17 00:00:00 2001 From: "Marco Antonio J. Costa" Date: Tue, 2 Sep 2025 10:52:12 -0300 Subject: [PATCH] fully externalize bQueenLosingControlOfSector --- Ja2/GameInitOptionsScreen.h | 2 +- Ja2/XML_DifficultySettings.cpp | 2 +- Strategic/Strategic AI.cpp | 25 ++++++------------------- 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/Ja2/GameInitOptionsScreen.h b/Ja2/GameInitOptionsScreen.h index 6ed14320a..21a2d7c02 100644 --- a/Ja2/GameInitOptionsScreen.h +++ b/Ja2/GameInitOptionsScreen.h @@ -85,7 +85,7 @@ typedef struct UINT8 usLevelModifierLowLimit; UINT8 usLevelModifierHighLimit; BOOLEAN bAllowUnrestrictedXPLevels; - BOOLEAN bQueenLosingControlOfSector; + UINT8 bQueenLosingControlOfSector; BOOLEAN bBloodcatAmbush; BOOLEAN bAirRaidLookForDive; UINT32 iGetNumberOfTurnsPowerGenFanWillBeStoppedFor; //UB diff --git a/Ja2/XML_DifficultySettings.cpp b/Ja2/XML_DifficultySettings.cpp index bc5620645..ac5588191 100644 --- a/Ja2/XML_DifficultySettings.cpp +++ b/Ja2/XML_DifficultySettings.cpp @@ -555,7 +555,7 @@ difficultySettingsEndElementHandle(void *userData, const XML_Char *name) else if(strcmp(name, "QueenAttackLosingControlOfSector") == 0) { pData->curElement = ELEMENT; - pData->curDifficultySettings.bQueenLosingControlOfSector = (BOOLEAN) atol(pData->szCharData); + pData->curDifficultySettings.bQueenLosingControlOfSector = atoi(pData->szCharData); } else if(strcmp(name, "BloodcatAmbushSectors") == 0) { diff --git a/Strategic/Strategic AI.cpp b/Strategic/Strategic AI.cpp index 6572c879d..8c02ae611 100644 --- a/Strategic/Strategic AI.cpp +++ b/Strategic/Strategic AI.cpp @@ -5756,26 +5756,13 @@ void StrategicHandleQueenLosingControlOfSector( INT16 sSectorX, INT16 sSectorY, else return; - //Madd: tweaked to increase attacks for experienced and expert to 8 and 12, and unlimited for insane - UINT8 value9; - if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_EASY ) - value9 = 1; - else if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_MEDIUM ) - value9 = 2; - else if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_HARD ) - value9 = 3; - else if( gGameOptions.ubDifficultyLevel == DIF_LEVEL_INSANE ) - value9 = 4; - else - { - value9 = Random (4); - if (value9 == 0) value9 = 1; - } - - if( pSector->ubInvestigativeState >= ( 4 * value9 ) && !zDiffSetting[gGameOptions.ubDifficultyLevel].bQueenLosingControlOfSector ) { - //This is the 4th time the player has conquered this sector. We won't pester the player with probing attacks here anymore. - return; + const auto queenStopsAttacking = zDiffSetting[gGameOptions.ubDifficultyLevel].bQueenLosingControlOfSector; + if (queenStopsAttacking != 0 && pSector->ubInvestigativeState >= queenStopsAttacking) { + /* This is equal or higher than QueenAttackLosingControlOfSector number of times the player has conquered this sector. + We won't pester the player with probing attacks here anymore. */ + return; + } } if( sSectorX != gWorldSectorX || sSectorY != gWorldSectorY )