(svn r2094) In GetTileDesc_Track(): uint -> TileIndex, use enums, if () cascade -> switch
--- 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)