Fix 30506201
: Train purchase in dual pane window for non-cargo filters
This commit is contained in:
@@ -1404,7 +1404,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
|
|||||||
{
|
{
|
||||||
NWidgetCore *widget = this->GetWidget<NWidgetCore>(WID_BV_BUILD);
|
NWidgetCore *widget = this->GetWidget<NWidgetCore>(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 (refit) refit = Engine::Get(this->sel_engine)->GetDefaultCargoType() != this->cargo_filter_criteria;
|
||||||
|
|
||||||
if (this->virtual_train_mode) {
|
if (this->virtual_train_mode) {
|
||||||
@@ -2497,7 +2497,7 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
void SelectEngine(PanelState &state, const EngineID engine)
|
void SelectEngine(PanelState &state, const EngineID engine)
|
||||||
{
|
{
|
||||||
CargoID cargo = state.cargo_filter[state.cargo_filter_criteria];
|
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;
|
state.sel_engine = engine;
|
||||||
|
|
||||||
@@ -2705,7 +2705,7 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
? CcBuildWagon : CcBuildPrimaryVehicle;
|
? CcBuildWagon : CcBuildPrimaryVehicle;
|
||||||
cmd = GetCmdBuildVeh(this->vehicle_type);
|
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);
|
DoCommandP(this->window_number, selected | (cargo << 24), 0, cmd, callback);
|
||||||
|
|
||||||
/* Update last used variant in hierarchy and refresh if necessary. */
|
/* Update last used variant in hierarchy and refresh if necessary. */
|
||||||
|
Reference in New Issue
Block a user