mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
- 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:
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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--;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user