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 /* 00016 if ( markedWarpZone.numDestinations > 1 ) 00017 FindTriggerActor(); 00018 Super.PostBeginPlay(); 00019 */ 00020 } 00021 00022 function FindTriggerActor() 00023 { 00024 /* 00025 local ZoneTrigger Z; 00026 ForEach AllActors(class 'ZoneTrigger', Z) 00027 if ( Z.Event == markedWarpZone.ZoneTag) 00028 { 00029 TriggerActor = Z; 00030 return; 00031 } 00032 */ 00033 } 00034 00035 /* SpecialHandling is called by the navigation code when the next path has been found. 00036 It gives that path an opportunity to modify the result based on any special considerations 00037 */ 00038 00039 /* FIXME - how to figure out if other side actor is OK and use intelligently for all dests? 00040 */ 00041 function Actor SpecialHandling(Pawn Other) 00042 { 00043 /* 00044 if (Other.Region.Zone == markedWarpZone) 00045 markedWarpZone.ActorEntered(Other); 00046 */ 00047 return self; 00048 } 00049 /* if ( markedWarpZone.numDestinations <= 1 ) 00050 return self; 00051 00052 if ( markedWarpZone.OtherSideActor is OK ) 00053 return self; 00054 00055 if (TriggerActor == None) 00056 { 00057 FindTriggerActor(); 00058 if (TriggerActor == None) 00059 return None; 00060 } 00061 00062 return TriggerActor; 00063 } 00064 */ 00065 00066 defaultproperties 00067 { 00068 bCollideWhenPlacing=False 00069 CollisionRadius=40.000000 00070 CollisionHeight=80.000000 00071 bHiddenEd=True 00072 }