diff --git a/Ja2/gamescreen.cpp b/Ja2/gamescreen.cpp index 7b39fa6e9..953e8197e 100644 --- a/Ja2/gamescreen.cpp +++ b/Ja2/gamescreen.cpp @@ -353,7 +353,7 @@ void InternalLeaveTacticalScreen( UINT32 uiNewScreen ) gpCustomizableTimerCallback = NULL; // unload the sector they teleported out of - if ( !gfAutomaticallyStartAutoResolve ) + if ( !AutomaticallyStartAutoResolve() ) { CheckAndHandleUnloadingOfCurrentWorld(); } diff --git a/Strategic/Creature Spreading.cpp b/Strategic/Creature Spreading.cpp index 129ce229f..77f644a6a 100644 --- a/Strategic/Creature Spreading.cpp +++ b/Strategic/Creature Spreading.cpp @@ -1210,7 +1210,7 @@ void CreatureAttackTown( UINT8 ubSectorID, BOOLEAN fOverrideTest ) InitPreBattleInterface( NULL, TRUE ); break; case CREATURE_BATTLE_CODE_AUTORESOLVE: - gfAutomaticallyStartAutoResolve = TRUE; + SetAutomaticallyStartAutoResolve( TRUE ); InitPreBattleInterface( NULL, TRUE ); break; case CREATURE_BATTLE_CODE_TACTICALLYADD: @@ -1413,7 +1413,7 @@ void CreatureAttackTown_OtherCreatures( UINT8 ubSectorID, UINT8 ubType ) InitPreBattleInterface( NULL, TRUE ); break; case CREATURE_BATTLE_CODE_AUTORESOLVE: - gfAutomaticallyStartAutoResolve = TRUE; + SetAutomaticallyStartAutoResolve( TRUE ); InitPreBattleInterface( NULL, TRUE ); break; case CREATURE_BATTLE_CODE_TACTICALLYADD: diff --git a/Strategic/Player Command.cpp b/Strategic/Player Command.cpp index 85d472de2..a2efc2920 100644 --- a/Strategic/Player Command.cpp +++ b/Strategic/Player Command.cpp @@ -455,7 +455,7 @@ BOOLEAN SetThisSectorAsEnemyControlled( INT16 sMapX, INT16 sMapY, INT8 bMapZ, BO //KM : August 6, 1999 Patch fix // This check was added because this function gets called when player mercs retreat from an unresolved // battle between militia and enemies. It will get called again AFTER autoresolve is finished. - if( gfAutomaticallyStartAutoResolve ) + if( AutomaticallyStartAutoResolve() ) { return( FALSE ); } diff --git a/Strategic/PreBattle Interface.cpp b/Strategic/PreBattle Interface.cpp index 895760a6d..94c510699 100644 --- a/Strategic/PreBattle Interface.cpp +++ b/Strategic/PreBattle Interface.cpp @@ -53,7 +53,6 @@ #include "GameInitOptionsScreen.h" extern void InitializeTacticalStatusAtBattleStart(); -extern BOOLEAN gfDelayAutoResolveStart; extern UILayout_Map UI_MAP; #ifdef JA2BETAVERSION @@ -69,12 +68,13 @@ GROUP *gpTacticalTraversalGroup = NULL; SOLDIERTYPE *gpTacticalTraversalChosenSoldier = NULL; -BOOLEAN gfAutomaticallyStartAutoResolve = FALSE; +static BOOLEAN gfAutomaticallyStartAutoResolve = FALSE; +static BOOLEAN gfDelayAutoResolveStart = FALSE; BOOLEAN gfAutoAmbush = FALSE; BOOLEAN gfHighPotentialForAmbush = FALSE; BOOLEAN gfGotoSectorTransition = FALSE; BOOLEAN gfEnterAutoResolveMode = FALSE; -BOOLEAN gfEnteringMapScreenToEnterPreBattleInterface = FALSE; +static BOOLEAN gfEnteringMapScreenToEnterPreBattleInterface = FALSE; BOOLEAN gfIgnoreAllInput = TRUE; BOOLEAN gfZoomDone = FALSE; @@ -215,6 +215,11 @@ void SetPreBattleInterfaceActive( BOOLEAN fActive ) { gfPreBattleInterfaceActive BOOLEAN IsPersistantPBI() { return gfUsePersistantPBI; } void SetPersistantPBI( BOOLEAN fPersistant ) { gfUsePersistantPBI = fPersistant; } +BOOLEAN AutomaticallyStartAutoResolve() { return gfAutomaticallyStartAutoResolve; } +void SetAutomaticallyStartAutoResolve( BOOLEAN fAuto ) { gfAutomaticallyStartAutoResolve = fAuto; } +void SetDelayAutoResolveStart( BOOLEAN fDelay ) { gfDelayAutoResolveStart = fDelay; } +void SetEnteringMapScreenToEnterPreBattleInterface( BOOLEAN fEntering ) { gfEnteringMapScreenToEnterPreBattleInterface = fEntering; } + INT32 giHilitedInvolved = 0; INT32 giHilitedUninvolved = 0; diff --git a/Strategic/PreBattle Interface.h b/Strategic/PreBattle Interface.h index a786c5f2f..96c5e0f43 100644 --- a/Strategic/PreBattle Interface.h +++ b/Strategic/PreBattle Interface.h @@ -13,8 +13,11 @@ BOOLEAN IsPreBattleInterfaceActive(); void SetPreBattleInterfaceActive( BOOLEAN fActive ); BOOLEAN IsPersistantPBI(); void SetPersistantPBI( BOOLEAN fPersistant ); +BOOLEAN AutomaticallyStartAutoResolve(); +void SetAutomaticallyStartAutoResolve( BOOLEAN fAuto ); +void SetDelayAutoResolveStart( BOOLEAN fDelay ); +void SetEnteringMapScreenToEnterPreBattleInterface( BOOLEAN fEntering ); extern BOOLEAN gfDisplayPotentialRetreatPaths; -extern BOOLEAN gfAutomaticallyStartAutoResolve; extern BOOLEAN fDisableMapInterfaceDueToBattle; extern GROUP *gpBattleGroup; @@ -24,7 +27,6 @@ extern GROUP *gpTacticalTraversalGroup; extern SOLDIERTYPE *gpTacticalTraversalChosenSoldier; extern BOOLEAN gfGotoSectorTransition; -extern BOOLEAN gfEnteringMapScreenToEnterPreBattleInterface; enum { diff --git a/Strategic/Strategic Movement.cpp b/Strategic/Strategic Movement.cpp index cf0b254dd..9e8c241bf 100644 --- a/Strategic/Strategic Movement.cpp +++ b/Strategic/Strategic Movement.cpp @@ -88,8 +88,6 @@ BOOLEAN ValidateGroups( GROUP *pGroup ); extern BOOLEAN gubNumAwareBattles; extern INT8 SquadMovementGroups[ ]; -BOOLEAN gfDelayAutoResolveStart = FALSE; - BOOLEAN gfRandomizingPatrolGroup = FALSE; @@ -1052,7 +1050,7 @@ void PrepareForPreBattleInterface( GROUP *pPlayerDialogGroup, GROUP *pInitiating if ( pPlayerDialogGroup->usGroupTeam == MILITIA_TEAM ) { // force direct transition to autoresolve - gfDelayAutoResolveStart = TRUE; + SetDelayAutoResolveStart( TRUE ); // We MUST start combat, but donot play quote... InitPreBattleInterface( pInitiatingBattleGroup, TRUE ); @@ -1376,7 +1374,7 @@ BOOLEAN CheckConditionsForBattle( GROUP *pGroup ) if( !fCombatAbleMerc ) { //Prepare for instant autoresolve. - gfDelayAutoResolveStart = TRUE; + SetDelayAutoResolveStart( TRUE ); SetPersistantPBI( TRUE ); if( fMilitiaPresent ) { @@ -6207,7 +6205,7 @@ void CheckCombatInSectorDueToUnusualEnemyArrival( UINT8 aTeam, INT16 sX, INT16 s if ( !fCombatAbleMerc ) { //Prepare for instant autoresolve. - gfDelayAutoResolveStart = TRUE; + SetDelayAutoResolveStart( TRUE ); SetPersistantPBI( TRUE ); if ( fMilitiaPresent ) { diff --git a/Strategic/Town Militia.cpp b/Strategic/Town Militia.cpp index 4a08666a2..0e2947537 100644 --- a/Strategic/Town Militia.cpp +++ b/Strategic/Town Militia.cpp @@ -1124,7 +1124,7 @@ void HandleMilitiaStatusInCurrentMapBeforeLoadingNewMap( void ) HandleMilitiaDefections( gWorldSectorX, gWorldSectorY ); gTacticalStatus.Team[ MILITIA_TEAM ].bSide = 0; } - else if( !gfAutomaticallyStartAutoResolve ) + else if( !AutomaticallyStartAutoResolve() ) { //Don't promote militia if we are going directly to autoresolve to finish the current battle. HandleMilitiaPromotions(); } diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index c137c4f9b..0714bfb9d 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -6523,8 +6523,8 @@ BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSect pMilitia->bSectorZ == pSectorZ ) { //We have militia and enemies and no mercs! Let's finish this battle in autoresolve. gfEnteringMapScreen = TRUE; - gfEnteringMapScreenToEnterPreBattleInterface = TRUE; - gfAutomaticallyStartAutoResolve = TRUE; + SetEnteringMapScreenToEnterPreBattleInterface( TRUE ); + SetAutomaticallyStartAutoResolve( TRUE ); SetPersistantPBI( FALSE ); gubPBSectorX = (UINT8)pSectorX; gubPBSectorY = (UINT8)pSectorY;