예제 #1
0
        private void Deserialize(Stream input)
        {
            if (input.ReadValueU32(Endian.Big) != 0x44435800) // 'DCX\0'
            {
                throw new FormatException();
            }

            if (input.ReadValueU32(Endian.Big) != 0x10000)
            {
                throw new FormatException();
            }

            var headerSize = input.ReadValueU32(Endian.Big);

            if (headerSize != 24)
            {
                throw new FormatException();
            }

            var unknown0C = input.ReadValueU32(Endian.Big);
            var unknown10 = input.ReadValueU32(Endian.Big);
            var unknown14 = input.ReadValueU32(Endian.Big);

            this._Size = new SizeBlock();
            this._Size.Deserialize(input);

            this._Setup = new ParameterBlock();
            this._Setup.Deserialize(input);

            this._Extra = new ExtraBlock();
            this._Extra.Deserialize(input);
        }
예제 #2
0
        public override bool Parse(BinaryReader inputReader)
        {
            if (!base.Parse(inputReader))
            {
                return(false);
            }

            Unk01       = inputReader.ReadInt32();
            ExtraBlocks = ExtraBlock.ParseExtraBlocks(inputReader);

            return(true);
        }
예제 #3
0
        public override bool Write(BinaryWriter outputWriter)
        {
            if (!base.Write(outputWriter))
            {
                return(false);
            }

            if (!ExtraBlock.WriteExtraBlocks(outputWriter, Blocks))
            {
                return(false);
            }

            return(true);
        }
예제 #4
0
        public override bool Write(BinaryWriter outputWriter)
        {
            if (!base.Write(outputWriter))
            {
                return(false);
            }

            outputWriter.Write((Int32)Unk01);

            if (!ExtraBlock.WriteExtraBlocks(outputWriter, ExtraBlocks))
            {
                return(false);
            }

            return(true);
        }
예제 #5
0
        public override bool Parse(BinaryReader inputReader)
        {
            Blocks = ExtraBlock.ParseExtraBlocks(inputReader);

            return(true);
        }