(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)

This commit is contained in:
rubidium 2013-11-08 22:24:21 +00:00
parent 1ffcdbd515
commit 169bf3a403
1 changed files with 3 additions and 2 deletions

View File

@ -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;