- Roll back filesystem changes. These were causing instabilities in the master branch that were interfering with development.

This commit is contained in:
Rachael Alexanderson 2025-01-03 09:02:12 -05:00
commit f3b0c3ac5e
No known key found for this signature in database
GPG key ID: 26A8ACCE97115EE0
90 changed files with 1349 additions and 1582 deletions

View file

@ -314,7 +314,7 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize,
// Look for IWAD definition lump
//
//==========================================================================
void GetReserved(FileSys::FileSystemFilterInfo& lfi);
void GetReserved(FileSys::LumpFilterInfo& lfi);
FIWadManager::FIWadManager(const char *firstfn, const char *optfn)
{
@ -322,10 +322,10 @@ FIWadManager::FIWadManager(const char *firstfn, const char *optfn)
std::vector<std::string> fns;
fns.push_back(firstfn);
if (optfn) fns.push_back(optfn);
FileSys::FileSystemFilterInfo lfi;
FileSys::LumpFilterInfo lfi;
GetReserved(lfi);
if (check.Initialize(fns, &lfi, nullptr))
if (check.InitMultipleFiles(fns, &lfi, nullptr))
{
// this is for the IWAD picker. As we have a filesystem open here that contains the base files, it is the easiest place to load the strings early.
GStrings.LoadStrings(check, language);
@ -350,8 +350,7 @@ FIWadManager::FIWadManager(const char *firstfn, const char *optfn)
int FIWadManager::ScanIWAD (const char *iwad)
{
FileSystem check;
std::vector<std::string> list({ iwad });
check.Initialize(list, nullptr);
check.InitSingleFile(iwad, nullptr);
mLumpsFound.Resize(mIWadInfos.Size());
@ -369,18 +368,19 @@ int FIWadManager::ScanIWAD (const char *iwad)
}
};
if (check.GetFileCount() > 0)
if (check.GetNumEntries() > 0)
{
memset(&mLumpsFound[0], 0, mLumpsFound.Size() * sizeof(mLumpsFound[0]));
for(int ii = 0; ii < check.GetFileCount(); ii++)
for(int ii = 0; ii < check.GetNumEntries(); ii++)
{
auto full = check.GetFileName(ii);
CheckFileName(check.GetFileShortName(ii));
auto full = check.GetFileFullName(ii, false);
if (full && strnicmp(full, "maps/", 5) == 0)
{
FString mapname(&full[5], strcspn(&full[5], "."));
CheckFileName(mapname.GetChars());
}
else CheckFileName(full);
}
}
for (unsigned i = 0; i< mIWadInfos.Size(); i++)
@ -404,11 +404,11 @@ int FIWadManager::CheckIWADInfo(const char* fn)
{
FileSystem check;
FileSys::FileSystemFilterInfo lfi;
FileSys::LumpFilterInfo lfi;
GetReserved(lfi);
std::vector<std::string> filenames = { fn };
if (check.Initialize(filenames, &lfi, nullptr))
if (check.InitMultipleFiles(filenames, &lfi, nullptr))
{
int num = check.CheckNumForName("IWADINFO");
if (num >= 0)
@ -829,14 +829,14 @@ int FIWadManager::IdentifyVersion (std::vector<std::string>&wadfiles, const char
iwadnum++;
}
fileSystem.SetBaseNum(iwadnum);
fileSystem.SetIwadNum(iwadnum);
if (picks[pick].mRequiredPath.IsNotEmpty())
{
D_AddFile (wadfiles, picks[pick].mRequiredPath.GetChars(), true, -1, GameConfig);
iwadnum++;
}
D_AddFile (wadfiles, picks[pick].mFullPath.GetChars(), true, -1, GameConfig);
fileSystem.SetMaxBaseNum(iwadnum);
fileSystem.SetMaxIwadNum(iwadnum);
auto info = mIWadInfos[picks[pick].mInfoIndex];