From 8926398f896f2f6b6ba1d43267dbf04f5404e3c3 Mon Sep 17 00:00:00 2001 From: fonsinchen <fonsinchen@openttd.org> Date: Sun, 27 Oct 2013 11:51:14 +0000 Subject: (svn r25915) -Fix: Unrestricted flow was counted incorrectly when invalidating flow. --- src/station_cmd.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index ca0c0be05..004202c5b 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -4160,14 +4160,12 @@ void FlowStat::Invalidate() assert(!this->shares.empty()); SharesMap new_shares; uint i = 0; - uint orig = 0; for (SharesMap::iterator it(this->shares.begin()); it != this->shares.end(); ++it) { new_shares[++i] = it->second; - orig += it->first; - if (orig == this->unrestricted) this->unrestricted = orig; + if (it->first == this->unrestricted) this->unrestricted = i; } this->shares.swap(new_shares); - assert(!this->shares.empty()); + assert(!this->shares.empty() && this->unrestricted <= (--this->shares.end())->first); } /** -- cgit v1.2.3-70-g09d2