diff --git a/components/esm4/loadarma.cpp b/components/esm4/loadarma.cpp index 3390e59828..1de298c689 100644 --- a/components/esm4/loadarma.cpp +++ b/components/esm4/loadarma.cpp @@ -95,6 +95,15 @@ void ESM4::ArmorAddon::load(ESM4::Reader& reader) break; case ESM4::SUB_DNAM: + reader.get(mMalePriority); + reader.get(mFemalePriority); + reader.get(mWeightSliderMale); + reader.get(mWeightSliderFemale); + reader.get(mUnknown1); + reader.get(mDetectionSoundValue); + reader.get(mUnknown2); + reader.get(mWeaponAdjust); + break; case ESM4::SUB_MO2T: // FIXME: should group with MOD2 case ESM4::SUB_MO2S: // FIXME: should group with MOD2 case ESM4::SUB_MO2C: // FIXME: should group with MOD2 diff --git a/components/esm4/loadarma.hpp b/components/esm4/loadarma.hpp index 24fa8b1093..fa36d22bbe 100644 --- a/components/esm4/loadarma.hpp +++ b/components/esm4/loadarma.hpp @@ -59,6 +59,18 @@ namespace ESM4 BodyTemplate mBodyTemplate; // TES5 + std::uint8_t mMalePriority; + std::uint8_t mFemalePriority; + + // Flag 0x2 in mWeightSlider means that there are 2 world models for different weights: _0.nif and _1.nif + std::uint8_t mWeightSliderMale; + std::uint8_t mWeightSliderFemale; + + std::uint16_t mUnknown1; + std::uint8_t mDetectionSoundValue; + std::uint8_t mUnknown2; + float mWeaponAdjust; + void load(ESM4::Reader& reader); // void save(ESM4::Writer& writer) const; diff --git a/components/esm4/loadhdpt.cpp b/components/esm4/loadhdpt.cpp index 7592db5486..250a687042 100644 --- a/components/esm4/loadhdpt.cpp +++ b/components/esm4/loadhdpt.cpp @@ -88,6 +88,8 @@ void ESM4::HeadPart::load(ESM4::Reader& reader) reader.getFormId(mBaseTexture); break; case ESM4::SUB_PNAM: + reader.get(mType); + break; case ESM4::SUB_MODT: // Model data case ESM4::SUB_MODC: case ESM4::SUB_MODS: diff --git a/components/esm4/loadhdpt.hpp b/components/esm4/loadhdpt.hpp index 6f08d72961..7686a4789f 100644 --- a/components/esm4/loadhdpt.hpp +++ b/components/esm4/loadhdpt.hpp @@ -49,6 +49,18 @@ namespace ESM4 std::string mModel; std::uint8_t mData; + std::uint32_t mType; + + enum Type : std::uint32_t + { + Type_Misc = 0, + Type_Face = 1, + Type_Eyes = 2, + Type_Hair = 3, + Type_FacialHair = 4, + Type_Scar = 5, + Type_Eyebrows = 6, + }; ESM::FormId mAdditionalPart;