Several optimizations on non-interactive actors.

This commit is contained in:
Mari the Deer 2022-10-14 21:45:21 +02:00
commit 4bb3a1e85a
32 changed files with 336 additions and 1867 deletions

View file

@ -1,19 +1,13 @@
// Itamex Hammer projectiles and effects
// akin to the land shockwave, but with sliiiiightly different behavior
Class HammerShockwave : Actor
Class HammerShockwave : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_HAMMER";
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
@ -70,17 +64,6 @@ Class HammerShockwave : Actor
raging.DoHitFX();
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:

View file

@ -8,18 +8,11 @@ Class SheenCasing : SWWMCasing
}
}
Class SheenPhantom : Actor
Class SheenPhantom : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+INTERPOLATEANGLES;
Radius .1;
Height 0.;
Alpha .5;
RenderStyle "Add";
}
@ -36,23 +29,16 @@ Class SheenPhantom : Actor
}
}
Class SheenTrail : Actor
Class SheenTrail : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_SHEENHMG";
DamageType "Fire";
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+INTERPOLATEANGLES;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
Speed 200;
Radius .1;
Height 0.;
RenderStyle "Add";
}

View file

@ -77,30 +77,13 @@ Class MisterMag : SWWMCasing
}
}
Class MisterRing : Actor
Class MisterRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 1.5;
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -144,23 +127,17 @@ Class MisterExLightTiny : MisterExLight
}
}
Class MisterBulletImpactPop : Actor
Class MisterBulletImpactPop : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 6.;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
@ -189,7 +166,7 @@ Class MisterBulletImpactPop : Actor
}
}
Class MisterFuzzy : Actor
Class MisterFuzzy : SWWMNonInteractiveActor
{
MisterRailCounter mrc;
Default
@ -197,15 +174,9 @@ Class MisterFuzzy : Actor
Obituary "$O_MORTALRIFLE";
DamageType "Mortal";
RenderStyle "Add";
Radius .1;
Height 0;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FOILINVUL;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -300,21 +271,14 @@ Class MisterFuzzy : Actor
}
}
Class MisterFuzzyTrail : Actor
Class MisterFuzzyTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Scale 1.5;
Alpha .25;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -333,7 +297,7 @@ Class MisterFuzzyTrail : Actor
}
}
Class MisterPop : Actor
Class MisterPop : SWWMNonInteractiveActor
{
MisterRailCounter mrc;
Default
@ -341,32 +305,14 @@ Class MisterPop : Actor
Obituary "$O_MORTALRIFLE";
DamageType "Mortal";
RenderStyle "Add";
Radius .1;
Height 0.;
Scale .2;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
+FOILINVUL;
+ROLLSPRITE;
+ROLLCENTER;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -394,7 +340,7 @@ Class MisterPop : Actor
}
}
Class MisterBulletImpact : Actor
Class MisterBulletImpact : SWWMNonInteractiveActor
{
MisterRailCounter mrc; // simplify code by putting this here
Default
@ -402,17 +348,11 @@ Class MisterBulletImpact : Actor
Obituary "$O_MORTALRIFLE";
DamageType "Mortal";
RenderStyle "Add";
Radius .1;
Height 0.;
Scale 1.5;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
virtual void A_BulletExplode()
{
@ -477,23 +417,15 @@ Class MisterBulletImpact : Actor
}
special1++;
}
override void Tick()
{
if ( isFrozen() ) return;
A_SetScale(scale.x*1.02,scale.y*1.02);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
TNT1 A 0;
XEX7 ABDEGHJKMNPQSTVWYZ\] 1 Bright A_BulletSubExplode();
XEX7 ABDEGHJKMNPQSTVWYZ\] 1 Bright
{
A_SetScale(scale.x*1.02,scale.y*1.02);
A_BulletSubExplode();
}
Stop;
}
}
@ -573,7 +505,11 @@ Class MisterBuckshotImpact : MisterBulletImpact
{
Spawn:
TNT1 A 0;
XEX7 ADGJMPSVY\ 1 Bright A_BulletSubExplode();
XEX7 ADGJMPSVY\ 1 Bright
{
A_SetScale(scale.x*1.02,scale.y*1.02);
A_BulletSubExplode();
}
Stop;
}
}
@ -653,7 +589,11 @@ Class MisterStreamImpact : MisterBulletImpact
{
Spawn:
TNT1 A 0;
XEX7 ACEGIKMOQSUWY[] 1 Bright A_BulletSubExplode();
XEX7 ACEGIKMOQSUWY[] 1 Bright
{
A_SetScale(scale.x*1.02,scale.y*1.02);
A_BulletSubExplode();
}
Stop;
}
}
@ -742,7 +682,11 @@ Class MisterRailEntryImpact : MisterBulletImpact
{
Spawn:
TNT1 A 0;
XEX7 ACEGIKMOQSUWY[] 1 Bright A_BulletSubExplode();
XEX7 ACEGIKMOQSUWY[] 1 Bright
{
A_SetScale(scale.x*1.02,scale.y*1.02);
A_BulletSubExplode();
}
Stop;
}
}
@ -830,7 +774,11 @@ Class MisterRailExitImpact : MisterBulletImpact
{
Spawn:
TNT1 A 0;
XEX7 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 1 Bright A_BulletSubExplode();
XEX7 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 1 Bright
{
A_SetScale(scale.x*1.02,scale.y*1.02);
A_BulletSubExplode();
}
Stop;
}
}
@ -845,7 +793,7 @@ Class MisterRailLight : PaletteLight
}
}
Class MisterRailHit : Actor
Class MisterRailHit : SWWMNonInteractiveActor
{
MisterRailCounter mrc;
@ -853,16 +801,9 @@ Class MisterRailHit : Actor
{
Obituary "$O_MORTALRIFLE";
DamageType 'Mortal';
Radius .1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+FORCERADIUSDMG;
+FOILINVUL;
+NODAMAGETHRUST;
+NOINTERACTION;
}
virtual void Explode( bool thruwall = false )
{
@ -870,17 +811,6 @@ Class MisterRailHit : Actor
[nhit, nkill] = SWWMUtility.DoExplosion(self,44,120000,100,100,DE_EXTRAZTHRUST|DE_COUNTENEMIES,ignoreme:target);
if ( mrc ) mrc.nkill += nkill;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -889,7 +819,7 @@ Class MisterRailHit : Actor
}
}
Class MisterRailBeam : Actor
Class MisterRailBeam : SWWMNonInteractiveActor
{
MisterRailCounter mrc;
transient CandyBeamTracer cbt; // from wikipedia
@ -898,15 +828,8 @@ Class MisterRailBeam : Actor
{
Obituary "$O_MORTALRIFLE";
RenderStyle "Add";
Radius .1;
Height 0.;
RenderRadius 10000.;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
+FOILINVUL;
}
override void PostBeginPlay()
@ -945,21 +868,14 @@ Class MisterRailBeam : Actor
Stop;
}
}
Class MisterRailChildBeam : Actor
Class MisterRailChildBeam : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Alpha .5;
RenderRadius 10000.;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -975,19 +891,12 @@ Class MisterRailChildBeam : Actor
}
}
Class MisterGrenadeFlare : Actor
Class MisterGrenadeFlare : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void Tick()
{
@ -999,7 +908,6 @@ Class MisterGrenadeFlare : Actor
}
SetOrigin(master.Vec3Offset(0,0,master.height/2),true);
}
States
{
Spawn:

View file

@ -41,26 +41,20 @@ Class QuadExplLight3 : PaletteLight
}
}
Class QuadFlare : Actor
Class QuadFlare : SWWMNonInteractiveActor
{
bool bBig;
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Alpha .5;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void Tick()
{
prev = pos;
if ( isFrozen() ) return;
if ( !master || !master.bMISSILE )
{
@ -84,23 +78,18 @@ Class QuadFlare : Actor
}
}
Class QuadTrail : Actor
Class QuadTrail : SWWMNonInteractiveActor
{
Mixin SWWMMinimalMovingTick;
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Alpha .5;
Scale 1.5;
+NOBLOCKMAP;
+NOGRAVITY;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+DONTSPLASH;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -116,18 +105,6 @@ Class QuadTrail : Actor
A_SetScale(scale.x*.96);
A_FadeOut(.05);
}
override void Tick()
{
if ( isFrozen() ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -136,22 +113,15 @@ Class QuadTrail : Actor
}
}
Class QuadEmber : Actor
Class QuadEmber : SWWMNonInteractiveActor
{
Vector3 freq, amp, ph;
Default
{
RenderStyle "Add";
Radius .1;
Height 0;
Scale .3;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -198,12 +168,6 @@ Class QuadEmber : Actor
}
else A_FadeOut(FRandom[ExploS](.02,.05));
frame = clamp(int(round(4-alpha*4)),0,4);
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -216,30 +180,13 @@ Class QuadEmber : Actor
}
}
Class QuadExplRing : Actor
Class QuadExplRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 1.2;
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -481,29 +428,14 @@ Class QuadExplArm2 : QuadExplArm
}
}
Class QuadExplTrail : Actor
Class QuadExplTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 1.2;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -1094,8 +1026,10 @@ Class OnFire : Inventory
}
}
Class OnFireTrail : Actor
Class OnFireTrail : SWWMNonInteractiveActor
{
Mixin SWWMMinimalMovingWaterTick;
override void PostBeginPlay()
{
Super.PostBeginPlay();
@ -1126,40 +1060,15 @@ Class OnFireTrail : Actor
A_SetScale(scale.x*.98,scale.y*.98);
A_FadeOut(.01);
}
override void Tick()
{
if ( isFrozen() ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
UpdateWaterLevel();
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
override bool CanCollideWith( Actor Other, bool passive )
{
return false;
}
Default
{
RenderStyle "Add";
Speed 2;
Radius 2;
Height 4;
Alpha .3;
Scale .6;
+NOBLOCKMAP;
+NOGRAVITY;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+DONTSPLASH;
+NOINTERACTION;
+MBFBOUNCER;
}
States
{

View file

@ -112,7 +112,7 @@ extend Class SWWMHandler
if ( a.bINVISIBLE && !(a is 'DynamicLight') ) continue;
if ( (a is 'Inventory') && Inventory(a).Owner ) continue;
if ( (a is 'SWWMPickupFlash') && (a.CurState == a.FindState('Pickup')) ) continue;
if ( (a is 'SWWMShadow') || (a is 'GhostArtifactX') || (a is 'HeadpatTracker') || (a is 'SWWMExtendedItemHitbox') || (a is 'SWWMTeleportLine') || (a is 'SWWMTeleportDest') ) continue;
if ( (a is 'SWWMShadow') || (a is 'SWWMItemOverlay') || (a is 'HeadpatTracker') || (a is 'SWWMExtendedItemHitbox') || (a is 'SWWMTeleportLine') || (a is 'SWWMTeleportDest') ) continue;
if ( a.Distance3DSquared(e.Camera) > 1000000 ) continue;
DrawActor(e,a);
}

View file

@ -537,9 +537,7 @@ Class SWWMDialogueTrigger : Actor
default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
+DONTSPLASH;
}
override void Activate( Actor activator )
{

View file

@ -68,7 +68,7 @@ Class RedShell16 : RedShell
}
}
Class GoldShellSparkle : Actor
Class GoldShellSparkle : SWWMNonInteractiveActor
{
override void PostBeginPlay()
{
@ -86,14 +86,7 @@ Class GoldShellSparkle : Actor
{
RenderStyle "Add";
Scale 0.05;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+SYNCHRONIZED;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
FloatBobPhase 0;
}
States
{

View file

@ -155,16 +155,10 @@ Mixin Class SWWMOverlapPickupSound
}
}
Class SWWMRespawnTimer : Actor
Class SWWMRespawnTimer : SWWMNonInteractiveActor
{
default
{
+NOGRAVITY;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
Radius .1;
Height 0.;
Args 0,3,2;
}
override void PostBeginPlay()
@ -195,12 +189,6 @@ Class SWWMRespawnTimer : Actor
A_SpawnParticle(Color(args[0]*85,args[1]*85,args[2]*85),SPF_FULLBRIGHT,Random[ExploS](30,60),FRandom[ExploS](1.,2.),0,0,0,16,FRandom[ExploS](-.8,.8),FRandom[ExploS](-.8,.8),FRandom[ExploS](-.8,.8),0,0,0,FRandom[ExploS](.45,.9)*str,-1,FRandom[ExploS](-.04,-.02)*str);
}
}
States
{
Spawn:
TNT1 A -1;
Stop;
}
}
Mixin Class SWWMPickupGlow
@ -219,6 +207,35 @@ Mixin Class SWWMPickupGlow
}
}
Class SWWMItemOverlay : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+FLOATBOB;
FloatBobStrength .25;
}
override void Tick()
{
if ( !target )
{
Destroy();
return;
}
prev = target.prev;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+target.vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
bInvisible = target.bInvisible||Inventory(target).Owner;
}
States
{
Spawn:
XZW1 A -1 Bright;
Stop;
}
}
Mixin Class SWWMRespawn
{
override void Hide()

View file

@ -283,19 +283,11 @@ Class SWWMFlag : Actor
}
// oof
Class SWWMGasCloudSpawner : Actor
Class SWWMGasCloudSpawner : SWWMNonInteractiveActor
{
Default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !(special1%5) )
{
Vector3 x, y, z;
@ -309,20 +301,15 @@ Class SWWMGasCloudSpawner : Actor
}
}
Class SWWMGasCloud : Actor
Class SWWMGasCloud : SWWMNonInteractiveActor
{
Default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
+FORCERADIUSDMG;
}
override void Tick()
{
if ( isFrozen() ) return;
for ( int i=0; i<2; i++ )
{
let e = Spawn("SWWMFart",level.Vec3Offset(pos,specialf1*SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*20.));
@ -352,7 +339,7 @@ Class SWWMFart : SWWMHalfSmoke
}
// yay!
Class FancyConfetti : Actor
Class FancyConfetti : SWWMNonInteractiveActor
{
int deadtimer;
bool dead;
@ -362,20 +349,10 @@ Class FancyConfetti : Actor
Default
{
Radius 2;
Height 2;
+NOBLOCKMAP;
+DROPOFF;
+THRUACTORS;
+NOTELEPORT;
+DONTSPLASH;
+INTERPOLATEANGLES;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
+SYNCHRONIZED;
Gravity 0.05;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -522,20 +499,13 @@ Class FancyConfetti : Actor
Stop;
}
}
Class SuperFancyTrail : Actor
Class SuperFancyTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
XScale 24.;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -550,24 +520,16 @@ Class SuperFancyTrail : Actor
Stop;
}
}
Class SuperFancySparkle : Actor
Class SuperFancySparkle : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale .25;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+INTERPOLATEANGLES;
+FORCEXYBILLBOARD;
+NOINTERACTION;
+SYNCHRONIZED;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -583,8 +545,8 @@ Class SuperFancySparkle : Actor
}
override void Tick()
{
if ( isFrozen() ) return;
prev = pos;
if ( isFrozen() ) return;
A_SetScale(scale.x*specialf1);
A_SetRoll(roll+special1,SPF_INTERPOLATE);
A_FadeOut(specialf2);
@ -641,19 +603,10 @@ Class SuperPartyLight : PaletteLight
SetOrigin(level.Vec3Offset(pos,vel),true);
}
}
Class PartyTime : Actor
Class PartyTime : SWWMNonInteractiveActor
{
bool ignite;
Default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void PostBeginPlay()
{
if ( target ) specialf1 = target.Height/2.;

View file

@ -236,14 +236,8 @@ Mixin Class SWWMShadedPowerup
}
}
Class GhostSnd : Actor
Class GhostSnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -405,44 +399,7 @@ Class GhostPower : PowerInvisibility
}
}
Class GhostArtifactX : Actor
{
SpriteID bsprite;
Default
{
RenderStyle "Add";
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOINTERACTION;
Radius .1;
Height 0;
+FLOATBOB;
FloatBobStrength 0.25;
}
override void Tick()
{
if ( !target )
{
Destroy();
return;
}
prev = target.prev;
vel = target.vel;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
if ( !bsprite ) bsprite = GetSpriteIndex('XZW1');
bInvisible = target.bInvisible||(target.sprite!=bsprite);
}
States
{
Spawn:
XZW1 A -1 Bright;
Stop;
}
}
Class GhostArtifactX : SWWMItemOverlay {}
Class GhostArtifact : Inventory
{
@ -521,14 +478,8 @@ Class GhostArtifact : Inventory
}
}
Class GravSnd : Actor
Class GravSnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -614,7 +565,7 @@ Class GravityPower : Powerup
}
Class GravityX : GhostArtifactX
Class GravityX : SWWMItemOverlay
{
Default
{
@ -717,14 +668,8 @@ Class InvinciballLight : PointLightAttenuated
bDORMANT = Powerup(master).isBlinking();
}
}
Class InvinciSnd : Actor
Class InvinciSnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -854,7 +799,7 @@ Class InvinciballPower : Powerup
}
}
Class InvinciballX : GhostArtifactX
Class InvinciballX : SWWMItemOverlay
{
Default
{
@ -967,14 +912,8 @@ Class RagekitLight : PointLightAttenuated
}
}
Class RageSnd : Actor
Class RageSnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -1140,7 +1079,7 @@ Class RagekitPower : Powerup
}
}
Class RagekitX : GhostArtifactX
Class RagekitX : SWWMItemOverlay
{
Default
{
@ -2002,14 +1941,8 @@ Class BarrierLight : PointLightAttenuated
bDORMANT = Powerup(master).isBlinking();
}
}
Class BarrierSnd : Actor
Class BarrierSnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -2273,9 +2206,7 @@ Class EBarrier : Inventory
}
}
Class EBarrierX : GhostArtifactX
{
}
Class EBarrierX : SWWMItemOverlay {}
Class TendrilTracer : LineTracer
{
@ -2308,7 +2239,7 @@ Class TendrilTracer : LineTracer
}
// main heatseeker
Class MykradvoTendril : Actor
Class MykradvoTendril : SWWMNonInteractiveActor
{
Vector3 nextpos, nextdir;
@ -2446,15 +2377,8 @@ Class MykradvoTendril : Actor
DamageFunction 100;
ReactionTime 8;
Speed 64;
Radius .1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+INTERPOLATEANGLES;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
+MISSILEMORE;
}
States
@ -2622,7 +2546,7 @@ Class MykradvoBurstLight : PaletteLight
}
// 'splode
Class MykradvoBurst : Actor
Class MykradvoBurst : SWWMNonInteractiveActor
{
Array<Actor> targets;
int nstep;
@ -2630,11 +2554,7 @@ Class MykradvoBurst : Actor
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 1.4;
}
void FlashPlayer( int str, double rad )
@ -2955,7 +2875,7 @@ Class Mykradvo : Inventory
}
}
Class MykradvoX : GhostArtifactX
Class MykradvoX : SWWMItemOverlay
{
Default
{
@ -2976,14 +2896,12 @@ Class MykradvoX : GhostArtifactX
return;
}
prev = target.prev;
vel = target.vel;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
A_SetScale(.16+.01*sin(GetAge()*4));
if ( !bsprite ) bsprite = GetSpriteIndex('XZW0');
bool bOldInvis = bInvisible;
bInvisible = target.bInvisible||(target.sprite!=bsprite);
bInvisible = target.bInvisible||Inventory(target).Owner;
if ( bInvisible != bOldInvis )
{
SetState(SpawnState+bInvisible);
@ -2999,7 +2917,7 @@ Class MykradvoX : GhostArtifactX
}
}
Class MykradvoX2 : GhostArtifactX
Class MykradvoX2 : SWWMItemOverlay
{
Default
{
@ -3018,16 +2936,14 @@ Class MykradvoX2 : GhostArtifactX
return;
}
prev = target.prev;
vel = target.vel;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
A_SetPitch(sin(GetAge()*special1*8)*5,SPF_INTERPOLATE);
A_SetRoll(cos(GetAge()*special1*8)*5,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
A_SetScale(1.+.05*cos(GetAge()*4)*special1);
if ( !bsprite ) bsprite = GetSpriteIndex('XZW0');
bool bOldInvis = bInvisible;
bInvisible = target.bInvisible||(target.sprite!=bsprite);
bInvisible = target.bInvisible||Inventory(target).Owner;
if ( bInvisible != bOldInvis )
SetState(SpawnState+bInvisible);
}
@ -3194,14 +3110,8 @@ Class AngeryLight : PointLightAttenuated
bDORMANT = Powerup(master).isBlinking();
}
}
Class AngerySnd : Actor
Class AngerySnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -3394,7 +3304,7 @@ Class AngerySigil : Inventory
Stop;
}
}
Class AngerySigilX : GhostArtifactX
Class AngerySigilX : SWWMItemOverlay
{
Default
{
@ -3417,13 +3327,11 @@ Class AngerySigilX : GhostArtifactX
return;
}
prev = target.prev;
vel = target.vel;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
if ( !bsprite ) bsprite = GetSpriteIndex('XZW1');
bool bOldInvis = bInvisible;
bInvisible = target.bInvisible||(target.sprite!=bsprite);
bInvisible = target.bInvisible||Inventory(target).Owner;
if ( bInvisible != bOldInvis )
{
SetState(SpawnState+bInvisible);
@ -3464,14 +3372,8 @@ Class DivineSpriteLight : PointLightAttenuated
args[LIGHT_INTENSITY] = Random[Invinciball](10,12)*10;
}
}
Class DivineSpriteSnd : Actor
Class DivineSpriteSnd : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
}
override void Tick()
{
if ( !target || !master )
@ -3668,7 +3570,7 @@ Class DivineSprite : Inventory
Stop;
}
}
Class DivineSpriteX : GhostArtifactX
Class DivineSpriteX : SWWMItemOverlay
{
Default
{
@ -3689,13 +3591,11 @@ Class DivineSpriteX : GhostArtifactX
return;
}
prev = target.prev;
vel = target.vel;
if ( (target.pos != pos) || (target.vel != (0,0,0)) ) SetOrigin(target.pos+vel,true);
if ( angle != target.angle ) A_SetAngle(target.angle,SPF_INTERPOLATE);
FloatBobPhase = target.FloatBobPhase;
if ( !bsprite ) bsprite = GetSpriteIndex('XZW1');
bool bOldInvis = bInvisible;
bInvisible = target.bInvisible||(target.sprite!=bsprite);
bInvisible = target.bInvisible||Inventory(target).Owner;
if ( bOldInvis != bInvisible )
{
SetState(SpawnState+bInvisible);
@ -3713,18 +3613,8 @@ Class DivineSpriteX : GhostArtifactX
// TBD 1.4 Ballsy Bomb
Class BallImpact : Actor
Class BallImpact : SWWMNonInteractiveActor
{
Default
{
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
@ -4061,24 +3951,18 @@ Class SaltLight2 : PaletteLight
}
}
Class SaltImpact : Actor
Class SaltImpact : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_SALTSHOT";
DamageType "Salt";
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale 1.8;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -4117,17 +4001,6 @@ Class SaltImpact : Actor
}
Spawn("SaltLight2",pos);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -4144,27 +4017,20 @@ Class SaltImpact : Actor
}
}
Class SaltBeam : Actor
Class SaltBeam : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_SALTSHOT";
DamageType "Salt";
RenderStyle "Add";
Radius 0.1;
Height 0;
Stamina 9;
Speed 32;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+ROLLSPRITE;
+ROLLCENTER;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FOILINVUL;
+NOINTERACTION;
}
void SpreadOut()

