mount zips in "Packages"

This commit is contained in:
Glenn Maynard
2003-12-10 08:55:20 +00:00
parent 4a50344b4e
commit 5a40e082ec
+32
View File
@@ -71,6 +71,8 @@
#endif
#endif
#define ZIPS_DIR "Packages/"
#ifdef _WINDOWS
HWND g_hWndMain = NULL;
#endif
@@ -741,7 +743,35 @@ void SaveGamePrefsToDisk()
ini.WriteFile();
}
static void MountTreeOfZips( const CString &dir )
{
vector<CString> dirs;
dirs.push_back( dir );
while( dirs.size() )
{
CString path = dirs.back();
dirs.pop_back();
if( !IsADirectory(path) )
continue;
vector<CString> zips;
GetDirListing( path + "/*.zip", zips, false, true );
GetDirListing( path + "/*.smzip", zips, false, true );
for( unsigned i = 0; i < zips.size(); ++i )
{
if( !IsAFile(zips[i]) )
continue;
LOG->Trace( "VFS: found %s", zips[i].c_str() );
FILEMAN->Mount( "zip", zips[i], "" );
}
GetDirListing( path + "/*", dirs, true, true );
}
}
#define UNLOCKS_PATH BASE_PATH "Data" SLASH "Unlocks.dat"
@@ -781,6 +811,8 @@ int main(int argc, char* argv[])
/* Everything except LOG uses this to read and write files. Load this early. */
FILEMAN = new RageFileManager;
MountTreeOfZips( ZIPS_DIR );
atexit(SDL_Quit); /* Clean up on exit */
/* Fire up the SDL, but don't actually start any subsystems.