diff --git a/src/compatibility.cpp b/src/compatibility.cpp index f145b5ad9..839d60dc5 100644 --- a/src/compatibility.cpp +++ b/src/compatibility.cpp @@ -102,6 +102,7 @@ static FCompatOption Options[] = { "resetplayerspeed", BCOMPATF_RESETPLAYERSPEED, SLOT_BCOMPAT }, { "vileghosts", BCOMPATF_VILEGHOSTS, SLOT_BCOMPAT }, { "ignoreteleporttags", BCOMPATF_BADTELEPORTERS, SLOT_BCOMPAT }, + { "rebuildnodes", BCOMPATF_REBUILDNODES, SLOT_BCOMPAT }, // list copied from g_mapinfo.cpp { "shorttex", COMPATF_SHORTTEX, SLOT_COMPAT }, diff --git a/src/doomdef.h b/src/doomdef.h index f7e6c959e..3a3c31e6a 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -348,6 +348,7 @@ enum BCOMPATF_VILEGHOSTS = 1 << 2, // Monsters' radius and height aren't restored properly when resurrected. BCOMPATF_BADTELEPORTERS = 1 << 3, // Ignore tags on Teleport specials BCOMPATF_BADPORTALS = 1 << 4, // Restores the old unstable portal behavior + BCOMPATF_REBUILDNODES = 1 << 5, // Force node rebuild }; // phares 3/20/98: diff --git a/src/p_setup.cpp b/src/p_setup.cpp index ee596a74c..4cd337ca5 100644 --- a/src/p_setup.cpp +++ b/src/p_setup.cpp @@ -3607,6 +3607,10 @@ void P_SetupLevel (char *lumpname, int position) level.maptype = MAPTYPE_UDMF; } CheckCompatibility(map); + if (ib_compatflags & BCOMPATF_REBUILDNODES) + { + ForceNodeBuild = true; + } T_LoadScripts(map); if (!map->HasBehavior || map->isText) diff --git a/wadsrc/static/compatibility.txt b/wadsrc/static/compatibility.txt index f381155bd..c6c682f21 100644 --- a/wadsrc/static/compatibility.txt +++ b/wadsrc/static/compatibility.txt @@ -330,3 +330,8 @@ F481922F4881F74760F3C0437FD5EDD0 // map03 setwallyscale 716 front bot 1.090909 setwallyscale 717 front bot 1.090909 } + +65A1EB4C87386F290816660A52932FF1 // Master Levels, garrison.wad +{ + rebuildnodes +}