Overview | Package | Class | Source | Class tree | Glossary | UnrealScript Documentation
previous class next class | frames no frames

# Engine.NavigationPoint

00001 00002 00003 00004 00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115

    //=============================================================================
    // NavigationPoint.
    //
    // NavigationPoints are organized into a network to provide AIControllers
    // the capability of determining paths to arbitrary destinations in a level
    //
    //=============================================================================
    class NavigationPoint extends Actor
    	hidecategories(Lighting,LightColor,Karma,Force)
    	native;

    //------------------------------------------------------------------------------
    // NavigationPoint variables
    var const array<ReachSpec> PathList; //index of reachspecs (used by C++ Navigation code)
    var() name ProscribedPaths[4];	// list of names of NavigationPoints which should never be connected from this path
    var() name ForcedPaths[4];		// list of names of NavigationPoints which should always be connected from this path
    var int visitedWeight;
    var const int bestPathWeight;
    var const NavigationPoint nextNavigationPoint;
    var const NavigationPoint nextOrdered;	// for internal use during route searches
    var const NavigationPoint prevOrdered;	// for internal use during route searches
    var const NavigationPoint previousPath;
    var int cost;					// added cost to visit this pathnode
    var() int ExtraCost;			// Extra weight added by level designer
    var transient int TransientCost;	// added right before a path finding attempt, cleared afterward.
    var	transient int FearCost;		// extra weight diminishing over time (used for example, to mark path where bot died)

    var transient bool bEndPoint;	// used by C++ navigation code
    var transient bool bTransientEndPoint; // set right before a path finding attempt, cleared afterward.
    var bool taken;					// set when a creature is occupying this spot
    var() bool bBlocked;			// this path is currently unuseable
    var() bool bPropagatesSound;	// this navigation point can be used for sound propagation (around corners)
    var() bool bOneWayPath;			// reachspecs from this path only in the direction the path is facing (180 degrees)
    var() bool bNeverUseStrafing;	// shouldn't use bAdvancedTactics going to this point
    var() bool bAlwaysUseStrafing;	// shouldn't use bAdvancedTactics going to this point
    var const bool bForceNoStrafing;// override any LD changes to bNeverUseStrafing
    var const bool bAutoBuilt;		// placed during execution of "PATHS BUILD"
    var	bool bSpecialMove;			// if true, pawn will call SuggestMovePreparation() when moving toward this node
    var bool bNoAutoConnect;		// don't connect this path to others except with special conditions (used by LiftCenter, for example)
    var	const bool	bNotBased;		// used by path builder - if true, no error reported if node doesn't have a valid base
    var const bool  bPathsChanged;	// used for incremental path rebuilding in the editor
    var bool		bDestinationOnly; // used by path building - means no automatically generated paths are sourced from this node
    var	bool		bSourceOnly;	// used by path building - means this node is not the destination of any automatically generated path
    var bool		bSpecialForced;	// paths that are forced should call the SpecialCost() and SuggestMovePreparation() functions
    var bool		bMustBeReachable;	// used for PathReview code

    //var Pickup	InventoryCache;		// used to point to dropped weapons
    var float	InventoryDist;

    function PostBeginPlay()
    {
    	ExtraCost = Max(ExtraCost,0);
    	Super.PostBeginPlay();
    }

    event int SpecialCost(Pawn Seeker, ReachSpec Path);

    // Accept an actor that has teleported in.
    // used for random spawning and initial placement of creatures
    event bool Accept( actor Incoming, actor Source )
    {
    	// Move the actor here.
    	taken = Incoming.SetLocation( Location );
    	if (taken)
    	{
    		Incoming.Velocity = vect(0,0,0);
    		Incoming.SetRotation(Rotation);
    	}
    	Incoming.PlayTeleportEffect(true, false);
    	TriggerEvent(Event, self, Pawn(Incoming));
    	return taken;
    }

    /* DetourWeight()
    value of this path to take a quick detour (usually 0, used when on route to distant objective, but want to grab inventory for example)
    */
    event float DetourWeight(Pawn Other,float PathWeight);

    /* SuggestMovePreparation()
    Optionally tell Pawn any special instructions to prepare for moving to this goal
    (called by Pawn.PrepareForMove() if this node's bSpecialMove==true
    */
    event bool SuggestMovePreparation(Pawn Other)
    {
    	return false;
    }

    /* 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
    */
    function bool ProceedWithMove(Pawn Other)
    {
    	return true;
    }

    /* MoverOpened() & MoverClosed() used by NavigationPoints associated with movers */
    function MoverOpened();
    function MoverClosed();

    defaultproperties
    {
    	Texture=Texture'Engine_res.S_NavP'
    	bPropagatesSound=true
         bStatic=true
    	 bNoDelete=true
         bHidden=true
         bCollideWhenPlacing=true
    //#if !IG_DISABLE_UNREAL_ACTOR_SOUND_MANAGEMENT // ckline: use IG_EFFECTS system instead of old Unreal per-actor sound specifications
    //     SoundVolume=0
    //#endif
         CollisionRadius=+00080.000000
         CollisionHeight=+00100.000000
    }

Overview | Package | Class | Source | Class tree | Glossary | UnrealScript Documentation
previous class next class | frames no frames

Class file time: ne 5.9.2004 16:01:26.000 - Creation time: st 23.5.2018 00:10:46.073 - Created with UnCodeX