From 8a5d3c096b69ce02786d7a004dc21d1ff8ac44cb Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 19 Aug 2023 21:42:58 +0200 Subject: [PATCH] - return a std::string from GetFileFullPath --- src/common/engine/sc_man.cpp | 2 +- src/common/filesystem/filesystem.cpp | 8 +++++--- src/common/filesystem/filesystem.h | 2 +- src/common/models/models_obj.cpp | 4 ++-- src/common/scripting/frontend/zcc_parser.cpp | 6 ++---- src/common/textures/formats/jpegtexture.cpp | 8 ++++---- src/common/textures/texturemanager.cpp | 2 +- src/gamedata/d_dehacked.cpp | 2 +- src/maploader/glnodes.cpp | 2 +- src/scripting/decorate/thingdef_parse.cpp | 2 +- src/scripting/thingdef.cpp | 4 ++-- 11 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/common/engine/sc_man.cpp b/src/common/engine/sc_man.cpp index bc50c7925..21a777756 100644 --- a/src/common/engine/sc_man.cpp +++ b/src/common/engine/sc_man.cpp @@ -203,7 +203,7 @@ void FScanner :: OpenLumpNum (int lump) FileData mem = fileSystem.ReadFile(lump); ScriptBuffer = mem.GetString(); } - ScriptName = fileSystem.GetFileFullPath(lump); + ScriptName = fileSystem.GetFileFullPath(lump).c_str(); LumpNum = lump; PrepareScript (); } diff --git a/src/common/filesystem/filesystem.cpp b/src/common/filesystem/filesystem.cpp index 55847e714..1737d6d7c 100644 --- a/src/common/filesystem/filesystem.cpp +++ b/src/common/filesystem/filesystem.cpp @@ -1130,13 +1130,15 @@ const char *FileSystem::GetFileFullName (int lump, bool returnshort) const // //========================================================================== -FString FileSystem::GetFileFullPath(int lump) const +std::string FileSystem::GetFileFullPath(int lump) const { - FString foo; + std::string foo; if ((size_t) lump < NumEntries) { - foo << GetResourceFileName(FileInfo[lump].rfnum) << ':' << GetFileFullName(lump); + foo = GetResourceFileName(FileInfo[lump].rfnum); + foo += ':'; + foo += +GetFileFullName(lump); } return foo; } diff --git a/src/common/filesystem/filesystem.h b/src/common/filesystem/filesystem.h index 5ccca0971..9f7da8b3e 100644 --- a/src/common/filesystem/filesystem.h +++ b/src/common/filesystem/filesystem.h @@ -138,7 +138,7 @@ public: int GetFileFlags (int lump); // Return the flags for this lump const char* GetFileShortName(int lump) const; const char *GetFileFullName (int lump, bool returnshort = true) const; // [RH] Returns the lump's full name - FString GetFileFullPath (int lump) const; // [RH] Returns wad's name + lump's full name + std::string GetFileFullPath (int lump) const; // [RH] Returns wad's name + lump's full name int GetFileContainer (int lump) const; // [RH] Returns wadnum for a specified lump int GetFileNamespace (int lump) const; // [RH] Returns the namespace a lump belongs to void SetFileNamespace(int lump, int ns); diff --git a/src/common/models/models_obj.cpp b/src/common/models/models_obj.cpp index e1d777c81..087fe0d3a 100644 --- a/src/common/models/models_obj.cpp +++ b/src/common/models/models_obj.cpp @@ -37,7 +37,7 @@ */ bool FOBJModel::Load(const char* fn, int lumpnum, const char* buffer, int length) { - FString objName = fileSystem.GetFileFullPath(lumpnum); + auto objName = fileSystem.GetFileFullPath(lumpnum); FString objBuf(buffer, length); // Do some replacements before we parse the OBJ string @@ -101,7 +101,7 @@ bool FOBJModel::Load(const char* fn, int lumpnum, const char* buffer, int length wObjBuf = nullptr; objBuf.UnlockBuffer(); } - sc.OpenString(objName, objBuf); + sc.OpenString(objName.c_str(), objBuf); FTextureID curMtl = FNullTextureID(); OBJSurface *curSurface = nullptr; diff --git a/src/common/scripting/frontend/zcc_parser.cpp b/src/common/scripting/frontend/zcc_parser.cpp index cedeb53fb..978006054 100644 --- a/src/common/scripting/frontend/zcc_parser.cpp +++ b/src/common/scripting/frontend/zcc_parser.cpp @@ -407,8 +407,6 @@ PNamespace *ParseOneScript(const int baselump, ZCCParseState &state) int lumpnum = baselump; auto fileno = fileSystem.GetFileContainer(lumpnum); - FString file = fileSystem.GetFileFullPath(lumpnum); - state.FileNo = fileno; if (TokenMap.CountUsed() == 0) @@ -503,7 +501,7 @@ PNamespace *ParseOneScript(const int baselump, ZCCParseState &state) // If the parser fails, there is no point starting the compiler, because it'd only flood the output with endless errors. if (FScriptPosition::ErrorCounter > 0) { - I_Error("%d errors while parsing %s", FScriptPosition::ErrorCounter, fileSystem.GetFileFullPath(baselump).GetChars()); + I_Error("%d errors while parsing %s", FScriptPosition::ErrorCounter, fileSystem.GetFileFullPath(baselump).c_str()); } #ifndef NDEBUG @@ -517,7 +515,7 @@ PNamespace *ParseOneScript(const int baselump, ZCCParseState &state) if (Args->CheckParm("-dumpast")) { FString ast = ZCC_PrintAST(state.TopNode); - FString filename = fileSystem.GetFileFullPath(baselump); + FString filename = fileSystem.GetFileFullPath(baselump).c_str(); filename.ReplaceChars(":\\/?|", '.'); filename << ".ast"; FileWriter *ff = FileWriter::Open(filename); diff --git a/src/common/textures/formats/jpegtexture.cpp b/src/common/textures/formats/jpegtexture.cpp index 79ba53671..834dc44e3 100644 --- a/src/common/textures/formats/jpegtexture.cpp +++ b/src/common/textures/formats/jpegtexture.cpp @@ -287,7 +287,7 @@ PalettedPixels FJPEGTexture::CreatePalettedPixels(int conversion) (cinfo.out_color_space == JCS_YCbCr && cinfo.num_components == 3) || (cinfo.out_color_space == JCS_GRAYSCALE && cinfo.num_components == 1))) { - Printf(TEXTCOLOR_ORANGE "Unsupported color format in %s\n", fileSystem.GetFileFullPath(SourceLump).GetChars()); + Printf(TEXTCOLOR_ORANGE "Unsupported color format in %s\n", fileSystem.GetFileFullPath(SourceLump).c_str()); } else { @@ -382,7 +382,7 @@ PalettedPixels FJPEGTexture::CreatePalettedPixels(int conversion) } catch (int) { - Printf(TEXTCOLOR_ORANGE "JPEG error in %s\n", fileSystem.GetFileFullPath(SourceLump).GetChars()); + Printf(TEXTCOLOR_ORANGE "JPEG error in %s\n", fileSystem.GetFileFullPath(SourceLump).c_str()); } jpeg_destroy_decompress(&cinfo); if (buff != NULL) @@ -426,7 +426,7 @@ int FJPEGTexture::CopyPixels(FBitmap *bmp, int conversion) (cinfo.out_color_space == JCS_YCbCr && cinfo.num_components == 3) || (cinfo.out_color_space == JCS_GRAYSCALE && cinfo.num_components == 1))) { - Printf(TEXTCOLOR_ORANGE "Unsupported color format in %s\n", fileSystem.GetFileFullPath(SourceLump).GetChars()); + Printf(TEXTCOLOR_ORANGE "Unsupported color format in %s\n", fileSystem.GetFileFullPath(SourceLump).c_str()); } else { @@ -479,7 +479,7 @@ int FJPEGTexture::CopyPixels(FBitmap *bmp, int conversion) } catch (int) { - Printf(TEXTCOLOR_ORANGE "JPEG error in %s\n", fileSystem.GetFileFullPath(SourceLump).GetChars()); + Printf(TEXTCOLOR_ORANGE "JPEG error in %s\n", fileSystem.GetFileFullPath(SourceLump).c_str()); } jpeg_destroy_decompress(&cinfo); return 0; diff --git a/src/common/textures/texturemanager.cpp b/src/common/textures/texturemanager.cpp index 236b049bc..cbfdfc821 100644 --- a/src/common/textures/texturemanager.cpp +++ b/src/common/textures/texturemanager.cpp @@ -485,7 +485,7 @@ FTextureID FTextureManager::CreateTexture (int lumpnum, ETextureType usetype) } else { - Printf (TEXTCOLOR_ORANGE "Invalid data encountered for texture %s\n", fileSystem.GetFileFullPath(lumpnum).GetChars()); + Printf (TEXTCOLOR_ORANGE "Invalid data encountered for texture %s\n", fileSystem.GetFileFullPath(lumpnum).c_str()); return FTextureID(-1); } } diff --git a/src/gamedata/d_dehacked.cpp b/src/gamedata/d_dehacked.cpp index 96925365c..bd9de53dc 100644 --- a/src/gamedata/d_dehacked.cpp +++ b/src/gamedata/d_dehacked.cpp @@ -3004,7 +3004,7 @@ bool D_LoadDehLump(int lumpnum) PatchSize = fileSystem.FileLength(lumpnum); - PatchName = fileSystem.GetFileFullPath(lumpnum); + PatchName = fileSystem.GetFileFullPath(lumpnum).c_str(); PatchFile = new char[PatchSize + 1]; fileSystem.ReadFile(lumpnum, PatchFile); PatchFile[PatchSize] = '\0'; // terminate with a '\0' character diff --git a/src/maploader/glnodes.cpp b/src/maploader/glnodes.cpp index 76f0de303..ff4492279 100644 --- a/src/maploader/glnodes.cpp +++ b/src/maploader/glnodes.cpp @@ -1001,7 +1001,7 @@ typedef TArray MemFile; static FString CreateCacheName(MapData *map, bool create) { FString path = M_GetCachePath(create); - FString lumpname = fileSystem.GetFileFullPath(map->lumpnum); + FString lumpname = fileSystem.GetFileFullPath(map->lumpnum).c_str(); auto separator = lumpname.IndexOf(':'); path << '/' << lumpname.Left(separator); if (create) CreatePath(path); diff --git a/src/scripting/decorate/thingdef_parse.cpp b/src/scripting/decorate/thingdef_parse.cpp index 8d49f7604..eb1cd5ee3 100644 --- a/src/scripting/decorate/thingdef_parse.cpp +++ b/src/scripting/decorate/thingdef_parse.cpp @@ -1129,7 +1129,7 @@ static PClassActor *ParseActorHeader(FScanner &sc, Baggage *bag) { PClassActor *info = CreateNewActor(sc, typeName, parentName); info->ActorInfo()->DoomEdNum = DoomEdNum > 0 ? DoomEdNum : -1; - info->SourceLumpName = fileSystem.GetFileFullPath(sc.LumpNum); + info->SourceLumpName = fileSystem.GetFileFullPath(sc.LumpNum).c_str(); if (!info->SetReplacement(replaceName)) { diff --git a/src/scripting/thingdef.cpp b/src/scripting/thingdef.cpp index d170096fb..6affab4c3 100644 --- a/src/scripting/thingdef.cpp +++ b/src/scripting/thingdef.cpp @@ -433,12 +433,12 @@ void ParseScripts() if (FScriptPosition::ErrorCounter > 0) { // Abort if the compiler produced any errors. Also do not compile further lumps, because they very likely miss some stuff. - I_Error("%d errors, %d warnings while compiling %s", FScriptPosition::ErrorCounter, FScriptPosition::WarnCounter, fileSystem.GetFileFullPath(lump).GetChars()); + I_Error("%d errors, %d warnings while compiling %s", FScriptPosition::ErrorCounter, FScriptPosition::WarnCounter, fileSystem.GetFileFullPath(lump).c_str()); } else if (FScriptPosition::WarnCounter > 0) { // If we got warnings, but no errors, print the information but continue. - Printf(TEXTCOLOR_ORANGE "%d warnings while compiling %s\n", FScriptPosition::WarnCounter, fileSystem.GetFileFullPath(lump).GetChars()); + Printf(TEXTCOLOR_ORANGE "%d warnings while compiling %s\n", FScriptPosition::WarnCounter, fileSystem.GetFileFullPath(lump).c_str()); } }