Engine
Class WarpZoneMarker

source: e:\games\UnrealTournament\Engine\Classes\WarpZoneMarker.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.NavigationPoint
         |
         +--Engine.WarpZoneMarker
Direct Known Subclasses:None

class WarpZoneMarker
extends Engine.NavigationPoint

//============================================================================= // WarpZoneMarker. //=============================================================================
Variables
 Actor TriggerActor
           used to tell AI how to trigger me
 Actor TriggerActor2
           used to tell AI how to trigger me
 WarpZoneInfo markedWarpZone


Function Summary
 void FindTriggerActor()
 void PostBeginPlay()
 Actor SpecialHandling(Pawn Other)
     
/* FIXME - how to figure out if other side actor is OK and use intelligently for all dests? 
*/



Source Code


00001	//=============================================================================
00002	// WarpZoneMarker.
00003	//=============================================================================
00004	class WarpZoneMarker extends NavigationPoint
00005		native;
00006	
00007	var WarpZoneInfo markedWarpZone;
00008	
00009	// AI related
00010	var Actor TriggerActor;		//used to tell AI how to trigger me
00011	var Actor TriggerActor2;
00012	
00013	function PostBeginPlay()
00014	{
00015		if ( markedWarpZone.numDestinations > 1 )
00016			FindTriggerActor();
00017		Super.PostBeginPlay();
00018	}
00019	
00020	function FindTriggerActor()
00021	{
00022		local ZoneTrigger Z;
00023		ForEach AllActors(class 'ZoneTrigger', Z)
00024			if ( Z.Event == markedWarpZone.ZoneTag)
00025			{
00026				TriggerActor = Z;
00027				return;
00028			} 
00029	}
00030	
00031	/* SpecialHandling is called by the navigation code when the next path has been found.  
00032	It gives that path an opportunity to modify the result based on any special considerations
00033	*/
00034	
00035	/* FIXME - how to figure out if other side actor is OK and use intelligently for all dests? 
00036	*/
00037	function Actor SpecialHandling(Pawn Other)
00038	{
00039		if (Other.Region.Zone == markedWarpZone)
00040			markedWarpZone.ActorEntered(Other);
00041		return self;
00042	}
00043	/*	if ( markedWarpZone.numDestinations <= 1 )
00044			return self;
00045		
00046		if ( markedWarpZone.OtherSideActor is OK )
00047			return self;
00048				
00049		if (TriggerActor == None)
00050		{
00051			FindTriggerActor();
00052			if (TriggerActor == None)
00053				return None;
00054		}
00055		
00056		return TriggerActor;			
00057	}	 
00058	*/
00059	
00060	defaultproperties
00061	{
00062	     bHiddenEd=True
00063	     bCollideWhenPlacing=False
00064	     CollisionRadius=20.000000
00065	     CollisionHeight=40.000000
00066	}

End Source Code