diff --git a/apps/esmtool/record.cpp b/apps/esmtool/record.cpp index e0fcc6bcbf..13f46dc9d7 100644 --- a/apps/esmtool/record.cpp +++ b/apps/esmtool/record.cpp @@ -156,9 +156,8 @@ namespace int effectIdx = ESM::MagicEffect::refIdToIndex(effect.mData.mEffectID); int skillIdx = ESM::Skill::refIdToIndex(effect.mData.mSkill); int attributeIdx = ESM::Attribute::refIdToIndex(effect.mData.mAttribute); - if (effectIdx != -1) - std::cout << " Effect[" << i << "]: " << magicEffectLabel(effectIdx) << " (" << effectIdx << ")" - << std::endl; + std::cout << " Effect[" << i << "]: " << magicEffectLabel(effectIdx) << " (" << effectIdx << ")" + << std::endl; if (skillIdx != -1) std::cout << " Skill: " << skillLabel(skillIdx) << " (" << skillIdx << ")" << std::endl; if (attributeIdx != -1) diff --git a/apps/openmw/mwworld/esmstore.cpp b/apps/openmw/mwworld/esmstore.cpp index 4bbe9a4c7b..3e9858d064 100644 --- a/apps/openmw/mwworld/esmstore.cpp +++ b/apps/openmw/mwworld/esmstore.cpp @@ -175,7 +175,7 @@ namespace if (!mgef) { Log(Debug::Verbose) << RecordType::getRecordType() << " " << spell.mId - << ": dropping invalid effect (index " << iter->mData.mEffectID << ")"; + << ": dropping invalid effect (" << iter->mData.mEffectID << ")"; iter = spell.mEffects.mList.erase(iter); changed = true; continue; diff --git a/components/esm3/effectlist.cpp b/components/esm3/effectlist.cpp index 7a7841d9ed..40bdb24f9d 100644 --- a/components/esm3/effectlist.cpp +++ b/components/esm3/effectlist.cpp @@ -45,10 +45,7 @@ namespace ESM void fromBinary(const EsmENAMstruct& src, ENAMstruct& dst) { - int16_t index = src.mEffectID; - if (index < 0 || index >= ESM::MagicEffect::Length) - throw std::runtime_error(std::format("Cannot deserialize effect into ENAM with index {}.", index)); - dst.mEffectID = ESM::MagicEffect::indexToRefId(index); + dst.mEffectID = ESM::MagicEffect::indexToRefId(src.mEffectID); dst.mSkill = ESM::Skill::indexToRefId(src.mSkill); dst.mAttribute = ESM::Attribute::indexToRefId(src.mAttribute); dst.mRange = src.mRange;