From 059d43fca81b4769b8e77074d86720b20d0b4fbe Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 30 Jul 2011 12:17:46 +0000 Subject: (svn r22697) -Fix [FS#4694-ish]: when building a house it could be built at the wrong place if multitile houses failed some tests --- src/town_cmd.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 0a4d2e14b..6c3d6a33f 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2128,8 +2128,16 @@ static bool BuildTownHouse(Town *t, TileIndex tile) } uint maxz = GetTileMaxZ(tile); + TileIndex baseTile = tile; while (probability_max > 0) { + /* Building a multitile building can change the location of tile. + * The building would still be built partially on that tile, but + * its nothern tile would be elsewere. However, if the callback + * fails we would be basing further work from the changed tile. + * So a next 1x1 tile building could be built on the wrong tile. */ + tile = baseTile; + uint r = RandomRange(probability_max); uint i; for (i = 0; i < num; i++) { -- cgit v1.2.3-54-g00ecf