Core.Object | +--Engine.Actor | +--Engine.NavigationPoint | +--Engine.LiftExit
float
LastTriggerTime
name
LiftTag
LiftTrigger
Trigger
RecommendedTrigger
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 */
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 }