diff --git a/src/pbs.cpp b/src/pbs.cpp index 2ba7bbf9d1..c0962557fb 100644 --- a/src/pbs.cpp +++ b/src/pbs.cpp @@ -126,6 +126,7 @@ bool TryReserveRailTrack(TileIndex tile, Track t, bool trigger_stations) if (GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL && !GetTunnelBridgeReservationTrackBits(tile)) { SetTunnelBridgeReservation(tile, true); if (IsTunnelBridgeExit(tile) && IsTunnelBridgePBS(tile)) SetTunnelBridgeExitGreen(tile, true); + MarkTileDirtyByTile(tile); return true; } break; @@ -181,6 +182,7 @@ void UnreserveRailTrack(TileIndex tile, Track t) if (GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL) { SetTunnelBridgeReservation(tile, false); if (IsTunnelBridgeExit(tile) && IsTunnelBridgePBS(tile)) SetTunnelBridgeExitGreen(tile, false); + MarkTileDirtyByTile(tile); } break; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index a96e52597b..adb8968a4f 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3231,6 +3231,7 @@ static bool CheckTrainStayInWormHolePathReserve(Train *t, TileIndex tile) if (reserved == TRACKDIR_BIT_NONE) { /* next tile is not reserved, so reserve the exit tile */ SetTunnelBridgeReservation(tile, true); + MarkTileDirtyByTile(tile); } } bool ok = TryPathReserve(t);