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

@ -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.;