diff --git a/GameSettings.cpp b/GameSettings.cpp index 4ecbf426..3d7df186 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -230,6 +230,7 @@ BOOLEAN LoadGameSettings() gGameSettings.fOptions[TOPTION_HIDE_BULLETS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_HIDE_BULLETS" , FALSE ); gGameSettings.fOptions[TOPTION_TRACKING_MODE] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_TRACKING_MODE" , TRUE ); gGameSettings.fOptions[TOPTION_DISABLE_CURSOR_SWAP] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_DISABLE_CURSOR_SWAP" , FALSE ); + gGameSettings.fOptions[TOPTION_QUIET_TRAINING] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_QUIET_TRAINING" , FALSE ); if (!is_networked) gGameSettings.fOptions[TOPTION_AUTO_FAST_FORWARD_MODE] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_AUTO_FAST_FORWARD_MODE" , FALSE ); @@ -401,6 +402,7 @@ BOOLEAN SaveGameSettings() settings << "TOPTION_SHOW_TACTICAL_FACE_GEAR = " << (gGameSettings.fOptions[TOPTION_SHOW_TACTICAL_FACE_GEAR] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_SHOW_TACTICAL_FACE_ICONS = " << (gGameSettings.fOptions[TOPTION_SHOW_TACTICAL_FACE_ICONS] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_DISABLE_CURSOR_SWAP = " << (gGameSettings.fOptions[TOPTION_DISABLE_CURSOR_SWAP] ? "TRUE" : "FALSE" ) << endl; + settings << "TOPTION_QUIET_TRAINING = " << (gGameSettings.fOptions[TOPTION_QUIET_TRAINING] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_AUTO_FAST_FORWARD_MODE = " << (gGameSettings.fOptions[TOPTION_AUTO_FAST_FORWARD_MODE] ? "TRUE" : "FALSE" ) << endl; //settings << "TOPTION_WEAPON_OVERHEATING = " << (gGameOptions.fWeaponOverheating ? "TRUE" : "FALSE" ) << endl; // Flugente FTW 1: Weapon Overheating settings << "TOPTION_CHEAT_MODE_OPTIONS_HEADER = " << (gGameSettings.fOptions[TOPTION_CHEAT_MODE_OPTIONS_HEADER] ? "TRUE" : "FALSE" ) << endl; @@ -526,6 +528,7 @@ void InitGameSettings() gGameSettings.fOptions[ TOPTION_REPORT_MISS_MARGIN ] = FALSE; gGameSettings.fOptions[ TOPTION_DISABLE_CURSOR_SWAP ] = FALSE; + gGameSettings.fOptions[ TOPTION_QUIET_TRAINING ] = FALSE; gGameSettings.fOptions[ TOPTION_AUTO_FAST_FORWARD_MODE ] = FALSE; // Flugente FTW 1: Weapon Overheating diff --git a/GameSettings.h b/GameSettings.h index bb6b0ef0..494a1727 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -87,6 +87,7 @@ enum TOPTION_SHOW_TACTICAL_FACE_ICONS, TOPTION_DISABLE_CURSOR_SWAP, // Disable cursor swapping every second between talk and quick exchange + TOPTION_QUIET_TRAINING, //Madd: mercs don't say gained experience quote while training TOPTION_AUTO_FAST_FORWARD_MODE, // automatically fast forward through AI turns // Flugente FTW 1: Weapon Overheating diff --git a/Tactical/Campaign.cpp b/Tactical/Campaign.cpp index cef37da9..a8e853c4 100644 --- a/Tactical/Campaign.cpp +++ b/Tactical/Campaign.cpp @@ -134,7 +134,7 @@ void StatChange(SOLDIERTYPE *pSoldier, UINT8 ubStat, UINT16 usNumChances, UINT8 ProcessStatChange( &( gMercProfiles[ pSoldier->ubProfile ] ), ubStat, usNumChances, ubReason ); // Update stats....right away... ATE - UpdateStats( pSoldier ); + UpdateStats( pSoldier, ubReason ); } @@ -152,7 +152,7 @@ void ProfileStatChange(MERCPROFILESTRUCT *pProfile, UINT8 ubStat, UINT16 usNumCh ProcessStatChange( pProfile, ubStat, usNumChances, ubReason ); // Update stats....right away... ATE - ProfileUpdateStats( pProfile ); + ProfileUpdateStats( pProfile, ubReason ); } @@ -449,20 +449,20 @@ void ProcessStatChange(MERCPROFILESTRUCT *pProfile, UINT8 ubStat, UINT16 usNumCh // convert hired mercs' stats subpoint changes into actual point changes where warranted -void UpdateStats( SOLDIERTYPE *pSoldier ) +void UpdateStats( SOLDIERTYPE *pSoldier, UINT8 ubReason ) { - ProcessUpdateStats( &( gMercProfiles[ pSoldier->ubProfile ] ), pSoldier ); + ProcessUpdateStats( &( gMercProfiles[ pSoldier->ubProfile ] ), pSoldier, ubReason ); } // UpdateStats version for mercs not currently on player's team -void ProfileUpdateStats( MERCPROFILESTRUCT *pProfile ) +void ProfileUpdateStats( MERCPROFILESTRUCT *pProfile, UINT8 ubReason ) { - ProcessUpdateStats( pProfile, NULL ); + ProcessUpdateStats( pProfile, NULL, ubReason ); } -void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubStat, INT16 sPtsChanged ) +void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubStat, INT16 sPtsChanged, UINT8 ubReason = 0 ) { // this function changes the stat a given amount... INT16 *psStatGainPtr = NULL; @@ -686,7 +686,9 @@ void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubSta { // Pipe up with "I'm getting better at this!" TacticalCharacterDialogueWithSpecialEventEx( pSoldier, 0, DIALOGUE_SPECIAL_EVENT_DISPLAY_STAT_CHANGE, fChangeTypeIncrease, sPtsChanged, ubStat ); - TacticalCharacterDialogue( pSoldier, QUOTE_EXPERIENCE_GAIN ); + + if ( (ubReason != FROM_TRAINING && pSoldier->bAssignment != TRAIN_TEAMMATE ) || !gGameSettings.fOptions[TOPTION_QUIET_TRAINING] ) //Madd: option to make mercs quiet during training + TacticalCharacterDialogue( pSoldier, QUOTE_EXPERIENCE_GAIN ); } else { @@ -822,7 +824,7 @@ void ChangeStat( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubSta // pSoldier may be NULL! -void ProcessUpdateStats( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier ) +void ProcessUpdateStats( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubReason ) { // this function will run through the soldier's profile and update their stats based on any accumulated gain pts. UINT8 ubStat = 0; @@ -1036,7 +1038,7 @@ void ProcessUpdateStats( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier ) if ( sPtsChanged != 0 ) { // Otherwise, use normal stat increase stuff... - ChangeStat( pProfile, pSoldier, ubStat, sPtsChanged ); + ChangeStat( pProfile, pSoldier, ubStat, sPtsChanged, ubReason ); } } diff --git a/Tactical/Campaign.h b/Tactical/Campaign.h index b45cb84f..c47b144b 100644 --- a/Tactical/Campaign.h +++ b/Tactical/Campaign.h @@ -66,9 +66,9 @@ void StatChange(SOLDIERTYPE *pSoldier, UINT8 ubStat, UINT16 usNumChances, UINT8 void ProfileStatChange(MERCPROFILESTRUCT *pProfile, UINT8 ubStat, UINT16 usNumChances, UINT8 ubReason); void ProcessStatChange(MERCPROFILESTRUCT *pProfile, UINT8 ubStat, UINT16 usNumChances, UINT8 ubReason); -void UpdateStats( SOLDIERTYPE *pSoldier ); -void ProfileUpdateStats( MERCPROFILESTRUCT *pProfile ); -void ProcessUpdateStats( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier ); +void UpdateStats( SOLDIERTYPE *pSoldier, UINT8 ubReason = 0 ); +void ProfileUpdateStats( MERCPROFILESTRUCT *pProfile, UINT8 ubReason = 0 ); +void ProcessUpdateStats( MERCPROFILESTRUCT *pProfile, SOLDIERTYPE *pSoldier, UINT8 ubReason = 0 ); UINT32 CalcNewSalary(UINT32 uiOldSalary, BOOLEAN fIncrease, UINT32 uiMaxLimit); UINT32 RoundOffSalary(UINT32 uiSalary); diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index afae5c46..ec7304b8 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -5101,6 +5101,7 @@ STR16 zOptionsToggleText[] = L"显示脸部装备图", L"显示脸部装备图标", L"禁止光标切换", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"自动加速敌军回合", // Automatic fast forward through AI turns //L"武器过热", L"--作弊模式选项--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5209,6 +5210,7 @@ STR16 zOptionsScreenHelpText[] = L"打开时, 显示佣兵脸部装备图。", L"打开时, 佣兵肖像右下角显示脸部装备图标", L"打开时,在交换位置和其它动作时光标不切换。键入 |x 可以快速切换。", + L"When ON, mercs will not report progress during training.", //TODO.Translate L"打开时,敌军回合将被大幅加速。", //L"打开时,武器连续射击时温度逐渐升高引起过热。", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index 2dd713e1..cb19c4a9 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -5100,6 +5100,7 @@ STR16 zOptionsToggleText[] = L"Show Face gear graphics", // TODO.Translate L"Show Face gear icons", L"Uit te schakelen Cursor Swap", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate //L"Weapons Overheating", // TODO.Translate L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5208,6 +5209,7 @@ STR16 zOptionsScreenHelpText[] = L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.", L"Wanneer ingeschakeld, zal de cursor niet te schakelen tussen uitwisseling positie en andere acties. Druk op |x om snelle uitwisseling te starten.", + L"When ON, mercs will not report progress during training.", //TODO.Translate L"When ON, AI turns will be much faster.", // TODO.Translate //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index 5774b5ce..5a01c608 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -5099,6 +5099,7 @@ STR16 zOptionsToggleText[] = L"Show Face Gear Graphics", L"Show Face Gear Icons", L"Disable Cursor Swap", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns //L"Weapons Overheating", // TODO.Translate L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5207,6 +5208,7 @@ STR16 zOptionsScreenHelpText[] = L"When ON, you will see the equipped face gear on the merc portraits.", L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.", L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", + L"When ON, mercs will not report progress during training.", L"When ON, AI turns will be much faster.", //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index e90cd522..82fa75ec 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -5090,6 +5090,7 @@ STR16 zOptionsToggleText[] = L"Afficher équipments portrait", L"Afficher icones portraits", L"Désactiver échange curseur", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate //L"Weapons Overheating", // TODO.Translate L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5198,6 +5199,7 @@ STR16 zOptionsScreenHelpText[] = L"Si activé, vous verrez l'équipement du mercenaire à travers son portrait.", L"Si activé, vous verrez les icones correspondant à l'équipement porté en bas à droite du portrait.", L"Si activé, le curseur ne basculera pas entre changer de position et une autre action. Appuyez sur |x pour initier un échange rapide.", + L"When ON, mercs will not report progress during training.", L"When ON, AI turns will be much faster.", // TODO.Translate //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index ec179e84..95af4e53 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -4948,6 +4948,7 @@ STR16 zOptionsToggleText[] = L"Gesichtsequipment-Grafiken", L"Gesichtsequipment-Icons", L"Cursor-Wechsel deaktivieren", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Autom. schnelle Gegner-Züge", // Automatic fast forward through AI turns //L"Waffen können überhitzen", L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5056,6 +5057,7 @@ STR16 zOptionsScreenHelpText[] = L"Wenn diese Funktion aktiviert ist, sehen sie das Gesichtsequipment Ihrer Söldner direkt auf dem Portrait.", L"Wenn diese Funktion aktiviert ist, sehen sie Icons für das Gesichtsequipment in der rechten unteren Ecke des Portraits.", L"Wenn diese Funktion aktiviert ist, wird der Mauscursor nicht automatisch wechseln zwischen Personen-Positionswechsel und weiteren Aktionen.\nFür manuellen Positionswechsel drücken Sie |x.", + L"When ON, mercs will not report progress during training.", //TODO.Translate L"Wenn diese Funktion aktiviert ist, werden gegnerische Züge schneller durchgeführt.", //L"Wenn diese Funktion aktiviert ist, können sich Waffen überhiten bei schneller Schussfolge.", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index cd3def17..740030cd 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -5085,6 +5085,7 @@ STR16 zOptionsToggleText[] = L"Show Face gear graphics", // TODO.Translate L"Show Face gear icons", L"Disabilita Swap Cursore", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate //L"Weapons Overheating", // TODO.Translate L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5193,6 +5194,7 @@ STR16 zOptionsScreenHelpText[] = L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.", L"Se attivato, il cursore non si alternerà tra la posizione di scambio e altre azioni. Premere |x per avviare lo scambio rapido.", + L"When ON, mercs will not report progress during training.", L"When ON, AI turns will be much faster.", // TODO.Translate //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index c9d431f4..dcc69486 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -5097,6 +5097,7 @@ STR16 zOptionsToggleText[] = L"Show Face gear graphics", // TODO.Translate L"Show Face gear icons", L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate //L"Weapons Overheating", // TODO.Translate L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5205,6 +5206,7 @@ STR16 zOptionsScreenHelpText[] = L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.", L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate + L"When ON, mercs will not report progress during training.", L"When ON, AI turns will be much faster.", // TODO.Translate //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index d985a8b9..d95a8dce 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -5080,6 +5080,7 @@ STR16 zOptionsToggleText[] = L"Показать снаряжение на голове", //Show Face gear graphics L"Показать иконки снаряжения", L"Disable Cursor Swap", // Disable Cursor Swap // TODO.Translate + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate //L"Weapons Overheating", // TODO.Translate L"--Читерские настройки--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5188,6 +5189,7 @@ STR16 zOptionsScreenHelpText[] = L"Если включено, на портрете наёмника будет отображено одетое головное снаряжение.", L"Если включено, в правом нижнем углу \nна портрете наёмника будут отображены иконки \nодетого головного снаряжения.", L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", // TODO.Translate + L"When ON, mercs will not report progress during training.", L"When ON, AI turns will be much faster.", // TODO.Translate //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER", diff --git a/Utils/_TaiwaneseText.cpp b/Utils/_TaiwaneseText.cpp index 7bb046f6..952ce131 100644 --- a/Utils/_TaiwaneseText.cpp +++ b/Utils/_TaiwaneseText.cpp @@ -5101,6 +5101,7 @@ STR16 zOptionsToggleText[] = L"Show Face gear graphics", // TODO.Translate L"Show Face gear icons", L"Disable Cursor Swap", // Disable Cursor Swap + L"Quiet Training", // Madd: mercs don't say quotes while training // TODO.Translate L"Auto Fast Forward AI Turns", // Automatic fast forward through AI turns // TODO.Translate //L"Weapons Overheating", // TODO.Translate L"--Cheat Mode Options--", // TOPTION_CHEAT_MODE_OPTIONS_HEADER, @@ -5209,6 +5210,7 @@ STR16 zOptionsScreenHelpText[] = L"When ON, you will see the equipped face gear on the merc portraits.", // TODO.Translate L"When ON, you will see icons for the equipped face gear on the merc portraits in the lower right corner.", L"When ON, the cursor will not toggle between exchange position and other actions. Press |x to initiate quick exchange.", + L"When ON, mercs will not report progress during training.", L"When ON, AI turns will be much faster.", // TODO.Translate //L"When ON, weapons can be overheated when firing.", // TODO.Translate L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_HEADER",