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;
 	}
 }