View file

@ -1,13 +1,10 @@
// Gore FX ported over from Soundless Mound, with some edits
// Base blood actor
Class mkBlood : Actor
Class mkBlood : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOTELEPORT;
+PUFFGETSOWNER;
}
action void A_Bleed( int str = 1 )
@ -37,17 +34,6 @@ Class mkBlood : Actor
s.scale *= .4*str;
s.special1 += str-1;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -61,7 +47,7 @@ Class mkBlood : Actor
}
// a burst of blood attached to a bleeding actor
Class mkBloodSpray : Actor
Class mkBloodSpray : SWWMNonInteractiveActor
{
double str;
int cnt;
@ -69,13 +55,6 @@ Class mkBloodSpray : Actor
double baseang;
color shadecol;
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
if ( !target )
@ -129,7 +108,7 @@ Class mkBloodSpray : Actor
// drop of salsa
// becomes a decal on crash
Class mkBloodDrop : Actor
Class mkBloodDrop : SWWMNonInteractiveActor
{
bool killme;
bool dead, onceiling;
@ -140,17 +119,10 @@ Class mkBloodDrop : Actor
Default
{
+MISSILE;
+NOBLOCKMAP;
+DROPOFF;
+NOTELEPORT;
+THRUACTORS;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
Scale .35;
Radius 2;
Height 2;
Mass 1;
RenderStyle "Translucent";
}
@ -410,14 +382,10 @@ Class mkBloodDrop : Actor
}
// chunky salsa in the air
Class mkBloodSmoke : Actor
Class mkBloodSmoke : SWWMNonInteractiveActor
{
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOINTERACTION;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
Scale .5;
@ -441,12 +409,6 @@ Class mkBloodSmoke : Actor
A_FadeOut(.04/max(1.,special1));
A_SetScale(scale.x*(1.+.04/max(1.,special1)));
vel *= 1.-.04/max(1.,special1);
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -617,7 +579,7 @@ Class mkFlyingGib : Actor
}
// Manually added gibbing
Class mkGibber : Actor
Class mkGibber : SWWMNonInteractiveActor
{
Actor Gibbed;
int gibcount, gibsize;
@ -726,11 +688,6 @@ Class mkGibber : Actor
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
Radius 32;
Height 16;
mkGibber.GibType "mkFlyingGib";
@ -761,7 +718,7 @@ Class PurpleBloodReference : Actor
}
// bare actor used for extra gib deaths
Class ExtraGibDeaths : Actor
Class ExtraGibDeaths : SWWMNonInteractiveActor
{
StateLabel gibstate;

View file

@ -24,8 +24,76 @@ enum ESWWMGZChannels
const FallbackTag = "AWESOME IT'S PENIS"; // used on tag processing, please don't mind the actual string used)
const MaxBouncePerTic = 40; // maximum simultaneous bounces in one tic for a lightweight actor before we consider it's stuck
// super-minimal tick override that simply advances states when not frozen
Mixin Class SWWMMinimalTick
{
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
}
// + move by velocity
Mixin Class SWWMMinimalMovingTick
{
override void Tick()
{
prev = pos;
if ( isFrozen() ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
}
// + check water level after move
Mixin Class SWWMMinimalMovingWaterTick
{
override void Tick()
{
prev = pos;
if ( isFrozen() ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
UpdateWaterLevel();
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
}
// absolutely non-interactive actor that is net-safe for clientside use
Class SWWMNonInteractiveActor : Actor
{
Mixin SWWMMinimalTick;
Default
{
+NOINTERACTION;
+NOBLOCKMAP; // needed since we don't use the internal Tick
+SYNCHRONIZED;
+DONTBLAST;
FloatBobPhase 0;
Radius .1;
Height 0;
}
}
// basic "does nothing" actor, used to remove stuff in CheckReplacement
Class SWWMNothing : Actor
Class SWWMNothing : SWWMNonInteractiveActor
{
States
{

View file

@ -68,27 +68,17 @@ Class PaletteLight : PointLight
}
// Generic smoke, lightweight tick
Class SWWMSmoke : Actor
Class SWWMSmoke : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Shaded";
StencilColor "FFFFFF";
Radius .1;
Height 0;
Speed 1;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+THRUACTORS;
+NOTELEPORT;
+NOINTERACTION;
+SYNCHRONIZED;
Scale .3;
FloatBobPhase 0;
}
override void PostBeginPlay()
@ -171,6 +161,7 @@ Class SWWMSmoke : Actor
Destroy();
return;
}
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
@ -187,27 +178,18 @@ Class SWWMSmoke : Actor
}
}
// strictly non-interacting smoke, much lighter tick, used for heavier effects
Class SWWMHalfSmoke : Actor
// strictly non-colliding smoke, much lighter tick, used for heavier effects
Class SWWMHalfSmoke : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Shaded";
StencilColor "FFFFFF";
Radius .1;
Height 0;
Speed 1;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+NOTELEPORT;
+NOINTERACTION;
+SYNCHRONIZED;
Scale 0.3;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -237,6 +219,7 @@ Class SWWMHalfSmoke : Actor
Destroy();
return;
}
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
@ -276,23 +259,13 @@ Class SWWMSmallSmoke : SWWMHalfSmoke
}
}
Class SWWMBubble : Actor
Class SWWMBubble : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+THRUACTORS;
+NOINTERACTION;
+SYNCHRONIZED;
Scale 0.5;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -365,6 +338,7 @@ Class SWWMBubble : Actor
SetOrigin(newpos,true);
UpdateWaterLevel();
if ( (waterlevel <= 0) || !Random[Puff](0,100) ) Destroy();
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
@ -380,19 +354,12 @@ Class SWWMBubble : Actor
}
}
Class SWWMSparkTrail : Actor
Class SWWMSparkTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -408,7 +375,7 @@ Class SWWMSparkTrail : Actor
}
}
Class SWWMSpark : Actor
Class SWWMSpark : SWWMNonInteractiveActor
{
bool dead;
Sector tracksector;
@ -417,18 +384,9 @@ Class SWWMSpark : Actor
Default
{
RenderStyle "Add";
Radius .1;
Height 0;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+THRUACTORS;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
+SYNCHRONIZED;
Gravity 0.2;
Scale 0.05;
FloatBobPhase 0;
Gravity .2;
Scale .05;
}
override void Tick()
{
@ -554,6 +512,7 @@ Class SWWMSpark : Actor
Destroy();
return;
}
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
@ -572,7 +531,7 @@ Class SWWMSpark : Actor
}
}
Class SWWMChip : Actor
Class SWWMChip : SWWMNonInteractiveActor
{
SWWMChip prevchip, nextchip;
bool killme;
@ -583,21 +542,12 @@ Class SWWMChip : Actor
Default
{
Radius .1;
Height 0;
+NOBLOCKMAP;
+THRUACTORS;
+NOTELEPORT;
+DONTSPLASH;
+INTERPOLATEANGLES;
+ROLLSPRITE;
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
+SYNCHRONIZED;
Gravity 0.35;
Scale 0.2;
FloatBobPhase 0;
Gravity .35;
Scale .2;
}
override void PostBeginPlay()
{
@ -781,33 +731,14 @@ Class PoofLight2 : PaletteLight
}
}
Class SWWMItemFog : Actor
Class SWWMItemFog : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
+SYNCHRONIZED;
+FORCEXYBILLBOARD;
FloatBobPhase 0;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -849,23 +780,15 @@ Class TeleLight : PaletteLight
}
}
Class SWWMTeleportSparkle : Actor
Class SWWMTeleportSparkle : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 0.3;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
Scale .3;
+ROLLSPRITE;
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
+SYNCHRONIZED;
FloatBobPhase 0;
}
override void Tick()
{
@ -887,18 +810,8 @@ Class SWWMTeleportSparkle : Actor
}
}
Class SWWMTeleportDest : Actor
Class SWWMTeleportDest : SWWMNonInteractiveActor
{
Default
{
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
special1 = Random[ExploS](0,10);
@ -918,20 +831,10 @@ Class SWWMTeleportDest : Actor
}
}
Class SWWMTeleportLine : Actor
Class SWWMTeleportLine : SWWMNonInteractiveActor
{
Line tline;
Default
{
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
special1 = Random[ExploS](0,5);
@ -965,20 +868,12 @@ Class SWWMTeleportLine : Actor
}
}
Class SWWMTeleportFog : Actor
Class SWWMTeleportFog : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOINTERACTION;
+SYNCHRONIZED;
+FORCEXYBILLBOARD;
Radius .1;
Height 0.;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -986,17 +881,6 @@ Class SWWMTeleportFog : Actor
A_StartSound("misc/teleport",CHAN_VOICE);
Spawn("TeleLight",pos);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -1034,7 +918,7 @@ Class SWWMTeleportFog : Actor
}
}
Class SWWMPickupFlash : Actor
Class SWWMPickupFlash : SWWMNonInteractiveActor
{
Vector3 lastitempos;
@ -1042,17 +926,9 @@ Class SWWMPickupFlash : Actor
{
RenderStyle "Add";
Args 0,3,2,1;
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
+SYNCHRONIZED;
+FORCEXYBILLBOARD;
FloatBobPhase 0;
}
override void PostBeginPlay()
{
@ -1109,17 +985,6 @@ Class SWWMPickupFlash : Actor
A_SetScale(FRandom[ClientSparkles](.9,1.1)*(max(target.radius,target.height)/16.));
alpha = FRandom[ClientSparkles](.9,1.)*clamp((max(0,Distance3DSquared(players[consoleplayer].Camera)-40000.)/160000000.)**.25,0.,1.);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -1198,8 +1063,6 @@ Class InvisibleSplasher : Actor
Radius 2;
Height 4;
+NOBLOCKMAP; // needed to prevent infinite loops with some 3D floor water (yes, you read that right)
+SYNCHRONIZED;
FloatBobPhase 0;
}
States
{
@ -1286,7 +1149,7 @@ Class SWWMBulletTrail : LineTracer
// Dummy "puff" actor used for hitscan compatibility
// (don't forget to pass DMG_INFLICTOR_IS_PUFF to DamageMobj calls for this to work)
Class SWWMPuff : Actor
Class SWWMPuff : SWWMNonInteractiveActor
{
static Actor Setup( Vector3 pos, Vector3 dir, Actor inflictor = null, Actor source = null, Actor victim = null )
{
@ -1306,32 +1169,12 @@ Class SWWMPuff : Actor
return Super.GetObituary(victim,inflictor,mod,playerattack);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOINTERACTION;
+SYNCHRONIZED;
+DONTSPLASH;
+NOTELEPORT;
+ALWAYSPUFF;
+PUFFONACTORS;
+PUFFGETSOWNER;
+HITTRACER;
FloatBobPhase 0;
}
States
{
@ -1362,7 +1205,7 @@ Class SWWMItemTracer : LineTracer
}
// Blob shadows
Class SWWMShadow : Actor
Class SWWMShadow : SWWMNonInteractiveActor
{
Sector oldfloor;
@ -1422,14 +1265,6 @@ Class SWWMShadow : Actor
RenderStyle "Shaded";
StencilColor "000000";
DistanceCheck 'swwm_shadowdist';
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOINTERACTION;
+SYNCHRONIZED;
+DONTSPLASH;
+NOTELEPORT;
FloatBobPhase 0;
}
States
{
@ -1440,40 +1275,20 @@ Class SWWMShadow : Actor
}
// Terrain FX (cheap)
Class SWWMBaseSplash : Actor
Class SWWMBaseSplash : SWWMNonInteractiveActor abstract
{
default
{
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOINTERACTION;
+SYNCHRONIZED;
+DONTSPLASH;
+NOTELEPORT;
FloatBobPhase 0;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
abstract void DoSplash();
States
{
Spawn:
TNT1 A 1;
TNT1 A 1 NoDelay DoSplash();
Stop;
}
}
Class SWWMWaterSplash : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1492,7 +1307,7 @@ Class SWWMWaterSplash : SWWMBaseSplash
}
Class SWWMWaterSplash2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1511,7 +1326,7 @@ Class SWWMWaterSplash2 : SWWMBaseSplash
}
Class SWWMBloodSplash : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1530,7 +1345,7 @@ Class SWWMBloodSplash : SWWMBaseSplash
}
Class SWWMBloodSplash2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1549,7 +1364,7 @@ Class SWWMBloodSplash2 : SWWMBaseSplash
}
Class SWWMSludgeSplash : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1568,7 +1383,7 @@ Class SWWMSludgeSplash : SWWMBaseSplash
}
Class SWWMSludgeSplash2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1587,7 +1402,7 @@ Class SWWMSludgeSplash2 : SWWMBaseSplash
}
Class SWWMMudSplash : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1606,7 +1421,7 @@ Class SWWMMudSplash : SWWMBaseSplash
}
Class SWWMMudSplash2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1625,7 +1440,7 @@ Class SWWMMudSplash2 : SWWMBaseSplash
}
Class SWWMSlimeSplash : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1644,7 +1459,7 @@ Class SWWMSlimeSplash : SWWMBaseSplash
}
Class SWWMSlimeSplash2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1663,7 +1478,7 @@ Class SWWMSlimeSplash2 : SWWMBaseSplash
}
Class SWWMLavaSplash : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1683,7 +1498,7 @@ Class SWWMLavaSplash : SWWMBaseSplash
}
Class SWWMLavaSplash2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1703,7 +1518,7 @@ Class SWWMLavaSplash2 : SWWMBaseSplash
}
Class SWWMSizzleSmoke : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;
@ -1725,7 +1540,7 @@ Class SWWMSizzleSmoke : SWWMBaseSplash
}
Class SWWMSizzleSmoke2 : SWWMBaseSplash
{
override void PostBeginPlay()
override void DoSplash()
{
double ang, pt, str;
Vector3 dir;

View file

@ -1,18 +1,11 @@
// gesture effects
Class LoveHeartTrail : Actor
Class LoveHeartTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Alpha .1;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
}
override void Tick()
@ -29,18 +22,11 @@ Class LoveHeartTrail : Actor
}
}
Class LoveHeartSparkle : Actor
Class LoveHeartSparkle : SWWMNonInteractiveActor
{
Default
{
Radius .1;
Height 0.;
Scale .03;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
}
override void PostBeginPlay()

View file

@ -96,7 +96,7 @@ Class SWWMDroppedKeen : Actor
}
}
Class SWWMBossBrainExpl : Actor
Class SWWMBossBrainExpl : SWWMNonInteractiveActor
{
void A_Ignite()
{
@ -141,13 +141,6 @@ Class SWWMBossBrainExpl : Actor
{
RenderStyle "Add";
Scale 2.5;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
}
States
@ -201,13 +194,11 @@ Class SWWMBossBrainExplArm : Actor
Wait;
}
}
Class SWWMBossBrainPain : Actor
Class SWWMBossBrainPain : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
}
States
{

View file

@ -164,21 +164,14 @@ Class AmmoOrb : SlayerOrb
}
}
Class SlayerOrbTrail : Actor abstract
Class SlayerOrbTrail : SWWMNonInteractiveActor abstract
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Scale .25;
Alpha .5;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
@ -264,22 +257,16 @@ Class SWWMMagItem play
}
}
Class DashTrail : Actor
Class DashTrail : SWWMNonInteractiveActor
{
Mixin SWWMMinimalMovingWaterTick;
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Scale 0.3;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+SYNCHRONIZED;
Scale .3;
+MASTERNOSEE;
FloatBobPhase 0;
+FORCEXYBILLBOARD;
}
override void PostBeginPlay()
{
@ -296,20 +283,6 @@ Class DashTrail : Actor
s.scale *= 1.4;
s.alpha *= .3;
}
override void Tick()
{
if ( isFrozen() ) return;
prev = pos;
SetOrigin(level.Vec3Offset(pos,vel),true);
UpdateWaterLevel();
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -322,43 +295,23 @@ Class DashTrail : Actor
}
}
Class DashTrail2 : Actor
Class DashTrail2 : SWWMNonInteractiveActor
{
Mixin SWWMMinimalMovingWaterTick;
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Scale 0.2;
Alpha 0.4;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+SYNCHRONIZED;
Scale .2;
Alpha .4;
+MASTERNOSEE;
FloatBobPhase 0;
+FORCEXYBILLBOARD;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
SetState(FindState("Spawn")+Random[ExploS](0,7));
}
override void Tick()
{
if ( isFrozen() ) return;
prev = pos;
SetOrigin(level.Vec3Offset(pos,vel),true);
UpdateWaterLevel();
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -378,33 +331,13 @@ Class DashTrail2 : Actor
}
}
Class DemolitionistRadiusShockwaveTail : Actor
Class DemolitionistRadiusShockwaveTail : SWWMNonInteractiveActor
{
Mixin SWWMMinimalMovingTick;
Default
{
RenderStyle "Add";
Radius 16;
Height 8;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+SYNCHRONIZED;
FloatBobPhase 0;
}
override void Tick()
{
if ( isFrozen() ) return;
prev = pos;
SetOrigin(level.Vec3Offset(pos,vel),true);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -492,18 +425,12 @@ Class DemolitionistRadiusShockwave : Actor
}
}
Class DemolitionistShockwave : Actor
Class DemolitionistShockwave : SWWMNonInteractiveActor
{
Default
{
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
@ -570,17 +497,6 @@ Class DemolitionistShockwave : Actor
}
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:

View file

@ -2364,16 +2364,12 @@ Class SWWMUtility
}
}
Class RadiusDebugSphere : Actor
Class RadiusDebugSphere : SWWMNonInteractiveActor
{
Default
{
RenderStyle "AddStencil";
StencilColor "White";
Radius .1;
Height 0.;
+NOGRAVITY;
+NOINTERACTION;
}
States
{

View file

@ -94,18 +94,11 @@ Class SWWMCasing : Actor abstract
}
}
Class SWWMBulletImpact : Actor
Class SWWMBulletImpact : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
Scale 0.25;
}
override void PostBeginPlay()
@ -176,17 +169,11 @@ Class SWWMWeaponLight : DynamicLight
}
}
Class PunchImpact : Actor
Class PunchImpact : SWWMNonInteractiveActor
{
Default
{
Tag "WallCrack";
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -224,20 +211,13 @@ Class PunchImpact : Actor
}
}
Class BigPunchSplash : Actor
Class BigPunchSplash : SWWMNonInteractiveActor
{
Default
{
DamageType 'Melee';
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -247,17 +227,8 @@ Class BigPunchSplash : Actor
}
}
Class BigPunchImpact : Actor
Class BigPunchImpact : SWWMNonInteractiveActor
{
Default
{
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();

View file

@ -80,20 +80,14 @@ Class ParryDamageChecker : Inventory
}
}
Class ParryRing : Actor
Class ParryRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale .1;
Alpha .3;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
States
{
@ -103,22 +97,11 @@ Class ParryRing : Actor
}
}
Class ParryField : Actor
Class ParryField : SWWMNonInteractiveActor
{
bool critsnd;
Array<Actor> justparried;
Default
{
Radius .1;
Height 0.;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( !master )

View file

@ -1,7 +1,7 @@
// Imanaki Corp Hellfire Cannon Mk3, aka "Hellblazer" (from SWWM series, originally inspired by the Hellraiser from OMGWEAPONS)
// Slot 6, replaces Rocket Launcher, Phoenix Rod, Firestorm
Class HellblazerX : GhostArtifactX
Class HellblazerX : SWWMItemOverlay
{
States
{

View file

@ -9,20 +9,14 @@ Class HellblazerExplLight : PaletteLight
ReactionTime 25;
}
}
Class HellblazerSubExpl : Actor
Class HellblazerSubExpl : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 2.2;
Radius 0.1;
Height 0;
Alpha .75;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
+ROLLSPRITE;
+ROLLCENTER;
}
@ -33,17 +27,6 @@ Class HellblazerSubExpl : Actor
scale.x *= RandomPick[ExploS](-1,1);
scale.y *= RandomPick[ExploS](-1,1);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -52,30 +35,13 @@ Class HellblazerSubExpl : Actor
}
}
Class HellblazerRing : Actor
Class HellblazerRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 2.;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -85,29 +51,14 @@ Class HellblazerRing : Actor
}
}
Class HellblazerArmTrail : Actor
Class HellblazerArmTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 2.5;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -165,38 +116,20 @@ Class HellblazerArm : Actor
}
}
Class HellblazerTrail : Actor
Class HellblazerTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Scale .2;
Alpha .3;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
SetState(FindState("Spawn")+Random[ExploS](0,7));
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -216,19 +149,12 @@ Class HellblazerTrail : Actor
}
}
Class HellblazerFlare : Actor
Class HellblazerFlare : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void Tick()

