1
0
Fork 0
mirror of https://codeberg.org/demostf/parser.git synced 2026-06-04 02:24:12 +02:00

string table fixes

This commit is contained in:
Robin Appelman 2019-03-02 18:48:30 +01:00
commit d7f14a70aa
6 changed files with 103 additions and 30 deletions

View file

@ -16,8 +16,8 @@ pub struct MessagePacket {
impl Parse for MessagePacket {
fn parse(stream: &mut Stream, state: &ParserState) -> Result<Self> {
let tick = stream.read_int(32)?;
let flags = stream.read_int(32)?;
let tick = stream.read()?;
let flags = stream.read()?;
let view_origin_1 = Vector::parse(stream, state)?;
let view_angle_1 = Vector::parse(stream, state)?;
@ -26,16 +26,14 @@ impl Parse for MessagePacket {
let view_angles = (Vector::parse(stream, state)?, view_angle_1);
let local_view_angles = (Vector::parse(stream, state)?, local_view_angle_1);
let sequence_in = stream.read_int(32)?;
let sequence_out = stream.read_int(32)?;
let length: usize = stream.read_int(32)?;
let mut packet_data = stream.read_bits(length * 8)?;
let sequence_in = stream.read()?;
let sequence_out = stream.read()?;
let length: u32 = stream.read()?;
let mut packet_data = stream.read_bits(length as usize * 8)?;
let mut messages = Vec::new();
dbg!(&packet_data);
let mut messages: Vec<Message> = Vec::new();
while packet_data.bits_left() > 6 {
let message = Message::parse(stream, state)?;
dbg!(&message);
let message = Message::parse(&mut packet_data, state)?;
messages.push(message);
}

View file

@ -75,10 +75,10 @@ pub struct StringTableEntry {
impl fmt::Debug for StringTableEntry {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match &self.extra_data {
None => write!(f, "Table Entry: '{}'", self.text),
None => write!(f, "StringTableEntry {{ text: {} }}", self.text),
Some(extra_data) => write!(
f,
"StringTableEntry{{ '{}' with {} bits of extra data }}",
"StringTableEntry{{ text: {} extra_data: {} bits }}",
self.text, extra_data.len
),
}