Пример #1
0
        public Sculpt(BinaryReader br)
        {
            this.contextVersion = br.ReadUInt32();
            uint publicKeyCount    = br.ReadUInt32();
            uint externalKeyCount  = br.ReadUInt32();
            uint delayLoadKeyCount = br.ReadUInt32();
            uint objectKeyCount    = br.ReadUInt32();

            this.publicKey = new TGI[publicKeyCount];
            for (int i = 0; i < publicKeyCount; i++)
            {
                publicKey[i] = new TGI(br, TGI.TGIsequence.ITG);
            }
            this.externalKey = new TGI[externalKeyCount];
            for (int i = 0; i < externalKeyCount; i++)
            {
                externalKey[i] = new TGI(br, TGI.TGIsequence.ITG);
            }
            this.BGEOKey = new TGI[delayLoadKeyCount];
            for (int i = 0; i < delayLoadKeyCount; i++)
            {
                BGEOKey[i] = new TGI(br, TGI.TGIsequence.ITG);
            }
            this.objectKey = new ObjectData[objectKeyCount];
            for (int i = 0; i < objectKeyCount; i++)
            {
                objectKey[i] = new ObjectData(br);
            }
            this.version   = br.ReadUInt32();
            this.ageGender = (AgeGender)br.ReadUInt32();
            this.region    = (SimRegion)br.ReadUInt32();
            this.subRegion = (SimSubRegion)br.ReadUInt32();
        }
Пример #2
0
        public CASP(BinaryReader br)
        {
            br.BaseStream.Position = 0;

            version        = br.ReadUInt32();
            offset         = br.ReadUInt32();
            presetCount    = br.ReadInt32();
            partname       = new BinaryReader(br.BaseStream, Encoding.BigEndianUnicode).ReadString();
            sortPriority   = br.ReadSingle();
            swatchOrder    = br.ReadUInt16();
            outfitID       = br.ReadUInt32();
            materialHash   = br.ReadUInt32();
            parameterFlags = br.ReadByte();
            if (this.version >= 39)
            {
                parameterFlags2 = br.ReadByte();
            }
            excludePartFlags = br.ReadUInt64();
            if (version >= 41)
            {
                excludePartFlags2 = br.ReadUInt64();
            }
            if (version > 36)
            {
                excludeModifierRegionFlags = br.ReadUInt64();
            }
            else
            {
                excludeModifierRegionFlags = br.ReadUInt32();
            }
            tagCount = br.ReadInt32();
            int valueLength = version >= 37 ? 4 : 2;

            for (int i = 0; i < tagCount; i++)
            {
                br.ReadUInt16();
                if (valueLength == 4)
                {
                    br.ReadUInt32();
                }
                else
                {
                    br.ReadUInt16();
                }
            }
            if (version >= 0x2B)
            {
                knitFlags = br.ReadUInt32();
            }
            price        = br.ReadUInt32();
            titleKey     = br.ReadUInt32();
            partDescKey  = br.ReadUInt32();
            textureSpace = br.ReadByte();
            bodyType     = br.ReadUInt32();
            bodySubType  = br.ReadUInt32();
            ageGender    = (AgeGender)br.ReadUInt32();
        }
Пример #3
0
        public SMOD(BinaryReader br)
        {
            this.contextVersion = br.ReadUInt32();
            uint publicKeyCount    = br.ReadUInt32();
            uint externalKeyCount  = br.ReadUInt32();
            uint delayLoadKeyCount = br.ReadUInt32();
            uint objectKeyCount    = br.ReadUInt32();

            this.publicKey = new TGI[publicKeyCount];
            for (int i = 0; i < publicKeyCount; i++)
            {
                publicKey[i] = new TGI(br, TGI.TGIsequence.ITG);
            }
            this.externalKey = new TGI[externalKeyCount];
            for (int i = 0; i < externalKeyCount; i++)
            {
                externalKey[i] = new TGI(br, TGI.TGIsequence.ITG);
            }
            this.BGEOKey = new TGI[delayLoadKeyCount];
            for (int i = 0; i < delayLoadKeyCount; i++)
            {
                BGEOKey[i] = new TGI(br, TGI.TGIsequence.ITG);
            }
            this.objectKey = new ObjectData[objectKeyCount];
            for (int i = 0; i < objectKeyCount; i++)
            {
                objectKey[i] = new ObjectData(br);
            }
            this.version   = br.ReadUInt32();
            this.ageGender = (AgeGender)br.ReadUInt32();
            this.region    = (SimRegion)br.ReadUInt32();
            if (this.version >= 144)
            {
                this.subRegion = (SimSubRegion)br.ReadUInt32();
            }
            this.linkTag              = (BgeoLinkTag)br.ReadUInt32();
            this.bonePoseKey          = new TGI(br, TGI.TGIsequence.ITG);
            this.deformerMapShapeKey  = new TGI(br, TGI.TGIsequence.ITG);
            this.deformerMapNormalKey = new TGI(br, TGI.TGIsequence.ITG);
            uint count = br.ReadUInt32();

            this.boneEntryList = new BoneEntry[count];
            for (int i = 0; i < count; i++)
            {
                this.boneEntryList[i] = new BoneEntry(br);
            }
        }