summaryrefslogtreecommitdiff
path: root/games-fps/gzdoom/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
commit2719f73b6813d11d13a9650cdd2ab8ec6e69385d (patch)
tree8c816148bcbd22757d892089c989ae614eae4f5a /games-fps/gzdoom/files
parent0f558761aa2dee1017b4751e4017205e015a9560 (diff)
gentoo resync : 09.07.2022
Diffstat (limited to 'games-fps/gzdoom/files')
-rw-r--r--games-fps/gzdoom/files/0001-Revert-load-the-hex-font-as-early-as-possible.patch129
1 files changed, 129 insertions, 0 deletions
diff --git a/games-fps/gzdoom/files/0001-Revert-load-the-hex-font-as-early-as-possible.patch b/games-fps/gzdoom/files/0001-Revert-load-the-hex-font-as-early-as-possible.patch
new file mode 100644
index 000000000000..58a2f7a2b2f4
--- /dev/null
+++ b/games-fps/gzdoom/files/0001-Revert-load-the-hex-font-as-early-as-possible.patch
@@ -0,0 +1,129 @@
+From 2d00bc6b9f25ae045eecba6e198eaceee9046647 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Wed, 6 Jul 2022 23:37:30 +0100
+Subject: [PATCH] Revert "- load the hex font as early as possible."
+
+This reverts commit 010f41a3aad3719b1e5d4d8ce157a5d9b0077b44.
+
+Bug: https://github.com/coelckers/gzdoom/issues/1615
+---
+ src/common/fonts/hexfont.cpp | 24 +++++++-----------------
+ src/d_main.cpp | 17 +++++++----------
+ 2 files changed, 14 insertions(+), 27 deletions(-)
+
+diff --git a/src/common/fonts/hexfont.cpp b/src/common/fonts/hexfont.cpp
+index 8b50427f4..e2bdbff7a 100644
+--- a/src/common/fonts/hexfont.cpp
++++ b/src/common/fonts/hexfont.cpp
+@@ -58,12 +58,11 @@ struct HexDataSource
+ //
+ //==========================================================================
+
+- void ParseDefinition(FResourceLump* font)
++ void ParseDefinition(int lumpnum)
+ {
+ FScanner sc;
+
+- auto data = font->Lock();
+- sc.OpenMem("newconsolefont.hex", (const char*)data, font->Size());
++ sc.OpenLumpNum(lumpnum);
+ sc.SetCMode(true);
+ glyphdata.Push(0); // ensure that index 0 can be used as 'not present'.
+ while (sc.GetString())
+@@ -97,7 +96,6 @@ struct HexDataSource
+ lumb = i * 255 / 17;
+ SmallPal[i] = PalEntry(255, lumb, lumb, lumb);
+ }
+- font->Unlock();
+ }
+ };
+
+@@ -402,7 +400,7 @@ public:
+
+ FFont *CreateHexLumpFont (const char *fontname, int lump)
+ {
+- assert(hexdata.FirstChar != INT_MAX);
++ if (hexdata.FirstChar == INT_MAX) hexdata.ParseDefinition(lump);
+ return new FHexFont(fontname, lump);
+ }
+
+@@ -414,7 +412,7 @@ FFont *CreateHexLumpFont (const char *fontname, int lump)
+
+ FFont *CreateHexLumpFont2(const char *fontname, int lump)
+ {
+- assert(hexdata.FirstChar != INT_MAX);
++ if (hexdata.FirstChar == INT_MAX) hexdata.ParseDefinition(lump);
+ return new FHexFont2(fontname, lump);
+ }
+
+@@ -426,7 +424,8 @@ FFont *CreateHexLumpFont2(const char *fontname, int lump)
+
+ uint8_t* GetHexChar(int codepoint)
+ {
+- assert(hexdata.FirstChar != INT_MAX);
++ auto lump = fileSystem.CheckNumForFullName("newconsolefont.hex", 0); // This is always loaded from gzdoom.pk3 to prevent overriding it with incomplete replacements.
++ if (hexdata.FirstChar == INT_MAX) hexdata.ParseDefinition(lump);
+
+ if (hexdata.glyphmap[codepoint] > 0)
+ {
+@@ -434,13 +433,4 @@ uint8_t* GetHexChar(int codepoint)
+ return &hexdata.glyphdata[offset];
+ }
+ return nullptr;
+-}
+-
+-void LoadHexFont(const char* filename)
+-{
+- auto resf = FResourceFile::OpenResourceFile(filename);
+- if (resf == nullptr) I_FatalError("Unable to open %s", filename);
+- auto hexfont = resf->FindLump("newconsolefont.hex");
+- if (hexfont == nullptr) I_FatalError("Unable to find newconsolefont.hex in %s", filename);
+- hexdata.ParseDefinition(hexfont);
+-}
++}
+\ No newline at end of file
+diff --git a/src/d_main.cpp b/src/d_main.cpp
+index b64142c07..d61807012 100644
+--- a/src/d_main.cpp
++++ b/src/d_main.cpp
+@@ -175,7 +175,6 @@ void FreeSBarInfoScript();
+ void I_UpdateWindowTitle();
+ void S_ParseMusInfo();
+ void D_GrabCVarDefaults();
+-void LoadHexFont(const char* filename);
+
+ // PRIVATE FUNCTION PROTOTYPES ---------------------------------------------
+
+@@ -3535,15 +3534,6 @@ static int D_DoomMain_Internal (void)
+ std::set_new_handler(NewFailure);
+ const char *batchout = Args->CheckValue("-errorlog");
+
+- // [RH] Make sure zdoom.pk3 is always loaded,
+- // as it contains magic stuff we need.
+- wad = BaseFileSearch(BASEWAD, NULL, true, GameConfig);
+- if (wad == NULL)
+- {
+- I_FatalError("Cannot find " BASEWAD);
+- }
+- LoadHexFont(wad); // load hex font early so we have it during startup.
+-
+ C_InitConsole(80*8, 25*8, false);
+ I_DetectOS();
+
+@@ -3573,6 +3563,13 @@ static int D_DoomMain_Internal (void)
+ extern void D_ConfirmSendStats();
+ D_ConfirmSendStats();
+
++ // [RH] Make sure zdoom.pk3 is always loaded,
++ // as it contains magic stuff we need.
++ wad = BaseFileSearch (BASEWAD, NULL, true, GameConfig);
++ if (wad == NULL)
++ {
++ I_FatalError ("Cannot find " BASEWAD);
++ }
+ FString basewad = wad;
+
+ FString optionalwad = BaseFileSearch(OPTIONALWAD, NULL, true, GameConfig);
+--
+2.35.1
+