diff --git a/components/esm4/loadbptd.cpp b/components/esm4/loadbptd.cpp index b4c783c5ff..509eadfcf1 100644 --- a/components/esm4/loadbptd.cpp +++ b/components/esm4/loadbptd.cpp @@ -78,7 +78,11 @@ void ESM4::BodyPartData::load(ESM4::Reader& reader) reader.getZString(bodyPart.mIKStartNode); break; case ESM4::SUB_BPND: - reader.get(bodyPart.mData); + if (subHdr.dataSize == sizeof(bodyPart.mData)) + reader.get(bodyPart.mData); + // FIXME: FO4 + else + reader.skipSubRecordData(); break; case ESM4::SUB_NAM1: reader.getZString(bodyPart.mLimbReplacementModel); @@ -94,6 +98,14 @@ void ESM4::BodyPartData::load(ESM4::Reader& reader) case ESM4::SUB_MODC: case ESM4::SUB_MODS: case ESM4::SUB_MODF: // Model data end + case ESM4::SUB_BNAM: // FO4 + case ESM4::SUB_CNAM: // FO4 + case ESM4::SUB_DNAM: // FO4 + case ESM4::SUB_ENAM: // FO4 + case ESM4::SUB_FNAM: // FO4 + case ESM4::SUB_INAM: // FO4 + case ESM4::SUB_JNAM: // FO4 + case ESM4::SUB_NAM2: // FO4 reader.skipSubRecordData(); break; default: