From 44f0875924547cdff141dad28fad7848a5c3357b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 11 Jan 2024 22:58:00 +0000 Subject: [PATCH] Fix 30506201: Train purchase in dual pane window for non-cargo filters --- src/build_vehicle_gui.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index fa528ff4ff..fd810c4ff6 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1404,7 +1404,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase { { NWidgetCore *widget = this->GetWidget(WID_BV_BUILD); - bool refit = this->sel_engine != INVALID_ENGINE && this->cargo_filter_criteria != CargoFilterCriteria::CF_ANY && this->cargo_filter_criteria != CargoFilterCriteria::CF_NONE; + bool refit = this->sel_engine != INVALID_ENGINE && this->cargo_filter_criteria != CargoFilterCriteria::CF_ANY && this->cargo_filter_criteria != CargoFilterCriteria::CF_NONE && this->cargo_filter_criteria != CargoFilterCriteria::CF_ENGINES; if (refit) refit = Engine::Get(this->sel_engine)->GetDefaultCargoType() != this->cargo_filter_criteria; if (this->virtual_train_mode) { @@ -2497,7 +2497,7 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase { void SelectEngine(PanelState &state, const EngineID engine) { CargoID cargo = state.cargo_filter[state.cargo_filter_criteria]; - if (cargo == CargoFilterCriteria::CF_ANY) cargo = CargoFilterCriteria::CF_NONE; + if (cargo == CargoFilterCriteria::CF_ANY || cargo == CargoFilterCriteria::CF_ENGINES || cargo == CargoFilterCriteria::CF_NONE) cargo = INVALID_CARGO; state.sel_engine = engine; @@ -2705,7 +2705,7 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase { ? CcBuildWagon : CcBuildPrimaryVehicle; cmd = GetCmdBuildVeh(this->vehicle_type); } - if (cargo == CargoFilterCriteria::CF_ANY || cargo == CargoFilterCriteria::CF_ENGINES) cargo = CargoFilterCriteria::CF_NONE; + if (cargo == CargoFilterCriteria::CF_ANY || cargo == CargoFilterCriteria::CF_ENGINES || cargo == CargoFilterCriteria::CF_NONE) cargo = INVALID_CARGO; DoCommandP(this->window_number, selected | (cargo << 24), 0, cmd, callback); /* Update last used variant in hierarchy and refresh if necessary. */