From e1fafcb329e88ab370e2f83b88f66c2f6395d944 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Wed, 1 Jun 2022 18:27:10 +0200 Subject: [PATCH] Reimplement intermission input handling. --- language.def_menu | 15 ++++++++ language.version | 4 +- zscript/menu/swwm_inter.zsc | 77 +++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 2 deletions(-) diff --git a/language.def_menu b/language.def_menu index 6b9d4f4f6..cfbbd2b12 100644 --- a/language.def_menu +++ b/language.def_menu @@ -444,6 +444,21 @@ SWWM_MENUPOSE17 = "graphics/M_DEMOCHAN_SHELLS.png"; SWWM_MENUPOSE18 = "graphics/M_DEMOCHAN_SKULL.png"; SWWM_MENUPOSE19 = "graphics/M_DEMOCHAN_THONK.png"; SWWM_MENUPOSE20 = "graphics/M_DEMOCHAN_THUMBUP.png"; +//SWWM_MENUPOSE21 = "graphics/M_DEMOCHAN_HAMMER.png"; +//SWWM_MENUPOSE22 = "graphics/M_DEMOCHAN_PLASMA.png"; +//SWWM_MENUPOSE23 = "graphics/M_DEMOCHAN_REVOLVER.png"; +//SWWM_MENUPOSE24 = "graphics/M_DEMOCHAN_SMG.png"; +//SWWM_MENUPOSE25 = "graphics/M_DEMOCHAN_SHEEN.png"; +//SWWM_MENUPOSE26 = "graphics/M_DEMOCHAN_QUADRAVOL.png"; +//SWWM_MENUPOSE27 = "graphics/M_DEMOCHAN_SPARKSTER.png"; +//SWWM_MENUPOSE28 = "graphics/M_DEMOCHAN_RAYKHOM.png"; +//SWWM_MENUPOSE29 = "graphics/M_DEMOCHAN_MISTER.png"; +//SWWM_MENUPOSE30 = "graphics/M_DEMOCHAN_RAFANKOS.png"; +//SWWM_MENUPOSE31 = "graphics/M_DEMOCHAN_TRANSRIGHTS.png"; +//SWWM_MENUPOSE32 = "graphics/M_DEMOCHAN_PLUSH.png"; +//SWWM_MENUPOSE33 = "graphics/M_DEMOCHAN_MOTH.png"; +//SWWM_MENUPOSE34 = "graphics/M_DEMOCHAN_SAYA.png"; +//SWWM_MENUPOSE35 = "graphics/M_DEMOCHAN_MENACING.png"; // credits SWWM_MCREDS = "DEMOLITIONIST Credits"; SWWM_CSTITLE = "UnSX Side Story: Demolitionist"; diff --git a/language.version b/language.version index 8fb7c19e0..339d33e66 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r83 \cu(Wed 1 Jun 16:44:59 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r83 \cu(2022-06-01 16:44:59)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r84 \cu(Wed 1 Jun 18:27:11 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r84 \cu(2022-06-01 18:27:11)\c-"; diff --git a/zscript/menu/swwm_inter.zsc b/zscript/menu/swwm_inter.zsc index 60d414ba1..d0d5fb1bb 100644 --- a/zscript/menu/swwm_inter.zsc +++ b/zscript/menu/swwm_inter.zsc @@ -8,6 +8,8 @@ Class SWWMStatScreen : StatusScreen abstract Font mSmallFont; String tipstr; transient BrokenLines tipl; + double bgfade; + bool bFade; override void Start( wbstartstruct wbstartstruct ) { @@ -224,6 +226,19 @@ Class SWWMStatScreen : StatusScreen abstract drawNoState(); break; } + if ( bgfade <= 0. ) return; + // redraw BG on top, hiding the rest of the ui + TextureID tx; + if ( whichart ) tx = arttex; + else tx = bgtex; + double ar = Screen.GetAspectRatio(); + Vector2 tsize = TexMan.GetScaledSize(tx); + double sar = tsize.x/tsize.y; + Vector2 vsize; + if ( sar > ar ) vsize = (tsize.y*ar,tsize.y); + else if ( sar < ar ) vsize = (tsize.x,tsize.x/ar); + else vsize = tsize; + Screen.DrawTexture(tx,false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_Alpha,bgfade); } override void Ticker( void ) { @@ -244,6 +259,9 @@ Class SWWMStatScreen : StatusScreen abstract // sorry nothing break; } + // check fade + if ( bFade ) bgfade = min(1.,bgfade+3./GameTicRate); + else bgfade = max(0.,bgfade-4./GameTicRate); // force toggle if ( !swwm_interart && (whichart != 0) ) { @@ -267,6 +285,65 @@ Class SWWMStatScreen : StatusScreen abstract if ( b <= 0 ) return inv?0:100; // for "missed" percentage return (a*100)/b; } + + override bool OnEvent( InputEvent evt ) + { + if ( evt.type == InputEvent.Type_KeyDown ) + { + Array usekey, firekey, altfirekey, reloadkey, zoomkey; + Bindings.GetAllKeysForCommand(usekey,"+use"); + for ( int i=0; i altfirekey; + Bindings.GetAllKeysForCommand(altfirekey,"+altattack"); + for ( int i=0; i