From 6631f208b17e5f0c1b461c9bc6d43c77d29657fd Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Wed, 11 Apr 2018 17:01:57 +0300 Subject: [PATCH] Scriptified remaining compatibility entries --- src/compatibility.cpp | 19 +++++++ wadsrc/static/compatibility.txt | 55 ++----------------- wadsrc/static/zscript/level_compatibility.txt | 40 +++++++++++++- 3 files changed, 62 insertions(+), 52 deletions(-) diff --git a/src/compatibility.cpp b/src/compatibility.cpp index d77f2dafa..576154dc0 100644 --- a/src/compatibility.cpp +++ b/src/compatibility.cpp @@ -856,6 +856,25 @@ DEFINE_ACTION_FUNCTION(DLevelCompatibility, SetVertex) return 0; } +DEFINE_ACTION_FUNCTION(DLevelCompatibility, SetLineSectorRef) +{ + PARAM_PROLOGUE; + PARAM_UINT(lineidx); + PARAM_UINT(sideidx); + PARAM_UINT(sectoridx); + + if ( sideidx < 2 + && lineidx < level.lines.Size() + && sectoridx < level.sectors.Size()) + { + if (side_t *side = level.lines[lineidx].sidedef[sideidx]) + { + side->sector = &level.sectors[sectoridx]; + } + } + return 0; +} + //========================================================================== // diff --git a/wadsrc/static/compatibility.txt b/wadsrc/static/compatibility.txt index b923d263f..69de0fa9b 100644 --- a/wadsrc/static/compatibility.txt +++ b/wadsrc/static/compatibility.txt @@ -244,6 +244,11 @@ DC96228097DD004C40CCB1DB14A91EAA // unloved.pk3:unlovedmaps.wad map05 clipmidtex } +6DC9F6CCEAE7A91AEC48EBE506F22BC4 // void.wad MAP01 +{ + setslopeoverflow + polyobj +} @@ -260,53 +265,3 @@ DC96228097DD004C40CCB1DB14A91EAA // unloved.pk3:unlovedmaps.wad map05 setsectortag 910 32002 setlinespecial 2410 Sector_Set3DFloor 32002 4 1 0 0 } - - - - - -FCCA97FC851F6473EAA069F74247B317 // pg-raw.wad map31 -{ - setlinesectorref 331 front 74 - setlinesectorref 326 front 74 - setlinesectorref 497 front 74 - setlinesectorref 474 front 74 - setlinesectorref 471 front 74 - setlinesectorref 327 front 74 - setlinesectorref 328 front 74 - setlinesectorref 329 front 74 - setsectortag 74 4 - setlinespecial 357 Transfer_Heights 4 2 0 0 0 -} - -6DC9F6CCEAE7A91AEC48EBE506F22BC4 // void.wad MAP01 -{ - // Slightly squash the pillars in the starting room with "stimpacks" - // floating on them so that they can be obtained. - setsectoroffset 62 floor -8 - setwallyscale 286 front bot 1.090909 - setwallyscale 287 front bot 1.090909 - setwallyscale 288 front bot 1.090909 - setwallyscale 289 front bot 1.090909 - - setsectoroffset 63 floor -8 - setwallyscale 290 front bot 1.090909 - setwallyscale 291 front bot 1.090909 - setwallyscale 292 front bot 1.090909 - setwallyscale 293 front bot 1.090909 - - setsectoroffset 118 floor -8 - setwallyscale 710 front bot 1.090909 - setwallyscale 711 front bot 1.090909 - setwallyscale 712 front bot 1.090909 - setwallyscale 713 front bot 1.090909 - - setsectoroffset 119 floor -8 - setwallyscale 714 front bot 1.090909 - setwallyscale 715 front bot 1.090909 - setwallyscale 716 front bot 1.090909 - setwallyscale 717 front bot 1.090909 - - setslopeoverflow - polyobj -} diff --git a/wadsrc/static/zscript/level_compatibility.txt b/wadsrc/static/zscript/level_compatibility.txt index df01ebc96..acfbfda69 100644 --- a/wadsrc/static/zscript/level_compatibility.txt +++ b/wadsrc/static/zscript/level_compatibility.txt @@ -440,7 +440,7 @@ class LevelCompatibility play OffsetSectorPlane(284, Sector.floor, -8); OffsetSectorPlane(284, Sector.ceiling, -8); // Missing textures - SetWallTexture(490, Line.back, Side.bottom, "GRSTNPB"); + SetWallTexture(490, Line.back, Side.bottom, "GRSTNPB"); TextureID woodwl = TexMan.CheckForTexture("WOODWL", TexMan.Type_Wall); SetWallTextureID( 722, Line.front, Side.bottom, woodwl); SetWallTextureID( 911, Line.front, Side.bottom, woodwl); @@ -528,7 +528,7 @@ class LevelCompatibility play case '9D50EBE17CEC78938C7A668DB0768611': // Strain map07 { // Make the exit accessible - SetLineFlags(1021, 0, 1); + SetLineFlags(1021, 0, Line.ML_BLOCKING); break; } @@ -543,6 +543,36 @@ class LevelCompatibility play SetThingZ(404, 168); break; } + + case '6DC9F6CCEAE7A91AEC48EBE506F22BC4': // void.wad MAP01 + { + // Slightly squash the pillars in the starting room with "stimpacks" + // floating on them so that they can be obtained. + OffsetSectorPlane( 62, Sector.floor, -8); + OffsetSectorPlane( 63, Sector.floor, -8); + OffsetSectorPlane(118, Sector.floor, -8); + OffsetSectorPlane(119, Sector.floor, -8); + for (int i = 0; i < 8; ++i) + { + SetWallYScale(286 + i, Line.front, Side.bottom, 1.090909); + SetWallYScale(710 + i, Line.front, Side.bottom, 1.090909); + } + break; + } + + case 'FCCA97FC851F6473EAA069F74247B317': // pg-raw.wad map31 + { + SetLineSectorRef(331, Line.front, 74); + SetLineSectorRef(326, Line.front, 74); + SetLineSectorRef(497, Line.front, 74); + SetLineSectorRef(474, Line.front, 74); + SetLineSectorRef(471, Line.front, 74); + SetLineSectorRef(327, Line.front, 74); + SetLineSectorRef(328, Line.front, 74); + SetLineSectorRef(329, Line.front, 74); + AddSectorTag(74, 4); + SetLineSpecial(357, Transfer_Heights, 4, 2); + } } } @@ -553,6 +583,7 @@ class LevelCompatibility play private static native void SetThingZ(int thing, double z); 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 void SetWallTexture(int line, int side, int texpart, String texture) { @@ -608,4 +639,9 @@ class LevelCompatibility play { level.sectors[sectornum].SetLightLevel(newval); } + + private static void SetWallYScale(int line, int side, int texpart, double scale) + { + level.lines[line].sidedef[side].SetTextureYScale(texpart, 1.090909); + } }