mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-04 02:24:12 +02:00
stringtables
This commit is contained in:
parent
0bf09c95c9
commit
cd552319ac
17 changed files with 250 additions and 43 deletions
|
|
@ -1,6 +1,6 @@
|
|||
use bitstream_reader::{BitRead, LittleEndian};
|
||||
|
||||
use crate::{Stream, ReadResult};
|
||||
use crate::{ReadResult, Stream};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ConsoleCmdPacket {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use bitstream_reader::BitRead;
|
||||
|
||||
use crate::{Parse, ParseError, ParserState, Result, Stream};
|
||||
use crate::demo::sendprop::{SendPropDefinition, SendPropFlag, SendPropType};
|
||||
use crate::{Parse, ParseError, ParserState, Result, Stream};
|
||||
|
||||
#[derive(BitRead, Debug)]
|
||||
pub struct ServerClass {
|
||||
|
|
@ -34,7 +34,7 @@ impl Parse for DataTablePacket {
|
|||
|
||||
let mut tables = vec![];
|
||||
while packet_data.read_bool()? {
|
||||
let needs_decoder = packet_data.read_bool()?;
|
||||
let needs_decoder = packet_data.read()?;
|
||||
let name: String = packet_data.read()?;
|
||||
let prop_count = packet_data.read_int(10)?;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use bitstream_reader::{BitRead};
|
||||
use bitstream_reader::BitRead;
|
||||
use enum_primitive_derive::Primitive;
|
||||
|
||||
use crate::{Parse, ParserState, Result, Stream};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use bitstream_reader::{BitRead, LittleEndian};
|
||||
|
||||
use crate::{Stream, ReadResult};
|
||||
use crate::{ReadResult, Stream};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct StopPacket;
|
||||
|
|
|
|||
|
|
@ -2,18 +2,25 @@ use std::fmt;
|
|||
|
||||
use bitstream_reader::{BitRead, LittleEndian};
|
||||
|
||||
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
|
||||
use crate::demo::sendprop::SendPropFlag::Exclude;
|
||||
use crate::{Parse, ParseError, ParserState, ReadResult, Result, Stream};
|
||||
|
||||
#[derive(BitRead, Clone, Copy, Debug)]
|
||||
pub struct FixedUserdataSize {
|
||||
#[size = 12]
|
||||
pub size: u16,
|
||||
#[size = 4]
|
||||
pub bits: u8,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct StringTable {
|
||||
name: String,
|
||||
entries: Vec<StringTableEntry>,
|
||||
max_entries: u32,
|
||||
fixed_userdata_size: Option<u32>,
|
||||
fixed_userdata_size_bits: Option<u32>,
|
||||
client_entries: Option<Vec<StringTableEntry>>,
|
||||
compressed: bool,
|
||||
pub name: String,
|
||||
pub entries: Vec<StringTableEntry>,
|
||||
pub max_entries: u16,
|
||||
pub fixed_userdata_size: Option<FixedUserdataSize>,
|
||||
pub client_entries: Option<Vec<StringTableEntry>>,
|
||||
pub compressed: bool,
|
||||
}
|
||||
|
||||
impl BitRead<LittleEndian> for StringTable {
|
||||
|
|
@ -34,26 +41,25 @@ impl BitRead<LittleEndian> for StringTable {
|
|||
entries,
|
||||
max_entries: entry_count,
|
||||
fixed_userdata_size: None,
|
||||
fixed_userdata_size_bits: None,
|
||||
client_entries,
|
||||
compressed: false,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(BitRead)]
|
||||
#[derive(BitRead, Clone)]
|
||||
#[endianness = "LittleEndian"]
|
||||
pub struct ExtraData {
|
||||
len: u16,
|
||||
pub len: u16,
|
||||
#[size = "len * 8"]
|
||||
data: Stream,
|
||||
pub data: Stream,
|
||||
}
|
||||
|
||||
#[derive(BitRead)]
|
||||
#[derive(BitRead, Clone)]
|
||||
#[endianness = "LittleEndian"]
|
||||
pub struct StringTableEntry {
|
||||
text: String,
|
||||
extra_data: Option<ExtraData>,
|
||||
pub text: String,
|
||||
pub extra_data: Option<ExtraData>,
|
||||
}
|
||||
|
||||
impl fmt::Debug for StringTableEntry {
|
||||
|
|
@ -63,8 +69,7 @@ impl fmt::Debug for StringTableEntry {
|
|||
Some(extra_data) => write!(
|
||||
f,
|
||||
"StringTableEntry{{ '{}' with {} bits of extra data }}",
|
||||
self.text,
|
||||
extra_data.len
|
||||
self.text, extra_data.len
|
||||
),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use bitstream_reader::{BitRead};
|
||||
use bitstream_reader::BitRead;
|
||||
|
||||
#[derive(BitRead, Debug)]
|
||||
pub struct SyncTickPacket {
|
||||
tick: u32,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use bitstream_reader::{BitRead, LittleEndian};
|
||||
|
||||
use crate::{Stream, ReadResult};
|
||||
use crate::{ReadResult, Stream};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct UserCmdPacket {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue