+// This software is not affiliated with Valve Corporation
+// We are not affiliated, associated, authorized, endorsed by, or in any way officially
+// connected with Valve Corporation, or any of its subsidiaries or its affiliates.
+//
+// All trademarks are property of their respective owners
+
// Abstract Valve file system
//=======================================================================================================================
+// Initialize game directories / pakfile
+void fs_set_gameinfo( const char *path );
+void fs_exit(void);
+
+// Read asset as binary in full. Will search VPK, then searchpaths, or return NULL if not found
+char *valve_fs_get( const char *path );
+
+// Implementation
+//=======================================================================================================================
+
+#ifdef VALVE_IMPLEMENTATION
+
struct valve_filesystem
{
char gamedir[ 512 ];
// Set gamedir
strcpy( fs->gamedir, path );
- csr_path_winunix( fs->gamedir );
- *csr_findext( fs->gamedir, '/' ) = 0x00;
+ csr_downlvl( fs->gamedir );
// Set exe dir
strcpy( fs->exedir, fs->gamedir );
- strcat( fs->exedir, "../" );
+ csr_downlvl( fs->exedir );
// Get all search paths from file
vdf_node *search_paths = vdf_next(vdf_next(vdf_next( info, "GameInfo", NULL ), "FileSystem", NULL ), "SearchPaths", NULL );
if( !fs->vpk )
{
- log_error( "Could not locate pak01_dir.vpk in %i searchpaths. Stock models will not load!", csr_sb_count( fs->searchpaths ) );
+ log_error( "Could not locate pak01_dir.vpk in %i searchpaths. Stock models will not load!\n", csr_sb_count( fs->searchpaths ) );
}
log_info( "fs_info:\n" );
return NULL;
}
+
+#endif