forked from mirror/openmw-tes3mp
check the real distance to target in aipursue
This commit is contained in:
parent
5e69f6033f
commit
f34223fce9
1 changed files with 6 additions and 1 deletions
|
@ -50,8 +50,13 @@ bool AiPursue::execute (const MWWorld::Ptr& actor, CharacterController& characte
|
||||||
|
|
||||||
//Set the target desition from the actor
|
//Set the target desition from the actor
|
||||||
ESM::Pathgrid::Point dest = target.getRefData().getPosition().pos;
|
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
|
target.getClass().activate(target,actor).get()->execute(actor); //Arrest player when reached
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue