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