- added new parameters for NCTH in DifficultySettings.xml that allow the modification of CTH for militia and player mercs (requires GameDir 2445)

- re-enabled the extra elites for counter attacks

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8615 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
silversurfer
2018-09-20 17:42:34 +00:00
parent ada2d374c4
commit 2aab4aff5d
5 changed files with 57 additions and 13 deletions
+6 -2
View File
@@ -89,8 +89,12 @@ typedef struct
BOOLEAN bRadioSightings;
BOOLEAN bRadioSightings2;
FLOAT NewDifficultySettingsBASE_DIFFICULTY;
FLOAT NewDifficultySettingsAIM_DIFFICULTY;
FLOAT fCTHSettingsBaseDifficultyEnemy;
FLOAT fCTHSettingsAimDifficultyEnemy;
FLOAT fCTHSettingsBaseDifficultyMilitia;
FLOAT fCTHSettingsAimDifficultyMilitia;
FLOAT fCTHSettingsBaseDifficultyPlayer;
FLOAT fCTHSettingsAimDifficultyPlayer;
BOOLEAN bEnemyMoraleWorried;
+2 -2
View File
@@ -55,8 +55,8 @@
#endif
CHAR8 czVersionNumber[16] = { "Build 18.02.09" }; //YY.MM.DD
CHAR8 czVersionNumber[16] = { "Build 18.20.09" }; //YY.MM.DD
CHAR16 zTrackingNumber[16] = { L"Z" };
CHAR16 zRevisionNumber[16] = { L"Revision 8610" };
CHAR16 zRevisionNumber[16] = { L"Revision 8612" };
// SAVE_GAME_VERSION is defined in header, change it there
+1 -1
View File
@@ -4588,7 +4588,7 @@ void ExecuteStrategicAIAction( UINT16 usActionCode, INT16 sSectorX, INT16 sSecto
if ( gGameOptions.ubDifficultyLevel > 0 )
{
groupelites[ubCounter] = grouptroops[ubCounter] - grouptroops[ubCounter] / gGameOptions.ubDifficultyLevel;
grouptroops[ubCounter] -= groupelites[ubCounter];
//grouptroops[ubCounter] -= groupelites[ubCounter];
}
totalusedsoldiers += grouptroops[ubCounter] + groupelites[ubCounter] + grouptanks[ubCounter] + groupjeeps[ubCounter];
+15 -3
View File
@@ -11804,9 +11804,15 @@ FLOAT CalcNewChanceToHitBaseSpecialBonus(SOLDIERTYPE *pSoldier)
// GAME DIFFICULTY
if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_PC ) && (pSoldier->bSide != gbPlayerNum) )
{
fBaseModifier += zDiffSetting[gGameOptions.ubDifficultyLevel].NewDifficultySettingsBASE_DIFFICULTY;
fBaseModifier += zDiffSetting[gGameOptions.ubDifficultyLevel].fCTHSettingsBaseDifficultyEnemy;
}
else if ( pSoldier->bTeam == MILITIA_TEAM )
{
fBaseModifier += zDiffSetting[gGameOptions.ubDifficultyLevel].fCTHSettingsBaseDifficultyMilitia;
}
else
fBaseModifier += __max( 0, ( 30 - CurrentPlayerProgressPercentage() ) ) * zDiffSetting[gGameOptions.ubDifficultyLevel].fCTHSettingsBaseDifficultyPlayer / 30;
return fBaseModifier;
}
@@ -12122,8 +12128,14 @@ FLOAT CalcNewChanceToHitAimSpecialBonus(SOLDIERTYPE *pSoldier)
// GAME DIFFICULTY
if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_PC ) && (pSoldier->bSide != gbPlayerNum) )
{
fAimModifier += zDiffSetting[gGameOptions.ubDifficultyLevel].NewDifficultySettingsAIM_DIFFICULTY;
fAimModifier += zDiffSetting[gGameOptions.ubDifficultyLevel].fCTHSettingsAimDifficultyEnemy;
}
else if ( pSoldier->bTeam == MILITIA_TEAM )
{
fAimModifier += zDiffSetting[gGameOptions.ubDifficultyLevel].fCTHSettingsAimDifficultyMilitia;
}
else
fAimModifier += __max( 0, ( 30 - CurrentPlayerProgressPercentage() ) ) * zDiffSetting[gGameOptions.ubDifficultyLevel].fCTHSettingsAimDifficultyPlayer / 30;
return fAimModifier;
}
+33 -5
View File
@@ -110,7 +110,11 @@ DifficultySettingsParseDataStartElementHandle(void *userData, const XML_Char *na
strcmp(name, "EnemyMoraleWorried") == 0 ||
strcmp(name, "MaxMortarsPerTeam" ) == 0 ||
strcmp(name, "CthConstantsAimDifficulty") == 0 ||
strcmp(name, "CthConstantsBaseDifficulty") == 0
strcmp(name, "CthConstantsBaseDifficulty") == 0 ||
strcmp(name, "CthConstantsAimDifficultyMilitia") == 0 ||
strcmp(name, "CthConstantsBaseDifficultyMilitia") == 0 ||
strcmp(name, "CthConstantsAimDifficultyPlayer") == 0 ||
strcmp(name, "CthConstantsBaseDifficultyPlayer") == 0
))
{
pData->curElement = ELEMENT_PROPERTY;
@@ -229,8 +233,12 @@ difficultySettingsEndElementHandle(void *userData, const XML_Char *name)
zDiffSetting[pData->curDifficultySettings.uiIndex].bRadioSightings = pData->curDifficultySettings.bRadioSightings;
zDiffSetting[pData->curDifficultySettings.uiIndex].bRadioSightings2 = pData->curDifficultySettings.bRadioSightings2;
zDiffSetting[pData->curDifficultySettings.uiIndex].NewDifficultySettingsAIM_DIFFICULTY = pData->curDifficultySettings.NewDifficultySettingsAIM_DIFFICULTY;
zDiffSetting[pData->curDifficultySettings.uiIndex].NewDifficultySettingsBASE_DIFFICULTY = pData->curDifficultySettings.NewDifficultySettingsBASE_DIFFICULTY;
zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsAimDifficultyEnemy = pData->curDifficultySettings.fCTHSettingsAimDifficultyEnemy;
zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsBaseDifficultyEnemy = pData->curDifficultySettings.fCTHSettingsBaseDifficultyEnemy;
zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsAimDifficultyMilitia = pData->curDifficultySettings.fCTHSettingsAimDifficultyMilitia;
zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsBaseDifficultyMilitia = pData->curDifficultySettings.fCTHSettingsBaseDifficultyMilitia;
zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsAimDifficultyPlayer = pData->curDifficultySettings.fCTHSettingsAimDifficultyPlayer;
zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsBaseDifficultyPlayer = pData->curDifficultySettings.fCTHSettingsBaseDifficultyPlayer;
zDiffSetting[pData->curDifficultySettings.uiIndex].bEnemyMoraleWorried = pData->curDifficultySettings.bEnemyMoraleWorried;
@@ -567,12 +575,32 @@ difficultySettingsEndElementHandle(void *userData, const XML_Char *name)
else if(strcmp(name, "CthConstantsAimDifficulty") == 0)
{
pData->curElement = ELEMENT;
pData->curDifficultySettings.NewDifficultySettingsAIM_DIFFICULTY = (FLOAT) atol(pData->szCharData);
pData->curDifficultySettings.fCTHSettingsAimDifficultyEnemy = (FLOAT) atol(pData->szCharData);
}
else if(strcmp(name, "CthConstantsBaseDifficulty") == 0)
{
pData->curElement = ELEMENT;
pData->curDifficultySettings.NewDifficultySettingsBASE_DIFFICULTY = (FLOAT) atol(pData->szCharData);
pData->curDifficultySettings.fCTHSettingsBaseDifficultyEnemy = (FLOAT) atol(pData->szCharData);
}
else if(strcmp(name, "CthConstantsAimDifficultyMilitia") == 0)
{
pData->curElement = ELEMENT;
pData->curDifficultySettings.fCTHSettingsAimDifficultyMilitia = (FLOAT) atol(pData->szCharData);
}
else if(strcmp(name, "CthConstantsBaseDifficultyMilitia") == 0)
{
pData->curElement = ELEMENT;
pData->curDifficultySettings.fCTHSettingsBaseDifficultyMilitia = (FLOAT) atol(pData->szCharData);
}
else if(strcmp(name, "CthConstantsAimDifficultyPlayer") == 0)
{
pData->curElement = ELEMENT;
pData->curDifficultySettings.fCTHSettingsAimDifficultyPlayer = (FLOAT) atol(pData->szCharData);
}
else if(strcmp(name, "CthConstantsBaseDifficultyPlayer") == 0)
{
pData->curElement = ELEMENT;
pData->curDifficultySettings.fCTHSettingsBaseDifficultyPlayer = (FLOAT) atol(pData->szCharData);
}
pData->maxReadDepth--;
}