Code: Select all
version "2.4"
class Line_Item : Inventory
{
Object Tracer_Pointer;
override void DoEffect()
{
if(Tracer_Pointer == NULL)
{
Tracer_Pointer = New("Test_Tracer");
}
Vector3 StartPos = Owner.Pos;
StartPos.Z += (Owner.Height / 2) + PlayerPawn(Owner).AttackZOffset;
Vector3 Direction;
Direction.XY = Actor.AngleToVector(Owner.Angle);
direction.Z = sin(-Owner.Pitch);
Test_Tracer (Tracer_Pointer).Trace(StartPos, Owner.CurSector, Direction, 8192.0, TRACE_NoSky);
Console.Printf("%i", Test_Tracer(Tracer_Pointer).Texture_Number);
Console.Printf("%i", TexMan.CheckForTexture("Bigdoor1", 0, 1) );
}
}
class Test_Tracer : LineTracer
{
TextureID Texture_Number;
override ETraceStatus TraceCallback()
{
if (Results.HitType == TRACE_HitWall)
{
if (Results.HitLine.Flags & Line.ML_TWOSIDED == 0)
{
Texture_Number = Results.HitTexture;
return Trace_Stop;
}
}
if (Results.HitType == TRACE_HitActor)
{
return TRACE_Skip;
}
Texture_Number = Results.HitTexture;
return TRACE_Stop;
}
}