diff --git a/plugins/buildingplan/buildingplan.cpp b/plugins/buildingplan/buildingplan.cpp index 7debbbf79..81b5feaae 100644 --- a/plugins/buildingplan/buildingplan.cpp +++ b/plugins/buildingplan/buildingplan.cpp @@ -678,13 +678,14 @@ static int scanAvailableItems(color_ostream &out, df::building_type type, int16_ auto other_id = ENUM_ATTR(job_item_vector_id, other, vector_id); for (auto &item : df::global::world->items.other[other_id]) { ItemFilter filter = filters[index]; - if (counts) { + set special = specials; + if (ignore_filters || counts) { // don't filter by material; we want counts for all materials filter.setMaterialMask(0); filter.setMaterials(set()); + special.clear(); } - if (itemPassesScreen(item) && - (ignore_filters || matchesFilters(item, jitem, heat, filter, specials))) { + if (itemPassesScreen(item) && matchesFilters(item, jitem, heat, filter, specials)) { if (item_ids) item_ids->emplace_back(item->id); if (counts) {