From 808253c29c5b0f855a1d4cb230783cc2adb1451d Mon Sep 17 00:00:00 2001 From: stormcone <48624099+stormcone@users.noreply.github.com> Date: Sat, 23 Nov 2019 21:52:33 +0100 Subject: Change: Move the filtered cargo to the first place in the industry directory window's cargo lists --- src/industry_gui.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index d6a0d7aa4..c93dc5573 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -1475,6 +1475,18 @@ protected: return std::get<3>(a) > std::get<3>(b); }); + /* If the produced cargo filter is active then move the filtered cargo to the beginning of the list, + * because this is the one the player interested in, and that way it is not hidden in the 'n' more cargos */ + const CargoID cid = this->cargo_filter[this->produced_cargo_filter_criteria]; + if (cid != CF_ANY && cid != CF_NONE) { + auto filtered_ci = std::find_if(cargos.begin(), cargos.end(), [cid](const CargoInfo& ci) -> bool { + return std::get<0>(ci) == cid; + }); + if (filtered_ci != cargos.end()) { + std::rotate(cargos.begin(), filtered_ci, filtered_ci + 1); + } + } + /* Display first 3 cargos */ for (size_t j = 0; j < min(3, cargos.size()); j++) { CargoInfo ci = cargos[j]; -- cgit v1.2.3-70-g09d2