From f97dced4a785b0be20c607963987e56d10ffae4d Mon Sep 17 00:00:00 2001 From: Azaezel Date: Fri, 17 Jul 2015 03:34:22 -0500 Subject: [PATCH] followobject position caching re-use the position of an object we're following (within reason) so we're not constantly regenning a path. --- Engine/source/T3D/aiPlayer.cpp | 4 ++++ Engine/source/T3D/aiPlayer.h | 1 + 2 files changed, 5 insertions(+) diff --git a/Engine/source/T3D/aiPlayer.cpp b/Engine/source/T3D/aiPlayer.cpp index 630d4619c..19f04ff19 100644 --- a/Engine/source/T3D/aiPlayer.cpp +++ b/Engine/source/T3D/aiPlayer.cpp @@ -831,11 +831,15 @@ void AIPlayer::followObject(SceneObject *obj, F32 radius) if(!isServerObject()) return; + if ((mFollowData.lastPos - obj->getPosition()).len()getPosition())) { clearCover(); mFollowData.object = obj; mFollowData.radius = radius; + mFollowData.lastPos = obj->getPosition(); } } diff --git a/Engine/source/T3D/aiPlayer.h b/Engine/source/T3D/aiPlayer.h index cff90d549..11996e87d 100644 --- a/Engine/source/T3D/aiPlayer.h +++ b/Engine/source/T3D/aiPlayer.h @@ -122,6 +122,7 @@ private: SimObjectPtr object; /// Distance at whcih to follow. F32 radius; + Point3F lastPos; /// Default constructor. FollowData() : object(NULL) {