diff --git a/language.version b/language.version index 0a33803ba..4af525ee5 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.8 \cu(Thu 7 Apr 13:15:15 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.2.8 \cu(2022-04-07 13:15:15)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.2.8 r1 \cu(Thu 7 Apr 15:44:20 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.2.8 r1 \cu(2022-04-07 15:44:20)\c-"; diff --git a/zscript/handler/swwm_handler_shaders.zsc b/zscript/handler/swwm_handler_shaders.zsc index e39482734..c3c1ccfb9 100644 --- a/zscript/handler/swwm_handler_shaders.zsc +++ b/zscript/handler/swwm_handler_shaders.zsc @@ -2,21 +2,21 @@ extend Class SWWMHandler { - static clearscope void ClearAllShaders( PlayerInfo p, bool noscope = false ) + static clearscope void ClearAllShaders( bool noscope = false ) { - Shader.SetEnabled(p,"WaterWarp",false); - Shader.SetEnabled(p,"LavaWarp",false); - Shader.SetEnabled(p,"SlimeWarp",false); - Shader.SetEnabled(p,"ZoomBlur",false); - if ( !noscope ) Shader.SetEnabled(p,"SilverScope",false); - Shader.SetEnabled(p,"BarrierShader",false); - Shader.SetEnabled(p,"GhostShader",false); - Shader.SetEnabled(p,"InvinciShader",false); - Shader.SetEnabled(p,"RagekitShader",false); - Shader.SetEnabled(p,"DevastationShader",false); - Shader.SetEnabled(p,"DivineShader",false); - Shader.SetEnabled(p,"Glitch",false); - Shader.SetEnabled(p,"Grain",false); + PPShader.SetEnabled("WaterWarp",false); + PPShader.SetEnabled("LavaWarp",false); + PPShader.SetEnabled("SlimeWarp",false); + PPShader.SetEnabled("ZoomBlur",false); + if ( !noscope ) PPShader.SetEnabled("SilverScope",false); + PPShader.SetEnabled("BarrierShader",false); + PPShader.SetEnabled("GhostShader",false); + PPShader.SetEnabled("InvinciShader",false); + PPShader.SetEnabled("RagekitShader",false); + PPShader.SetEnabled("DevastationShader",false); + PPShader.SetEnabled("DivineShader",false); + PPShader.SetEnabled("Glitch",false); + PPShader.SetEnabled("Grain",false); } private ui void RenderShaders( RenderEvent e ) @@ -26,117 +26,116 @@ extend Class SWWMHandler bool pc = (p.camera == mo); if ( !mo || !swwm_shaders || !pc ) { - if ( !swwm_shaders ) ClearAllShaders(p,true); + if ( !swwm_shaders ) ClearAllShaders(true); return; } let divi = DivineSpriteEffect(mo.FindInventory("DivineSpriteEffect")); if ( divi ) { - Shader.SetEnabled(p,"DivineShader",true); - Shader.SetUniform1f(p,"DivineShader","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetEnabled("DivineShader",true); + PPShader.SetUniform1f("DivineShader","timer",(gametic+e.FracTic)/GameTicRate); double str = clamp((divi.AlphInter.GetValue()-1000.)/6000.,0.,1.)**2.; - Shader.SetUniform1f(p,"DivineShader","str",str); + PPShader.SetUniform1f("DivineShader","str",str); } - else Shader.SetEnabled(p,"DevastationShader",false); + else PPShader.SetEnabled("DevastationShader",false); let deva = AngeryPower(mo.FindInventory("AngeryPower")); if ( deva ) { - Shader.SetEnabled(p,"DevastationShader",true); - Shader.SetUniform1f(p,"DevastationShader","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetEnabled("DevastationShader",true); + PPShader.SetUniform1f("DevastationShader","timer",(gametic+e.FracTic)/GameTicRate); double xstrastr = 1.+max(0,deva.lastpulse-(gametic+e.Fractic))/35.; - Shader.SetUniform1f(p,"DevastationShader","xtrastr",xstrastr**2.); + PPShader.SetUniform1f("DevastationShader","xtrastr",xstrastr**2.); } - else Shader.SetEnabled(p,"DevastationShader",false); + else PPShader.SetEnabled("DevastationShader",false); let rage = RagekitPower(mo.FindInventory("RagekitPower")); if ( rage ) { - Shader.SetEnabled(p,"RagekitShader",true); - Shader.SetUniform1f(p,"RagekitShader","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetEnabled("RagekitShader",true); + PPShader.SetUniform1f("RagekitShader","timer",(gametic+e.FracTic)/GameTicRate); double xstrastr = 1.+max(0,rage.lastpulse-(gametic+e.Fractic))/35.; - Shader.SetUniform1f(p,"RagekitShader","xtrastr",xstrastr**2.); + PPShader.SetUniform1f("RagekitShader","xtrastr",xstrastr**2.); } - else Shader.SetEnabled(p,"RagekitShader",false); + else PPShader.SetEnabled("RagekitShader",false); let ghost = GhostPower(mo.FindInventory("GhostPower")); - if ( ghost ) Shader.SetEnabled(p,"GhostShader",true); - else Shader.SetEnabled(p,"GhostShader",false); + if ( ghost ) PPShader.SetEnabled("GhostShader",true); + else PPShader.SetEnabled("GhostShader",false); let sunny = InvinciballPower(mo.FindInventory("InvinciballPower")); if ( sunny ) { - Shader.SetEnabled(p,"InvinciShader",true); + PPShader.SetEnabled("InvinciShader",true); double str = max(0,sunny.lastpulse-(gametic+e.Fractic))/35.; - Shader.SetUniform1f(p,"InvinciShader","str",str); + PPShader.SetUniform1f("InvinciShader","str",str); } - else Shader.SetEnabled(p,"InvinciShader",false); + else PPShader.SetEnabled("InvinciShader",false); let coat = BarrierPower(mo.FindInventory("BarrierPower")); if ( coat ) { - Shader.SetEnabled(p,"BarrierShader",true); - Shader.SetUniform1f(p,"BarrierShader","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetEnabled("BarrierShader",true); + PPShader.SetUniform1f("BarrierShader","timer",(gametic+e.FracTic)/GameTicRate); } - else Shader.SetEnabled(p,"BarrierShader",false); + else PPShader.SetEnabled("BarrierShader",false); if ( !(mo is 'Demolitionist') ) { - Shader.SetEnabled(p,"WaterWarp",false); - Shader.SetEnabled(p,"LavaWarp",false); - Shader.SetEnabled(p,"SlimeWarp",false); - Shader.SetEnabled(p,"Glitch",false); - Shader.SetEnabled(p,"Grain",false); - Shader.SetEnabled(p,"ZoomBlur",false); + PPShader.SetEnabled("WaterWarp",false); + PPShader.SetEnabled("LavaWarp",false); + PPShader.SetEnabled("SlimeWarp",false); + PPShader.SetEnabled("Glitch",false); + PPShader.SetEnabled("Grain",false); + PPShader.SetEnabled("ZoomBlur",false); return; } let demo = Demolitionist(mo); if ( demo.lastunder == Demolitionist.UNDER_WATER ) { - Shader.SetEnabled(p,"WaterWarp",true); - Shader.SetUniform1f(p,"WaterWarp","timer",(gametic+e.FracTic)/GameTicRate); - Shader.SetUniform1f(p,"WaterWarp","dfact",coat?.25:1.); - Shader.SetUniform3f(p,"WaterWarp","lightcol",(demo.undercol.r/255.,demo.undercol.g/255.,demo.undercol.b/255.)); - + PPShader.SetEnabled("WaterWarp",true); + PPShader.SetUniform1f("WaterWarp","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetUniform1f("WaterWarp","dfact",coat?.25:1.); + PPShader.SetUniform3f("WaterWarp","lightcol",(demo.undercol.r/255.,demo.undercol.g/255.,demo.undercol.b/255.)); } - else Shader.SetEnabled(p,"WaterWarp",false); + else PPShader.SetEnabled("WaterWarp",false); if ( demo.lastunder == Demolitionist.UNDER_LAVA ) { - Shader.SetEnabled(p,"LavaWarp",true); - Shader.SetUniform1f(p,"LavaWarp","timer",(gametic+e.FracTic)/GameTicRate); - Shader.SetUniform1f(p,"LavaWarp","dfact",coat?.25:1.); - Shader.SetUniform3f(p,"LavaWarp","lightcol",(demo.undercol.r/255.,demo.undercol.g/255.,demo.undercol.b/255.)); + PPShader.SetEnabled("LavaWarp",true); + PPShader.SetUniform1f("LavaWarp","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetUniform1f("LavaWarp","dfact",coat?.25:1.); + PPShader.SetUniform3f("LavaWarp","lightcol",(demo.undercol.r/255.,demo.undercol.g/255.,demo.undercol.b/255.)); } - else Shader.SetEnabled(p,"LavaWarp",false); + else PPShader.SetEnabled("LavaWarp",false); if ( demo.lastunder == Demolitionist.UNDER_SLIME ) { - Shader.SetEnabled(p,"SlimeWarp",true); - Shader.SetUniform1f(p,"SlimeWarp","timer",(gametic+e.FracTic)/GameTicRate); - Shader.SetUniform1f(p,"SlimeWarp","dfact",coat?.25:1.); - Shader.SetUniform3f(p,"SlimeWarp","lightcol",(demo.undercol.r/255.,demo.undercol.g/255.,demo.undercol.b/255.)); + PPShader.SetEnabled("SlimeWarp",true); + PPShader.SetUniform1f("SlimeWarp","timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetUniform1f("SlimeWarp","dfact",coat?.25:1.); + PPShader.SetUniform3f("SlimeWarp","lightcol",(demo.undercol.r/255.,demo.undercol.g/255.,demo.undercol.b/255.)); } - else Shader.SetEnabled(p,"SlimeWarp",false); + else PPShader.SetEnabled("SlimeWarp",false); int lastdmg = (demo.Health>0)?demo.lastdamage:Random[Flicker](60,80); int lastdmgtic = (demo.Health>0)?demo.lastdamagetic:(gametic+Random[Flicker](30,20)); double noiz = min(lastdmg*.09*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.5); - Shader.SetEnabled(p,"Glitch",noiz>0); - Shader.SetEnabled(p,"Grain",noiz>0); + PPShader.SetEnabled("Glitch",noiz>0); + PPShader.SetEnabled("Grain",noiz>0); if ( noiz > 0 ) { - Shader.SetUniform1f(p,"Glitch","Timer",(gametic+e.FracTic)/GameTicRate); - Shader.SetUniform1f(p,"Grain","Timer",(gametic+e.FracTic)/GameTicRate); - Shader.SetUniform1f(p,"Grain","ni",noiz); + PPShader.SetUniform1f("Glitch","Timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetUniform1f("Grain","Timer",(gametic+e.FracTic)/GameTicRate); + PPShader.SetUniform1f("Grain","ni",noiz); noiz = min(lastdmg*.08*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),.8); - Shader.SetUniform1f(p,"Glitch","str1",noiz); + PPShader.SetUniform1f("Glitch","str1",noiz); noiz = min(lastdmg*.03*max(0,(lastdmgtic-(gametic+e.Fractic))/35.),3.5); - Shader.SetUniform1f(p,"Glitch","str2",noiz); + PPShader.SetUniform1f("Glitch","str2",noiz); } if ( !demo.InStateSequence(demo.CurState,demo.FindState("Dash")) ) { - Shader.SetEnabled(p,"ZoomBlur",false); + PPShader.SetEnabled("ZoomBlur",false); return; } - Shader.SetEnabled(p,"ZoomBlur",true); + PPShader.SetEnabled("ZoomBlur",true); Vector3 vel = demo.vel+demo.dashdir*demo.dashboost; double baumpu = max(0.,(demo.bumptic-(gametic+e.Fractic))/35.); vel += demo.dashdir*baumpu; double spd = vel.length(); Vector3 worlddir = vel/spd; - Shader.SetUniform1f(p,"ZoomBlur","Fade",clamp((spd-20.)/60.,0.,1.)); + PPShader.SetUniform1f("ZoomBlur","Fade",clamp((spd-20.)/60.,0.,1.)); double str = min(spd/40.,15.); Vector3 x, y, z; [x, y, z] = swwm_CoordUtil.GetAxes(e.ViewPitch,e.ViewAngle,e.ViewRoll); @@ -148,7 +147,7 @@ extend Class SWWMHandler centerspot.y = 1.-centerspot.y; str *= -1; } - Shader.SetUniform1f(p,"ZoomBlur","Str",str); - Shader.SetUniform2f(p,"ZoomBlur","CenterSpot",centerspot); + PPShader.SetUniform1f("ZoomBlur","Str",str); + PPShader.SetUniform2f("ZoomBlur","CenterSpot",centerspot); } } diff --git a/zscript/swwm_statichandler.zsc b/zscript/swwm_statichandler.zsc index 926f55522..cb2fa68fd 100644 --- a/zscript/swwm_statichandler.zsc +++ b/zscript/swwm_statichandler.zsc @@ -33,7 +33,7 @@ Class SWWMStaticHandler : StaticEventHandler override void WorldUnloaded( WorldEvent e ) { - SWWMHandler.ClearAllShaders(players[consoleplayer]); + SWWMHandler.ClearAllShaders(); unloading = true; } @@ -63,7 +63,7 @@ Class SWWMStaticHandler : StaticEventHandler Demolitionist(players[i].mo).CheckUnderwaterAmb(true); } } - SWWMHandler.ClearAllShaders(players[consoleplayer]); + SWWMHandler.ClearAllShaders(); // force a reset of the minimap zoom in case it's set beyond safe levels double mmz = swwm_mm_zoom; if ( level.allmap && (mmz >= 2.) ) mmz = 2.; diff --git a/zscript/weapons/swwm_thiccboolet.zsc b/zscript/weapons/swwm_thiccboolet.zsc index d43ed2420..0c52f5ff8 100644 --- a/zscript/weapons/swwm_thiccboolet.zsc +++ b/zscript/weapons/swwm_thiccboolet.zsc @@ -327,7 +327,7 @@ Class SilverBullet : SWWMWeapon // force disable zoom zoomed = false; if ( Owner.player == players[consoleplayer] ) - Shader.SetEnabled(players[consoleplayer],"SilverScope",false); + PPShader.SetEnabled("SilverScope",false); Super.DetachFromOwner(); } override double GetSpeedFactor() @@ -367,10 +367,10 @@ Class SilverBullet : SWWMWeapon { Vector2 ss = (Screen.GetWidth(),Screen.GetHeight()); ss *= (512./ss.y); - if ( swwm_shaders ) Shader.SetEnabled(players[consoleplayer],"SilverScope",true); + if ( swwm_shaders ) PPShader.SetEnabled("SilverScope",true); else { - Shader.SetEnabled(players[consoleplayer],"SilverScope",false); + PPShader.SetEnabled("SilverScope",false); if ( !scope ) scope = TexMan.CheckForTexture("graphics/SBScope.png",TexMan.Type_Any); Screen.DrawTexture(scope,false,ss.x*.5,ss.y*.5,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Multiply); } @@ -378,7 +378,7 @@ Class SilverBullet : SWWMWeapon Screen.DrawTexture(reticle,false,ss.x*.5,ss.y*.5,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Stencil,DTA_FillColor,Color(0,0,0)); return; } - else Shader.SetEnabled(players[consoleplayer],"SilverScope",false); + else PPShader.SetEnabled("SilverScope",false); Super.RenderUnderlay(e); }