From f1c0f864f55f1bc892ade05d9fafad3d11dceb0f Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 6 May 2024 20:00:34 +0100 Subject: [PATCH] Add setting to shorten vehicle view status text --- src/lang/extra/english.txt | 11 +++++++++++ src/settings_gui.cpp | 1 + src/settings_type.h | 1 + src/table/settings/gui_settings.ini | 8 ++++++++ src/vehicle_gui.cpp | 13 +++++++++++++ 5 files changed, 34 insertions(+) diff --git a/src/lang/extra/english.txt b/src/lang/extra/english.txt index 4c44f067fd..52a1a8f90c 100644 --- a/src/lang/extra/english.txt +++ b/src/lang/extra/english.txt @@ -333,6 +333,9 @@ STR_CONFIG_SETTING_SHOW_ORDER_NUMBER_IN_VEHICLE_VIEW_HELPTEXT :When enabled, t STR_CONFIG_SETTING_SHOW_SPEED_FIRST_IN_VEHICLE_VIEW :Show speed before destination in vehicle view window: {STRING2} STR_CONFIG_SETTING_SHOW_SPEED_FIRST_IN_VEHICLE_VIEW_HELPTEXT :When enabled, show the vehicle speed before the destination in the vehicle view window start/stop bar +STR_CONFIG_SETTING_SHORTEN_STATUS_VEHICLE_VIEW :Shorten status vehicle view window: {STRING2} +STR_CONFIG_SETTING_SHORTEN_STATUS_VEHICLE_VIEW_HELPTEXT :When enabled, shorten the text used to show the destination in the vehicle view window start/stop bar + STR_CONFIG_SETTING_HIDE_DEFAULT_STOP_LOCATION :Hide default order stop locations: {STRING2} STR_CONFIG_SETTING_HIDE_DEFAULT_STOP_LOCATION_HELPTEXT :When enabled, hide the order stop location when it matches the default. @@ -1595,6 +1598,14 @@ STR_VEHICLE_STATUS_CANNOT_REACH_WAYPOINT_VEL_END :{LTBLUE}Cannot STR_VEHICLE_STATUS_CANNOT_REACH_DEPOT_VEL_END :{ORANGE}Cannot reach {DEPOT}, {VELOCITY} STR_VEHICLE_STATUS_CANNOT_REACH_DEPOT_SERVICE_VEL_END :{LTBLUE}Cannot reach {DEPOT}, {VELOCITY} +STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL_SHORT :{LTBLUE}{1:VELOCITY} - {0:STATION} +STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL_SHORT :{LTBLUE}{1:VELOCITY} - {0:WAYPOINT} +STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL_SHORT :{ORANGE}{1:VELOCITY} - {0:DEPOT} + +STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL_SHORT_END :{LTBLUE}{STATION}, {VELOCITY} +STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL_SHORT_END :{LTBLUE}{WAYPOINT}, {VELOCITY} +STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL_SHORT_END :{ORANGE}{DEPOT}, {VELOCITY} + STR_BREAKDOWN_TYPE_CRITICAL :Mechanical failure STR_BREAKDOWN_TYPE_EM_STOP :Emergency stop STR_BREAKDOWN_TYPE_LOW_SPEED :Limited to {VELOCITY} diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 1b8385e22b..2e7422f54b 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -2281,6 +2281,7 @@ static SettingsContainer &GetSettingsTree() vehicle_windows->Add(new ConditionallyHiddenSettingEntry("gui.show_vehicle_group_hierarchy_name", []() -> bool { return !_settings_client.gui.show_group_hierarchy_name; })); vehicle_windows->Add(new SettingEntry("gui.enable_single_veh_shared_order_gui")); vehicle_windows->Add(new SettingEntry("gui.show_order_number_vehicle_view")); + vehicle_windows->Add(new SettingEntry("gui.shorten_vehicle_view_status")); vehicle_windows->Add(new SettingEntry("gui.show_speed_first_vehicle_view")); vehicle_windows->Add(new SettingEntry("gui.hide_default_stop_location")); vehicle_windows->Add(new SettingEntry("gui.show_running_costs_calendar_year")); diff --git a/src/settings_type.h b/src/settings_type.h index a42fe859c0..046b6aef0e 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -315,6 +315,7 @@ struct GUISettings : public TimeSettings { bool show_vehicle_group_hierarchy_name; ///< Show the full group hierarchy in vehicle names bool show_order_number_vehicle_view; ///< Show order number in vehicle view window bool show_speed_first_vehicle_view; ///< Show speed before destination in vehicle view window + bool shorten_vehicle_view_status; ///< Show status text in vehicle view window bool hide_default_stop_location; ///< Hide default stop location for orders bool show_rail_polyline_tool; ///< Show rail polyline tool bool show_running_costs_calendar_year; ///< Show vehicle running costs in calendar years diff --git a/src/table/settings/gui_settings.ini b/src/table/settings/gui_settings.ini index f9b87409ac..9991cf4a21 100644 --- a/src/table/settings/gui_settings.ini +++ b/src/table/settings/gui_settings.ini @@ -1607,6 +1607,14 @@ str = STR_CONFIG_SETTING_SHOW_ORDER_NUMBER_IN_VEHICLE_VIEW strhelp = STR_CONFIG_SETTING_SHOW_ORDER_NUMBER_IN_VEHICLE_VIEW_HELPTEXT post_cb = [](auto) { SetWindowClassesDirty(WC_VEHICLE_VIEW); } +[SDTC_BOOL] +var = gui.shorten_vehicle_view_status +flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH +def = false +str = STR_CONFIG_SETTING_SHORTEN_STATUS_VEHICLE_VIEW +strhelp = STR_CONFIG_SETTING_SHORTEN_STATUS_VEHICLE_VIEW_HELPTEXT +post_cb = [](auto) { SetWindowClassesDirty(WC_VEHICLE_VIEW); } + [SDTC_BOOL] var = gui.show_speed_first_vehicle_view flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_PATCH diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 772c1080ee..591bedf25b 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -3708,6 +3708,19 @@ static bool IsVehicleRefitable(const Vehicle *v) static StringID AdjustVehicleViewVelocityStringID(StringID str) { + if (_settings_client.gui.shorten_vehicle_view_status) { + const bool speed_first = _settings_client.gui.show_speed_first_vehicle_view; + if (str == STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL) { + return speed_first ? STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL_SHORT : STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL_SHORT_END; + } + if (str == STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL) { + return speed_first ? STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL_SHORT : STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL_SHORT_END; + } + if (str == STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL) { + return speed_first ? STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL_SHORT : STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL_SHORT_END; + } + } + if (_settings_client.gui.show_speed_first_vehicle_view) return str; if (str == STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL) return STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL_END;