From 169bf3a403883471cd74f52b416085af96fc5097 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 8 Nov 2013 22:24:21 +0000 Subject: [PATCH] (svn r25955) -Fix [FS#5723]: Train's "force proceed" status gets reset when the track on the other side of the tile has a signal (adf88) --- src/train_cmd.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 0386498625..a35b39c81a 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3149,8 +3149,9 @@ bool TrainController(Train *v, Vehicle *nomove, bool reverse) * this to one, then if we reach the next signal it is * decreased to zero and we won't pass that new signal. */ Trackdir dir = FindFirstTrackdir(trackdirbits); - if (GetSignalType(gp.new_tile, TrackdirToTrack(dir)) != SIGTYPE_PBS || - !HasSignalOnTrackdir(gp.new_tile, ReverseTrackdir(dir))) { + if (HasSignalOnTrackdir(gp.new_tile, dir) || + (HasSignalOnTrackdir(gp.new_tile, ReverseTrackdir(dir)) && + GetSignalType(gp.new_tile, TrackdirToTrack(dir)) != SIGTYPE_PBS)) { /* However, we do not want to be stopped by PBS signals * entered via the back. */ v->force_proceed = (v->force_proceed == TFP_SIGNAL) ? TFP_STUCK : TFP_NONE;