Index: src/build_vehicle_gui.cpp =================================================================== --- src/build_vehicle_gui.cpp (revision 25649) +++ src/build_vehicle_gui.cpp (working copy) @@ -514,18 +514,6 @@ static const StringID _sort_listing[][12] = {{ INVALID_STRING_ID }}; -/** Cargo filter functions */ -static bool CDECL CargoFilter(const EngineID *eid, const CargoID cid) -{ - if (cid == CF_ANY) return true; - uint32 refit_mask = GetUnionOfArticulatedRefitMasks(*eid, true) & _standard_cargo_mask; - return (cid == CF_NONE ? refit_mask == 0 : HasBit(refit_mask, cid)); -} - -static GUIEngineList::FilterFunction * const _filter_funcs[] = { - &CargoFilter, -}; - static int DrawCargoCapacityInfo(int left, int right, int y, EngineID engine, bool refittable) { CargoArray cap = GetCapacityOfArticulatedParts(engine); @@ -934,6 +922,7 @@ struct BuildVehicleWindow : Window { EngineID sel_engine; EngineID rename_engine; GUIEngineList eng_list; + static GUIEngineList::FilterFunction * const _filter_funcs[]; CargoID cargo_filter[NUM_CARGO + 2]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE StringID cargo_filter_texts[NUM_CARGO + 3]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID byte cargo_filter_criteria; ///< Selected cargo filter @@ -1406,8 +1395,22 @@ struct BuildVehicleWindow : Window { { this->vscroll->SetCapacityFromWidget(this, WID_BV_LIST); } + +private: + + /** Cargo filter functions */ + static bool CDECL CargoFilter(const EngineID *eid, const CargoID cid) + { + if (cid == CF_ANY) return true; + uint32 refit_mask = GetUnionOfArticulatedRefitMasks(*eid, true) & _standard_cargo_mask; + return (cid == CF_NONE ? refit_mask == 0 : HasBit(refit_mask, cid)); + } }; +GUIEngineList::FilterFunction * const BuildVehicleWindow::_filter_funcs[] = { + &CargoFilter, +}; + static WindowDesc _build_vehicle_desc( WDP_AUTO, "build_vehicle", 240, 268, WC_BUILD_VEHICLE, WC_NONE,