//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //===========================================================================// #ifndef FILESYSTEM_TOOLS_H #define FILESYSTEM_TOOLS_H #ifdef _WIN32 #pragma once #endif #include "filesystem.h" #include "filesystem_init.h" // This is the the path of the initial source file extern char qdir[1024]; // This is the base engine + mod-specific game dir (e.g. "d:\tf2\mytfmod\") extern char gamedir[1024]; // ---------------------------------------------------------------------------------------- // // Filesystem initialization. // ---------------------------------------------------------------------------------------- // // enum FSInitType_t { FS_INIT_FULL, // Load gameinfo.txt, maybe use filesystem_steam, and setup // search paths. FS_INIT_COMPATIBILITY_MODE // Load filesystem_stdio and that's it. }; // // Initializes qdir, and gamedir. Also initializes the VMPI filesystem if MPI // is defined. // // pFilename can be NULL if you want to rely on vproject and qproject. If it's // specified, FileSystem_Init will go up directories from pFilename looking for // gameinfo.txt (if vproject isn't specified). // // If bOnlyUseFilename is true, then it won't use any alternative methods of // finding the vproject dir (ie: it won't use -game or -vproject or the vproject // env var or qproject). // bool FileSystem_Init(const char *pFilename, int maxMemoryUsage = 0, FSInitType_t initType = FS_INIT_FULL, bool bOnlyUseFilename = false); void FileSystem_Term(); // Used to connect app-framework based console apps to the filesystem tools void FileSystem_SetupStandardDirectories(const char *pFilename, const char *pGameInfoPath); CreateInterfaceFn FileSystem_GetFactory(void); extern IBaseFileSystem *g_pFileSystem; extern IFileSystem *g_pFullFileSystem; // NOTE: this is here when VMPI is being used, but a // VMPI app can ONLY use LoadModule/UnloadModule. #endif // FILESYSTEM_TOOLS_H