check the real distance to target in aipursue

pull/331/head
Miloslav Číž 7 years ago
parent 5e69f6033f
commit f34223fce9

@ -50,8 +50,13 @@ bool AiPursue::execute (const MWWorld::Ptr& actor, CharacterController& characte
//Set the target desition from the actor
ESM::Pathgrid::Point dest = target.getRefData().getPosition().pos;
ESM::Position aPos = actor.getRefData().getPosition();
if (pathTo(actor, dest, duration, 100)) {
float pathTolerance = 100.0;
if (pathTo(actor, dest, duration, pathTolerance) &&
MWMechanics::distance(dest,aPos.pos[0],aPos.pos[1],aPos.pos[2]) < pathTolerance) // check the true distance in case the target is far away in Z-direction
{
target.getClass().activate(target,actor).get()->execute(actor); //Arrest player when reached
return true;
}

Loading…
Cancel
Save