diff options
author | fonsinchen <fonsinchen@openttd.org> | 2013-10-27 11:51:14 +0000 |
---|---|---|
committer | fonsinchen <fonsinchen@openttd.org> | 2013-10-27 11:51:14 +0000 |
commit | 8926398f896f2f6b6ba1d43267dbf04f5404e3c3 (patch) | |
tree | 1fa11e6d917889000954bc45367116f99b254986 | |
parent | 3ce2c4a5a3ef5fdd30978e5683f6c09d7965702e (diff) | |
download | openttd-8926398f896f2f6b6ba1d43267dbf04f5404e3c3.tar.xz |
(svn r25915) -Fix: Unrestricted flow was counted incorrectly when invalidating flow.
-rw-r--r-- | src/station_cmd.cpp | 6 |
1 files 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); } /** |