#include "stdafx.h"
#include "station_map.h"
#include "settings_type.h"
#include "pathfind.h"
#include "debug.h"
#include "tunnelbridge_map.h"
#include "core/random_func.hpp"
#include "core/alloc_type.hpp"
#include "tunnelbridge.h"
Go to the source code of this file.
Data Structures | |
| struct | StackedItem |
| struct | HashLink |
| struct | NewTrackPathFinder |
Defines | |
| #define | NTP_GET_LINK_OFFS(tpf, link) ((byte*)(link) - (byte*)tpf->links) |
| #define | NTP_GET_LINK_PTR(tpf, link_offs) (HashLink*)((byte*)tpf->links + (link_offs)) |
| #define | ARR(i) tpf->stack[(i)-1] |
Functions | |
| static bool | TPFSetTileBit (TrackPathFinder *tpf, TileIndex tile, int dir) |
| static void | TPFModeShip (TrackPathFinder *tpf, TileIndex tile, DiagDirection direction) |
| static bool | CanAccessTileInDir (TileIndex tile, DiagDirection side, TransportType tracktype) |
| Checks if any vehicle can enter/leave tile in given diagdir Checks only for rail/road depots and road non-drivethrough stations. | |
| static void | TPFModeNormal (TrackPathFinder *tpf, TileIndex tile, DiagDirection direction) |
| void | FollowTrack (TileIndex tile, PathfindFlags flags, TransportType tt, uint sub_type, DiagDirection direction, TPFEnumProc *enum_proc, TPFAfterProc *after_proc, void *data) |
| static void | HeapifyUp (NewTrackPathFinder *tpf) |
| called after a new element was added in the queue at the last index. | |
| static void | HeapifyDown (NewTrackPathFinder *tpf) |
| called after the element 0 was eaten. | |
| static bool | NtpVisit (NewTrackPathFinder *tpf, TileIndex tile, DiagDirection dir, uint length) |
| mark a tile as visited and store the length of the path. | |
| static bool | NtpCheck (NewTrackPathFinder *tpf, TileIndex tile, uint dir, uint length) |
| Checks if the shortest path to the given tile/dir so far is still the given length. | |
| static uint | DistanceMoo (TileIndex t0, TileIndex t1) |
| static void | NTPEnum (NewTrackPathFinder *tpf, TileIndex tile, DiagDirection direction) |
| void | NewTrainPathfind (TileIndex tile, TileIndex dest, RailTypes railtypes, DiagDirection direction, NTPEnumProc *enum_proc, void *data) |
| new pathfinder for trains. | |
Variables | |
| static const byte | _length_of_track [16] |
Definition in file pathfind.cpp.
| static bool CanAccessTileInDir | ( | TileIndex | tile, | |
| DiagDirection | side, | |||
| TransportType | tracktype | |||
| ) | [inline, static] |
Checks if any vehicle can enter/leave tile in given diagdir Checks only for rail/road depots and road non-drivethrough stations.
| tile | tile to check | |
| side | side of tile we are trying to leave/enter | |
| tracktype | type of transport |
Definition at line 180 of file pathfind.cpp.
References GetRailDepotDirection(), GetRoadStopDir(), IsRailDepotTile(), TRANSPORT_RAIL, and TRANSPORT_ROAD.
| static void HeapifyDown | ( | NewTrackPathFinder * | tpf | ) | [inline, static] |
called after the element 0 was eaten.
fill it with a new element
Definition at line 361 of file pathfind.cpp.
| static void HeapifyUp | ( | NewTrackPathFinder * | tpf | ) | [inline, static] |
called after a new element was added in the queue at the last index.
move it down to the proper position
Definition at line 347 of file pathfind.cpp.
| void NewTrainPathfind | ( | TileIndex | tile, | |
| TileIndex | dest, | |||
| RailTypes | railtypes, | |||
| DiagDirection | direction, | |||
| NTPEnumProc * | enum_proc, | |||
| void * | data | |||
| ) |
new pathfinder for trains.
better and faster.
Definition at line 785 of file pathfind.cpp.
References _settings_game, lengthof, min(), PathfinderSettings::opf, GameSettings::pf, OPFSettings::pf_maxlength, and TRANSPORT_RAIL.
Referenced by DoTrainPathfind(), and FindClosestTrainDepot().
| static bool NtpCheck | ( | NewTrackPathFinder * | tpf, | |
| TileIndex | tile, | |||
| uint | dir, | |||
| uint | length | |||
| ) | [static] |
Checks if the shortest path to the given tile/dir so far is still the given length.
Definition at line 479 of file pathfind.cpp.
| static bool NtpVisit | ( | NewTrackPathFinder * | tpf, | |
| TileIndex | tile, | |||
| DiagDirection | dir, | |||
| uint | length | |||
| ) | [static] |
mark a tile as visited and store the length of the path.
if we already had a better path to this tile, return false. otherwise return true.
Definition at line 393 of file pathfind.cpp.
const byte _length_of_track[16] [static] |
Initial value:
{
DIAG_FACTOR, DIAG_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, 0, 0,
DIAG_FACTOR, DIAG_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, 0, 0
}
Definition at line 526 of file pathfind.cpp.
1.5.6