summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rail_cmd.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp
index 0ae096163..ee0e09664 100644
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -2399,7 +2399,16 @@ static void GetTileDesc_Track(TileIndex tile, TileDesc *td)
}
};
- td->str = signal_type[GetSignalType(tile, TRACK_UPPER)][GetSignalType(tile, TRACK_LOWER)];
+ uint primary_signal;
+ uint secondary_signal;
+ if (HasSignalOnTrack(tile, TRACK_UPPER)) {
+ primary_signal = GetSignalType(tile, TRACK_UPPER);
+ secondary_signal = HasSignalOnTrack(tile, TRACK_LOWER) ? GetSignalType(tile, TRACK_LOWER) : primary_signal;
+ } else {
+ secondary_signal = primary_signal = GetSignalType(tile, TRACK_LOWER);
+ }
+
+ td->str = signal_type[secondary_signal][primary_signal];
break;
}