diff -ur openttd-r14536/src/town_cmd.cpp openttd-r14536-town-placement/src/town_cmd.cpp --- openttd-r14536/src/town_cmd.cpp 2008-10-25 15:51:47.000000000 +0200 +++ openttd-r14536-town-placement/src/town_cmd.cpp 2008-10-29 11:22:14.000000000 +0100 @@ -1576,6 +1576,16 @@ do { /* Generate a tile index not too close from the edge */ TileIndex tile = RandomTile(); + switch (_settings_game.economy.town_layout) { + case TL_2X2_GRID: + tile = TileXY (TileX(tile)-TileX(tile)%3, + TileY(tile)-TileY(tile)%3); + break; + case TL_3X3_GRID: + tile = TileXY (TileX(tile)&~3, TileY(tile)&~3); + break; + default: ; + } if (DistanceFromEdge(tile) < 20) continue; /* Make sure the tile is plain */