Engine
Class LiftExit

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

class LiftExit
extends Engine.NavigationPoint

//============================================================================= // LiftExit. //=============================================================================
Variables
 float LastTriggerTime
 name LiftTag
 name LiftTrigger
 Trigger RecommendedTrigger


Function Summary
 void PostBeginPlay()
 Actor SpecialHandling(Pawn Other)
     
/* 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
*/



Source Code


00001	//=============================================================================
00002	// LiftExit.
00003	//=============================================================================
00004	class LiftExit extends NavigationPoint
00005		native;
00006	
00007	var() name LiftTag;
00008	var	Mover MyLift;
00009	var() name LiftTrigger;
00010	var trigger RecommendedTrigger;
00011	var float LastTriggerTime;
00012	
00013	function PostBeginPlay()
00014	{
00015		if ( LiftTag != '' )
00016			ForEach AllActors(class'Mover', MyLift, LiftTag )
00017				break;
00018		//log(self$" attached to "$MyLift);
00019		if ( LiftTrigger != '' )
00020			ForEach AllActors(class'Trigger', RecommendedTrigger, LiftTrigger )
00021				break;
00022		Super.PostBeginPlay();
00023	}
00024	
00025	/* SpecialHandling is called by the navigation code when the next path has been found.  
00026	It gives that path an opportunity to modify the result based on any special considerations
00027	*/
00028	
00029	function Actor SpecialHandling(Pawn Other)
00030	{
00031	
00032		if ( (Other.Base == MyLift) && (MyLift != None) )
00033		{
00034			if ( (self.Location.Z < Other.Location.Z + Other.CollisionHeight)
00035				 && Other.LineOfSightTo(self) )
00036				return self;
00037			Other.SpecialGoal = None;
00038			Other.DesiredRotation = rotator(Location - Other.Location);
00039			MyLift.HandleDoor(Other);
00040	
00041			if ( (Other.SpecialGoal == MyLift) || (Other.SpecialGoal == None) )
00042				Other.SpecialGoal = MyLift.myMarker;
00043			return Other.SpecialGoal;
00044		}
00045		return self;
00046	}
00047	
00048	defaultproperties
00049	{
00050	}

End Source Code