## Engine
Class NavigationPoint

source: C:\XIII\Engine\Classes\NavigationPoint.uc

    Core.Object
       |
       +--Engine.Actor
          |
          +--Engine.NavigationPoint

Direct Known Subclasses:Door, InventorySpot, Ladder, LiftCenter, LiftExit, PathNode, PlayerStart, Teleporter, WarpZoneMarker, TelepheriquePoint, USA02HelicoBossPoint, AttackPoint, PatrolPoint, SafePoint, StrategicPoint, DoorPoint, XIIITeleportCheat, MPBombingBase, XIIIMPFlagBase, XIIIMPSniperStart

class NavigationPoint
extends Engine.Actor

    //=============================================================================
    // NavigationPoint.
    //
    // NavigationPoints are organized into a network to provide AIControllers
    // the capability of determining paths to arbitrary destinations in a level
    //
    //=============================================================================

Variables
`int` | `ExtraCost` Extra weight added by level designer
`name` | `ForcedPaths[4]` list of names of NavigationPoints which should always be connected from this path
`name` | `ProscribedPaths[4]` list of names of NavigationPoints which should never be connected from this path
`bool` | `bAlreadyTargeted` targeted by a basesoldier
`bool` | `bAutoBuilt` placed during execution of "PATHS BUILD"
`bool` | `bAutoPlaced` placed as marker for another object during a paths define
`bool` | `bBlocked` this path is currently unuseable
`bool` | `bEndPoint` used by C++ navigation code
`bool` | `bNeverUseStrafing` shouldn't use bAdvancedTactics going to this point
`bool` | `bNoAutoConnect` don't connect this path to others except with special conditions (used by LiftCenter, for example)
`bool` | `bOneWayPath` reachspecs from this path only in the direction the path is facing (180 degrees)
`bool` | `bPathsChanged` used for incremental path rebuilding in the editor
`bool` | `bPropagatesSound` this navigation point can be used for sound propagation (around corners)
`bool` | `bSpecialCost` if true, navigation code will call SpecialCost function for this navigation point
`int` | `bestPathWeight` list of names of NavigationPoints which should always be connected from this path
`int` | `cost` added cost to visit this pathnode
`int` | `newPathList[3]` index of reachspecs (used by C++ Navigation code)
`NavigationPoint` | `nextNavigationPoint` list of names of NavigationPoints which should always be connected from this path
`NavigationPoint` | `nextOrdered` for internal use during route searches
`NavigationPoint` | `prevOrdered` for internal use during route searches
`NavigationPoint` | `previousPath` for internal use during route searches
`bool` | `taken` set when a creature is occupying this spot
`int` | `visitedWeight` list of names of NavigationPoints which should always be connected from this path

Function Summary
`void` | `MoverClosed()`
`void` | `MoverOpened()`
    /* MoverOpened() & MoverClosed() used by NavigationPoints associated with movers */
`bool` | `ProceedWithMove(Pawn Other)`
    /* ProceedWithMove()
    Called by Controller to see if move is now possible when a mover reports to the waiting
    pawn that it has completed its move
    */

