(svn r19141) -Fix [FS#3619] (r18421): look-ahead for multitile waypoints 'made up' data that shouldn't go into the cache, causing desyncs in MP
This commit is contained in:
@@ -135,8 +135,17 @@ public:
|
||||
void SetDestination(const Train *v)
|
||||
{
|
||||
switch (v->current_order.GetType()) {
|
||||
case OT_GOTO_STATION:
|
||||
case OT_GOTO_WAYPOINT:
|
||||
if (!Waypoint::Get(v->current_order.GetDestination())->IsSingleTile()) {
|
||||
/* In case of 'complex' waypoints we need to do a look
|
||||
* ahead. This look ahead messes a bit about, which
|
||||
* means that it 'corrupts' the cache. To prevent this
|
||||
* we disable caching when we're looking for a complex
|
||||
* waypoint. */
|
||||
Yapf().DisableCache(true);
|
||||
}
|
||||
/* FALL THROUGH */
|
||||
case OT_GOTO_STATION:
|
||||
m_destTile = CalcClosestStationTile(v->current_order.GetDestination(), v->tile, v->current_order.IsType(OT_GOTO_STATION) ? STATION_RAIL : STATION_WAYPOINT);
|
||||
m_dest_station_id = v->current_order.GetDestination();
|
||||
m_destTrackdirs = INVALID_TRACKDIR_BIT;
|
||||
|
Reference in New Issue
Block a user