yapf/yapf.h
author bjarni
Sat, 26 Aug 2006 22:28:40 +0000
changeset 4408 db2afc41002a
parent 3977 513433ebd092
child 4462 d67a579a5452
permissions -rw-r--r--
(svn r6161) -Feature: List of vehicles with the same shared orders
the list is available in the orders window and looks like the list buttons from the station windows (small vehicle)
The button is disabled if the vehicle do not have any shared orders or it got shared orders, but an empty order list
based on a patch by nycom, thought it ended up getting heavily modified
Thanks to TrueLight for proofreading and suggestions
/* $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;
//	TrackdirBits  m_red_td_bits;
	DiagDirection m_exitdir;
	bool          m_is_tunnel;
	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 */