mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r10394) -Fix [YAPF]: MP desync caused by incorrect last-red-signal penalties applied when cached segment was reused. Players that connected more recently (didn't have these segments cached yet) calculated those penalties correctly. This caused different YAPF results.
This commit is contained in:
parent
09ef044f9d
commit
cbbee4da48
@ -295,6 +295,16 @@ public:
|
||||
segment_cost = segment.m_cost;
|
||||
/* We know also the reason why the segment ends. */
|
||||
end_segment_reason = segment.m_end_segment_reason;
|
||||
/* We will need also some information about the last signal (if it was red). */
|
||||
if (segment.m_last_signal_tile != INVALID_TILE) {
|
||||
assert(HasSignalOnTrackdir(segment.m_last_signal_tile, segment.m_last_signal_td));
|
||||
SignalState sig_state = GetSignalStateByTrackdir(segment.m_last_signal_tile, segment.m_last_signal_td);
|
||||
bool is_red = (sig_state == SIGNAL_STATE_RED);
|
||||
n.flags_u.flags_s.m_last_signal_was_red = is_red;
|
||||
if (is_red) {
|
||||
n.m_last_red_signal_type = GetSignalType(segment.m_last_signal_tile, TrackdirToTrack(segment.m_last_signal_td));
|
||||
}
|
||||
}
|
||||
/* No further calculation needed. */
|
||||
cur = TILE(n.GetLastTile(), n.GetLastTrackdir());
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user