(svn r2095) In CheckTrackCombination(): if () cascade -> switch, improve readability
authortron
Mon, 28 Mar 2005 07:25:36 +0000
changeset 1591 bf840aede1b1
parent 1590 4e39d1da10c7
child 1592 8a04c5a522ae
(svn r2095) In CheckTrackCombination(): if () cascade -> switch, improve readability
rail_cmd.c
--- a/rail_cmd.c	Mon Mar 28 07:02:51 2005 +0000
+++ b/rail_cmd.c	Mon Mar 28 07:25:36 2005 +0000
@@ -113,29 +113,36 @@
 {
 	_error_message = STR_1001_IMPOSSIBLE_TRACK_COMBINATION;
 
-	if ((map5&RAIL_TYPE_MASK) == RAIL_TYPE_SIGNALS) {
-
-		if (map5 & trackbits) {
-			_error_message = STR_1007_ALREADY_BUILT;
-			return false;
-		}
-
-		map5 |= trackbits;
-		return (map5 == (RAIL_TYPE_SIGNALS|RAIL_BIT_UPPER|RAIL_BIT_LOWER) || map5 == (RAIL_TYPE_SIGNALS|RAIL_BIT_LEFT|RAIL_BIT_RIGHT));
+	switch (map5 & RAIL_TYPE_MASK) {
+		case RAIL_TYPE_NORMAL:
+			if (map5 & trackbits) {
+				_error_message = STR_1007_ALREADY_BUILT;
+				return false;
+			}
 
-	} else if ((map5&RAIL_TYPE_MASK) == RAIL_TYPE_NORMAL) {
-		_error_message = STR_1007_ALREADY_BUILT;
-		if (map5 & trackbits)
-			return false;
+			if (flags & DC_NO_RAIL_OVERLAP) {
+				// Computer players are not allowed to intersect pieces of rail.
+				map5 |= trackbits;
+				return
+					map5 == (RAIL_BIT_UPPER | RAIL_BIT_LOWER) ||
+					map5 == (RAIL_BIT_LEFT  | RAIL_BIT_RIGHT);
+			} else {
+				return true;
+			}
 
-		// Computer players are not allowed to intersect pieces of rail.
-		if (!(flags&DC_NO_RAIL_OVERLAP))
-			return true;
+		case RAIL_TYPE_SIGNALS:
+			if (map5 & trackbits) {
+				_error_message = STR_1007_ALREADY_BUILT;
+				return false;
+			}
 
-		map5 |= trackbits;
-		return (map5 == (RAIL_BIT_UPPER|RAIL_BIT_LOWER) || map5 == (RAIL_BIT_LEFT|RAIL_BIT_RIGHT));
-	} else {
-		return false;
+			map5 |= trackbits;
+			return
+				map5 == (RAIL_TYPE_SIGNALS | RAIL_BIT_UPPER | RAIL_BIT_LOWER) ||
+				map5 == (RAIL_TYPE_SIGNALS | RAIL_BIT_LEFT  | RAIL_BIT_RIGHT);
+
+		default:
+			return false;
 	}
 }