Пример #1
0
        public override void Read(BinaryReader file, uint size)
        {
            base.Read(file, size);

            unk.Read(file, 4);
            MipsCount.Read(file, 4);

            // Imported and Cooked xbms have a different file structure.
            // Imported xbms can be identified by their Sourcedata being not null
            var SourceData = this.GetVariableByName("sourceData");

            if (SourceData != null)
            {
                //dbg
                var ResidentMipIndex = this.GetVariableByName("residentMipIndex");
                if (ResidentMipIndex != null)
                {
                    throw new NotImplementedException();
                }

                for (int i = 0; i < MipsCount.val; i++)
                {
                    var mipdata = new SMipData(cr2w);
                    mipdata.Read(file, 16);
                    Mipdata.AddVariable(mipdata);

                    var img = new CByteArray(cr2w);
                    //img.SetParent(this);
                    img.Read(file, 0);
                    Mips.AddVariable(img);
                }
                unk2.Read(file, 4);
            }
            else
            {
                //if (ResidentMipIndex == null)
                //throw new NotImplementedException();


                Mipdata.Read(file, size, (int)MipsCount.val);

                ResidentmipSize.Read(file, 4);

                unk2.Read(file, 4);

                //Residentmip.SetParent(this);
                Residentmip.Read(file, ResidentmipSize.val);
            }

            //if (MipsCount.val > 0)
            //    mips.Read(file, size, (int)MipsCount.val);
            //else
            //    mips.Read(file, size, 1);

            //ResidentmipSize.Read(file, 4);
            //unk2.Read(file, 4);

            //Residentmip.Bytes = file.ReadBytes((int)ResidentmipSize.val);
        }
Пример #2
0
        public override void Read(BinaryReader file, uint size)
        {
            base.Read(file, size);

            bytes1.Read(file, 20);
            float1.Read(file, 4);
            float2.Read(file, 4);
            bytes2.Read(file, 25);
        }
Пример #3
0
 public override void Read(BinaryReader file, uint size)
 {
     id.Read(file, 2);
     guid.Read(file, 16);
     if (size - 18 > 0)
     {
         unk1.Read(file, size - 18);
     }
 }
Пример #4
0
        public override void Read(BinaryReader file, uint size)
        {
            Buffer = new CBytes(cr2w, this, nameof(Buffer))
            {
                Bytes        = new byte[0],
                IsSerialized = true
            };

            Buffer.Read(file, size);
        }
Пример #5
0
        public override void Read(BinaryReader file, uint size)
        {
            var startpos = file.BaseStream.Position;

            Unk1.Read(file, 4);
            Collisiontypes.Read(file, 0);

            var endpos = file.BaseStream.Position;

            Data.Read(file, (uint)(size - (endpos - startpos)));
        }
Пример #6
0
        public override void Read(BinaryReader file, uint size)
        {
            rotationMatrix.Read(file, 36);
            position.Read(file, (uint)12);
            streamingRadius.Read(file, 2);
            flags.Read(file, 2);
            occlusionSystemID.Read(file, 4);
            resourceIndex.Read(file, 4);

            tail.Read(file, size - 60);
        }
Пример #7
0
        public override void Read(BinaryReader file, uint size)
        {
            bytesize.Read(file, 2);

            if ((int)bytesize.val != fixedbuffersize)
            {
                throw new NotImplementedException();
            }

            unk1.Read(file, (uint)bytesize.val - 2);
        }
Пример #8
0
        public override void Read(BinaryReader file, uint size)
        {
            base.Read(file, size);

            texturecachekey.Read(file, 4);
            residentmip.Read(file, 2);
            encodedformat.Read(file, 2);
            edge.Read(file, 2);
            mipmapscount.Read(file, 2);

            filesize.Read(file, 4);
            ffffffff.Read(file, 4);

            rawfile.Read(file, filesize.val);
        }