From db6f76fea8c474225a7c6d04682a82a1538a4bae Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Wed, 16 Aug 2023 04:48:14 +0300 Subject: [PATCH] Skip more CIS1/CIS2 and skip all PRTN subrecords Avoid formatting problems with newly added skipped FO4 blocks --- components/esm4/loadacti.cpp | 15 +++-- components/esm4/loadalch.cpp | 7 +-- components/esm4/loadammo.cpp | 1 + components/esm4/loadarmo.cpp | 1 + components/esm4/loadbook.cpp | 1 + components/esm4/loadcont.cpp | 1 + components/esm4/loaddoor.cpp | 1 + components/esm4/loadflor.cpp | 3 +- components/esm4/loadfurn.cpp | 3 + components/esm4/loadkeym.cpp | 1 + components/esm4/loadligh.cpp | 3 +- components/esm4/loadmisc.cpp | 1 + components/esm4/loadmstt.cpp | 1 + components/esm4/loadnote.cpp | 1 + components/esm4/loadnpc.cpp | 1 + components/esm4/loadrace.cpp | 104 ++++++++++++++++++----------------- components/esm4/loadscol.cpp | 1 + components/esm4/loadstat.cpp | 11 ++-- components/esm4/loadterm.cpp | 1 + components/esm4/loadweap.cpp | 1 + 20 files changed, 88 insertions(+), 71 deletions(-) diff --git a/components/esm4/loadacti.cpp b/components/esm4/loadacti.cpp index d09a96417a..9533feba48 100644 --- a/components/esm4/loadacti.cpp +++ b/components/esm4/loadacti.cpp @@ -95,14 +95,13 @@ void ESM4::Activator::load(ESM4::Reader& reader) case ESM4::SUB_CIS2: case ESM4::SUB_CITC: case ESM4::SUB_NVNM: - // Introduced in FO4 - case ESM4::SUB_ATTX: - case ESM4::SUB_FTYP: - case ESM4::SUB_NTRM: - case ESM4::SUB_PTRN: - case ESM4::SUB_PRPS: - case ESM4::SUB_RADR: - case ESM4::SUB_STCP: + case ESM4::SUB_ATTX: // FO4 + case ESM4::SUB_FTYP: // FO4 + case ESM4::SUB_NTRM: // FO4 + case ESM4::SUB_PTRN: // FO4 + case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_RADR: // FO4 + case ESM4::SUB_STCP: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadalch.cpp b/components/esm4/loadalch.cpp index ab9bf2b1a6..2e3a762ed1 100644 --- a/components/esm4/loadalch.cpp +++ b/components/esm4/loadalch.cpp @@ -107,10 +107,9 @@ void ESM4::Potion::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end - // FO4 - case ESM4::SUB_DNAM: - case ESM4::SUB_PTRN: - case ESM4::SUB_CUSD: + case ESM4::SUB_DNAM: // FO4 + case ESM4::SUB_PTRN: // FO4 + case ESM4::SUB_CUSD: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadammo.cpp b/components/esm4/loadammo.cpp index 78a022189a..31442f125d 100644 --- a/components/esm4/loadammo.cpp +++ b/components/esm4/loadammo.cpp @@ -146,6 +146,7 @@ void ESM4::Ammunition::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadarmo.cpp b/components/esm4/loadarmo.cpp index ac21852411..fd11278ddb 100644 --- a/components/esm4/loadarmo.cpp +++ b/components/esm4/loadarmo.cpp @@ -200,6 +200,7 @@ void ESM4::Armor::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadbook.cpp b/components/esm4/loadbook.cpp index 64cacfe81d..4201b6ddb5 100644 --- a/components/esm4/loadbook.cpp +++ b/components/esm4/loadbook.cpp @@ -111,6 +111,7 @@ void ESM4::Book::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadcont.cpp b/components/esm4/loadcont.cpp index cd1aa45229..ced92c20a1 100644 --- a/components/esm4/loadcont.cpp +++ b/components/esm4/loadcont.cpp @@ -91,6 +91,7 @@ void ESM4::Container::load(ESM4::Reader& reader) case ESM4::SUB_DSTF: // Destructible end case ESM4::SUB_RNAM: // FONV case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loaddoor.cpp b/components/esm4/loaddoor.cpp index d65b1489e6..4c8f53ac77 100644 --- a/components/esm4/loaddoor.cpp +++ b/components/esm4/loaddoor.cpp @@ -84,6 +84,7 @@ void ESM4::Door::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadflor.cpp b/components/esm4/loadflor.cpp index 24c62b1291..65e4cf1353 100644 --- a/components/esm4/loadflor.cpp +++ b/components/esm4/loadflor.cpp @@ -81,7 +81,8 @@ void ESM4::Flora::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end - case ESM4::SUB_PRPS: + case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadfurn.cpp b/components/esm4/loadfurn.cpp index 1c49b46662..a84a980401 100644 --- a/components/esm4/loadfurn.cpp +++ b/components/esm4/loadfurn.cpp @@ -85,6 +85,9 @@ void ESM4::Furniture::load(ESM4::Reader& reader) case ESM4::SUB_XMRK: case ESM4::SUB_PRPS: case ESM4::SUB_CTDA: + case ESM4::SUB_CIS1: + case ESM4::SUB_CIS2: + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadkeym.cpp b/components/esm4/loadkeym.cpp index fa242a365e..fb5d28b246 100644 --- a/components/esm4/loadkeym.cpp +++ b/components/esm4/loadkeym.cpp @@ -85,6 +85,7 @@ void ESM4::Key::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadligh.cpp b/components/esm4/loadligh.cpp index 29acef98a7..52e6c06c5e 100644 --- a/components/esm4/loadligh.cpp +++ b/components/esm4/loadligh.cpp @@ -111,7 +111,8 @@ void ESM4::Light::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end - case ESM4::SUB_PRPS: + case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadmisc.cpp b/components/esm4/loadmisc.cpp index 3a1f835d8c..b3c8be7d8a 100644 --- a/components/esm4/loadmisc.cpp +++ b/components/esm4/loadmisc.cpp @@ -87,6 +87,7 @@ void ESM4::MiscItem::load(ESM4::Reader& reader) case ESM4::SUB_DSTA: case ESM4::SUB_DSTD: case ESM4::SUB_DSTF: // Destructible end + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadmstt.cpp b/components/esm4/loadmstt.cpp index b461dddfab..3e67affd51 100644 --- a/components/esm4/loadmstt.cpp +++ b/components/esm4/loadmstt.cpp @@ -68,6 +68,7 @@ void ESM4::MovableStatic::load(ESM4::Reader& reader) case ESM4::SUB_FULL: case ESM4::SUB_MODB: case ESM4::SUB_PRPS: + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadnote.cpp b/components/esm4/loadnote.cpp index b51600d966..4861ebe653 100644 --- a/components/esm4/loadnote.cpp +++ b/components/esm4/loadnote.cpp @@ -60,6 +60,7 @@ void ESM4::Note::load(ESM4::Reader& reader) case ESM4::SUB_TNAM: case ESM4::SUB_XNAM: case ESM4::SUB_OBND: + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadnpc.cpp b/components/esm4/loadnpc.cpp index 8872e5e4ef..2fb15a18b5 100644 --- a/components/esm4/loadnpc.cpp +++ b/components/esm4/loadnpc.cpp @@ -278,6 +278,7 @@ void ESM4::Npc::load(ESM4::Reader& reader) case ESM4::SUB_NAM4: // FO3 case ESM4::SUB_COED: // FO3 case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadrace.cpp b/components/esm4/loadrace.cpp index a2da871a4a..0b8ced1fb4 100644 --- a/components/esm4/loadrace.cpp +++ b/components/esm4/loadrace.cpp @@ -702,6 +702,9 @@ void ESM4::Race::load(ESM4::Reader& reader) case ESM4::SUB_WKMV: case ESM4::SUB_SPMV: case ESM4::SUB_ATKR: + case ESM4::SUB_CTDA: + case ESM4::SUB_CIS1: + case ESM4::SUB_CIS2: // case ESM4::SUB_YNAM: // FO3 case ESM4::SUB_NAM2: // FO3 @@ -709,57 +712,56 @@ void ESM4::Race::load(ESM4::Reader& reader) case ESM4::SUB_MODT: // FO3 case ESM4::SUB_MODD: // FO3 case ESM4::SUB_ONAM: // FO3 - // FO4 - case ESM4::SUB_APPR: - case ESM4::SUB_ATKS: - case ESM4::SUB_ATKT: - case ESM4::SUB_ATKW: - case ESM4::SUB_BMMP: - case ESM4::SUB_BSMB: - case ESM4::SUB_BSMP: - case ESM4::SUB_BSMS: - case ESM4::SUB_CTDA: - case ESM4::SUB_FMRI: - case ESM4::SUB_FMRN: - case ESM4::SUB_HLTX: - case ESM4::SUB_MLSI: - case ESM4::SUB_MPGN: - case ESM4::SUB_MPGS: - case ESM4::SUB_MPPC: - case ESM4::SUB_MPPF: - case ESM4::SUB_MPPI: - case ESM4::SUB_MPPK: - case ESM4::SUB_MPPM: - case ESM4::SUB_MPPN: - case ESM4::SUB_MPPT: - case ESM4::SUB_MSID: - case ESM4::SUB_MSM0: - case ESM4::SUB_MSM1: - case ESM4::SUB_NNAM: - case ESM4::SUB_NTOP: - case ESM4::SUB_PRPS: - case ESM4::SUB_PTOP: - case ESM4::SUB_QSTI: - case ESM4::SUB_RBPC: - case ESM4::SUB_SADD: - case ESM4::SUB_SAKD: - case ESM4::SUB_SAPT: - case ESM4::SUB_SGNM: - case ESM4::SUB_SRAC: - case ESM4::SUB_SRAF: - case ESM4::SUB_STCP: - case ESM4::SUB_STKD: - case ESM4::SUB_TETI: - case ESM4::SUB_TTEB: - case ESM4::SUB_TTEC: - case ESM4::SUB_TTED: - case ESM4::SUB_TTEF: - case ESM4::SUB_TTET: - case ESM4::SUB_TTGE: - case ESM4::SUB_TTGP: - case ESM4::SUB_UNWP: - case ESM4::SUB_WMAP: - case ESM4::SUB_ZNAM: + case ESM4::SUB_APPR: // FO4 + case ESM4::SUB_ATKS: // FO4 + case ESM4::SUB_ATKT: // FO4 + case ESM4::SUB_ATKW: // FO4 + case ESM4::SUB_BMMP: // FO4 + case ESM4::SUB_BSMB: // FO4 + case ESM4::SUB_BSMP: // FO4 + case ESM4::SUB_BSMS: // FO4 + + case ESM4::SUB_FMRI: // FO4 + case ESM4::SUB_FMRN: // FO4 + case ESM4::SUB_HLTX: // FO4 + case ESM4::SUB_MLSI: // FO4 + case ESM4::SUB_MPGN: // FO4 + case ESM4::SUB_MPGS: // FO4 + case ESM4::SUB_MPPC: // FO4 + case ESM4::SUB_MPPF: // FO4 + case ESM4::SUB_MPPI: // FO4 + case ESM4::SUB_MPPK: // FO4 + case ESM4::SUB_MPPM: // FO4 + case ESM4::SUB_MPPN: // FO4 + case ESM4::SUB_MPPT: // FO4 + case ESM4::SUB_MSID: // FO4 + case ESM4::SUB_MSM0: // FO4 + case ESM4::SUB_MSM1: // FO4 + case ESM4::SUB_NNAM: // FO4 + case ESM4::SUB_NTOP: // FO4 + case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTOP: // FO4 + case ESM4::SUB_QSTI: // FO4 + case ESM4::SUB_RBPC: // FO4 + case ESM4::SUB_SADD: // FO4 + case ESM4::SUB_SAKD: // FO4 + case ESM4::SUB_SAPT: // FO4 + case ESM4::SUB_SGNM: // FO4 + case ESM4::SUB_SRAC: // FO4 + case ESM4::SUB_SRAF: // FO4 + case ESM4::SUB_STCP: // FO4 + case ESM4::SUB_STKD: // FO4 + case ESM4::SUB_TETI: // FO4 + case ESM4::SUB_TTEB: // FO4 + case ESM4::SUB_TTEC: // FO4 + case ESM4::SUB_TTED: // FO4 + case ESM4::SUB_TTEF: // FO4 + case ESM4::SUB_TTET: // FO4 + case ESM4::SUB_TTGE: // FO4 + case ESM4::SUB_TTGP: // FO4 + case ESM4::SUB_UNWP: // FO4 + case ESM4::SUB_WMAP: // FO4 + case ESM4::SUB_ZNAM: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadscol.cpp b/components/esm4/loadscol.cpp index a795b63d10..380e8fbe0f 100644 --- a/components/esm4/loadscol.cpp +++ b/components/esm4/loadscol.cpp @@ -51,6 +51,7 @@ void ESM4::StaticCollection::load(ESM4::Reader& reader) case ESM4::SUB_MODT: case ESM4::SUB_ONAM: case ESM4::SUB_DATA: + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadstat.cpp b/components/esm4/loadstat.cpp index 640db00d1e..a3bb7618c7 100644 --- a/components/esm4/loadstat.cpp +++ b/components/esm4/loadstat.cpp @@ -89,12 +89,11 @@ void ESM4::Static::load(ESM4::Reader& reader) case ESM4::SUB_DNAM: case ESM4::SUB_BRUS: // FONV case ESM4::SUB_RNAM: // FONV - // FO4 - case ESM4::SUB_FTYP: - case ESM4::SUB_NVNM: - case ESM4::SUB_PRPS: - case ESM4::SUB_PTRN: - case ESM4::SUB_VMAD: + case ESM4::SUB_FTYP: // FO4 + case ESM4::SUB_NVNM: // FO4 + case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTRN: // FO4 + case ESM4::SUB_VMAD: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadterm.cpp b/components/esm4/loadterm.cpp index b190145e5f..c33afed2d6 100644 --- a/components/esm4/loadterm.cpp +++ b/components/esm4/loadterm.cpp @@ -82,6 +82,7 @@ void ESM4::Terminal::load(ESM4::Reader& reader) case ESM4::SUB_OBND: case ESM4::SUB_MODS: // FONV case ESM4::SUB_PRPS: // FO4 + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: diff --git a/components/esm4/loadweap.cpp b/components/esm4/loadweap.cpp index bf95c08e5b..f266291fc2 100644 --- a/components/esm4/loadweap.cpp +++ b/components/esm4/loadweap.cpp @@ -180,6 +180,7 @@ void ESM4::Weapon::load(ESM4::Reader& reader) case ESM4::SUB_WNM6: // FONV case ESM4::SUB_WNM7: // FONV case ESM4::SUB_EFSD: // FONV DeadMoney + case ESM4::SUB_PTRN: // FO4 reader.skipSubRecordData(); break; default: