implement encode for SGD
This commit is contained in:
parent
a52aed8934
commit
ee124abf64
1 changed files with 21 additions and 2 deletions
|
|
@ -1,3 +1,5 @@
|
|||
use std::ops::Index;
|
||||
|
||||
use super::decoder::Decoder;
|
||||
use super::fstring::FString;
|
||||
use super::raw::Raw;
|
||||
|
|
@ -48,10 +50,27 @@ impl Decoder for SGD {
|
|||
}
|
||||
|
||||
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 {
|
||||
todo!()
|
||||
self.enc_size
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue