diff --git a/Engine/source/T3D/AI/AIAimTarget.cpp b/Engine/source/T3D/AI/AIAimTarget.cpp index 6e4b3d299..35c7d927e 100644 --- a/Engine/source/T3D/AI/AIAimTarget.cpp +++ b/Engine/source/T3D/AI/AIAimTarget.cpp @@ -181,6 +181,11 @@ DefineEngineMethod(AIController, setAimObject, void, (const char* objName, Point object->setAim(0, 0.0f, offset); } +DefineEngineMethod(AIController, clearAim, void, (), , "clears the bot's target.") +{ + object->clearAim(); +} + DefineEngineMethod(AIController, getAimObject, S32, (), , "@brief Gets the object the AIPlayer is targeting.\n\n" diff --git a/Engine/source/T3D/AI/AIController.cpp b/Engine/source/T3D/AI/AIController.cpp index e5d7a3ebe..30530a3e5 100644 --- a/Engine/source/T3D/AI/AIController.cpp +++ b/Engine/source/T3D/AI/AIController.cpp @@ -111,10 +111,10 @@ bool AIController::getAIMove(Move* movePtr) // Orient towards the aim point, aim object, or towards // our destination. - if (getAim()->mObj || getAim()->mPosSet || mMovement.mMoveState != ModeStop) + if (getAim() || mMovement.mMoveState != ModeStop) { // Update the aim position if we're aiming for an object or explicit position - if (getAim()->mObj || getAim()->mPosSet) + if (getAim()) mMovement.mAimLocation = getAim()->getPosition(); else mMovement.mAimLocation = getNav()->mMoveDestination; @@ -129,7 +129,7 @@ bool AIController::getAIMove(Move* movePtr) // Test for target location in sight if it's an object. The LOS is // run from the eye position to the center of the object's bounding, // which is not very accurate. - if (getAim()->mObj) + if (getAim() && getAim()->mObj) { GameBase* gbo = dynamic_cast(getAIInfo()->mObj.getPointer()); if (getAim()->checkInLos(gbo))