Mercurial > hg > openttd
changeset 13886:8c3d51c78573 draft
(svn r18415) -Fix [FS#3332]: on slopes the original and better road layouts did not check their minimum distance requirements
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sun, 06 Dec 2009 16:14:13 +0000 |
parents | 22d1d919b00e |
children | 56d2c1d18589 |
files | src/town_cmd.cpp |
diffstat | 1 files changed, 4 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -788,19 +788,8 @@ } cur_slope = _settings_game.construction.build_on_slopes ? GetFoundationSlope(tile, NULL) : GetTileSlope(tile, NULL); - if (cur_slope == SLOPE_FLAT) { -no_slope: - /* Tile has no slope */ - switch (t->layout) { - default: NOT_REACHED(); - - case TL_ORIGINAL: // Disallow the road if any neighboring tile has a road (distance: 1) - return !IsNeighborRoadTile(tile, dir, 1); - - case TL_BETTER_ROADS: // Disallow the road if any neighboring tile has a road (distance: 1 and 2). - return !IsNeighborRoadTile(tile, dir, 2); - } - } + bool ret = !IsNeighborRoadTile(tile, dir, t->layout == TL_ORIGINAL ? 1 : 2); + if (cur_slope == SLOPE_FLAT) return ret; /* If the tile is not a slope in the right direction, then * maybe terraform some. */ @@ -815,12 +804,12 @@ } if (CmdFailed(res) && Chance16(1, 3)) { /* We can consider building on the slope, though. */ - goto no_slope; + return ret; } } return false; } - return true; + return ret; } }