- New Feature: Added INI option to enable/disable the use of random mercs stats ("RandomStats.xml")

o INI option: MERCS_RANDOM_STATS (3 values)

0 = Do not use random stats (JA2 vanilla setting)
1 = Use random stats for ALL merc from the file "TableData\RandomStats.xml"
2 = Use random stats for SELECTED merc, that have random stats defined in "TableData\RandomStats.xml"

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@5963 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2013-03-27 23:17:15 +00:00
parent 49932ef904
commit 9cc873368d
3 changed files with 71 additions and 61 deletions
+3 -1
View File
@@ -849,6 +849,8 @@ void LoadGameExternalOptions()
// Buggler: setting to show/hide skills/traits in AIM & MERC hiring page // Buggler: setting to show/hide skills/traits in AIM & MERC hiring page
gGameExternalOptions.fShowSkillsInHirePage = iniReader.ReadBoolean("Recruitment Settings", "SHOW_SKILLS_IN_HIRING_PAGE", FALSE); gGameExternalOptions.fShowSkillsInHirePage = iniReader.ReadBoolean("Recruitment Settings", "SHOW_SKILLS_IN_HIRING_PAGE", FALSE);
gGameExternalOptions.ubMercRandomStats = iniReader.ReadInteger("Recruitment Settings", "MERCS_RANDOM_STATS", 0, 0, 2);
//################# Financial Settings ################# //################# Financial Settings #################
gGameExternalOptions.iStartingCashNovice = iniReader.ReadInteger("Financial Settings", "STARTING_CASH_NOVICE",45000, 2000, 0x0FFFFFFF); gGameExternalOptions.iStartingCashNovice = iniReader.ReadInteger("Financial Settings", "STARTING_CASH_NOVICE",45000, 2000, 0x0FFFFFFF);
@@ -1070,7 +1072,7 @@ void LoadGameExternalOptions()
// Flugente: does the queen send out assassins that mix among your militia? // Flugente: does the queen send out assassins that mix among your militia?
gGameExternalOptions.fEnemyAssassins = iniReader.ReadBoolean("Tactical Difficulty Settings", "ENEMY_ASSASSINS", FALSE); gGameExternalOptions.fEnemyAssassins = iniReader.ReadBoolean("Tactical Difficulty Settings", "ENEMY_ASSASSINS", FALSE);
gGameExternalOptions.usAssassinMinimumProgress = iniReader.ReadInteger("Tactical Difficulty Settings", "ASSASSIN_MINIMUM_PROGRESS", 30, 0, 100); gGameExternalOptions.usAssassinMinimumProgress = iniReader.ReadInteger("Tactical Difficulty Settings", "ASSASSIN_MINIMUM_PROGRESS", 20, 0, 100);
gGameExternalOptions.usAssassinMinimumMilitia = iniReader.ReadInteger("Tactical Difficulty Settings", "ASSASSIN_MINIMUM_MILITIA", 10, 0, 64); gGameExternalOptions.usAssassinMinimumMilitia = iniReader.ReadInteger("Tactical Difficulty Settings", "ASSASSIN_MINIMUM_MILITIA", 10, 0, 64);
gGameExternalOptions.usAssassinPropabilityModifier = iniReader.ReadInteger("Tactical Difficulty Settings", "ASSASSIN_PROPABILITY_MODIFIER", 100, 0, 1000); gGameExternalOptions.usAssassinPropabilityModifier = iniReader.ReadInteger("Tactical Difficulty Settings", "ASSASSIN_PROPABILITY_MODIFIER", 100, 0, 1000);
+2
View File
@@ -1141,6 +1141,8 @@ typedef struct
BOOLEAN fShowSkillsInHirePage; BOOLEAN fShowSkillsInHirePage;
UINT8 ubMercRandomStats;
BOOLEAN fBobbyRayFastShipments; BOOLEAN fBobbyRayFastShipments;
BOOLEAN fGridExitInTurnBased; BOOLEAN fGridExitInTurnBased;
+7 -1
View File
@@ -437,9 +437,15 @@ UINT32 cnt;
INT8 bBaseAttribute = 0; INT8 bBaseAttribute = 0;
MERCPROFILESTRUCT * pProfile; MERCPROFILESTRUCT * pProfile;
BOOLEAN randomStatsEnabled = FALSE;
for ( cnt = 0; cnt < NUM_PROFILES; cnt++ ) for ( cnt = 0; cnt < NUM_PROFILES; cnt++ )
{ {
if ( gRandomStatsValue[cnt].Enabled == TRUE ) // WANNE: Random Stats are based on the INI entry (MERCS_RANDOM_STATS)
if ((gGameExternalOptions.ubMercRandomStats == 1) || (gGameExternalOptions.ubMercRandomStats == 2 && gRandomStatsValue[cnt].Enabled))
randomStatsEnabled = TRUE;
if ( randomStatsEnabled == TRUE )
{ {
bBaseAttribute = gRandomStatsValue[cnt].BaseAttribute + ( 4 * gRandomStatsValue[cnt].ExpLevel ); bBaseAttribute = gRandomStatsValue[cnt].BaseAttribute + ( 4 * gRandomStatsValue[cnt].ExpLevel );
pProfile = &(gMercProfiles[cnt]); pProfile = &(gMercProfiles[cnt]);