If I wanted this for a projectile weapon, I woulda just copied code

Anybody know?
Code: Select all
function DoTrace(Vector Start, Rotator Dir)
{
local Vector X;
X = vector(Dir);
TracePart(Start,Start+X*TraceRange,X,Dir,Instigator);
}
function TracePart(Vector Start, Vector End, Vector X, Rotator Dir, Actor Ignored)
{
local Vector HitLocation, HitNormal;
local Actor Other;
Other = Ignored.Trace(HitLocation, HitNormal, End, Start, true);
if ( (Other != None) && (Other != Ignored) )
{
if ( !Other.bWorldGeometry )
{
Other.TakeDamage(DamageMax, Instigator, HitLocation, Momentum*X, DamageType);
HitNormal = Vect(0,0,0);
if ( (Pawn(Other) != None) && (HitLocation != Start) && AllowMultiHit() )
TracePart(HitLocation,End,X,Dir,Pawn(Other));
}
else
{
Instigator.ClientMessage("You hit WorldGeometry!");
if ( HitLocation != Start )
TracePart(HitLocation,End,X,Dir,Other);
}
}
else
{
HitLocation = End;
HitNormal = Vect(0,0,0);
}
SpawnBeamEffect(Start, Dir, HitLocation, HitNormal, 0);
}