diff --git a/src/yapf/yapf_rail.cpp b/src/yapf/yapf_rail.cpp --- a/src/yapf/yapf_rail.cpp +++ b/src/yapf/yapf_rail.cpp @@ -54,7 +54,7 @@ private: bool FindSafePositionProc(TileIndex tile, Trackdir td) { - if (IsSafeWaitingPosition(Yapf().GetVehicle(), tile, td, true, !TrackFollower::Allow90degTurns())) { + if (IsSafeWaitingPosition((Train *)Yapf().GetVehicle(), tile, td, true, !TrackFollower::Allow90degTurns())) { m_res_dest = tile; m_res_dest_td = td; return false; // Stop iterating segment @@ -149,7 +149,7 @@ public: } /* Don't bother if the target is reserved. */ - if (!IsWaitingPositionFree(Yapf().GetVehicle(), m_res_dest, m_res_dest_td)) return false; + if (!IsWaitingPositionFree((Train *)Yapf().GetVehicle(), m_res_dest, m_res_dest_td)) return false; for (Node *node = m_res_node; node->m_parent != NULL; node = node->m_parent) { node->IterateTiles(Yapf().GetVehicle(), Yapf(), *this, &CYapfReserveTrack::ReserveSingleTrack); @@ -411,7 +411,7 @@ public: if (target != NULL) target->tile = INVALID_TILE; /* set origin and destination nodes */ - PBSTileInfo origin = FollowTrainReservation(v); + PBSTileInfo origin = FollowTrainReservation((Train *)v); Yapf().SetOrigin(origin.tile, origin.trackdir, INVALID_TILE, INVALID_TRACKDIR, 1, true); Yapf().SetDestination(v); @@ -534,10 +534,11 @@ Trackdir YapfChooseRailTrack(const Vehic return td_ret; } -bool YapfCheckReverseTrain(const Vehicle *v) +bool YapfCheckReverseTrain(const Vehicle *vt) { + Train *v = (Train *)vt; /* last wagon */ - const Vehicle *last_veh = GetLastVehicleInChain(v); + const Train *last_veh = (Train *)GetLastVehicleInChain(v); /* get trackdirs of both ends */ Trackdir td = v->GetVehicleTrackdir(); @@ -601,7 +602,7 @@ bool YapfFindNearestRailDepotTwoWay(cons const Vehicle *last_veh = GetLastVehicleInChain(v); - PBSTileInfo origin = FollowTrainReservation(v); + PBSTileInfo origin = FollowTrainReservation((Train *)v); TileIndex last_tile = last_veh->tile; Trackdir td_rev = ReverseTrackdir(last_veh->GetVehicleTrackdir());