- use std::vector<std::string> to pass the file list to InitMultipleFiles

This commit is contained in:
Christoph Oelckers 2023-08-21 21:26:44 +02:00
commit 4906d287cb
17 changed files with 67 additions and 51 deletions

View file

@ -1003,7 +1003,7 @@ void FExecList::ExecCommands() const
}
}
void FExecList::AddPullins(TArray<FString> &wads, FConfigFile *config) const
void FExecList::AddPullins(std::vector<std::string>& wads, FConfigFile *config) const
{
for (unsigned i = 0; i < Pullins.Size(); ++i)
{

View file

@ -34,6 +34,8 @@
#ifndef __C_DISPATCH_H__
#define __C_DISPATCH_H__
#include <string>
#include <vector>
#include <stdint.h>
#include <functional>
#include "c_console.h"
@ -52,7 +54,7 @@ struct FExecList
void AddCommand(const char *cmd, const char *file = nullptr);
void ExecCommands() const;
void AddPullins(TArray<FString> &wads, FConfigFile *config) const;
void AddPullins(std::vector<std::string> &wads, FConfigFile *config) const;
};
extern bool ParsingKeyConf, UnsafeExecutionContext;

View file

@ -54,6 +54,7 @@
#include "md5.h"
#include "i_specialpaths.h"
#include "i_system.h"
#include "cmdlib.h"
extern FILE* Logfile;

View file

@ -207,12 +207,11 @@ void FileSystem::DeleteAll ()
bool FileSystem::InitSingleFile(const char* filename, FileSystemMessageFunc Printf)
{
TArray<FString> filenames;
filenames.Push(filename);
std::vector<std::string> filenames = { filename };
return InitMultipleFiles(filenames, nullptr, Printf);
}
bool FileSystem::InitMultipleFiles (TArray<FString> &filenames, LumpFilterInfo* filter, FileSystemMessageFunc Printf, bool allowduplicates, FILE* hashfile)
bool FileSystem::InitMultipleFiles (std::vector<std::string>& filenames, LumpFilterInfo* filter, FileSystemMessageFunc Printf, bool allowduplicates, FILE* hashfile)
{
int numfiles;
@ -223,26 +222,27 @@ bool FileSystem::InitMultipleFiles (TArray<FString> &filenames, LumpFilterInfo*
// first, check for duplicates
if (allowduplicates)
{
for (unsigned i=0;i<filenames.Size(); i++)
for (size_t i=0;i<filenames.size(); i++)
{
for (unsigned j=i+1;j<filenames.Size(); j++)
for (size_t j=i+1;j<filenames.size(); j++)
{
if (strcmp(filenames[i], filenames[j]) == 0)
if (filenames[i] == filenames[j])
{
filenames.Delete(j);
filenames.erase(filenames.begin() + j);
j--;
}
}
}
}
for(unsigned i=0;i<filenames.Size(); i++)
for(size_t i=0;i<filenames.size(); i++)
{
AddFile (filenames[i], nullptr, filter, Printf, hashfile);
AddFile(filenames[i].c_str(), nullptr, filter, Printf, hashfile);
if (i == (unsigned)MaxIwadIndex) MoveLumpsInFolder("after_iwad/");
FStringf path("filter/%s", Files.Last()->GetHash());
MoveLumpsInFolder(path);
std::string path = "filter/%s";
path += Files.Last()->GetHash();
MoveLumpsInFolder(path.c_str());
}
NumEntries = (uint32_t)FileInfo.size();

View file

@ -65,7 +65,7 @@ public:
void SetMaxIwadNum(int x) { MaxIwadIndex = x; }
bool InitSingleFile(const char *filename, FileSystemMessageFunc Printf = nullptr);
bool InitMultipleFiles (TArray<FString> &filenames, LumpFilterInfo* filter = nullptr, FileSystemMessageFunc Printf = nullptr, bool allowduplicates = false, FILE* hashfile = nullptr);
bool InitMultipleFiles (std::vector<std::string>& filenames, LumpFilterInfo* filter = nullptr, FileSystemMessageFunc Printf = nullptr, bool allowduplicates = false, FILE* hashfile = nullptr);
void AddFile (const char *filename, FileReader *wadinfo, LumpFilterInfo* filter, FileSystemMessageFunc Printf, FILE* hashfile);
int CheckIfResourceFileLoaded (const char *name) noexcept;
void AddAdditionalFile(const char* filename, FileReader* wadinfo = NULL) {}

View file

@ -62,6 +62,7 @@
#include "menu.h"
#include "stats.h"
#include "printf.h"
#include "cmdlib.h"
// MACROS ------------------------------------------------------------------

View file

@ -335,7 +335,7 @@ void MainWindow::SetNetStartProgress(int pos)
if (NetStartPane != 0 && NetStartMaxPos > 1)
{
char buf[16];
mysnprintf(buf, countof(buf), "%d/%d", pos, NetStartMaxPos);
mysnprintf(buf, sizeof(buf), "%d/%d", pos, NetStartMaxPos);
SetDlgItemTextA(NetStartPane, IDC_NETSTARTCOUNT, buf);
SendDlgItemMessage(NetStartPane, IDC_NETSTARTPROGRESS, PBM_SETPOS, min(pos, NetStartMaxPos), 0);
}

View file

@ -28,6 +28,7 @@
#include "filesystem.h"
#include "engineerrors.h"
#include "version.h"
#include "cmdlib.h"
bool VkShaderManager::CompileNextShader()
{

View file

@ -39,6 +39,7 @@
#include "image.h"
#include "textures.h"
#include "palettecontainer.h"
#include "cmdlib.h"
// Strife startup screen
#define PEASANT_INDEX 0

View file

@ -49,6 +49,7 @@
#include "texturemanager.h"
#include "c_cvars.h"
#include "hw_material.h"
#include "cmdlib.h"
FTexture *CreateBrightmapTexture(FImageSource*);

View file

@ -47,6 +47,8 @@
#include "vectors.h"
#include "animtexture.h"
#include "formats/multipatchtexture.h"
#include "basics.h"
#include "cmdlib.h"
FTextureManager TexMan;

View file

@ -47,7 +47,7 @@
//
//==========================================================================
bool D_AddFile(TArray<FString>& wadfiles, const char* file, bool check, int position, FConfigFile* config)
bool D_AddFile(std::vector<std::string>& wadfiles, const char* file, bool check, int position, FConfigFile* config)
{
if (file == nullptr || *file == '\0')
{
@ -111,10 +111,10 @@ bool D_AddFile(TArray<FString>& wadfiles, const char* file, bool check, int posi
file = f;
}
FString f = file;
FixPathSeperator(f);
if (position == -1) wadfiles.Push(f);
else wadfiles.Insert(position, f);
std::string f = file;
for (auto& c : f) if (c == '\\') c = '/';
if (position == -1) wadfiles.push_back(f);
else wadfiles.insert(wadfiles.begin() + position, f);
return true;
}
@ -124,7 +124,7 @@ bool D_AddFile(TArray<FString>& wadfiles, const char* file, bool check, int posi
//
//==========================================================================
void D_AddWildFile(TArray<FString>& wadfiles, const char* value, const char *extension, FConfigFile* config)
void D_AddWildFile(std::vector<std::string>& wadfiles, const char* value, const char *extension, FConfigFile* config)
{
if (value == nullptr || *value == '\0')
{
@ -161,7 +161,7 @@ void D_AddWildFile(TArray<FString>& wadfiles, const char* value, const char *ext
//
//==========================================================================
void D_AddConfigFiles(TArray<FString>& wadfiles, const char* section, const char* extension, FConfigFile *config)
void D_AddConfigFiles(std::vector<std::string>& wadfiles, const char* section, const char* extension, FConfigFile *config)
{
if (config && config->SetSection(section))
{
@ -191,7 +191,7 @@ void D_AddConfigFiles(TArray<FString>& wadfiles, const char* section, const char
//
//==========================================================================
void D_AddDirectory(TArray<FString>& wadfiles, const char* dir, const char *filespec, FConfigFile* config)
void D_AddDirectory(std::vector<std::string>& wadfiles, const char* dir, const char *filespec, FConfigFile* config)
{
FileList list;
if (ScanDirectory(list, dir, "*.wad", true))

View file

@ -2,13 +2,13 @@
// Directory searching routines
#include <stdint.h>
#include "zstring.h"
#include <string>
#include <vector>
class FConfigFile;
bool D_AddFile(TArray<FString>& wadfiles, const char* file, bool check, int position, FConfigFile* config);
void D_AddWildFile(TArray<FString>& wadfiles, const char* value, const char *extension, FConfigFile* config);
void D_AddConfigFiles(TArray<FString>& wadfiles, const char* section, const char* extension, FConfigFile* config);
void D_AddDirectory(TArray<FString>& wadfiles, const char* dir, const char *filespec, FConfigFile* config);
bool D_AddFile(std::vector<std::string>& wadfiles, const char* file, bool check, int position, FConfigFile* config);
void D_AddWildFile(std::vector<std::string>& wadfiles, const char* value, const char *extension, FConfigFile* config);
void D_AddConfigFiles(std::vector<std::string>& wadfiles, const char* section, const char* extension, FConfigFile* config);
void D_AddDirectory(std::vector<std::string>& wadfiles, const char* dir, const char *filespec, FConfigFile* config);
const char* BaseFileSearch(const char* file, const char* ext, bool lookfirstinprogdir, FConfigFile* config);

View file

@ -40,6 +40,7 @@
#include "filesystem.h"
#include "printf.h"
#include "m_swap.h"
#include "cmdlib.h"
#include "m_png.h"