Some small optimizations.
This commit is contained in:
parent
98729363e2
commit
20a8f3304b
4 changed files with 60 additions and 26 deletions
|
|
@ -112,8 +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 'DemolitionistSelfLight') || (a is 'HeadpatTracker') || (a is 'SWWMExtendedItemHitbox')
|
||||
|| (a is 'SWWMTeleportLine') || (a is 'SWWMTeleportDest') ) continue;
|
||||
if ( (a is 'SWWMShadow') || (a is 'GhostArtifactX') || (a is 'HeadpatTracker') || (a is 'SWWMExtendedItemHitbox') || (a is 'SWWMTeleportLine') || (a is 'SWWMTeleportDest') ) continue;
|
||||
if ( a.Distance3DSquared(e.Camera) > 1000000 ) continue;
|
||||
DrawActor(e,a);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ Class Demolitionist : PlayerPawn
|
|||
transient double lastbump;
|
||||
transient CVar bumpstr;
|
||||
|
||||
Actor selflight;
|
||||
DemolitionistSelfLight selflight;
|
||||
Actor oldencroached;
|
||||
Vector3 oldencroachedpos;
|
||||
int encroachtics;
|
||||
|
|
@ -952,7 +952,8 @@ Class Demolitionist : PlayerPawn
|
|||
}
|
||||
if ( !selflight )
|
||||
{
|
||||
selflight = Spawn("DemolitionistSelfLight",pos);
|
||||
selflight = new("DemolitionistSelfLight");
|
||||
selflight.ChangeStatNum(STAT_USER);
|
||||
selflight.target = self;
|
||||
selflight.Tick();
|
||||
}
|
||||
|
|
@ -1254,7 +1255,7 @@ Class Demolitionist : PlayerPawn
|
|||
for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ )
|
||||
{
|
||||
a = Spawn("DashTrail",Vec3Angle(15,angle+i*140,35));
|
||||
a.target = self;
|
||||
a.master = self;
|
||||
a.vel = (RotateVector((j,0),angle+i*160),0)-(0,0,1)*j;
|
||||
a.vel -= vel*.5;
|
||||
}
|
||||
|
|
@ -1577,7 +1578,7 @@ Class Demolitionist : PlayerPawn
|
|||
for ( int i=-1; i<=1; i+=2 ) for ( int j=1; j<4; j++ )
|
||||
{
|
||||
a = Spawn("DashTrail",Vec3Angle(10,angle+i*140,40));
|
||||
a.target = self;
|
||||
a.master = self;
|
||||
a.vel = .5*(RotateVector((j,0),angle+i*160),0)-(0,0,1)*j;
|
||||
a.vel -= vel*.5;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -200,14 +200,16 @@ Class DashTrail : Actor
|
|||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
+MASTERNOSEE;
|
||||
FloatBobPhase 0;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
SetState(FindState("Spawn")+Random[ExploS](0,7));
|
||||
if ( waterlevel > 0 ) return;
|
||||
let t = Spawn("DashTrail2",level.Vec3Offset(pos,vel*.3));
|
||||
t.target = target;
|
||||
t.master = master;
|
||||
t.vel = vel*1.2;
|
||||
let s = Spawn("SWWMSmoke",level.Vec3Offset(pos,vel*1.6));
|
||||
s.vel = vel*.8;
|
||||
|
|
@ -218,9 +220,17 @@ Class DashTrail : Actor
|
|||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
// hack
|
||||
if ( target && (players[consoleplayer].Camera == target) ) Warp(target,pos.x,pos.y,pos.z,0,WARPF_ABSOLUTEPOSITION|WARPF_COPYINTERPOLATION);
|
||||
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
|
||||
{
|
||||
|
|
@ -248,6 +258,7 @@ Class DashTrail2 : Actor
|
|||
+DONTSPLASH;
|
||||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
+MASTERNOSEE;
|
||||
FloatBobPhase 0;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
|
|
@ -257,9 +268,17 @@ Class DashTrail2 : Actor
|
|||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
// hack
|
||||
if ( target && (players[consoleplayer].Camera == target) ) Warp(target,pos.x,pos.y,pos.z,0,WARPF_ABSOLUTEPOSITION|WARPF_COPYINTERPOLATION);
|
||||
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
|
||||
{
|
||||
|
|
@ -293,6 +312,19 @@ Class DemolitionistRadiusShockwaveTail : Actor
|
|||
+NOTELEPORT;
|
||||
+NOINTERACTION;
|
||||
}
|
||||
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
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -454,6 +486,17 @@ 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:
|
||||
|
|
@ -463,22 +506,13 @@ Class DemolitionistShockwave : Actor
|
|||
}
|
||||
|
||||
// not an actual light, just handles the attach/detach
|
||||
Class DemolitionistSelfLight : Actor
|
||||
Class DemolitionistSelfLight : Thinker
|
||||
{
|
||||
bool oldactive;
|
||||
bool oldglow;
|
||||
transient Color tagcolor;
|
||||
Actor target;
|
||||
|
||||
Default
|
||||
{
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
+NOGRAVITY;
|
||||
+NOBLOCKMAP;
|
||||
+DONTSPLASH;
|
||||
+NOINTERACTION;
|
||||
FloatBobPhase 0;
|
||||
}
|
||||
bool activelight()
|
||||
{
|
||||
// active all the time except when invisible or in certain
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue