diff --git a/src/pbs.cpp b/src/pbs.cpp index 37a6fc2366..a33355fc1b 100644 --- a/src/pbs.cpp +++ b/src/pbs.cpp @@ -104,8 +104,8 @@ bool TryReserveRailTrack(TileIndex tile, Track t, bool trigger_stations) if (_settings_client.gui.show_track_reservation) { /* show the reserved rail if needed */ - if (IsBridgeTile(tile)) { - MarkBridgeDirty(tile, VMDF_NOT_MAP_MODE); + if (IsTileType(tile, MP_TUNNELBRIDGE)) { + MarkBridgeOrTunnelDirtyOnReservationChange(tile, VMDF_NOT_MAP_MODE); } else { MarkTileGroundDirtyByTile(tile, VMDF_NOT_MAP_MODE); } @@ -199,8 +199,8 @@ void UnreserveRailTrack(TileIndex tile, Track t) assert_msg_tile(TrackStatusToTrackBits(GetTileTrackStatus(tile, TRANSPORT_RAIL, 0)) & TrackToTrackBits(t), tile, "track: %u", t); if (_settings_client.gui.show_track_reservation) { - if (IsBridgeTile(tile)) { - MarkBridgeDirty(tile, VMDF_NOT_MAP_MODE); + if (IsTileType(tile, MP_TUNNELBRIDGE)) { + MarkBridgeOrTunnelDirtyOnReservationChange(tile, VMDF_NOT_MAP_MODE); } else { MarkTileGroundDirtyByTile(tile, VMDF_NOT_MAP_MODE); } diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 4916689b11..b03e932aaa 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -119,11 +119,15 @@ void MarkBridgeOrTunnelDirty(TileIndex tile, ViewportMarkDirtyFlags flags) void MarkBridgeOrTunnelDirtyOnReservationChange(TileIndex tile, ViewportMarkDirtyFlags flags) { if (IsTunnelBridgeWithSignalSimulation(tile)) { - MarkTileDirtyByTile(tile, flags); + if (IsBridge(tile)) { + MarkTileDirtyByTile(tile, flags); + } else { + MarkTileGroundDirtyByTile(tile, flags); + } } else if (IsBridge(tile)) { MarkBridgeDirty(tile, flags); } else { - MarkTileDirtyByTile(tile, flags); + MarkTileGroundDirtyByTile(tile, flags); } }