implement encode for SGD

This commit is contained in:
mykola2312 2023-08-30 21:30:56 +03:00
parent a52aed8934
commit ee124abf64

View file

@ -1,3 +1,5 @@
use std::ops::Index;
use super::decoder::Decoder; use super::decoder::Decoder;
use super::fstring::FString; use super::fstring::FString;
use super::raw::Raw; use super::raw::Raw;
@ -48,10 +50,27 @@ impl Decoder for SGD {
} }
fn encode(&self) -> Result<Raw> { fn encode(&self) -> Result<Raw> {
todo!(); let mut wd = WriteStream::new(self.enc_size);
wd.write(&self.tag)?;
wd.write_bytes(&self.unk1);
wd.write_u32(self.dialogs.len() as u32)?;
for name in self.dialogs.keys() {
wd.write(name)?;
}
wd.write_u32(self.dialogs.len() as u32)?;
for lines in self.dialogs.values() {
wd.write_u32(lines.len() as u32)?;
for line in lines.iter() {
wd.write(line)?;
}
}
Ok(wd.into_raw(0, 0))
} }
fn get_enc_size(&self) -> usize { fn get_enc_size(&self) -> usize {
todo!() self.enc_size
} }
} }