diff --git a/source/core/maphack.cpp b/source/core/maphack.cpp index 82187a799..e2749c281 100644 --- a/source/core/maphack.cpp +++ b/source/core/maphack.cpp @@ -360,6 +360,8 @@ static int32_t LoadMapHack(const char *filename) void G_LoadMapHack(const char* filename, const unsigned char* md4) { + hw_ClearSplitSector(); + for (auto& p : blockingpairs) p.Clear(); FString internal = "engine/compatibility/"; for (int j = 0; j < 16; ++j) diff --git a/source/core/rendering/hw_sections.cpp b/source/core/rendering/hw_sections.cpp index df1ee526b..179e39fcd 100644 --- a/source/core/rendering/hw_sections.cpp +++ b/source/core/rendering/hw_sections.cpp @@ -219,3 +219,8 @@ void hw_SetSplitSector(int sectnum, int start, int end) splits.Push(start); splits.Push(end); } + +void hw_ClearSplitSector() +{ + splits.Clear(); +} diff --git a/source/core/rendering/hw_sections.h b/source/core/rendering/hw_sections.h index 645d0e6e6..4a8b73f0d 100644 --- a/source/core/rendering/hw_sections.h +++ b/source/core/rendering/hw_sections.h @@ -30,3 +30,4 @@ extern int numsectionlines; void hw_BuildSections(); void hw_SetSplitSector(int sector, int startpos, int endpos); +void hw_ClearSplitSector(); diff --git a/wadsrc/static/engine/compatibility/5e49c7f6c496e337d59d0c072ed1879b.mhk b/wadsrc/static/engine/compatibility/5e49c7f6c496e337d59d0c072ed1879b.mhk new file mode 100644 index 000000000..f50cd8af8 --- /dev/null +++ b/wadsrc/static/engine/compatibility/5e49c7f6c496e337d59d0c072ed1879b.mhk @@ -0,0 +1,3 @@ +// SW $bath.ap sector bleeds into another area. +sector 198 split 1105 1125 +