public override void ApplyChunk(ZiPatchConfig config)
        {
            TargetFile.ResolvePath(config.Platform);

            var file = config.Store == null?
                       TargetFile.OpenStream(config.GamePath, FileMode.OpenOrCreate) :
                           TargetFile.OpenStream(config.Store, config.GamePath, FileMode.OpenOrCreate);

            SqpackDatFile.WriteEmptyFileBlockAt(file, BlockOffset, BlockNumber);
        }
        protected override void ReadChunk()
        {
            var start = reader.BaseStream.Position;

            reader.ReadBytes(3); // Alignment

            TargetFile = new SqpackDatFile(reader);

            BlockOffset = reader.ReadInt32BE() << 7;
            BlockNumber = reader.ReadInt32BE();

            reader.ReadUInt32(); // Reserved

            reader.ReadBytes(Size - (int)(reader.BaseStream.Position - start));
        }
예제 #3
0
        protected override void ReadChunk()
        {
            var start = this.Reader.BaseStream.Position;

            this.Reader.ReadBytes(3); // Alignment

            TargetFile = new SqpackDatFile(this.Reader);

            BlockOffset       = this.Reader.ReadInt32BE() << 7;
            BlockNumber       = this.Reader.ReadInt32BE() << 7;
            BlockDeleteNumber = this.Reader.ReadInt32BE() << 7;

            BlockDataSourceOffset = Offset + this.Reader.BaseStream.Position;
            BlockData             = this.Reader.ReadBytes((int)BlockNumber);

            this.Reader.ReadBytes(Size - (int)(this.Reader.BaseStream.Position - start));
        }
예제 #4
0
        protected override void ReadChunk()
        {
            var start = reader.BaseStream.Position;

            FileKind   = (TargetFileKind)reader.ReadByte();
            HeaderKind = (TargetHeaderKind)reader.ReadByte();
            reader.ReadByte(); // Alignment

            if (FileKind == TargetFileKind.Dat)
            {
                TargetFile = new SqpackDatFile(reader);
            }
            else
            {
                TargetFile = new SqpackIndexFile(reader);
            }

            HeaderData = reader.ReadBytes(HEADER_SIZE);

            reader.ReadBytes(Size - (int)(reader.BaseStream.Position - start));
        }