diff options
-rw-r--r-- | src/town_cmd.cpp | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 3789cd582..18a4b3646 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -788,19 +788,8 @@ static bool IsRoadAllowedHere(Town *t, TileIndex tile, DiagDirection dir) } 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 @@ no_slope: } 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; } } |