mirror of
https://github.com/redstrate/Physis.git
synced 2025-06-07 15:17:45 +00:00
Implement BinWrite for BlockHeader
This commit is contained in:
parent
30ed0180ce
commit
ee5a484730
1 changed files with 6 additions and 4 deletions
10
src/dat.rs
10
src/dat.rs
|
@ -162,21 +162,23 @@ pub enum CompressionMode {
|
|||
},
|
||||
}
|
||||
|
||||
#[binrw::binread]
|
||||
#[binrw]
|
||||
#[derive(Debug)]
|
||||
#[br(little)]
|
||||
#[brw(little)]
|
||||
pub struct BlockHeader {
|
||||
#[br(pad_after = 4)]
|
||||
#[brw(pad_after = 4)]
|
||||
pub size: u32,
|
||||
|
||||
#[br(temp)]
|
||||
#[bw(calc = match compression { CompressionMode::Compressed{ compressed_length, .. } => { *compressed_length } CompressionMode::Uncompressed{ .. } => { 32000 }})]
|
||||
x: i32,
|
||||
|
||||
#[br(temp)]
|
||||
#[bw(calc = match compression { CompressionMode::Compressed{ decompressed_length, .. } => { *decompressed_length } CompressionMode::Uncompressed{ file_size } => { *file_size }})]
|
||||
y: i32,
|
||||
|
||||
#[br(args { x, y })]
|
||||
#[br(restore_position)]
|
||||
#[brw(restore_position)]
|
||||
pub compression: CompressionMode,
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue