rail_cmd.c
changeset 3878 ef06782573c0
parent 3869 0467c594dfb5
child 3881 c899867fd46e
--- a/rail_cmd.c	Sat May 20 16:46:37 2006 +0000
+++ b/rail_cmd.c	Sat May 20 18:03:22 2006 +0000
@@ -153,27 +153,24 @@
 
 uint GetRailFoundation(Slope tileh, TrackBits bits)
 {
-	int i;
-
-	if ((~_valid_tileh_slopes[0][tileh] & bits) == 0)
-		return 0;
-
-	if ((~_valid_tileh_slopes[1][tileh] & bits) == 0)
-		return tileh;
+	uint i;
 
-	if ((
-				(i  = 0, tileh == SLOPE_W) ||
-				(i += 2, tileh == SLOPE_S) ||
-				(i += 2, tileh == SLOPE_E) ||
-				(i += 2, tileh == SLOPE_N)
-			) && (
-				bits == TRACK_BIT_X ||
-				(i++, bits == TRACK_BIT_Y)
-			)) {
-		return i + 15;
-	} else {
-		return 0;
+	if ((~_valid_tileh_slopes[0][tileh] & bits) == 0) return 0;
+	if ((~_valid_tileh_slopes[1][tileh] & bits) == 0) return tileh;
+
+	switch (bits) {
+		case TRACK_BIT_X: i = 0; break;
+		case TRACK_BIT_Y: i = 1; break;
+		default:          return 0;
 	}
+	switch (tileh) {
+		case SLOPE_W: i += 0; break;
+		case SLOPE_S: i += 2; break;
+		case SLOPE_E: i += 4; break;
+		case SLOPE_N: i += 6; break;
+		default:      return 0;
+	}
+	return i + 15;
 }