diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index 6f33c718e..e30cf9e28 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -133,6 +133,7 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize, { sc.MustGetString(); if(sc.Compare("NoTextcolor")) iwad->flags |= GI_NOTEXTCOLOR; + else if (sc.Compare("NoBigFont")) iwad->flags |= GI_IGNOREBIGFONTLUMP; else if(sc.Compare("Poly1")) iwad->flags |= GI_COMPATPOLY1; else if(sc.Compare("Poly2")) iwad->flags |= GI_COMPATPOLY2; else if(sc.Compare("Shareware")) iwad->flags |= GI_SHAREWARE; diff --git a/src/gamedata/gi.h b/src/gamedata/gi.h index c9ffa40f8..b5572da73 100644 --- a/src/gamedata/gi.h +++ b/src/gamedata/gi.h @@ -50,6 +50,7 @@ enum GI_COMPATPOLY2 = 0x00000080, // so does HEXDD's MAP47 GI_NOTEXTCOLOR = 0x00000100, // Chex Quest 3 would have everything green GI_IGNORETITLEPATCHES = 0x00000200, // Ignore the map name graphics when not runnning in English language + GI_IGNOREBIGFONTLUMP = 0x00000400, // Needed for Chex Quest 3, so that the extended internal font can be used instead. }; #include "gametype.h" diff --git a/src/gamedata/w_wad.cpp b/src/gamedata/w_wad.cpp index 40af891ca..1d5dfe444 100644 --- a/src/gamedata/w_wad.cpp +++ b/src/gamedata/w_wad.cpp @@ -897,6 +897,15 @@ void FWadCollection::RenameSprites () // Rename the game specific big font lumps so that the font manager does not have to do problematic special checks for them. if (!strcmp(LumpInfo[i].lump->Name, altbigfont)) strcpy(LumpInfo[i].lump->Name, "BIGFONT"); + + if (LumpInfo[i].wadnum == GetIwadNum() && gameinfo.flags & GI_IGNOREBIGFONTLUMP) + { + if (!strcmp(LumpInfo[i].lump->Name, "BIGFONT")) + { + LumpInfo[i].lump->Name[0] = 0; + } + } + } } } diff --git a/src/rendering/hwrenderer/scene/hw_walls.cpp b/src/rendering/hwrenderer/scene/hw_walls.cpp index 91ec1a5f8..000360888 100644 --- a/src/rendering/hwrenderer/scene/hw_walls.cpp +++ b/src/rendering/hwrenderer/scene/hw_walls.cpp @@ -489,6 +489,7 @@ void GLWall::PutPortal(HWDrawInfo *di, int ptype, int plane) { auto pstate = screen->mPortalState; HWPortal * portal = nullptr; + return; MakeVertices(di, false); switch (ptype) diff --git a/wadsrc/static/iwadinfo.txt b/wadsrc/static/iwadinfo.txt index c75fc166d..f4320d707 100644 --- a/wadsrc/static/iwadinfo.txt +++ b/wadsrc/static/iwadinfo.txt @@ -104,7 +104,7 @@ IWad Config = "Chex" IWADName = "chex3.wad" Mapinfo = "mapinfo/chex.txt" - Compatibility = "NoTextcolor" + Compatibility = "NoTextcolor", "IgnoreBigFontLump" MustContain = "E1M1", "CYCLA1", "FLMBA1", "MAPINFO" BannerColors = "ff ff 00", "00 c0 00" }