View file

@ -1,17 +1,7 @@
// Wallbuster effects
Class BustedQuake : Actor
Class BustedQuake : SWWMNonInteractiveActor
{
Default
{
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
if ( (special1 < 3) || (special1 > 6) )
@ -27,12 +17,6 @@ Class BustedQuake : Actor
A_QuakeEx(special1,special1,special1,20+special1*5,0,300+special1*90,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,rollIntensity:special1*.1);
A_AlertMonsters(swwm_uncapalert?0:2500);
}
override void Tick()
{
if ( isFrozen() ) return;
tics--;
if ( tics <= 0 ) Destroy();
}
States
{
Spawn:

View file

@ -23,18 +23,8 @@ Class EvisceratorChunkLight : PointLightAttenuated
}
}
Class ChunkImpact : Actor
Class ChunkImpact : SWWMNonInteractiveActor
{
Default
{
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
@ -68,20 +58,13 @@ Class ChunkImpact : Actor
}
}
Class EvisceratorChunkGlow : Actor
Class EvisceratorChunkGlow : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
Scale .25;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -104,20 +87,13 @@ Class EvisceratorChunkGlow : Actor
}
}
Class EvisceratorChunkTrail : Actor
Class EvisceratorChunkTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
XScale 8.;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -400,19 +376,9 @@ Class EvisceratorChunk : Actor
}
}
Class EvisceratorProjSmoke : Actor
Class EvisceratorProjSmoke : SWWMNonInteractiveActor
{
double lifetime, lifespeed;
Default
{
Radius 0.1;
Height 0;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
lifetime = 0;
@ -620,31 +586,14 @@ Class EvisceratorProj : Actor
}
}
Class EvisceratorSubExpl : Actor
Class EvisceratorSubExpl : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 2.;
Alpha .6;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -654,30 +603,13 @@ Class EvisceratorSubExpl : Actor
}
}
Class EvisceratorRing : Actor
Class EvisceratorRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 4.;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{

View file

@ -1,7 +1,7 @@
// Ynykron projectiles and effects
// there was an enemy here, but it's gone now
Class AshenRemains : Actor
Class AshenRemains : SWWMNonInteractiveActor
{
override void Tick()
{
@ -27,12 +27,6 @@ Class AshenRemains : Actor
{
RenderStyle "Shaded";
StencilColor "000000";
Radius .1;
Height 0.;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
States
{
@ -256,20 +250,14 @@ Class YnykronImpactArm : Actor
}
}
Class YnykronImpactTrail : Actor
Class YnykronImpactTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 2.;
Alpha .2;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
@ -278,17 +266,6 @@ Class YnykronImpactTrail : Actor
Scale.x *= RandomPick[ExploS](-1,1);
Scale.y *= RandomPick[ExploS](-1,1);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -297,19 +274,10 @@ Class YnykronImpactTrail : Actor
}
}
Class YnykronDelayedImpact : Actor
Class YnykronDelayedImpact : SWWMNonInteractiveActor
{
Vector3 ofs;
Default
{
+NOBLOCKMAP;
+NOGRAVITY;
+NOTELEPORT;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void Tick()
{
if ( isFrozen() ) return;
@ -332,7 +300,7 @@ Class YnykronDelayedImpact : Actor
}
}
Class YnykronImpact : Actor
Class YnykronImpact : SWWMNonInteractiveActor
{
int rad;
@ -342,17 +310,10 @@ Class YnykronImpact : Actor
DamageType "Ynykron";
RenderStyle "Add";
Scale 5.;
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+NOINTERACTION;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+EXTREMEDEATH;
Radius .1;
Height 0.;
}
private bool CmpDist( Actor a, Actor b )
@ -544,17 +505,6 @@ Class YnykronImpact : Actor
YnykronShot(master).blastcount--;
Super.OnDestroy();
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -649,7 +599,7 @@ Class YnykronInWallTracer : YnykronTracer
}
}
Class YnykronBeam : Actor
Class YnykronBeam : SWWMNonInteractiveActor
{
bool nospread;
@ -894,15 +844,8 @@ Class YnykronBeam : Actor
Obituary "$O_YNYKRON";
DamageType "Ynykron";
RenderStyle "Add";
Radius .1;
Height 0;
Alpha .4;
Speed 128;
+NOGRAVITY;
+NOBLOCKMAP;
+NOCLIP;
+NOTELEPORT;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
@ -910,7 +853,6 @@ Class YnykronBeam : Actor
+FORCERADIUSDMG;
+FOILINVUL;
+EXTREMEDEATH;
+NOINTERACTION;
}
States
{
@ -955,18 +897,8 @@ Class YnykronBeam : Actor
}
}
Class DelayedWallBeam : Actor
Class DelayedWallBeam : SWWMNonInteractiveActor
{
Default
{
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void PostBeginPlay()
{
if ( YnykronShot(master) )
@ -1014,34 +946,16 @@ Class DelayedWallBeam : Actor
}
}
Class YnykronRing : Actor
Class YnykronRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale .6;
Alpha .05;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -1052,20 +966,13 @@ Class YnykronRing : Actor
}
// non-model version, for impacts
Class YnykronImpactRing : Actor
Class YnykronImpactRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale 2.;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void Tick()
{
@ -1087,7 +994,7 @@ Class YnykronImpactRing : Actor
}
}
Class YnykronShot : Actor
Class YnykronShot : SWWMNonInteractiveActor
{
Array<Actor> hitlist;
bool hitboss;
@ -1096,16 +1003,6 @@ Class YnykronShot : Actor
int blastcount;
int lastimpact;
Default
{
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
void FlashPlayer( int str, double rad )
{
if ( !SWWMUtility.InPlayerFOV(players[consoleplayer],self,rad) ) return;
@ -1223,19 +1120,12 @@ Class YnykronAltTracer : LineTracer
}
}
Class YnykronHaloTail : Actor
Class YnykronHaloTail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOBLOCKMAP;
+NOINTERACTION;
+FORCEXYBILLBOARD;
Radius .1;
Height 0.;
Scale 1.5;
}
override void Tick()
@ -1252,19 +1142,12 @@ Class YnykronHaloTail : Actor
}
}
Class YnykronHalo : Actor
Class YnykronHalo : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOBLOCKMAP;
+NOINTERACTION;
+FORCEXYBILLBOARD;
Radius .1;
Height 0.;
Scale 1.5;
}
override void Tick()
@ -1288,20 +1171,9 @@ Class YnykronHalo : Actor
}
}
Class GatherDust : Actor
Class GatherDust : SWWMNonInteractiveActor
{
override void Tick()
{
if ( isFrozen() ) return;
SetOrigin(level.Vec3Offset(pos,vel),true);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
Mixin SWWMMinimalMovingTick;
override void PostBeginPlay()
{
@ -1339,17 +1211,9 @@ Class GatherDust : Actor
Default
{
RenderStyle "Shaded";
Radius .1;
Height 0.;
Alpha 0.;
Scale 3.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+FORCEXYBILLBOARD;
+NOCLIP;
}
States
{
@ -1359,19 +1223,12 @@ Class GatherDust : Actor
}
}
Class YnykronVoidBeamTail : Actor
Class YnykronVoidBeamTail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOGRAVITY;
+DONTSPLASH;
+NOTELEPORT;
+NOBLOCKMAP;
+NOINTERACTION;
+FORCEXYBILLBOARD;
Radius .1;
Height 0.;
}
override void Tick()
{
@ -1386,7 +1243,7 @@ Class YnykronVoidBeamTail : Actor
}
}
Class YnykronVoidBeam : Actor
Class YnykronVoidBeam : SWWMNonInteractiveActor
{
Actor basebeam, prevbeam, nextbeam;
YnykronTracer t;
@ -1401,15 +1258,8 @@ Class YnykronVoidBeam : Actor
DamageType 'YnykronAlt';
Obituary "$O_YNYKRONALT";
RenderStyle "Add";
Radius .1;
Height 0.;
Alpha 0.;
Stamina 3;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+INTERPOLATEANGLES;
+NODAMAGETHRUST;
+FOILINVUL;
@ -1532,18 +1382,6 @@ Class YnykronVoidBeam : Actor
h.frame = frame;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -1552,18 +1390,15 @@ Class YnykronVoidBeam : Actor
}
}
Class YnykronLightningImpact : Actor
Class YnykronLightningImpact : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_YNYKRONALT";
DamageType "Electric";
Radius .1;
Height 0;
+FOILINVUL;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -1600,7 +1435,7 @@ Class YnykronLightningImpact : Actor
}
}
Class YnykronLightningArc : Actor
Class YnykronLightningArc : SWWMNonInteractiveActor
{
Vector3 nextpos, nextdir;
Vector3 destpos;
@ -1725,32 +1560,14 @@ Class YnykronLightningArc : Actor
Super.PostBeginPlay();
frame = Random[Ynykron](0,11);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
Default
{
Obituary "$O_YNYKRONALT";
RenderStyle "Add";
DamageFunction 1000;
Speed 128;
Radius .1;
Height 0;
Alpha 2.;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
States
{
@ -1794,7 +1611,7 @@ Class YnykronLightningArcSub : YnykronLightningArc
}
}
Class YnykronCloud : Actor
Class YnykronCloud : SWWMNonInteractiveActor
{
Vector3 gx, gy, gz;
double phase;
@ -1806,14 +1623,7 @@ Class YnykronCloud : Actor
override void Tick()
{
prev = pos;
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
Super.Tick();
}
void FlashPlayer( int str, double rad )
@ -1893,18 +1703,10 @@ Class YnykronCloud : Actor
DamageType 'YnykronAlt';
Obituary "$O_YNYKRONALT";
RenderStyle "Shaded";
Radius .1;
Height 0.;
Alpha 0.;
Scale 3.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+NOCLIP;
}
States
{
@ -1948,37 +1750,18 @@ Class SimpleMoveTracer : LineTracer
}
}
Class YnykronSingularityRing : Actor
Class YnykronSingularityRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale 4.;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
A_SetScale(scale.x*1.05);
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XRG4 ABCDEFGHIJKLMNOPQRSTUVWX 2 Bright;
XRG4 AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX 1 Bright A_SetScale(scale.x*1.05);
Stop;
}
}
@ -1993,20 +1776,13 @@ Class YnykronVoidExplLight : PaletteLight
}
}
Class YnykronVoidSparkleTrail : Actor
Class YnykronVoidSparkleTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0.;
XScale 6.;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+NOINTERACTION;
+DONTSPLASH;
+NOTELEPORT;
}
override void Tick()
{
@ -2022,20 +1798,14 @@ Class YnykronVoidSparkleTrail : Actor
}
}
Class YnykronVoidSparkle : Actor
Class YnykronVoidSparkle : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -2138,20 +1908,14 @@ Class YnykronSingularityExplosionArm : Actor
}
}
Class YnykronSingularityExplosionTrail : Actor
Class YnykronSingularityExplosionTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 3.;
Alpha .2;
Radius 0.1;
Height 0;
}
override void PostBeginPlay()
{
@ -2160,17 +1924,6 @@ Class YnykronSingularityExplosionTrail : Actor
Scale.x *= RandomPick[ExploS](-1,1);
Scale.y *= RandomPick[ExploS](-1,1);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -2179,7 +1932,7 @@ Class YnykronSingularityExplosionTrail : Actor
}
}
Class YnykronSingularityExplosion : Actor
Class YnykronSingularityExplosion : SWWMNonInteractiveActor
{
Default
{
@ -2187,16 +1940,10 @@ Class YnykronSingularityExplosion : Actor
DamageType "YnykronAlt";
RenderStyle "Add";
Scale 5.;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -2236,37 +1983,19 @@ Class YnykronSingularityExplosion : Actor
s.target = target;
}
}
override void Tick()
{
if ( isFrozen() ) return;
scale *= 1.01;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XEX4 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ 2 Bright;
XEX4 AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\ 1 Bright A_SetScale(scale.x*1.01,scale.y*1.01);
Stop;
}
}
Class YnykronSingularityHitbox : Actor
Class YnykronSingularityHitbox : SWWMNonInteractiveActor
{
Default
{
Radius .1;
Height 0.;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
-NOBLOCKMAP;
}
override void Tick()
{
@ -2284,7 +2013,7 @@ Class YnykronSingularityHitbox : Actor
}
}
Class YnykronSingularity : Actor
Class YnykronSingularity : SWWMNonInteractiveActor
{
const MAXBEAMS = 10;
const MAXCLOUDS = 300;
@ -2322,6 +2051,7 @@ Class YnykronSingularity : Actor
// lightweight tick, we don't need anything else other than states
override void Tick()
{
prev = pos;
if ( isFrozen() ) return;
Vector3 newpos;
if ( !mt ) mt = new("SimpleMoveTracer");
@ -2683,14 +2413,7 @@ Class YnykronSingularity : Actor
{
DamageType 'YnykronAlt';
Obituary "$O_YNYKRONALT";
+NOGRAVITY;
+MISSILE;
+DROPOFF;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
Radius .1;
Height 0.;
Scale .4;
}
States
@ -2705,7 +2428,7 @@ Class YnykronSingularity : Actor
}
}
Class YnykronAltBeam : Actor
Class YnykronAltBeam : SWWMNonInteractiveActor
{
bool nospread;
@ -2828,19 +2551,11 @@ Class YnykronAltBeam : Actor
Default
{
RenderStyle "Subtract";
Radius .1;
Height 0;
Alpha .4;
Speed 64;
+NOGRAVITY;
+NOBLOCKMAP;
+NOCLIP;
+NOTELEPORT;
+DONTSPLASH;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
}
States
{
@ -2885,18 +2600,8 @@ Class YnykronAltBeam : Actor
}
}
Class YnykronAltShot : Actor
Class YnykronAltShot : SWWMNonInteractiveActor
{
Default
{
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NOTELEPORT;
+DONTSPLASH;
+NOINTERACTION;
}
void FlashPlayer( int str, double rad )
{
if ( !SWWMUtility.InPlayerFOV(players[consoleplayer],self,rad) ) return;

View file

@ -141,31 +141,14 @@ Class AirRingLight : PaletteLight
}
}
Class AirBulletRing : Actor
Class AirBulletRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
Radius 0.1;
Height 0;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{

View file

@ -20,17 +20,8 @@ Class GoldShellCasing : RedShellCasing
}
}
Class SpreadImpact : Actor
Class SpreadImpact : SWWMNonInteractiveActor
{
Default
{
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
@ -74,30 +65,13 @@ Class GExploLight : PaletteLight
}
}
Class GExploRing : Actor
Class GExploRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 8.;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -107,23 +81,17 @@ Class GExploRing : Actor
}
}
Class GoldenImpact : Actor
Class GoldenImpact : SWWMNonInteractiveActor
{
Default
{
DamageType "Explodium";
RenderStyle "Add";
Radius 0.1;
Height 0;
Scale 8.;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -222,17 +190,6 @@ Class GoldenImpact : Actor
p.target = target;
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -241,7 +198,7 @@ Class GoldenImpact : Actor
}
}
Class GoldenSubImpact : Actor
Class GoldenSubImpact : SWWMNonInteractiveActor
{
Default
{
@ -249,16 +206,10 @@ Class GoldenSubImpact : Actor
RenderStyle "Add";
Scale 6.;
Alpha .8;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -352,17 +303,6 @@ Class GoldenSubImpact : Actor
p.target = target;
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -371,7 +311,7 @@ Class GoldenSubImpact : Actor
}
}
Class GoldenSubSubImpact : Actor
Class GoldenSubSubImpact : SWWMNonInteractiveActor
{
Default
{
@ -379,16 +319,10 @@ Class GoldenSubSubImpact : Actor
RenderStyle "Add";
Scale 3.;
Alpha .6;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -411,26 +345,10 @@ Class GoldenSubSubImpact : Actor
s.alpha *= .2;
}
}
action void A_GoldSubSubSpread()
{
special1++;
if ( (special1%2) || (special1 > 10) ) return;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XEX1 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 1 Bright A_GoldSubSubSpread();
XEX1 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] 1 Bright;
Stop;
}
}

