mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-17 10:21:11 +00:00
Skip expensive visitEffectSources call if no summoned creatures or summon effects are active
This commit is contained in:
parent
ee4073541c
commit
3065600a86
@ -732,11 +732,19 @@ namespace MWMechanics
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateSummonedCreatures updateSummonedCreatures(ptr);
|
bool hasSummonEffect = false;
|
||||||
creatureStats.getActiveSpells().visitEffectSources(updateSummonedCreatures);
|
for (MagicEffects::Collection::const_iterator it = effects.begin(); it != effects.end(); ++it)
|
||||||
if (ptr.getClass().hasInventoryStore(ptr))
|
if (it->first.mId >= ESM::MagicEffect::SummonScamp && it->first.mId <= ESM::MagicEffect::SummonStormAtronach)
|
||||||
ptr.getClass().getInventoryStore(ptr).visitEffectSources(updateSummonedCreatures);
|
hasSummonEffect = true;
|
||||||
updateSummonedCreatures.process();
|
|
||||||
|
if (!creatureStats.getSummonedCreatureMap().empty() || !creatureStats.getSummonedCreatureGraveyard().empty() || hasSummonEffect)
|
||||||
|
{
|
||||||
|
UpdateSummonedCreatures updateSummonedCreatures(ptr);
|
||||||
|
creatureStats.getActiveSpells().visitEffectSources(updateSummonedCreatures);
|
||||||
|
if (ptr.getClass().hasInventoryStore(ptr))
|
||||||
|
ptr.getClass().getInventoryStore(ptr).visitEffectSources(updateSummonedCreatures);
|
||||||
|
updateSummonedCreatures.process();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Actors::calculateNpcStatModifiers (const MWWorld::Ptr& ptr, float duration)
|
void Actors::calculateNpcStatModifiers (const MWWorld::Ptr& ptr, float duration)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user