1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-30 09:15:38 +00:00

Don't add additional targets to allies that are already in combat

This commit is contained in:
Evil Eye 2021-11-23 22:44:47 +01:00
parent ede09309a6
commit cc081c3d2d
3 changed files with 12 additions and 0 deletions

View file

@ -11,6 +11,7 @@
Bug #3792: 1 frame late magicka recalc breaks early scripted magicka reactions to Intelligence change
Bug #3846: Strings starting with "-" fail to compile if not enclosed in quotes
Bug #3855: AI sometimes spams defensive spells
Bug #3867: All followers attack player when one follower enters combat with player
Bug #3905: Great House Dagoth issues
Bug #4203: Resurrecting an actor doesn't close the loot GUI
Bug #4376: Moved actors don't respawn in their original cells
@ -26,6 +27,7 @@
Bug #5192: Actor turn rate is too slow
Bug #5207: Loose summons can be present in scene
Bug #5279: Ingame console stops auto-scrolling after clicking output
Bug #5318: Aiescort behaves differently from vanilla
Bug #5371: 'Dead' slaughterfish added by mod are animated/alive
Bug #5377: Console does not appear after using menutest in inventory
Bug #5379: Wandering NPCs falling through cantons

View file

@ -501,6 +501,9 @@ namespace MWMechanics
// If an ally of actor1 has been attacked by actor2 or has attacked actor2, start combat between actor1 and actor2
for (const MWWorld::Ptr& ally : allies1)
{
// Don't let allies that are already in combat choose additional sides
if (ally.getClass().getCreatureStats(ally).getAiSequence().isInCombat())
continue;
if (creatureStats1.getAiSequence().isInCombat(ally))
continue;

View file

@ -1457,7 +1457,14 @@ namespace MWMechanics
}
if (!peaceful)
{
startCombat(target, attacker);
// Force friendly actors into combat to prevent infighting between followers
std::set<MWWorld::Ptr> followersTarget;
getActorsSidingWith(target, followersTarget);
for(const auto& follower : followersTarget)
startCombat(follower, attacker);
}
}
}