Small scorenum/damnum refactor.

This commit is contained in:
Mari the Deer 2024-01-16 10:17:28 +01:00
commit 38cd7df826
23 changed files with 182 additions and 54 deletions

View file

@ -14,6 +14,26 @@ Class SWWMScoreObj play
int starttic, seed, seed2;
SWWMScoreObj next;
// all of these variations are here to simplify code
static SWWMScoreObj SpawnAtActorBunch( int score, Actor a, int tcolor = -1 )
{
if ( !a ) return null;
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
if ( !hnd ) return null;
Vector3 pos = level.Vec3Offset(a.pos,SWWMUtility.Vec3FromAngles(FRandom[ScoreBits](0,360),FRandom[ScoreBits](-90,90))*8.+(0,0,a.Height/2));
return SpawnFromHandler(hnd,score,pos,tcolor);
}
static SWWMScoreObj SpawnAtActor( int score, Actor a, int tcolor = -1 )
{
if ( !a ) return null;
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
if ( !hnd ) return null;
Vector3 pos = a.Vec3Offset(0,0,a.Height/2);
return SpawnFromHandler(hnd,score,pos,tcolor);
}
static SWWMScoreObj Spawn( int score, Vector3 pos, int tcolor = -1 )
{
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
@ -21,6 +41,20 @@ Class SWWMScoreObj play
return SpawnFromHandler(hnd,score,pos,tcolor);
}
static SWWMScoreObj SpawnAtActorBunchFromHandler( SWWMHandler hnd, int score, Actor a, int tcolor = -1 )
{
if ( !a ) return null;
Vector3 pos = level.Vec3Offset(a.pos,SWWMUtility.Vec3FromAngles(FRandom[ScoreBits](0,360),FRandom[ScoreBits](-90,90))*8.+(0,0,a.Height/2));
return SpawnFromHandler(hnd,score,pos,tcolor);
}
static SWWMScoreObj SpawnAtActorFromHandler( SWWMHandler hnd, int score, Actor a, int tcolor = -1 )
{
if ( !a ) return null;
Vector3 pos = a.Vec3Offset(0,0,a.Height/2);
return SpawnFromHandler(hnd,score,pos,tcolor);
}
static SWWMScoreObj SpawnFromHandler( SWWMHandler hnd, int score, Vector3 pos, int tcolor = -1 )
{
let o = new("SWWMScoreObj");
@ -51,7 +85,7 @@ Class SWWMScoreObj play
}
}
// damage/health/armor numbers
// damage numbers
Class SWWMDamNum play
{
int tcolor;
@ -61,6 +95,17 @@ Class SWWMDamNum play
int starttic, seed, seed2;
SWWMDamNum next;
// damage numbers always spawn in bunches, so no need for that function variant
static SWWMDamNum SpawnAtActor( int damage, Actor a, Name type = '' )
{
if ( !a ) return null;
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
if ( !hnd ) return null;
Vector3 pos = level.Vec3Offset(a.pos,SWWMUtility.Vec3FromAngles(FRandom[ScoreBits](0,360),FRandom[ScoreBits](-90,90))*8.+(0,0,a.Height/2));
return SpawnFromHandler(hnd,damage,pos,type);
}
static SWWMDamNum Spawn( int damage, Vector3 pos, Name type = '' )
{
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
@ -68,6 +113,13 @@ Class SWWMDamNum play
return SpawnFromHandler(hnd,damage,pos,type);
}
static SWWMDamNum SpawnAtActorFromHandler( SWWMHandler hnd, int damage, Actor a, Name type = '' )
{
if ( !a ) return null;
Vector3 pos = level.Vec3Offset(a.pos,SWWMUtility.Vec3FromAngles(FRandom[ScoreBits](0,360),FRandom[ScoreBits](-90,90))*8.+(0,0,a.Height/2));
return SpawnFromHandler(hnd,damage,pos,type);
}
static SWWMDamNum SpawnFromHandler( SWWMHandler hnd, int damage, Vector3 pos, Name type = '' )
{
let o = new("SWWMDamNum");