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

track rounds

This commit is contained in:
Robin Appelman 2019-03-04 21:01:24 +01:00
commit 713ab0de42
12 changed files with 105 additions and 84 deletions

View file

@ -6,7 +6,6 @@ use num_traits::FromPrimitive;
pub use generated::*;
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
use crate::demo::message::bspdecal::*;
use crate::demo::message::classinfo::*;
use crate::demo::message::gameevent::*;
@ -16,6 +15,7 @@ use crate::demo::message::stringtable::*;
use crate::demo::message::tempentities::*;
use crate::demo::message::usermessage::*;
use crate::demo::message::voice::*;
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
pub mod bspdecal;
pub mod classinfo;
@ -190,4 +190,4 @@ impl Message {
Message::CmdKeyValues(_) => MessageType::CmdKeyValues,
}
}
}
}

View file

@ -5,10 +5,10 @@ use bitstream_reader::{BitBuffer, BitRead, BitReadSized, BitStream, LittleEndian
use num_traits::{PrimInt, Unsigned};
use snap::Decoder;
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
use crate::demo::packet::stringtable::{
ExtraData, FixedUserdataSize, StringTable, StringTableEntry,
};
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
#[derive(Debug)]
pub struct CreateStringTableMessage {
@ -77,8 +77,7 @@ impl Parse for CreateStringTableMessage {
fixed_userdata_size,
};
let entries =
parse_string_table_list(&mut table_data, &table_meta, entity_count)?;
let entries = parse_string_table_list(&mut table_data, &table_meta, entity_count)?;
let table = StringTable {
entries,
@ -178,12 +177,7 @@ fn parse_string_table_list(
panic!("there should be no holes when reading CreateStringTable message");
};
let entry = read_table_entry(
stream,
table_meta,
&history,
None,
)?;
let entry = read_table_entry(stream, table_meta, &history, None)?;
// optimize: any way to get rid of the clone here?
// `entries` always outlives `history` without reallocation
let text = entry.text.clone();
@ -240,7 +234,7 @@ fn read_table_entry(
} else {
None
}
.map(ExtraData::new);
.map(ExtraData::new);
Ok(match existing_entry {
Some(existing_entry) => {