diff --git a/language.version b/language.version index ac597d01c..ac3e6171c 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r371 \cu(Thu 25 Aug 09:07:39 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r371 \cu(2022-08-25 09:07:39)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r372 \cu(Thu 25 Aug 20:03:54 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r372 \cu(2022-08-25 20:03:54)\c-"; diff --git a/shaders/glsl/DemoTags1st.fp b/shaders/glsl/DemoTags1st.fp deleted file mode 100644 index 28e0020b9..000000000 --- a/shaders/glsl/DemoTags1st.fp +++ /dev/null @@ -1,7 +0,0 @@ -void SetupMaterial( inout Material mat ) -{ - mat.Base = texture(scrtex,vec2(vTexCoord.s,1.-vTexCoord.t)); // canvas textures are upside-down when used by models - mat.Normal = ApplyNormalMap(vTexCoord.st); - if ( (uTextureMode&TEXF_Brightmap) != 0 ) - mat.Bright = texture(brighttexture,vTexCoord.st); -} diff --git a/zscript/dlc1/swwm_hammertime_fx.zsc b/zscript/dlc1/swwm_hammertime_fx.zsc index 57a180999..3c3fe24a2 100644 --- a/zscript/dlc1/swwm_hammertime_fx.zsc +++ b/zscript/dlc1/swwm_hammertime_fx.zsc @@ -19,7 +19,7 @@ Class HammerShockwave : Actor { Super.PostBeginPlay(); A_QuakeEx(5,5,5,20,0,300+special1*4,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:200,rollIntensity:.8); - SWWMUtility.DoExplosion(self,50+special1,100000+special1*2000,80+special1,40,DE_BLAST|DE_EXTRAZTHRUST,'HammerShockwave',target); + SWWMUtility.DoExplosion(self,50+special1,100000+special1*2000,80+special1,40,DE_BLAST|DE_EXTRAZTHRUST|DE_NONEXPLOSIVE,'HammerShockwave',target); for ( int i=0; i<360; i+=5 ) { Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,3); diff --git a/zscript/dlc1/swwm_heavymahsheengun_fx.zsc b/zscript/dlc1/swwm_heavymahsheengun_fx.zsc index d9a9d181b..e337355e7 100644 --- a/zscript/dlc1/swwm_heavymahsheengun_fx.zsc +++ b/zscript/dlc1/swwm_heavymahsheengun_fx.zsc @@ -80,7 +80,7 @@ Class SheenTrail : Actor for ( int i=0; i0)?ndmg:dmg,Source); if ( (flags&DE_HOWL) && a && (a.Health > 0) && a.bISMONSTER && !Random[DoBlast](0,3) ) a.Howl(); if ( hostile && (!a || (a.Health <= 0)) ) haskilled = true; @@ -1285,7 +1270,7 @@ Class SWWMUtility let hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); if ( !hnd || (hnd.psectors.Size() <= 1) ) { - if ( (Instigator is 'Demolitionist') && haskilled && IsExplosiveSource(Source) ) + if ( (Instigator is 'Demolitionist') && haskilled && !(flags&DE_NONEXPLOSIVE) ) { let demo = Demolitionist(Instigator); if ( (gametic > demo.lastbang+30) && (!hnd || (gametic > hnd.lastcombat+10)) && !Random[DemoLines](0,1) ) @@ -1366,7 +1351,7 @@ Class SWWMUtility if ( dmg <= 0 ) continue; // no harm int oldhp = a.Health; int basehp = a.GetSpawnHealth(); - int ndmg = a.DamageMobj(realinflictor?realinflictor:Source,Instigator,dmg,(DamageType=='')?Source.DamageType:DamageType,DMG_EXPLOSION|dmgflags,atan2(-dir.y,-dir.x)); + int ndmg = a.DamageMobj(realinflictor?realinflictor:Source,Instigator,dmg,(DamageType=='')?Source.DamageType:DamageType,dflg,atan2(-dir.y,-dir.x)); if ( a && !(flags&DE_NOBLEED) ) a.TraceBleed((ndmg>0)?ndmg:dmg,Source); if ( (flags&DE_HOWL) && a && (a.Health > 0) && a.bISMONSTER && !Random[DoBlast](0,3) ) a.Howl(); if ( hostile && (!a || (a.Health <= 0)) ) haskilled = true; @@ -1374,7 +1359,7 @@ Class SWWMUtility if ( (!a || (a.Health <= 0)) && (!(flags&DE_COUNTENEMIES) || hostile) && (!(flags&DE_COUNTSTEALTH) || inactive) ) nkill++; } } - if ( (Instigator is 'Demolitionist') && haskilled && IsExplosiveSource(Source) ) + if ( (Instigator is 'Demolitionist') && haskilled && !(flags&DE_NONEXPLOSIVE) ) { let demo = Demolitionist(Instigator); if ( (gametic > demo.lastbang+30) && (gametic > hnd.lastcombat+10) && !Random[DemoLines](0,1) ) diff --git a/zscript/weapons/swwm_baseweapon_fx.zsc b/zscript/weapons/swwm_baseweapon_fx.zsc index 7865c1178..ba0b36fcf 100644 --- a/zscript/weapons/swwm_baseweapon_fx.zsc +++ b/zscript/weapons/swwm_baseweapon_fx.zsc @@ -239,7 +239,7 @@ Class BigPunchSplash : Actor override void PostBeginPlay() { Super.PostBeginPlay(); - SWWMUtility.DoExplosion(self,special1,40000,120,60,ignoreme:target); + SWWMUtility.DoExplosion(self,special1,40000,120,60,DE_NONEXPLOSIVE,ignoreme:target); Destroy(); } } diff --git a/zscript/weapons/swwm_deepdarkimpact_fx.zsc b/zscript/weapons/swwm_deepdarkimpact_fx.zsc index ca020c9a2..d5e15d985 100644 --- a/zscript/weapons/swwm_deepdarkimpact_fx.zsc +++ b/zscript/weapons/swwm_deepdarkimpact_fx.zsc @@ -58,7 +58,7 @@ Class AirBullet : FastProjectile s.alpha *= .2; } bAMBUSH = true; - SWWMUtility.DoExplosion(self,10,0,100,25,ignoreme:target); + SWWMUtility.DoExplosion(self,10,0,100,25,DE_NONEXPLOSIVE,ignoreme:target); bAMBUSH = false; tcnt++; if ( tcnt < 2 ) return; @@ -78,7 +78,7 @@ Class AirBullet : FastProjectile if ( (target.pos.z > target.floorz) && target.TestMobjZ() ) mm *= 1.6; SWWMUtility.DoKnockback(target,dir,mm); } - SWWMUtility.DoExplosion(self,20,80000,200,80,ignoreme:target); + SWWMUtility.DoExplosion(self,20,80000,200,80,DE_NONEXPLOSIVE,ignoreme:target); A_QuakeEx(6,6,6,20,0,250,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:1.); A_StartSound("deepimpact/bullethit",CHAN_VOICE,CHANF_DEFAULT,1.,.3); A_SprayDecal("ImpactMark"); diff --git a/zscript/weapons/swwm_shot_fx.zsc b/zscript/weapons/swwm_shot_fx.zsc index 12be4d61b..b96df0a4e 100644 --- a/zscript/weapons/swwm_shot_fx.zsc +++ b/zscript/weapons/swwm_shot_fx.zsc @@ -396,7 +396,7 @@ Class SaltBeam : Actor if ( isFrozen() ) return; A_FadeOut(.04); if ( Random[Spreadgun](-2,args[2]/10) == 0 ) - SWWMUtility.DoExplosion(self,5+Accuracy,5000,speed,flags:DE_HOWL,ignoreme:target); + SWWMUtility.DoExplosion(self,5+Accuracy,5000,speed,flags:DE_HOWL|DE_NONEXPLOSIVE,ignoreme:target); if ( ((special2%4) || args[2]) && !special1 ) SpreadOut(); args[2]++; if ( !CheckNoDelay() || (tics == -1) ) return; @@ -637,7 +637,7 @@ Class CorrodeDebuff : Inventory A_StartSound("spreadgun/corrode",CHAN_VOICE,CHANF_DEFAULT); } if ( !wasalive ) maxrad += 25; - SWWMUtility.DoExplosion(self,clamp(Amount/8,1,50),0,maxrad*1.2,maxrad*.9,DE_NOBLEED|DE_NOSPLASH|DE_HOWL,'Corroded',Owner); + SWWMUtility.DoExplosion(self,clamp(Amount/8,1,50),0,maxrad*1.2,maxrad*.9,DE_NOBLEED|DE_NOSPLASH|DE_HOWL|DE_NONEXPLOSIVE,'Corroded',Owner); if ( !Owner ) return; // yeah this can happen int smokefact = int(clamp(maxrad/32.,1,8)); int numpt = Random[Corrode](0,2*smokefact); @@ -739,7 +739,7 @@ Class CorrosiveSplash : Actor override void PostBeginPlay() { Super.PostBeginPlay(); - SWWMUtility.DoExplosion(self,20,0,50,15,DE_NOBLEED|DE_NOSPLASH|DE_HOWL,'Corroded',tracer); + SWWMUtility.DoExplosion(self,20,0,50,15,DE_NOBLEED|DE_NOSPLASH|DE_HOWL|DE_NONEXPLOSIVE,'Corroded',tracer); Destroy(); } } @@ -1041,7 +1041,7 @@ Class TheBall : Actor } // make it so the crit does not propagate to friendlies unless we bonked a friend (you monster!) if ( crit ) - SWWMUtility.DoExplosion(self,dmg/2,25000,150,80,(victim.isFriend(target))?0:DE_NOHURTFRIEND,crit?'CriticalConcussion':'Concussion',target,DMG_FOILINVUL); + SWWMUtility.DoExplosion(self,dmg/2,25000,150,80,((victim.isFriend(target))?0:DE_NOHURTFRIEND)|DE_NONEXPLOSIVE,crit?'CriticalConcussion':'Concussion',target,DMG_FOILINVUL); if ( crit && victim && (victim.Health <= 0) && (victim.bBOSS || victim.FindInventory("BossMarker")) && target ) SWWMUtility.MarkAchievement("clonk",target.player); // only rip shootables diff --git a/zscript/weapons/swwm_thiccboolet_fx.zsc b/zscript/weapons/swwm_thiccboolet_fx.zsc index 1ec2498c6..447f88989 100644 --- a/zscript/weapons/swwm_thiccboolet_fx.zsc +++ b/zscript/weapons/swwm_thiccboolet_fx.zsc @@ -55,7 +55,7 @@ Class SilverAirRip : Actor virtual void Explode( bool thruwall = false ) { int nhit, nkill; - [nhit, nkill] = SWWMUtility.DoExplosion(self,40,2000,40,flags:DE_COUNTENEMIES,ignoreme:target); + [nhit, nkill] = SWWMUtility.DoExplosion(self,40,2000,40,flags:DE_COUNTENEMIES|DE_NONEXPLOSIVE,ignoreme:target); if ( SilverBullet(master) ) { Silverbullet(master).nkills += nkill; @@ -112,7 +112,7 @@ Class SilverImpact : Actor { Super.PostBeginPlay(); int nhit, nkill; - [nhit, nkill] = SWWMUtility.DoExplosion(self,100,8000,100,20,DE_COUNTENEMIES); + [nhit, nkill] = SWWMUtility.DoExplosion(self,100,8000,100,20,DE_COUNTENEMIES|DE_NONEXPLOSIVE); if ( SilverBullet(master) ) { Silverbullet(master).nkills += nkill;