From 3dbe17b6ed88156b083a87afa33051765be29b92 Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 23 Aug 2014 22:55:32 +0200 Subject: [PATCH] Terminate AiPursue when target dies (Fixes #1836) --- apps/openmw/mwmechanics/aipursue.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/openmw/mwmechanics/aipursue.cpp b/apps/openmw/mwmechanics/aipursue.cpp index 2995a8c367..c41c639ea1 100644 --- a/apps/openmw/mwmechanics/aipursue.cpp +++ b/apps/openmw/mwmechanics/aipursue.cpp @@ -32,12 +32,18 @@ AiPursue *MWMechanics::AiPursue::clone() const } bool AiPursue::execute (const MWWorld::Ptr& actor, float duration) { + if(actor.getClass().getCreatureStats(actor).isDead()) + return true; + ESM::Position pos = actor.getRefData().getPosition(); //position of the actor const MWWorld::Ptr target = MWBase::Environment::get().getWorld()->searchPtrViaActorId(mTargetActorId); //The target to follow if(target == MWWorld::Ptr()) return true; //Target doesn't exist + if(target.getClass().getCreatureStats(target).isDead()) + return true; + actor.getClass().getCreatureStats(actor).setDrawState(DrawState_Nothing); //Set the target desition from the actor