Fix handling of reservations when reserving at one way tunnel-bridge exit

pull/702/head
Jonathan G Rennison 3 weeks ago
parent 7ef8706ed2
commit 05915b2129

@ -3781,6 +3781,8 @@ void FreeTrainTrackReservation(Train *v, TileIndex origin, Trackdir orig_td)
TileIndex end = GetOtherTunnelBridgeEnd(tile);
bool free = TunnelBridgeIsFree(tile, end, v, TBIFM_ACROSS_ONLY).Succeeded();
if (!free) break;
} else if (IsTunnelBridgeWithSignalSimulation(tile) && IsTunnelBridgeSignalSimulationExitOnly(tile) && TrackdirEntersTunnelBridge(tile, td)) {
break;
}
/* Don't free first station/bridge/tunnel if we are on it. */
@ -5723,6 +5725,9 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse)
return false;
}
goto reverse_train_direction;
} else if (!(v->track & TRACK_BIT_WORMHOLE) && IsTunnelBridgeWithSignalSimulation(gp.new_tile) &&
IsTunnelBridgeSignalSimulationExitOnly(gp.new_tile) && v->force_proceed == TFP_NONE) {
goto reverse_train_direction;
} else {
TryReserveRailTrack(gp.new_tile, TrackBitsToTrack(chosen_track), false);

Loading…
Cancel
Save