42 lines
1.0 KiB
Ucode
42 lines
1.0 KiB
Ucode
|
/**
|
||
|
* only allows polys that contain cover from the specified CoverLink
|
||
|
*
|
||
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
||
|
*/
|
||
|
class NavMeshPath_SameCoverLink extends NavMeshPathConstraint
|
||
|
native(AI);
|
||
|
|
||
|
cpptext
|
||
|
{
|
||
|
virtual UBOOL EvaluatePath( FNavMeshEdgeBase* Edge, FNavMeshEdgeBase* PredecessorEdge, FNavMeshPolyBase* SrcPoly, FNavMeshPolyBase* DestPoly,
|
||
|
const FNavMeshPathParams& PathParams, INT& out_PathCost, INT& out_HeuristicCost, const FVector& EdgePoint )
|
||
|
{
|
||
|
for (INT i = 0; i < DestPoly->PolyCover.Num(); i++)
|
||
|
{
|
||
|
if (*DestPoly->PolyCover(i) == TestLink)
|
||
|
{
|
||
|
return TRUE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return FALSE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var CoverLink TestLink;
|
||
|
|
||
|
static final function SameCoverLink(NavigationHandle NavHandle, CoverLink InLink)
|
||
|
{
|
||
|
local NavMeshPath_SameCoverLink NewConstraint;
|
||
|
|
||
|
NewConstraint = NavMeshPath_SameCoverLink(NavHandle.CreatePathConstraint(default.class));
|
||
|
NewConstraint.TestLink = InLink;
|
||
|
NavHandle.AddPathConstraint(NewConstraint);
|
||
|
}
|
||
|
|
||
|
function Recycle()
|
||
|
{
|
||
|
Super.Recycle();
|
||
|
TestLink = None;
|
||
|
}
|