mirror of https://github.com/OpenTTD/OpenTTD
(svn r27105) -Fix [FS#6195]: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate.
parent
14f197c6ff
commit
30f778e933
|
@ -91,7 +91,7 @@ struct Town : TownPool::PoolItem<&_town_pool> {
|
||||||
|
|
||||||
uint16 time_until_rebuild; ///< time until we rebuild a house
|
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
|
uint16 growth_rate; ///< town growth rate
|
||||||
|
|
||||||
byte fund_buildings_months; ///< fund buildings program in action?
|
byte fund_buildings_months; ///< fund buildings program in action?
|
||||||
|
|
|
@ -3115,9 +3115,7 @@ static void UpdateTownGrowRate(Town *t)
|
||||||
if (t->larger_town) m /= 2;
|
if (t->larger_town) m /= 2;
|
||||||
|
|
||||||
t->growth_rate = m / (t->cache.num_houses / 50 + 1);
|
t->growth_rate = m / (t->cache.num_houses / 50 + 1);
|
||||||
if (m <= t->grow_counter) {
|
t->grow_counter = min(t->growth_rate, t->grow_counter);
|
||||||
t->grow_counter = m;
|
|
||||||
}
|
|
||||||
|
|
||||||
SetBit(t->flags, TOWN_IS_GROWING);
|
SetBit(t->flags, TOWN_IS_GROWING);
|
||||||
SetWindowDirty(WC_TOWN_VIEW, t->index);
|
SetWindowDirty(WC_TOWN_VIEW, t->index);
|
||||||
|
|
Loading…
Reference in New Issue