summaryrefslogtreecommitdiff
path: root/src/station_cmd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/station_cmd.cpp')
-rw-r--r--src/station_cmd.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index 44cf45f5a..0ac50d2eb 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -4086,7 +4086,23 @@ StationID FlowStat::GetVia(StationID excluded, StationID excluded2) const
}
assert(it3 != this->shares.end());
return it3->second;
+}
+/**
+ * Reduce all flows to minimum capacity so that they don't get in the way of
+ * link usage statistics too much. Keep them around, though, to continue
+ * routing any remaining cargo.
+ */
+void FlowStat::Invalidate()
+{
+ assert(!this->shares.empty());
+ SharesMap new_shares;
+ uint i = 0;
+ for (SharesMap::iterator it(this->shares.begin()); it != this->shares.end(); ++it) {
+ new_shares[++i] = it->second;
+ }
+ this->shares.swap(new_shares);
+ assert(!this->shares.empty());
}
/**