From cb43ece0914eeaf526828783a24a0c29d2ed96ce Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 22 Oct 2010 22:51:15 +0000 Subject: [PATCH] (svn r21014) -Fix [FS#4179](r20098): Reversing of trains in stations while last wagon was in a depot or on a bridge-/tunnelhead caused trouble. --- src/train_cmd.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 2f0733e918..a34cf77c92 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3712,7 +3712,10 @@ static bool TrainLocoHandler(Train *v, bool mode) /* Try to reserve a path when leaving the station as we * might not be marked as wanting a reservation, e.g. * when an overlength train gets turned around in a station. */ - if (UpdateSignalsOnSegment(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), v->owner) == SIGSEG_PBS || _settings_game.pf.reserve_paths) { + DiagDirection dir = TrainExitDir(v->direction, v->track); + if (IsRailDepotTile(v->tile) || IsTileType(v->tile, MP_TUNNELBRIDGE)) dir = INVALID_DIAGDIR; + + if (UpdateSignalsOnSegment(v->tile, dir, v->owner) == SIGSEG_PBS || _settings_game.pf.reserve_paths) { TryPathReserve(v, true, true); } ClrBit(v->flags, VRF_LEAVING_STATION);