From fd2202be01c3b2ebcddb48a0e0e4dad51a843bc0 Mon Sep 17 00:00:00 2001 From: Flugente Date: Tue, 17 Sep 2013 19:16:20 +0000 Subject: [PATCH] New feature: When more than one merc is selected, they will keep their current formation. This behaviour can be toggled via [CTRL] + [Shift]+ [g]. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6413 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameSettings.cpp | 3 ++ GameSettings.h | 5 ++- Tactical/Handle UI.cpp | 74 +++++++++++++++++++++++++++++++---- Tactical/Turn Based Input.cpp | 16 +++++++- Utils/Text.h | 2 + Utils/_ChineseText.cpp | 4 ++ Utils/_DutchText.cpp | 4 ++ Utils/_EnglishText.cpp | 4 ++ Utils/_FrenchText.cpp | 4 ++ Utils/_GermanText.cpp | 4 ++ Utils/_ItalianText.cpp | 4 ++ Utils/_PolishText.cpp | 4 ++ Utils/_RussianText.cpp | 4 ++ Utils/_TaiwaneseText.cpp | 4 ++ 14 files changed, 127 insertions(+), 9 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index 4b1ae0245..ffcc623df 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -208,6 +208,7 @@ BOOLEAN LoadGameSettings() gGameSettings.fOptions[TOPTION_TOGGLE_TURN_MODE] = FALSE; gGameSettings.fOptions[TOPTION_STAT_PROGRESS_BARS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_STAT_PROGRESS_BARS" , TRUE ); // HEADROCK HAM 3.6: Progress Bars + gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_MERCENARY_FORMATIONS" , TRUE ); // Flugente: mercenary formations gGameSettings.fOptions[TOPTION_REPORT_MISS_MARGIN] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_REPORT_MISS_MARGIN" , FALSE ); // HEADROCK HAM 4: Shot offset report gGameSettings.fOptions[TOPTION_ALT_MAP_COLOR] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_ALT_MAP_COLOR" , FALSE ); // HEADROCK HAM 4: Strategic Map Colors gGameSettings.fOptions[TOPTION_ALTERNATE_BULLET_GRAPHICS] = iniReader.ReadBoolean("JA2 Game Settings","TOPTION_ALTERNATE_BULLET_GRAPHICS" , TRUE ); @@ -430,6 +431,7 @@ BOOLEAN SaveGameSettings() settings << "TOPTION_FORCE_BOBBY_RAY_SHIPMENTS = " << (gGameSettings.fOptions[TOPTION_FORCE_BOBBY_RAY_SHIPMENTS] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_CHEAT_MODE_OPTIONS_END = " << (gGameSettings.fOptions[TOPTION_CHEAT_MODE_OPTIONS_END] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_DEBUG_MODE_OPTIONS_HEADER = " << (gGameSettings.fOptions[TOPTION_DEBUG_MODE_OPTIONS_HEADER] ? "TRUE" : "FALSE" ) << endl; + settings << "TOPTION_MERCENARY_FORMATIONS = " << (gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_REPORT_MISS_MARGIN = " << (gGameSettings.fOptions[TOPTION_REPORT_MISS_MARGIN] ? "TRUE" : "FALSE" ) << endl; // HEADROCK HAM 4: Shot offset report settings << "TOPTION_SHOW_RESET_ALL_OPTIONS = " << (gGameSettings.fOptions[TOPTION_SHOW_RESET_ALL_OPTIONS] ? "TRUE" : "FALSE" ) << endl; settings << "TOPTION_RESET_ALL_OPTIONS = " << (gGameSettings.fOptions[TOPTION_RESET_ALL_OPTIONS] ? "TRUE" : "FALSE" ) << endl; @@ -571,6 +573,7 @@ void InitGameSettings() gGameSettings.fOptions[ TOPTION_CHEAT_MODE_OPTIONS_END ] = FALSE; gGameSettings.fOptions[ TOPTION_DEBUG_MODE_OPTIONS_HEADER ] = FALSE; // an example options screen options header (pure text) gGameSettings.fOptions[ TOPTION_SHOW_RESET_ALL_OPTIONS ] = FALSE; // failsafe show/hide option to reset all options + gGameSettings.fOptions[ TOPTION_MERCENARY_FORMATIONS ] = FALSE; // Flugente: mercs walk in formations gGameSettings.fOptions[ TOPTION_REPORT_MISS_MARGIN ] = FALSE; gGameSettings.fOptions[ TOPTION_RESET_ALL_OPTIONS ] = FALSE; // a do once and reset self option (button like effect) gGameSettings.fOptions[ TOPTION_RETAIN_DEBUG_OPTIONS_IN_RELEASE ] = FALSE; // allow debug options that were set in debug.exe to continue in a rel.exe (debugging release can be beneficial) diff --git a/GameSettings.h b/GameSettings.h index 58aecdccd..922761da0 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -100,7 +100,10 @@ enum TOPTION_CHEAT_MODE_OPTIONS_HEADER, TOPTION_FORCE_BOBBY_RAY_SHIPMENTS, // force all pending Bobby Ray shipments TOPTION_CHEAT_MODE_OPTIONS_END, - TOPTION_DEBUG_MODE_OPTIONS_HEADER, // an example options screen options header (pure text) + TOPTION_DEBUG_MODE_OPTIONS_HEADER, // an example options screen options header (pure text) + + // Flugente: mercenary formations + TOPTION_MERCENARY_FORMATIONS, // HEADROCK HAM 4: TOPTION_REPORT_MISS_MARGIN, diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index dfa7a43bd..c1e6b724e 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -5567,6 +5567,13 @@ BOOLEAN HandleMultiSelectionMove( INT32 sDestGridNo ) } } + // Flugente: we want to ove mercs in formation. In order to achieve this, we need to find their centre gridno. + // We can then determine their range to this centre, an set as their new gridno the sDestGridNo + this difference + INT32 lowestX = 999999; + INT32 highestX = 0; + INT32 lowestY = 999999; + INT32 highestY = 0; + cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++ ) { @@ -5574,14 +5581,34 @@ BOOLEAN HandleMultiSelectionMove( INT32 sDestGridNo ) { if ( pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) { - // If we can't be controlled, returninvalid... - if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT ) - { - if ( !pSoldier->CanRobotBeControlled( ) ) - { - continue; + // update lowest and highest x and y values + lowestX = min(lowestX, pSoldier->sGridNo % MAXCOL ); + highestX = max(highestX, pSoldier->sGridNo % MAXCOL ); + lowestY = min(lowestY, pSoldier->sGridNo / MAXCOL ); + highestY = max(highestY, pSoldier->sGridNo / MAXCOL ); } } + } + + // determine center gridno + INT32 centerX = (highestX + lowestX)/2; + INT32 centerY = (highestY + lowestY)/2; + + cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++ ) + { + if ( pSoldier->bActive && pSoldier->bInSector ) + { + if ( pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) + { + // If we can't be controlled, returninvalid... + if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT ) + { + if ( !pSoldier->CanRobotBeControlled( ) ) + { + continue; + } + } pSoldier->flags.fUIMovementFast = fMoveFast; pSoldier->usUIMovementMode = pSoldier->GetMoveStateBasedOnStance( gAnimControl[ pSoldier->usAnimState ].ubEndHeight ); @@ -5600,8 +5627,41 @@ BOOLEAN HandleMultiSelectionMove( INT32 sDestGridNo ) // Remove any previous actions pSoldier->aiData.ubPendingAction = NO_PENDING_ACTION; + INT32 sIndividualDestGridNo = sDestGridNo; + // Flugente: determine offset to current center gridno + if ( gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] ) + { + INT32 currentX = pSoldier->sGridNo % MAXCOL; + INT32 currentY = pSoldier->sGridNo / MAXCOL; - if ( pSoldier->EVENT_InternalGetNewSoldierPath( sDestGridNo, pSoldier->usUIMovementMode , TRUE, pSoldier->flags.fNoAPToFinishMove ) ) + INT32 diffX = currentX - centerX; + INT32 diffY = currentY - centerY; + + sIndividualDestGridNo = sDestGridNo + diffX + MAXCOL * diffY; + + // if we cannot walk to this gridno, move to one nearby + if ( !IsLocationSittableExcludingPeople( sIndividualDestGridNo, pSoldier->pathing.bLevel ) ) + { + // try to find a fitting gridno nearby, otherwise go to target location + BOOLEAN found = FALSE; + for (UINT8 i = 0; i < 10; ++i) + { + INT32 rdX = Random(5) - 2; // -2 : 2 + INT32 rdY = Random(5) - 2; // -2 : 2 + + if ( IsLocationSittableExcludingPeople( sIndividualDestGridNo + rdX + MAXCOL * rdY, pSoldier->pathing.bLevel ) ) + { + found = TRUE; + sIndividualDestGridNo = sIndividualDestGridNo + rdX + MAXCOL * rdY; + break; + } + } + if ( !found ) + sIndividualDestGridNo = sDestGridNo; + } + } + + if ( pSoldier->EVENT_InternalGetNewSoldierPath( sIndividualDestGridNo, pSoldier->usUIMovementMode , TRUE, pSoldier->flags.fNoAPToFinishMove ) ) { pSoldier->InternalDoMercBattleSound( BATTLE_SOUND_OK1, BATTLE_SND_LOWER_VOLUME ); } diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index 3d9d8b921..04ead331a 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -3296,7 +3296,21 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) case 'G': - if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] ) + if( fCtrl ) + { + // Flugente: toggle formation + if ( gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] ) + { + gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] = FALSE; + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_FORMATIONS_OFF ] ); + } + else + { + gGameSettings.fOptions[TOPTION_MERCENARY_FORMATIONS] = TRUE; + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_FORMATIONS_ON ] ); + } + } + else if ( gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] ) { gGameSettings.fOptions[TOPTION_GL_BURST_CURSOR] = FALSE; ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_GL_BURST_CURSOR_OFF ] ); diff --git a/Utils/Text.h b/Utils/Text.h index 627ef2f3b..7fab3f657 100644 --- a/Utils/Text.h +++ b/Utils/Text.h @@ -446,6 +446,8 @@ enum MSG_WINDOWED_MODE_LOCK_MOUSE, // 104 MSG_WINDOWED_MODE_RELEASE_MOUSE, // 105 + MSG_FORMATIONS_ON, // 106 + MSG_FORMATIONS_OFF, // 107 TEXT_NUM_MSG, }; diff --git a/Utils/_ChineseText.cpp b/Utils/_ChineseText.cpp index 00ffd31b1..aeb9237a4 100644 --- a/Utils/_ChineseText.cpp +++ b/Utils/_ChineseText.cpp @@ -5189,6 +5189,7 @@ STR16 zOptionsToggleText[] = L"强制 Bobby Ray 送货", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG 选项--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. L"重置所有选项", // failsafe show/hide option to reset all options L"确定要重置?", // a do once and reset self option (button like effect) @@ -5305,6 +5306,7 @@ STR16 zOptionsScreenHelpText[] = L"强制 Bobby Ray 出货", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: 当打开时, 将报告每个子弹偏离目标中心点的距离,考虑各种NCTH因素。", L"修复损坏的游戏设置", // failsafe show/hide option to reset all options L"修复损坏的游戏设置", // a do once and reset self option (button like effect) @@ -5725,6 +5727,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) L"鼠标已锁定,鼠标移动范围强制限制在游戏窗口内部区域。", // 104 L"鼠标已释放,鼠标移动范围不再受限于游戏窗口内部区域。", // 105 + L"Mercenaries walk in formations", + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_DutchText.cpp b/Utils/_DutchText.cpp index c3b78a5e2..6f9d8bd74 100644 --- a/Utils/_DutchText.cpp +++ b/Utils/_DutchText.cpp @@ -5191,6 +5191,7 @@ STR16 zOptionsToggleText[] = L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. // TODO.Translate L"Reset ALL game options", // failsafe show/hide option to reset all options L"Do you really want to reset?", // a do once and reset self option (button like effect) @@ -5307,6 +5308,7 @@ STR16 zOptionsScreenHelpText[] = L"Force all pending Bobby Ray shipments", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: When ON, will report the distance each bullet deviates from the\ncenter of the target, taking all NCTH factors into account.", L"Click me to fix corrupt game settings", // failsafe show/hide option to reset all options L"Click me to fix corrupt game settings", // a do once and reset self option (button like effect) @@ -5735,6 +5737,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) // TODO.Translate L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_EnglishText.cpp b/Utils/_EnglishText.cpp index dfdef38b0..9ff1d3eee 100644 --- a/Utils/_EnglishText.cpp +++ b/Utils/_EnglishText.cpp @@ -5189,6 +5189,7 @@ STR16 zOptionsToggleText[] = L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. L"Reset ALL game options", // failsafe show/hide option to reset all options L"Do you really want to reset?", // a do once and reset self option (button like effect) @@ -5305,6 +5306,7 @@ STR16 zOptionsScreenHelpText[] = L"Force all pending Bobby Ray shipments", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: When ON, will report the distance each bullet deviates from the\ncenter of the target, taking all NCTH factors into account.", L"Click me to fix corrupt game settings", // failsafe show/hide option to reset all options L"Click me to fix corrupt game settings", // a do once and reset self option (button like effect) @@ -5725,6 +5727,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_FrenchText.cpp b/Utils/_FrenchText.cpp index 360f34eae..cbec5c4d5 100644 --- a/Utils/_FrenchText.cpp +++ b/Utils/_FrenchText.cpp @@ -5191,6 +5191,7 @@ STR16 zOptionsToggleText[] = L"Forcer envois Bobby Ray", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Barre de progression des stats", // Show progress towards stat increase L"Réinitialiser TOUTES les options du jeu", // failsafe show/hide option to reset all options L"Voulez-vous vraiment réinitialiser ?", // a do once and reset self option (button like effect) @@ -5306,6 +5307,7 @@ STR16 zOptionsScreenHelpText[] = L"Forcer tous les envois en attente de Bobby Ray", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: Si activé, annoncera la distance de déviation de chaque tir à partir\ndu centre de la cible, en prenant en compte tous les facteurs du NCTH.", L"Click me to fix corrupt game settings", // failsafe show/hide option to reset all options L"Click me to fix corrupt game settings", // a do once and reset self option (button like effect) @@ -5730,6 +5732,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) // TODO.Translate L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", // TODO.Translate + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_GermanText.cpp b/Utils/_GermanText.cpp index 8fa969ad6..5c2e08651 100644 --- a/Utils/_GermanText.cpp +++ b/Utils/_GermanText.cpp @@ -5036,6 +5036,7 @@ STR16 zOptionsToggleText[] = L"Erzwinge BR Lieferung", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. L"Reset ALL game options", // failsafe show/hide option to reset all options L"Do you really want to reset?", // a do once and reset self option (button like effect) @@ -5152,6 +5153,7 @@ STR16 zOptionsScreenHelpText[] = L"Force all pending Bobby Ray shipments", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: Wenn diese Funktion aktiviert ist, wird der Abstand den jede die Kugel vom Zielmittelpunkt abweicht, unter Berücksichtigung aller CTH-Faktoren, ausgegeben.", L"Hier klicken, um fehlerhafte Optionseinstellungen zu beheben.", // failsafe show/hide option to reset all options L"Hier klicken, um fehlerhafte Optionseinstellungen zu beheben.", // a do once and reset self option (button like effect) @@ -5568,6 +5570,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) L"Mausberech begrenzen, damit Mauscursor innerhalb des Spielfensters bleibt.", // 104 L"Mausbereich wieder freigeben, um uneingeschränkte Mausbewebung zu erhalten.", // 105 + L"Mercenaries walk in formations", // TODO.Translate + L"Mercenaries stop walking in formations", }; CHAR16 ItemPickupHelpPopup[][40] = diff --git a/Utils/_ItalianText.cpp b/Utils/_ItalianText.cpp index ae7778101..b06937b0d 100644 --- a/Utils/_ItalianText.cpp +++ b/Utils/_ItalianText.cpp @@ -5174,6 +5174,7 @@ STR16 zOptionsToggleText[] = L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. // TODO.Translate L"Reset ALL game options", // failsafe show/hide option to reset all options L"Do you really want to reset?", // a do once and reset self option (button like effect) @@ -5290,6 +5291,7 @@ STR16 zOptionsScreenHelpText[] = L"Force all pending Bobby Ray shipments", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: When ON, will report the distance each bullet deviates from the\ncenter of the target, taking all NCTH factors into account.", L"Click me to fix corrupt game settings", // failsafe show/hide option to reset all options L"Click me to fix corrupt game settings", // a do once and reset self option (button like effect) @@ -5719,6 +5721,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) // TODO.Translate L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", // TODO.Translate + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_PolishText.cpp b/Utils/_PolishText.cpp index 06c5bb32a..d9bf9938d 100644 --- a/Utils/_PolishText.cpp +++ b/Utils/_PolishText.cpp @@ -5194,6 +5194,7 @@ STR16 zOptionsToggleText[] = L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. // TODO.Translate L"Reset ALL game options", // failsafe show/hide option to reset all options L"Do you really want to reset?", // a do once and reset self option (button like effect) @@ -5310,6 +5311,7 @@ STR16 zOptionsScreenHelpText[] = L"Wymuś wszystkie oczekiwane dostawy od Bobby Ray's.", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: When ON, will report the distance each bullet deviates from the\ncenter of the target, taking all NCTH factors into account.", L"Kliknij by naprawić błędy w ustawieniach gry.", // failsafe show/hide option to reset all options L"Kliknij by naprawić błędy w ustawieniach gry.", // a do once and reset self option (button like effect) @@ -5735,6 +5737,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) // TODO.Translate L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", // TODO.Translate + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_RussianText.cpp b/Utils/_RussianText.cpp index bf817637d..8003f1232 100644 --- a/Utils/_RussianText.cpp +++ b/Utils/_RussianText.cpp @@ -5188,6 +5188,7 @@ STR16 zOptionsToggleText[] = L"Ускорить доставку Бобби Рэя", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--Настройки отладочной версии--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Сообщать координаты промахов", //Report Miss Offsets // Screen messages showing amount and direction of shot deviation. L"Сброс всех игровых настроек", // failsafe show/hide option to reset all options L"В самом деле хотите этого?", // a do once and reset self option (button like effect) @@ -5304,6 +5305,7 @@ STR16 zOptionsScreenHelpText[] = L"Выберите этот пункт чтобы груз Бобби Рэя прибыл немедленно.", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: When ON, will report the distance each bullet deviates from the\ncenter of the target, taking all NCTH factors into account.", L"Если включить, \nповреждённые игровые настройки будут восстановлены.", // failsafe show/hide option to reset all options L"Отметьте строку для подтверждения сброса игровых настроек.", // a do once and reset self option (button like effect) @@ -5724,6 +5726,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) // TODO.Translate L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", // TODO.Translate + L"Mercenaries stop walking in formations", }; diff --git a/Utils/_TaiwaneseText.cpp b/Utils/_TaiwaneseText.cpp index ea8730258..d7e97b1ae 100644 --- a/Utils/_TaiwaneseText.cpp +++ b/Utils/_TaiwaneseText.cpp @@ -5193,6 +5193,7 @@ STR16 zOptionsToggleText[] = L"Force Bobby Ray shipments", // force all pending Bobby Ray shipments L"-----------------", // TOPTION_CHEAT_MODE_OPTIONS_END L"--DEBUG OPTIONS--", // an example options screen options header (pure text) + L"Walk in formations", // when multiple mercs are selected, they will try to keep their relative distances L"Report Miss Offsets", // Screen messages showing amount and direction of shot deviation. // TODO.Translate L"Reset ALL game options", // failsafe show/hide option to reset all options L"Do you really want to reset?", // a do once and reset self option (button like effect) @@ -5309,6 +5310,7 @@ STR16 zOptionsScreenHelpText[] = L"Force all pending Bobby Ray shipments", L"(text not rendered)TOPTION_CHEAT_MODE_OPTIONS_END", L"(text not rendered)TOPTION_DEBUG_MODE_OPTIONS_HEADER", // an example options screen options header (pure text) + L"When multiple mercs are selected, they will try to keep their relative distances", L"|H|A|M |4 |D|e|b|u|g: When ON, will report the distance each bullet deviates from the\ncenter of the target, taking all NCTH factors into account.", L"Click me to fix corrupt game settings", // failsafe show/hide option to reset all options L"Click me to fix corrupt game settings", // a do once and reset self option (button like effect) @@ -5738,6 +5740,8 @@ STR16 pMessageStrings[] = // Lock / release mouse in windowed mode (window boundary) // TODO.Translate L"Locking mouse cursor to stay within window boundary.", // 104 L"Releasing mouse cursor to move outside window boundary.", // 105 + L"Mercenaries walk in formations", // TODO.Translate + L"Mercenaries stop walking in formations", };