1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-31 13:06:42 +00:00

Don't use loops to detect absorb effects

This commit is contained in:
capostrophic 2020-01-09 13:39:12 +03:00
parent 42cc27194b
commit af2ea477d5

View file

@ -554,16 +554,11 @@ namespace MWMechanics
// Avoid applying absorb effects if the caster is the target // Avoid applying absorb effects if the caster is the target
// We still need the spell to be added // We still need the spell to be added
if (caster == target) if (caster == target
{ && effectIt->mEffectID >= ESM::MagicEffect::AbsorbAttribute
for (int i=0; i<5; ++i) && effectIt->mEffectID <= ESM::MagicEffect::AbsorbSkill)
{
if (effectIt->mEffectID == ESM::MagicEffect::AbsorbAttribute+i)
{ {
effect.mMagnitude = 0; effect.mMagnitude = 0;
break;
}
}
} }
bool hasDuration = !(magicEffect->mData.mFlags & ESM::MagicEffect::NoDuration); bool hasDuration = !(magicEffect->mData.mFlags & ESM::MagicEffect::NoDuration);
@ -614,9 +609,8 @@ namespace MWMechanics
// magnitude, since we're transferring stats from the target to the caster // magnitude, since we're transferring stats from the target to the caster
if (!caster.isEmpty() && caster != target && caster.getClass().isActor()) if (!caster.isEmpty() && caster != target && caster.getClass().isActor())
{ {
for (int i=0; i<5; ++i) if (effectIt->mEffectID >= ESM::MagicEffect::AbsorbAttribute &&
{ effectIt->mEffectID <= ESM::MagicEffect::AbsorbSkill)
if (effectIt->mEffectID == ESM::MagicEffect::AbsorbAttribute+i)
{ {
std::vector<ActiveSpells::ActiveEffect> absorbEffects; std::vector<ActiveSpells::ActiveEffect> absorbEffects;
ActiveSpells::ActiveEffect effect_ = effect; ActiveSpells::ActiveEffect effect_ = effect;
@ -628,8 +622,6 @@ namespace MWMechanics
else else
caster.getClass().getCreatureStats(caster).getActiveSpells().addSpell("", true, caster.getClass().getCreatureStats(caster).getActiveSpells().addSpell("", true,
absorbEffects, mSourceName, target.getClass().getCreatureStats(target).getActorId()); absorbEffects, mSourceName, target.getClass().getCreatureStats(target).getActorId());
break;
}
} }
} }
} }