KUDr@3900: /* $Id$ */ KUDr@3900: KUDr@3900: #ifndef YAPF_H KUDr@3900: #define YAPF_H KUDr@3900: KUDr@3900: #include "../debug.h" KUDr@3900: KUDr@3900: Trackdir YapfChooseShipTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks); KUDr@3900: Trackdir YapfChooseRoadTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir); KUDr@3900: Trackdir YapfChooseRailTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackdirBits trackdirs); KUDr@3900: KUDr@3915: uint YapfRoadVehDistanceToTile(const Vehicle* v, TileIndex tile); KUDr@3915: KUDr@3900: Depot* YapfFindNearestRoadDepot(const Vehicle *v); KUDr@3900: bool YapfFindNearestRailDepotTwoWay(Vehicle *v, int max_distance, int reverse_penalty, TileIndex* depot_tile, bool* reversed); KUDr@3900: KUDr@3900: bool YapfCheckReverseTrain(Vehicle* v); KUDr@3900: KUDr@3900: void YapfNotifyTrackLayoutChange(TileIndex tile, Track track); KUDr@3900: KUDr@3900: KUDr@3900: void* NpfBeginInterval(void); KUDr@3900: int NpfEndInterval(void* perf); KUDr@3900: KUDr@3900: extern int _aystar_stats_open_size; KUDr@3900: extern int _aystar_stats_closed_size; KUDr@3900: KUDr@3900: KUDr@3900: /** Base struct for track followers. */ KUDr@3900: typedef struct FollowTrack_t KUDr@3900: { KUDr@3915: const Vehicle* m_veh; KUDr@3900: TileIndex m_old_tile; KUDr@3900: Trackdir m_old_td; KUDr@3900: TileIndex m_new_tile; KUDr@3900: TrackdirBits m_new_td_bits; tron@3977: // TrackdirBits m_red_td_bits; KUDr@3900: DiagDirection m_exitdir; KUDr@3900: bool m_is_tunnel; KUDr@3931: bool m_is_station; KUDr@3931: int m_tiles_skipped; KUDr@3900: } FollowTrack_t; KUDr@3900: KUDr@3900: /** track followers */ KUDr@3900: bool FollowTrackWater (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); KUDr@3900: bool FollowTrackRoad (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); KUDr@3900: bool FollowTrackRail (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); KUDr@3900: bool FollowTrackWaterNo90(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); KUDr@3900: bool FollowTrackRoadNo90 (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); KUDr@3900: bool FollowTrackRailNo90 (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td); KUDr@3900: KUDr@3900: enum { KUDr@3900: YAPF_TILE_LENGTH = 100, KUDr@3900: YAPF_TILE_CORNER_LENGTH = 71 KUDr@3900: }; KUDr@3900: KUDr@3900: #endif /* YAPF_H */