diff options
author | Alexei Dobrohotov <alex462002@gmail.com> | 2021-01-10 12:00:18 +0000 |
---|---|---|
committer | Evil Eye <malusluminis@hotmail.com> | 2021-01-10 13:35:57 +0000 |
commit | b02d589db11bee9d1649aa6a18b46689226f612d (patch) | |
tree | 268d030f6eb9c0c1ad22624f9b5bf4d433c6e9c1 | |
parent | b3f3b29bbe982c554ba5f1e82e939c2cb7f86d32 (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.cpp | 17 |
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 |