Overview Package Class Source Class tree Glossary
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
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
//=============================================================================
// 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;

#exec Texture Import File=Textures\S_Pickup.pcx Name=S_Pickup Mips=Off MASKED=1
#exec Texture Import File=Textures\SpwnAI.pcx Name=S_NavP Mips=Off MASKED=1

// not used currently
#exec Texture Import File=Textures\SiteLite.pcx Name=S_Alarm Mips=Off MASKED=1

//NEW (mdf) -- pathing extensions
enum EConnectFlags
{
	CFL_SourceDest,	// (default) navigation point can be a source or destination node in paths
	CFL_Source,		// navigation point can be a source node in paths (e.g. LiftCenter)
	CFL_Dest,		// navigation point can be a destination node in paths
	CFL_None,		// navigation point not used when building paths
};
//OLD

//------------------------------------------------------------------------------
// NavigationPoint variables
//NEW (mdf) !!mdf-tbr? make it possible to see these in the editor? (should never be edited though)
var() const editconst array<ReachSpec> PathList; //index of reachspecs (used by C++ Navigation code)
/*OLD
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 bool bEndPoint;	// used by C++ navigation code
var bool bSpecialCost;			// if true, navigation code will call SpecialCost function for this navigation point
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 advanced tactics going to this point
var const bool bForceNoStrafing;//NEW (mdf) serpentine support -- 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
//NEW (mdf) -- pathing extensions
var() EConnectFlags ConnectFlags;	// (CFL_SOURCEDEST) -- can be set in editor to restrict use of navigation point in building paths (e.g. for testing)
var() bool bDisabled;				// used to temporarily enable/disable selected/all navigation points while tweaking paths in specific areas
var() bool bFindBase;				// if false, path building code doesn't find/check base for navigation point
var() bool bAllowFlyPaths;			// if false, won't get any flying paths out of this navigation point
var() bool bAllowJumpPaths;			// if false, won't get any jumping paths out of this navigation point
var() bool bAllowSwimPaths;			// if false, won't get any swimming paths out of this navigation point
/*OLD
var	const bool bNotBased;		// used by path builder - if true, no error reported if node doesn't have a valid base
var bool bNoAutoConnect;		// don't connect this path to others except with special conditions (used by LiftCenter, for example)
*/
var const bool  bAutoPlaced;	// placed as marker for another object during a paths define
var const bool  bPathsChanged;	// used for incremental path rebuilding in the editor
var const int	PathInCount;	//NEW (mdf) number of paths into navigation point
var const int	PathOutCount;	//NEW (mdf) number of paths out of navigation point
var vector OldEditorLocation;	//NEW (mdf) dirty paths fix

event int SpecialCost(Pawn Seeker);

// Accept an actor that has teleported in.
// used for random spawning and initial placement of creatures
//NEW (mdf)
function bool Accept( actor Incoming, actor Source )
/*OLD
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);
	}
	Level.Game.PlayTeleportEffect(Incoming, true, false);
	TriggerEvent(Event, self, Pawn(Incoming));
	return taken;
}

/* 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
{
	bPropagatesSound=true
	bFindBase=true
	bAllowFlyPaths=true
	bAllowJumpPaths=true
	bAllowSwimPaths=true
	bStatic=true
	bHidden=true
	bNoDelete=true
	Texture=Texture'Engine.S_NavP'
	bCollideWhenPlacing=true
	SoundVolume=0
	CollisionRadius=50.000000
	CollisionHeight=50.000000
     UseReticleOnEvents(0)="UseReticleText"
     UseReticleOnEvents(1)="UseReticleCorners"
     UseReticleOnEvents(2)="UseReticleTopBars"
     ProximityReticleOnEvents(0)="ProximityReticleCorners"
     ProximityReticleOnEvents(1)="ProximityReticleTopBars"
}

Overview Package Class Source Class tree Glossary
previous class      next class frames      no frames
Class file time: sk 3-1-2016 10:38:40.000 - Creation time: sk 3-1-2016 10:48:40.639 - Created with UnCodeX