|
|
@ -294,11 +294,9 @@ impl<R: Read> TtmpExtractor<R> {
|
|
|
|
|
|
|
|
|
|
|
|
fn extract_texture_file<T: Read, W: Write>(info: &SqPackFileInfoHeader, mut reader: T, mut writer: W, buf: &mut [u8]) -> Result<()> {
|
|
|
|
fn extract_texture_file<T: Read, W: Write>(info: &SqPackFileInfoHeader, mut reader: T, mut writer: W, buf: &mut [u8]) -> Result<()> {
|
|
|
|
let std_info: SqPackFileInfo = Self::read_struct(&mut reader, buf)?;
|
|
|
|
let std_info: SqPackFileInfo = Self::read_struct(&mut reader, buf)?;
|
|
|
|
println!("{:#?}", std_info);
|
|
|
|
|
|
|
|
let blocks: Vec<LodBlock> = (0..std_info.number_of_blocks)
|
|
|
|
let blocks: Vec<LodBlock> = (0..std_info.number_of_blocks)
|
|
|
|
.map(|_| Self::read_struct(&mut reader, buf))
|
|
|
|
.map(|_| Self::read_struct(&mut reader, buf))
|
|
|
|
.collect::<Result<_>>()?;
|
|
|
|
.collect::<Result<_>>()?;
|
|
|
|
println!("{:#?}", blocks);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let sub_block_count = blocks
|
|
|
|
let sub_block_count = blocks
|
|
|
|
.iter()
|
|
|
|
.iter()
|
|
|
@ -344,7 +342,6 @@ impl<R: Read> TtmpExtractor<R> {
|
|
|
|
|
|
|
|
|
|
|
|
fn read_block_into<T: Read, W: Write>(mut reader: T, mut writer: W, buf: &mut [u8], size: usize) -> Result<u64> {
|
|
|
|
fn read_block_into<T: Read, W: Write>(mut reader: T, mut writer: W, buf: &mut [u8], size: usize) -> Result<u64> {
|
|
|
|
let header: DatBlockHeader = Self::read_struct(&mut reader, buf)?;
|
|
|
|
let header: DatBlockHeader = Self::read_struct(&mut reader, buf)?;
|
|
|
|
println!("{:#?}", header);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let (read, actual) = if header.compressed_size == 32_000 {
|
|
|
|
let (read, actual) = if header.compressed_size == 32_000 {
|
|
|
|
// uncompressed
|
|
|
|
// uncompressed
|
|
|
|