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::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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue