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)); }
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)); }
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)); }