View file

@ -27,17 +27,13 @@ Class SparkBeamLight : PaletteLight
}
}
Class BiosparkHitbox : Actor
Class BiosparkHitbox : SWWMNonInteractiveActor
{
Default
{
Radius 8;
Height 16;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
-NOBLOCKMAP;
}
override void Tick()
{
@ -62,7 +58,7 @@ Class BigBiosparkHitbox : BiosparkHitbox
}
}
Class BigOrbiter : Actor
Class BigOrbiter : SWWMNonInteractiveActor
{
double anglevel, pitchvel;
@ -70,12 +66,6 @@ Class BigOrbiter : Actor
{
RenderStyle "Add";
Scale 3.;
Radius .1;
Height 0.;
+NOINTERACTION;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+FORCEXYBILLBOARD;
}
override void PostBeginPlay()
@ -662,20 +652,17 @@ Class BiosparkTracer : LineTracer
}
}
Class BiosparkBeamImpact : Actor
Class BiosparkBeamImpact : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_SPARKSTER";
DamageType "Biospark";
RenderStyle "Add";
Radius .1;
Height 0;
+FOILINVUL;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -776,17 +763,6 @@ Class BiosparkBeamImpact : Actor
s.ReactionTime += Random[Sparkster](0,int(3*factor));
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -800,7 +776,7 @@ Class BiosparkBeamImpact : Actor
}
}
Class BiosparkComboImpactSub : Actor
Class BiosparkComboImpactSub : SWWMNonInteractiveActor
{
Default
{
@ -809,17 +785,10 @@ Class BiosparkComboImpactSub : Actor
RenderStyle "Add";
Scale 1.4;
Alpha .4;
Radius .1;
Height 0;
+FOILINVUL;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -827,17 +796,6 @@ Class BiosparkComboImpactSub : Actor
if ( !bAMBUSH ) return;
SWWMUtility.DoExplosion(self,40,10000,300,120,flags:DE_HOWL);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -846,7 +804,7 @@ Class BiosparkComboImpactSub : Actor
}
}
Class BiosparkComboImpact : Actor
Class BiosparkComboImpact : SWWMNonInteractiveActor
{
Default
{
@ -854,17 +812,10 @@ Class BiosparkComboImpact : Actor
DamageType "Biospark";
RenderStyle "Add";
Scale 2.;
Radius .1;
Height 0;
+FOILINVUL;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+FORCEXYBILLBOARD;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+NOTELEPORT;
+NOINTERACTION;
}
void FlashPlayer( int str, double rad )
{
@ -1037,17 +988,6 @@ Class BiosparkComboImpact : Actor
p.bAMBUSH = bAMBUSH;
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -1066,7 +1006,7 @@ Class BiosparkComboImpact : Actor
}
}
Class BiosparkBeam : Actor
Class BiosparkBeam : SWWMNonInteractiveActor
{
Vector3 nextpos, nextdir;
@ -1269,33 +1209,14 @@ Class BiosparkBeam : Actor
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
Default
{
Obituary "$O_SPARKSTER";
RenderStyle "Add";
DamageFunction 15;
Speed 256;
Radius .1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+INTERPOLATEANGLES;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
States
@ -1312,22 +1233,15 @@ Class BiosparkBeam : Actor
}
}
Class BiosparkChildBeam : Actor
Class BiosparkChildBeam : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Radius .1;
Height 0;
Alpha .4;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+INTERPOLATEANGLES;
+NOTELEPORT;
+ROLLSPRITE;
+ROLLCENTER;
+NOINTERACTION;
}
override void Tick()
{
@ -1432,7 +1346,7 @@ Class BiosparkChildBeam : Actor
}
}
Class BiosparkArc : Actor
Class BiosparkArc : SWWMNonInteractiveActor
{
Vector3 nextpos, nextdir;
@ -1567,17 +1481,6 @@ Class BiosparkArc : Actor
frame = Random[Sparkster](0,11);
if ( !special1 ) special2 = Random[Sparkster](0,8);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
Default
{
Obituary "$O_SPARKSTER";
@ -1585,15 +1488,8 @@ Class BiosparkArc : Actor
DamageFunction 6;
ReactionTime 15;
Speed 16;
Radius .1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+INTERPOLATEANGLES;
+NOTELEPORT;
+FOILINVUL;
+NOINTERACTION;
}
States
{
@ -1644,32 +1540,15 @@ Class BiosparkArcBig : BiosparkArc
}
}
Class BiosparkSpark : Actor
Class BiosparkSpark : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale .8;
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
+ROLLSPRITE;
+ROLLCENTER;
+FORCEXYBILLBOARD;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{

View file

@ -84,29 +84,14 @@ Class ExplodiumMagArm : Actor
}
}
Class ExplodiumMagTrail : Actor
Class ExplodiumMagTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 1.1;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -493,23 +478,17 @@ Class ExploLight2 : PaletteLight
}
}
Class ExplodiumBulletImpact : Actor
Class ExplodiumBulletImpact : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_EXPLODIUM";
DamageType "Explodium";
RenderStyle "Add";
Radius .1;
Height 0.;
Scale 1.2;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void PostBeginPlay()
{
@ -550,17 +529,6 @@ Class ExplodiumBulletImpact : Actor
}
Spawn("ExploLight",pos);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:

