summaryrefslogtreecommitdiff
path: root/engine/filesystem_engine.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /engine/filesystem_engine.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'engine/filesystem_engine.cpp')
-rw-r--r--engine/filesystem_engine.cpp139
1 files changed, 139 insertions, 0 deletions
diff --git a/engine/filesystem_engine.cpp b/engine/filesystem_engine.cpp
new file mode 100644
index 0000000..e0944f8
--- /dev/null
+++ b/engine/filesystem_engine.cpp
@@ -0,0 +1,139 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//===========================================================================//
+
+#include "quakedef.h" // for MAX_OSPATH
+#include <stdlib.h>
+#include <assert.h>
+#include <malloc.h>
+#include "filesystem.h"
+#include "bitmap/tgawriter.h"
+#include <tier2/tier2.h>
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+IFileSystem *g_pFileSystem = NULL;
+
+
+void fs_whitelist_spew_flags_changefn( IConVar *pConVar, const char *pOldValue, float flOldValue )
+{
+ if ( g_pFileSystem )
+ {
+ ConVarRef var( pConVar );
+ g_pFileSystem->SetWhitelistSpewFlags( var.GetInt() );
+ }
+}
+
+#if defined( _DEBUG )
+ConVar fs_whitelist_spew_flags( "fs_whitelist_spew_flags", "0", 0,
+ "Set whitelist spew flags to a combination of these values:\n"
+ " 0x0001 - list files as they are added to the CRC tracker\n"
+ " 0x0002 - show files the filesystem is telling the engine to reload\n"
+ " 0x0004 - show files the filesystem is NOT telling the engine to reload",
+ fs_whitelist_spew_flags_changefn );
+#endif
+
+CON_COMMAND( path, "Show the engine filesystem path." )
+{
+ if( g_pFileSystem )
+ {
+ g_pFileSystem->PrintSearchPaths();
+ }
+}
+
+CON_COMMAND( fs_printopenfiles, "Show all files currently opened by the engine." )
+{
+ if( g_pFileSystem )
+ {
+ g_pFileSystem->PrintOpenedFiles();
+ }
+}
+
+CON_COMMAND( fs_warning_level, "Set the filesystem warning level." )
+{
+ if( args.ArgC() != 2 )
+ {
+ Warning( "\"fs_warning_level n\" where n is one of:\n" );
+ Warning( "\t0:\tFILESYSTEM_WARNING_QUIET\n" );
+ Warning( "\t1:\tFILESYSTEM_WARNING_REPORTUNCLOSED\n" );
+ Warning( "\t2:\tFILESYSTEM_WARNING_REPORTUSAGE\n" );
+ Warning( "\t3:\tFILESYSTEM_WARNING_REPORTALLACCESSES\n" );
+ Warning( "\t4:\tFILESYSTEM_WARNING_REPORTALLACCESSES_READ\n" );
+ Warning( "\t5:\tFILESYSTEM_WARNING_REPORTALLACCESSES_READWRITE\n" );
+ Warning( "\t6:\tFILESYSTEM_WARNING_REPORTALLACCESSES_ASYNC\n" );
+ return;
+ }
+
+ int level = atoi( args[ 1 ] );
+ switch( level )
+ {
+ case FILESYSTEM_WARNING_QUIET:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_QUIET\n" );
+ break;
+ case FILESYSTEM_WARNING_REPORTUNCLOSED:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_REPORTUNCLOSED\n" );
+ break;
+ case FILESYSTEM_WARNING_REPORTUSAGE:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_REPORTUSAGE\n" );
+ break;
+ case FILESYSTEM_WARNING_REPORTALLACCESSES:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_REPORTALLACCESSES\n" );
+ break;
+ case FILESYSTEM_WARNING_REPORTALLACCESSES_READ:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_REPORTALLACCESSES_READ\n" );
+ break;
+ case FILESYSTEM_WARNING_REPORTALLACCESSES_READWRITE:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_REPORTALLACCESSES_READWRITE\n" );
+ break;
+ case FILESYSTEM_WARNING_REPORTALLACCESSES_ASYNC:
+ Warning( "fs_warning_level = FILESYSTEM_WARNING_REPORTALLACCESSES_ASYNC\n" );
+ break;
+
+ default:
+ Warning( "fs_warning_level = UNKNOWN!!!!!!!\n" );
+ return;
+ break;
+ }
+ g_pFileSystem->SetWarningLevel( ( FileWarningLevel_t )level );
+}
+
+
+//-----------------------------------------------------------------------------
+// Purpose: Wrap Sys_LoadModule() with a filesystem GetLocalCopy() call to
+// ensure have the file to load when running Steam.
+//-----------------------------------------------------------------------------
+CSysModule *FileSystem_LoadModule(const char *path)
+{
+ if ( g_pFileSystem )
+ return g_pFileSystem->LoadModule( path );
+ else
+ return Sys_LoadModule(path);
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Provided for symmetry sake with FileSystem_LoadModule()...
+//-----------------------------------------------------------------------------
+void FileSystem_UnloadModule(CSysModule *pModule)
+{
+ Sys_UnloadModule(pModule);
+}
+
+
+void FileSystem_SetWhitelistSpewFlags()
+{
+#if defined( _DEBUG )
+ if ( !g_pFileSystem )
+ {
+ Assert( !"FileSystem_InitSpewFlags - no filesystem." );
+ return;
+ }
+
+ g_pFileSystem->SetWhitelistSpewFlags( fs_whitelist_spew_flags.GetInt() );
+#endif
+}
+
+