diff options
-rw-r--r-- | src/rail_cmd.cpp | 11 |
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; } |