Source Code

    00001	//=============================================================================
    00002	// NavigationPoint.
    00003	//
    00004	// NavigationPoints are organized into a network to provide AIControllers
    00005	// the capability of determining paths to arbitrary destinations in a level
    00006	//
    00007	//=============================================================================
    00008	class NavigationPoint extends Actor
    00009		hidecategories(Lighting,LightColor,Force)
    00010		native
    00011		noexport;
    00012
    00013	#exec Texture Import File=Textures\S_Pickup.pcx Name=S_Pickup Mips=Off MASKED=1 COMPRESS=DXT1
    00014	#exec Texture Import File=Textures\SpwnAI.pcx Name=S_NavP Mips=Off MASKED=1 COMPRESS=DXT1
    00015	#exec Texture Import File=Textures\SubActionGameSpeed.pcx Name=SubActionGameSpeed Mips=Off COMPRESS=DXT1
    00016	#exec Texture Import File=Textures\LookTarget.pcx Name=S_LookTarget Mips=Off MASKED=1 COMPRESS=DXT1
    00017	#exec Texture Import File=Textures\ActionCamMove.pcx  Name=S_ActionCamMove Mips=Off COMPRESS=DXT1
    00018	#exec Texture Import File=Textures\ActionCamPause.pcx  Name=S_ActionCamPause Mips=Off COMPRESS=DXT1
    00019
    00020	// not used currently
    00021	#exec Texture Import File=Textures\SiteLite.pcx Name=S_Alarm Mips=Off MASKED=1 COMPRESS=DXT1
    00022
    00023	//------------------------------------------------------------------------------
    00024	// NavigationPoint variables
    00025	var transient const int newPathList[3]; //index of reachspecs (used by C++ Navigation code)
    00026	//var const array<ReachSpec> PathList; //index of reachspecs (used by C++ Navigation code)
    00027	var() name ProscribedPaths[4];	// list of names of NavigationPoints which should never be connected from this path
    00028	var() name ForcedPaths[4];		// list of names of NavigationPoints which should always be connected from this path
    00029	var int visitedWeight;
    00030	var const int bestPathWeight;
    00031	var const NavigationPoint nextNavigationPoint;
    00032	var const NavigationPoint nextOrdered;	// for internal use during route searches
    00033	var const NavigationPoint prevOrdered;	// for internal use during route searches
    00034	var const NavigationPoint previousPath;
    00035	var int cost;					// added cost to visit this pathnode
    00036	var() int ExtraCost;			// Extra weight added by level designer
    00037
    00038	var bool bEndPoint;	            // used by C++ navigation code
    00039	var bool bSpecialCost;			// if true, navigation code will call SpecialCost function for this navigation point
    00040	var bool taken;					// set when a creature is occupying this spot
    00041	var() bool bBlocked;			// this path is currently unuseable
    00042	var() bool bPropagatesSound;	// this navigation point can be used for sound propagation (around corners)
    00043	var() bool bOneWayPath;			// reachspecs from this path only in the direction the path is facing (180 degrees)
    00044	var() bool bNeverUseStrafing;	// shouldn't use bAdvancedTactics going to this point
    00045	var const bool bAutoBuilt;		// placed during execution of "PATHS BUILD"
    00046	var	bool bSpecialMove;			// if true, pawn will call SuggestMovePreparation() when moving toward this node
    00047	var bool bNoAutoConnect;		// don't connect this path to others except with special conditions (used by LiftCenter, for example)
    00048	var	const bool	bNotBased;		// used by path builder - if true, no error reported if node doesn't have a valid base
    00049	var const bool  bAutoPlaced;	// placed as marker for another object during a paths define
    00050	var const bool  bPathsChanged;	// used for incremental path rebuilding in the editor
    00051	var bool bAlreadyTargeted;  //targeted by a basesoldier
    00052
    00053	//event int SpecialCost(Pawn Seeker);
    00054
    00055	// Accept an actor that has teleported in.
    00056	// used for random spawning and initial placement of creatures
    00057	event bool Accept( actor Incoming, actor Source )
    00058	{
    00059		// Move the actor here.
    00060		taken = Incoming.SetLocation( Location );
    00061		if (taken)
    00062		{
    00063			Incoming.Velocity = vect(0,0,0);
    00064			Incoming.SetRotation(Rotation);
    00065		}
    00066		Level.Game.PlayTeleportEffect(Incoming, true, false);
    00067		TriggerEvent(Event, self, Pawn(Incoming));
    00068		return taken;
    00069	}
    00070
    00071	/* SuggestMovePreparation()
    00072	Optionally tell Pawn any special instructions to prepare for moving to this goal
    00073	(called by Pawn.PrepareForMove() if this node's bSpecialMove==true
    00074	*/
    00075	event bool SuggestMovePreparation(Pawn Other)
    00076	{
    00077	    return false;
    00078	}
    00079
    00080	/* ProceedWithMove()
    00081	Called by Controller to see if move is now possible when a mover reports to the waiting
    00082	pawn that it has completed its move
    00083	*/
    00084	function bool ProceedWithMove(Pawn Other)
    00085	{
    00086	    return true;
    00087	}
    00088
    00089	/* MoverOpened() & MoverClosed() used by NavigationPoints associated with movers */
    00090	function MoverOpened();
    00091	function MoverClosed();
    00092
    00093	event int SpecialCost(Pawn Seeker)
    00094	{
    00095	    return 10000;
    00096	}
    00097
    00098	defaultproperties
    00099	{
    00100	     bPropagatesSound=True
    00101	     bStatic=True
    00102	     bHidden=True
    00103	     bInteractive=False
    00104	     bCollideWhenPlacing=True
    00105	     bCanSeeThrough=True
    00106	     bCanShootThroughWithRayCastingWeapon=True
    00107	     bCanShootThroughWithProjectileWeapon=True
    00108	     Texture=Texture'Engine.S_NavP'
    00109	     CollisionRadius=80.000000
    00110	     CollisionHeight=100.000000
    00111	}

End Source Code