changeset 17898:307d1c360da9 draft

(svn r22697) -Fix [FS#4694-ish]: when building a house it could be built at the wrong place if multitile houses failed some tests
author rubidium <rubidium@openttd.org>
date Sat, 30 Jul 2011 12:17:46 +0000
parents 85ca3c066925
children c5c5f8f160df
files src/town_cmd.cpp
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -2128,8 +2128,16 @@
 	}
 
 	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++) {