diff options
Diffstat (limited to 'src/town_cmd.cpp')
-rw-r--r-- | src/town_cmd.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 745eed350..a1d9cdf9e 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2775,11 +2775,13 @@ static void UpdateTownGrowRate(Town *t) if (_settings_game.economy.town_growth_rate == 0 && t->fund_buildings_months == 0) return; - /* Check if all goals are reached for this town to grow */ - for (int i = TE_BEGIN; i < TE_END; i++) { - if (t->goal[i] == TOWN_GROWTH_WINTER && TileHeight(t->xy) >= GetSnowLine() && t->received[i].old_act == 0 && t->population > 90) return; - if (t->goal[i] == TOWN_GROWTH_DESERT && GetTropicZone(t->xy) == TROPICZONE_DESERT && t->received[i].old_act == 0 && t->population > 60) return; - if (t->goal[i] > t->received[i].old_act) return; + if (t->fund_buildings_months == 0) { + /* Check if all goals are reached for this town to grow (given we are not funding it) */ + for (int i = TE_BEGIN; i < TE_END; i++) { + if (t->goal[i] == TOWN_GROWTH_WINTER && TileHeight(t->xy) >= GetSnowLine() && t->received[i].old_act == 0 && t->population > 90) return; + if (t->goal[i] == TOWN_GROWTH_DESERT && GetTropicZone(t->xy) == TROPICZONE_DESERT && t->received[i].old_act == 0 && t->population > 60) return; + if (t->goal[i] > t->received[i].old_act) return; + } } /** |