/
rogue24b3/
rogue24b3/data/
#define RID ROOM_INDEX_DATA

class TrackStep {
public:
	RID *		room;
	UInt8		dir;
};


class Path {
public:
	~Path(void);
	SInt32		Dir(RID *start);

	SInt32		depth;
	Flags		flags;
	SInt32		count;
	CHAR_DATA *	victim;
	SInt32		dest;
	TrackStep*	moves;
};

#define HUNT_GLOBAL	1
#define HUNT_THRU_DOORS	2

Path *	Path2Name	(RID *start, char *name, SInt32 depth, Flags flags);
Path *	Path2FullName	(RID *start, char *name, SInt32 depth, Flags flags);
Path *	Path2Char	(RID *start, CharData *ch, SInt32 depth, Flags flags);
Path *	Path2Room	(RID *start, RID *dest, SInt32 depth, Flags flags);

typedef	SInt32		(*BuildPathFunc)(RID *start, CPtr data);

Path *	PathBuild	(RID *start, BuildPathFunc predicate, Ptr data,
			SInt32 depth, Flags flags);
Path *	PathRebuild	(RID *start, Path *path);

SInt32 Track(CHAR_DATA *ch);