(svn r16909) -Fix [FS#2996]: NewGRF stations would be triggering assertions all over the place when using the more advanced station types.
-Change: make (rail) waypoints sub classes of 'base stations', make buoys waypoints and unify code between them where possible.
This commit is contained in:
@@ -406,7 +406,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
|
||||
/* We will end in this pass (station is possible target) */
|
||||
end_segment_reason |= ESRB_STATION;
|
||||
|
||||
} else if (cur.tile_type == MP_RAILWAY && IsRailWaypoint(cur.tile)) {
|
||||
} else if (cur.tile_type == MP_STATION && IsRailWaypoint(cur.tile)) {
|
||||
/* Waypoint is also a good reason to finish. */
|
||||
end_segment_reason |= ESRB_WAYPOINT;
|
||||
} else if (TrackFollower::DoTrackMasking() && cur.tile_type == MP_RAILWAY) {
|
||||
|
@@ -134,22 +134,11 @@ public:
|
||||
m_destTrackdirs = INVALID_TRACKDIR_BIT;
|
||||
break;
|
||||
|
||||
case OT_GOTO_WAYPOINT: {
|
||||
Waypoint *wp = Waypoint::Get(v->current_order.GetDestination());
|
||||
if (wp == NULL) {
|
||||
/* Invalid waypoint in orders! */
|
||||
DEBUG(yapf, 0, "Invalid waypoint in orders == 0x%04X (train %d, company %d)", v->current_order.GetDestination(), v->unitnumber, (CompanyID)v->owner);
|
||||
break;
|
||||
}
|
||||
m_destTile = wp->xy;
|
||||
if (m_destTile != v->dest_tile) {
|
||||
/* Something is wrong with orders! */
|
||||
DEBUG(yapf, 0, "Invalid v->dest_tile == 0x%04X (train %d, company %d)", v->dest_tile, v->unitnumber, (CompanyID)v->owner);
|
||||
}
|
||||
case OT_GOTO_WAYPOINT:
|
||||
m_destTile = Waypoint::Get(v->current_order.GetDestination())->xy;
|
||||
m_dest_station_id = INVALID_STATION;
|
||||
m_destTrackdirs = TrackToTrackdirBits(AxisToTrack(GetWaypointAxis(wp->xy)));
|
||||
m_destTrackdirs = IsRailWaypointTile(m_destTile) ? TrackToTrackdirBits(GetRailStationTrack(m_destTile)) : INVALID_TRACKDIR_BIT;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
m_destTile = v->dest_tile;
|
||||
|
Reference in New Issue
Block a user