diff options
author | rubidium <rubidium@openttd.org> | 2015-01-01 21:25:42 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2015-01-01 21:25:42 +0000 |
commit | 30f778e933881837b33f891d9e8b0b109b5b2561 (patch) | |
tree | dd73de7d99cba5924b6b1b1971113d89c466ae78 /src | |
parent | 14f197c6ff58e29b66481f1e19921464017c175f (diff) | |
download | openttd-30f778e933881837b33f891d9e8b0b109b5b2561.tar.xz |
(svn r27105) -Fix [FS#6195]: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate.
Diffstat (limited to 'src')
-rw-r--r-- | src/town.h | 2 | ||||
-rw-r--r-- | src/town_cmd.cpp | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/town.h b/src/town.h index 42495971e..010c7c216 100644 --- a/src/town.h +++ b/src/town.h @@ -91,7 +91,7 @@ struct Town : TownPool::PoolItem<&_town_pool> { uint16 time_until_rebuild; ///< time until we rebuild a house - uint16 grow_counter; ///< counter to count when to grow + uint16 grow_counter; ///< counter to count when to grow, value is smaller than or equal to growth_rate uint16 growth_rate; ///< town growth rate byte fund_buildings_months; ///< fund buildings program in action? diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 76a6b36f4..6674c905b 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -3115,9 +3115,7 @@ static void UpdateTownGrowRate(Town *t) if (t->larger_town) m /= 2; t->growth_rate = m / (t->cache.num_houses / 50 + 1); - if (m <= t->grow_counter) { - t->grow_counter = m; - } + t->grow_counter = min(t->growth_rate, t->grow_counter); SetBit(t->flags, TOWN_IS_GROWING); SetWindowDirty(WC_TOWN_VIEW, t->index); |