diff --git a/src/compatibility.cpp b/src/compatibility.cpp index e7121da8b..ae3b905d0 100644 --- a/src/compatibility.cpp +++ b/src/compatibility.cpp @@ -555,7 +555,14 @@ void SetCompatibilityParams() if ((unsigned)CompatParams[i + 1] < (unsigned)numsectors) { // this assumes that the sector does not have any tags yet! - tagManager.AddSectorTag(CompatParams[i + 1], CompatParams[i + 2]); + if (CompatParams[i + 2] == 0) + { + tagManager.RemoveSectorTags(CompatParams[i + 1]); + } + else + { + tagManager.AddSectorTag(CompatParams[i + 1], CompatParams[i + 2]); + } } i += 3; break; diff --git a/wadsrc/static/compatibility.txt b/wadsrc/static/compatibility.txt index d796db843..61d13b6df 100644 --- a/wadsrc/static/compatibility.txt +++ b/wadsrc/static/compatibility.txt @@ -53,7 +53,11 @@ A80E7EE40E0D0C76A6FBD242BE29FE27 // map15 5C594C67CF7721005DE71429F9811370 // Eternal Doom map03 { - stairs + // fix broken staircase. The compatibility option is not sufficient + // to reliably handle this so clear the tags from the unwanted sectors. + setsectortag 212 0 + setsectortag 213 0 + setsectortag 214 0 } 6DA6FCBA8089161BDEC6A1D3F6C8D60F // Eternal Doom MAP25