protected override Stream UnParse()
        {
            var s =  base.UnParse();
            BinaryWriter w = new BinaryWriter(s);
            if (this.unknown1 == null) this.unknown1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[7 * 4]);
            this.unknown1.UnParse(s);
            w.Write(this.unknownFlags1);
            w.Write(this.unknownFlags2);
            w.Write(this.unknownFlags3);
            w.Write(this.unknownFlags4);
            w.Write(this.unknownFlags5);
            w.Write(this.unknownInstance1);
            w.Write(this.unknown2);
            w.Write(this.unknownInstance2);
            w.Write(this.unknown3);
            if (this.colorList == null) this.colorList = new SwatchColorList(OnResourceChanged);
            this.colorList.UnParse(s);
            if (this.unknownFlags == null) this.unknownFlags = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[5]);
            this.unknownFlags.UnParse(s);
            w.Write(this.buildBuyMode);

            if (base.Version >= 0x19)
            {
                w.Write(this.unknown4);
                w.Write(this.unknown5);
                w.Write(this.unknown6);
                w.Write(this.unknown7);
            }
            return s;
        }
Exemple #2
0
        protected override Stream UnParse()
        {
            var          s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            w.Write(this.unknown1);
            w.Write(this.unknown2);
            w.Write(this.unknown3);
            w.Write(this.unknown4);
            w.Write(this.unknown5);
            w.Write(this.unknown6);
            w.Write(this.unknown7);
            if (this.dataBlob1 == null)
            {
                this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[29]);
            }
            this.dataBlob1.UnParse(s);
            w.Write(this.unknown8);
            w.Write(this.unknown9);
            w.Write(this.unknown10);

            if (base.Version >= 0x19)
            {
                if (this.dataBlob2 == null)
                {
                    this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[16]);
                }
                this.dataBlob2.UnParse(s);
            }

            w.Write(this.unknown11);
            return(s);
        }
        protected override void Parse(Stream s)
        {
            BinaryReader r = new BinaryReader(s);
            base.Parse(s);
            this.unknown1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(7 * 4));
            this.unknownFlags1 = r.ReadUInt32();
            this.unknownFlags2 = r.ReadUInt32();
            this.unknownFlags3 = r.ReadUInt32();
            this.unknownFlags4 = r.ReadUInt32();
            this.unknownFlags5 = r.ReadUInt32();
            this.unknownInstance1 = r.ReadUInt64();
            this.unknown2 = r.ReadByte();
            this.unknownInstance2 = r.ReadUInt64();
            this.unknown3 = r.ReadByte();
            this.colorList = new SwatchColorList(OnResourceChanged, s);
            this.unknownFlags = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(5));
            this.buildBuyMode = r.ReadBoolean();

            if (base.Version >= 0x19)
            {
                this.unknown4 = r.ReadUInt32();
                this.unknown5 = r.ReadUInt32();
                this.unknown6 = r.ReadUInt32();
                this.unknown7 = r.ReadUInt32();
            }
        }
Exemple #4
0
        protected override void Parse(Stream s)
        {
            base.Parse(s);
            BinaryReader r = new BinaryReader(s);

            this.unknown1       = r.ReadUInt32();
            this.unknown2       = r.ReadUInt32();
            this.unknown3       = r.ReadUInt32();
            this.unknown4       = r.ReadUInt32();
            this.unknown5       = r.ReadUInt32();
            this.unknown6       = r.ReadUInt32();
            this.unknown7       = r.ReadUInt32();
            this.dataBlob1      = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(17));
            this.unknown8       = r.ReadUInt32();
            this.unknown9       = r.ReadUInt64();
            this.catalogGroupID = r.ReadUInt64();
            this.unknown10      = r.ReadByte();
            this.colorList      = new SwatchColorList(OnResourceChanged, s);
            this.unknown11      = r.ReadUInt32();
            this.unknown12      = r.ReadUInt16();
            if (base.Version >= 0x19)
            {
                this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(16));
            }
            this.unknown13        = r.ReadUInt32();
            this.tgiReferenceFlag = r.ReadUInt32();

            if (this.tgiReferenceFlag == 0x01)
            {
                this.modlTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);

                this.ftptTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
            }
            else
            {
                this.nullTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.nullTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.nullTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.nullTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
            }
        }
Exemple #5
0
        void Parse(Stream s)
        {
            s.Position = 0;
            BinaryReader r = new BinaryReader(s);

            version     = r.ReadUInt32();
            tgiOffset   = r.ReadUInt32() + 8;
            presetCount = r.ReadUInt32();
            if (presetCount != 0)
            {
                throw new Exception("Found non-zero one");
            }
            name = BigEndianUnicodeString.Read(s);

            sortPriority = r.ReadSingle();
            colorCode    = r.ReadByte();
            unknown1     = r.ReadByte();
            outfitGroup  = r.ReadUInt32();
            unknown2     = new DataBlobHandler(recommendedApiVersion, OnResourceChanged, r.ReadBytes(17));

            flagList = new FlagList(OnResourceChanged, s);

            this.unknown3    = r.ReadByte();
            this.swatchIndex = r.ReadByte();

            unknown4 = new DataBlobHandler(1, null, r.ReadBytes(2 * 3 * 4 + 1));

            byte count2 = r.ReadByte();

            swatchColorCode = new uint[count2];
            for (byte i = 0; i < count2; i++)
            {
                swatchColorCode[i] = r.ReadUInt32();
            }

            unknown5 = new DataBlobHandler(1, null, r.ReadBytes(2 * 4));

            // TGI block list
            long currentPosition = r.BaseStream.Position;

            r.BaseStream.Position = tgiOffset;
            tgiList = new TGIBlockList(null);
            byte count4 = r.ReadByte();

            for (int i = 0; i < count4; i++)
            {
                tgiList.Add(new TGIBlock(1, null, "IGT", s));
            }
            r.BaseStream.Position = currentPosition;

            unknown6 = new UnknownClassList(null, s, tgiList);

            unknown7 = new DataBlobHandler(1, null, r.ReadBytes(10));
        }
Exemple #6
0
            public void Parse(Stream s)
            {
                BinaryReader r = new BinaryReader(s);

                unknown1 = r.ReadUInt16();
                unknown2 = new DataBlobHandler(1, null, r.ReadBytes(16));
                byte[] byteList = new byte[r.ReadByte()];
                for (int i = 0; i < byteList.Length; i++)
                {
                    byteList[i] = r.ReadByte();
                }
                indexList = new IndexList <byte>(handler, byteList, ParentTGIBlocks: tgiList);
            }
        protected override void Parse(Stream s)
        {
            base.Parse(s);
            BinaryReader r = new BinaryReader(s);
            this.unknown1 = r.ReadUInt32();
            this.unknown2 = r.ReadUInt32();
            this.unknown3 = r.ReadUInt32();
            this.unknown4 = r.ReadUInt32();
            this.unknown5 = r.ReadUInt32();
            this.unknown6 = r.ReadUInt32();
            this.unknown7 = r.ReadUInt32();
            this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(29));
            this.unknown8 = r.ReadUInt64();
            this.unknown9 = r.ReadUInt32();
            this.unknown10 = r.ReadUInt32();

            if (base.Version >= 0x19)
                this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(16));

            this.unknown11 = r.ReadUInt32();
        }
Exemple #8
0
        protected override Stream UnParse()
        {
            var          s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            if (this.unknown1 == null)
            {
                this.unknown1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[7 * 4]);
            }
            this.unknown1.UnParse(s);
            w.Write(this.unknownFlags1);
            w.Write(this.unknownFlags2);
            w.Write(this.unknownFlags3);
            w.Write(this.unknownFlags4);
            w.Write(this.unknownFlags5);
            w.Write(this.unknownInstance1);
            w.Write(this.unknown2);
            w.Write(this.unknownInstance2);
            w.Write(this.unknown3);
            if (this.colorList == null)
            {
                this.colorList = new SwatchColorList(OnResourceChanged);
            }
            this.colorList.UnParse(s);
            if (this.unknownFlags == null)
            {
                this.unknownFlags = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[5]);
            }
            this.unknownFlags.UnParse(s);
            w.Write(this.buildBuyMode);

            if (base.Version >= 0x19)
            {
                w.Write(this.unknown4);
                w.Write(this.unknown5);
                w.Write(this.unknown6);
                w.Write(this.unknown7);
            }
            return(s);
        }
 void Parse(Stream s)
 {
     BinaryReader r = new BinaryReader(s);
     s.Position = 0;
     this.version = r.ReadUInt32();
     this.ageGender = (AgeGenderFlags)r.ReadUInt32();
     this.groupingID = r.ReadUInt64();
     this.unknown1 = r.ReadByte();
     this.simOutfitReference = r.ReadUInt64();
     this.textureReference = r.ReadUInt64();
     this.simDataReference = r.ReadUInt64();
     this.nameHash = r.ReadUInt32();
     this.descHash = r.ReadUInt32();
     this.unknown2 = new DataBlobHandler(recommendedApiVersion, OnResourceChanged, r.ReadBytes(14));
     this.unknown3 = r.ReadUInt32();
     this.animationReference1 = r.ReadUInt64();
     this.animationStateName1 = System.Text.Encoding.ASCII.GetString(r.ReadBytes(r.ReadInt32()));
     this.animationReference2 = r.ReadUInt64();
     this.animationStateName2 = System.Text.Encoding.ASCII.GetString(r.ReadBytes(r.ReadInt32()));
     this.colorList = new CASPartResource.SwatchColorList(OnResourceChanged, s);
     this.flagList = new CASPartResource.FlagList(OnResourceChanged, s);
 }
        void Parse(Stream s)
        {
            BinaryReader r = new BinaryReader(s);

            s.Position               = 0;
            this.version             = r.ReadUInt32();
            this.ageGender           = (AgeGenderFlags)r.ReadUInt32();
            this.groupingID          = r.ReadUInt64();
            this.unknown1            = r.ReadByte();
            this.simOutfitReference  = r.ReadUInt64();
            this.textureReference    = r.ReadUInt64();
            this.simDataReference    = r.ReadUInt64();
            this.nameHash            = r.ReadUInt32();
            this.descHash            = r.ReadUInt32();
            this.unknown2            = new DataBlobHandler(recommendedApiVersion, OnResourceChanged, r.ReadBytes(14));
            this.unknown3            = r.ReadUInt32();
            this.animationReference1 = r.ReadUInt64();
            this.animationStateName1 = System.Text.Encoding.ASCII.GetString(r.ReadBytes(r.ReadInt32()));
            this.animationReference2 = r.ReadUInt64();
            this.animationStateName2 = System.Text.Encoding.ASCII.GetString(r.ReadBytes(r.ReadInt32()));
            this.colorList           = new CASPartResource.SwatchColorList(OnResourceChanged, s);
            this.flagList            = new CASPartResource.FlagList(OnResourceChanged, s);
        }
        protected override void Parse(Stream s)
        {
            BinaryReader r = new BinaryReader(s);

            base.Parse(s);
            this.unknown1         = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(7 * 4));
            this.unknownFlags1    = r.ReadUInt32();
            this.unknownFlags2    = r.ReadUInt32();
            this.unknownFlags3    = r.ReadUInt32();
            this.unknownFlags4    = r.ReadUInt32();
            this.unknownFlags5    = r.ReadUInt32();
            this.unknownInstance1 = r.ReadUInt64();
            this.unknown2         = r.ReadByte();
            this.unknownInstance2 = r.ReadUInt64();
            this.unknown3         = r.ReadByte();
            this.colorList        = new SwatchColorList(OnResourceChanged, s);
            this.unknownFlags     = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(5));
            this.buildBuyMode     = r.ReadBoolean();
            if (base.Version >= 0x19)
            {
                this.unknown4 = r.ReadUInt32();
            }
        }
Exemple #12
0
        protected override void Parse(Stream s)
        {
            base.Parse(s);
            BinaryReader r = new BinaryReader(s);

            this.unknown1  = r.ReadUInt32();
            this.unknown2  = r.ReadUInt32();
            this.unknown3  = r.ReadUInt32();
            this.unknown4  = r.ReadUInt32();
            this.unknown5  = r.ReadUInt32();
            this.unknown6  = r.ReadUInt32();
            this.unknown7  = r.ReadUInt32();
            this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(29));
            this.unknown8  = r.ReadUInt64();
            this.unknown9  = r.ReadUInt32();
            this.unknown10 = r.ReadUInt32();

            if (base.Version >= 0x19)
            {
                this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(16));
            }

            this.unknown11 = r.ReadUInt32();
        }
        protected override Stream UnParse()
        {
            var s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);
            w.Write(this.unknown1);
            w.Write(this.unknown2);
            w.Write(this.unknown3);
            w.Write(this.unknown4);
            w.Write(this.unknown5);
            w.Write(this.unknown6);
            w.Write(this.unknown7);
            if (this.dataBlob1 == null) this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[29]);
            this.dataBlob1.UnParse(s);
            w.Write(this.unknown8);
            w.Write(this.unknown9);
            w.Write(this.unknown10);

            if (base.Version >= 0x19)
            {
                if (this.dataBlob2 == null) this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[16]);
                this.dataBlob2.UnParse(s);
            }

            w.Write(this.unknown11);
            return s;
        }
Exemple #14
0
 internal void ParseFieldData(uint length, Stream s)
 {
     s.Position     = this.fieldPosition;
     this.fieldData = new DataBlobHandler(requestedApiVersion, handler, length, s);
 }
Exemple #15
0
        protected override Stream UnParse()
        {
            var          s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);

            w.Write(this.unknown1);
            w.Write(this.unknown2);
            w.Write(this.unknown3);
            w.Write(this.unknown4);
            w.Write(this.unknown5);
            w.Write(this.unknown6);
            w.Write(this.unknown7);
            if (this.dataBlob1 == null)
            {
                this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[17]);
            }
            this.dataBlob1.UnParse(s);
            w.Write(this.unknown8);
            w.Write(this.unknown9);
            w.Write(this.catalogGroupID);
            w.Write(this.unknown10);
            if (this.colorList == null)
            {
                this.colorList = new SwatchColorList(OnResourceChanged);
            }
            this.colorList.UnParse(s);
            w.Write(this.unknown11);
            w.Write(this.unknown12);
            if (base.Version >= 0x19)
            {
                if (this.dataBlob2 == null)
                {
                    this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[16]);
                }
                this.dataBlob2.UnParse(s);
            }
            w.Write(this.unknown13);
            w.Write(this.tgiReferenceFlag);

            if (this.tgiReferenceFlag == 0x01)
            {
                if (this.modlTGIReference1 == null)
                {
                    this.modlTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference1.UnParse(s);
                if (this.modlTGIReference2 == null)
                {
                    this.modlTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference2.UnParse(s);
                if (this.modlTGIReference3 == null)
                {
                    this.modlTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference3.UnParse(s);
                if (this.modlTGIReference4 == null)
                {
                    this.modlTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference4.UnParse(s);
                if (this.modlTGIReference5 == null)
                {
                    this.modlTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference5.UnParse(s);
                if (this.modlTGIReference6 == null)
                {
                    this.modlTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference6.UnParse(s);
                if (this.modlTGIReference7 == null)
                {
                    this.modlTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference7.UnParse(s);
                if (this.modlTGIReference8 == null)
                {
                    this.modlTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference8.UnParse(s);
                if (this.modlTGIReference9 == null)
                {
                    this.modlTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.modlTGIReference9.UnParse(s);

                if (this.ftptTGIReference1 == null)
                {
                    this.ftptTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference1.UnParse(s);
                if (this.ftptTGIReference2 == null)
                {
                    this.ftptTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference2.UnParse(s);
                if (this.ftptTGIReference3 == null)
                {
                    this.ftptTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference3.UnParse(s);
                if (this.ftptTGIReference4 == null)
                {
                    this.ftptTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference4.UnParse(s);
                if (this.ftptTGIReference5 == null)
                {
                    this.ftptTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference5.UnParse(s);
                if (this.ftptTGIReference6 == null)
                {
                    this.ftptTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference6.UnParse(s);
                if (this.ftptTGIReference7 == null)
                {
                    this.ftptTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference7.UnParse(s);
                if (this.ftptTGIReference8 == null)
                {
                    this.ftptTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference8.UnParse(s);
                if (this.ftptTGIReference9 == null)
                {
                    this.ftptTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.ftptTGIReference9.UnParse(s);
            }
            else
            {
                if (this.nullTGIReference1 == null)
                {
                    this.nullTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.nullTGIReference1.UnParse(s);
                if (this.nullTGIReference2 == null)
                {
                    this.nullTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.nullTGIReference2.UnParse(s);
                if (this.nullTGIReference3 == null)
                {
                    this.nullTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.nullTGIReference3.UnParse(s);
                if (this.nullTGIReference4 == null)
                {
                    this.nullTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                }
                this.nullTGIReference4.UnParse(s);
            }
            return(s);
        }
        public void Parse(Stream s)
        {
            s.Position = 0;
            BinaryReader r = new BinaryReader(s);

            this.version = r.ReadUInt32();
            uint tgiOffset = r.ReadUInt32() + 8;

            // get TGI list
            long tempPosition = s.Position;

            s.Position = tgiOffset;
            TGIBlock[] _tgilist = new TGIBlock[r.ReadByte()];
            for (int i = 0; i < _tgilist.Length; i++)
            {
                _tgilist[i] = new TGIBlock(1, OnResourceChanged, "IGT", s);
            }
            this.tgiList = new CountedTGIBlockList(OnResourceChanged, _tgilist);
            s.Position   = tempPosition;

            this.unknown1 = r.ReadSingle();
            this.unknown2 = r.ReadSingle();
            this.unknown3 = r.ReadSingle();
            this.unknown4 = r.ReadSingle();
            this.unknown5 = r.ReadSingle();
            this.unknown6 = r.ReadSingle();
            this.unknown7 = r.ReadSingle();
            this.unknown8 = r.ReadSingle();

            this.age               = (AgeGenderFlags)r.ReadUInt32();
            this.gender            = (AgeGenderFlags)r.ReadUInt32();
            this.skinToneReference = r.ReadUInt64();

            byte[] unknown18 = new byte[r.ReadByte()];
            for (int i = 0; i < unknown18.Length; i++)
            {
                unknown18[i] = r.ReadByte();
            }
            this.unknown9 = new ByteIndexList(OnResourceChanged, unknown18, this.tgiList);

            sliderReferences1 = new SliderReferenceList(OnResourceChanged, s, tgiList);
            sliderReferences2 = new SliderReferenceList(OnResourceChanged, s, tgiList);

            this.unknown10 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(24));
            this.unknown11 = new UnknownBlockList(OnResourceChanged, s, this.tgiList);

            this.unknownByteList = new SimpleList <byte>(OnResourceChanged);
            int count1 = r.ReadByte();

            for (int i = 0; i < count1; i++)
            {
                this.unknownByteList.Add(r.ReadByte());
            }

            sliderReferences3 = new SliderReferenceList(OnResourceChanged, s, tgiList);
            sliderReferences4 = new SliderReferenceList(OnResourceChanged, s, tgiList);

            this.unknown12         = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(16));
            this.sliderReferences5 = new SliderReferenceList(OnResourceChanged, s, tgiList);
            this.unknown13         = new DataBlobHandler(recommendedApiVersion, OnResourceChanged, r.ReadBytes(9));
            this.caspReference     = r.ReadUInt64();
            this.dataReferenceList = new SimpleList <ulong>(OnResourceChanged);
            int count2 = r.ReadByte();

            for (int i = 0; i < count2; i++)
            {
                this.dataReferenceList.Add(r.ReadUInt64());
            }
        }
        protected override void Parse(Stream s)
        {
            base.Parse(s);
            BinaryReader r = new BinaryReader(s);
            this.unknown1 = r.ReadUInt32();
            this.unknown2 = r.ReadUInt32();
            this.unknown3 = r.ReadUInt32();
            this.unknown4 = r.ReadUInt32();
            this.unknown5 = r.ReadUInt32();
            this.unknown6 = r.ReadUInt32();
            this.unknown7 = r.ReadUInt32();
            this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(17));
            this.unknown8 = r.ReadUInt32();
            this.unknown9 = r.ReadUInt64();
            this.catalogGroupID = r.ReadUInt64();
            this.unknown10 = r.ReadByte();
            this.colorList = new SwatchColorList(OnResourceChanged, s);
            this.unknown11 = r.ReadUInt32();
            this.unknown12 = r.ReadUInt16();
            if (base.Version >= 0x19) this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, r.ReadBytes(16));
            this.unknown13 = r.ReadUInt32();
            this.tgiReferenceFlag = r.ReadUInt32();

            if (this.tgiReferenceFlag == 0x01)
            {
                this.modlTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.modlTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);

                this.ftptTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.ftptTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
            }
            else
            {
                this.nullTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.nullTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.nullTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
                this.nullTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG", s);
            }
        }
        protected override Stream UnParse()
        {
            var s = base.UnParse();
            BinaryWriter w = new BinaryWriter(s);
            w.Write(this.unknown1);
            w.Write(this.unknown2);
            w.Write(this.unknown3);
            w.Write(this.unknown4);
            w.Write(this.unknown5);
            w.Write(this.unknown6);
            w.Write(this.unknown7);
            if (this.dataBlob1 == null) this.dataBlob1 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[17]);
            this.dataBlob1.UnParse(s);
            w.Write(this.unknown8);
            w.Write(this.unknown9);
            w.Write(this.catalogGroupID);
            w.Write(this.unknown10);
            if (this.colorList == null) this.colorList = new SwatchColorList(OnResourceChanged);
            this.colorList.UnParse(s);
            w.Write(this.unknown11);
            w.Write(this.unknown12);
            if (base.Version >= 0x19)
            {
                if (this.dataBlob2 == null) this.dataBlob2 = new DataBlobHandler(RecommendedApiVersion, OnResourceChanged, new byte[16]);
                this.dataBlob2.UnParse(s);
            }
            w.Write(this.unknown13);
            w.Write(this.tgiReferenceFlag);

            if (this.tgiReferenceFlag == 0x01)
            {
                if (this.modlTGIReference1 == null) this.modlTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference1.UnParse(s);
                if (this.modlTGIReference2 == null) this.modlTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference2.UnParse(s);
                if (this.modlTGIReference3 == null) this.modlTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference3.UnParse(s);
                if (this.modlTGIReference4 == null) this.modlTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference4.UnParse(s);
                if (this.modlTGIReference5 == null) this.modlTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference5.UnParse(s);
                if (this.modlTGIReference6 == null) this.modlTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference6.UnParse(s);
                if (this.modlTGIReference7 == null) this.modlTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference7.UnParse(s);
                if (this.modlTGIReference8 == null) this.modlTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference8.UnParse(s);
                if (this.modlTGIReference9 == null) this.modlTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.modlTGIReference9.UnParse(s);

                if (this.ftptTGIReference1 == null) this.ftptTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference1.UnParse(s);
                if (this.ftptTGIReference2 == null) this.ftptTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference2.UnParse(s);
                if (this.ftptTGIReference3 == null) this.ftptTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference3.UnParse(s);
                if (this.ftptTGIReference4 == null) this.ftptTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference4.UnParse(s);
                if (this.ftptTGIReference5 == null) this.ftptTGIReference5 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference5.UnParse(s);
                if (this.ftptTGIReference6 == null) this.ftptTGIReference6 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference6.UnParse(s);
                if (this.ftptTGIReference7 == null) this.ftptTGIReference7 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference7.UnParse(s);
                if (this.ftptTGIReference8 == null) this.ftptTGIReference8 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference8.UnParse(s);
                if (this.ftptTGIReference9 == null) this.ftptTGIReference9 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.ftptTGIReference9.UnParse(s);
            }
            else
            {
                if (this.nullTGIReference1 == null) this.nullTGIReference1 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.nullTGIReference1.UnParse(s);
                if (this.nullTGIReference2 == null) this.nullTGIReference2 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.nullTGIReference2.UnParse(s);
                if (this.nullTGIReference3 == null) this.nullTGIReference3 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.nullTGIReference3.UnParse(s);
                if (this.nullTGIReference4 == null) this.nullTGIReference4 = new TGIBlock(RecommendedApiVersion, OnResourceChanged, "ITG");
                this.nullTGIReference4.UnParse(s);
            }
            return s;
        }