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

skip messages we dont care about

This commit is contained in:
Robin Appelman 2019-03-17 18:44:33 +01:00
commit 128bf1ceb2
17 changed files with 237 additions and 71 deletions

View file

@ -1,4 +1,4 @@
use bitstream_reader::{BitRead, LazyBitReadSized, LittleEndian};
use bitstream_reader::{BitRead, LittleEndian};
use crate::{ReadResult, Stream};

View file

@ -1,8 +1,8 @@
use bitstream_reader::{BitRead, BitSize, LazyBitRead, LittleEndian};
use crate::demo::message::Message;
use crate::demo::vector::Vector;
use crate::{Parse, ParserState, ReadResult, Result, Stream};
use crate::demo::message::{Message, MessageType};
use crate::demo::vector::Vector;
#[derive(Debug)]
pub struct MessagePacket {
@ -57,10 +57,13 @@ impl Parse for MessagePacket {
let mut messages: Vec<Message> = Vec::with_capacity(25);
while packet_data.bits_left() > 6 {
let message = Message::parse(&mut packet_data, state)?;
match message {
Message::Empty => {}
_ => messages.push(message),
let message_type = MessageType::parse(&mut packet_data, state)?;
if state.parse_message_types.contains(&message_type) {
let message = Message::from_type(message_type, &mut packet_data, state)?;
messages.push(message);
} else {
let _ = Message::skip_type(message_type, &mut packet_data)?;
}
}

View file

@ -13,7 +13,7 @@ impl BitRead<LittleEndian> for UserCmdPacket {
let tick = stream.read()?;
let sequence_out = stream.read()?;
let len: u32 = stream.read()?;
let _ = stream.skip(len as usize * 8)?;
let _ = stream.skip_bits(len as usize * 8)?;
// TODO parse the packet data
Ok(UserCmdPacket { tick, sequence_out })
}