added navmesh tester tool

Added ground work for tester tool
tester tool works but needs to fill out list of acceptable datablocks and spawnclasses
navpaths now share 1 navmeshquery
AIControllerData now has a vector of area costs for different polyareas
General cleanup
This commit is contained in:
marauder2k7 2025-07-26 10:34:19 +01:00
parent edf4d47be0
commit 6d36e17d91
17 changed files with 604 additions and 421 deletions

View file

@ -69,14 +69,11 @@ NavPath::NavPath() :
mXray = false;
mRenderSearch = false;
mQuery = NULL;
mStatus = DT_FAILURE;
}
NavPath::~NavPath()
{
dtFreeNavMeshQuery(mQuery);
mQuery = NULL;
}
void NavPath::checkAutoUpdate()
@ -264,9 +261,6 @@ bool NavPath::onAdd()
if(isServerObject())
{
mQuery = dtAllocNavMeshQuery();
if(!mQuery)
return false;
checkAutoUpdate();
if(!plan())
setProcessTick(true);
@ -293,7 +287,8 @@ bool NavPath::init()
return false;
// Initialise our query.
if(dtStatusFailed(mQuery->init(mMesh->getNavMesh(), MaxPathLen)))
mQuery = mMesh->getNavMeshQuery();
if(!mQuery)
return false;
mPoints.clear();
@ -372,9 +367,6 @@ void NavPath::resize()
bool NavPath::plan()
{
PROFILE_SCOPE(NavPath_plan);
// Initialise filter.
mFilter.setIncludeFlags(mLinkTypes.getFlags());
// Initialise query and visit locations.
if(!init())
return false;
@ -641,6 +633,7 @@ void NavPath::renderSimple(ObjectRenderInst *ri, SceneRenderState *state, BaseMa
{
duDebugDrawTorque dd;
duDebugDrawNavMeshNodes(&dd, *np->mQuery);
dd.immediateRender();
}
}
}