(svn r18415) -Fix [FS#3332]: on slopes the original and better road layouts did not check their minimum distance requirements

This commit is contained in:
rubidium 2009-12-06 16:14:13 +00:00
parent f49491ddcd
commit a68849fb56

View File

@ -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); cur_slope = _settings_game.construction.build_on_slopes ? GetFoundationSlope(tile, NULL) : GetTileSlope(tile, NULL);
if (cur_slope == SLOPE_FLAT) { bool ret = !IsNeighborRoadTile(tile, dir, t->layout == TL_ORIGINAL ? 1 : 2);
no_slope: if (cur_slope == SLOPE_FLAT) return ret;
/* 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);
}
}
/* If the tile is not a slope in the right direction, then /* If the tile is not a slope in the right direction, then
* maybe terraform some. */ * maybe terraform some. */
@ -815,12 +804,12 @@ no_slope:
} }
if (CmdFailed(res) && Chance16(1, 3)) { if (CmdFailed(res) && Chance16(1, 3)) {
/* We can consider building on the slope, though. */ /* We can consider building on the slope, though. */
goto no_slope; return ret;
} }
} }
return false; return false;
} }
return true; return ret;
} }
} }