From dd0ff13ba92c74732198539f0347b7e8d743171a Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Sat, 8 Jun 2024 13:50:40 +0300 Subject: [PATCH] Reset attribute/skill arguments in IngredEffectRefIdAdapter if needed --- apps/opencs/model/world/refidadapterimp.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/apps/opencs/model/world/refidadapterimp.cpp b/apps/opencs/model/world/refidadapterimp.cpp index bdccab9cda..c25ad6e511 100644 --- a/apps/opencs/model/world/refidadapterimp.cpp +++ b/apps/opencs/model/world/refidadapterimp.cpp @@ -194,6 +194,26 @@ void CSMWorld::IngredEffectRefIdAdapter::setNestedData( { case 0: ingredient.mData.mEffectID[subRowIndex] = value.toInt(); + switch (ingredient.mData.mEffectID[subRowIndex]) + { + case ESM::MagicEffect::DrainSkill: + case ESM::MagicEffect::DamageSkill: + case ESM::MagicEffect::RestoreSkill: + case ESM::MagicEffect::FortifySkill: + case ESM::MagicEffect::AbsorbSkill: + ingredient.mData.mAttributes[subRowIndex] = -1; + break; + case ESM::MagicEffect::DrainAttribute: + case ESM::MagicEffect::DamageAttribute: + case ESM::MagicEffect::RestoreAttribute: + case ESM::MagicEffect::FortifyAttribute: + case ESM::MagicEffect::AbsorbAttribute: + ingredient.mData.mSkills[subRowIndex] = -1; + break; + default: + ingredient.mData.mSkills[subRowIndex] = -1; + ingredient.mData.mAttributes[subRowIndex] = -1; + } break; case 1: ingredient.mData.mSkills[subRowIndex] = value.toInt();