From f63d4d8a12040fa1780a9ba6cc3ec94625ad43aa Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 2 Oct 2022 16:54:43 +0200 Subject: [PATCH] - handle Build tiles via explicit callback to the init function. --- src/common/textures/texturemanager.cpp | 7 +++---- src/common/textures/texturemanager.h | 2 +- src/d_main.cpp | 3 ++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/common/textures/texturemanager.cpp b/src/common/textures/texturemanager.cpp index cc070bcd6..654519d0f 100644 --- a/src/common/textures/texturemanager.cpp +++ b/src/common/textures/texturemanager.cpp @@ -1183,7 +1183,6 @@ void FTextureManager::AddLocalizedVariants() // //========================================================================== FGameTexture *CreateShaderTexture(bool, bool); -void InitBuildTiles(); FImageSource* CreateEmptyTexture(); void FTextureManager::Init() @@ -1213,7 +1212,7 @@ void FTextureManager::Init() AddGameTexture(mt); } -void FTextureManager::AddTextures(void (*progressFunc_)(), void (*checkForHacks)(BuildInfo&)) +void FTextureManager::AddTextures(void (*progressFunc_)(), void (*checkForHacks)(BuildInfo&), void (*customtexturehandler)()) { progressFunc = progressFunc_; //if (BuildTileFiles.Size() == 0) CountBuildTiles (); @@ -1229,9 +1228,9 @@ void FTextureManager::AddTextures(void (*progressFunc_)(), void (*checkForHacks) build.ResolveAllPatches(); // Add one marker so that the last WAD is easier to handle and treat - // Build tiles as a completely separate block. + // custom textures as a completely separate block. FirstTextureForFile.Push(Textures.Size()); - InitBuildTiles (); + if (customtexturehandler) customtexturehandler(); FirstTextureForFile.Push(Textures.Size()); DefaultTexture = CheckForTexture ("-NOFLAT-", ETextureType::Override, 0); diff --git a/src/common/textures/texturemanager.h b/src/common/textures/texturemanager.h index 03212ddf5..bed10e659 100644 --- a/src/common/textures/texturemanager.h +++ b/src/common/textures/texturemanager.h @@ -124,7 +124,7 @@ public: void LoadTextureX(int wadnum, FMultipatchTextureBuilder &build); void AddTexturesForWad(int wadnum, FMultipatchTextureBuilder &build); void Init(); - void AddTextures(void (*progressFunc_)(), void (*checkForHacks)(BuildInfo&)); + void AddTextures(void (*progressFunc_)(), void (*checkForHacks)(BuildInfo&), void (*customtexturehandler)() = nullptr); void DeleteAll(); void ReplaceTexture (FTextureID picnum, FGameTexture *newtexture, bool free); diff --git a/src/d_main.cpp b/src/d_main.cpp index aabea4fe4..96e542df0 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -176,6 +176,7 @@ void I_UpdateWindowTitle(); void S_ParseMusInfo(); void D_GrabCVarDefaults(); void LoadHexFont(const char* filename); +void InitBuildTiles(); // PRIVATE FUNCTION PROTOTYPES --------------------------------------------- @@ -3211,7 +3212,7 @@ static int D_InitGame(const FIWADInfo* iwad_info, TArray& allwads, TArr { StartWindow->Progress(); if (StartScreen) StartScreen->Progress(1); - }, CheckForHacks); + }, CheckForHacks, InitBuildTiles); PatchTextures(); TexAnim.Init(); C_InitConback(TexMan.CheckForTexture(gameinfo.BorderFlat, ETextureType::Flat), true, 0.25);