diff options
-rw-r--r-- | town_cmd.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/town_cmd.c b/town_cmd.c index afdd0fb01..bcee4155f 100644 --- a/town_cmd.c +++ b/town_cmd.c @@ -429,18 +429,23 @@ void OnTick_Town(void) { uint i; Town *t; + int towns; if (_game_mode == GM_EDITOR) return; - i = _cur_town_ctr; - if (++_cur_town_ctr >= GetTownPoolSize()) - _cur_town_ctr = 0; + /* FIXME: This way we scale for larger map, but not for the smaller + * ones. --pasky */ + for (towns = ScaleByMapSize(1); towns > 0; towns--) { + i = _cur_town_ctr; + if (++_cur_town_ctr >= GetTownPoolSize()) + _cur_town_ctr = 0; - t = GetTown(i); + t = GetTown(i); - if (t->xy != 0) - TownTickHandler(t); + if (t->xy != 0) + TownTickHandler(t); + } } static byte GetTownRoadMask(TileIndex tile) |