mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-19 15:25:39 +00:00
25a63ec7af
-Feature: Bridges can now be placed above: Any railway track combination (excluding depots and waypoints) Any road combination (excluding depots) Clear tiles (duh), including fields Tunnel entrances Bridge heads Thanks to Tron for idea and implementation, KUDr for the yapf synchronization and many others for hours of testing There are still a number of visual problems remaining, especially when electric railways are on or under the bridge. DO NOT REPORT THOSE BUGS FOR THE TIME BEING please.
58 lines
1.8 KiB
C
58 lines
1.8 KiB
C
/* $Id$ */
|
|
|
|
#ifndef YAPF_H
|
|
#define YAPF_H
|
|
|
|
#include "../debug.h"
|
|
|
|
Trackdir YapfChooseShipTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
|
|
Trackdir YapfChooseRoadTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir);
|
|
Trackdir YapfChooseRailTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackdirBits trackdirs);
|
|
|
|
uint YapfRoadVehDistanceToTile(const Vehicle* v, TileIndex tile);
|
|
|
|
Depot* YapfFindNearestRoadDepot(const Vehicle *v);
|
|
bool YapfFindNearestRailDepotTwoWay(Vehicle *v, int max_distance, int reverse_penalty, TileIndex* depot_tile, bool* reversed);
|
|
|
|
bool YapfCheckReverseTrain(Vehicle* v);
|
|
|
|
void YapfNotifyTrackLayoutChange(TileIndex tile, Track track);
|
|
|
|
|
|
void* NpfBeginInterval(void);
|
|
int NpfEndInterval(void* perf);
|
|
|
|
extern int _aystar_stats_open_size;
|
|
extern int _aystar_stats_closed_size;
|
|
|
|
|
|
/** Base struct for track followers. */
|
|
typedef struct FollowTrack_t
|
|
{
|
|
const Vehicle* m_veh;
|
|
TileIndex m_old_tile;
|
|
Trackdir m_old_td;
|
|
TileIndex m_new_tile;
|
|
TrackdirBits m_new_td_bits;
|
|
DiagDirection m_exitdir;
|
|
bool m_is_tunnel;
|
|
bool m_is_bridge;
|
|
bool m_is_station;
|
|
int m_tiles_skipped;
|
|
} FollowTrack_t;
|
|
|
|
/** track followers */
|
|
bool FollowTrackWater (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td);
|
|
bool FollowTrackRoad (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td);
|
|
bool FollowTrackRail (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td);
|
|
bool FollowTrackWaterNo90(FollowTrack_t *This, TileIndex old_tile, Trackdir old_td);
|
|
bool FollowTrackRoadNo90 (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td);
|
|
bool FollowTrackRailNo90 (FollowTrack_t *This, TileIndex old_tile, Trackdir old_td);
|
|
|
|
enum {
|
|
YAPF_TILE_LENGTH = 100,
|
|
YAPF_TILE_CORNER_LENGTH = 71
|
|
};
|
|
|
|
#endif /* YAPF_H */
|