diff --git a/src/sqpack.rs b/src/sqpack.rs index 647d1cf..6c18ed0 100755 --- a/src/sqpack.rs +++ b/src/sqpack.rs @@ -1,9 +1,9 @@ // SPDX-FileCopyrightText: 2023 Joshua Goins // SPDX-License-Identifier: GPL-3.0-or-later -use std::io::{Read, Seek, SeekFrom}; +use std::io::{Read, Seek, SeekFrom, Write}; -use binrw::BinRead; +use binrw::{BinRead, BinWrite}; use crate::compression::no_header_decompress; use crate::dat::{BlockHeader, CompressionMode}; @@ -74,3 +74,18 @@ pub fn read_data_block_patch(mut buf: T) -> Option> { } } } + +pub fn write_data_block_patch(mut writer: T, data: Vec) { + // This only adds uncompressed data for now, to simplify implementation + // TODO: write compressed blocks + let block_header = BlockHeader { + size: 128, // TODO: i have no idea what this value is from + compression: CompressionMode::Uncompressed { + file_size: data.len() as i32, + }, + }; + block_header.write(&mut writer); + + data.write(&mut writer); +} +