simplify setpathdestination loop

This commit is contained in:
AzaezelX 2025-04-17 11:39:06 -05:00
parent 83822f1148
commit 2956223a60
2 changed files with 5 additions and 5 deletions

View file

@ -78,11 +78,11 @@ bool AIController::getAIMove(Move* movePtr)
Point3F rotation = sbo->getTransform().toEuler();
#ifdef TORQUE_NAVIGATION_ENABLED
if (sbo->getDamageState() == ShapeBase::Enabled)
if (sbo->getDamageState() == ShapeBase::Enabled && getGoal())
{
if (mMovement.mMoveState != ModeStop)
getNav()->updateNavMesh();
if (getGoal() && !getGoal()->mObj.isNull())
if (getGoal()->mObj.isValid())
{
if (getNav()->mPathData.path.isNull())
{

View file

@ -64,7 +64,6 @@ NavMesh* AINavigation::findNavMesh() const
void AINavigation::updateNavMesh()
{
GameBase* gbo = dynamic_cast<GameBase*>(mControllerRef->getAIInfo()->mObj.getPointer());
NavMesh* old = mNavMesh;
if (mNavMesh.isNull())
mNavMesh = findNavMesh();
else
@ -73,9 +72,9 @@ void AINavigation::updateNavMesh()
mNavMesh = findNavMesh();
}
// See if we need to update our path.
if (mNavMesh != old && !mPathData.path.isNull())
if (mNavMesh)
{
setPathDestination(mPathData.path->mTo);
setPathDestination(getCtrl()->getGoal()->getPosition());
}
}
@ -178,6 +177,7 @@ void AINavigation::onReachDestination()
bool AINavigation::setPathDestination(const Point3F& pos)
{
if (!getCtrl()->getGoal()) getCtrl()->setGoal(pos, getCtrl()->mControllerData->mMoveTolerance);
if (!mNavMesh)
updateNavMesh();
// If we can't find a mesh, just move regularly.