Little Alien

- Externalized more strategic AI settings




git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@82 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
lalien
2006-05-25 15:02:07 +00:00
parent 00adecd129
commit 68959a30a0
5 changed files with 135 additions and 63 deletions
+35
View File
@@ -391,6 +391,41 @@ void LoadGameExternalOptions()
gGameExternalOptions.ubMeleeDamageMultiplier = iniReader.ReadInteger("JA2 Gameplay Settings","MELEE_DAMAGE_MULTIPLIER",1);
gGameExternalOptions.ubGunDamageMultiplier = iniReader.ReadInteger("JA2 Gameplay Settings","GUN_DAMAGE_MULTIPLIER",1);
//Strategic AI settings
gGameExternalOptions.ubEasyEnemyStartingAlertLevel = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_ENEMY_STARTING_ALERT_LEVEL", 5);
gGameExternalOptions.ubNormalEnemyStartingAlertLevel = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_ENEMY_STARTING_ALERT_LEVEL", 20);
gGameExternalOptions.ubHardEnemyStartingAlertLevel = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_ENEMY_STARTING_ALERT_LEVEL", 60);
gGameExternalOptions.ubInsaneEnemyStartingAlertLevel = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_ENEMY_STARTING_ALERT_LEVEL", 80);
gGameExternalOptions.ubEasyEnemyStartingAlertDecay = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_ENEMY_STARTING_ALERT_DECAY", 75);
gGameExternalOptions.ubNormalEnemyStartingAlertDecay = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_ENEMY_STARTING_ALERT_DECAY", 50);
gGameExternalOptions.ubHardEnemyStartingAlertDecay = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_ENEMY_STARTING_ALERT_DECAY", 25);
gGameExternalOptions.ubInsaneEnemyStartingAlertDecay = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_ENEMY_STARTING_ALERT_DECAY", 10);
gGameExternalOptions.ubEasyTimeEvaluateInMinutes = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_TIME_EVALUATE_IN_MINUTES", 480);
gGameExternalOptions.ubNormalTimeEvaluateInMinutes = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_TIME_EVALUATE_IN_MINUTES", 360);
gGameExternalOptions.ubHardTimeEvaluateInMinutes = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_TIME_EVALUATE_IN_MINUTES", 180);
gGameExternalOptions.ubInsaneTimeEvaluateInMinutes = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_TIME_EVALUATE_IN_MINUTES", 90);
gGameExternalOptions.ubEasyTimeEvaluateVariance = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_TIME_EVALUATE_VARIANCE", 240);
gGameExternalOptions.ubNormalTimeEvaluateVariance = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_TIME_EVALUATE_VARIANCE", 180);
gGameExternalOptions.ubHardTimeEvaluateVariance = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_TIME_EVALUATE_VARIANCE", 120);
gGameExternalOptions.ubInsaneTimeEvaluateVariance = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_TIME_EVALUATE_VARIANCE", 60);
gGameExternalOptions.ubEasyGracePeriodInHours = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_GRACE_PERIOD_IN_HOURS", 144);
gGameExternalOptions.ubNormalGracePeriodInHours = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_GRACE_PERIOD_IN_HOURS", 96);
gGameExternalOptions.ubHardGracePeriodInHours = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_GRACE_PERIOD_IN_HOURS", 48);
gGameExternalOptions.ubInsaneGracePeriodInHours = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_GRACE_PERIOD_IN_HOURS", 6);
gGameExternalOptions.ubEasyPatrolGracePeriodInDays = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_PATROL_GRACE_PERIOD_IN_DAYS", 16);
gGameExternalOptions.ubNormalPatrolGracePeriodInDays = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_PATROL_GRACE_PERIOD_IN_DAYS", 12);
gGameExternalOptions.ubHardPatrolGracePeriodInDays = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_PATROL_GRACE_PERIOD_IN_DAYS", 8);
gGameExternalOptions.ubInsanePatrolGracePeriodInDays = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_PATROL_GRACE_PERIOD_IN_DAYS", 2);
gGameExternalOptions.ubEasyNumAwareBattles = iniReader.ReadInteger("JA2 Gameplay Settings","EASY_NUM_AWARE_BATTLES", 1);
gGameExternalOptions.ubNormalNumAwareBattles = iniReader.ReadInteger("JA2 Gameplay Settings","NORMAL_NUM_AWARE_BATTLES", 2);
gGameExternalOptions.ubHardNumAwareBattles = iniReader.ReadInteger("JA2 Gameplay Settings","HARD_NUM_AWARE_BATTLES", 3);
gGameExternalOptions.ubInsaneNumAwareBattles = iniReader.ReadInteger("JA2 Gameplay Settings","INSANE_NUM_AWARE_BATTLES", 4);
}
+35
View File
@@ -235,6 +235,41 @@ typedef struct
UINT8 ubGunDamageMultiplier;
UINT8 ubMeleeDamageMultiplier;
UINT32 ubEasyEnemyStartingAlertLevel;
UINT32 ubNormalEnemyStartingAlertLevel;
UINT32 ubHardEnemyStartingAlertLevel;
UINT32 ubInsaneEnemyStartingAlertLevel;
UINT32 ubEasyEnemyStartingAlertDecay;
UINT32 ubNormalEnemyStartingAlertDecay;
UINT32 ubHardEnemyStartingAlertDecay;
UINT32 ubInsaneEnemyStartingAlertDecay;
UINT32 ubEasyTimeEvaluateInMinutes;
UINT32 ubNormalTimeEvaluateInMinutes;
UINT32 ubHardTimeEvaluateInMinutes;
UINT32 ubInsaneTimeEvaluateInMinutes;
UINT32 ubEasyTimeEvaluateVariance;
UINT32 ubNormalTimeEvaluateVariance;
UINT32 ubHardTimeEvaluateVariance;
UINT32 ubInsaneTimeEvaluateVariance;
UINT32 ubEasyGracePeriodInHours;
UINT32 ubNormalGracePeriodInHours;
UINT32 ubHardGracePeriodInHours;
UINT32 ubInsaneGracePeriodInHours;
UINT32 ubEasyPatrolGracePeriodInDays;
UINT32 ubNormalPatrolGracePeriodInDays;
UINT32 ubHardPatrolGracePeriodInDays;
UINT32 ubInsanePatrolGracePeriodInDays;
UINT32 ubEasyNumAwareBattles;
UINT32 ubNormalNumAwareBattles;
UINT32 ubHardNumAwareBattles;
UINT32 ubInsaneNumAwareBattles;
} GAME_EXTERNAL_OPTIONS;
//This structure will contain general Ja2 settings NOT individual game settings.
+1 -1
View File
@@ -23,7 +23,7 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" };
#else
//RELEASE BUILD VERSION
INT16 zVersionLabel[256] = { L"Release v1.13.80" };
INT16 zVersionLabel[256] = { L"Release v1.13.82" };
#endif
+2 -2
View File
@@ -43,7 +43,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libexpatMT.lib mss32.lib winmm.lib smackw32.lib fmodvc.lib"
OutputFile="C:\games\Jagged Alliance 2 v1.13\ja2_debug_v1.13.80_2006_05_25.exe"
OutputFile="C:\games\Jagged Alliance 2 v1.13\ja2_debug_v1.13.81_2006_05_25.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
@@ -546,7 +546,7 @@
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libexpatMT.lib winmm.lib smackw32.lib mss32.lib fmodvc.lib"
OutputFile="C:\Games\Jagged Alliance 2 v1.13\ja2_release_v1.13.80_2006_05_25.exe"
OutputFile="C:\Games\Jagged Alliance 2 v1.13\ja2_release_v1.13.81_2006_05_25.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories=".\..\..\Standard Gaming Platform\"
+62 -60
View File
@@ -109,50 +109,52 @@ of the group. If the priority of the group is high, they
//Sets the starting alert chances. Everytime an enemy arrives in a new sector, or the player,
//this is the chance the enemy will detect the player in adjacent sectors. This chance is associated
//with each side checked. Stationary groups do this check periodically.
#define EASY_ENEMY_STARTING_ALERT_LEVEL 5
#define NORMAL_ENEMY_STARTING_ALERT_LEVEL 20
#define HARD_ENEMY_STARTING_ALERT_LEVEL 60
#define INSANE_ENEMY_STARTING_ALERT_LEVEL 80
//#define EASY_ENEMY_STARTING_ALERT_LEVEL 20
//#define NORMAL_ENEMY_STARTING_ALERT_LEVEL 50
//#define HARD_ENEMY_STARTING_ALERT_LEVEL 70
//#define INSANE_ENEMY_STARTING_ALERT_LEVEL 90
//When an enemy spots and chases a player group, the alertness value decrements by this value. The
//higher the value, the less of a chance the enemy will spot and attack subsequent groups. This
//minimizes the aggressiveness of the enemy. Ranges from 1-100 (but recommend 20-60).
#define EASY_ENEMY_STARTING_ALERT_DECAY 75
#define NORMAL_ENEMY_STARTING_ALERT_DECAY 50
#define HARD_ENEMY_STARTING_ALERT_DECAY 25
#define INSANE_ENEMY_STARTING_ALERT_DECAY 10
//#define EASY_ENEMY_STARTING_ALERT_DECAY 75
//#define NORMAL_ENEMY_STARTING_ALERT_DECAY 50
//#define HARD_ENEMY_STARTING_ALERT_DECAY 25
//#define INSANE_ENEMY_STARTING_ALERT_DECAY 10
//The base time that the queen can think about reinforcements for refilling lost patrol groups,
//town garrisons, etc. She only is allowed one action per 'turn'.
#define EASY_TIME_EVALUATE_IN_MINUTES 480
#define NORMAL_TIME_EVALUATE_IN_MINUTES 360
#define HARD_TIME_EVALUATE_IN_MINUTES 180
#define INSANE_TIME_EVALUATE_IN_MINUTES 90
//#define EASY_TIME_EVALUATE_IN_MINUTES 480
//#define NORMAL_TIME_EVALUATE_IN_MINUTES 360
//#define HARD_TIME_EVALUATE_IN_MINUTES 180
//#define INSANE_TIME_EVALUATE_IN_MINUTES 90
//The variance added on.
#define EASY_TIME_EVALUATE_VARIANCE 240
#define NORMAL_TIME_EVALUATE_VARIANCE 180
#define HARD_TIME_EVALUATE_VARIANCE 120
#define INSANE_TIME_EVALUATE_VARIANCE 60
//#define EASY_TIME_EVALUATE_VARIANCE 240
//#define NORMAL_TIME_EVALUATE_VARIANCE 180
//#define HARD_TIME_EVALUATE_VARIANCE 120
//#define INSANE_TIME_EVALUATE_VARIANCE 60
//When a player takes control of a sector, don't allow any enemy reinforcements to enter the sector for a
//limited amount of time. This essentially dumbs down the AI, making it less aggressive.
#define EASY_GRACE_PERIOD_IN_HOURS 144 // 6 days
#define NORMAL_GRACE_PERIOD_IN_HOURS 96 // 4 days
#define HARD_GRACE_PERIOD_IN_HOURS 48 // 2 days
#define INSANE_GRACE_PERIOD_IN_HOURS 6 // hours!
//#define EASY_GRACE_PERIOD_IN_HOURS 144 // 6 days
//#define NORMAL_GRACE_PERIOD_IN_HOURS 96 // 4 days
//#define HARD_GRACE_PERIOD_IN_HOURS 48 // 2 days
//#define INSANE_GRACE_PERIOD_IN_HOURS 6 // hours!
//Defines how many days must pass before the queen is willing to refill a defeated patrol group.
#define EASY_PATROL_GRACE_PERIOD_IN_DAYS 16
#define NORMAL_PATROL_GRACE_PERIOD_IN_DAYS 12
#define HARD_PATROL_GRACE_PERIOD_IN_DAYS 8
#define INSANE_PATROL_GRACE_PERIOD_IN_DAYS 2
//#define EASY_PATROL_GRACE_PERIOD_IN_DAYS 16
//#define NORMAL_PATROL_GRACE_PERIOD_IN_DAYS 12
//#define HARD_PATROL_GRACE_PERIOD_IN_DAYS 8
//#define INSANE_PATROL_GRACE_PERIOD_IN_DAYS 2
//Certain conditions can cause the queen to go into a "full alert" mode. This means that temporarily, the queen's
//forces will automatically succeed adjacent checks until x number of enemy initiated battles occur. The same variable
//is what is used to determine the free checks.
#define EASY_NUM_AWARE_BATTLES 1
#define NORMAL_NUM_AWARE_BATTLES 2
#define HARD_NUM_AWARE_BATTLES 3
#define INSANE_NUM_AWARE_BATTLES 4
//#define EASY_NUM_AWARE_BATTLES 1
//#define NORMAL_NUM_AWARE_BATTLES 2
//#define HARD_NUM_AWARE_BATTLES 3
//#define INSANE_NUM_AWARE_BATTLES 4
BOOLEAN gfAutoAIAware = FALSE;
@@ -1074,40 +1076,40 @@ DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"Strategic3");
{
case DIF_LEVEL_EASY:
giReinforcementPool = gGameExternalOptions.iReinforcementPoolNovice;
giForcePercentage = gGameExternalOptions.iForcePercentageNovice;
giArmyAlertness = EASY_ENEMY_STARTING_ALERT_LEVEL;
giArmyAlertnessDecay = EASY_ENEMY_STARTING_ALERT_DECAY;
giForcePercentage = gGameExternalOptions.iForcePercentageNovice;
giArmyAlertness = gGameExternalOptions.ubEasyEnemyStartingAlertLevel;
giArmyAlertnessDecay = gGameExternalOptions.ubEasyEnemyStartingAlertDecay;
gubMinEnemyGroupSize = gGameExternalOptions.ubMinEnemyGroupSizeNovice;
gubHoursGracePeriod = EASY_GRACE_PERIOD_IN_HOURS;
gubHoursGracePeriod = gGameExternalOptions.ubEasyGracePeriodInHours;
// 475 is 7:55am in minutes since midnight, the time the game starts on day 1
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + EASY_TIME_EVALUATE_IN_MINUTES + Random( EASY_TIME_EVALUATE_VARIANCE ), 0 );
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + gGameExternalOptions.ubEasyTimeEvaluateInMinutes + Random( gGameExternalOptions.ubEasyTimeEvaluateVariance ), 0 );
break;
case DIF_LEVEL_MEDIUM:
giReinforcementPool = gGameExternalOptions.iReinforcementPoolExperienced;
giForcePercentage = gGameExternalOptions.iForcePercentageExperienced;
giArmyAlertness = NORMAL_ENEMY_STARTING_ALERT_LEVEL;
giArmyAlertnessDecay = NORMAL_ENEMY_STARTING_ALERT_DECAY;
giForcePercentage = gGameExternalOptions.iForcePercentageExperienced;
giArmyAlertness = gGameExternalOptions.ubNormalEnemyStartingAlertLevel;
giArmyAlertnessDecay = gGameExternalOptions.ubNormalEnemyStartingAlertDecay;
gubMinEnemyGroupSize = gGameExternalOptions.ubMinEnemyGroupSizeExperienced;
gubHoursGracePeriod = NORMAL_GRACE_PERIOD_IN_HOURS;
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + NORMAL_TIME_EVALUATE_IN_MINUTES + Random( NORMAL_TIME_EVALUATE_VARIANCE ), 0 );
gubHoursGracePeriod = gGameExternalOptions.ubNormalGracePeriodInHours;
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + gGameExternalOptions.ubNormalTimeEvaluateInMinutes + Random( gGameExternalOptions.ubNormalTimeEvaluateVariance ), 0 );
break;
case DIF_LEVEL_HARD:
giReinforcementPool = gGameExternalOptions.iReinforcementPoolExpert;
giForcePercentage = gGameExternalOptions.iForcePercentageExpert;
giArmyAlertness = HARD_ENEMY_STARTING_ALERT_LEVEL;
giArmyAlertnessDecay = HARD_ENEMY_STARTING_ALERT_DECAY;
giForcePercentage = gGameExternalOptions.iForcePercentageExpert;
giArmyAlertness = gGameExternalOptions.ubHardEnemyStartingAlertLevel;
giArmyAlertnessDecay = gGameExternalOptions.ubHardEnemyStartingAlertDecay;
gubMinEnemyGroupSize = gGameExternalOptions.ubMinEnemyGroupSizeExpert;
gubHoursGracePeriod = HARD_GRACE_PERIOD_IN_HOURS;
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + HARD_TIME_EVALUATE_IN_MINUTES + Random( HARD_TIME_EVALUATE_VARIANCE ), 0 );
gubHoursGracePeriod = gGameExternalOptions.ubHardGracePeriodInHours;
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + gGameExternalOptions.ubHardTimeEvaluateInMinutes + Random( gGameExternalOptions.ubHardTimeEvaluateVariance ), 0 );
break;
case DIF_LEVEL_INSANE:
giReinforcementPool = gGameExternalOptions.iReinforcementPoolInsane;
giForcePercentage = gGameExternalOptions.iForcePercentageInsane;
giArmyAlertness = INSANE_ENEMY_STARTING_ALERT_LEVEL;
giArmyAlertnessDecay = INSANE_ENEMY_STARTING_ALERT_DECAY;
giForcePercentage = gGameExternalOptions.iForcePercentageInsane;
giArmyAlertness = gGameExternalOptions.ubInsaneEnemyStartingAlertLevel;
giArmyAlertnessDecay = gGameExternalOptions.ubInsaneEnemyStartingAlertDecay;
gubMinEnemyGroupSize = gGameExternalOptions.ubMinEnemyGroupSizeInsane;
gubHoursGracePeriod = INSANE_GRACE_PERIOD_IN_HOURS;
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + INSANE_TIME_EVALUATE_IN_MINUTES + Random( INSANE_TIME_EVALUATE_VARIANCE ), 0 );
gubHoursGracePeriod = gGameExternalOptions.ubInsaneGracePeriodInHours;
AddStrategicEvent( EVENT_EVALUATE_QUEEN_SITUATION, 475 + gGameExternalOptions.ubInsaneTimeEvaluateInMinutes + Random( gGameExternalOptions.ubInsaneTimeEvaluateVariance ), 0 );
break;
}
@@ -2941,16 +2943,16 @@ void EvaluateQueenSituation()
switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
uiOffset += EASY_TIME_EVALUATE_IN_MINUTES + Random( EASY_TIME_EVALUATE_VARIANCE );
uiOffset += gGameExternalOptions.ubEasyTimeEvaluateInMinutes + Random( gGameExternalOptions.ubEasyTimeEvaluateVariance );
break;
case DIF_LEVEL_MEDIUM:
uiOffset += NORMAL_TIME_EVALUATE_IN_MINUTES + Random( NORMAL_TIME_EVALUATE_VARIANCE );
uiOffset += gGameExternalOptions.ubNormalTimeEvaluateInMinutes + Random( gGameExternalOptions.ubNormalTimeEvaluateVariance );
break;
case DIF_LEVEL_HARD:
uiOffset += HARD_TIME_EVALUATE_IN_MINUTES + Random( HARD_TIME_EVALUATE_VARIANCE );
uiOffset += gGameExternalOptions.ubHardTimeEvaluateInMinutes + Random( gGameExternalOptions.ubHardTimeEvaluateVariance );
break;
case DIF_LEVEL_INSANE:
uiOffset += INSANE_TIME_EVALUATE_IN_MINUTES + Random( INSANE_TIME_EVALUATE_VARIANCE );
uiOffset += gGameExternalOptions.ubInsaneTimeEvaluateInMinutes + Random( gGameExternalOptions.ubInsaneTimeEvaluateVariance );
break;
}
@@ -4041,16 +4043,16 @@ void ExecuteStrategicAIAction( UINT16 usActionCode, INT16 sSectorX, INT16 sSecto
switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
gubNumAwareBattles = EASY_NUM_AWARE_BATTLES;
gubNumAwareBattles = gGameExternalOptions.ubEasyNumAwareBattles;
break;
case DIF_LEVEL_MEDIUM:
gubNumAwareBattles = NORMAL_NUM_AWARE_BATTLES;
gubNumAwareBattles = gGameExternalOptions.ubNormalNumAwareBattles;
break;
case DIF_LEVEL_HARD:
gubNumAwareBattles = HARD_NUM_AWARE_BATTLES;
gubNumAwareBattles = gGameExternalOptions.ubHardNumAwareBattles;
break;
case DIF_LEVEL_INSANE:
gubNumAwareBattles = INSANE_NUM_AWARE_BATTLES;
gubNumAwareBattles = gGameExternalOptions.ubInsaneNumAwareBattles;
break;
}
break;
@@ -5151,16 +5153,16 @@ void TagSAIGroupWithGracePeriod( GROUP *pGroup )
switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + EASY_PATROL_GRACE_PERIOD_IN_DAYS) % 100);
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + gGameExternalOptions.ubEasyPatrolGracePeriodInDays) % 100);
break;
case DIF_LEVEL_MEDIUM:
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + NORMAL_PATROL_GRACE_PERIOD_IN_DAYS) % 100);
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + gGameExternalOptions.ubNormalPatrolGracePeriodInDays) % 100);
break;
case DIF_LEVEL_HARD:
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + HARD_PATROL_GRACE_PERIOD_IN_DAYS) % 100);
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + gGameExternalOptions.ubHardPatrolGracePeriodInDays) % 100);
break;
case DIF_LEVEL_INSANE:
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + INSANE_PATROL_GRACE_PERIOD_IN_DAYS) % 100);
gPatrolGroup[ iPatrolID ].bFillPermittedAfterDayMod100 = (UINT8)((GetWorldDay() + gGameExternalOptions.ubInsanePatrolGracePeriodInDays) % 100);
break;
}
}