View file

@ -89,7 +89,7 @@ Class CandyBeamTracer : LineTracer
}
}
Class CandyBeam : Actor
Class CandyBeam : SWWMNonInteractiveActor
{
Vector3 nextpos, nextdir;
@ -170,17 +170,6 @@ Class CandyBeam : Actor
b.special2 = special2;
b.frame = frame;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
Default
{
Obituary "$O_CANDYGUN";
@ -188,15 +177,8 @@ Class CandyBeam : Actor
Alpha 0.4;
DamageFunction 40;
ReactionTime 12;
Radius 0.1;
Height 0;
Speed 16;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+INTERPOLATEANGLES;
+NOTELEPORT;
+NOINTERACTION;
+FOILINVUL;
}
States
@ -210,7 +192,7 @@ Class CandyBeam : Actor
}
}
Class CandyPop : Actor
Class CandyPop : SWWMNonInteractiveActor
{
Default
{
@ -218,17 +200,11 @@ Class CandyPop : Actor
DamageType "Candy";
RenderStyle "Add";
Scale 2.;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+ROLLSPRITE;
+ROLLCENTER;
+NOTELEPORT;
+NOINTERACTION;
+FOILINVUL;
}
void FlashPlayer( int str, double rad )
@ -240,17 +216,6 @@ Class CandyPop : Actor
SWWMHandler.DoFlash(mo,Color(str,250,240,255),1);
SWWMHandler.DoFlash(mo,Color(str,224,0,255),3);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -408,31 +373,14 @@ Class CandyMagArm : Actor
}
}
Class CandyMagTrail : Actor
Class CandyMagTrail : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
+NOBLOCKMAP;
+NOGRAVITY;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 2.4;
Alpha 0.7;
Radius .1;
Height 0.;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
@ -787,7 +735,7 @@ Class CandyMagProj : Actor
}
}
Class CandyBulletImpact : Actor
Class CandyBulletImpact : SWWMNonInteractiveActor
{
Default
{
@ -795,15 +743,9 @@ Class CandyBulletImpact : Actor
DamageType "Candy";
RenderStyle "Add";
Scale 2.5;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
+FOILINVUL;
}
override void PostBeginPlay()
@ -846,17 +788,6 @@ Class CandyBulletImpact : Actor
Spawn("CandyLight",pos);
Spawn("CandyRing",pos);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -878,30 +809,13 @@ Class CandyBulletImpact : Actor
}
}
Class CandyRing : Actor
Class CandyRing : SWWMNonInteractiveActor
{
Default
{
RenderStyle "Add";
Scale 1.2;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{

View file

@ -36,21 +36,14 @@ Class SilverBulletMag : SWWMCasing
}
}
Class SilverAirRip : Actor
Class SilverAirRip : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_SILVERBULLET";
DamageType 'Sniped';
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+NOINTERACTION;
+FOILINVUL;
}
virtual void Explode( bool thruwall = false )
@ -64,17 +57,6 @@ Class SilverAirRip : Actor
if ( thruwall ) SWWMUtility.AchievementProgressInc("thruwall",nkill,target.player);
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
@ -83,21 +65,14 @@ Class SilverAirRip : Actor
}
}
Class SilverImpact : Actor
Class SilverImpact : SWWMNonInteractiveActor
{
Default
{
Obituary "$O_SILVERBULLET";
DamageType 'Sniped';
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+NOINTERACTION;
+FOILINVUL;
}
override void PostBeginPlay()
@ -149,17 +124,6 @@ Class SilverImpact : Actor
s.vel = pvel;
}
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn: