From 5d5bd53db88ffe19e58faf9c1d21033d80dedf90 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Tue, 2 Feb 2016 11:11:17 -0800 Subject: [PATCH] More element types --- DataSpec/DNACommon/PART.hpp | 113 +++++++++++++++++++++++++----------- 1 file changed, 79 insertions(+), 34 deletions(-) diff --git a/DataSpec/DNACommon/PART.hpp b/DataSpec/DNACommon/PART.hpp index 14babe18e..36d5a186f 100644 --- a/DataSpec/DNACommon/PART.hpp +++ b/DataSpec/DNACommon/PART.hpp @@ -14,33 +14,58 @@ struct GPSM : BigYAML static const char* DNAType() {return "Retro::GPSM";} const char* DNATypeV() const {return DNAType();} - VectorElement x18_POFS; - RealElement x20_LENG; - RealElement x24_WIDT; - IntElement x28_MAXP; - ColorElement x30_COLR; - IntElement x34_LTME; - VectorElement x38_ILOC; - VectorElement x3c_IVEC; - EmitterElement x40_EMTR; - atUint8 x44_settings; // SORT,MBLR,LINE - atUint8 x45_options; // VMD1-4, OPTS - RealElement x4c_SIZE; - RealElement x50_ROTA; - TextureElement x54_TEXR; - TextureElement x58_TIND; - IntElement xb4_NDSY; - VectorElement x110_LDIR; - ColorElement x104_LCLR; - RealElement x108_LINT; - VectorElement x10c_LOFF; - IntElement x114_LFOT; - RealElement x118_LFOR; - RealElement x11c_LSLA; + + VectorElementFactory x18_POFS; + IntElementFactory x1c_PMED; + RealElementFactory x20_LENG; + RealElementFactory x24_WIDT; + IntElementFactory x28_MAXP; + RealElementFactory x2c_GRTE; + ColorElementFactory x30_COLR; + IntElementFactory x34_LTME; + VectorElementFactory x38_ILOC; + VectorElementFactory x3c_IVEC; + //EmitterElementFactory x40_EMTR; + bool x44_0_SORT : 1; bool x44_1_MBLR : 1; bool x44_2_LINE : 1; bool x44_3_LIT_ : 1; + bool x44_4_AAPH : 1; bool x44_5_ZBUF : 1; bool x44_6_FXLL : 1; bool x44_7_PMAB : 1; + bool x45_0_VMD4 : 1; bool x45_1_VMD3 : 1; bool x45_2_VMD2 : 1; bool x45_3_VMD1 : 1; + bool x45_4_OPTS : 1; bool x45_5_PMUS : 1; bool x45_6_PMOO : 1; // is the last bit unused? + IntElementFactory x48_MBSP; + RealElementFactory x4c_SIZE; + RealElementFactory x50_ROTA; + //TextureElementFactory x54_TEXR; + //TextureElementFactory x58_TIND; + // x5c_PMDL Model + VectorElementFactory x6c_PMOP; + VectorElementFactory x70_PMRT; + VectorElementFactory x74_PMSC; + ColorElementFactory x78_PMCL; + ChildGeneratorDesc x8c_ICTS; + IntElementFactory x9c_NCSY; + IntElementFactory xb4_NDSY; + IntElementFactory xa0_CSSD; ChildGeneratorDesc xa4_IDTS; + IntElementFactory xc8_PISY; + IntElementFactory xcc_SISY; + IntElementFactory xe4_SSSD; + VectorElementFactory xe8_SSPO; + // xec_PMLC Electric Generator + IntElementFactory x100_LTYP; + ColorElementFactory x104_LCLR; + RealElementFactory x108_LINT; + VectorElementFactory x110_LDIR; + VectorElementFactory x10c_LOFF; + IntElementFactory x114_LFOT; + RealElementFactory x118_LFOR; + RealElementFactory x11c_LSLA; void read(Athena::io::YAMLDocReader& r) { + if (r.enterSubRecord("PMCL")) + { + x78_PMCL.read(r); + r.leaveSubRecord(); + } if (r.enterSubRecord("LFOR")) { x118_LFOR.read(r); @@ -53,7 +78,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("EMTR")) { - x40_EMTR.read(r); + //x40_EMTR.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("COLR")) @@ -67,18 +92,17 @@ struct GPSM : BigYAML } if (r.enterSubRecord("AAPH")) { + x44_4_AAPH = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("CSSD")) { + xa0_CSSD.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("GRTE")) { - r.leaveSubRecord(); - } - if (r.enterSubRecord("COLR")) - { + x2c_GRTE.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("FXLL")) @@ -87,6 +111,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("ICTS")) { + x8c_ICTS.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("KSSM")) @@ -142,6 +167,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("LINE")) { + x44_2_LINE = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("LFOT")) @@ -151,6 +177,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("LIT_")) { + x44_3_LIT_ = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("LTME")) @@ -165,6 +192,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("LTYP")) { + x100_LTYP.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("NDSY")) @@ -174,26 +202,32 @@ struct GPSM : BigYAML } if (r.enterSubRecord("MBSP")) { + x48_MBSP.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("MBLR")) { + x44_1_MBLR = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("NCSY")) { + x9c_NCSY.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("PISY")) { + xc8_PISY.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("OPTS")) { + x45_4_OPTS = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("PMAB")) { + x44_7_PMAB = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("SESD")) @@ -206,10 +240,12 @@ struct GPSM : BigYAML } if (r.enterSubRecord("PMSC")) { + x74_PMSC.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("PMOP")) { + x6c_PMOP.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("PMDL")) @@ -222,6 +258,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("PMRT")) { + x70_PMRT.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("POFS")) @@ -231,6 +268,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("PMUS")) { + x45_5_PMUS = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("PSIV")) @@ -264,22 +302,22 @@ struct GPSM : BigYAML } if (r.enterSubRecord("PMED")) { + x1c_PMED.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("PMOO")) { - r.leaveSubRecord(); - } - if (r.enterSubRecord("VEL1")) - { + x45_6_PMOO = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("SSSD")) { + xe4_SSSD.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("SORT")) { + x44_0_SORT = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("SIZE")) @@ -289,15 +327,17 @@ struct GPSM : BigYAML } if (r.enterSubRecord("SISY")) { + xcc_SISY.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("SSPO")) { + xe8_SSPO.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("TEXR")) { - x54_TEXR.read(r); + //x54_TEXR.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("SSWH")) @@ -306,23 +346,27 @@ struct GPSM : BigYAML } if (r.enterSubRecord("TIND")) { - x58_TIND.read(r); + //x58_TIND.read(r); r.leaveSubRecord(); } if (r.enterSubRecord("VMD4")) { + x45_0_VMD4 = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("VMD3")) { + x45_1_VMD3 = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("VMD2")) { + x45_2_VMD2 = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("VMD1")) { + x45_3_VMD1 = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("VEL4")) @@ -343,6 +387,7 @@ struct GPSM : BigYAML } if (r.enterSubRecord("ZBUF")) { + x44_5_ZBUF = r.readBool(nullptr); r.leaveSubRecord(); } if (r.enterSubRecord("WIDT"))