diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index cad441291b..1e3425a527 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -2876,7 +2876,7 @@ static WindowDesc _build_template_vehicle_desc( WDP_AUTO, "build_vehicle", 240, 268, WC_BUILD_VIRTUAL_TRAIN, WC_CREATE_TEMPLATE, WDF_CONSTRUCTION, - _nested_build_vehicle_widgets_train_advanced, lengthof(_nested_build_vehicle_widgets_train_advanced) + _nested_build_vehicle_widgets, lengthof(_nested_build_vehicle_widgets) ); static WindowDesc _build_vehicle_desc_train_advanced( @@ -2886,6 +2886,13 @@ static WindowDesc _build_vehicle_desc_train_advanced( _nested_build_vehicle_widgets_train_advanced, lengthof(_nested_build_vehicle_widgets_train_advanced) ); +static WindowDesc _build_template_vehicle_desc_advanced( + WDP_AUTO, "build_vehicle", 480, 268, + WC_BUILD_VIRTUAL_TRAIN, WC_CREATE_TEMPLATE, + WDF_CONSTRUCTION, + _nested_build_vehicle_widgets_train_advanced, lengthof(_nested_build_vehicle_widgets_train_advanced) +); + void ShowBuildVehicleWindow(const TileIndex tile, const VehicleType type) { @@ -2899,7 +2906,7 @@ void ShowBuildVehicleWindow(const TileIndex tile, const VehicleType type) DeleteWindowById(WC_BUILD_VEHICLE, num); - if(type == VEH_TRAIN) { + if (type == VEH_TRAIN && _settings_client.gui.dual_pane_train_purchase_window) { new BuildVehicleWindowTrainAdvanced(&_build_vehicle_desc_train_advanced, tile, nullptr); } else { new BuildVehicleWindow(&_build_vehicle_desc, tile, type, nullptr); @@ -2912,5 +2919,9 @@ void ShowTemplateTrainBuildVehicleWindow(Train **virtual_train) DeleteWindowById(WC_BUILD_VIRTUAL_TRAIN, 0); - new BuildVehicleWindowTrainAdvanced(&_build_template_vehicle_desc, INVALID_TILE, virtual_train); + if (_settings_client.gui.dual_pane_train_purchase_window) { + new BuildVehicleWindowTrainAdvanced(&_build_template_vehicle_desc_advanced, INVALID_TILE, virtual_train); + } else { + new BuildVehicleWindow(&_build_template_vehicle_desc, INVALID_TILE, VEH_TRAIN, virtual_train); + } } diff --git a/src/lang/english.txt b/src/lang/english.txt index 24ffc38470..9d4b27f489 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1476,6 +1476,9 @@ STR_CONFIG_SETTING_DEMOLISH_CONFIRM_MODE_OFF :Off STR_CONFIG_SETTING_DEMOLISH_CONFIRM_MODE_INDUSTRY :Industries STR_CONFIG_SETTING_DEMOLISH_CONFIRM_MODE_ALL :Industries and rail stations +STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW :Separate locomotives and wagons in train purchase window: {STRING2} +STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW_HELPTEXT :When enabled, the train purchase window shows locomotives and wagons in separate side-by-side lists. + STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES :Enable signals on bridges/tunnels advanced modes: {STRING2} STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :Enables use of advanced modes of signal simulation on bridges and tunnels. When disabled, bridges/tunnels which are not already in an advanced mode cannot be changed to an advanced mode, however other players may choose to enable this setting and use an advanced mode. diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 48416d33a3..3d05450606 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1842,6 +1842,7 @@ static SettingsContainer &GetSettingsTree() interface->Add(new SettingEntry("gui.open_vehicle_gui_clone_share")); interface->Add(new SettingEntry("gui.vehicle_names")); interface->Add(new SettingEntry("gui.station_rating_tooltip_mode")); + interface->Add(new SettingEntry("gui.dual_pane_train_purchase_window")); } SettingsPage *advisors = main->Add(new SettingsPage(STR_CONFIG_SETTING_ADVISORS)); diff --git a/src/settings_type.h b/src/settings_type.h index e2f245a7d1..f1d5c56c57 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -223,6 +223,7 @@ struct GUISettings : public TimeSettings { bool shade_trees_on_slopes; ///< Shade trees on slopes uint8 station_rating_tooltip_mode; ///< Station rating tooltip mode uint8 demolish_confirm_mode; ///< Demolition confirmation mode + bool dual_pane_train_purchase_window; ///< Dual pane train purchase window 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 f1c3aec765..200e0fa12e 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -5539,6 +5539,13 @@ strhelp = STR_CONFIG_SETTING_DEMOLISH_CONFIRM_MODE_HELPTEXT strval = STR_CONFIG_SETTING_DEMOLISH_CONFIRM_MODE_OFF cat = SC_BASIC +[SDTC_BOOL] +var = gui.dual_pane_train_purchase_window +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = true +str = STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW +strhelp = STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW_HELPTEXT + ; For the dedicated build we'll enable dates in logs by default. [SDTC_BOOL] ifdef = DEDICATED