summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Dobrohotov <alex462002@gmail.com>2021-01-10 12:00:18 +0000
committerEvil Eye <malusluminis@hotmail.com>2021-01-10 13:35:57 +0000
commitb02d589db11bee9d1649aa6a18b46689226f612d (patch)
tree268d030f6eb9c0c1ad22624f9b5bf4d433c6e9c1
parentb3f3b29bbe982c554ba5f1e82e939c2cb7f86d32 (diff)
Merge branch 'respect_almas_personal_space' into 'master'cherry-pick-c431f31c
Tweak follow distance to be more like the original See merge request OpenMW/openmw!503 (cherry picked from commit c431f31c810fa877ae11e1191e6e85901d622925) f2fd8c64 Tweak follow distance to be more like the original
-rw-r--r--apps/openmw/mwmechanics/aifollow.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/apps/openmw/mwmechanics/aifollow.cpp b/apps/openmw/mwmechanics/aifollow.cpp
index f31be9c10a..ec23679977 100644
--- a/apps/openmw/mwmechanics/aifollow.cpp
+++ b/apps/openmw/mwmechanics/aifollow.cpp
@@ -14,6 +14,16 @@
#include "movement.hpp"
#include "steering.hpp"
+namespace
+{
+osg::Vec3f::value_type getHalfExtents(const MWWorld::ConstPtr& actor)
+{
+ if(actor.getClass().isNpc())
+ return 64;
+ return MWBase::Environment::get().getWorld()->getHalfExtents(actor).y();
+}
+}
+
namespace MWMechanics
{
int AiFollow::mFollowIndexCounter = 0;
@@ -121,13 +131,14 @@ bool AiFollow::execute (const MWWorld::Ptr& actor, CharacterController& characte
{
for(auto& follower : followers)
{
- auto halfExtent = MWBase::Environment::get().getWorld()->getHalfExtents(follower.second).y();
+ auto halfExtent = getHalfExtents(follower.second);
if(halfExtent > floatingDistance)
floatingDistance = halfExtent;
}
+ floatingDistance += 128;
}
- floatingDistance += MWBase::Environment::get().getWorld()->getHalfExtents(target).y();
- floatingDistance += MWBase::Environment::get().getWorld()->getHalfExtents(actor).y() * 2;
+ floatingDistance += getHalfExtents(target) + 64;
+ floatingDistance += getHalfExtents(actor) * 2;
short followDistance = static_cast<short>(floatingDistance);
if (!mAlwaysFollow) //Update if you only follow for a bit