OpenTTD
|
Functions to access the new pathfinder. More...
#include "../../track_type.h"
#include "../../direction_type.h"
#include "../../vehicle_type.h"
#include "../pathfinder_type.h"
Go to the source code of this file.
Functions | |
FindDepotData | NPFRoadVehicleFindNearestDepot (const RoadVehicle *v, int max_penalty) |
Used when user sends road vehicle to the nearest depot or if road vehicle needs servicing using NPF. | |
Trackdir | NPFRoadVehicleChooseTrack (const RoadVehicle *v, TileIndex tile, DiagDirection enterdir, TrackdirBits trackdirs, bool &path_found) |
Finds the best path for given road vehicle using NPF. | |
Track | NPFShipChooseTrack (const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool &path_found) |
Finds the best path for given ship using NPF. | |
bool | NPFShipCheckReverse (const Ship *v) |
Returns true if it is better to reverse the ship before leaving depot using NPF. | |
FindDepotData | NPFTrainFindNearestDepot (const Train *v, int max_penalty) |
Used when user sends train to the nearest depot or if train needs servicing using NPF. | |
bool | NPFTrainFindNearestSafeTile (const Train *v, TileIndex tile, Trackdir td, bool override_railtype) |
Try to extend the reserved path of a train to the nearest safe tile using NPF. | |
bool | NPFTrainCheckReverse (const Train *v) |
Returns true if it is better to reverse the train before leaving station using NPF. | |
Track | NPFTrainChooseTrack (const Train *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool &path_found, bool reserve_track, struct PBSTileInfo *target) |
Finds the best path for given train using NPF. |
Functions to access the new pathfinder.
Definition in file npf_func.h.
Trackdir NPFRoadVehicleChooseTrack | ( | const RoadVehicle * | v, |
TileIndex | tile, | ||
DiagDirection | enterdir, | ||
TrackdirBits | trackdirs, | ||
bool & | path_found | ||
) |
Finds the best path for given road vehicle using NPF.
v | the RV that needs to find a path |
tile | the tile to find the path from (should be next tile the RV is about to enter) |
enterdir | diagonal direction which the RV will enter this new tile from |
trackdirs | available trackdirs on the new tile (to choose from) |
path_found | [out] Whether a path has been found (true) or has been guessed (false) |
Definition at line 1138 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, NPFFoundTargetData::best_trackdir, DiagDirToDiagTrackdir(), FindFirstBit2x64(), INVALID_RAILTYPES, INVALID_TRACKDIR, Vehicle::owner, TileOffsByDiagDir(), and TRANSPORT_ROAD.
Referenced by RoadFindPathToDest().
FindDepotData NPFRoadVehicleFindNearestDepot | ( | const RoadVehicle * | v, |
int | max_penalty | ||
) |
Used when user sends road vehicle to the nearest depot or if road vehicle needs servicing using NPF.
v | vehicle that needs to go to some depot |
max_penalty | max distance (in pathfinder penalty) from the current vehicle position (used also as optimization - the pathfinder can stop path finding if max_penalty was reached and no depot was seen) |
Definition at line 1122 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, NPFFoundTargetData::best_path_dist, RoadVehicle::GetVehicleTrackdir(), INVALID_RAILTYPES, NPFFoundTargetData::node, Vehicle::owner, ReverseTrackdir(), Vehicle::tile, and TRANSPORT_ROAD.
bool NPFShipCheckReverse | ( | const Ship * | v | ) |
Returns true if it is better to reverse the ship before leaving depot using NPF.
v | the ship leaving the depot |
Definition at line 1183 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, Ship::GetVehicleTrackdir(), INVALID_RAILTYPES, INVALID_TRACKDIR, NPFFoundTargetData::node, NPF_FLAG_REVERSE, NPFGetFlag(), Vehicle::owner, ReverseTrackdir(), Vehicle::tile, and TRANSPORT_WATER.
Track NPFShipChooseTrack | ( | const Ship * | v, |
TileIndex | tile, | ||
DiagDirection | enterdir, | ||
TrackBits | tracks, | ||
bool & | path_found | ||
) |
Finds the best path for given ship using NPF.
v | the ship that needs to find a path |
tile | the tile to find the path from (should be next tile the ship is about to enter) |
enterdir | diagonal direction which the ship will enter this new tile from |
tracks | available tracks on the new tile (to choose from) |
path_found | [out] Whether a path has been found (true) or has been guessed (false) |
Definition at line 1164 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, NPFFoundTargetData::best_trackdir, Ship::GetVehicleTrackdir(), INVALID_RAILTYPES, INVALID_TRACK, INVALID_TRACKDIR, Vehicle::owner, TileOffsByDiagDir(), TrackdirToTrack(), and TRANSPORT_WATER.
Referenced by ChooseShipTrack().
bool NPFTrainCheckReverse | ( | const Train * | v | ) |
Returns true if it is better to reverse the train before leaving station using NPF.
v | the train leaving the station |
Definition at line 1247 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, Train::GetVehicleTrackdir(), INVALID_TRACKDIR, SpecializedVehicle< T, Type >::Last(), NPFFoundTargetData::node, NPF_FLAG_REVERSE, NPFGetFlag(), Vehicle::owner, ReverseTrackdir(), Vehicle::tile, and TRANSPORT_RAIL.
Track NPFTrainChooseTrack | ( | const Train * | v, |
TileIndex | tile, | ||
DiagDirection | enterdir, | ||
TrackBits | tracks, | ||
bool & | path_found, | ||
bool | reserve_track, | ||
struct PBSTileInfo * | target | ||
) |
Finds the best path for given train using NPF.
v | the train that needs to find a path |
tile | the tile to find the path from (should be next tile the train is about to enter) |
enterdir | diagonal direction which the RV will enter this new tile from |
tracks | available trackdirs on the new tile (to choose from) |
path_found | [out] Whether a path has been found (true) or has been guessed (false) |
reserve_track | indicates whether YAPF should try to reserve the found path |
target | [out] the target tile of the reservation, free is set to true if path was reserved |
Definition at line 1265 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, NPFFoundTargetData::best_trackdir, FindFirstTrack(), FollowTrainReservation(), INVALID_TRACKDIR, IsValidTrackdir(), NPFFoundTargetData::node, PBSTileInfo::okay, Vehicle::owner, NPFFoundTargetData::res_okay, PBSTileInfo::tile, PBSTileInfo::trackdir, TrackdirToTrack(), and TRANSPORT_RAIL.
Referenced by DoTrainPathfind().
FindDepotData NPFTrainFindNearestDepot | ( | const Train * | v, |
int | max_penalty | ||
) |
Used when user sends train to the nearest depot or if train needs servicing using NPF.
v | train that needs to go to some depot |
max_penalty | max max_penalty (in pathfinder penalty) from the current train position (used also as optimization - the pathfinder can stop path finding if max_penalty was reached and no depot was seen) |
Definition at line 1202 of file npf.cpp.
References NPFFoundTargetData::best_bird_dist, NPFFoundTargetData::best_path_dist, Train::GetVehicleTrackdir(), INVALID_TRACKDIR, SpecializedVehicle< T, Type >::Last(), NPFFoundTargetData::node, NPF_FLAG_REVERSE, NPF_INFINITE_PENALTY, NPFGetFlag(), Vehicle::owner, ReverseTrackdir(), Vehicle::tile, TRANSPORT_RAIL, and NPFFindStationOrTileData::v.
Referenced by FindClosestTrainDepot().
bool NPFTrainFindNearestSafeTile | ( | const Train * | v, |
TileIndex | tile, | ||
Trackdir | td, | ||
bool | override_railtype | ||
) |
Try to extend the reserved path of a train to the nearest safe tile using NPF.
v | The train that needs to find a safe tile. |
tile | Last tile of the current reserved path. |
td | Last trackdir of the current reserved path. |
override_railtype | Should all physically compatible railtypes be searched, even if the vehicle can't run on them on its own? |
Definition at line 1223 of file npf.cpp.
References RailtypeInfo::compatible_railtypes, GetRailTypeInfo(), INVALID_TRACKDIR, NPF_FLAG_IGNORE_RESERVED, NPF_TRACKDIR_CHOICE, NPFFindSafeTile(), NPFSetFlag(), Vehicle::owner, NPFFoundTargetData::res_okay, NPFFindStationOrTileData::reserve_path, TRANSPORT_RAIL, BaseVehicle::type, NPFFindStationOrTileData::v, and VEH_TRAIN.
Referenced by TryReserveSafeTrack().