From 2d65d7c846de4b6028b72b14d29df7082afe2d59 Mon Sep 17 00:00:00 2001 From: NetsuNegi39 Date: Sun, 22 Feb 2026 14:49:36 +0800 Subject: [PATCH 1/4] init --- docs/Fixed-or-Improved-Logics.md | 6 ++++++ src/Misc/Selection.cpp | 4 ++-- src/Phobos.INI.cpp | 2 ++ src/Phobos.h | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md index 8f36ad37e4..ad11d3567d 100644 --- a/docs/Fixed-or-Improved-Logics.md +++ b/docs/Fixed-or-Improved-Logics.md @@ -2087,6 +2087,12 @@ TypeSelectUseIFVMode=false ; boolean WeaponGroupAsN= ; string, default to N if [General] -> TypeSelectUseIFVMode=true, and 0 if false ``` +In `ra2md.ini` +```ini +[Phobos] +TypeSelectUseIFVMode=true ; boolean +``` + ### Customizing crushing tilt and slowdown - Vehicles with `Crusher=true` and `OmniCrusher=true` / `MovementZone=CrusherAll` were hardcoded to tilt when crushing vehicles / walls respectively. This now obeys `TiltsWhenCrushes` but can be customized individually for these two scenarios using `TiltsWhenCrusher.Vehicles` and `TiltsWhenCrusher.Overlays`, which both default to `TiltsWhenCrushes`. diff --git a/src/Misc/Selection.cpp b/src/Misc/Selection.cpp index d2b938e4db..3018260c0c 100644 --- a/src/Misc/Selection.cpp +++ b/src/Misc/Selection.cpp @@ -138,7 +138,7 @@ class ExtSelection char* gunnerID = pTypeExt->WeaponGroupAs[pTechno->CurrentWeaponNumber]; if (!GeneralUtils::IsValidString(gunnerID)) - sprintf_s(gunnerID, 0x20, "%d", RulesExt::Global()->TypeSelectUseIFVMode ? pTechno->CurrentWeaponNumber + 1 : 0); + sprintf_s(gunnerID, 0x20, "%d", RulesExt::Global()->TypeSelectUseIFVMode && Phobos::Config::TypeSelectUseIFVMode ? pTechno->CurrentWeaponNumber + 1 : 0); if (std::ranges::none_of(ExtSelection::IFVGroups, [gunnerID](const char* pID) { return !_stricmp(pID, gunnerID); })) break; @@ -188,7 +188,7 @@ DEFINE_FUNCTION_JUMP(LJMP, 0x6D9FF0, ExtSelection::Tactical_MakeFilteredSelectio DEFINE_HOOK(0x73298D, TypeSelectExecute_UseIFVMode, 0x5) { - const bool useIFVMode = RulesExt::Global()->TypeSelectUseIFVMode; + const bool useIFVMode = RulesExt::Global()->TypeSelectUseIFVMode && Phobos::Config::TypeSelectUseIFVMode; for (const auto pObject : ObjectClass::CurrentObjects) { diff --git a/src/Phobos.INI.cpp b/src/Phobos.INI.cpp index c9bc501bdc..6126cbf829 100644 --- a/src/Phobos.INI.cpp +++ b/src/Phobos.INI.cpp @@ -47,6 +47,7 @@ bool Phobos::Config::ToolTipDescriptions = true; bool Phobos::Config::ToolTipBlur = false; bool Phobos::Config::PrioritySelectionFiltering = true; bool Phobos::Config::PriorityDeployFiltering = true; +bool Phobos::Config::TypeSelectUseIFVMode = true; bool Phobos::Config::DevelopmentCommands = true; bool Phobos::Config::SuperWeaponSidebarCommands = false; bool Phobos::Config::ShowPlanningPath = false; @@ -90,6 +91,7 @@ DEFINE_HOOK(0x5FACDF, OptionsClass_LoadSettings_LoadPhobosSettings, 0x5) Phobos::Config::ToolTipBlur = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "ToolTipBlur", false); Phobos::Config::PrioritySelectionFiltering = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "PrioritySelectionFiltering", true); Phobos::Config::PriorityDeployFiltering = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "PriorityDeployFiltering", true); + Phobos::Config::TypeSelectUseIFVMode = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "TypeSelectUseIFVMode", true); Phobos::Config::ShowPlacementPreview = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "ShowPlacementPreview", true); Phobos::Config::MessageApplyHoverState = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "MessageApplyHoverState", false); Phobos::Config::MessageDisplayInCenter = CCINIClass::INI_RA2MD.ReadBool(phobosSection, "MessageDisplayInCenter", false); diff --git a/src/Phobos.h b/src/Phobos.h index 2e794bd388..a080df0018 100644 --- a/src/Phobos.h +++ b/src/Phobos.h @@ -82,6 +82,7 @@ class Phobos static bool ToolTipBlur; static bool PrioritySelectionFiltering; static bool PriorityDeployFiltering; + static bool TypeSelectUseIFVMode; static bool DevelopmentCommands; static bool SuperWeaponSidebarCommands; static bool ArtImageSwap; From b41a90acb05814f5ed4d9dfae7e52503633d84fb Mon Sep 17 00:00:00 2001 From: Netsu_Negi <71598172+NetsuNegi@users.noreply.github.com> Date: Mon, 23 Feb 2026 15:11:06 +0800 Subject: [PATCH 2/4] Update Fixed-or-Improved-Logics.md --- docs/Fixed-or-Improved-Logics.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md index ad11d3567d..afebd510ba 100644 --- a/docs/Fixed-or-Improved-Logics.md +++ b/docs/Fixed-or-Improved-Logics.md @@ -2087,6 +2087,8 @@ TypeSelectUseIFVMode=false ; boolean WeaponGroupAsN= ; string, default to N if [General] -> TypeSelectUseIFVMode=true, and 0 if false ``` +- You can turn it off when you don't need it. + In `ra2md.ini` ```ini [Phobos] From 2c4773f059d8d2d4cf870209c04f958e894bad7c Mon Sep 17 00:00:00 2001 From: Noble_Fish <1065703286@qq.com> Date: Mon, 23 Feb 2026 21:18:26 +0800 Subject: [PATCH 3/4] fix doc --- docs/Fixed-or-Improved-Logics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Fixed-or-Improved-Logics.md b/docs/Fixed-or-Improved-Logics.md index afebd510ba..0931cde673 100644 --- a/docs/Fixed-or-Improved-Logics.md +++ b/docs/Fixed-or-Improved-Logics.md @@ -2087,9 +2087,9 @@ TypeSelectUseIFVMode=false ; boolean WeaponGroupAsN= ; string, default to N if [General] -> TypeSelectUseIFVMode=true, and 0 if false ``` -- You can turn it off when you don't need it. +- This behavior is designed to be toggleable by users. For now you can only do that externally via client or manually. -In `ra2md.ini` +In `RA2MD.INI`: ```ini [Phobos] TypeSelectUseIFVMode=true ; boolean From b83486cc790505fee758210adc96cd446761a2d5 Mon Sep 17 00:00:00 2001 From: Noble_Fish <1065703286@qq.com> Date: Mon, 23 Feb 2026 22:13:43 +0800 Subject: [PATCH 4/4] tr doc --- docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po b/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po index 01fc3379c4..25738e0a42 100644 --- a/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po +++ b/docs/locale/zh_CN/LC_MESSAGES/Fixed-or-Improved-Logics.po @@ -4479,6 +4479,14 @@ msgid "" "weapons, which makes type selection on IFVs work the same as before." msgstr "若设为 false 则 `WeaponGroupAsN` 将默认为 0 以保持原有行为。" +msgid "" +"This behavior is designed to be toggleable by users. For now you can only" +" do that externally via client or manually." +msgstr "此行为设计为可由用户切换。目前你只能通过客户端或进行手动设置。" + +msgid "In `RA2MD.INI`:" +msgstr "在 `RA2MD.INI`:" + msgid "Customizing crushing tilt and slowdown" msgstr "自定义碾压倾斜和减速"