rott/kf_sources/Engine/Classes/WarpZoneMarker.uc
2026-07-14 20:27:09 +07:00

65 lines
1.5 KiB
Ucode

//=============================================================================
// WarpZoneMarker.
//=============================================================================
class WarpZoneMarker extends SmallNavigationPoint
native;
var WarpZoneInfo markedWarpZone;
// AI related
var Actor TriggerActor; //used to tell AI how to trigger me
var Actor TriggerActor2;
function PostBeginPlay()
{
if ( markedWarpZone.numDestinations > 1 )
FindTriggerActor();
Super.PostBeginPlay();
}
function FindTriggerActor()
{
local ZoneTrigger Z;
ForEach AllActors(class 'ZoneTrigger', Z)
if ( Z.Event == markedWarpZone.ZoneTag)
{
TriggerActor = Z;
return;
}
}
/* SpecialHandling is called by the navigation code when the next path has been found.
It gives that path an opportunity to modify the result based on any special considerations
*/
/* FIXME - how to figure out if other side actor is OK and use intelligently for all dests?
*/
function Actor SpecialHandling(Pawn Other)
{
if (Other.Region.Zone == markedWarpZone)
markedWarpZone.ActorEntered(Other);
return self;
}
/* if ( markedWarpZone.numDestinations <= 1 )
return self;
if ( markedWarpZone.OtherSideActor is OK )
return self;
if (TriggerActor == None)
{
FindTriggerActor();
if (TriggerActor == None)
return None;
}
return TriggerActor;
}
*/
defaultproperties
{
bCollideWhenPlacing=False
bHiddenEd=true
}