Core.Object | +--Engine.Actor | +--Engine.NavigationPoint | +--Engine.WarpZoneMarker
Actor
TriggerActor
TriggerActor2
WarpZoneInfo
markedWarpZone
void
FindTriggerActor()
PostBeginPlay()
SpecialHandling(Pawn Other)
/* FIXME - how to figure out if other side actor is OK and use intelligently for all dests? */
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 }