- only check „allowduplicates“ for the final file system init

The other calls to InitMultipleFiles should not use it.

Also fix the check to not skip some entries.
This commit is contained in:
Christoph Oelckers 2022-04-29 01:36:06 +02:00
commit 2bc787b1cc
3 changed files with 9 additions and 5 deletions

View file

@ -208,7 +208,7 @@ void FileSystem::InitSingleFile(const char* filename, bool quiet)
InitMultipleFiles(filenames, true);
}
void FileSystem::InitMultipleFiles (TArray<FString> &filenames, bool quiet, LumpFilterInfo* filter)
void FileSystem::InitMultipleFiles (TArray<FString> &filenames, bool quiet, LumpFilterInfo* filter, bool allowduplicates)
{
int numfiles;
@ -217,14 +217,17 @@ void FileSystem::InitMultipleFiles (TArray<FString> &filenames, bool quiet, Lump
numfiles = 0;
// first, check for duplicates
if (!Args->CheckParm("-allowduplicates"))
if (allowduplicates)
{
for (unsigned i=0;i<filenames.Size(); i++)
{
for (unsigned j=i+1;j<filenames.Size(); j++)
{
if (strcmp(filenames[i], filenames[j]) == 0)
{
filenames.Delete(j);
j--;
}
}
}
}
@ -1697,4 +1700,4 @@ CCMD(fs_dir)
bool hidden = fileSystem.FindFile(fn1) != i;
Printf(PRINT_NONOTIFY, "%s%-64s %-15s (%5d) %10d %s %s\n", hidden ? TEXTCOLOR_RED : TEXTCOLOR_UNTRANSLATED, fn1, fns, fnid, length, container, hidden ? "(h)" : "");
}
}
}