diff --git a/src/compatibility.cpp b/src/compatibility.cpp index 752c91143c..012ebd2e31 100644 --- a/src/compatibility.cpp +++ b/src/compatibility.cpp @@ -51,6 +51,7 @@ #include "textures.h" #include "g_levellocals.h" #include "vm.h" +#include "actor.h" // MACROS ------------------------------------------------------------------ @@ -449,6 +450,13 @@ DEFINE_ACTION_FUNCTION(DLevelCompatibility, SetLineSectorRef) return 0; } +DEFINE_ACTION_FUNCTION(DLevelCompatibility, GetDefaultActor) +{ + PARAM_PROLOGUE; + PARAM_NAME(actorclass); + ACTION_RETURN_OBJECT(GetDefaultByName(actorclass)); +} + //========================================================================== // diff --git a/wadsrc/static/zscript/level_compatibility.txt b/wadsrc/static/zscript/level_compatibility.txt index fd62fbe37c..ce5c0f6b6a 100644 --- a/wadsrc/static/zscript/level_compatibility.txt +++ b/wadsrc/static/zscript/level_compatibility.txt @@ -689,6 +689,13 @@ class LevelCompatibility play SetThingSkills(115, 31); break; } + + case 'CCF699953746087E46185B2A40D9F8AF': // satanx.wad map01 + { + // Restore monster cross flag for DeHackEd friendly marine + GetDefaultActor('WolfensteinSS').bActivateMCross = true; + break; + } } } @@ -701,6 +708,7 @@ class LevelCompatibility play private static native void SetThingFlags(int thing, int flags); private static native void SetVertex(uint vertex, double x, double y); private static native void SetLineSectorRef(uint line, uint side, uint sector); + private static native Actor GetDefaultActor(Name actorclass); private static void SetWallTexture(int line, int side, int texpart, String texture) {