mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r21815) -Fix [FS#3908]: [YAPF] Apply a pathfinder penalty for back of one-way path signals so those aren't preferred over other possibilities
This commit is contained in:
parent
6e4dd56158
commit
7645c5ac43
|
@ -515,10 +515,13 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
|
||||||
TILE next(tf_local.m_new_tile, (Trackdir)FindFirstBit2x64(tf_local.m_new_td_bits));
|
TILE next(tf_local.m_new_tile, (Trackdir)FindFirstBit2x64(tf_local.m_new_td_bits));
|
||||||
|
|
||||||
if (TrackFollower::DoTrackMasking() && IsTileType(next.tile, MP_RAILWAY)) {
|
if (TrackFollower::DoTrackMasking() && IsTileType(next.tile, MP_RAILWAY)) {
|
||||||
if ((HasSignalOnTrackdir(next.tile, next.td) && IsPbsSignal(GetSignalType(next.tile, TrackdirToTrack(next.td)))) ||
|
if (HasSignalOnTrackdir(next.tile, next.td) && IsPbsSignal(GetSignalType(next.tile, TrackdirToTrack(next.td)))) {
|
||||||
(HasSignalOnTrackdir(next.tile, ReverseTrackdir(next.td)) && GetSignalType(next.tile, TrackdirToTrack(next.td)) == SIGTYPE_PBS_ONEWAY)) {
|
|
||||||
/* Possible safe tile. */
|
/* Possible safe tile. */
|
||||||
end_segment_reason |= ESRB_SAFE_TILE;
|
end_segment_reason |= ESRB_SAFE_TILE;
|
||||||
|
} else if (HasSignalOnTrackdir(next.tile, ReverseTrackdir(next.td)) && GetSignalType(next.tile, TrackdirToTrack(next.td)) == SIGTYPE_PBS_ONEWAY) {
|
||||||
|
/* Possible safe tile, but not so good as it's the back of a signal... */
|
||||||
|
end_segment_reason |= ESRB_SAFE_TILE | ESRB_DEAD_END;
|
||||||
|
extra_cost += Yapf().PfGetSettings().rail_lastred_exit_penalty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue