From 6fa0354a179b110e2bc12e465dab51e93feaeeae Mon Sep 17 00:00:00 2001 From: Allofich Date: Mon, 26 Dec 2016 04:50:22 +0900 Subject: [PATCH] Make AI attack player also if it attacks follower --- apps/openmw/mwmechanics/actors.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwmechanics/actors.cpp b/apps/openmw/mwmechanics/actors.cpp index d2d07cf28..441e7d0f4 100644 --- a/apps/openmw/mwmechanics/actors.cpp +++ b/apps/openmw/mwmechanics/actors.cpp @@ -338,11 +338,24 @@ namespace MWMechanics aggressive = true; } + // Initiate combat with the player if we are already in combat with a player follower or escorter + const std::list& playerFollowersAndEscorters = getActorsSidingWith(getPlayer()); + if (!aggressive && againstPlayer) + { + for (std::list::const_iterator it = playerFollowersAndEscorters.begin(); it != playerFollowersAndEscorters.end(); ++it) + { + if (creatureStats1.getAiSequence().isInCombat(*it)) + { + MWBase::Environment::get().getMechanicsManager()->startCombat(actor1, actor2); + return; + } + } + } + // Otherwise, don't initiate combat with an unreachable target if (!aggressive && !MWMechanics::canFight(actor1,actor2)) return; - const std::list& playerFollowersAndEscorters = getActorsSidingWith(getPlayer()); if (!aggressive && (againstPlayer || std::find(playerFollowersAndEscorters.begin(), playerFollowersAndEscorters.end(), actor2) != playerFollowersAndEscorters.end())) { // Player followers and escorters with high fight should not initiate combat here with the player or with