From 5ea3cca83b716f313cfae8c222f0f568d1f0486e Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Sat, 2 Aug 2025 12:16:46 +0200 Subject: [PATCH] Remove spell effects on RemoveSpell --- apps/openmw/mwscript/statsextensions.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwscript/statsextensions.cpp b/apps/openmw/mwscript/statsextensions.cpp index 96a9c4f507..195e6a5404 100644 --- a/apps/openmw/mwscript/statsextensions.cpp +++ b/apps/openmw/mwscript/statsextensions.cpp @@ -537,7 +537,11 @@ namespace MWScript return; MWMechanics::CreatureStats& creatureStats = ptr.getClass().getCreatureStats(ptr); - creatureStats.getSpells().remove(id); + const ESM::Spell* spell = MWBase::Environment::get().getESMStore()->get().find(id); + creatureStats.getSpells().remove(spell); + if (spell->mData.mType == ESM::Spell::ST_Ability || spell->mData.mType == ESM::Spell::ST_Blight + || spell->mData.mType == ESM::Spell::ST_Curse || spell->mData.mType == ESM::Spell::ST_Disease) + creatureStats.getActiveSpells().removeEffectsBySourceSpellId(ptr, id); MWBase::WindowManager* wm = MWBase::Environment::get().getWindowManager();