From f7a85be5044ef037ce734587b9548e933c6de5d6 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Thu, 17 Aug 2023 01:04:17 +0300 Subject: [PATCH] Maybe load FO4 armor addon records You still can't load into the game because of some unclear localization string problem. But if getLocalizedString doesn't throw an exception, then it'll work. Sort of. --- components/esm4/loadarma.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/components/esm4/loadarma.cpp b/components/esm4/loadarma.cpp index 8fa3dc8fc3..3390e59828 100644 --- a/components/esm4/loadarma.cpp +++ b/components/esm4/loadarma.cpp @@ -83,24 +83,35 @@ void ESM4::ArmorAddon::load(ESM4::Reader& reader) reader.get(mBodyTemplate.unknown3); // probably padding reader.get(mBodyTemplate.type); break; - case ESM4::SUB_BOD2: // TES5 + case ESM4::SUB_BOD2: // TES5+ reader.get(mBodyTemplate.bodyPart); mBodyTemplate.flags = 0; mBodyTemplate.unknown1 = 0; // probably padding mBodyTemplate.unknown2 = 0; // probably padding mBodyTemplate.unknown3 = 0; // probably padding - reader.get(mBodyTemplate.type); + mBodyTemplate.type = 0; + if (subHdr.dataSize == 8) + reader.get(mBodyTemplate.type); break; case ESM4::SUB_DNAM: 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 + case ESM4::SUB_MO2F: // FIXME: should group with MOD2 case ESM4::SUB_MO3T: // FIXME: should group with MOD3 case ESM4::SUB_MO3S: // FIXME: should group with MOD3 + case ESM4::SUB_MO3C: // FIXME: should group with MOD3 + case ESM4::SUB_MO3F: // FIXME: should group with MOD3 case ESM4::SUB_MOSD: // FO3 // FIXME: should group with MOD3 case ESM4::SUB_MO4T: // FIXME: should group with MOD4 case ESM4::SUB_MO4S: // FIXME: should group with MOD4 + case ESM4::SUB_MO4C: // FIXME: should group with MOD4 + case ESM4::SUB_MO4F: // FIXME: should group with MOD4 case ESM4::SUB_MO5T: + case ESM4::SUB_MO5S: + case ESM4::SUB_MO5C: + case ESM4::SUB_MO5F: case ESM4::SUB_NAM2: // txst formid male case ESM4::SUB_NAM3: // txst formid female case ESM4::SUB_SNDD: // footset sound formid @@ -114,6 +125,10 @@ void ESM4::ArmorAddon::load(ESM4::Reader& reader) case ESM4::SUB_MODS: // FO3 // FIXME: should group with MODL case ESM4::SUB_MODD: // FO3 // FIXME: should group with MODL case ESM4::SUB_OBND: // FO3 + case ESM4::SUB_BSMB: // FO4 + case ESM4::SUB_BSMP: // FO4 + case ESM4::SUB_BSMS: // FO4 + case ESM4::SUB_ONAM: // FO4 reader.skipSubRecordData(); break; default: