fix bug in read_bytes

This commit is contained in:
mykola2312 2023-08-30 21:36:05 +03:00
parent cc8a49f8da
commit 3765844efb
2 changed files with 6 additions and 24 deletions

View file

@ -8,6 +8,7 @@ use super::tag::Tag;
use anyhow::Result; use anyhow::Result;
use indexmap::IndexMap; use indexmap::IndexMap;
#[derive(Debug)]
pub struct SGD { pub struct SGD {
tag: Tag, tag: Tag,
unk1: Vec<u8>, unk1: Vec<u8>,

View file

@ -1,8 +1,9 @@
use super::decoder::Decoder; use super::decoder::Decoder;
use super::stream::ReadStream;
use super::fstring::FString; use super::fstring::FString;
use super::raw::Raw; use super::raw::Raw;
use super::stream::ReadStream;
use super::tag::Tag; use super::tag::Tag;
use super::sgd::SGD;
use anyhow::anyhow; use anyhow::anyhow;
use anyhow::Result; use anyhow::Result;
use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
@ -24,29 +25,9 @@ impl World {
pub fn test(&self) -> Result<()> { pub fn test(&self) -> Result<()> {
let sgd_start: usize = 0x4E; let sgd_start: usize = 0x4E;
let mut sgd = ReadStream::new(&self.data, sgd_start); let sgd = SGD::decode(&self.data, sgd_start, 0)?;
let _ = sgd.read::<Tag>(0)?; dbg!(&sgd);
sgd.skip(0x48);
let n = sgd.read_u32()?;
dbg!(sgd.offset(), n);
let mut names: Vec<FString> = Vec::with_capacity(n as usize);
for _ in 0..n {
names.push(sgd.read::<FString>(0)?);
}
dbg!(names);
let unk1 = sgd.read_u32()?;
dbg!(unk1);
for _ in 0..n {
let m = sgd.read_u32()?;
let mut replics: Vec<FString> = Vec::with_capacity(m as usize);
for _ in 0..m {
replics.push(sgd.read::<FString>(0)?);
}
dbg!(replics);
}
Ok(()) Ok(())
} }
} }