1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-10-15 08:56:35 +00:00

Don't add magic effects to dead actors

This commit is contained in:
Evil Eye 2025-08-24 19:03:53 +02:00
parent 2b7f775ffe
commit 49de215112

View file

@ -294,19 +294,22 @@ namespace MWMechanics
addToSpells(ptr, spell, context); addToSpells(ptr, spell, context);
mQueue.clear(); mQueue.clear();
// Vanilla only does this on cell change I think if (!creatureStats.isDead())
const auto& spells = creatureStats.getSpells();
for (const ESM::Spell* spell : spells)
{ {
if (spell->mData.mType != ESM::Spell::ST_Spell && spell->mData.mType != ESM::Spell::ST_Power // Vanilla only does this on cell change I think
&& !isSpellActive(spell->mId)) const auto& spells = creatureStats.getSpells();
for (const ESM::Spell* spell : spells)
{ {
initParams(ptr, ActiveSpellParams{ spell, ptr, true }, context); if (spell->mData.mType != ESM::Spell::ST_Spell && spell->mData.mType != ESM::Spell::ST_Power
&& !isSpellActive(spell->mId))
{
initParams(ptr, ActiveSpellParams{ spell, ptr, true }, context);
}
} }
} }
if (ptr.getClass().hasInventoryStore(ptr) if (ptr.getClass().hasInventoryStore(ptr)
&& !(creatureStats.isDead() && !creatureStats.isDeathAnimationFinished())) && !(creatureStats.isDead() && creatureStats.isDeathAnimationFinished()))
{ {
auto& store = ptr.getClass().getInventoryStore(ptr); auto& store = ptr.getClass().getInventoryStore(ptr);
if (store.getInvListener() != nullptr) if (store.getInvListener() != nullptr)