mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-24 06:39:42 +00:00
Merged pull request #1879
This commit is contained in:
commit
a7242d9e7a
1 changed files with 12 additions and 8 deletions
|
@ -1782,6 +1782,8 @@ namespace MWMechanics
|
||||||
if (iteratedActor == getPlayer())
|
if (iteratedActor == getPlayer())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
const bool sameActor = (iteratedActor == actor);
|
||||||
|
|
||||||
const CreatureStats &stats = iteratedActor.getClass().getCreatureStats(iteratedActor);
|
const CreatureStats &stats = iteratedActor.getClass().getCreatureStats(iteratedActor);
|
||||||
if (stats.isDead())
|
if (stats.isDead())
|
||||||
continue;
|
continue;
|
||||||
|
@ -1790,14 +1792,13 @@ namespace MWMechanics
|
||||||
// Actors that are targeted by this actor's Follow or Escort packages also side with them
|
// Actors that are targeted by this actor's Follow or Escort packages also side with them
|
||||||
for (auto package = stats.getAiSequence().begin(); package != stats.getAiSequence().end(); ++package)
|
for (auto package = stats.getAiSequence().begin(); package != stats.getAiSequence().end(); ++package)
|
||||||
{
|
{
|
||||||
const MWWorld::Ptr &target = (*package)->getTarget();
|
if ((*package)->sideWithTarget() && !(*package)->getTarget().isEmpty())
|
||||||
if ((*package)->sideWithTarget() && !target.isEmpty())
|
|
||||||
{
|
{
|
||||||
if (iteratedActor == actor)
|
if (sameActor)
|
||||||
{
|
{
|
||||||
list.push_back(target);
|
list.push_back((*package)->getTarget());
|
||||||
}
|
}
|
||||||
else if (target == actor)
|
else if ((*package)->getTarget() == actor)
|
||||||
{
|
{
|
||||||
list.push_back(iteratedActor);
|
list.push_back(iteratedActor);
|
||||||
}
|
}
|
||||||
|
@ -1816,7 +1817,7 @@ namespace MWMechanics
|
||||||
for(PtrActorMap::iterator iter(mActors.begin());iter != mActors.end();++iter)
|
for(PtrActorMap::iterator iter(mActors.begin());iter != mActors.end();++iter)
|
||||||
{
|
{
|
||||||
const MWWorld::Ptr &iteratedActor = iter->first;
|
const MWWorld::Ptr &iteratedActor = iter->first;
|
||||||
if (iteratedActor == getPlayer())
|
if (iteratedActor == getPlayer() || iteratedActor == actor)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const CreatureStats &stats = iteratedActor.getClass().getCreatureStats(iteratedActor);
|
const CreatureStats &stats = iteratedActor.getClass().getCreatureStats(iteratedActor);
|
||||||
|
@ -1879,7 +1880,7 @@ namespace MWMechanics
|
||||||
for(PtrActorMap::iterator iter(mActors.begin());iter != mActors.end();++iter)
|
for(PtrActorMap::iterator iter(mActors.begin());iter != mActors.end();++iter)
|
||||||
{
|
{
|
||||||
const MWWorld::Ptr &iteratedActor = iter->first;
|
const MWWorld::Ptr &iteratedActor = iter->first;
|
||||||
if (iteratedActor == getPlayer())
|
if (iteratedActor == getPlayer() || iteratedActor == actor)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const CreatureStats &stats = iteratedActor.getClass().getCreatureStats(iteratedActor);
|
const CreatureStats &stats = iteratedActor.getClass().getCreatureStats(iteratedActor);
|
||||||
|
@ -1909,8 +1910,11 @@ namespace MWMechanics
|
||||||
getObjectsInRange(position, aiProcessingDistance, neighbors);
|
getObjectsInRange(position, aiProcessingDistance, neighbors);
|
||||||
for(auto neighbor = neighbors.begin(); neighbor != neighbors.end(); ++neighbor)
|
for(auto neighbor = neighbors.begin(); neighbor != neighbors.end(); ++neighbor)
|
||||||
{
|
{
|
||||||
|
if (*neighbor == actor)
|
||||||
|
continue;
|
||||||
|
|
||||||
const CreatureStats &stats = neighbor->getClass().getCreatureStats(*neighbor);
|
const CreatureStats &stats = neighbor->getClass().getCreatureStats(*neighbor);
|
||||||
if (stats.isDead() || *neighbor == actor)
|
if (stats.isDead())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (stats.getAiSequence().isInCombat(actor))
|
if (stats.getAiSequence().isInCombat(actor))
|
||||||
|
|
Loading…
Reference in a new issue