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

early state handling

This commit is contained in:
Robin Appelman 2019-03-02 22:07:46 +01:00
commit 8fba325db8
6 changed files with 49 additions and 21 deletions

View file

@ -34,7 +34,7 @@ impl Parse for GameEventMessage {
Some(definition) => {
let mut values: Vec<GameEventValue> = Vec::with_capacity(definition.entries.len());
for entry in &definition.entries {
values.push(read_event_value(stream, &entry)?);
values.push(read_event_value(&mut data, &entry)?);
}
RawGameEvent {
@ -53,7 +53,7 @@ impl Parse for GameEventMessage {
#[derive(Debug)]
pub struct GameEventListMessage {
event_list: HashMap<GameEventType, GameEventDefinition>,
pub event_list: HashMap<GameEventType, GameEventDefinition>,
}
impl BitRead<LittleEndian> for GameEventDefinition {

View file

@ -25,7 +25,7 @@ pub mod gameevent;
pub mod packetentities;
pub mod tempentities;
#[derive(Primitive, Debug)]
#[derive(Primitive, Debug, Clone, Copy)]
pub enum MessageType {
Empty = 0,
File = 2,
@ -100,7 +100,6 @@ pub enum Message {
impl Parse for Message {
fn parse(stream: &mut Stream, state: &ParserState) -> Result<Self> {
let message_type = MessageType::parse(stream, state)?;
dbg!(&message_type);
Ok(match message_type {
MessageType::Empty => Message::Empty,
MessageType::File => Message::File(FileMessage::parse(stream, state)?),

View file

@ -4,7 +4,7 @@ use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
use crate::demo::packet::datatable::ServerClass;
use crate::demo::sendprop::SendProp;
#[derive(Debug)]
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct EntityId(u32);
#[derive(BitRead, Clone, Copy, Debug)]