#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);