summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/industry_gui.cpp12
1 files changed, 12 insertions, 0 deletions
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<size_t>(3, cargos.size()); j++) {
CargoInfo ci = cargos[j];