- 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 bRadioSightings;
BOOLEAN bRadioSightings2; BOOLEAN bRadioSightings2;
FLOAT NewDifficultySettingsBASE_DIFFICULTY; FLOAT fCTHSettingsBaseDifficultyEnemy;
FLOAT NewDifficultySettingsAIM_DIFFICULTY; FLOAT fCTHSettingsAimDifficultyEnemy;
FLOAT fCTHSettingsBaseDifficultyMilitia;
FLOAT fCTHSettingsAimDifficultyMilitia;
FLOAT fCTHSettingsBaseDifficultyPlayer;
FLOAT fCTHSettingsAimDifficultyPlayer;
BOOLEAN bEnemyMoraleWorried; BOOLEAN bEnemyMoraleWorried;
+2 -2
View File
@@ -55,8 +55,8 @@
#endif #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 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 // 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 ) if ( gGameOptions.ubDifficultyLevel > 0 )
{ {
groupelites[ubCounter] = grouptroops[ubCounter] - grouptroops[ubCounter] / gGameOptions.ubDifficultyLevel; 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]; totalusedsoldiers += grouptroops[ubCounter] + groupelites[ubCounter] + grouptanks[ubCounter] + groupjeeps[ubCounter];
+15 -3
View File
@@ -11804,9 +11804,15 @@ FLOAT CalcNewChanceToHitBaseSpecialBonus(SOLDIERTYPE *pSoldier)
// GAME DIFFICULTY // GAME DIFFICULTY
if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_PC ) && (pSoldier->bSide != gbPlayerNum) ) 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; return fBaseModifier;
} }
@@ -12122,8 +12128,14 @@ FLOAT CalcNewChanceToHitAimSpecialBonus(SOLDIERTYPE *pSoldier)
// GAME DIFFICULTY // GAME DIFFICULTY
if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_PC ) && (pSoldier->bSide != gbPlayerNum) ) 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; return fAimModifier;
} }
+33 -5
View File
@@ -110,7 +110,11 @@ DifficultySettingsParseDataStartElementHandle(void *userData, const XML_Char *na
strcmp(name, "EnemyMoraleWorried") == 0 || strcmp(name, "EnemyMoraleWorried") == 0 ||
strcmp(name, "MaxMortarsPerTeam" ) == 0 || strcmp(name, "MaxMortarsPerTeam" ) == 0 ||
strcmp(name, "CthConstantsAimDifficulty") == 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; 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].bRadioSightings = pData->curDifficultySettings.bRadioSightings;
zDiffSetting[pData->curDifficultySettings.uiIndex].bRadioSightings2 = pData->curDifficultySettings.bRadioSightings2; zDiffSetting[pData->curDifficultySettings.uiIndex].bRadioSightings2 = pData->curDifficultySettings.bRadioSightings2;
zDiffSetting[pData->curDifficultySettings.uiIndex].NewDifficultySettingsAIM_DIFFICULTY = pData->curDifficultySettings.NewDifficultySettingsAIM_DIFFICULTY; zDiffSetting[pData->curDifficultySettings.uiIndex].fCTHSettingsAimDifficultyEnemy = pData->curDifficultySettings.fCTHSettingsAimDifficultyEnemy;
zDiffSetting[pData->curDifficultySettings.uiIndex].NewDifficultySettingsBASE_DIFFICULTY = pData->curDifficultySettings.NewDifficultySettingsBASE_DIFFICULTY; 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; 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) else if(strcmp(name, "CthConstantsAimDifficulty") == 0)
{ {
pData->curElement = ELEMENT; pData->curElement = ELEMENT;
pData->curDifficultySettings.NewDifficultySettingsAIM_DIFFICULTY = (FLOAT) atol(pData->szCharData); pData->curDifficultySettings.fCTHSettingsAimDifficultyEnemy = (FLOAT) atol(pData->szCharData);
} }
else if(strcmp(name, "CthConstantsBaseDifficulty") == 0) else if(strcmp(name, "CthConstantsBaseDifficulty") == 0)
{ {
pData->curElement = ELEMENT; 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--; pData->maxReadDepth--;
} }