From b3b664f7ccd1ff42f1de03f21b692ca9cade6ab2 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Thu, 17 Dec 2020 23:51:06 +0100 Subject: [PATCH] Score resetting now also takes effect if a player ends the level while dead. Fix busted walls not stopping their sound sequences. --- language.version | 2 +- zscript/swwm_cbt.zsc | 2 ++ zscript/swwm_handler.zsc | 7 +++++++ zscript/swwm_utility.zsc | 20 +------------------- 4 files changed, 11 insertions(+), 20 deletions(-) diff --git a/language.version b/language.version index 691519a93..eb5e47e66 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r686 \cu(Thu 17 Dec 09:39:47 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r687 \cu(Thu 17 Dec 23:51:06 CET 2020)"; diff --git a/zscript/swwm_cbt.zsc b/zscript/swwm_cbt.zsc index 3941e11c3..fd7e7e61d 100644 --- a/zscript/swwm_cbt.zsc +++ b/zscript/swwm_cbt.zsc @@ -738,6 +738,8 @@ Class BusterWall : Thinker se.Destroy(); } bust.step = (clamp((b.x-a.x)/4.,2.,32.),clamp((b.y-a.y)/4.,2.,32.),clamp(partheight/4.,2.,32.)); + // stop all sound sequences + for ( int i=1; i<=4; i++ ) hs.StopSoundSequence(i); // quakin' let q = Actor.Spawn("BustedQuake",(hs.centerspot.x,hs.centerspot.y,thisheight)); q.special1 = clamp(int(girthitude**.15),1,9); diff --git a/zscript/swwm_handler.zsc b/zscript/swwm_handler.zsc index c4b9ff524..c33388344 100644 --- a/zscript/swwm_handler.zsc +++ b/zscript/swwm_handler.zsc @@ -750,6 +750,13 @@ Class SWWMHandler : EventHandler } } ClearAllShaders(players[consoleplayer]); + // reset score on dead players (death exitâ„¢) + for ( int i=0; i 0) ) continue; + let c = SWWMCredits.Find(players[i]); + if ( c ) c.credits = c.hcredits = 0; + } } override void WorldLoaded( WorldEvent e ) diff --git a/zscript/swwm_utility.zsc b/zscript/swwm_utility.zsc index b3dde0d50..d58922c0b 100644 --- a/zscript/swwm_utility.zsc +++ b/zscript/swwm_utility.zsc @@ -402,8 +402,7 @@ Class SWWMUtility return int(ceil(x/100.)*100.); } - // can't make clearscope because of SectorEffect.GetSector(), isn't that amazing? - static play bool IsDoorSector( Sector s, int part ) + static clearscope bool IsDoorSector( Sector s, int part ) { // super-easy mode: check for boss special sectors if ( (level.mapname ~== "E1M8") || (level.mapname ~== "E2M8") || (level.mapname ~== "E3M8") @@ -423,23 +422,6 @@ Class SWWMUtility return true; } } - // easy mode: check if it's already moving - if ( part ) - { - let ti = ThinkerIterator.Create("MovingCeiling",Thinker.STAT_SECTOREFFECT); - MovingCeiling mc; - while ( mc = MovingCeiling(ti.Next()) ) - if ( mc.GetSector() == s ) - return true; - } - else - { - let ti = ThinkerIterator.Create("MovingFloor",Thinker.STAT_SECTOREFFECT); - MovingFloor mf; - while ( mf = MovingFloor(ti.Next()) ) - if ( mf.GetSector() == s ) - return true; - } // hard mode: look for all lines/actors with movement specials referencing us for ( int i=0; i