diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 714784d5d0..5102bf9330 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1465,12 +1465,14 @@ struct BuildVehicleWindow : Window { this->eng_list.clear(); BadgeTextFilter btf(this->string_filter, GSF_ROADVEHICLES); + BadgeDropdownFilter bdf(this->badge_filter_choices); for (const Engine *e : Engine::IterateType(VEH_ROAD)) { // CM num_hidden / if (!this->show_hidden_engines && e->IsVariantHidden(_local_company)) continue; EngineID eid = e->index; if (!IsEngineBuildable(eid, VEH_ROAD, _local_company)) continue; if (this->filter.roadtype != INVALID_ROADTYPE && !HasPowerOnRoad(e->u.road.roadtype, this->filter.roadtype)) continue; + if (!bdf.Filter(e->badges)) continue; /* Filter by name or NewGRF extra text */ if (!FilterByText(e) && !btf.Filter(e->badges)) continue; @@ -1498,11 +1500,13 @@ struct BuildVehicleWindow : Window { this->eng_list.clear(); BadgeTextFilter btf(this->string_filter, GSF_SHIPS); + BadgeDropdownFilter bdf(this->badge_filter_choices); for (const Engine *e : Engine::IterateType(VEH_SHIP)) { if (!this->show_hidden_engines && e->IsVariantHidden(_local_company)) continue; EngineID eid = e->index; if (!IsEngineBuildable(eid, VEH_SHIP, _local_company)) continue; + if (!bdf.Filter(e->badges)) continue; /* Filter by name or NewGRF extra text */ if (!FilterByText(e) && !btf.Filter(e->badges)) continue; @@ -1532,6 +1536,7 @@ struct BuildVehicleWindow : Window { const Station *st = this->listview_mode ? nullptr : Station::GetByTile(TileIndex(this->window_number)); BadgeTextFilter btf(this->string_filter, GSF_AIRCRAFT); + BadgeDropdownFilter bdf(this->badge_filter_choices); /* Make list of all available planes. * Also check to see if the previously selected plane is still available, @@ -1543,6 +1548,7 @@ struct BuildVehicleWindow : Window { if (!IsEngineBuildable(eid, VEH_AIRCRAFT, _local_company)) continue; /* First VEH_END window_numbers are fake to allow a window open for all different types at once */ if (!this->listview_mode && !CanVehicleUseStation(eid, st)) continue; + if (!bdf.Filter(e->badges)) continue; /* Filter by name or NewGRF extra text */ if (!FilterByText(e) && !btf.Filter(e->badges)) continue;