(svn r2094) In GetTileDesc_Track(): uint -> TileIndex, use enums, if () cascade -> switch
authortron
Mon, 28 Mar 2005 07:02:51 +0000
changeset 1590 4e39d1da10c7
parent 1589 58d173b56509
child 1591 bf840aede1b1
(svn r2094) In GetTileDesc_Track(): uint -> TileIndex, use enums, if () cascade -> switch
rail_cmd.c
--- a/rail_cmd.c	Sun Mar 27 18:15:27 2005 +0000
+++ b/rail_cmd.c	Mon Mar 28 07:02:51 2005 +0000
@@ -1938,30 +1938,32 @@
 
 }
 
-static void GetTileDesc_Track(uint tile, TileDesc *td)
+static void GetTileDesc_Track(TileIndex tile, TileDesc *td)
 {
-	byte m5 = _map5[tile];
-	if (!(m5 & 0x80)) {
-		if(!(m5 & 0x40)) // no signals
+	td->owner = _map_owner[tile];
+	switch (_map5[tile] & RAIL_TYPE_MASK) {
+		case RAIL_TYPE_NORMAL:
 			td->str = STR_1021_RAILROAD_TRACK;
-		else
-		{
-			switch(_map3_hi[tile] & 0x03)
-			{
-				case 0: td->str = STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS;
-					break;
-				case 1: td->str = STR_RAILROAD_TRACK_WITH_PRESIGNALS;
-					break;
-				case 2: td->str = STR_RAILROAD_TRACK_WITH_EXITSIGNALS;
-					break;
-				case 3: td->str = STR_RAILROAD_TRACK_WITH_COMBOSIGNALS;
-					break;
-			}
+			break;
+
+		case RAIL_TYPE_SIGNALS: {
+			const StringID signal_type[] = {
+				STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS,
+				STR_RAILROAD_TRACK_WITH_PRESIGNALS,
+				STR_RAILROAD_TRACK_WITH_EXITSIGNALS,
+				STR_RAILROAD_TRACK_WITH_COMBOSIGNALS
+			};
+
+			td->str = signal_type[_map3_hi[tile] & 0x03];
+			break;
 		}
-	} else {
-		td->str = m5 < 0xC4 ? STR_1023_RAILROAD_TRAIN_DEPOT : STR_LANDINFO_WAYPOINT;
+
+		case RAIL_TYPE_DEPOT:
+		default:
+			td->str = ((_map5[tile] & RAIL_SUBTYPE_MASK) == RAIL_SUBTYPE_DEPOT) ?
+				STR_1023_RAILROAD_TRAIN_DEPOT : STR_LANDINFO_WAYPOINT;
+			break;
 	}
-	td->owner = _map_owner[tile];
 }
 
 static void ChangeTileOwner_Track(uint tile, byte old_player, byte new_player)