From 6fac78c94fbef6bba6e0963164616042fb1774d8 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sat, 16 Oct 2021 14:48:42 +0200 Subject: [PATCH] =?UTF-8?q?The=20crimes=E2=84=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/swwmcomp.o | Bin 1048 -> 1112 bytes language.version | 4 +- swwmcomp.acs | 12 ++- zscript/compat/swwm_compat.zsc | 138 +++++++++++++++++++++++++++++++++ 4 files changed, 150 insertions(+), 4 deletions(-) diff --git a/acs/swwmcomp.o b/acs/swwmcomp.o index 4ffd4cc4a8a6c9dbd32cbc9235c41b78899a8d54..e7af79370e988042abf4e967fd3a8ac49e499691 100644 GIT binary patch delta 326 zcmbQiaf5@^(K(nQU?QuL62}M0&P*OYTFNIR=J^Q_6W zj1m(+tEo9LLbNiXYfWQhU@)1(2-X@f*`CpqF@AC>V=@yT)8t!>PW2893=IGOGca&4 zFfjc4&%mI}z`*eLKLZ2EeSiKlFh(&jF#P_{z)-@#!0_uo1H%jk28N&i85m3$85n;2 zXJFuGVqggNbMyr{9b|?I0|SE*0|SF20|P@K0|P?}0|P@T0|P?~0|Ub(1_lNXkDz#` pAV*KXa7P~>2EWPuOnj^^p1uJ-n! delta 200 zcmcb?F@uBE(K(nwU?Qv0#ApY`nu&8Hco#4*Fqm9pU|`T=FzK3j(3Eo~0|UcyR&(ZA zlNT~dOcrNUW0ae0$0)(;#K^#4Qo#sTs53d4(Uj48@=V5LrdN!U|1ml-T1<9i67ym- zV_;zT^PhnsfPsPG_kRY45(Wl_U;h~x1Q;0@e*R}*c+JSb5bWpZ+rz-Xz|O$Hpa8a+ ofx(smq9>7ofuVqbfuU~lS|)|fcbT#o1tgdl7#y90QyHKD0GaJ7*#H0l diff --git a/language.version b/language.version index 8d7c07893..c4330c12b 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r32 \cu(Sat 16 Oct 12:47:27 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.2pre r32 \cu(2021-10-16 12:47:27)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r32 \cu(Sat 16 Oct 14:48:42 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.2pre r32 \cu(2021-10-16 14:48:42)\c-"; diff --git a/swwmcomp.acs b/swwmcomp.acs index d9343e7d6..2e7e67242 100644 --- a/swwmcomp.acs +++ b/swwmcomp.acs @@ -16,6 +16,14 @@ SCRIPT "NERVE_EXITOPEN" ( void ) Ceiling_RaiseByValue(24,8,80); } +SCRIPT "DIMPLE_EXITOPEN" ( void ) +{ + while ( GetLevelInfo(LEVELINFO_KILLED_MONSTERS) < GetLevelInfo(LEVELINFO_TOTAL_MONSTERS) ) + Delay(35); + Delay(35); + Floor_RaiseByValue(669,8,72); +} + SCRIPT "EQUINOX_BRAINCRUSH" ( int tag ) { ScriptCall("SWWMUtility","SpawnVanillaBossBrain",666); @@ -25,8 +33,8 @@ SCRIPT "EQUINOX_BRAINCRUSH" ( int tag ) SCRIPT "DVACATION_UNFUCK" ( void ) { Delay(1); - SetLineSpecial(2,226,StrArg("DVACATION_EXIT")); - SetLineSpecial(3,226,StrArg("DVACATION_BED")); + SetLineSpecial(2,ACS_ExecuteAlways,StrArg("DVACATION_EXIT")); + SetLineSpecial(3,ACS_ExecuteAlways,StrArg("DVACATION_BED")); } bool gotexit = false; diff --git a/zscript/compat/swwm_compat.zsc b/zscript/compat/swwm_compat.zsc index 9c964aa8a..306a7a92f 100644 --- a/zscript/compat/swwm_compat.zsc +++ b/zscript/compat/swwm_compat.zsc @@ -56,6 +56,9 @@ Class SWWMLevelCompatibility : LevelPostProcessor level.nextmap = "E2M1"; // no damage in exit sector SetSectorSpecial(13,0); + // paint it black + for ( int i=1; i<4; i++ ) + level.Sectors[13].SetSpecialColor(i,"Black"); // teleport sequence for ( int i=299; i<=306; i++ ) SetLineSpecial(i,ACS_Execute,-Int('E1M8_KNOCKOUT')); @@ -71,6 +74,9 @@ Class SWWMLevelCompatibility : LevelPostProcessor level.nextmap = "E2M1"; // no damage in exit sector SetSectorSpecial(66,0); + // paint it black + for ( int i=1; i<4; i++ ) + level.Sectors[66].SetSpecialColor(i,"Black"); // teleport sequence for ( int i=299; i<=306; i++ ) SetLineSpecial(i,ACS_Execute,-Int('E1M8_KNOCKOUT')); @@ -200,6 +206,138 @@ Class SWWMLevelCompatibility : LevelPostProcessor if ( nbackpack ) SetThingEdNum(i,0); nbackpack++; } + // no cheesing of the exit + AddSectorTag(3,669); + OffsetSectorPlane(3,0,-72.); + for ( int i=149; i<=153; i++ ) + { + SetLineFlags(i,Line.ML_CHECKSWITCHRANGE); + SetWallTexture(i,1,2,"BRICK4"); + } + level.ExecuteSpecial(ACS_Execute,null,null,false,-Int('DIMPLE_EXITOPEN')); + // mark the DM-exclusive bfg room as a secret + SetSectorSpecial(1,0); + SetSectorSpecial(23,1024); + SetWallTexture(168,1,2,"BRICK4"); // fix gap + // remove the deathmatch exit + ClearLineSpecial(174); + SetWallTexture(174,0,1,"BRONZE3"); + level.Lines[174].sidedef[0].SetTextureYOffset(1,0); + // + // ABANDON ALL HOPE YE WHO ENTER HERE + // + // we're going to recycle the exit sign linedefs to + // commit some serious crimes here, this will be fun + // (in ccw order from bottom left) + // vertexes of exit sign: 151, 152, 153, 154 + // linedefs of exit sign: 184, 185, 186, 187 + // vertexes of northeast pillar: 23, 0, 24, 8 + // linedefs of northeast pillar: 22, 23, 24, 21 + // displace vertices of exit sign inside pillar + SetVertex(151,-112,-48); + SetVertex(152,-80,-48); + SetVertex(153,-80,-16); + SetVertex(154,-112,-16); + // move pillar references + SetLineVertexes(22,151,152); + SetLineVertexes(23,152,153); + SetLineVertexes(24,153,154); + SetLineVertexes(21,154,151); + // move exit sign references + SetLineVertexes(184,23,0); + SetLineVertexes(185,0,24); + SetLineVertexes(186,24,8); + SetLineVertexes(187,8,23); + // set pillar sector refs + SetLineSectorRef(22,0,24); + SetLineSectorRef(23,0,24); + SetLineSectorRef(24,0,24); + SetLineSectorRef(21,0,24); + // set exit sign sector refs + SetLineSectorRef(184,0,0); + SetLineSectorRef(185,0,10); + SetLineSectorRef(186,0,10); + SetLineSectorRef(187,0,0); + // change the textures + SetWallTexture(184,0,0,"BROWN1"); + SetWallTexture(185,0,0,"BROWN1"); + SetWallTexture(186,0,0,"BROWN1"); + SetWallTexture(187,0,0,"BROWN1"); + SetWallTexture(184,0,2,"BROWN1"); + SetWallTexture(185,0,2,"BROWN1"); + SetWallTexture(186,0,2,"BROWN1"); + SetWallTexture(187,0,2,"BROWN1"); + level.Lines[184].sidedef[0].SetTextureXScale(0,8.); + level.Lines[185].sidedef[0].SetTextureXScale(0,2.); + level.Lines[186].sidedef[0].SetTextureXScale(0,8.); + level.Lines[187].sidedef[0].SetTextureXScale(0,2.); + level.Lines[184].sidedef[0].SetTextureXScale(2,8.); + level.Lines[185].sidedef[0].SetTextureXScale(2,2.); + level.Lines[186].sidedef[0].SetTextureXScale(2,8.); + level.Lines[187].sidedef[0].SetTextureXScale(2,2.); + level.Lines[184].sidedef[0].SetTextureXOffset(0,0); + level.Lines[185].sidedef[0].SetTextureXOffset(0,0); + level.Lines[186].sidedef[0].SetTextureXOffset(0,0); + level.Lines[187].sidedef[0].SetTextureXOffset(0,0); + level.Lines[184].sidedef[0].SetTextureYOffset(0,24); + level.Lines[185].sidedef[0].SetTextureYOffset(0,24); + level.Lines[186].sidedef[0].SetTextureYOffset(0,24); + level.Lines[187].sidedef[0].SetTextureYOffset(0,24); + level.Lines[184].sidedef[0].SetTextureXOffset(2,0); + level.Lines[185].sidedef[0].SetTextureXOffset(2,0); + level.Lines[186].sidedef[0].SetTextureXOffset(2,0); + level.Lines[187].sidedef[0].SetTextureXOffset(2,0); + level.Lines[184].sidedef[0].SetTextureYOffset(2,24); + level.Lines[185].sidedef[0].SetTextureYOffset(2,24); + level.Lines[186].sidedef[0].SetTextureYOffset(2,24); + level.Lines[187].sidedef[0].SetTextureYOffset(2,24); + SetWallTexture(22,0,1,"BROWN144"); + SetWallTexture(23,0,1,"SW1DIRT"); + SetWallTexture(24,0,1,"BROWN144"); + SetWallTexture(21,0,1,"BROWN144"); + level.Lines[22].sidedef[0].SetTextureXScale(1,.5); + level.Lines[23].sidedef[0].SetTextureXScale(1,.5); + level.Lines[24].sidedef[0].SetTextureXScale(1,.5); + level.Lines[21].sidedef[0].SetTextureXScale(1,.5); + level.Lines[22].sidedef[0].SetTextureXOffset(1,96); + level.Lines[23].sidedef[0].SetTextureXOffset(1,16); + level.Lines[24].sidedef[0].SetTextureXOffset(1,32); + level.Lines[21].sidedef[0].SetTextureXOffset(1,64); + level.Lines[22].sidedef[0].SetTextureYOffset(1,4); + level.Lines[23].sidedef[0].SetTextureYOffset(1,4); + level.Lines[24].sidedef[0].SetTextureYOffset(1,4); + level.Lines[21].sidedef[0].SetTextureYOffset(1,4); + // make the pillar openable with use + OffsetSectorPlane(24,0,24+64); + OffsetSectorPlane(24,1,8); + SetLineSpecial(184,Floor_MoveToValue,0,8,40,0); + SetLineSpecial(185,Floor_MoveToValue,0,8,40,0); + SetLineSpecial(186,Floor_MoveToValue,0,8,40,0); + SetLineSpecial(187,Floor_MoveToValue,0,8,40,0); + SetLineActivation(184,SPAC_Use); + SetLineActivation(185,SPAC_Use); + SetLineActivation(186,SPAC_Use); + SetLineActivation(187,SPAC_Use); + SetLineFlags(184,Line.ML_SECRET); + SetLineFlags(185,Line.ML_SECRET); + SetLineFlags(186,Line.ML_SECRET); + SetLineFlags(187,Line.ML_SECRET); + SetLineFlags(22,Line.ML_DONTDRAW); + SetLineFlags(23,Line.ML_DONTDRAW); + SetLineFlags(24,Line.ML_DONTDRAW); + SetLineFlags(21,Line.ML_DONTDRAW); + SetLineActivation(23,SPAC_Use); + SetLineSpecial(23,Door_Open,668,16); + AddSectorTag(25,668); + // hide the secret sector lines + for ( int i=164; i<=175; i++ ) + { + if ( i == 168 ) continue; + SetLineFlags(i,Line.ML_DONTDRAW); + } + // + // OK, THE CRIME TIME IS OVER + // break; // Doom 2 MAP31 case '0BB515B79E0A6C42C4846C4E6F5F1D73':