void FWadCollection::InitMultipleFiles (TArray<FString> &filenames) { int numfiles; // open all the files, load headers, and count lumps DeleteAll(); numfiles = 0; for(unsigned i=0;i<filenames.Size(); i++) { int baselump = NumLumps; AddFile (filenames[i]); } NumLumps = LumpInfo.Size(); if (NumLumps == 0) { I_FatalError ("W_InitMultipleFiles: no files found"); } RenameNerve(); RenameSprites(); FixMacHexen(); // [RH] Set up hash table FirstLumpIndex = new uint32_t[NumLumps]; NextLumpIndex = new uint32_t[NumLumps]; FirstLumpIndex_FullName = new uint32_t[NumLumps]; NextLumpIndex_FullName = new uint32_t[NumLumps]; InitHashChains (); LumpInfo.ShrinkToFit(); Files.ShrinkToFit(); }
void FL_Init() { guard(FL_Init); const char* p; // Set up base directory (main data files). fl_basedir = "."; p = GArgs.CheckValue("-basedir"); if (p) { fl_basedir = p; } // Set up save directory (files written by engine). p = GArgs.CheckValue("-savedir"); if (p) { fl_savedir = p; } #if !defined(_WIN32) else { const char* HomeDir = getenv("HOME"); if (HomeDir) { fl_savedir = VStr(HomeDir) + "/.vavoom"; } } #endif // Set up additional directories where to look for IWAD files. int iwp = GArgs.CheckParm("-iwaddir"); if (iwp) { while (++iwp != GArgs.Count() && GArgs[iwp][0] != '-' && GArgs[iwp][0] != '+') { IWadDirs.Append(GArgs[iwp]); } } AddGameDir("basev/common"); p = GArgs.CheckValue("-iwad"); if (p) { fl_mainwad = p; } p = GArgs.CheckValue("-devgame"); if (p) { fl_devmode = true; } else { p = GArgs.CheckValue("-game"); } if (p) { SetupGameDir(p); } else { ParseBase("basev/games.txt"); #ifdef DEVELOPER // I need progs to be loaded from files fl_devmode = true; #endif } int fp = GArgs.CheckParm("-file"); if (fp) { while (++fp != GArgs.Count() && GArgs[fp][0] != '-' && GArgs[fp][0] != '+') { VStr Ext = VStr(GArgs[fp]).ExtractFileExtension().ToLower(); if (Ext == "pk3" || Ext == "zip") AddZipFile(GArgs[fp]); else W_AddFile(GArgs[fp], VStr(), false); } } RenameSprites(); unguard; }