summaryrefslogtreecommitdiff
path: root/src/town_cmd.cpp
diff options
context:
space:
mode:
authorPatric Stout <truebrain@openttd.org>2021-08-31 14:31:37 +0200
committerGitHub <noreply@github.com>2021-08-31 14:31:37 +0200
commit2c05412d722903748bf928fd201b15cdad586a94 (patch)
tree0878e1a863cb7ca20215eadee20ac0fe68c893f9 /src/town_cmd.cpp
parent69e9acd70285feacf4ab44603d4f73b1f5bd0a78 (diff)
downloadopenttd-2c05412d722903748bf928fd201b15cdad586a94.tar.xz
Fix #9407: desync when founding a town nearby a station (#9526)
"stations_near" wasn't updated when founding a town near a station. As this variable is not saved, any client joining after the town is founded has a different value for "stations_near", potentially causing desyncs. As the intention of this if() statement was to skip an expensive calculation when there are clearly no stations, better to move that check inside the function, so other places also enjoy the speedup.
Diffstat (limited to 'src/town_cmd.cpp')
-rw-r--r--src/town_cmd.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index d53cd5783..2863b4d6f 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -2310,12 +2310,10 @@ static void MakeTownHouse(TileIndex t, Town *town, byte counter, byte stage, Hou
if (size & BUILDING_2_TILES_X) ClearMakeHouseTile(t + TileDiffXY(1, 0), town, counter, stage, ++type, random_bits);
if (size & BUILDING_HAS_4_TILES) ClearMakeHouseTile(t + TileDiffXY(1, 1), town, counter, stage, ++type, random_bits);
- if (!_generating_world) {
- ForAllStationsAroundTiles(TileArea(t, (size & BUILDING_2_TILES_X) ? 2 : 1, (size & BUILDING_2_TILES_Y) ? 2 : 1), [town](Station *st, TileIndex tile) {
- town->stations_near.insert(st);
- return true;
- });
- }
+ ForAllStationsAroundTiles(TileArea(t, (size & BUILDING_2_TILES_X) ? 2 : 1, (size & BUILDING_2_TILES_Y) ? 2 : 1), [town](Station *st, TileIndex tile) {
+ town->stations_near.insert(st);
+ return true;
+ });
}