/
Crimson2/alias/
Crimson2/area.tmp/
Crimson2/area.tmp/AnomalySpaceDock/
Crimson2/area.tmp/AnomalyStation/
Crimson2/area.tmp/AntHill/
Crimson2/area.tmp/ArcticTerrarium/
Crimson2/area.tmp/BuilderCity/
Crimson2/area.tmp/Dungeon/
Crimson2/area.tmp/MiningDock/
Crimson2/area.tmp/PipeSystem/
Crimson2/area.tmp/RattArea/
Crimson2/area.tmp/RobotFactory/
Crimson2/area.tmp/SilverDale/
Crimson2/area.tmp/StarshipFearless/
Crimson2/area.tmp/StationConduits/
Crimson2/area.tmp/TerrariumAlpha/
Crimson2/area.tmp/TerrariumBeta/
Crimson2/area.tmp/TestArea/
Crimson2/area.tmp/Void/
Crimson2/area/
Crimson2/area/AnomalySpaceDock/
Crimson2/area/AnomalyStation/
Crimson2/area/MiningDock/
Crimson2/area/PipeSystem/
Crimson2/area/SilverDale/
Crimson2/area/StationConduits/
Crimson2/area/Void/
Crimson2/board/
Crimson2/clone/
Crimson2/lib/
Crimson2/mole/
Crimson2/mole/mole_src/HELP/
Crimson2/player/
Crimson2/util/
Crimson2/wldedit/
Crimson2/wldedit/res/
/* file.h */
/* due to the inclusion of time_t as part of FILELIST 
   you will have to #include <time.h> prior to this
   header files inclusion */


typedef struct FileListType {
  BYTE   *fileName;
  STR    *fileStr;
  time_t  fileDate;
} FILELIST;

/* files in the filelist */
#define FILE_GREETING 0
#define FILE_CIAO     1
#define FILE_NEWS     2
#define FILE_MOTD     3
#define FILE_QUIT     4
#define FILE_CREDIT   5
#define FILE_DEATH    6
#define FILE_BANNED   7
#define FILE_BANNEW   8
#define FILE_OFFSITE  9

extern BYTE fileVerbose;
extern BYTE fileError;
extern FILELIST fileList[];

extern void  FileInit(void);
extern void  FileRead(FILELIST *fileList);
extern STR  *FileStrRead(FILE *file);
extern LWORD FileFlagRead(FILE *file, BYTE *fList[]);
extern LWORD FileTypeRead(FILE *file, ULWORD tList, LWORD tSize);
extern BYTE  FileByteRead(FILE *file);
#define      FILETYPEREAD(file,tList) FileTypeRead(file,(ULWORD)tList,sizeof(*tList))
#define      FILESTRREAD(file, str) do { STRFREE(str); str = FileStrRead(file); } while(0)

extern BYTE FileStrWrite(FILE *file, STR *str);
extern BYTE FileBinaryWrite(FILE *file, STR *str);
extern void FileTypeWrite(FILE *file, LWORD type, ULWORD tList, LWORD tSize, BYTE next);
extern void FileFlagWrite(FILE *file, FLAG flag, BYTE *fList[], BYTE next);
extern void FileByteWrite(FILE *file, BYTE value, BYTE separator);
#define     FILETYPEWRITE(file,type,tList,byte) FileTypeWrite(file,type,(ULWORD)tList,sizeof(*tList),byte)