Revert "Apply the AiTravel maxRange to AiEscort as well (Fixes #2697)"

This reverts commit 1f543b4d79.
coverity_scan
scrawl 9 years ago
parent 145756c0a1
commit 7aeafd3bb9

@ -75,9 +75,6 @@ namespace MWMechanics
return true;
}
if (!isWithinMaxRange(osg::Vec3f(mX, mY, mZ), actor.getRefData().getPosition().asVec3()))
return false;
if (!mCellId.empty() && mCellId != actor.getCell()->getCell()->getCellId().mWorldspace)
return false; // Not in the correct cell, pause and rely on the player to go back through a teleport door

@ -97,19 +97,10 @@ namespace MWMechanics
ESM::Pathgrid::Point mPrevDest;
bool isWithinMaxRange(const osg::Vec3f& pos1, const osg::Vec3f& pos2) const
{
// Maximum travel distance for vanilla compatibility.
// Was likely meant to prevent NPCs walking into non-loaded exterior cells, but for some reason is used in interior cells as well.
// We can make this configurable at some point, but the default *must* be the below value. Anything else will break shoddily-written content (*cough* MW *cough*) in bizarre ways.
return (pos1 - pos2).length2() <= 7168*7168;
}
private:
bool isNearInactiveCell(const ESM::Position& actorPos);
};
}
#endif

@ -13,6 +13,18 @@
#include "movement.hpp"
#include "creaturestats.hpp"
namespace
{
bool isWithinMaxRange(const osg::Vec3f& pos1, const osg::Vec3f& pos2)
{
// Maximum travel distance for vanilla compatibility.
// Was likely meant to prevent NPCs walking into non-loaded exterior cells, but for some reason is used in interior cells as well.
// We can make this configurable at some point, but the default *must* be the below value. Anything else will break shoddily-written content (*cough* MW *cough*) in bizarre ways.
return (pos1 - pos2).length2() <= 7168*7168;
}
}
namespace MWMechanics
{

Loading…
Cancel
Save