From 78e08d57114f03eaca055742076dfec2fba6fabc Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Fri, 12 Jan 2024 17:19:12 +0000 Subject: [PATCH] Add setting text/warnings about why YAPF is recommended for trains --- src/lang/extra/english.txt | 2 ++ src/settings.cpp | 27 +++++++++++++++++++++ src/table/settings/pathfinding_settings.ini | 3 +++ 3 files changed, 32 insertions(+) diff --git a/src/lang/extra/english.txt b/src/lang/extra/english.txt index 3b01c3aa09..1ddecdf762 100644 --- a/src/lang/extra/english.txt +++ b/src/lang/extra/english.txt @@ -775,6 +775,8 @@ STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED_NEWGRF :{WHITE}...setti STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Show timetable in ticks rather than days: {STRING2} STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Show travel times in time tables in game ticks instead of days +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT_EXTRA :{STRING}{}Various features require use of the YAPF pathfinder, including: routing restrictions (all pathfinder and reservation related actions), reverse at waypoint/signal and drive through train depots. + STR_CHEAT_EDIT_MONEY_QUERY_CAPT :{WHITE}Increase or decrease money STR_CHEAT_INFLATION_COST :{LTBLUE}Change inflation cost factor: {ORANGE}{DECIMAL} STR_CHEAT_INFLATION_COST_QUERY_CAPT :{WHITE}Change inflation cost factor diff --git a/src/settings.cpp b/src/settings.cpp index 0d826a9b1b..4102388d01 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2026,6 +2026,33 @@ static bool ChunnelSettingGUI(SettingOnGuiCtrlData &data) } } +static bool TrainPathfinderSettingGUI(SettingOnGuiCtrlData &data) +{ + switch (data.type) { + case SOGCT_DESCRIPTION_TEXT: + SetDParam(0, data.text); + data.text = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT_EXTRA; + return true; + + case SOGCT_GUI_SPRITE: + if (data.val != VPF_YAPF) { + data.output = SPR_WARNING_SIGN; + return true; + } + return false; + + case SOGCT_GUI_WARNING_TEXT: + if (data.val != VPF_YAPF) { + data.text = STR_CONFIG_SETTING_ADVISED_LEAVE_DEFAULT; + return true; + } + return false; + + default: + return false; + } +} + /* End - GUI callbacks */ /** diff --git a/src/table/settings/pathfinding_settings.ini b/src/table/settings/pathfinding_settings.ini index 27834b8e04..a42cf4f29f 100644 --- a/src/table/settings/pathfinding_settings.ini +++ b/src/table/settings/pathfinding_settings.ini @@ -11,6 +11,8 @@ static void InvalidateShipPathCache(int32_t new_value); static void CheckYapfRailSignalPenalties(int32_t new_value); +static bool TrainPathfinderSettingGUI(SettingOnGuiCtrlData &data); + static const SettingTable _pathfinding_settings{ [post-amble] }; @@ -115,6 +117,7 @@ str = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS strhelp = STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT strval = STR_CONFIG_SETTING_PATHFINDER_NPF cat = SC_EXPERT +guiproc = TrainPathfinderSettingGUI [SDT_VAR] var = pf.pathfinder_for_roadvehs