typedef struct qfile_s qfile_t;
#ifdef WIN32
-typedef long fs_offset_t; // 32bit
-//typedef _int64 fs_offset_t; // 64bit (lots of warnings, and lseek/read/write still don't take 64bit on win64)
+//typedef long fs_offset_t; // 32bit
+typedef __int64 fs_offset_t; // 64bit (lots of warnings, and read/write still don't take 64bit on win64)
#else
typedef long long fs_offset_t;
#endif
extern char fs_gamedir [MAX_OSPATH];
extern char fs_basedir [MAX_OSPATH];
+// list of active game directories (empty if not running a mod)
+#define MAX_GAMEDIRS 16
+extern int fs_numgamedirs;
+extern char fs_gamedirs[MAX_GAMEDIRS][MAX_QPATH];
// ------ Main functions ------ //
qboolean FS_CheckGameDir(const char *gamedir);
qboolean FS_ChangeGameDirs(int numgamedirs, char gamedirs[][MAX_QPATH], qboolean complain, qboolean failmissing);
qboolean FS_IsRegisteredQuakePack(const char *name);
+int FS_CRCFile(const char *filename, size_t *filesizepointer);
void FS_Rescan(void);
typedef struct fssearch_s
void FS_StripExtension (const char *in, char *out, size_t size_out);
void FS_DefaultExtension (char *path, const char *extension, size_t size_path);
+#define FS_FILETYPE_NONE 0
+#define FS_FILETYPE_FILE 1
+#define FS_FILETYPE_DIRECTORY 2
+int FS_FileType (const char *filename); // the file can be into a package
+int FS_SysFileType (const char *filename); // only look for files outside of packages
+
qboolean FS_FileExists (const char *filename); // the file can be into a package
qboolean FS_SysFileExists (const char *filename); // only look for files outside of packages