diff --git a/src/town.h b/src/town.h index 42495971ec..010c7c2168 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 76a6b36f4e..6674c905bd 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);