From 99c76a3ff5b1a094593b52b0e9b22b300bde77b4 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 16 Jun 2023 21:53:42 +0200 Subject: [PATCH] - BCOMPATF_NOSECTIONMERGE is not safe for the self referencing sector hacks in the Final doom IWADs. --- src/maploader/compatibility.cpp | 3 +-- wadsrc_extra/static/iwadinfo.txt | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/maploader/compatibility.cpp b/src/maploader/compatibility.cpp index 2a0fa07491..1d135132dd 100644 --- a/src/maploader/compatibility.cpp +++ b/src/maploader/compatibility.cpp @@ -292,12 +292,11 @@ FName MapLoader::CheckCompatibility(MapData *map) Level->ib_compatflags = 0; // When playing Doom IWAD levels force BCOMPATF_NOSECTIONMERGE, COMPAT_SHORTTEX and COMPATF_LIGHT. - // I'm not sure if the IWAD maps actually need COMPATF_LIGHT but it certainly does not hurt. BCOMPATF_NOSECTIONMERGE is mainly for MAP18's sector 0 + // I'm not sure if the IWAD maps actually need COMPATF_LIGHT but it certainly does not hurt. // TNT's MAP31 also needs COMPATF_STAIRINDEX but that only gets activated for TNT.WAD. if (fileSystem.GetFileContainer(map->lumpnum) == fileSystem.GetIwadNum() && (gameinfo.flags & GI_COMPATSHORTTEX) && Level->maptype == MAPTYPE_DOOM) { Level->ii_compatflags = COMPATF_SHORTTEX|COMPATF_LIGHT; - Level->ib_compatflags = BCOMPATF_NOSECTIONMERGE; if (gameinfo.flags & GI_COMPATSTAIRS) Level->ii_compatflags |= COMPATF_STAIRINDEX; } diff --git a/wadsrc_extra/static/iwadinfo.txt b/wadsrc_extra/static/iwadinfo.txt index a1c419d4e0..11387e29c1 100644 --- a/wadsrc_extra/static/iwadinfo.txt +++ b/wadsrc_extra/static/iwadinfo.txt @@ -326,7 +326,7 @@ IWad Config = "Doom" IWADName = "doom.wad", 2 Mapinfo = "mapinfo/ultdoom.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "E1M1","E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9", "E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9", "DPHOOF","BFGGA0","HEADA1","CYBRA1","SPIDA1D1", "E4M2", @@ -343,7 +343,7 @@ IWad Config = "Doom" IWADName = "doomunity.wad", 2 Mapinfo = "mapinfo/ultdoom.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "E1M1","E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9", "E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9", "DPHOOF","BFGGA0","HEADA1","CYBRA1","SPIDA1D1", "E4M2", @@ -375,7 +375,7 @@ IWad Config = "Doom" IWADName = "doom.wad" Mapinfo = "mapinfo/doomxbox.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "E1M1","E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9", "E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9", "DPHOOF","BFGGA0","HEADA1","CYBRA1","SPIDA1D1", "E4M2", "E1M10", "SEWERS" @@ -391,7 +391,7 @@ IWad Config = "Doom" IWADName = "doom.wad" Mapinfo = "mapinfo/ultdoom.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "E1M1","E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9", "E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9", "DPHOOF","BFGGA0","HEADA1","CYBRA1","SPIDA1D1", "E4M2" @@ -407,7 +407,7 @@ IWad Config = "Doom" IWADName = "doom.wad", 1 Mapinfo = "mapinfo/doom1.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "E1M1","E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9", "E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9", "DPHOOF","BFGGA0","HEADA1","CYBRA1","SPIDA1D1" @@ -422,7 +422,7 @@ IWad Game = "Doom" Config = "Doom" Mapinfo = "mapinfo/doom1.txt" - Compatibility = "Shareware", "Shorttex" + Compatibility = "Shareware", "Shorttex", "nosectionmerge" MustContain = "E1M1" BannerColors = "54 54 54", "a8 a8 a8" IgnoreTitlePatches = 1 @@ -492,7 +492,7 @@ IWad Config = "Doom" IWADName = "doom2.wad" Mapinfo = "mapinfo/doom2bfg.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "MAP01", "DMENUPIC", "M_ACPT", "M_CAN", "M_EXITO", "M_CHG" BannerColors = "a8 00 00", "a8 a8 a8" Load = "nerve.wad" @@ -507,7 +507,7 @@ IWad Config = "Doom" IWADName = "doom2unity.wad" Mapinfo = "mapinfo/doom2unity.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "MAP01", "DMENUPIC" BannerColors = "00 7c 00", "a8 a8 a8" IgnoreTitlePatches = 1 @@ -522,7 +522,7 @@ IWad Config = "Doom" IWADName = "doom2.wad", 1 Mapinfo = "mapinfo/doom2xbox.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "MAP01", "MAP33", "CWILV32" BannerColors = "18 18 18", "a8 a8 a8" IgnoreTitlePatches = 1 @@ -538,7 +538,7 @@ IWad Config = "Doom" IWADName = "doom2f.wad", 1 Mapinfo = "mapinfo/doom2.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "MAP01", "WIOBJ" BannerColors = "ff ff ff", "a8 00 00" } @@ -552,7 +552,7 @@ IWad Config = "Doom" IWADName = "doom2.wad", 1 Mapinfo = "mapinfo/doom2.txt" - Compatibility = "Shorttex" + Compatibility = "Shorttex", "nosectionmerge" MustContain = "MAP01" BannerColors = "a8 00 00", "a8 a8 a8" IgnoreTitlePatches = 1