- Replace 0001-Revert-load-the-hex-font-as-early-as-possible.patch

by better fix, 0001-fix-gzdoom.pk3-not-found-error.patch .

OBS-URL: https://build.opensuse.org/package/show/games/gzdoom?expand=0&rev=81
This commit is contained in:
Jan Engelhardt 2022-07-24 07:43:33 +00:00 committed by Git OBS Bridge
parent c83e46aad7
commit 2a3ed9c05c
4 changed files with 43 additions and 129 deletions

View File

@ -1,128 +0,0 @@
From e5d7224171927f5a724128ffef7004daae6dd5c8 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Thu, 23 Jun 2022 23:41:18 +0200
Subject: [PATCH] Revert "- load the hex font as early as possible."
References: https://github.com/coelckers/gzdoom/issues/1615
This reverts commit 010f41a3aad3719b1e5d4d8ce157a5d9b0077b44.
---
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 e658d74a3..9b5f9cabe 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 ---------------------------------------------
@@ -3533,15 +3532,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();
@@ -3571,6 +3561,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.36.1

View File

@ -0,0 +1,36 @@
From 0f0b4b7620557410e4969cec6119a7771b8acf35 Mon Sep 17 00:00:00 2001
From: Omar Polo <op@omarpolo.com>
Date: Mon, 11 Jul 2022 11:52:43 +0200
Subject: [PATCH] fix gzdoom.pk3 not found error
Move the initialization before BaseFileSearch is called, otherwise
GameConfig is used not initialized and it doesn't find the gzdoom.pk3
file.
GameConfig used uninitalized was spotted by @LoneFox78.
---
src/d_main.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: gzdoom-g4.8.2/src/d_main.cpp
===================================================================
--- gzdoom-g4.8.2.orig/src/d_main.cpp
+++ gzdoom-g4.8.2/src/d_main.cpp
@@ -3534,6 +3534,8 @@ static int D_DoomMain_Internal (void)
std::set_new_handler(NewFailure);
const char *batchout = Args->CheckValue("-errorlog");
+
+ D_DoomInit();
// [RH] Make sure zdoom.pk3 is always loaded,
// as it contains magic stuff we need.
@@ -3568,8 +3570,6 @@ static int D_DoomMain_Internal (void)
if (!batchrun) Printf(PRINT_LOG, "%s version %s\n", GAMENAME, GetVersionString());
- D_DoomInit();
-
extern void D_ConfirmSendStats();
D_ConfirmSendStats();

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Sun Jul 24 07:43:09 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Replace 0001-Revert-load-the-hex-font-as-early-as-possible.patch
by better fix, 0001-fix-gzdoom.pk3-not-found-error.patch .
-------------------------------------------------------------------
Sun Jul 10 08:32:53 UTC 2022 - Jan Engelhardt <jengelh@inai.de>

View File

@ -32,7 +32,7 @@ Patch3: gzdoom-asmjit.patch
Patch4: gzdoom-sdlbug.patch
Patch5: gzdoom-vulkan.patch
Patch6: gzdoom-discord.patch
Patch8: 0001-Revert-load-the-hex-font-as-early-as-possible.patch
Patch8: 0001-fix-gzdoom.pk3-not-found-error.patch
Patch9: 0001-Revert-use-static_assert-to-make-32-bit-builds-fail.patch
BuildRequires: cmake >= 2.8.7
BuildRequires: discord-rpc-devel