diff --git a/src/lang/english.txt b/src/lang/english.txt index e9b0f9f74b..08e52dcccd 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1320,6 +1320,8 @@ STR_CONFIG_SETTING_SHOW_PROGSIG_FEATURES :Show programmab STR_CONFIG_SETTING_SHOW_PROGSIG_FEATURES_HELPTEXT :Show programmable signal feature. When disabled, the buttons to build and configure programmable signals are not shown in the UI, but are still available to all players. STR_CONFIG_SETTING_SHOW_VEH_LIST_CARGO_FILTER :Show cargo type filter in vehicle lists: {STRING2} STR_CONFIG_SETTING_SHOW_VEH_LIST_CARGO_FILTER_HELPTEXT :Show cargo type filter in vehicle lists. When enabled vehicle list windows include an additional filter dropdown. +STR_CONFIG_SETTING_SHOW_ADV_LOADING_MODE_FEATURES :Show advanced loading mode features: {STRING2} +STR_CONFIG_SETTING_SHOW_ADV_LOADING_MODE_FEATURES_HELPTEXT :Show advanced loading mode features (through load/unload). When disabled, some advanced loading mode features are not shown in the UI, but are still available to all players. STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING2} STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 2e2f61e312..6a9d6a7235 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -1850,6 +1850,9 @@ public: } else if (sel == this->selected_order) { if (this->vehicle->type == VEH_TRAIN && sel < this->vehicle->GetNumOrders()) { int osl = ((this->vehicle->GetOrder(sel)->GetStopLocation() + 1) % OSL_END); + if (osl == OSL_PLATFORM_THROUGH && !_settings_client.gui.show_adv_load_mode_features) { + osl = OSL_PLATFORM_NEAR_END; + } if (osl == OSL_PLATFORM_THROUGH) { for (const Vehicle *u = this->vehicle; u != NULL; u = u->Next()) { /* Passengers may not be through-loaded */ diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 88272faf9f..5778d2513a 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1609,6 +1609,7 @@ static SettingsContainer &GetSettingsTree() interface->Add(new SettingEntry("gui.show_vehicle_group_in_details")); interface->Add(new SettingEntry("gui.show_vehicle_list_company_colour")); interface->Add(new SettingEntry("gui.show_veh_list_cargo_filter")); + interface->Add(new SettingEntry("gui.show_adv_load_mode_features")); } SettingsPage *advisors = main->Add(new SettingsPage(STR_CONFIG_SETTING_ADVISORS)); diff --git a/src/settings_type.h b/src/settings_type.h index 7055f128ea..356b6ccd3d 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -179,6 +179,7 @@ struct GUISettings { bool show_vehicle_route_steps; ///< when a window related to a specific vehicle is focused, show route steps bool show_vehicle_list_company_colour; ///< show the company colour of vehicles which have an owner different to the owner of the vehicle list bool enable_single_veh_shared_order_gui; ///< enable showing a single vehicle in the shared order GUI window + bool show_adv_load_mode_features; ///< enable advanced loading mode features in UI uint16 console_backlog_timeout; ///< the minimum amount of time items should be in the console backlog before they will be removed in ~3 seconds granularity. uint16 console_backlog_length; ///< the minimum amount of items in the console backlog before items will be removed. diff --git a/src/table/settings.ini b/src/table/settings.ini index 74723e75b0..e3ebab3358 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -4140,6 +4140,14 @@ strhelp = STR_CONFIG_SETTING_ENABLE_SINGLE_VEH_SHARED_ORDER_GUI_HELPTEXT proc = EnableSingleVehSharedOrderGuiChanged cat = SC_EXPERT +[SDTC_BOOL] +var = gui.show_adv_load_mode_features +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +str = STR_CONFIG_SETTING_SHOW_ADV_LOADING_MODE_FEATURES +strhelp = STR_CONFIG_SETTING_SHOW_ADV_LOADING_MODE_FEATURES_HELPTEXT +cat = SC_EXPERT + ; For the dedicated build we'll enable dates in logs by default. [SDTC_BOOL] ifdef = DEDICATED