Mercurial > hg > openttd
changeset 18000:7a129cd9f0b4 draft
(svn r22809) -Fix [FS#4731]: towns expanding from the "wrong" side of a tunnel or bridge
author | rubidium <rubidium@openttd.org> |
---|---|
date | Mon, 22 Aug 2011 11:47:15 +0000 |
parents | a3db2ad40080 |
children | 6e430c0b722b |
files | src/town_cmd.cpp |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -1236,9 +1236,14 @@ return _grow_town_result; } - /* Select a random bit from the blockmask, walk a step - * and continue the search from there. */ - do target_dir = RandomDiagDir(); while (!(cur_rb & DiagDirToRoadBits(target_dir))); + if (IsTileType(tile, MP_TUNNELBRIDGE)) { + /* Only build in the direction away from the tunnel or bridge. */ + target_dir = ReverseDiagDir(GetTunnelBridgeDirection(tile)); + } else { + /* Select a random bit from the blockmask, walk a step + * and continue the search from there. */ + do target_dir = RandomDiagDir(); while (!(cur_rb & DiagDirToRoadBits(target_dir))); + } tile = TileAddByDiagDir(tile, target_dir); if (IsTileType(tile, MP_ROAD) && !IsRoadDepot(tile) && HasTileRoadType(tile, ROADTYPE_ROAD)) {