yapf/yapf.h
author truelight
Sat, 27 May 2006 18:17:10 +0000
changeset 3903 d6f4f6b63ffc
parent 3900 4984308f9125
child 3915 281c7ebd27e0
permissions -rw-r--r--
(svn r4991) -Fix: don't compile UNITTEST by default, it isn't needed
-Fix: do not use hardcoded names for things like 'strip', keep it configurable!!
/* $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);

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
{
	Vehicle*      m_veh;
	TileIndex     m_old_tile;
	Trackdir      m_old_td;
	TileIndex     m_new_tile;
	TrackdirBits  m_new_td_bits;
//	TrackdirBits  m_red_td_bits;
	DiagDirection m_exitdir;
	bool          m_is_tunnel;
	int           m_tunnel_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 */