From 05d5a1786132ea6367d33aea99782dfd1d894e9a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 8 Sep 2023 16:32:47 +0200 Subject: [PATCH 01/45] don't store raw_props that we don't need --- src/demo/message/packetentities.rs | 2 -- src/demo/packet/datatable.rs | 1 - src/demo/parser/handler.rs | 2 +- src/demo/parser/state.rs | 5 ++--- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/demo/message/packetentities.rs b/src/demo/message/packetentities.rs index 5051d3f..475e3e9 100644 --- a/src/demo/message/packetentities.rs +++ b/src/demo/message/packetentities.rs @@ -562,13 +562,11 @@ fn test_packet_entitier_message_roundtrip() { SendTable { name: SendTableName::from("table1"), needs_decoder: false, - raw_props: vec![], flattened_props: vec![], }, SendTable { name: SendTableName::from("table2"), needs_decoder: false, - raw_props: vec![], flattened_props: vec![ SendPropDefinition { identifier: SendPropIdentifier::new("table2", "prop1"), diff --git a/src/demo/packet/datatable.rs b/src/demo/packet/datatable.rs index 5301492..9742bd4 100644 --- a/src/demo/packet/datatable.rs +++ b/src/demo/packet/datatable.rs @@ -432,7 +432,6 @@ impl ParseSendTable { pub struct SendTable { pub name: SendTableName, pub needs_decoder: bool, - pub raw_props: Vec, pub flattened_props: Vec, } diff --git a/src/demo/parser/handler.rs b/src/demo/parser/handler.rs index 7efbef8..b0d907f 100644 --- a/src/demo/parser/handler.rs +++ b/src/demo/parser/handler.rs @@ -189,7 +189,7 @@ impl<'a, T: MessageHandler> DemoHandler<'a, T> { self.analyser .handle_data_tables(&send_tables, &server_classes, &self.state_handler); self.state_handler - .handle_data_table(send_tables, server_classes) + .handle_data_table(&send_tables, server_classes) } pub fn handle_message(&mut self, message: Message<'a>, tick: DemoTick) { diff --git a/src/demo/parser/state.rs b/src/demo/parser/state.rs index d2e94ed..c56fb8b 100644 --- a/src/demo/parser/state.rs +++ b/src/demo/parser/state.rs @@ -160,20 +160,19 @@ impl<'a> ParserState { pub fn handle_data_table( &mut self, - parse_tables: Vec, + parse_tables: &[ParseSendTable], server_classes: Vec, ) -> Result<()> { if self.handle_entities { let mut send_tables: FnvHashMap = parse_tables .iter() .map(|parse_table| { - let flat = parse_table.flatten_props(&parse_tables); + let flat = parse_table.flatten_props(parse_tables); Ok(( parse_table.name.clone(), SendTable { name: parse_table.name.clone(), needs_decoder: parse_table.needs_decoder, - raw_props: parse_table.props.clone(), flattened_props: flat?, }, )) From 5e771e57c2267c68d834a9d9707e70e34e062ccf Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 8 Sep 2023 16:33:57 +0200 Subject: [PATCH 02/45] minor prop bit count cleanup --- src/demo/sendprop.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/demo/sendprop.rs b/src/demo/sendprop.rs index a1fe845..d1463e4 100644 --- a/src/demo/sendprop.rs +++ b/src/demo/sendprop.rs @@ -549,12 +549,10 @@ impl TryFrom<&RawSendPropDefinition> for SendPropParseDefinition { )?, }), SendPropType::Array => { - let count_bit_count = log_base2( - definition - .element_count - .ok_or(MalformedSendPropDefinitionError::UnsizedArray)?, - ) as u16 - + 1; + let element_count = definition + .element_count + .ok_or(MalformedSendPropDefinitionError::UnsizedArray)?; + let count_bit_count = log_base2(element_count) as u16 + 1; let child_definition = definition .array_property .as_deref() From cfd514000e32686140ec1dbfcda9790bb9ae6a6e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 8 Sep 2023 16:46:49 +0200 Subject: [PATCH 03/45] player count fix wip --- src/bin/reencode.rs | 77 +++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/src/bin/reencode.rs b/src/bin/reencode.rs index 5f16604..2e479aa 100644 --- a/src/bin/reencode.rs +++ b/src/bin/reencode.rs @@ -13,16 +13,6 @@ use tf_demo_parser::demo::packet::{Packet, PacketType}; use tf_demo_parser::demo::parser::{DemoHandler, Encode, RawPacketStream}; use tf_demo_parser::{Demo, ParseError}; -const COPY_TYPES: &[PacketType] = &[ - // PacketType::Signon, - // PacketType::Message, - // PacketType::SyncTick, // bit perfect - // PacketType::ConsoleCmd, // bit perfect - // PacketType::DataTables, // bit perfect - // PacketType::StringTables, // close enough - // PacketType::UserCmd, // close enough -]; - fn main() -> Result<(), MainError> { #[cfg(feature = "trace")] tracing_subscriber::fmt::init(); @@ -56,43 +46,56 @@ fn main() -> Result<(), MainError> { header.write(&mut out_stream)?; let mut handler = DemoHandler::default(); + let mut encode_handler = DemoHandler::default(); - let mut packet_start = packets.pos(); let mut has_stop = false; let mut last_tick = DemoTick::default(); - while let Some(mut packet) = packets.next(&handler.state_handler)? { - let packet_end = packets.pos(); + while let Some(packet) = packets.next(&handler.state_handler)? { last_tick = packet.tick(); - let packet_bits = stream.read_bits(packet_end - packet_start)?; - if COPY_TYPES.contains(&packet.packet_type()) { - packet_bits.write(&mut out_stream)?; - } else { - match &mut packet { - Packet::Signon(message_packet) | Packet::Message(message_packet) - if strip_pov => - { - message_packet.meta.view_angles = Default::default(); - message_packet.messages.iter_mut().for_each(|msg| { - if let Message::ServerInfo(info) = msg { - info.stv = true; + if packet.packet_type() == PacketType::Stop { + has_stop = true; + } + + let mut encode_packet = packet.clone(); + match &mut encode_packet { + Packet::DataTables(tables_packet) => { + for table in tables_packet.tables.iter_mut() { + for prop in table.props.iter_mut() { + match (table.name.as_str(), prop.name.as_str()) { + ("DT_ObjectDispenser", "\"healing_array\"") => { + prop.element_count = Some(101); + } + ("DT_Team", "\"player_array\"") => { + prop.element_count = Some(101); + } + ("DT_TFTeam", "\"team_object_array\"") => { + prop.element_count = Some(606); + } + _ => {} } - }); - } - Packet::Stop(_) => { - has_stop = true; + } } - _ => {} } - - if packet.packet_type() != PacketType::ConsoleCmd { - packet - .encode(&mut out_stream, &handler.state_handler) - .unwrap(); + Packet::Signon(message_packet) | Packet::Message(message_packet) if strip_pov => { + message_packet.meta.view_angles = Default::default(); + message_packet.messages.iter_mut().for_each(|msg| { + if let Message::ServerInfo(info) = msg { + info.stv = true; + } + }); } + _ => {} } + + if encode_packet.packet_type() != PacketType::ConsoleCmd { + encode_packet + .encode(&mut out_stream, &encode_handler.state_handler) + .unwrap(); + } + handler.handle_packet(packet).unwrap(); - packet_start = packet_end; + encode_handler.handle_packet(encode_packet).unwrap(); } if packets.incomplete { @@ -101,7 +104,7 @@ fn main() -> Result<(), MainError> { if !has_stop { Packet::Stop(StopPacket { tick: last_tick }) - .encode(&mut out_stream, &handler.state_handler) + .encode(&mut out_stream, &encode_handler.state_handler) .unwrap(); } } From d20fbb8e37f98527daf22dcc7c07296557f948e7 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 21 Dec 2023 22:41:17 +0100 Subject: [PATCH 04/45] list pauses in parser json output --- src/demo/parser/analyser.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/demo/parser/analyser.rs b/src/demo/parser/analyser.rs index 990c098..deb76cb 100644 --- a/src/demo/parser/analyser.rs +++ b/src/demo/parser/analyser.rs @@ -352,6 +352,7 @@ pub struct World { #[derive(Default, Debug, Serialize, Deserialize, PartialEq)] pub struct Analyser { state: MatchState, + pause_start: Option, user_id_map: HashMap, } @@ -365,6 +366,7 @@ impl MessageHandler for Analyser { | MessageType::UserMessage | MessageType::ServerInfo | MessageType::NetTick + | MessageType::SetPause ) } @@ -380,6 +382,14 @@ impl MessageHandler for Analyser { } Message::GameEvent(message) => self.handle_event(&message.event, tick), Message::UserMessage(message) => self.handle_user_message(message, tick), + Message::SetPause(message) => { + if message.pause { + self.pause_start = Some(tick); + } else { + let start = self.pause_start.unwrap_or_default(); + self.state.pauses.push((start, tick)) + } + } _ => {} } } @@ -488,4 +498,5 @@ pub struct MatchState { pub rounds: Vec, pub start_tick: ServerTick, pub interval_per_tick: f32, + pub pauses: Vec<(DemoTick, DemoTick)>, } From 07039da23d4d70e18aa128e5815b3917eb1066bd Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 21 Dec 2023 23:02:41 +0100 Subject: [PATCH 05/45] switch to cargo-insta for snapshot testing --- Cargo.lock | 148 +- Cargo.toml | 1 + flake.nix | 2 +- src/demo/parser/analyser.rs | 13 +- test_data/comp_message_types.json | 1 - test_data/small_entities.json | 316 - tests/entity.rs | 84 +- tests/sendprops.rs | 23 +- tests/snapshots/entity__entity_test.snap | 20417 +++++++ .../snapshots/sendprops__flatten_test.snap | 44684 ++++++++-------- .../snapshots/tests__comp.dem_minimal.snap | 9 +- .../snapshots/tests__decal.dem_minimal.snap | 18 +- .../tests__emptysaytext.dem_minimal.snap | 14 +- .../snapshots/tests__gully.dem.snap | 6 +- .../snapshots/tests__gully.dem_minimal.snap | 9 +- .../tests__malformed_cvar.dem_minimal.snap | 9 +- .../snapshots/tests__nousers.dem_minimal.snap | 9 +- .../tests__protocol23.dem_minimal.snap | 9 +- .../tests__saytext2.dem_minimal.snap | 9 +- .../snapshots/tests__small.dem.snap | 6 +- .../snapshots/tests__small.dem_minimal.snap | 9 +- .../tests__unicode-saytext.dem_minimal.snap | 9 +- tests/tests.rs | 63 +- 23 files changed, 42991 insertions(+), 22877 deletions(-) delete mode 100644 test_data/comp_message_types.json delete mode 100644 test_data/small_entities.json create mode 100644 tests/snapshots/entity__entity_test.snap rename test_data/gully_props.json => tests/snapshots/sendprops__flatten_test.snap (99%) rename test_data/comp.json => tests/snapshots/tests__comp.dem_minimal.snap (99%) rename test_data/decal.json => tests/snapshots/tests__decal.dem_minimal.snap (99%) rename test_data/emptysaytext.json => tests/snapshots/tests__emptysaytext.dem_minimal.snap (99%) rename test_data/gully_game_state.json => tests/snapshots/tests__gully.dem.snap (99%) rename test_data/gully.json => tests/snapshots/tests__gully.dem_minimal.snap (99%) rename test_data/malformed_cvar.json => tests/snapshots/tests__malformed_cvar.dem_minimal.snap (99%) rename test_data/nousers.json => tests/snapshots/tests__nousers.dem_minimal.snap (99%) rename test_data/protocol23.json => tests/snapshots/tests__protocol23.dem_minimal.snap (99%) rename test_data/saytext2.json => tests/snapshots/tests__saytext2.dem_minimal.snap (99%) rename test_data/small_game_state.json => tests/snapshots/tests__small.dem.snap (94%) rename test_data/small.json => tests/snapshots/tests__small.dem_minimal.snap (71%) rename test_data/unicode-saytext.json => tests/snapshots/tests__unicode-saytext.dem_minimal.snap (99%) diff --git a/Cargo.lock b/Cargo.lock index 87cab16..59cb66d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,7 +96,7 @@ checksum = "052a5a614540ae9bb7de25c2c86a94b6de7374cb7e3230f3128955bdaea62c3f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "syn_util", ] @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -249,22 +249,21 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", "memoffset", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" dependencies = [ "cfg-if", ] @@ -276,7 +275,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -330,7 +329,7 @@ checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -343,7 +342,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 1.0.107", "synstructure", ] @@ -411,6 +410,20 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "insta" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc" +dependencies = [ + "console", + "lazy_static", + "linked-hash-map", + "serde", + "similar", + "yaml-rust", +] + [[package]] name = "itertools" version = "0.10.5" @@ -464,18 +477,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "main_error" @@ -494,15 +510,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -524,7 +540,7 @@ checksum = "288807bc867d10bf77d74614d8287230394b3afc49c2716f09d1ff11bb6a3741" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -650,7 +666,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -718,7 +734,7 @@ dependencies = [ "regex", "regex-syntax", "structmeta", - "syn", + "syn 1.0.107", ] [[package]] @@ -787,7 +803,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "version_check", ] @@ -804,18 +820,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.23" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -916,33 +932,27 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn", + "syn 1.0.107", ] -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - [[package]] name = "serde" -version = "1.0.152" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.42", ] [[package]] @@ -953,7 +963,7 @@ checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -975,7 +985,7 @@ checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -987,6 +997,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "similar" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" + [[package]] name = "smallvec" version = "1.10.0" @@ -1023,7 +1039,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn", + "syn 1.0.107", ] [[package]] @@ -1034,7 +1050,7 @@ checksum = "bafede0d0a2f21910f36d47b1558caae3076ed80f6f3ad0fc85a91e6ba7e5938" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1048,6 +1064,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn_util" version = "0.4.2" @@ -1056,7 +1083,7 @@ checksum = "6754c4559b79657554e9d8a0d56e65e490c76d382b9c23108364ec4125dea23c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1067,7 +1094,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "unicode-xid", ] @@ -1090,7 +1117,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1110,6 +1137,7 @@ dependencies = [ "err-derive", "fnv", "iai", + "insta", "itertools", "jemallocator", "main_error", @@ -1146,7 +1174,7 @@ checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1197,7 +1225,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1265,12 +1293,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -1295,7 +1322,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "wasm-bindgen-shared", ] @@ -1317,7 +1344,7 @@ checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1426,6 +1453,15 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "yansi" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 99ed625..2a9de5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -61,6 +61,7 @@ pretty_assertions = "1.3.0" test-case = "2.2.2" iai = "0.1.1" criterion = "0.4.0" +insta = { version = "1.34.0", features = ["json"] } [profile.release] lto = true diff --git a/flake.nix b/flake.nix index a525a77..cbcf519 100644 --- a/flake.nix +++ b/flake.nix @@ -93,7 +93,7 @@ }; devShells.default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind]; + nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind cargo-insta]; }; }); } diff --git a/src/demo/parser/analyser.rs b/src/demo/parser/analyser.rs index deb76cb..bc9d8e6 100644 --- a/src/demo/parser/analyser.rs +++ b/src/demo/parser/analyser.rs @@ -356,6 +356,12 @@ pub struct Analyser { user_id_map: HashMap, } +#[derive(Default, Debug, Serialize, Deserialize, PartialEq)] +pub struct Pause { + from: DemoTick, + to: DemoTick, +} + impl MessageHandler for Analyser { type Output = MatchState; @@ -387,7 +393,10 @@ impl MessageHandler for Analyser { self.pause_start = Some(tick); } else { let start = self.pause_start.unwrap_or_default(); - self.state.pauses.push((start, tick)) + self.state.pauses.push(Pause { + from: start, + to: tick, + }) } } _ => {} @@ -498,5 +507,5 @@ pub struct MatchState { pub rounds: Vec, pub start_tick: ServerTick, pub interval_per_tick: f32, - pub pauses: Vec<(DemoTick, DemoTick)>, + pub pauses: Vec, } diff --git a/test_data/comp_message_types.json b/test_data/comp_message_types.json deleted file mode 100644 index b9c8ada..0000000 --- a/test_data/comp_message_types.json +++ /dev/null @@ -1 +0,0 @@ -[5,6,10,17,14,6,18,6,23,26,27,26,26,26,26,27,17,26,26,26,26,26,26,27,26,26,23,26,26,26,26,26,26,17,26,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,26,27,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,27,26,25,26,24,26,26,27,17,26,27,17,26,27,26,25,26,27,17,26,26,26,25,26,26,26,25,28,28,26,27,17,26,26,26,27,26,26,27,17,26,26,27,26,0,26,26,0,26,26,27,17,17,26,26,26,26,26,26,26,27,17,26,26,26,26,25,26,27,17,26,26,27,17,0,26,26,26,27,17,26,26,27,17,26,26,27,17,26,26,26,26,26,26,25,28,28,26,27,17,0,26,26,26,26,25,26,27,17,26,27,25,26,27,17,26,17,0,26,26,26,26,27,26,27,17,28,26,27,17,26,0,26,27,26,0,26,27,17,26,26,26,27,17,26,26,26,26,26,26,25,26,27,17,26,26,26,17,26,26,26,26,27,17,25,25,25,25,25,26,27,17,26,26,26,26,26,26,27,17,0,26,0,26,26,26,27,17,26,26,26,28,25,26,27,17,26,26,27,17,26,26,0,26,27,17,26,0,26,0,26,17,17,26,26,27,26,26,26,26,27,26,26,26,26,0,25,25,25,26,27,17,26,25,26,25,28,28,26,27,17,26,26,26,26,26,26,26,0,26,26,0,26,26,26,17,26,26,27,26,26,17,26,26,27,26,0,26,0,26,26,26,26,27,17,26,27,0,26,0,23,26,26,27,26,27,26,27,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,17,26,0,25,28,28,26,27,17,26,27,26,27,26,27,26,25,26,27,17,26,27,17,0,26,27,26,26,27,26,27,26,26,27,25,26,27,17,17,26,27,26,26,27,26,27,26,27,26,27,25,26,27,17,17,17,17,17,17,17,17,26,27,26,27,26,27,26,27,26,26,27,25,26,27,17,26,27,17,28,25,26,27,17,26,0,26,27,26,27,25,25,26,27,17,26,25,28,28,25,26,27,17,26,27,26,27,26,27,26,27,28,26,27,17,25,26,27,17,26,27,26,27,26,26,27,26,27,17,26,27,0,26,27,0,25,25,26,27,17,25,25,25,25,25,26,27,17,25,26,27,26,27,26,27,25,26,26,0,26,27,26,27,26,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,26,27,26,27,26,26,27,17,26,26,27,26,26,27,17,26,26,27,17,25,25,25,25,26,27,17,26,27,25,26,27,26,27,26,26,27,0,26,27,0,26,27,26,26,27,26,26,27,26,27,26,27,26,26,27,26,27,26,27,17,0,26,27,26,26,27,26,27,17,0,26,26,27,26,27,26,27,17,26,27,26,27,17,26,17,26,27,26,27,17,26,27,17,25,25,25,25,25,17,17,17,17,17,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,23,25,25,25,25,17,17,17,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,17,17,26,27,17,25,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,26,27,26,26,26,0,26,27,26,26,26,0,26,26,0,26,26,26,26,27,26,26,26,26,26,26,0,26,26,26,0,26,26,26,26,26,0,26,26,0,26,26,26,0,26,0,26,26,26,0,26,17,26,26,27,0,26,26,27,26,26,27,17,26,26,0,26,26,26,25,26,26,27,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,0,26,26,26,26,26,26,26,26,27,0,26,27,17,26,27,17,26,26,26,26,25,26,26,26,26,26,26,26,27,26,26,17,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,25,26,17,26,26,25,25,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,0,26,17,26,26,27,26,28,26,27,17,26,26,27,17,0,25,25,26,17,26,25,25,25,26,25,25,26,26,26,26,0,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,17,26,26,27,26,0,26,26,0,26,26,26,26,26,26,0,28,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,26,0,26,27,17,26,26,27,17,26,26,26,26,26,0,26,26,28,28,28,28,28,28,26,17,26,26,26,26,17,26,26,17,25,26,26,26,26,26,26,0,26,26,26,26,26,0,26,26,0,26,26,27,17,0,26,26,26,26,26,26,26,26,26,26,26,26,0,26,17,26,0,26,26,26,26,0,26,26,26,0,26,26,26,26,26,26,27,17,26,28,26,27,17,26,26,26,26,27,17,26,26,26,0,26,26,26,17,26,26,26,0,26,17,26,26,26,28,26,17,26,26,26,26,26,25,25,25,26,0,26,25,26,26,26,26,27,26,26,26,26,26,27,26,28,26,27,17,17,26,17,0,26,27,17,26,27,26,26,26,26,26,26,26,17,26,26,26,26,27,26,26,26,26,26,27,17,26,26,0,26,26,26,26,26,26,0,17,17,26,26,0,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,17,26,26,25,25,26,27,17,17,17,17,17,17,17,26,0,28,26,17,25,26,26,27,28,26,17,26,26,28,26,27,17,26,26,26,26,26,27,28,26,17,26,0,26,26,27,17,26,26,27,17,0,26,26,27,17,26,26,26,26,17,26,26,26,26,28,26,17,26,26,0,26,26,26,17,0,26,28,26,26,26,27,0,26,26,26,26,26,0,26,26,26,26,0,28,26,27,17,0,26,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,27,26,26,26,25,26,26,0,26,26,26,26,26,26,27,26,26,26,27,26,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,0,26,0,26,27,26,26,28,26,17,26,26,27,0,26,17,26,26,26,26,0,26,0,26,27,17,26,26,26,26,0,26,26,26,26,26,27,26,26,26,26,27,17,0,26,17,0,26,26,0,26,26,26,26,26,26,27,26,26,26,26,26,26,25,26,0,28,26,17,26,26,0,26,27,26,26,26,26,26,26,26,26,26,17,26,26,26,27,17,26,26,27,17,26,26,26,27,28,26,17,26,25,25,26,26,27,26,0,28,26,17,26,26,26,28,26,17,26,26,27,26,0,26,26,26,28,26,17,26,27,0,26,0,17,17,26,26,27,0,26,26,0,26,26,0,28,26,17,0,28,26,17,26,26,27,26,27,26,27,17,26,26,0,26,26,26,26,26,28,26,17,26,0,26,0,26,0,26,26,0,26,17,26,26,25,26,0,28,26,17,0,26,27,17,0,26,26,26,26,26,26,0,26,26,26,0,26,17,26,17,0,26,26,26,26,27,17,26,26,26,27,26,27,26,26,0,26,26,26,0,26,26,26,26,26,17,26,26,0,26,26,26,26,26,26,17,17,26,26,26,26,26,27,26,26,0,26,26,26,26,27,17,26,27,17,26,27,17,26,26,26,27,17,0,26,26,0,26,26,27,26,26,26,26,26,26,25,26,17,0,26,26,26,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,28,26,27,17,25,26,26,17,17,17,17,17,17,17,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,27,26,27,17,25,25,26,0,26,27,17,26,26,0,26,26,26,26,26,0,26,26,0,17,26,27,17,26,26,26,26,27,17,26,27,26,26,27,26,26,27,0,26,26,26,27,25,26,0,17,17,17,17,17,17,17,26,26,27,0,26,26,26,26,0,26,27,17,26,0,26,26,26,26,27,26,0,17,17,26,26,26,26,26,26,26,26,27,17,26,26,0,26,26,26,27,17,26,27,26,26,27,17,26,26,27,26,26,26,28,26,27,17,26,26,26,27,26,26,17,26,26,0,26,27,26,27,17,0,26,27,17,26,26,26,26,0,26,26,26,0,26,26,27,26,27,17,26,26,26,26,17,26,26,26,26,26,26,17,25,26,26,26,26,17,26,0,26,0,26,26,26,26,26,26,26,26,26,27,17,26,0,26,27,26,26,26,27,17,26,26,27,26,26,27,17,26,26,26,27,0,26,26,26,0,28,26,27,17,26,27,26,26,27,17,0,26,26,26,26,17,26,26,26,26,27,17,26,26,0,26,26,26,26,17,26,26,26,26,27,26,0,26,0,25,25,28,28,25,25,26,27,17,25,26,27,17,25,26,17,26,27,17,26,26,26,0,26,26,26,26,26,25,26,26,26,26,27,0,26,26,17,26,0,26,26,26,27,17,26,26,26,26,26,26,26,27,26,0,17,17,17,17,17,17,17,26,26,27,26,27,26,27,17,26,26,26,26,27,17,26,26,27,26,26,27,17,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,27,26,26,26,26,27,26,26,26,27,0,26,26,26,26,27,0,26,26,27,17,26,27,26,0,26,27,17,0,26,26,26,26,26,26,26,26,26,25,26,26,26,26,26,17,26,27,17,28,26,27,17,26,27,26,0,26,26,26,26,26,26,27,26,26,27,17,26,0,26,26,26,26,26,26,26,27,17,26,27,26,26,26,0,26,26,26,26,26,26,26,26,26,26,17,0,26,27,26,26,27,17,26,26,26,26,0,26,26,26,26,27,26,26,26,26,27,26,27,26,0,26,26,26,27,17,26,26,27,17,26,26,26,26,28,26,27,17,25,26,26,25,25,26,26,27,26,26,0,26,17,26,0,26,17,26,26,26,25,26,27,17,25,26,26,26,26,26,27,17,0,26,17,17,17,17,17,17,17,26,28,26,17,28,26,17,26,26,26,26,26,27,17,26,26,26,27,17,26,26,17,0,26,26,0,26,26,27,26,27,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,27,0,26,27,17,26,26,26,26,26,26,0,26,27,26,0,26,26,27,26,27,26,26,26,26,26,27,25,26,26,26,26,26,28,25,25,26,17,25,26,27,17,26,26,26,26,26,26,0,26,0,26,0,26,0,17,17,17,17,26,27,0,26,27,17,26,26,26,17,0,26,27,26,26,26,26,17,0,26,26,26,26,26,26,26,0,26,27,17,0,26,26,26,27,17,26,26,27,28,26,27,17,0,26,26,26,26,26,0,26,26,26,26,27,26,26,0,26,26,0,26,0,26,26,26,27,0,26,26,26,26,26,28,25,26,27,17,26,26,0,26,25,26,17,26,26,25,26,26,27,26,27,17,25,26,27,17,26,26,26,26,26,28,26,27,17,26,26,27,0,26,26,26,26,26,26,26,26,26,26,26,26,26,25,26,27,26,26,26,26,27,17,26,27,26,17,17,26,27,17,26,26,26,25,26,27,26,26,26,26,26,0,26,27,26,26,26,27,17,0,25,26,27,26,0,26,27,26,26,0,26,27,26,26,27,26,26,0,26,0,25,26,27,26,26,26,26,26,27,0,26,27,26,26,27,17,25,26,26,25,26,27,26,26,0,26,26,27,0,26,27,26,27,17,0,26,26,25,26,27,26,26,26,26,26,27,26,26,27,26,17,26,27,25,26,27,28,25,26,27,17,26,27,26,26,26,26,27,26,0,26,27,17,26,0,26,25,26,27,0,26,26,0,26,0,26,0,26,26,27,26,0,26,27,17,26,27,26,25,26,27,25,25,25,28,28,26,27,17,26,26,27,26,27,26,0,28,26,27,17,0,26,26,0,25,25,26,26,26,27,17,26,25,26,27,0,26,26,27,17,26,26,27,26,26,27,17,26,26,0,26,25,26,27,0,25,26,27,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,17,17,26,26,0,26,26,25,26,27,26,27,26,26,26,27,26,26,27,26,26,26,26,27,17,25,26,27,26,26,26,26,26,27,26,17,17,26,26,26,27,17,25,26,27,26,26,27,17,26,27,26,26,26,27,26,26,26,26,26,0,26,0,26,17,17,26,26,26,0,26,26,26,26,25,26,26,26,26,27,17,26,27,26,26,26,27,17,17,26,26,26,26,26,26,26,27,26,26,27,17,26,0,26,17,26,26,26,27,26,25,26,27,17,25,26,27,17,17,17,17,17,17,17,26,17,17,26,0,26,26,26,26,26,27,26,26,26,25,26,27,17,26,26,26,26,26,27,0,26,27,26,26,26,0,26,26,0,26,26,0,26,26,26,26,26,0,26,27,26,26,0,26,26,27,17,26,27,17,26,26,26,26,26,26,25,26,26,26,26,26,26,17,26,26,26,0,26,25,25,26,27,17,0,26,26,27,26,26,27,26,26,0,26,26,26,26,0,26,26,26,27,17,26,25,26,27,26,26,17,17,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25,26,27,26,0,26,26,26,26,26,26,26,27,17,25,25,26,0,26,26,26,27,26,27,17,17,17,17,17,17,17,26,26,27,26,25,26,27,0,26,26,26,25,26,27,26,27,26,26,26,25,26,27,26,27,17,26,27,26,26,0,28,26,17,26,27,26,26,17,26,26,25,26,27,26,0,26,26,26,17,26,27,17,26,27,28,28,28,28,28,28,26,26,0,26,26,25,26,27,26,26,17,0,26,28,26,27,17,0,26,27,26,26,26,26,26,26,0,26,26,26,26,27,26,26,26,26,27,26,26,25,26,27,26,27,26,27,26,26,26,27,26,26,26,26,26,25,26,27,26,26,27,0,26,17,17,26,27,26,26,26,0,26,27,25,26,26,27,26,27,26,26,26,26,27,26,0,26,26,0,26,26,26,26,27,26,27,17,26,26,26,27,26,0,26,0,17,25,26,27,0,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,26,26,26,27,17,17,26,0,17,17,26,0,26,26,26,27,26,26,26,26,26,26,26,26,25,25,26,26,26,26,26,26,27,26,26,27,26,26,26,26,26,26,27,26,25,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,17,26,26,17,17,17,17,17,17,17,26,0,26,26,27,26,17,26,26,26,26,28,26,27,17,25,26,26,26,26,26,26,0,26,26,26,26,27,26,26,26,17,25,25,26,26,26,26,25,26,26,26,26,26,27,17,26,26,26,26,28,25,26,27,17,26,17,17,17,17,17,17,17,26,27,26,26,26,26,26,26,26,17,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,0,26,0,26,27,26,0,26,0,26,26,26,26,27,26,26,26,26,26,26,26,26,25,26,26,26,26,26,26,26,27,17,0,26,26,26,26,26,27,17,26,27,26,26,26,0,26,26,26,26,26,17,17,17,17,17,17,17,26,26,25,26,26,26,17,26,26,27,17,26,26,0,26,0,26,0,26,26,26,0,26,26,26,27,17,26,26,26,26,26,26,26,0,26,27,26,25,25,25,25,26,24,26,26,26,26,27,0,26,26,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,27,17,26,26,17,26,26,27,17,26,26,26,0,26,26,26,27,26,26,27,17,0,26,26,26,26,26,26,0,26,26,26,26,26,26,0,26,25,26,25,26,17,17,17,17,17,17,17,26,25,25,26,26,26,26,26,27,26,26,0,28,26,27,17,26,26,27,26,26,26,26,27,26,25,25,26,26,26,26,26,27,17,26,26,26,26,17,0,26,26,27,17,0,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,25,25,26,26,26,26,26,26,26,26,27,26,26,0,26,26,26,27,17,17,17,17,17,17,17,17,26,25,26,26,27,17,26,26,26,26,0,26,26,17,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,28,26,27,17,26,27,17,26,26,26,17,26,0,26,26,0,26,27,23,26,26,26,26,0,26,26,26,26,26,26,0,26,26,26,0,26,26,26,26,26,0,26,26,0,26,26,26,26,17,26,27,26,17,17,17,17,17,17,17,26,26,0,26,27,26,27,26,26,27,17,25,26,26,26,26,27,17,26,26,26,26,26,26,0,26,0,26,26,26,27,26,25,25,26,26,26,26,26,26,26,26,26,27,26,26,26,0,26,26,0,26,26,26,26,26,26,26,26,27,26,26,25,25,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,27,26,0,26,26,28,26,27,26,17,0,26,26,26,27,17,0,26,0,26,26,27,26,17,26,26,26,27,26,25,26,26,26,26,0,26,26,0,26,17,26,26,26,0,26,26,26,17,17,17,17,17,17,17,17,26,17,26,26,26,0,26,0,26,0,26,26,26,26,26,27,17,26,26,26,26,27,0,26,26,26,0,26,26,26,26,27,26,27,26,26,0,26,26,17,17,26,0,26,26,27,17,26,26,26,27,17,26,26,26,26,0,26,26,26,26,25,25,26,26,26,27,17,0,26,26,26,26,26,0,26,26,27,26,26,27,17,25,26,27,0,26,27,26,27,17,26,26,27,26,26,0,26,26,0,26,26,26,26,27,26,17,26,26,26,25,25,26,27,17,26,27,25,26,17,26,27,26,26,27,17,26,26,27,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,17,26,27,26,26,26,0,26,26,26,26,26,26,26,27,0,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,0,26,26,26,26,26,26,26,27,17,25,26,26,26,26,26,27,26,26,26,27,26,26,26,26,26,26,27,17,0,26,26,26,26,26,27,17,26,0,26,26,26,26,0,26,26,26,0,26,26,26,26,26,26,26,0,26,26,27,26,0,28,26,27,17,26,26,26,26,26,0,26,0,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,26,26,0,26,27,0,25,26,27,17,26,26,28,26,27,17,0,26,27,26,26,27,0,25,26,0,26,26,27,26,26,26,26,27,17,26,26,0,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,0,26,0,26,26,26,26,26,26,26,26,26,27,26,0,26,26,26,26,26,26,26,26,26,27,26,26,27,17,26,26,26,26,26,26,0,26,26,25,25,26,27,17,25,25,26,26,26,26,26,26,26,27,26,27,17,28,26,17,26,26,26,0,26,27,17,25,26,26,27,26,26,26,17,26,26,26,26,17,26,26,26,26,0,26,26,27,26,26,26,26,0,26,26,26,26,0,25,26,26,26,26,26,26,26,0,26,26,28,26,17,26,26,26,17,26,23,25,25,26,26,26,26,27,17,26,26,0,26,26,27,26,27,26,0,26,0,26,27,17,26,26,27,17,26,26,27,26,26,26,26,26,26,26,26,26,26,17,26,26,27,17,26,27,25,26,26,27,17,26,26,26,26,26,17,26,26,26,0,26,0,26,26,26,17,17,17,17,17,17,17,26,26,0,26,26,27,26,26,26,26,26,26,26,0,26,26,26,26,17,26,26,27,17,26,0,26,0,26,26,0,26,26,27,17,0,26,27,17,26,27,28,26,27,17,0,26,26,26,26,26,27,17,26,27,26,0,26,0,26,0,26,27,26,17,26,26,0,26,26,26,26,0,26,26,26,27,17,26,26,26,17,26,26,26,0,26,27,0,26,26,25,26,0,26,26,26,17,17,17,17,17,17,17,26,26,26,26,27,17,26,26,27,26,26,26,26,26,26,26,0,26,26,26,27,26,26,27,17,26,26,26,17,26,26,26,0,26,26,26,26,27,26,26,26,26,17,26,0,28,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,17,0,26,26,25,25,26,26,27,17,26,0,28,26,27,17,26,26,26,27,26,0,26,26,0,26,0,26,0,26,26,25,26,25,26,27,17,26,28,26,27,17,26,28,26,17,26,26,26,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,17,26,26,0,26,26,26,26,26,26,26,26,26,26,27,26,26,26,17,0,26,26,27,26,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,0,26,0,28,26,17,26,26,26,26,26,26,26,26,27,0,26,27,17,26,26,27,25,26,27,26,26,26,26,26,25,25,26,27,17,26,26,26,26,26,25,25,26,26,26,26,0,26,17,17,17,17,17,17,17,26,26,26,26,27,26,27,17,0,26,0,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,26,0,26,26,26,26,26,17,26,26,0,26,26,0,26,26,26,26,26,26,27,17,26,26,27,26,26,26,26,26,26,26,26,0,26,26,26,17,26,25,26,27,17,0,26,26,26,26,27,17,26,26,26,0,28,25,25,26,17,26,26,0,26,17,17,17,17,17,17,17,26,25,26,0,26,26,26,26,26,27,17,0,26,27,26,26,26,26,17,17,17,17,26,27,26,0,26,26,27,26,26,27,17,28,28,28,28,28,28,28,28,28,26,26,26,26,26,26,26,26,0,26,26,27,17,26,26,26,26,26,26,27,17,26,17,26,26,26,26,27,17,26,26,26,17,26,26,26,26,26,26,26,26,26,26,25,26,27,17,26,25,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,27,26,17,0,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,17,26,0,26,26,26,26,26,0,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,17,26,26,26,26,26,26,26,25,26,26,26,26,27,17,26,0,17,17,17,17,17,17,17,26,26,0,28,26,26,26,26,26,26,27,17,26,27,17,26,26,26,0,26,26,0,26,26,26,17,26,26,26,0,26,26,17,26,17,26,27,26,26,26,0,26,26,26,26,17,0,26,26,26,28,26,17,0,26,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,0,26,26,17,17,17,17,17,17,17,26,0,26,26,26,27,17,26,26,0,26,26,0,26,26,25,26,27,17,26,26,26,26,26,26,27,17,26,27,17,26,17,0,26,26,26,26,26,26,0,26,26,27,26,26,26,0,26,26,25,26,26,27,26,26,26,27,17,26,26,26,26,26,26,17,26,26,26,26,26,26,26,27,17,26,17,28,26,17,26,26,26,27,26,26,26,26,26,0,26,26,25,26,27,17,26,26,27,17,0,26,17,26,27,26,26,26,26,26,26,26,26,0,26,25,26,26,0,26,26,26,26,27,17,26,27,26,17,17,17,17,17,17,17,26,0,26,26,26,26,27,26,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,0,26,27,17,26,26,25,25,26,27,17,26,17,17,17,17,17,17,17,26,26,26,26,26,26,26,26,26,26,17,26,0,26,26,26,26,0,26,26,26,26,27,17,25,26,0,26,26,26,0,26,26,0,26,26,26,26,26,26,26,26,26,26,23,26,27,25,25,26,26,26,28,26,17,26,26,26,26,26,26,17,0,26,27,26,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,0,28,26,27,17,26,26,26,26,26,26,26,25,26,26,26,0,26,27,17,26,26,26,27,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,17,26,26,27,17,0,26,26,26,17,26,26,27,0,26,26,26,28,26,27,26,27,17,0,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,17,26,26,26,26,26,27,0,26,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,25,26,26,26,25,26,27,17,26,26,27,26,26,28,17,17,26,17,26,25,26,27,26,26,26,27,0,26,26,26,26,26,26,27,26,26,26,0,26,26,27,26,26,26,26,27,26,26,27,17,26,26,0,26,26,17,26,26,26,0,26,0,17,17,26,17,17,26,26,0,26,26,26,17,26,26,26,26,26,0,26,17,0,26,26,26,27,17,0,26,26,0,26,0,26,27,17,26,0,26,26,26,26,26,27,17,26,26,25,26,26,26,26,26,26,17,26,26,26,26,26,27,26,26,26,26,0,26,26,26,26,0,26,26,26,0,26,0,26,27,17,26,27,26,26,26,27,26,26,26,0,26,26,27,17,28,26,27,17,26,26,26,26,26,26,27,28,26,17,26,0,26,26,27,26,27,0,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,17,0,26,26,26,26,26,26,0,25,26,0,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,0,26,26,0,26,26,26,26,28,28,28,28,28,28,26,27,17,26,27,0,26,17,26,26,26,0,26,17,26,27,26,0,26,26,26,27,26,27,17,26,26,26,27,26,26,26,26,26,0,26,26,26,27,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,27,17,28,26,27,17,26,26,0,26,26,27,26,27,25,26,0,26,26,26,26,27,17,26,17,26,17,0,26,26,26,26,26,25,26,26,0,26,26,26,27,0,26,26,27,17,26,26,17,26,27,17,26,0,26,26,26,26,27,26,26,26,26,26,26,26,26,0,26,17,0,26,26,26,26,26,26,26,0,26,26,26,26,26,28,26,27,17,26,27,26,26,26,17,26,27,26,26,26,27,17,26,26,27,17,26,0,26,26,26,26,26,0,26,26,27,26,26,25,26,26,26,28,26,27,17,26,26,26,27,17,26,26,26,0,26,26,26,26,26,26,17,17,17,17,17,17,17,26,26,26,26,26,17,26,17,25,26,26,26,27,26,26,26,0,26,26,27,0,26,26,26,27,17,28,26,28,26,17,0,26,27,26,26,27,0,26,26,26,26,26,26,0,26,27,17,0,26,0,26,26,26,26,26,17,26,26,26,26,26,25,25,26,27,17,0,26,27,17,26,26,27,26,27,17,26,17,17,17,17,17,17,17,26,26,26,26,25,26,26,26,26,26,26,26,26,17,26,17,26,26,0,26,27,17,26,27,26,26,27,17,26,26,26,26,26,26,26,26,27,0,26,26,26,26,27,26,26,26,26,27,17,26,26,26,26,17,26,26,0,26,26,26,27,26,26,26,26,26,25,26,27,17,26,26,26,27,17,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,17,26,26,26,25,26,27,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,27,26,26,27,26,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,25,25,26,26,26,26,26,0,26,17,26,26,17,26,0,26,26,26,26,26,0,26,17,0,26,26,17,17,17,17,17,17,17,26,26,0,26,0,25,26,0,26,27,26,0,26,27,0,26,0,26,26,26,0,26,26,26,26,26,26,26,27,26,26,26,27,17,26,0,26,17,26,26,0,26,27,26,27,17,26,27,17,26,27,26,25,25,26,0,26,26,26,26,27,17,0,26,27,26,26,0,26,0,26,26,26,17,26,26,0,26,26,26,26,26,26,26,26,26,26,0,26,26,0,25,26,27,26,26,27,26,26,26,26,26,26,26,27,26,26,26,26,26,26,25,26,26,26,27,17,26,26,0,26,26,27,26,26,26,26,26,26,27,17,26,27,17,26,26,26,27,17,26,26,26,27,26,26,26,0,26,26,0,26,17,26,26,27,17,26,26,26,27,17,26,26,26,27,26,26,26,26,26,26,26,26,26,27,26,26,26,27,26,26,26,26,26,26,26,26,17,17,17,17,17,17,17,26,26,26,26,26,0,26,0,26,26,26,28,26,27,17,26,26,25,26,26,27,17,0,26,27,26,28,26,27,17,26,26,26,26,26,26,0,26,27,17,26,26,26,26,27,17,26,26,26,26,26,27,26,26,26,26,27,17,0,26,26,26,26,17,26,17,26,26,26,26,28,26,17,26,26,26,26,26,26,27,0,26,26,0,26,27,0,26,27,26,26,26,0,26,26,27,26,17,26,27,17,26,26,26,25,26,24,26,28,28,28,28,28,28,28,28,28,26,27,17,26,26,26,26,27,26,26,0,26,17,26,17,25,26,26,26,27,26,27,17,26,0,26,26,26,17,0,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,0,26,0,26,26,0,26,26,26,26,17,26,26,0,26,0,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,0,26,26,26,0,26,27,17,26,27,26,26,26,26,26,26,17,26,26,27,17,26,26,27,17,26,26,27,26,0,26,26,27,26,0,25,26,26,26,26,26,26,17,26,26,26,26,26,26,27,0,26,26,26,26,26,26,27,28,17,17,17,17,17,17,17,26,27,17,26,26,26,26,26,26,26,17,26,26,26,0,26,26,26,26,27,17,26,26,26,28,26,27,17,26,0,26,26,27,26,26,26,27,17,26,26,27,26,27,17,0,26,17,26,27,17,26,26,26,26,17,26,26,26,26,26,26,26,0,26,26,27,17,26,26,17,17,17,17,17,17,17,26,26,27,26,25,26,26,26,26,26,26,26,27,26,26,26,26,26,26,27,26,26,27,17,26,26,26,26,0,26,26,27,17,26,26,26,25,17,17,17,17,17,17,17,26,26,26,26,26,26,26,27,0,26,26,26,27,17,0,26,17,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,26,27,17,26,26,26,26,26,26,26,26,0,26,26,26,0,26,28,26,27,17,0,26,26,27,17,17,17,17,17,17,17,26,27,26,26,26,27,17,25,26,26,26,26,27,26,0,26,26,27,17,26,27,26,26,26,27,26,26,26,26,0,26,26,26,26,27,17,26,17,26,27,17,26,26,26,17,26,26,27,17,26,26,26,26,26,26,26,26,0,25,26,27,17,26,26,26,26,26,17,26,26,27,26,26,26,26,27,0,26,0,26,26,26,26,27,26,27,26,26,26,26,27,26,27,26,26,26,26,27,17,26,26,26,28,26,17,26,0,25,26,26,26,26,0,26,26,26,26,26,27,17,26,27,0,26,26,26,26,0,26,26,26,26,26,26,26,26,26,17,26,0,26,26,0,26,0,26,26,28,26,17,26,0,26,26,26,26,26,0,26,26,26,0,26,26,27,0,23,26,26,26,26,26,26,26,26,27,17,26,27,17,26,0,26,0,26,26,26,26,26,26,26,26,27,26,26,26,17,26,26,26,25,26,26,26,26,26,27,26,26,26,26,26,26,17,0,26,17,17,17,17,17,17,17,26,26,0,26,0,26,26,17,26,26,26,26,26,26,26,27,26,26,26,26,26,26,27,26,27,17,26,28,26,27,17,26,26,26,0,26,26,26,0,26,26,0,26,0,26,26,26,26,27,26,26,25,26,17,24,26,26,26,17,26,26,26,26,26,0,26,26,0,26,26,26,27,26,26,26,26,25,26,26,26,17,26,26,26,26,26,26,26,26,27,26,26,0,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,17,17,17,17,17,17,17,26,0,26,26,26,27,26,26,26,27,26,0,26,26,26,17,26,26,26,26,26,0,26,26,26,27,26,26,26,0,26,26,26,26,26,26,26,25,26,26,27,17,26,26,26,27,26,26,26,26,26,26,17,26,26,26,26,0,26,17,26,0,26,26,27,26,27,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,0,26,27,26,0,26,26,0,26,26,26,27,26,26,27,17,26,26,0,26,26,26,26,26,26,27,26,26,27,26,0,26,26,27,26,26,26,0,25,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,27,26,17,26,26,26,26,26,26,27,17,26,28,26,27,17,26,26,26,0,26,26,26,26,0,26,26,0,25,26,24,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,17,26,27,26,26,26,26,27,26,26,26,26,26,26,26,26,27,26,25,26,26,26,26,26,26,27,17,26,26,27,17,26,26,0,26,26,27,17,0,26,26,26,26,0,26,26,26,26,17,26,26,26,26,26,26,17,26,26,26,26,28,26,27,17,28,26,27,17,0,26,0,26,26,26,26,26,26,27,26,27,17,26,26,26,26,27,26,28,26,27,17,26,26,26,26,26,26,27,26,0,26,17,26,26,26,26,26,17,26,27,26,26,26,26,26,26,25,26,26,26,26,26,0,26,26,27,26,27,17,26,26,27,0,26,26,26,26,26,27,26,26,26,26,26,0,26,26,17,26,25,26,26,26,26,26,26,27,26,26,0,26,26,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,26,26,27,26,26,26,26,26,26,26,0,26,26,17,26,26,26,27,26,26,27,0,26,26,28,26,27,17,26,26,25,26,26,27,26,0,26,26,17,26,28,26,27,17,26,26,26,27,17,26,27,26,26,26,26,26,26,26,26,26,0,26,26,26,27,26,27,17,0,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,27,17,26,27,26,0,26,26,26,17,0,26,26,26,26,26,17,26,26,26,26,26,0,26,26,26,26,27,28,26,17,26,25,26,26,26,26,27,0,26,0,26,26,26,26,27,17,26,26,26,0,26,26,26,26,0,26,0,26,26,27,17,26,0,26,28,26,27,17,26,17,0,26,27,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,0,26,26,26,0,26,26,26,26,0,26,26,26,26,26,26,26,27,17,26,27,26,26,26,26,0,26,17,26,27,25,26,28,26,27,17,26,26,27,26,27,26,0,26,27,17,26,0,26,26,0,26,27,17,26,0,26,26,26,26,26,27,26,26,27,17,26,26,26,26,0,26,26,26,27,26,26,27,17,26,26,26,26,26,27,17,26,26,26,27,26,26,27,26,0,26,26,26,26,0,26,0,26,27,17,26,26,26,0,26,26,26,26,26,27,26,26,26,0,26,27,26,26,27,17,0,26,0,26,27,26,0,26,26,26,26,25,17,17,17,17,17,17,26,17,26,26,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,17,17,17,17,17,17,17,17,17,17,17,17,26,26,26,26,26,26,26,26,26,26,0,26,26,27,0,26,26,27,26,27,17,26,26,26,26,26,26,26,27,26,27,26,26,0,26,26,0,28,26,27,17,26,26,27,17,26,26,26,27,26,0,26,26,26,27,26,26,26,0,26,0,26,26,26,17,26,27,26,26,0,26,0,26,26,25,17,25,26,17,26,27,26,26,25,26,27,17,26,26,17,0,26,0,26,26,26,26,27,26,27,26,26,26,27,0,26,0,26,26,26,26,27,17,26,26,26,0,26,0,26,0,26,26,26,0,26,26,26,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,27,26,0,26,26,17,26,26,26,26,26,26,26,26,26,26,26,27,17,26,0,26,0,26,26,26,26,26,26,26,27,26,26,27,26,26,17,26,27,26,0,26,26,26,26,26,27,26,26,26,26,27,26,26,26,26,26,26,26,0,26,0,26,27,26,17,17,17,17,17,17,17,26,26,26,0,26,27,26,26,27,17,26,26,27,26,0,26,26,27,26,26,26,26,27,26,0,26,26,0,26,26,26,0,26,26,26,26,26,27,26,27,26,17,26,0,26,26,26,26,26,26,27,17,26,0,26,26,27,17,26,26,26,26,27,17,26,26,26,26,17,26,26,0,25,26,26,26,26,26,26,26,26,26,26,27,26,26,27,26,0,26,27,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,0,26,26,26,26,26,26,17,26,27,26,27,26,27,17,0,26,26,27,26,26,26,26,0,26,26,26,26,26,27,26,0,26,26,26,0,26,26,27,17,26,26,26,26,17,26,27,26,26,27,17,0,26,27,26,26,27,26,26,26,26,26,26,0,26,26,25,26,27,26,27,17,26,26,26,26,27,26,26,26,26,26,26,26,26,26,27,25,26,17,26,27,26,26,27,17,26,26,27,0,26,27,17,25,26,26,26,26,26,26,26,26,17,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,27,0,26,26,26,26,26,17,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,27,26,26,27,26,26,27,26,0,26,26,27,26,27,26,0,26,25,28,28,26,27,17,26,27,26,26,26,26,26,0,26,26,17,17,17,17,17,17,17,26,26,26,0,26,26,26,27,17,26,27,26,27,17,26,26,26,27,26,0,26,27,26,26,27,17,26,26,26,26,0,26,26,26,27,26,0,26,17,0,26,27,17,26,28,26,17,26,26,26,27,26,26,27,0,26,26,26,26,27,26,26,26,27,17,26,26,26,26,26,0,26,26,0,26,27,17,26,26,0,26,26,26,0,26,26,27,17,26,26,0,26,26,26,26,26,26,0,26,17,26,0,26,27,26,26,26,0,26,26,26,26,26,26,27,26,26,0,26,26,27,26,0,26,0,26,26,26,26,26,26,26,27,17,26,26,27,25,28,28,26,27,17,26,17,0,26,26,26,27,17,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,17,26,27,26,26,0,26,26,26,27,26,0,26,0,26,26,26,26,27,26,27,26,26,26,26,27,17,26,26,26,26,27,17,0,26,26,26,26,17,0,25,28,28,26,27,17,26,27,26,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,25,28,28,25,28,28,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,0,26,26,27,17,26,27,25,26,27,17,26,0,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,26,27,26,26,27,0,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,26,26,27,26,27,17,0,26,27,17,0,26,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,0,26,27,0,26,27,25,25,28,28,25,28,28,26,27,17,26,27,25,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,0,26,27,26,27,25,26,27,17,0,26,27,17,26,27,25,26,27,17,26,27,0,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,0,26,27,26,27,26,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,17,0,26,27,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,24,26,27,25,28,28,26,27,17,25,25,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,26,27,0,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,0,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,26,27,26,27,0,26,27,0,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,0,25,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,0,26,26,0,26,26,26,26,26,27,26,26,27,17,0,26,26,26,0,25,25,25,26,27,17,26,0,26,26,25,26,26,0,26,0,26,17,26,26,26,26,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,28,26,27,17,26,27,26,27,0,17,17,17,17,17,17,17,26,27,0,26,27,26,26,17,26,26,27,26,26,17,26,26,26,26,26,0,26,26,26,27,0,26,26,27,17,26,0,26,26,27,26,26,27,17,26,25,25,25,28,28,26,27,17,26,27,17,26,26,27,26,26,27,26,25,26,27,26,26,27,26,26,26,26,17,26,27,25,26,27,17,0,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,0,26,27,26,26,27,17,0,26,27,26,26,26,26,0,26,26,26,26,26,26,26,26,0,26,26,27,26,0,26,26,26,26,27,17,25,25,26,27,17,26,26,28,26,17,26,26,0,26,26,26,26,26,27,26,25,28,28,26,27,17,26,26,26,26,26,26,26,26,27,25,26,27,17,26,26,27,26,26,17,28,26,17,26,26,27,17,26,27,25,26,27,17,26,27,17,26,26,26,27,26,26,27,17,26,27,17,26,27,25,26,27,17,26,26,27,26,17,17,17,17,17,17,17,25,26,25,25,26,27,17,26,0,26,27,17,26,27,17,25,28,28,26,27,17,0,26,26,26,27,26,0,26,26,0,26,26,25,25,25,26,27,17,0,25,26,25,26,26,26,26,27,26,17,26,26,17,26,26,26,26,27,17,26,26,27,26,26,0,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,27,26,27,17,26,17,26,27,26,26,27,26,25,28,28,26,27,17,0,26,27,17,26,25,26,26,26,26,25,26,26,27,25,26,27,17,26,27,0,26,27,26,27,26,26,27,26,26,26,26,26,17,26,27,26,0,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,27,26,27,17,26,26,26,26,26,0,26,26,26,0,26,26,27,26,26,26,26,26,26,26,26,26,27,26,27,17,0,26,28,26,17,26,26,17,26,26,17,26,26,26,17,26,27,25,26,26,17,0,26,26,26,27,17,26,27,0,26,27,17,0,26,27,26,26,0,26,26,26,0,26,26,25,28,28,25,25,28,28,26,27,17,25,26,26,26,0,28,26,27,17,0,26,27,26,26,26,27,17,26,26,26,26,26,27,25,26,0,28,25,25,26,27,17,25,25,26,25,26,26,26,26,26,27,0,26,26,26,17,26,26,26,27,26,26,27,17,26,27,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,17,26,27,0,28,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,17,0,26,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,17,17,17,17,17,17,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,25,26,27,17,26,27,0,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,28,28,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,0,26,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,0,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,26,27,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,0,26,27,17,26,27,17,26,27,26,27,0,25,28,28,26,27,17,26,27,0,26,27,26,27,26,26,27,26,17,28,25,26,27,17,26,27,26,27,0,26,27,25,26,27,24,0,25,25,25,25,26,27,17,26,27,17,25,26,0,26,26,26,27,0,26,0,26,26,26,27,26,26,27,17,26,0,26,26,26,0,26,26,26,26,0,26,26,17,26,26,26,27,17,26,26,26,26,26,26,27,26,26,25,26,26,26,26,27,26,26,17,26,26,27,26,26,27,17,26,26,27,17,26,27,17,26,26,26,26,0,26,26,17,26,0,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,25,26,27,17,26,26,17,17,17,17,17,17,17,26,26,27,26,26,26,27,17,26,26,26,26,26,26,0,26,17,26,26,26,26,26,27,26,26,26,26,27,17,26,26,26,0,26,0,26,26,26,26,26,26,25,26,27,26,26,26,27,26,17,26,26,27,26,27,26,26,26,26,0,26,26,27,26,26,26,0,26,17,17,17,17,17,17,17,26,17,26,0,26,26,26,26,27,17,26,27,17,26,26,26,27,26,0,26,26,26,26,26,26,17,26,26,0,26,26,26,26,26,0,26,26,26,26,26,26,26,27,26,26,27,0,26,26,0,26,26,26,26,27,26,27,17,26,26,26,26,26,26,26,0,26,27,26,27,26,17,25,26,25,26,26,27,26,0,26,26,26,26,26,25,26,26,26,26,26,27,0,17,17,17,17,17,17,17,26,27,0,26,25,26,26,17,26,26,26,26,26,26,27,17,26,26,17,26,26,26,25,26,27,0,26,25,26,26,27,26,0,28,28,28,28,28,28,28,28,25,26,17,26,26,26,0,25,25,26,17,26,26,26,0,26,26,27,26,26,26,26,26,0,26,26,26,27,17,26,26,27,26,26,26,27,26,27,26,27,26,26,27,17,26,26,26,26,27,17,26,26,27,26,17,26,26,26,27,26,26,26,28,26,17,26,26,26,26,26,26,26,26,0,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,27,17,26,26,26,26,27,26,17,26,26,26,0,26,0,26,0,26,26,0,26,26,26,27,26,26,26,26,17,28,26,27,17,26,26,26,26,27,26,17,17,17,17,17,17,17,17,25,26,26,25,26,26,27,26,27,0,26,26,26,27,17,26,27,17,26,26,26,26,26,26,0,26,27,26,26,26,27,0,26,26,27,17,26,26,17,26,26,27,26,26,26,26,27,17,26,26,27,25,25,26,0,26,0,26,27,26,26,26,26,26,26,26,26,17,26,26,26,26,26,0,26,25,26,27,17,26,17,26,26,26,26,25,26,25,25,26,0,26,26,17,26,26,17,26,26,27,17,26,0,26,26,26,25,26,24,25,28,28,25,26,27,17,25,26,27,17,26,26,25,26,26,26,27,17,28,26,27,17,25,25,25,26,24,26,26,17,26,26,25,25,26,27,17,26,0,26,28,26,27,17,26,0,26,26,26,27,26,27,0,26,27,17,26,26,26,26,26,0,26,26,25,26,26,26,26,26,26,26,26,27,26,27,17,26,26,27,26,26,26,0,26,26,0,26,0,26,27,26,27,26,26,17,26,26,26,25,25,26,27,0,26,26,26,27,17,26,26,27,26,26,17,0,25,26,27,17,0,26,26,26,26,26,26,26,17,17,17,17,17,17,17,26,17,26,26,26,26,17,26,26,26,26,26,27,17,0,26,26,0,26,0,26,26,26,26,27,17,25,25,25,28,28,26,27,17,26,27,0,26,17,26,25,26,27,26,27,17,26,26,26,25,26,26,27,0,26,17,26,27,26,25,25,26,27,0,26,17,25,26,27,26,26,26,17,26,26,26,27,17,26,26,26,26,26,0,26,27,26,26,26,27,17,25,26,27,26,27,26,26,27,26,26,27,26,27,17,17,17,17,17,17,17,26,17,26,27,26,27,0,26,26,17,0,26,27,0,26,26,27,26,26,26,26,26,26,25,26,25,28,28,26,27,17,0,26,26,27,17,26,27,26,26,27,26,26,26,26,17,26,26,26,26,26,26,17,26,27,26,17,26,27,17,26,27,26,0,25,26,26,26,25,26,27,26,26,27,17,0,26,27,26,27,26,27,17,26,0,25,26,25,26,27,17,0,28,26,17,0,26,0,26,26,26,26,26,0,26,27,26,17,26,26,27,26,27,17,26,27,17,26,27,0,25,28,28,26,27,17,25,25,26,0,26,17,26,26,26,26,17,28,26,27,17,26,27,17,0,26,26,27,26,27,17,26,26,26,26,26,26,26,17,17,17,26,27,26,25,28,28,26,27,17,26,26,0,26,27,26,26,27,26,26,27,17,26,0,26,27,26,28,26,17,26,26,26,17,26,0,26,27,17,26,26,26,26,27,26,17,26,27,17,26,26,26,26,26,27,17,26,26,0,25,25,25,28,28,26,27,17,25,26,0,17,17,17,17,17,17,17,26,26,26,27,17,26,26,26,27,17,25,26,27,0,26,26,26,26,26,27,26,26,26,26,26,0,26,0,26,26,26,26,28,26,27,17,26,27,26,26,27,26,27,17,0,26,0,26,26,27,17,26,26,26,0,26,26,26,26,27,17,17,26,17,26,27,17,26,0,26,26,26,0,26,17,26,26,26,26,0,26,26,26,26,28,26,27,17,0,26,26,26,25,26,0,26,0,26,26,0,26,26,27,17,0,26,17,26,26,27,26,27,17,26,26,26,26,26,0,26,26,0,26,26,27,26,26,27,17,26,26,27,17,26,26,26,26,27,17,26,27,26,27,0,26,26,26,26,26,27,26,26,17,25,17,25,26,27,17,26,17,26,17,26,27,17,26,26,26,26,27,26,26,27,17,26,26,26,27,26,27,26,26,25,25,25,26,27,17,0,26,26,27,26,25,25,25,28,28,26,27,17,26,25,26,26,27,17,26,27,26,27,26,0,26,0,26,0,26,26,27,17,0,26,26,27,17,26,17,25,28,28,25,26,27,17,26,0,26,27,26,25,17,25,26,17,26,0,26,26,27,26,26,26,26,27,26,26,26,0,26,27,17,26,26,26,26,26,26,27,17,0,26,26,17,26,26,26,26,26,25,26,27,17,26,26,26,26,26,17,26,17,26,26,0,26,17,26,26,26,26,26,25,26,27,26,26,26,26,26,26,26,17,26,0,26,26,26,27,17,26,27,26,26,26,27,17,0,26,26,26,26,27,26,26,26,26,26,27,26,26,27,26,17,28,26,27,17,26,26,26,26,27,26,26,26,17,26,27,17,26,27,17,17,26,26,0,26,26,26,25,26,17,26,0,26,27,26,26,26,26,26,26,26,27,17,26,26,27,17,26,0,26,26,17,26,26,26,27,25,25,17,26,27,17,26,26,17,25,26,27,17,24,26,27,0,25,26,26,17,26,26,26,25,26,26,26,26,27,26,26,26,27,25,28,28,26,27,17,26,0,26,26,27,17,26,17,26,26,27,17,26,26,26,27,17,17,26,27,26,27,26,26,0,26,0,26,27,26,26,27,26,26,27,0,26,26,27,26,27,26,27,17,26,26,27,17,26,27,26,26,26,17,0,26,27,26,26,26,26,26,26,26,27,26,26,27,26,27,26,26,26,26,27,26,27,0,26,17,26,27,17,26,27,17,0,26,25,25,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,26,17,26,25,25,26,27,17,26,27,17,26,26,27,17,26,27,26,26,26,26,26,26,27,0,26,26,27,17,26,26,0,26,26,26,28,26,27,17,0,25,28,28,26,27,17,26,26,27,26,26,0,26,26,26,26,26,25,17,26,26,27,17,26,26,0,26,26,0,26,27,17,26,27,26,26,26,26,26,17,26,17,26,26,26,0,26,27,17,28,25,26,27,17,26,26,26,26,26,26,0,26,0,25,26,27,17,17,17,26,26,17,0,25,26,27,26,26,27,26,27,26,26,0,26,27,17,26,26,0,26,25,26,27,17,26,26,26,17,26,26,25,26,27,17,26,27,17,26,26,27,0,25,26,27,17,0,26,27,17,25,26,26,25,26,26,26,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,27,17,26,27,26,26,27,26,0,26,26,26,26,26,26,27,26,26,26,27,17,26,26,26,27,26,26,27,17,0,26,27,26,27,26,27,17,26,26,26,27,17,26,17,26,26,26,26,0,25,28,28,26,27,17,26,26,26,0,26,27,17,26,0,26,26,26,27,17,26,17,26,27,17,26,26,26,26,0,26,26,26,26,26,17,26,26,27,26,26,27,26,26,26,26,26,27,26,26,27,17,26,17,26,26,26,26,27,17,26,0,26,25,26,27,17,23,26,26,26,26,26,27,26,26,26,27,17,26,27,26,26,27,26,0,26,26,17,17,17,17,17,17,17,26,26,26,27,17,26,26,27,17,26,0,26,26,0,26,17,0,26,26,0,26,26,27,17,0,25,26,0,26,0,26,27,0,26,0,26,27,26,26,26,26,26,27,26,27,17,26,27,17,26,26,27,26,27,17,26,26,27,26,27,26,26,0,28,26,27,17,26,25,26,0,26,27,26,26,26,26,27,17,26,26,0,26,26,27,17,26,26,0,26,27,26,26,26,27,26,26,17,17,26,17,26,26,26,26,27,17,26,26,27,26,25,28,28,26,27,17,26,27,17,0,26,0,26,26,17,26,26,17,26,26,25,28,28,25,28,28,25,26,27,17,26,26,26,26,27,26,17,26,26,27,17,26,25,26,26,26,26,26,26,26,27,17,26,26,26,26,27,17,26,26,26,25,26,26,26,26,26,17,26,27,26,27,17,0,26,26,27,17,26,26,26,26,27,26,27,17,26,17,26,26,26,27,17,26,26,26,26,27,26,26,26,27,17,26,27,26,25,28,28,26,27,17,25,25,25,26,27,26,0,26,27,17,26,27,17,26,26,27,17,26,26,26,17,26,17,26,27,17,26,26,26,26,26,25,26,26,26,27,26,0,26,27,17,26,27,17,26,27,25,28,28,26,27,17,26,26,25,26,26,17,26,27,17,26,26,26,26,0,26,26,26,25,26,27,17,0,26,0,26,25,26,26,26,26,27,17,26,26,0,26,26,27,17,26,26,26,0,26,0,26,26,27,17,26,0,26,0,28,26,27,17,25,26,27,17,26,25,26,17,24,0,26,26,27,17,26,27,26,27,0,26,26,26,0,26,26,25,28,28,26,27,17,26,26,27,17,26,0,26,26,26,26,26,27,17,26,26,17,26,27,17,26,26,17,26,27,26,27,17,0,26,26,26,27,26,26,27,17,26,27,26,26,27,26,26,26,0,26,26,26,25,26,27,26,26,26,17,26,26,26,27,17,25,26,26,26,26,27,28,26,17,26,26,26,26,17,26,25,26,27,17,0,26,0,25,26,27,17,26,0,26,26,26,26,25,28,28,26,27,17,0,17,26,17,26,27,17,0,25,26,27,17,25,26,17,26,27,26,0,26,26,0,26,26,26,26,26,0,26,26,26,27,26,27,17,26,17,26,26,26,26,27,0,26,26,26,17,26,27,26,26,27,26,0,17,17,17,17,17,17,17,26,26,27,0,26,26,27,26,26,26,25,28,28,26,27,17,26,26,27,17,26,0,26,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,27,17,26,27,17,26,26,0,26,27,17,26,27,17,26,26,25,28,28,26,27,17,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,27,26,26,27,26,26,26,26,26,26,26,27,26,26,0,26,26,26,26,26,27,17,26,26,27,17,26,26,26,17,26,27,17,26,27,17,28,26,27,17,26,26,26,26,26,26,26,27,26,26,27,17,26,27,17,26,26,26,26,25,25,26,27,17,0,26,26,26,17,17,17,17,17,17,17,26,26,0,26,26,26,17,26,26,26,27,17,0,26,0,26,26,27,17,26,26,26,0,26,26,26,26,26,26,26,27,17,25,25,26,27,17,26,27,25,25,26,17,0,26,0,26,27,26,26,27,26,27,17,26,0,26,0,26,26,27,17,26,26,26,26,26,26,27,26,26,26,27,17,26,27,0,26,26,27,17,26,27,17,0,26,25,26,27,17,26,17,26,26,0,26,26,26,26,27,17,25,26,27,24,26,26,26,0,26,17,26,27,26,26,26,27,26,0,26,26,27,26,26,26,28,26,27,17,26,28,26,25,26,26,26,27,17,26,17,0,26,27,17,26,0,26,27,26,26,26,26,26,26,28,26,27,17,26,26,27,26,0,26,26,27,26,26,26,27,17,26,26,26,26,26,27,0,26,26,26,26,0,25,25,26,27,17,26,26,27,26,25,28,28,25,26,27,17,25,26,27,17,26,25,25,26,27,17,25,26,17,26,26,26,27,17,26,17,26,26,26,26,0,26,26,26,27,26,26,0,26,26,26,25,26,27,26,0,26,26,26,17,26,27,26,27,26,26,27,26,26,17,26,26,0,26,0,28,26,17,26,26,26,26,26,27,17,26,26,26,26,27,17,26,0,26,26,26,17,17,17,17,17,17,17,26,26,27,26,26,0,26,0,26,27,17,26,26,26,26,17,26,27,26,26,26,26,17,26,27,17,26,26,26,26,26,27,26,26,27,17,0,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,25,28,28,26,27,17,26,25,26,27,26,17,26,26,26,27,26,26,0,26,26,27,17,0,26,26,27,26,0,26,26,26,27,26,26,26,0,26,26,0,26,27,17,0,26,27,17,26,27,17,26,0,26,26,27,17,26,26,17,26,26,26,26,27,26,25,25,28,28,25,25,25,26,27,17,25,26,17,26,26,27,17,26,26,26,26,26,26,27,17,26,26,26,26,26,0,26,27,26,26,0,26,26,26,26,26,0,26,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,0,26,28,25,28,28,26,27,17,26,26,17,26,26,26,17,26,26,27,17,26,17,26,27,17,26,26,26,27,26,0,26,26,26,26,27,26,26,26,27,26,26,27,17,26,26,26,26,26,26,26,26,26,26,27,17,26,26,27,26,26,0,26,26,0,26,26,26,26,25,28,28,26,27,17,26,26,26,26,26,26,26,27,17,0,26,27,26,26,17,0,26,26,25,28,28,25,25,26,27,17,25,25,26,17,0,25,26,17,26,26,26,27,26,27,26,26,27,26,27,17,26,26,27,0,26,28,26,27,17,0,26,26,26,0,26,27,25,26,24,26,27,26,25,25,25,26,27,17,26,26,26,25,28,28,25,28,28,25,25,26,27,17,26,26,25,25,28,28,26,27,17,26,27,17,26,25,26,27,26,26,26,27,17,26,25,26,27,26,26,26,26,25,26,26,27,17,26,27,26,26,27,17,26,25,26,27,17,26,17,26,17,0,26,26,26,25,26,26,27,26,26,26,25,26,27,26,27,26,26,17,25,28,28,25,26,27,17,26,27,17,0,26,25,26,27,0,26,27,26,27,25,28,28,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,26,27,0,26,27,26,27,25,26,27,26,27,26,26,27,0,26,27,17,25,26,27,17,25,26,27,26,27,26,28,26,27,17,26,27,0,26,27,25,26,27,17,26,27,26,27,25,26,27,26,27,25,26,27,26,27,26,27,25,25,25,25,26,27,17,26,27,25,25,25,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,17,25,26,27,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,25,25,26,27,17,0,25,25,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,0,26,27,25,28,28,26,27,17,26,17,26,27,26,27,25,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,17,26,27,17,26,27,26,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,0,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,26,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,28,28,25,26,27,17,26,27,26,27,26,27,25,26,27,0,26,27,26,27,25,25,26,27,17,26,26,27,0,26,27,17,25,26,27,26,27,0,26,27,25,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,25,26,27,26,26,27,26,27,26,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,26,27,0,26,27,26,27,25,25,17,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,25,25,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,25,26,27,26,27,0,26,27,25,26,27,26,27,0,26,27,0,25,26,27,17,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,28,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,17,0,25,26,27,26,27,26,27,17,26,27,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,25,28,28,26,27,17,0,25,26,27,23,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,25,25,25,26,27,17,23,23,25,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,25,17,25,26,27,17,25,26,27,23,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,28,26,27,17,26,27,0,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,28,28,28,28,28,28,28,28,26,27,17,25,28,28,25,25,26,27,17,26,27,17,26,27,26,27,17,25,26,27,24,26,27,17,26,27,25,26,27,26,27,25,26,27,17,26,27,0,26,27,17,26,27,17,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,0,26,26,27,26,27,25,26,27,17,26,26,26,27,26,26,26,27,17,0,26,26,26,0,26,26,26,27,26,27,26,26,26,0,26,26,27,17,26,26,27,17,26,25,26,27,17,25,25,26,26,26,27,26,26,17,26,26,0,26,27,26,17,26,26,0,25,26,27,17,26,26,26,26,26,17,25,26,26,0,26,27,17,26,26,27,25,25,26,27,17,26,25,26,17,25,25,26,17,0,25,26,17,26,26,26,26,27,26,27,0,26,26,0,26,0,26,26,27,17,26,26,0,26,0,26,27,17,26,26,26,26,27,17,25,28,28,26,27,26,17,26,26,0,26,26,27,26,26,17,0,26,26,25,25,25,26,27,17,26,17,25,26,27,17,0,26,26,26,26,27,26,27,26,27,0,26,26,26,26,27,26,26,26,26,26,26,27,26,26,27,17,26,26,27,26,25,26,27,26,27,17,26,26,26,26,27,26,25,25,26,27,17,26,0,26,17,26,27,17,25,26,26,27,26,17,26,26,27,17,26,25,28,28,26,27,17,0,26,26,26,26,0,26,27,26,27,26,26,27,17,26,26,26,26,26,26,27,17,0,26,26,25,26,27,0,26,26,26,0,26,26,26,25,26,26,0,26,27,17,26,26,27,17,26,0,25,25,26,27,17,26,26,26,26,27,26,27,26,17,26,26,26,0,26,26,26,26,26,26,26,17,26,27,26,27,17,26,26,27,0,25,26,27,26,27,17,26,26,27,17,26,26,27,17,26,26,26,26,17,25,26,26,27,17,26,26,26,26,26,26,0,26,27,17,26,17,26,26,0,26,26,27,0,26,26,26,25,26,0,26,26,26,26,27,26,26,27,26,26,26,26,26,27,26,26,27,17,26,26,26,27,26,27,17,26,26,27,17,26,26,26,27,17,26,26,26,27,26,26,17,26,26,27,17,26,26,27,17,26,26,26,27,17,26,26,25,26,0,26,26,0,28,26,27,17,26,0,26,26,26,26,27,26,17,26,27,17,0,26,17,26,27,17,26,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,26,27,26,27,26,27,0,25,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,25,25,25,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,28,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,0,25,25,25,26,27,24,0,26,27,26,27,26,17,26,27,17,25,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,26,27,26,27,25,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,25,26,27,17,25,26,27,17,26,27,25,25,26,27,17,26,27,26,27,26,26,0,26,26,26,26,26,26,25,26,27,0,25,26,26,25,26,26,26,27,26,27,26,27,26,26,26,25,25,26,26,27,26,26,26,0,26,0,26,26,27,0,26,25,26,27,26,0,26,26,27,26,0,26,27,26,17,26,26,26,26,26,26,26,27,17,0,26,26,26,17,26,26,26,27,26,26,26,26,26,26,26,0,25,25,25,26,27,17,26,27,25,26,0,26,26,27,26,26,26,26,26,26,17,26,27,17,26,26,26,26,26,27,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,17,0,26,26,27,26,27,26,26,27,17,26,26,26,27,17,26,26,26,26,26,27,26,0,26,26,17,0,26,26,26,26,27,0,26,28,26,27,17,26,26,26,26,27,28,25,26,27,17,26,0,26,26,0,26,26,25,26,27,17,25,26,27,26,26,27,26,26,26,17,26,17,25,25,26,17,26,17,17,17,17,17,17,17,17,26,27,17,26,17,0,26,17,0,26,27,26,25,17,26,27,17,26,26,26,26,26,26,25,26,26,0,26,26,0,26,27,26,26,25,26,26,27,17,26,17,26,26,26,26,27,17,25,26,27,17,26,26,26,26,26,26,0,25,25,26,27,17,26,25,25,25,25,26,27,17,26,26,27,26,26,25,26,27,26,17,26,0,26,26,27,26,17,26,27,17,25,26,27,17,26,26,0,26,27,17,26,26,26,25,26,26,26,26,26,0,26,17,17,26,17,25,26,27,26,0,26,26,25,26,27,26,26,25,26,27,17,26,26,25,28,28,25,28,28,25,26,27,17,26,27,26,17,26,27,0,25,26,26,26,17,0,26,26,26,25,28,28,26,27,17,25,26,26,26,26,27,0,26,26,27,17,26,25,25,26,27,17,26,27,17,26,27,17,26,17,26,27,17,26,25,28,28,25,26,27,17,0,25,26,26,25,26,26,26,26,27,17,26,25,26,26,26,17,26,25,26,17,0,26,17,26,27,17,25,26,17,25,25,26,27,17,26,27,17,26,17,26,26,26,25,26,26,27,0,26,26,26,17,26,17,26,17,25,26,27,17,26,27,17,25,26,24,26,0,17,26,26,17,26,25,26,26,26,26,26,27,17,26,0,26,25,25,26,26,26,26,27,17,26,26,27,26,0,25,26,27,17,26,26,27,17,26,25,17,17,17,17,17,17,17,25,26,27,17,26,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,25,26,27,17,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,25,25,25,26,27,17,0,26,27,26,27,25,26,27,17,26,27,26,27,25,25,25,25,26,27,17,26,27,26,27,25,17,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,0,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,0,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,0,25,26,27,0,26,27,26,27,26,27,17,25,28,28,25,25,26,27,17,25,26,27,0,25,25,26,27,17,25,26,27,17,0,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,0,26,27,17,0,26,27,26,27,17,25,25,25,28,28,26,27,17,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,17,26,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,17,26,17,0,26,27,26,26,27,17,26,27,17,26,27,0,26,27,17,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,25,25,25,28,28,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,26,27,26,27,25,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,28,28,26,27,17,26,27,0,26,27,17,25,25,26,27,26,27,0,25,28,28,17,26,27,17,26,27,17,0,26,27,26,27,26,27,25,25,26,27,26,27,26,27,17,25,28,28,25,26,27,17,25,28,28,26,27,17,25,26,27,26,27,25,25,25,17,26,27,17,25,26,27,17,26,27,25,28,28,25,26,27,17,26,27,26,25,25,17,25,26,27,17,25,26,27,26,27,25,25,26,27,25,17,25,26,27,17,26,27,17,25,26,27,17,25,25,25,25,25,26,27,17,0,25,25,26,27,26,27,17,25,26,27,0,25,25,26,27,17,17,26,27,17,25,26,27,26,27,25,25,26,27,17,25,26,27,0,26,27,25,17,26,27,17,0,26,27,0,26,27,25,25,26,27,25,25,25,25,26,27,26,27,17,26,27,25,26,27,17,25,26,27,17,25,26,27,17,26,27,25,25,28,28,25,26,27,17,26,27,25,25,26,27,25,26,27,17,26,27,17,26,27,26,27,17,25,25,25,26,27,17,0,25,26,27,26,27,25,17,26,27,17,25,26,27,17,17,17,26,27,17,25,25,25,25,26,27,17,25,25,26,27,17,25,26,27,25,26,27,25,28,28,25,26,27,17,25,26,27,25,25,26,27,26,27,25,17,17,26,27,26,27,0,26,27,25,25,26,27,17,26,27,25,26,27,17,25,26,27,25,25,25,25,25,26,27,17,0,26,27,25,26,27,26,27,25,26,27,25,26,27,25,26,27,26,27,0,26,27,26,27,25,25,26,27,25,26,27,0,26,27,26,27,25,25,28,28,26,27,17,26,27,25,26,27,28,25,26,27,17,25,28,28,25,26,27,17,26,27,17,26,27,25,25,26,27,25,26,27,26,27,26,26,27,25,25,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,25,26,27,25,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,25,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,25,26,27,17,25,26,27,0,26,27,25,26,27,0,25,25,26,27,17,26,27,26,27,26,27,25,25,26,27,25,26,27,25,26,27,26,27,28,25,28,25,26,27,17,26,27,26,27,26,25,26,27,17,26,27,0,26,27,26,26,27,0,26,27,25,25,25,25,25,26,27,17,26,27,17,25,28,28,25,26,27,17,26,27,26,27,26,27,25,26,27,25,25,28,28,26,27,17,25,26,27,17,26,27,17,26,27,26,27,17,26,27,28,26,27,17,0,25,25,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,25,25,26,27,17,25,25,25,28,28,26,27,17,25,25,25,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,25,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,17,25,26,27,17,0,26,27,26,27,25,28,28,25,25,25,25,25,26,27,17,23,26,27,25,26,27,17,17,26,27,17,25,25,25,25,26,27,17,0,26,27,26,27,26,27,26,27,17,25,26,27,17,25,26,27,25,26,27,17,0,26,27,26,27,0,25,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,17,25,26,27,17,25,26,27,17,26,27,26,27,17,17,26,27,17,26,17,26,27,17,26,27,0,26,27,17,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,17,17,17,26,27,25,25,25,26,27,24,26,27,17,26,27,25,25,25,28,28,26,27,17,26,27,25,25,26,27,17,26,27,0,25,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,27,0,26,27,25,26,27,26,27,26,26,26,26,26,27,17,0,26,26,26,26,27,17,26,0,26,26,0,26,25,26,27,17,26,26,27,17,26,27,17,26,26,26,27,17,26,27,17,26,27,26,25,26,27,25,26,17,26,26,27,17,26,26,27,17,26,26,26,0,26,26,26,26,27,26,26,26,17,26,25,26,27,17,26,26,27,17,17,26,26,26,26,26,26,26,26,27,26,25,26,27,17,26,26,27,26,26,26,26,26,27,26,28,25,26,27,17,26,26,25,26,27,17,25,26,25,26,27,17,0,26,25,26,26,17,17,26,26,26,26,26,26,25,26,27,17,25,26,26,26,25,25,26,27,17,26,26,0,26,27,25,26,26,25,26,27,17,0,26,25,25,26,27,17,26,27,26,26,0,26,26,26,26,26,26,0,26,26,25,26,27,17,0,28,26,27,17,26,26,26,26,27,26,27,17,25,26,26,17,26,27,26,26,0,17,17,26,17,0,26,27,25,28,28,25,25,25,26,27,17,25,26,17,0,26,26,26,27,26,26,26,26,26,26,25,26,26,26,26,27,17,0,26,0,26,17,26,26,26,27,26,26,26,26,25,26,17,25,26,0,26,0,26,27,17,25,25,25,28,28,26,27,17,26,26,27,26,27,26,17,26,26,0,26,25,26,17,0,26,26,26,26,17,26,26,26,26,26,26,27,17,25,26,27,26,26,25,26,25,26,17,26,17,26,27,26,26,26,26,26,26,25,26,27,17,26,26,27,26,0,26,26,26,27,17,26,27,0,26,17,26,26,27,26,26,26,26,27,17,0,26,17,26,0,28,26,27,17,26,26,26,26,26,27,26,26,26,26,0,26,26,26,17,17,26,27,17,0,26,27,17,26,26,25,26,25,26,26,26,0,26,26,26,26,26,0,26,25,26,26,25,26,25,25,26,27,17,26,26,27,26,26,26,0,26,26,27,26,26,0,28,25,26,27,17,26,26,26,26,26,26,26,27,17,26,0,26,26,27,26,26,26,26,26,0,26,17,17,17,17,26,27,26,0,26,27,17,26,25,25,25,26,27,24,26,26,0,26,26,26,26,26,26,17,26,26,17,26,26,26,26,26,26,26,26,17,26,26,27,17,0,25,28,28,26,27,17,26,26,26,17,26,0,25,26,26,26,0,26,27,17,26,27,26,26,26,26,26,27,17,25,25,25,25,26,27,17,0,26,27,25,26,27,26,26,26,26,26,26,27,17,26,26,26,25,26,27,25,26,26,26,26,26,26,27,17,26,26,26,26,26,26,25,26,26,26,27,26,26,26,0,26,26,26,27,17,26,26,26,26,26,26,0,26,27,17,26,26,26,26,26,26,26,27,26,27,26,0,26,26,26,27,17,26,0,26,26,26,26,26,17,26,0,26,27,17,25,26,26,26,25,25,25,28,28,26,27,17,26,27,0,26,26,27,17,26,0,26,26,26,26,26,26,26,27,26,26,26,26,27,26,26,26,26,27,26,26,26,26,26,0,26,0,26,26,26,26,26,26,0,26,26,27,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,25,26,26,26,26,25,26,26,26,26,26,26,26,26,0,26,26,26,17,0,26,26,25,26,26,27,17,25,26,26,27,26,26,26,26,26,26,0,26,26,26,0,26,0,26,27,25,26,27,17,26,26,26,26,26,26,26,26,25,25,25,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,27,0,26,26,26,26,0,26,26,26,26,25,25,26,26,26,26,27,17,0,26,25,25,26,27,17,0,17,17,17,17,17,17,17,26,0,26,26,0,26,26,26,26,26,26,26,17,26,25,25,25,26,27,17,26,26,26,26,0,26,26,17,26,26,26,27,26,26,26,17,26,17,26,27,17,26,26,25,25,25,28,28,26,27,17,26,0,26,27,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,26,26,26,26,17,17,26,27,26,26,26,26,27,26,26,26,0,26,0,26,26,26,0,26,26,26,26,26,0,26,0,26,26,26,26,0,26,27,17,26,0,26,26,26,17,17,17,17,17,17,17,25,26,26,27,17,26,26,27,0,26,0,26,26,26,27,17,0,26,26,26,26,27,26,26,26,0,26,25,26,26,27,17,28,26,27,17,26,28,28,26,27,17,0,26,26,26,26,26,26,26,26,26,26,26,26,26,17,26,26,27,17,26,27,26,26,26,26,26,26,26,26,0,26,28,26,17,26,26,26,26,26,28,25,26,17,26,27,26,27,17,26,26,26,26,26,26,27,17,17,26,26,26,27,26,26,27,26,26,26,26,26,26,26,26,0,26,26,27,17,0,26,26,26,26,26,0,26,26,26,26,27,17,0,26,17,26,0,26,26,26,26,27,26,26,26,26,26,28,26,27,17,26,26,26,0,26,26,26,26,26,26,26,27,17,0,26,27,17,0,25,25,25,28,28,26,27,17,26,27,26,26,26,26,27,28,26,27,17,26,17,26,26,26,27,17,26,26,17,26,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,27,0,26,0,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,0,26,26,26,27,17,26,26,26,0,26,26,25,26,0,26,0,26,27,17,26,17,17,17,17,17,17,17,26,26,26,26,25,25,25,26,27,17,0,26,26,26,26,26,27,25,26,26,26,0,26,0,26,27,26,26,27,26,26,26,26,0,25,26,26,26,28,26,27,17,26,26,26,27,0,26,26,27,26,27,26,26,28,26,27,17,25,26,25,25,25,25,25,25,26,27,17,0,26,27,17,26,26,26,26,26,0,26,26,26,26,26,0,26,26,26,26,27,17,26,26,27,0,26,26,26,0,26,26,26,26,26,26,26,27,17,25,26,27,0,26,27,25,25,25,28,28,26,27,17,26,27,26,27,0,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,17,26,27,17,26,27,26,27,17,26,27,17,0,26,26,26,27,26,27,17,26,17,26,27,17,26,27,0,26,17,26,27,26,27,0,26,0,25,17,26,27,17,0,26,27,26,27,26,27,17,26,26,27,25,17,25,28,28,26,27,17,28,26,27,17,26,26,27,0,26,27,17,26,27,17,25,26,27,17,0,25,26,27,26,27,26,26,27,26,27,17,25,26,27,17,26,27,25,26,27,25,26,26,27,26,27,17,26,27,17,26,27,26,26,27,26,27,28,26,27,17,17,25,26,27,17,26,27,26,27,26,27,26,27,26,0,26,27,26,27,25,25,25,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,25,26,25,17,26,27,17,26,0,26,27,25,26,27,0,26,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,26,27,17,0,26,27,26,27,26,27,26,25,26,27,25,25,25,25,17,26,27,17,25,26,27,17,25,25,26,17,26,27,17,26,27,0,26,27,17,26,27,17,17,17,26,27,25,26,27,26,27,28,26,27,17,0,26,0,17,26,27,17,26,27,26,27,26,27,26,27,26,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,26,27,0,26,27,17,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,17,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,0,26,27,26,27,17,26,27,26,26,27,17,0,17,26,27,17,26,27,26,26,0,26,27,17,17,17,17,17,17,17,17,26,17,26,27,17,26,27,17,0,26,17,26,27,26,27,0,26,27,17,0,17,26,27,17,26,27,26,27,26,27,26,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,25,28,28,17,26,27,17,26,26,26,27,26,27,26,27,17,17,26,27,17,25,26,27,17,26,27,26,27,17,0,26,27,26,27,17,26,27,17,26,27,17,25,26,27,17,25,25,26,27,26,27,26,27,28,17,26,27,17,26,27,26,27,26,27,17,25,25,26,27,17,25,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,25,25,25,26,27,17,26,27,26,27,0,26,27,25,25,26,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,26,27,17,0,26,0,26,26,25,26,27,26,26,26,17,26,27,26,26,27,17,26,26,26,26,27,26,26,24,26,27,17,26,26,26,26,26,27,26,0,17,26,26,26,27,26,26,27,17,26,26,27,26,26,26,26,27,17,0,26,26,27,26,17,26,25,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,26,27,26,26,26,26,27,26,26,26,26,26,26,26,26,27,17,26,26,26,17,26,27,26,26,26,0,26,26,26,27,26,26,26,26,26,26,27,26,26,0,26,26,27,17,26,27,26,26,26,27,25,26,24,0,26,0,26,26,26,26,0,26,26,26,27,26,27,26,27,26,26,27,17,26,26,27,0,26,27,26,27,26,26,27,26,27,26,26,27,26,26,27,26,27,26,27,26,26,0,26,26,27,26,0,26,26,0,26,27,25,26,17,26,0,26,0,26,27,17,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,26,27,0,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,26,27,17,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,26,26,0,26,27,26,26,27,26,26,27,26,26,26,26,27,26,26,0,26,27,17,26,26,27,26,26,27,26,26,25,26,27,17,24,26,0,26,26,27,26,27,26,26,26,26,27,26,27,17,26,27,26,27,17,0,26,25,26,26,0,28,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,27,26,27,17,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,27,0,26,0,26,26,26,25,25,26,26,0,26,26,26,26,27,17,26,26,17,26,0,26,26,26,26,0,26,17,26,26,27,17,26,26,26,0,26,26,26,25,25,26,27,17,25,25,26,17,25,26,17,0,26,26,25,28,28,26,27,17,26,27,17,26,26,27,0,25,28,28,26,27,17,26,26,26,26,26,27,26,26,0,26,26,26,17,26,27,17,26,27,26,26,26,26,27,0,17,26,27,17,26,0,26,27,17,26,26,27,26,17,26,27,17,26,26,27,26,27,26,26,17,26,27,17,0,26,26,27,26,26,26,17,26,27,17,0,26,27,17,26,26,26,27,26,25,28,28,17,26,27,17,26,27,0,26,27,17,26,26,27,26,0,17,26,27,17,26,26,26,26,26,17,26,27,17,0,26,17,26,26,26,25,26,17,26,27,17,26,26,17,26,27,17,26,26,27,17,26,27,17,26,26,26,27,26,27,26,17,26,27,17,26,0,26,26,0,26,26,17,26,27,17,0,26,26,27,17,26,26,26,27,17,17,26,27,17,25,28,28,26,27,17,25,28,28,26,27,17,26,26,26,17,26,27,17,26,26,0,26,26,26,0,17,26,27,17,26,26,27,25,25,25,26,27,17,0,26,26,25,26,0,26,28,26,27,17,26,26,26,26,27,26,26,26,27,26,26,17,26,27,17,26,26,26,27,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,27,26,17,26,27,17,26,26,26,17,26,26,27,26,26,17,26,26,26,27,17,26,26,26,26,17,26,26,26,26,26,26,26,26,27,17,26,26,27,26,26,26,26,0,26,27,26,26,17,26,26,26,26,26,27,26,26,26,0,26,28,26,27,17,0,26,27,17,26,27,17,26,26,0,26,0,26,27,17,26,26,26,26,26,26,26,26,27,26,26,26,26,27,26,26,26,26,26,27,26,26,26,26,26,27,26,26,26,27,26,26,0,26,26,27,17,26,26,27,17,25,26,27,17,23,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,25,28,28,25,25,26,27,17,0,25,26,27,17,25,25,26,27,17,26,27,25,25,25,26,17,26,27,26,27,26,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,25,26,27,25,25,25,25,26,27,17,26,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,26,27,26,27,26,27,17,26,27,26,27,26,27,25,28,28,25,28,28,26,27,26,27,17,26,27,0,26,27,26,26,27,26,25,26,27,23,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,26,27,28,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,26,27,17,26,27,17,0,26,26,27,26,27,26,17,26,27,17,26,27,0,25,26,27,17,25,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,26,27,17,23,26,27,26,27,26,26,27,26,27,0,26,27,26,27,0,17,26,27,17,26,26,27,26,26,26,27,17,26,27,17,26,26,26,26,26,17,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,0,26,0,26,27,28,26,27,17,26,27,26,26,27,0,28,26,27,17,0,26,27,26,27,26,27,26,27,26,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,26,27,26,0,26,26,26,26,26,26,27,25,26,17,24,26,26,26,26,0,26,26,0,26,27,17,26,26,17,26,27,17,0,26,26,26,26,26,17,26,27,17,26,27,24,26,26,26,27,26,17,26,27,17,26,26,27,17,26,26,26,17,26,27,17,26,0,26,25,26,26,26,26,0,26,26,26,26,26,26,26,27,26,27,26,26,26,26,27,26,17,0,26,26,26,27,17,26,26,27,26,26,26,26,26,26,17,26,26,26,26,0,26,26,0,26,26,27,26,0,26,26,0,26,26,26,27,26,17,26,17,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,0,25,26,27,26,27,25,28,28,26,27,17,0,25,28,28,26,27,17,26,27,0,26,27,26,27,28,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,25,25,26,27,17,26,27,17,0,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,26,27,26,27,26,26,17,26,26,27,26,26,26,26,0,26,25,25,26,27,17,26,26,26,26,0,26,27,26,27,26,0,26,27,17,0,26,27,26,27,26,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,28,28,28,28,28,26,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,17,0,26,27,0,26,27,17,0,26,26,27,26,27,0,26,27,26,27,17,26,27,0,26,26,27,0,26,26,27,17,26,27,17,26,27,17,26,27,17,26,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,25,26,27,17,26,26,27,26,27,26,27,17,26,27,17,26,27,17,17,26,27,17,26,27,26,26,27,26,27,17,26,27,17,26,27,17,26,27,26,26,27,0,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,17,26,26,27,0,26,27,17,26,27,26,27,17,26,27,17,26,27,17,28,26,27,17,0,17,26,27,17,26,27,17,26,0,26,27,0,26,27,26,27,17,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,0,17,26,27,17,26,27,17,26,26,27,17,26,26,25,28,28,17,26,27,17,26,26,27,26,0,26,27,17,26,26,26,26,17,25,28,28,26,27,17,25,26,26,27,17,26,0,26,26,17,26,27,17,26,26,26,27,17,26,26,0,17,26,27,17,0,26,27,17,26,26,26,27,17,26,27,17,26,27,17,28,26,27,17,0,26,26,27,26,27,26,27,17,0,17,26,27,17,26,26,27,26,26,26,26,27,17,26,26,26,0,26,26,26,26,27,17,26,26,26,26,27,26,26,26,27,17,26,17,26,26,27,26,26,26,25,26,27,17,26,26,27,26,27,17,0,26,17,17,17,17,17,17,17,26,25,26,26,27,17,26,0,26,26,26,26,0,26,26,27,17,0,26,0,26,0,26,26,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,27,26,26,27,26,26,26,26,27,17,26,27,26,26,26,0,26,27,26,27,26,27,17,26,27,26,27,17,26,26,0,26,26,26,27,17,0,26,27,26,27,0,26,26,26,27,17,26,26,27,17,26,26,27,26,26,27,26,26,26,27,17,26,26,27,25,25,25,28,28,26,27,17,26,26,26,27,26,27,17,26,26,26,17,26,27,26,26,0,26,27,17,26,26,27,0,26,26,26,0,26,26,27,17,26,26,26,27,17,28,26,27,17,26,26,27,26,27,17,26,26,0,26,26,26,26,0,26,27,17,26,25,26,26,26,26,26,26,27,17,26,27,26,0,26,26,26,26,26,27,17,26,26,26,26,27,26,26,26,27,17,28,26,27,17,26,27,17,0,26,27,26,26,27,17,26,26,27,17,28,25,26,17,0,26,27,26,26,26,27,26,27,17,28,25,26,27,17,17,17,17,17,17,17,17,25,26,26,27,26,26,0,26,26,25,26,27,17,25,26,26,26,27,17,26,0,26,26,25,26,27,17,25,26,26,26,26,26,27,26,25,26,27,17,25,26,26,27,26,0,26,26,0,26,25,26,27,17,25,26,26,26,26,26,27,17,26,27,25,25,26,27,17,0,25,26,27,26,27,0,26,28,26,27,17,0,26,27,26,27,25,26,27,17,25,26,27,17,26,27,17,26,26,26,26,25,26,27,17,25,26,26,27,26,27,17,26,26,26,17,0,25,26,27,17,25,26,17,26,0,25,26,27,17,26,27,25,26,27,17,26,28,25,26,27,17,25,26,26,26,27,26,27,26,27,0,25,26,27,17,25,26,27,17,25,26,26,26,27,26,27,17,26,26,25,26,27,17,25,26,26,26,0,26,0,26,26,25,26,27,17,25,26,27,26,26,26,26,27,17,26,25,26,27,17,25,26,26,27,17,26,27,26,26,26,17,25,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,17,0,26,26,25,26,27,17,0,25,26,26,27,17,26,26,26,26,25,26,27,17,25,26,0,26,17,26,17,26,27,26,0,26,27,17,25,26,27,17,25,26,26,26,17,0,26,26,26,25,26,27,17,28,25,26,27,17,26,27,26,25,26,27,17,26,25,17,17,17,17,17,17,17,25,25,17,17,17,17,17,17,17,25,26,27,17,26,27,17,0,26,17,25,28,28,26,27,17,26,0,26,26,26,26,27,17,26,27,17,26,26,26,26,27,26,26,27,17,26,0,26,27,17,26,0,26,26,26,27,26,27,17,26,26,27,17,26,27,17,26,26,26,26,27,17,26,26,26,27,17,26,26,26,26,27,17,26,26,0,26,26,27,25,26,27,17,26,17,26,27,17,0,26,26,26,26,17,26,26,25,25,25,26,27,17,26,27,25,25,26,0,26,26,26,26,26,27,17,26,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,25,25,28,28,26,27,17,26,27,26,27,25,25,26,27,17,26,27,0,26,27,17,26,27,26,25,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,17,25,26,27,17,17,17,17,17,17,17,26,27,26,27,17,25,26,27,17,25,26,27,17,0,26,27,26,27,25,17,17,17,17,17,17,17,25,26,27,17,26,27,0,26,27,17,25,26,27,25,25,17,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,17,25,26,27,25,26,27,17,0,26,27,26,27,17,26,27,17,26,27,26,27,17,25,26,27,26,27,0,26,27,26,27,17,26,27,0,26,27,26,27,17,0,17,25,26,27,17,26,27,28,28,26,27,17,26,27,17,26,27,0,26,27,26,27,17,25,26,27,26,27,17,25,26,27,0,26,27,17,25,26,27,17,26,27,17,25,28,28,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,25,25,28,28,25,26,27,17,26,27,26,27,26,27,17,0,25,26,27,0,26,27,26,27,17,25,25,26,27,17,0,26,27,26,27,26,27,17,25,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,25,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,17,25,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,25,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,17,25,26,27,26,27,17,26,27,0,26,27,17,26,27,0,26,27,17,26,27,17,25,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,0,26,27,17,26,27,26,27,17,17,26,27,17,0,26,27,17,25,26,27,0,26,27,0,26,27,25,26,27,17,17,17,17,17,17,17,17,26,27,17,26,27,26,27,17,25,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,25,26,0,26,27,26,17,26,27,26,27,17,26,27,17,26,27,17,25,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,0,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,17,25,26,26,26,27,17,26,26,26,26,27,17,25,26,27,26,26,26,28,26,27,17,26,26,27,17,25,26,26,26,27,26,26,0,26,27,26,27,17,28,25,26,27,17,26,26,26,26,27,26,26,27,17,0,25,26,27,26,26,27,26,0,26,0,26,26,27,17,25,26,27,17,26,26,27,17,17,26,17,26,27,26,26,27,17,25,26,26,26,26,0,26,26,26,27,17,25,26,0,28,26,27,17,26,27,26,0,26,27,26,26,27,17,25,26,27,0,26,26,26,27,26,26,26,27,17,25,26,0,26,26,17,26,26,26,27,17,0,26,27,17,0,25,26,0,26,26,26,26,26,26,27,17,25,26,27,17,0,26,26,26,26,26,26,27,17,25,26,26,26,26,27,17,26,26,26,27,17,25,26,26,27,26,0,26,25,26,17,0,26,26,27,17,25,26,25,26,27,26,27,0,26,26,26,0,26,27,17,25,26,17,26,26,26,26,26,0,26,27,17,25,26,26,26,17,26,26,27,26,27,17,28,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,25,28,28,26,27,17,0,25,26,27,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,17,25,17,17,17,17,17,17,17,28,25,26,27,17,0,17,25,26,27,17,26,27,17,26,27,17,26,27,26,27,25,25,25,26,27,17,26,27,17,25,26,27,26,27,26,27,25,28,28,26,27,17,26,26,27,17,26,27,26,27,17,0,26,26,27,25,26,27,17,26,27,17,26,27,17,26,27,25,26,27,26,27,0,26,27,26,27,26,27,28,25,23,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,28,25,26,27,17,0,26,27,17,26,27,17,0,26,27,26,27,26,27,25,26,27,26,27,26,27,17,25,28,28,26,27,17,0,26,27,17,26,26,27,0,25,26,27,26,27,17,25,28,28,26,27,17,26,27,26,27,17,0,26,27,17,26,27,26,27,28,26,27,17,25,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,17,0,26,27,0,26,27,26,27,17,25,26,27,17,0,26,27,17,26,27,26,26,27,26,27,26,26,27,17,26,27,17,26,27,0,26,27,26,26,27,0,26,27,25,26,27,26,27,17,25,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,25,17,26,27,17,26,27,17,26,27,0,26,27,26,27,17,26,26,27,26,27,17,26,28,26,27,17,0,26,25,28,28,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,17,26,27,26,27,26,27,17,26,27,25,28,25,25,25,25,25,25,28,28,26,27,17,17,25,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,25,26,27,17,26,27,26,27,17,26,27,26,27,26,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,27,17,26,27,26,26,27,26,27,0,26,27,17,0,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,26,27,17,26,27,17,26,27,0,26,27,17,17,26,27,26,27,17,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,25,26,27,17,26,26,27,17,26,27,17,0,26,27,26,27,17,26,26,27,17,25,25,25,25,25,26,27,0,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,17,26,27,17,25,28,28,25,26,27,17,26,27,17,0,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,0,26,27,0,26,27,17,26,27,17,26,26,27,17,26,27,25,28,28,26,27,17,26,27,25,28,28,17,25,26,27,17,28,26,27,17,26,27,25,28,28,26,27,17,25,26,27,17,17,26,27,17,17,26,27,17,26,0,26,27,25,28,28,26,27,17,26,27,25,26,27,17,0,26,27,17,26,27,26,27,0,25,17,26,27,17,25,26,27,17,25,25,26,27,17,26,27,0,26,27,17,26,27,17,25,17,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,25,28,28,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,25,17,26,27,17,26,27,17,26,27,17,25,26,27,25,25,25,25,26,27,25,26,27,17,25,17,26,27,17,26,27,25,26,27,17,26,27,17,25,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,25,25,26,27,25,25,25,26,27,17,28,26,27,17,26,27,17,17,26,27,17,26,27,0,26,27,26,27,17,0,25,26,27,17,26,27,17,26,27,17,0,26,27,26,27,17,26,27,17,0,26,27,25,26,27,24,0,25,28,28,17,26,27,17,26,27,25,25,26,27,17,25,26,27,26,27,25,28,28,26,27,17,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,26,27,0,26,27,17,26,27,25,25,25,26,27,0,17,25,26,27,17,26,27,17,26,27,25,17,26,27,17,26,27,0,25,28,28,25,26,27,17,26,27,26,27,26,27,25,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,25,17,26,27,17,28,25,26,27,17,0,26,27,26,27,26,27,17,25,26,27,17,17,26,27,17,0,26,27,25,26,27,17,26,27,17,26,27,0,25,26,27,17,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,26,27,17,26,27,26,27,17,26,27,0,25,17,26,27,17,26,27,26,27,17,17,25,26,27,28,26,27,17,26,27,25,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,28,28,26,27,17,25,28,28,25,25,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,26,27,17,26,27,17,25,26,27,17,25,25,25,25,26,27,17,25,26,27,26,27,26,27,0,25,17,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,28,28,28,28,26,27,17,25,26,27,0,25,25,26,27,26,26,25,26,17,26,27,17,25,26,27,0,26,27,26,0,26,17,26,0,26,26,25,26,27,17,26,27,17,25,25,26,27,17,0,26,0,17,17,26,27,26,0,26,26,26,26,25,26,27,26,26,26,0,26,27,26,26,26,27,26,26,27,26,0,26,17,17,26,27,17,26,26,26,26,26,17,26,27,17,26,26,26,26,27,26,17,26,27,17,25,25,26,27,17,25,26,27,17,25,26,27,25,26,26,26,27,17,26,28,28,26,17,25,25,25,25,25,25,17,26,27,17,26,27,26,26,25,25,26,26,25,17,26,27,17,25,25,25,26,27,24,26,26,26,27,26,25,17,25,26,27,17,26,27,17,0,26,27,25,25,26,27,17,17,17,26,25,26,17,25,25,17,26,27,17,26,27,28,26,27,17,17,26,27,17,26,27,26,25,25,25,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,25,17,26,27,17,25,26,27,26,27,26,27,26,26,27,17,25,17,26,27,17,25,28,28,26,27,17,26,27,0,25,26,27,17,26,27,26,27,25,25,25,17,26,27,17,26,27,0,25,26,27,25,26,27,17,26,27,0,25,26,27,25,17,26,27,17,25,26,27,17,26,27,26,27,25,25,25,26,27,17,26,27,25,25,17,26,27,17,26,27,26,27,26,27,17,0,25,26,27,17,25,26,27,17,25,17,26,27,17,25,26,27,26,27,25,26,27,25,25,25,25,25,26,27,17,26,27,17,25,17,26,27,17,26,25,25,25,25,26,27,17,0,25,26,27,17,25,28,28,26,27,17,26,27,0,26,17,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,25,25,26,27,17,26,27,17,26,27,26,27,0,26,27,25,26,27,17,26,27,25,26,27,26,26,27,25,26,27,26,27,26,27,17,25,28,28,26,27,17,0,26,27,26,27,17,26,27,25,26,27,17,26,27,25,17,26,27,17,0,26,27,26,26,0,26,26,17,26,27,17,26,26,27,26,25,26,0,26,17,26,27,17,25,26,27,17,26,25,25,25,26,27,17,0,26,27,26,0,17,26,27,17,26,0,26,27,0,26,26,26,0,17,26,17,26,27,17,26,17,25,26,27,17,25,25,26,27,17,26,26,25,25,26,0,26,25,25,25,28,25,25,25,25,28,28,25,26,27,17,25,25,25,25,26,17,26,0,25,25,26,25,28,28,26,27,17,26,27,26,25,28,28,25,28,28,28,17,26,27,17,26,27,17,26,27,17,26,26,26,26,26,27,17,26,26,0,25,25,25,25,25,26,27,17,26,27,25,25,26,27,17,25,26,17,25,25,25,17,26,27,17,26,26,25,26,25,26,27,17,26,27,17,26,27,17,26,17,26,27,17,28,26,27,17,26,26,27,25,17,26,27,17,26,0,26,27,26,26,27,17,26,27,17,26,25,26,26,17,17,17,26,27,17,26,27,0,17,26,26,26,26,17,26,27,17,26,26,26,26,26,26,26,25,17,25,26,17,26,17,26,25,28,28,25,26,27,17,26,26,27,17,26,27,17,26,0,26,27,17,26,26,26,0,25,25,25,25,25,25,25,25,25,26,27,17,26,17,26,26,0,26,25,26,26,25,26,0,25,26,25,26,27,17,26,26,26,27,26,26,27,26,26,26,26,17,26,27,17,25,26,27,26,17,25,26,25,26,27,0,26,26,17,26,26,25,26,27,0,26,17,0,26,26,25,26,26,26,26,26,0,26,27,17,25,25,25,26,27,17,23,17,26,27,17,0,25,26,26,27,26,27,17,26,26,27,26,0,26,0,26,0,26,0,26,27,17,26,0,26,26,26,17,0,26,26,26,26,27,17,26,26,28,26,27,17,26,26,26,26,25,26,17,26,25,25,25,25,26,26,0,26,17,26,26,26,26,27,17,26,27,17,26,26,26,26,25,28,28,26,27,17,26,27,26,17,0,25,25,26,27,17,0,26,26,27,26,17,17,26,25,26,27,17,26,26,17,25,25,25,28,25,26,27,17,0,26,27,17,26,26,17,26,27,17,26,0,25,25,26,25,17,26,17,25,26,27,26,28,25,26,17,26,26,26,26,25,26,26,0,25,26,26,27,26,17,17,17,17,17,17,17,17,25,26,26,27,26,26,27,17,25,26,27,17,26,17,26,26,26,26,17,26,25,26,26,27,25,26,25,17,25,26,27,17,26,17,26,17,26,27,17,25,26,17,26,26,27,26,26,25,25,25,26,17,26,25,26,25,26,25,17,26,17,26,0,26,27,17,26,25,26,27,17,25,26,27,26,26,26,17,26,27,17,26,0,26,0,25,25,26,27,26,26,26,25,26,25,26,27,26,25,28,28,26,17,25,26,17,26,27,17,26,27,17,26,26,26,25,26,26,26,26,25,28,28,25,26,27,17,26,17,26,17,25,26,26,0,26,27,17,26,28,26,27,17,26,0,26,25,26,26,26,28,28,26,27,17,0,26,17,0,26,26,25,26,27,17,26,17,26,26,27,17,26,27,26,26,25,26,26,0,26,26,0,26,26,26,27,0,25,26,27,26,26,0,26,27,26,26,0,26,25,26,26,26,25,28,28,25,25,25,25,25,26,27,17,26,26,25,17,26,27,17,25,26,26,26,27,17,26,0,25,28,28,26,27,17,26,27,17,25,26,27,17,25,26,26,26,26,26,25,25,25,28,28,26,27,17,26,25,28,28,25,26,27,17,26,26,0,26,27,26,26,26,25,26,27,17,26,27,26,17,17,17,17,17,17,17,26,0,26,0,25,26,26,25,26,25,26,17,26,26,26,0,26,26,25,26,26,26,26,0,25,25,25,25,25,26,27,17,26,0,26,27,17,25,26,27,26,26,27,17,25,26,26,25,25,25,26,27,17,26,25,26,26,26,27,17,25,25,26,27,26,26,27,17,25,28,28,25,26,27,17,25,26,26,25,26,27,17,26,26,27,26,17,26,27,17,25,26,26,0,26,27,17,0,25,26,26,26,27,17,0,26,25,26,0,26,26,27,17,26,26,27,0,26,0,26,25,26,26,0,26,27,17,25,25,28,28,25,26,27,17,0,26,26,26,25,26,26,0,26,27,17,26,26,26,26,27,17,0,25,26,26,26,27,17,26,27,0,17,26,17,25,26,27,17,26,17,25,26,25,25,26,27,17,26,27,17,25,25,26,27,17,17,26,26,27,17,0,26,25,26,27,26,25,26,27,17,0,26,17,17,17,17,17,17,17,26,26,0,26,25,26,26,25,26,27,17,26,25,25,17,17,17,17,17,17,17,25,26,27,17,26,26,0,25,26,27,26,25,26,27,17,0,25,26,26,26,26,25,26,27,17,0,25,26,17,25,26,27,17,26,26,26,26,25,26,26,25,26,27,17,26,27,17,26,27,17,26,26,27,17,25,26,25,26,27,17,25,25,26,27,17,26,27,25,25,25,25,26,27,17,26,0,26,25,26,26,25,26,27,17,25,26,26,26,25,17,17,17,17,17,17,17,25,26,27,17,26,27,17,26,25,26,25,25,25,28,28,26,27,17,26,0,26,26,28,26,27,17,26,25,26,26,26,0,26,25,26,26,0,26,25,26,0,25,26,26,26,27,17,26,26,26,25,26,26,0,26,27,26,26,26,26,25,26,27,25,26,17,26,27,17,26,0,26,26,26,25,17,26,17,26,26,27,17,26,26,26,26,0,25,26,26,0,26,26,26,26,26,25,26,26,0,25,26,27,17,26,26,26,26,25,26,26,26,0,26,26,26,26,25,26,26,26,26,26,0,26,26,25,26,27,17,26,27,26,26,26,26,26,27,17,25,26,25,26,27,26,26,26,0,26,27,26,27,25,26,26,27,17,0,26,27,26,26,26,26,0,25,26,27,17,26,26,27,17,26,26,26,25,26,25,26,26,26,26,26,0,26,27,17,26,25,25,26,27,17,26,25,25,28,28,25,25,25,25,26,27,17,26,17,26,26,26,27,17,25,26,25,26,26,26,26,26,0,26,25,26,26,26,25,26,0,26,26,27,26,25,26,26,26,26,0,26,17,26,17,26,25,26,26,26,26,27,26,17,26,26,27,17,0,25,26,26,27,26,26,0,26,25,26,26,25,26,26,0,26,0,26,26,27,17,26,17,26,27,17,25,28,26,27,17,0,17,17,26,17,0,26,27,26,17,26,27,25,25,25,28,28,26,27,17,26,27,25,26,26,26,25,28,28,26,27,17,26,26,26,25,17,26,26,26,26,26,26,26,25,26,25,26,27,17,26,26,27,17,26,26,26,25,26,26,0,26,26,26,26,26,27,17,25,26,26,26,27,26,26,26,26,25,26,0,26,0,26,26,26,0,26,26,27,17,25,17,26,17,26,26,0,26,25,25,25,28,28,26,27,17,26,27,26,25,26,25,26,26,27,17,0,26,26,26,26,0,25,26,26,26,26,17,26,17,0,26,26,0,25,26,26,26,26,27,17,26,26,26,25,26,26,26,17,26,26,26,26,25,26,26,26,0,26,26,26,0,26,25,26,26,27,17,26,0,26,26,0,26,26,27,0,25,26,25,26,0,26,26,26,27,26,26,25,26,26,17,26,26,26,26,26,25,26,26,26,26,26,0,26,26,25,26,26,26,26,26,26,26,25,25,26,27,26,0,26,0,26,27,17,26,26,26,25,26,26,26,0,26,26,27,26,27,17,17,26,17,25,26,0,26,0,26,26,26,26,27,17,26,25,26,26,27,26,17,26,26,26,26,25,26,26,26,26,26,28,26,27,17,26,25,26,26,26,27,26,26,26,27,17,26,27,17,25,26,25,28,28,26,27,17,25,26,26,26,26,26,25,26,26,26,26,27,26,25,26,27,25,26,27,17,25,26,0,26,26,26,26,26,0,26,25,26,26,27,17,26,26,25,26,27,17,26,26,25,26,26,26,27,26,27,0,26,26,26,25,17,17,17,17,17,17,17,25,17,26,27,17,25,26,25,28,28,26,27,17,26,26,26,27,17,26,26,0,26,26,26,26,27,26,27,17,25,28,28,25,26,27,17,25,26,27,17,26,26,0,26,26,26,26,27,26,26,26,27,26,26,25,26,27,17,26,26,26,26,26,26,27,17,26,26,0,26,26,0,26,26,27,17,26,26,26,26,26,17,26,17,26,26,26,26,27,17,25,25,26,27,26,27,26,27,26,0,26,26,27,0,26,26,17,26,26,26,26,17,26,26,27,26,26,26,26,26,26,27,26,26,27,26,26,17,26,26,27,26,26,26,27,17,26,26,26,17,0,26,26,25,26,27,26,17,26,26,0,26,26,0,26,0,26,26,26,17,26,26,0,26,26,17,26,26,26,26,17,26,26,26,26,17,26,26,27,17,26,27,17,0,26,17,26,26,26,26,27,17,17,17,26,17,26,0,26,26,17,26,26,26,26,17,26,26,27,26,27,17,26,17,26,27,17,25,26,27,17,26,26,17,25,26,26,26,26,17,26,26,26,26,17,25,28,28,26,27,17,26,26,26,26,0,26,26,26,17,26,26,27,17,26,17,26,17,25,25,25,25,26,27,17,24,26,17,26,17,26,17,26,26,26,17,26,0,26,25,25,25,25,25,25,25,25,25,26,27,17,0,26,17,26,17,25,28,28,26,27,17,26,17,26,17,28,26,27,17,26,17,17,26,26,26,26,26,26,17,26,25,26,27,17,17,26,27,26,26,0,26,26,26,26,27,17,0,26,26,26,27,0,26,25,26,27,17,26,27,17,26,26,26,26,27,0,26,26,26,17,26,26,27,17,26,25,28,28,26,27,17,26,26,26,26,26,0,26,27,0,26,26,27,26,0,26,27,17,25,26,17,25,26,27,17,26,26,26,27,17,26,0,26,27,26,25,28,25,26,27,17,26,25,26,25,28,28,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25,28,28,28,26,27,17,17,26,26,26,27,17,26,26,27,17,26,26,27,26,26,26,17,26,26,0,26,27,17,25,25,28,25,25,26,27,17,26,26,26,26,28,26,27,17,26,26,26,27,26,27,17,26,28,26,27,17,26,26,27,26,27,26,27,26,27,17,26,26,26,26,26,26,26,27,0,25,26,27,17,26,26,26,26,0,26,26,17,26,26,17,26,26,0,26,26,17,26,26,26,26,17,26,27,26,26,26,27,17,26,26,26,27,17,26,17,26,26,25,25,26,27,17,25,26,27,17,26,27,17,26,26,0,26,26,0,26,26,26,17,26,26,25,26,26,26,26,27,26,26,27,26,26,0,26,26,17,26,26,26,0,25,28,28,26,27,17,26,26,27,17,26,17,26,17,26,17,26,17,26,17,0,26,17,26,0,26,17,0,26,17,26,17,26,17,0,26,27,17,26,17,26,27,17,25,26,27,26,26,17,26,17,26,26,27,17,25,26,26,17,26,26,26,26,26,26,26,27,26,17,26,25,26,26,0,26,27,17,0,26,17,26,27,17,26,27,17,26,17,26,17,0,25,25,25,26,17,24,26,26,27,26,26,27,26,27,26,26,26,26,26,26,0,26,26,17,26,26,26,26,0,26,27,26,0,26,17,26,26,26,26,27,17,26,26,26,27,26,27,26,26,17,26,17,26,26,26,26,26,27,26,26,17,26,28,26,27,17,26,17,26,27,0,26,27,0,26,26,0,26,25,25,25,25,26,27,17,26,26,26,17,26,26,27,26,26,0,26,17,26,26,26,27,26,26,26,0,26,26,26,26,26,17,17,26,26,26,26,27,17,26,26,26,26,17,26,26,27,0,26,0,26,26,26,26,26,17,17,17,17,17,17,17,26,27,26,26,26,26,26,26,26,17,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,26,17,26,26,27,26,26,26,26,26,26,26,26,26,27,17,26,26,27,26,17,26,26,27,26,25,26,27,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,26,27,26,27,26,0,26,26,25,26,26,26,27,17,26,26,26,26,0,25,26,26,26,26,26,26,26,26,26,27,26,27,17,26,0,26,27,17,26,26,25,26,26,27,26,26,26,0,26,26,26,0,26,17,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,28,26,27,17,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,27,0,26,26,26,27,17,26,26,26,26,27,0,26,26,26,26,26,26,17,26,27,26,26,26,17,26,0,26,26,26,26,26,26,26,26,26,25,25,25,25,26,27,17,26,26,27,26,26,26,26,26,0,26,26,26,26,26,0,26,26,26,26,27,17,26,17,26,26,27,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,26,26,17,17,26,26,0,26,27,26,26,26,26,26,0,26,26,27,26,26,26,25,26,26,26,0,26,26,26,26,26,26,26,26,0,26,26,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,0,25,25,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,17,26,27,17,26,26,26,26,17,26,26,26,27,26,26,26,26,0,26,27,26,26,26,26,0,26,27,26,25,28,28,26,27,17,0,26,26,27,26,25,26,26,26,0,26,27,17,26,0,26,26,26,26,17,17,26,26,26,26,26,27,26,26,26,27,17,17,17,17,17,17,17,17,26,26,0,26,0,26,26,26,26,26,26,27,17,26,26,26,26,26,17,26,27,0,28,26,27,17,26,17,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,0,26,26,26,17,0,26,26,26,26,26,26,26,0,26,26,26,0,25,26,27,17,26,26,26,17,26,26,27,17,26,27,26,26,27,26,26,27,17,26,26,26,26,26,17,26,26,26,26,26,26,25,28,28,26,27,17,26,26,17,26,26,26,26,27,17,26,26,26,26,26,26,0,26,26,26,0,26,27,26,26,26,26,26,26,26,0,28,26,27,17,26,26,26,26,0,26,26,26,26,0,26,27,0,26,26,27,26,27,26,26,26,17,26,25,28,28,26,27,17,26,26,25,26,26,26,27,17,26,27,17,0,26,26,27,26,26,26,26,26,26,17,26,26,26,26,27,26,26,26,26,27,26,27,26,0,26,26,26,0,26,26,26,26,25,28,28,26,27,17,0,26,26,26,26,27,0,25,26,17,25,26,26,0,26,26,26,26,26,26,26,26,27,17,26,27,26,26,26,27,26,0,26,26,26,26,26,26,0,26,27,17,26,27,26,26,27,17,26,0,26,26,0,26,26,26,26,17,0,26,26,27,17,26,26,26,26,26,26,27,26,26,0,26,26,26,26,26,0,26,26,27,17,26,28,26,27,17,26,26,26,25,26,27,17,25,25,26,27,17,26,27,26,26,26,27,26,27,17,26,26,26,26,26,27,17,26,27,26,26,26,26,26,25,28,28,26,27,17,26,26,26,27,17,26,26,26,26,26,26,27,26,26,26,27,0,26,26,26,26,17,26,27,17,26,25,26,26,0,26,26,27,17,26,27,25,26,27,17,26,26,27,17,26,0,26,26,26,26,0,26,26,27,17,17,26,0,26,0,26,25,25,25,25,26,27,17,26,26,26,27,0,26,26,0,26,26,26,26,27,26,26,26,26,27,17,26,26,26,26,26,27,0,26,17,26,25,26,27,17,26,26,26,26,0,26,26,17,26,25,28,28,26,27,17,26,26,26,27,17,26,26,17,26,27,17,26,27,17,26,27,17,0,26,26,26,26,25,25,25,28,28,26,27,17,26,25,26,26,27,26,27,26,26,26,0,26,26,25,26,26,27,26,26,0,26,26,27,0,26,0,26,26,0,26,26,26,26,26,17,25,28,28,17,26,27,17,0,26,26,26,25,28,28,26,27,17,0,25,25,25,26,27,17,26,26,27,26,17,25,26,27,17,26,27,26,25,26,26,26,26,26,25,17,25,26,17,25,26,27,17,26,17,0,26,27,17,26,27,25,26,26,26,26,26,25,26,27,17,26,26,27,17,26,26,26,27,25,25,25,26,24,26,0,26,0,25,26,27,17,26,0,26,26,0,26,26,26,26,26,25,26,27,17,26,0,26,28,25,28,28,25,26,27,17,25,26,27,17,26,17,0,26,26,26,26,27,17,26,27,17,25,26,27,17,26,26,26,26,17,26,26,27,26,27,26,26,27,26,26,26,26,27,26,27,17,26,26,25,25,25,28,28,26,27,17,26,27,17,26,26,27,0,26,26,25,25,25,25,25,26,27,17,26,26,17,26,27,26,26,26,27,17,26,17,17,26,27,17,26,25,26,17,26,26,26,0,17,26,27,17,26,0,26,26,26,26,26,17,26,26,27,17,28,25,26,27,17,25,26,27,26,26,26,26,26,28,28,28,26,17,26,26,0,26,26,26,27,26,26,0,26,27,26,26,26,26,0,26,27,25,25,26,27,26,25,26,17,26,26,26,25,25,26,27,17,26,26,25,26,25,26,27,17,25,25,26,17,26,26,27,25,26,27,17,0,26,25,26,26,17,26,27,17,26,27,26,28,28,28,26,17,26,26,17,26,27,17,25,26,17,17,26,17,26,26,0,17,26,17,17,26,27,17,26,26,27,26,26,25,28,28,26,27,17,17,26,27,17,26,26,27,17,0,26,26,27,0,26,26,26,26,26,28,26,27,17,26,17,26,27,17,26,26,26,26,26,17,26,27,17,26,17,17,26,26,26,26,27,17,26,27,17,0,25,26,26,26,27,26,26,0,17,26,27,17,26,27,26,27,17,26,17,26,17,25,25,25,28,28,26,27,17,0,17,26,27,17,26,26,0,26,25,26,27,17,26,27,17,26,27,17,26,26,26,27,26,26,27,17,17,26,27,17,26,0,26,26,26,26,17,26,27,17,26,25,26,26,27,26,26,17,26,27,17,17,17,26,26,26,26,0,26,17,26,27,17,26,0,26,26,26,26,17,26,27,17,26,26,27,17,26,27,17,26,0,26,17,26,27,17,26,27,26,27,17,26,26,26,27,17,26,27,17,26,26,26,27,26,27,17,26,27,17,26,27,17,0,26,26,26,26,26,25,26,27,26,27,17,0,25,26,26,0,26,26,26,26,27,0,26,26,26,26,26,26,0,26,0,26,27,26,0,26,26,17,26,0,26,26,26,26,0,26,27,26,26,27,17,26,27,0,26,27,26,26,26,27,26,26,26,27,17,26,26,26,0,26,26,26,26,26,27,26,27,17,26,26,27,26,26,26,26,26,27,25,26,27,17,0,26,27,17,26,0,26,26,0,26,26,26,17,26,27,25,26,27,17,25,26,24,26,17,26,26,26,26,27,17,0,26,27,17,26,26,27,25,26,0,26,26,27,26,26,0,26,26,27,26,26,26,27,26,26,26,27,17,26,26,0,26,27,17,26,17,26,28,26,27,17,26,26,26,26,26,26,26,27,26,26,27,26,17,17,26,27,17,26,27,17,26,27,17,26,17,26,17,26,17,17,26,27,17,26,17,0,26,27,26,26,26,27,17,26,27,17,0,26,26,26,0,26,26,17,26,27,17,26,26,26,0,26,0,26,17,26,27,17,26,26,27,17,26,26,26,17,26,27,17,26,27,17,26,26,26,26,26,17,25,25,25,28,28,26,27,17,26,27,17,26,17,26,17,26,27,17,26,17,26,27,26,26,27,0,26,0,26,17,26,25,26,27,17,26,27,17,26,27,26,26,26,0,26,26,26,26,26,0,26,26,26,26,26,26,27,26,26,27,17,26,26,0,26,26,26,0,26,26,26,26,26,17,26,27,17,26,26,27,25,26,27,17,26,26,27,17,26,27,17,26,26,26,26,0,26,0,17,26,27,17,26,26,26,25,26,26,17,26,27,17,0,26,0,26,26,0,26,26,26,26,27,26,27,17,26,27,17,26,26,26,27,26,26,26,26,26,27,17,26,25,26,17,26,17,26,26,26,27,26,27,17,26,26,27,0,26,27,26,26,26,0,26,26,0,26,25,26,17,26,26,26,0,25,26,26,26,26,26,26,27,26,26,26,26,27,26,27,0,26,0,25,28,28,26,27,17,0,26,25,26,27,17,0,26,26,26,26,27,26,27,26,26,28,26,27,17,0,26,27,26,27,17,0,26,26,27,17,0,26,26,26,26,27,26,26,25,26,27,17,26,26,26,26,26,26,17,26,27,17,26,27,26,27,26,27,26,0,26,25,17,17,26,27,17,26,26,0,25,26,27,0,26,26,17,26,27,17,26,26,26,26,26,17,26,27,17,0,26,25,26,27,17,0,26,26,27,26,27,0,17,26,27,17,26,26,26,26,27,17,26,27,17,26,27,17,0,26,26,27,17,26,26,26,26,26,17,26,27,26,26,0,26,26,26,26,0,26,26,25,28,28,26,27,17,17,26,27,17,26,17,26,26,27,26,26,17,26,27,17,26,26,26,27,26,26,17,26,27,17,26,25,26,27,17,26,26,26,17,26,27,17,26,26,27,17,26,0,25,26,26,27,17,26,27,17,26,25,26,27,17,26,26,27,26,26,26,26,17,26,27,17,26,17,25,28,28,26,27,17,26,26,27,17,26,26,0,26,27,26,17,0,26,27,17,26,27,26,27,26,26,27,17,26,27,26,27,26,27,17,26,26,25,26,26,27,26,25,26,27,0,26,27,17,26,26,26,27,17,26,26,17,26,27,17,26,27,17,0,26,0,26,27,26,26,26,0,17,26,27,17,28,26,27,17,26,27,0,26,27,26,27,17,26,27,17,26,27,17,26,26,26,26,26,26,26,26,27,26,26,27,26,26,27,17,0,26,26,27,26,0,26,26,26,26,27,17,26,27,26,0,26,0,28,26,27,17,26,26,26,26,27,17,26,27,26,27,17,26,26,26,27,26,27,17,26,27,0,26,26,26,27,17,26,26,27,26,27,0,26,27,17,0,26,27,17,26,0,26,26,26,0,26,27,17,26,27,26,26,26,27,0,26,17,26,27,0,26,27,17,26,25,26,26,28,26,27,17,25,26,27,17,26,26,27,17,26,27,17,26,25,26,27,26,0,26,26,26,27,17,25,26,27,26,27,17,26,27,26,26,26,25,26,27,17,26,26,25,28,28,26,27,17,26,0,25,26,27,26,26,27,17,26,26,25,26,27,26,26,27,26,27,26,26,28,26,27,17,26,26,0,25,26,27,17,26,26,25,26,27,17,26,0,25,26,27,26,26,27,17,25,26,27,26,27,17,28,26,27,17,25,26,27,26,26,26,26,0,26,25,26,27,26,0,26,26,26,0,25,25,25,26,17,26,26,25,26,25,17,25,25,26,27,17,26,27,26,17,28,26,27,17,26,26,26,27,0,26,26,26,26,0,26,26,27,17,26,27,26,17,26,26,26,26,26,26,26,26,25,28,28,26,27,17,26,26,26,27,17,26,27,26,26,25,26,26,26,26,27,17,26,26,27,26,27,0,26,26,17,26,27,17,26,27,17,0,26,26,25,28,28,26,27,17,26,26,27,17,26,27,17,0,26,26,27,17,26,26,0,26,27,17,26,27,0,26,26,27,17,26,26,26,27,17,28,26,27,17,26,26,17,26,27,26,27,17,26,26,26,25,26,26,25,26,27,24,26,27,17,26,26,27,17,25,25,26,28,28,28,26,27,17,26,17,26,26,0,28,26,27,17,26,26,26,27,25,28,28,26,27,17,26,27,17,26,26,26,0,26,26,26,26,0,26,0,26,27,17,26,26,0,26,26,26,27,26,27,26,27,26,27,17,26,27,26,27,17,25,28,28,25,26,27,17,0,17,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,28,28,25,25,26,27,17,28,26,27,17,26,27,26,27,17,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,0,26,26,26,27,17,26,17,25,25,25,25,26,27,17,26,27,17,26,26,26,25,25,25,26,27,17,26,27,17,25,25,26,17,26,26,26,27,26,27,26,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,26,27,26,27,26,27,17,0,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,27,26,28,26,27,17,0,26,27,26,27,0,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,0,25,25,25,25,26,27,17,26,27,26,25,25,26,27,0,26,27,26,17,25,26,27,24,26,27,26,27,26,27,26,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,25,26,27,17,26,27,26,27,0,25,26,27,26,27,17,26,27,0,26,27,17,25,26,27,26,27,17,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,0,25,25,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,0,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,0,26,27,17,26,27,17,26,27,26,27,0,26,27,26,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,25,28,28,25,26,27,17,26,27,26,27,26,27,26,25,26,27,25,26,27,17,0,26,26,27,26,27,26,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,28,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,25,25,25,25,25,25,26,27,17,25,26,27,17,26,27,0,26,27,25,26,27,26,27,26,27,26,27,0,26,27,0,17,26,27,17,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,28,26,27,17,26,27,0,26,26,27,0,26,27,17,17,26,27,17,26,27,26,26,27,26,27,26,27,17,26,27,17,26,27,26,26,27,0,26,27,26,27,17,26,27,17,26,27,17,0,26,27,26,27,17,17,26,17,26,27,17,26,27,17,26,27,26,27,0,26,27,26,26,27,17,26,27,17,0,26,27,25,26,27,26,26,27,26,27,25,17,26,27,17,26,26,17,26,17,26,26,27,0,17,26,27,17,26,0,26,27,26,26,26,17,26,27,17,26,26,0,26,26,26,27,26,26,27,17,26,17,26,17,26,17,26,17,26,17,26,17,26,26,26,26,27,17,26,0,26,27,26,0,26,26,26,26,27,17,26,26,26,27,26,26,0,25,26,27,17,26,26,27,17,26,26,26,26,26,26,0,26,26,17,26,27,26,26,26,26,26,26,26,26,26,0,26,26,17,26,26,26,26,26,26,27,26,0,26,0,26,27,26,26,27,17,17,26,26,26,26,26,27,17,26,17,26,17,26,26,26,26,26,26,26,27,26,26,26,27,26,26,0,26,26,26,26,26,26,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,0,28,26,27,17,26,27,26,27,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,0,26,27,26,0,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,25,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,25,25,28,28,25,26,27,17,26,27,17,26,27,17,26,27,26,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,28,25,26,27,17,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,25,28,28,26,27,17,25,26,27,17,26,27,26,27,26,27,17,17,26,27,17,26,27,25,26,27,17,25,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,25,25,25,26,27,17,23,25,26,27,17,25,26,27,17,25,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,25,25,25,26,27,17,0,26,27,0,25,26,27,17,26,26,27,26,27,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,25,26,27,17,0,26,27,26,25,26,27,17,26,27,17,26,27,25,25,25,26,27,17,26,27,26,17,26,26,25,25,26,25,28,28,26,27,17,25,26,27,26,26,27,25,25,25,26,17,26,25,25,26,0,26,26,0,17,17,26,27,17,26,26,26,17,26,26,27,17,25,28,28,26,27,17,26,27,26,0,26,26,26,17,26,26,26,0,26,26,27,26,25,26,27,17,26,17,26,26,27,26,26,17,0,26,26,26,26,17,26,27,26,25,26,27,17,0,26,17,0,26,27,26,0,26,17,26,17,26,27,26,26,27,17,26,26,26,25,26,27,17,26,25,25,26,27,17,26,26,27,26,17,0,17,26,26,26,26,26,27,26,0,17,17,26,17,26,26,26,26,26,26,26,27,26,26,26,26,27,17,25,25,25,26,27,17,26,26,27,17,17,26,17,0,26,17,26,0,26,27,17,0,26,26,26,27,26,26,26,0,26,26,26,26,26,0,26,26,26,26,26,26,26,27,26,0,26,0,26,27,17,0,26,26,26,26,0,26,26,27,17,26,26,17,17,26,17,26,17,26,26,26,27,26,25,28,28,26,27,17,26,26,0,26,25,17,25,26,17,26,27,17,26,0,26,17,26,25,26,26,27,26,25,26,27,17,26,26,26,0,26,26,27,26,25,26,27,17,26,25,26,26,26,25,26,27,17,26,27,17,26,26,25,26,26,17,26,26,26,28,28,28,26,17,26,26,17,26,17,25,26,27,17,26,17,26,17,26,26,27,26,0,26,27,17,0,26,26,26,26,26,26,27,17,26,0,26,26,17,17,26,27,17,0,26,26,28,26,27,17,26,26,26,26,0,26,26,26,26,26,17,26,26,25,25,26,26,26,26,26,26,26,0,26,25,28,28,26,27,17,26,26,26,26,27,17,0,26,0,26,26,0,26,26,25,28,28,26,27,17,26,27,26,26,27,17,26,26,27,26,26,26,27,25,26,27,17,26,26,26,26,26,26,26,26,17,25,26,27,17,26,26,26,26,27,17,26,26,26,26,17,25,26,27,17,26,27,26,26,0,26,26,26,0,17,26,17,25,25,25,26,24,0,25,28,28,26,27,17,26,26,26,27,26,26,25,26,27,26,26,25,26,27,17,26,26,25,17,25,26,17,26,17,0,25,28,28,26,27,17,26,17,26,17,26,25,26,27,17,26,26,26,27,17,0,26,26,26,26,26,26,17,26,26,26,0,26,26,26,0,25,26,26,17,25,26,28,28,26,17,26,26,26,26,26,0,26,26,0,26,26,17,26,17,26,26,26,26,26,26,26,26,26,26,26,27,26,0,26,0,26,26,26,27,26,0,26,26,26,26,26,26,26,26,26,26,27,26,26,26,25,26,26,26,25,25,25,25,26,27,17,26,27,26,17,26,0,26,26,0,26,26,26,26,26,26,26,17,26,17,26,26,27,26,27,26,26,26,27,17,26,26,26,27,26,26,25,26,26,26,26,26,25,26,26,0,26,26,26,26,27,26,27,26,26,26,17,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,27,17,0,26,26,0,26,26,26,26,26,27,17,26,0,26,0,26,26,26,26,25,26,26,26,26,26,26,17,26,26,26,26,26,26,26,27,26,28,26,27,17,26,26,26,26,26,26,27,26,0,26,27,26,26,26,26,27,26,26,26,26,25,26,26,26,26,27,26,27,26,0,26,26,26,0,26,27,0,26,17,26,17,0,26,26,26,0,26,26,26,26,26,26,25,25,26,0,26,26,27,26,0,26,26,26,27,26,26,26,26,26,26,26,0,26,26,25,26,26,26,0,26,26,27,26,26,0,26,17,26,26,17,17,26,27,17,26,26,27,26,26,27,26,26,26,27,26,26,27,17,25,25,26,27,26,25,28,28,26,27,17,26,26,26,26,27,26,26,27,26,27,26,17,26,26,27,0,26,17,25,26,27,17,26,26,26,27,17,26,26,27,26,26,27,26,26,26,27,26,25,26,27,17,28,26,27,17,26,26,26,0,26,26,28,26,27,17,26,26,27,0,26,26,17,26,17,0,26,26,27,26,27,17,25,26,27,26,26,26,26,26,25,28,28,26,27,17,25,26,26,26,26,27,26,26,26,26,0,26,17,26,26,27,26,26,26,0,26,26,26,26,26,26,27,26,26,26,27,17,26,27,26,27,28,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,27,26,0,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,27,0,26,0,26,26,26,27,17,17,26,17,26,26,26,26,26,26,26,26,26,25,26,26,26,27,26,26,26,26,26,26,27,17,0,26,26,17,26,26,26,26,26,25,26,27,17,0,26,26,26,26,26,27,26,26,27,17,26,26,17,26,26,26,26,27,17,0,26,26,26,27,26,26,27,0,26,27,0,26,26,26,26,27,26,0,26,26,26,0,26,26,0,26,27,26,26,17,26,26,26,26,26,26,26,26,26,27,26,0,26,26,26,26,27,17,26,26,26,0,26,25,26,25,26,26,26,26,0,26,27,17,26,26,26,26,26,26,27,0,26,26,17,26,26,26,26,0,26,17,26,17,26,17,26,26,26,26,26,25,28,28,25,26,27,17,26,26,27,25,26,26,26,25,25,26,26,26,26,26,0,26,0,26,26,27,26,27,26,0,26,27,26,26,26,26,26,0,26,26,26,26,26,26,25,26,27,26,0,26,0,26,26,26,26,0,26,26,26,26,27,26,27,17,26,0,26,26,26,26,26,27,0,26,26,26,26,26,26,26,26,26,26,26,27,26,27,26,26,26,26,17,26,26,26,17,26,26,26,26,26,27,26,27,26,26,26,26,26,26,0,26,24,26,26,26,26,26,17,26,26,26,26,26,26,17,26,17,0,26,26,27,26,26,26,26,26,26,27,0,26,26,26,25,26,27,17,26,27,17,26,17,17,26,17,26,26,25,26,26,27,17,26,26,27,26,27,0,26,27,17,26,26,27,26,27,17,0,26,26,26,25,28,28,26,27,17,26,26,0,26,27,17,0,26,26,17,0,26,26,26,27,26,27,26,27,26,27,25,26,27,17,26,28,26,27,17,26,26,25,26,26,25,26,24,26,26,26,26,25,26,27,17,26,27,26,26,26,26,26,26,26,26,26,26,17,0,25,26,27,17,26,26,26,26,0,26,26,26,26,26,26,27,26,27,25,26,27,17,26,0,25,25,25,25,25,25,26,27,17,26,0,26,26,0,26,26,26,26,26,26,25,26,27,17,26,27,26,26,26,25,28,25,26,27,17,26,26,0,26,25,26,27,17,25,25,26,17,26,17,26,26,26,0,26,26,27,17,26,26,26,26,26,17,26,26,26,27,26,17,26,26,26,26,26,26,26,17,0,26,27,26,26,26,17,26,26,26,26,27,26,26,27,17,26,26,17,0,26,0,26,26,0,26,26,26,26,26,17,26,27,17,26,28,26,27,17,26,26,0,26,26,26,26,26,26,26,17,17,26,27,26,27,0,26,26,17,26,27,26,26,26,17,26,27,26,26,27,17,26,26,27,26,26,0,26,0,26,0,26,27,26,26,26,27,26,26,27,17,0,26,17,26,26,26,26,26,26,26,27,26,26,27,26,26,26,26,0,26,17,26,17,26,26,26,26,27,26,26,26,26,27,26,26,26,0,26,27,26,27,17,26,26,26,26,25,26,27,26,26,27,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,0,26,27,26,26,26,17,26,26,17,26,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,17,26,26,26,26,17,0,26,26,0,26,27,0,26,27,26,26,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,17,26,26,0,26,26,26,26,26,0,26,0,26,26,26,27,26,26,26,27,17,26,26,26,26,27,26,26,17,26,0,26,26,26,17,26,27,17,26,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,25,25,25,25,25,25,26,27,17,26,26,26,0,26,17,26,26,17,0,25,28,28,26,27,17,26,27,26,26,27,26,26,26,27,26,17,26,17,26,0,26,17,26,27,28,26,27,17,26,27,17,26,26,27,25,25,25,26,27,17,26,26,25,26,26,26,25,26,27,17,25,26,27,17,26,26,26,17,26,27,26,26,26,0,26,26,26,26,17,17,26,26,0,26,17,26,26,26,26,26,26,26,26,0,25,28,28,26,27,17,26,26,26,26,26,17,26,26,26,26,26,28,26,27,17,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,27,17,26,26,17,26,26,26,26,26,0,26,28,26,27,17,26,26,0,26,26,27,25,26,26,25,28,28,28,26,27,17,26,26,17,26,17,26,27,0,26,17,26,26,26,26,27,26,17,26,27,17,26,27,26,26,26,26,26,26,27,17,0,25,26,17,26,26,26,26,27,26,26,26,17,26,27,26,26,26,17,17,26,26,26,26,0,26,26,0,26,0,26,27,17,0,26,27,25,28,28,26,27,17,26,26,26,26,26,26,17,0,26,26,17,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,27,17,26,0,26,0,26,26,27,26,26,26,17,26,27,17,26,0,26,26,27,26,26,26,26,27,26,26,27,0,26,0,26,26,26,27,26,27,26,26,26,27,26,26,26,25,26,17,26,26,25,26,26,17,26,26,27,17,26,26,26,27,26,26,26,26,27,17,26,0,26,27,17,26,26,26,27,17,26,26,26,26,26,26,0,26,17,26,26,25,28,28,26,27,17,26,26,27,0,26,27,17,26,27,26,26,26,26,17,26,26,26,26,26,0,26,0,26,26,0,26,27,0,26,26,26,26,27,26,26,26,26,26,26,27,17,26,27,26,27,17,0,26,27,17,26,27,26,26,0,26,26,27,26,26,0,26,0,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,26,27,26,17,26,26,0,26,25,28,28,26,27,17,26,0,26,26,26,26,26,26,26,26,26,17,17,17,17,17,17,17,17,26,26,26,26,26,27,17,0,26,26,27,0,26,27,17,26,26,26,27,17,26,26,27,17,26,26,27,17,25,25,25,28,28,26,27,17,26,27,26,26,26,26,27,26,0,26,26,26,17,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,27,17,0,26,27,17,25,28,28,26,27,17,26,27,17,26,27,26,26,26,26,27,17,26,27,26,17,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,26,26,26,25,26,26,26,26,27,26,26,27,26,26,26,25,26,27,17,24,26,26,27,17,26,26,26,26,26,0,26,26,26,27,25,26,26,26,26,17,26,25,26,26,27,17,26,27,26,26,26,26,26,25,26,26,26,26,17,0,26,0,26,26,27,26,27,17,26,26,26,27,17,26,17,26,26,26,26,27,26,26,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,17,26,26,26,0,26,27,17,0,26,26,26,27,26,17,26,26,0,26,26,27,26,26,27,17,25,26,26,26,27,17,26,25,28,28,25,26,27,17,0,26,27,26,0,25,26,27,26,26,0,26,0,26,27,26,26,26,26,26,26,27,17,26,26,26,26,27,17,26,26,27,17,26,26,26,27,26,26,27,17,26,17,26,27,25,26,17,26,26,26,27,26,25,25,26,27,25,26,17,26,26,27,17,26,27,26,17,26,27,17,26,26,26,26,25,28,28,26,27,17,26,27,17,0,26,27,26,26,26,27,26,26,27,26,26,26,26,25,26,26,27,25,26,0,26,27,26,26,0,26,17,0,26,26,27,17,26,0,26,26,26,26,25,28,28,25,25,25,17,26,27,17,25,26,17,0,26,27,26,27,26,26,26,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,25,25,25,26,24,0,26,27,17,26,26,26,27,17,26,17,26,0,26,26,26,27,17,26,27,17,26,26,26,25,26,17,26,27,26,26,26,27,17,26,26,26,27,17,26,17,26,27,17,26,27,26,26,26,27,26,26,17,26,0,26,26,17,26,27,26,26,27,17,26,26,25,26,17,26,27,26,0,26,27,17,26,26,27,26,0,26,17,26,26,26,27,26,17,17,26,27,17,0,26,26,0,26,26,26,27,26,26,17,26,26,25,25,26,27,17,28,26,27,17,25,25,26,17,26,17,26,26,26,27,17,26,27,26,26,27,17,26,27,26,26,28,26,27,17,26,26,26,26,17,26,26,26,17,26,17,26,27,17,17,26,17,26,17,26,17,26,17,28,26,27,17,26,26,26,27,17,26,27,26,26,17,26,0,26,27,17,26,25,28,28,26,27,17,25,26,27,17,26,25,25,25,28,28,26,27,17,26,27,17,26,27,17,26,26,26,17,26,26,17,26,26,17,26,26,26,27,17,0,26,17,26,26,26,27,17,26,17,26,17,26,17,26,17,26,17,26,17,26,17,26,26,26,26,27,26,26,26,27,17,26,26,26,17,0,26,0,26,27,26,26,26,0,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,17,26,27,26,27,17,17,26,26,26,26,26,27,26,26,26,26,26,27,26,27,26,26,0,26,0,26,0,26,27,26,27,17,26,26,26,26,26,26,26,26,0,26,26,26,26,26,27,26,0,26,26,26,27,17,26,26,26,26,26,26,17,26,26,27,17,26,26,27,17,26,26,26,26,0,26,26,25,26,26,26,26,27,17,26,27,17,26,27,17,26,26,26,0,26,26,26,26,26,26,0,26,27,26,27,26,26,26,26,26,27,26,27,17,26,0,26,26,28,26,27,17,26,26,27,17,26,26,26,27,26,0,26,27,26,26,26,26,27,26,27,17,25,25,26,27,17,26,0,26,27,26,27,26,26,27,17,0,26,26,26,26,26,17,0,26,26,26,26,27,17,26,26,26,26,27,17,26,26,17,26,26,0,26,26,0,26,25,28,28,25,25,26,27,17,25,26,17,25,25,26,17,26,27,17,26,26,26,26,27,17,26,26,26,0,26,17,26,26,26,0,26,26,26,0,26,26,26,0,26,28,26,27,17,26,27,26,26,25,25,26,27,17,0,26,27,17,26,26,26,26,26,26,26,27,26,26,17,0,26,26,26,26,26,27,26,26,27,17,26,17,26,26,26,27,26,26,26,0,26,17,26,17,0,26,26,0,25,26,17,26,0,26,25,26,17,26,25,26,17,26,26,26,26,26,27,28,26,17,0,26,27,26,27,26,26,26,26,26,26,27,26,27,26,26,26,0,26,0,26,26,0,26,27,26,27,17,26,26,26,27,0,26,0,26,17,26,27,26,26,28,26,27,17,0,26,0,26,26,26,26,0,26,26,27,26,27,17,26,26,26,26,27,26,26,0,26,26,27,26,26,26,27,26,26,17,26,27,17,0,26,26,26,26,27,26,27,26,26,27,17,26,26,26,26,26,26,26,26,0,26,26,27,26,17,0,26,26,27,17,26,26,0,26,0,26,26,27,26,17,26,26,26,26,26,26,26,17,26,27,17,26,26,26,26,26,27,26,27,17,26,27,17,25,25,26,26,26,26,27,26,26,26,26,27,17,25,26,27,26,27,28,26,27,17,26,27,17,26,27,17,28,25,25,25,28,28,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,0,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,17,26,25,26,26,26,27,17,26,26,26,17,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,17,26,0,26,27,17,0,26,26,26,27,17,26,26,27,26,27,26,26,26,27,26,0,26,26,26,26,27,26,27,17,26,26,25,25,25,28,28,26,27,17,26,26,26,27,26,26,26,26,27,26,26,26,26,26,26,0,26,27,17,0,26,27,26,26,27,26,26,26,26,27,26,26,26,0,26,26,26,26,26,27,17,26,27,26,26,26,26,26,28,26,27,17,26,27,26,17,26,17,26,26,26,26,26,26,26,26,26,0,26,26,27,17,26,26,27,17,26,26,26,0,26,26,26,26,27,17,0,26,27,17,26,25,25,26,27,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,0,17,28,28,28,28,28,28,26,17,26,27,17,26,27,17,26,27,17,0,26,27,26,17,26,27,17,26,26,27,17,26,26,26,26,26,26,26,27,17,0,26,17,26,17,0,26,26,26,0,26,26,27,17,26,27,26,0,26,26,26,26,27,25,26,27,17,26,26,26,26,27,26,27,0,26,26,27,17,26,27,17,26,27,17,26,26,0,26,26,26,27,17,0,25,28,28,25,26,27,17,26,26,27,17,26,27,17,26,26,26,27,17,26,26,0,26,17,26,17,26,26,26,27,17,26,27,26,27,26,26,26,27,26,26,27,17,25,26,26,0,26,27,26,17,0,26,26,26,27,17,26,26,27,26,17,25,28,28,26,27,17,26,27,26,26,27,17,26,27,26,27,25,25,25,28,28,26,27,17,25,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,26,27,17,25,25,26,27,26,27,26,27,17,26,27,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,0,26,26,27,26,27,0,26,27,17,26,26,27,17,28,26,27,17,26,27,17,26,27,26,27,17,25,26,27,26,27,26,27,0,26,27,17,26,17,26,27,26,27,26,27,17,0,26,26,27,26,27,17,26,27,0,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,25,26,27,26,27,17,26,27,26,27,26,27,26,26,27,17,25,28,28,25,26,27,17,0,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,27,26,27,25,25,26,27,26,27,26,26,27,17,25,25,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,0,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,28,26,27,17,26,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,25,26,27,24,26,27,17,26,0,26,27,26,27,26,27,26,27,26,27,28,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,0,26,27,17,26,26,27,0,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,25,25,25,26,27,17,24,26,27,26,27,17,26,27,17,0,25,28,28,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,26,0,26,27,26,27,17,26,26,17,0,26,26,27,26,26,25,26,27,17,26,27,17,26,27,26,27,26,27,26,25,26,17,26,27,17,26,0,26,27,26,26,25,28,28,26,27,17,25,28,28,26,17,26,27,17,26,27,17,25,26,26,27,26,26,26,25,26,27,17,26,26,17,26,26,26,25,28,28,26,27,17,26,27,17,26,26,26,17,0,25,26,27,0,26,26,26,27,17,26,26,26,0,26,26,26,27,17,26,27,17,26,27,17,26,26,17,26,17,25,26,17,26,27,26,27,17,17,26,26,27,17,26,25,28,28,26,27,17,26,26,26,27,17,26,26,25,26,26,0,26,25,26,27,17,26,27,17,26,25,26,26,0,25,26,27,25,28,28,26,27,17,25,26,27,17,26,27,17,26,26,25,26,26,27,0,26,17,26,26,27,17,26,0,25,26,26,25,26,28,26,27,17,25,26,27,17,25,26,27,17,0,26,26,26,17,26,26,25,26,27,25,26,27,17,0,26,26,27,26,27,26,27,26,27,25,26,27,26,27,17,26,27,17,26,26,26,27,17,26,17,26,26,27,17,26,25,26,27,26,27,17,0,26,25,26,27,17,26,26,27,17,26,26,25,26,27,17,25,26,26,0,26,25,26,27,17,26,26,27,17,26,0,26,26,27,17,25,26,26,27,17,26,17,26,0,26,26,25,26,26,26,27,17,26,26,26,0,26,27,25,25,28,28,26,27,17,0,26,27,17,26,27,17,26,26,17,26,27,17,25,28,28,26,27,17,26,26,25,26,27,17,26,0,25,26,26,27,26,26,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,0,26,27,26,27,26,27,0,26,27,17,25,25,25,26,27,17,0,26,27,17,25,26,27,25,28,28,25,26,27,17,26,27,26,27,25,26,27,17,26,27,0,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,25,25,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,25,26,27,17,28,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,25,26,27,17,26,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,25,26,27,0,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,0,26,27,17,17,26,27,17,25,26,27,26,27,17,26,27,17,26,27,17,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,0,26,27,26,27,17,26,27,0,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,17,0,25,25,25,25,26,27,24,0,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,17,17,26,27,17,26,27,26,27,17,26,27,25,28,28,26,27,17,0,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,17,25,26,27,17,26,27,17,26,27,0,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,17,26,26,0,26,27,17,17,26,27,17,25,26,27,17,17,26,17,26,27,17,26,26,17,26,27,17,26,26,26,27,26,27,17,26,17,26,27,17,26,26,0,26,27,17,26,26,27,17,26,17,26,26,26,25,26,27,17,26,17,26,27,17,26,26,26,27,26,26,17,26,27,17,26,27,17,26,27,0,26,17,26,27,17,26,26,27,0,26,26,27,17,26,27,17,26,26,17,26,27,17,26,17,26,27,26,27,17,26,26,25,26,24,26,26,26,27,17,26,27,17,26,27,26,26,26,26,0,26,26,27,17,25,28,28,25,28,28,26,27,17,26,26,0,26,26,26,17,26,27,17,26,26,0,26,26,26,27,17,17,26,27,17,26,27,17,26,27,26,26,27,17,26,27,17,17,26,27,17,26,26,27,17,26,26,27,17,26,17,26,27,17,25,25,25,25,26,27,17,26,26,27,17,26,26,17,26,27,17,26,26,27,17,26,26,27,17,26,17,26,27,17,26,17,26,27,17,26,26,26,27,17,26,0,26,27,26,0,26,27,17,26,26,26,27,17,26,26,17,26,26,0,25,26,27,17,0,26,26,27,17,26,0,26,26,27,26,26,27,17,26,27,17,26,27,17,26,0,26,26,26,26,27,17,26,0,26,27,17,0,26,17,0,26,26,26,26,26,17,25,26,27,17,23,26,27,26,17,28,26,27,17,26,27,17,26,26,26,27,17,26,26,27,26,26,27,17,26,26,26,27,17,0,26,26,25,26,27,26,26,26,26,27,17,26,0,26,26,27,26,26,27,17,26,26,27,17,26,26,26,26,26,27,17,0,26,26,27,17,28,26,27,0,26,27,17,26,26,26,26,17,26,27,17,26,26,26,0,26,26,27,26,26,27,17,26,27,26,27,26,17,26,26,26,27,26,27,17,26,27,17,17,26,17,25,28,28,26,27,17,26,27,17,26,27,26,26,27,17,26,26,26,26,26,26,17,26,27,17,26,25,26,26,26,26,0,28,26,27,17,26,27,17,25,26,27,17,26,0,26,26,26,26,0,26,27,17,26,25,26,26,27,0,26,26,26,26,27,17,26,26,0,26,17,17,26,27,17,26,26,26,27,17,26,26,25,28,28,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,17,26,27,17,25,26,17,28,26,17,26,27,17,26,26,27,17,17,26,27,17,26,26,26,26,26,17,0,17,26,27,17,26,26,27,26,27,17,26,26,17,26,27,17,26,27,17,0,26,26,26,27,26,28,25,17,26,27,17,26,26,27,17,26,27,26,26,25,17,26,27,17,26,27,17,25,26,0,26,27,17,26,26,27,17,17,26,27,17,0,26,27,17,26,17,26,26,27,17,26,27,25,17,25,26,27,17,26,26,26,26,17,26,27,17,0,25,17,26,27,17,26,0,26,26,27,26,26,27,0,26,27,17,25,26,17,24,25,25,25,26,0,26,26,26,27,0,17,26,27,17,26,27,17,26,27,26,26,26,27,17,0,26,0,26,17,25,25,25,26,27,17,25,26,26,26,27,17,26,26,26,27,17,26,26,26,26,26,26,26,27,26,26,26,26,17,26,26,26,26,27,26,26,17,0,26,27,17,25,25,26,24,26,26,26,0,26,27,0,25,28,28,25,26,27,17,26,27,26,26,25,28,28,26,27,26,17,26,25,26,0,26,0,26,26,26,27,25,28,28,26,27,17,26,27,26,26,26,27,25,26,27,26,26,0,26,26,17,25,26,26,26,28,28,28,28,28,28,26,17,26,25,28,28,26,27,17,28,25,25,25,26,17,26,0,28,26,17,26,26,26,17,0,28,25,25,26,27,17,26,26,26,26,27,17,26,17,25,26,27,26,27,17,26,17,26,17,26,17,26,17,26,26,26,26,26,25,26,27,17,26,27,17,0,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,25,25,28,28,26,27,17,26,26,0,25,26,27,26,27,17,25,26,17,26,26,27,0,25,26,27,0,26,26,26,26,25,26,27,26,25,26,26,25,28,28,25,25,26,27,17,0,26,26,26,27,26,26,0,26,0,25,25,28,28,26,27,17,25,26,27,26,26,26,25,26,27,25,26,27,25,26,27,26,27,26,27,25,26,27,17,26,27,0,25,26,27,25,26,27,25,26,27,28,26,27,17,26,27,28,25,26,27,17,17,26,27,17,26,27,0,26,27,26,27,25,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,0,25,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,25,25,26,27,17,0,26,27,25,26,27,28,25,26,27,17,25,26,27,17,25,26,27,25,28,28,26,27,17,25,28,28,17,26,27,17,26,26,25,26,27,17,26,25,26,27,26,26,26,27,17,25,17,26,27,17,25,28,28,26,27,17,25,17,26,27,17,17,26,27,17,26,26,27,26,25,25,26,27,17,26,27,25,25,17,26,27,17,26,26,26,25,25,28,28,26,27,17,0,28,26,27,17,25,17,26,27,17,25,26,24,26,25,26,27,26,0,26,0,25,17,26,27,17,0,25,26,27,26,26,28,26,27,17,26,25,17,28,26,27,17,26,26,25,26,27,0,26,25,28,28,25,26,27,17,25,17,26,27,17,26,26,0,26,27,25,26,27,0,26,27,26,0,26,27,17,26,27,17,28,25,25,26,17,25,25,26,27,26,0,26,25,28,28,26,27,17,26,26,0,26,26,25,25,26,27,26,26,26,26,26,26,27,17,0,26,25,26,27,17,26,25,28,28,25,26,27,17,26,27,0,26,0,26,26,27,25,25,26,27,26,26,27,26,26,27,25,26,27,25,26,27,0,26,26,26,0,25,26,27,26,26,26,27,17,26,25,26,27,26,27,0,25,26,26,26,27,17,26,27,25,26,27,26,0,26,26,25,26,27,17,25,25,25,28,28,26,27,17,0,25,26,27,0,26,26,27,26,26,0,25,25,17,26,27,17,26,26,27,26,27,17,25,26,27,17,26,26,26,26,25,26,27,0,26,26,26,26,26,27,17,25,26,27,17,25,26,27,17,26,25,26,27,26,25,26,27,25,26,27,17,25,26,25,26,27,26,27,17,26,25,26,27,26,26,26,27,17,26,26,26,27,26,26,26,17,17,26,27,26,27,17,0,26,17,26,25,26,27,25,28,28,25,25,26,27,17,26,26,26,26,26,26,0,26,26,26,0,25,26,27,26,26,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,27,17,26,0,25,25,25,26,27,17,0,25,26,26,26,26,0,26,28,26,27,17,26,26,26,27,26,26,17,26,27,17,25,28,28,17,17,26,27,17,26,26,26,25,26,27,26,26,26,26,27,26,27,17,26,25,17,26,27,17,26,28,17,26,27,17,26,27,28,26,27,17,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,17,26,27,17,26,27,0,26,27,26,26,27,26,27,17,26,27,17,25,26,27,0,25,26,27,25,26,27,26,27,25,26,27,17,26,27,17,25,28,28,25,26,27,17,26,27,25,25,25,25,26,27,17,26,27,0,25,25,26,27,17,25,17,26,27,17,26,27,26,27,25,26,27,26,26,27,26,27,17,25,26,27,26,27,17,26,25,26,27,26,26,26,27,26,26,25,26,25,26,27,26,26,26,26,26,0,26,26,27,26,26,17,26,26,26,27,17,26,26,28,26,27,17,26,0,26,27,26,27,26,26,27,17,0,26,0,17,26,27,17,26,26,27,26,26,0,26,17,26,27,17,0,26,27,17,26,26,26,0,25,28,28,26,27,17,26,26,26,25,26,25,26,27,17,26,28,25,17,26,27,17,26,26,26,26,26,25,17,17,26,27,17,0,25,25,28,28,28,26,27,17,26,26,25,26,26,25,17,26,27,17,26,0,26,25,26,27,26,27,17,0,25,25,26,27,17,25,17,26,27,17,26,27,25,26,27,0,26,27,0,25,25,26,27,0,26,26,25,26,27,17,25,25,26,27,26,28,25,26,17,26,27,17,26,26,26,25,26,27,25,26,27,17,25,28,28,25,26,27,17,25,25,25,26,27,17,17,17,17,17,17,17,17,26,25,26,27,26,26,25,26,27,25,26,25,26,27,17,26,26,26,26,25,26,27,25,26,27,17,26,26,27,17,26,25,26,27,17,25,26,26,25,25,26,26,25,25,25,26,27,17,26,27,17,0,26,26,17,26,25,25,26,27,25,26,27,26,27,26,27,26,27,26,26,27,17,25,26,25,25,26,27,23,26,27,0,26,27,17,0,26,27,26,27,26,27,25,26,27,25,26,27,26,27,0,26,27,26,27,26,27,25,26,27,17,0,25,26,27,17,26,27,26,27,26,17,17,26,27,26,27,26,27,25,26,27,26,27,26,17,26,27,26,27,25,28,28,26,27,17,26,27,17,25,25,26,27,26,27,26,27,17,26,27,0,26,27,0,26,26,27,28,25,26,27,17,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,25,17,17,26,27,26,27,17,26,27,17,17,26,27,26,27,25,26,27,26,27,17,25,26,27,25,25,25,26,27,24,26,27,0,26,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,17,17,26,27,17,28,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,26,27,26,27,17,26,27,26,27,0,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,0,28,26,27,17,26,27,17,25,26,27,26,27,0,26,26,27,26,27,0,26,27,26,27,0,25,25,26,27,17,0,26,27,17,26,27,26,27,25,28,28,26,27,17,25,26,27,17,25,26,27,25,26,27,17,26,27,26,27,17,25,26,27,26,27,26,27,26,27,0,25,26,27,0,25,28,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,26,27,25,25,25,25,28,28,26,27,17,26,27,26,27,17,25,26,27,26,27,25,26,27,17,0,25,26,27,17,25,26,27,26,27,26,27,17,0,26,27,26,27,0,25,26,27,25,26,27,25,26,27,17,23,26,27,26,27,26,27,0,26,27,25,25,26,27,17,25,26,27,17,25,26,27,23,26,27,17,26,27,26,27,17,26,27,25,17,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,25,26,27,26,27,17,26,27,17,17,26,27,17,26,27,26,27,17,26,27,0,25,26,27,26,27,26,27,25,26,27,17,25,26,27,26,27,25,17,25,26,27,17,0,28,25,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,25,25,25,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,25,25,25,28,25,25,25,25,25,25,26,27,17,26,27,17,0,25,26,27,17,26,27,25,17,26,27,0,25,26,27,0,28,28,28,28,28,26,27,17,26,27,26,27,0,26,27,26,27,25,26,27,26,27,17,26,27,17,26,27,0,26,27,25,17,17,17,17,17,17,17,25,26,27,17,26,27,25,25,25,25,25,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,25,25,26,27,28,26,27,17,0,17,26,27,26,27,26,27,26,27,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,17,0,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,17,26,27,17,26,27,17,26,27,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,28,28,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,0,17,17,17,17,17,17,17,26,27,26,26,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,25,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,25,25,25,28,28,26,27,17,0,26,27,26,27,26,27,26,27,17,26,0,25,28,28,26,27,17,26,27,17,0,25,26,27,17,26,27,26,27,17,26,27,28,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,17,25,26,27,26,27,26,27,0,26,27,26,26,27,17,0,26,27,26,27,0,25,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,27,25,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,17,26,27,25,28,28,26,27,17,26,27,28,26,27,17,0,26,27,26,27,0,25,26,27,17,25,25,26,27,17,26,27,26,27,17,26,27,26,27,17,0,26,27,26,25,26,27,17,26,27,25,26,27,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,25,26,27,17,26,27,17,26,27,0,26,27,26,27,26,26,27,25,17,26,27,17,26,27,0,26,27,26,27,25,25,25,25,25,26,27,17,24,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,25,25,25,26,27,17,26,27,26,26,27,25,25,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,0,26,27,26,26,27,17,17,26,26,27,17,26,27,17,26,27,0,26,27,26,26,27,17,0,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,25,26,17,26,27,26,26,0,26,26,17,26,26,27,28,26,27,17,26,26,26,0,26,27,26,26,27,26,26,27,17,28,26,27,17,26,0,26,26,26,25,25,25,26,27,17,23,23,26,26,26,0,26,26,0,25,26,26,0,26,26,27,26,27,0,17,17,26,27,17,26,26,26,26,17,26,17,26,26,26,27,17,26,26,0,26,26,26,17,26,26,26,0,26,26,26,25,25,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,23,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,17,0,26,27,26,27,28,26,27,17,25,28,28,26,27,17,26,27,26,27,26,0,26,27,0,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,26,26,27,0,26,25,17,25,26,17,26,17,0,26,0,26,27,28,26,17,26,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,0,26,26,26,26,0,26,26,27,17,26,17,26,17,26,26,26,26,26,26,26,26,27,26,26,27,26,17,0,26,27,17,26,26,26,26,26,26,0,26,26,26,26,27,17,26,0,26,26,25,25,25,26,27,17,26,26,0,26,26,27,17,25,26,26,27,17,26,26,26,26,26,26,26,26,17,26,26,25,26,27,17,26,25,26,26,27,25,28,28,26,27,17,26,17,26,17,26,26,26,27,17,26,26,26,26,25,26,26,26,26,26,27,17,26,26,0,26,27,17,0,25,26,26,27,25,26,26,26,27,26,25,26,27,17,0,26,17,26,27,0,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,27,0,26,26,26,0,26,26,26,17,26,17,26,0,26,26,26,17,17,26,26,27,17,26,26,27,17,26,26,0,26,26,17,26,26,17,26,26,26,27,25,25,28,28,25,25,25,26,27,17,26,0,26,26,26,0,26,27,17,25,26,25,26,26,25,26,26,17,26,26,27,26,27,17,26,26,26,25,26,24,26,26,27,26,0,26,26,26,25,26,26,17,26,26,26,26,27,26,26,26,26,26,0,26,25,26,0,26,26,26,17,26,17,26,25,26,27,17,26,26,26,0,26,26,27,17,26,17,26,27,17,0,26,27,17,26,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,25,17,25,26,27,17,26,27,26,27,26,27,28,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,25,28,25,17,26,27,17,0,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,17,25,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,0,26,27,25,26,27,17,25,26,27,26,27,26,27,0,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,0,26,27,17,0,26,27,0,26,27,26,27,17,26,27,25,28,28,25,25,25,25,26,27,17,26,27,26,27,28,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,26,26,27,17,17,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,25,26,27,17,0,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,0,26,27,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,27,25,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,17,26,27,17,26,27,17,26,27,0,26,27,0,26,27,25,26,27,26,27,17,0,26,27,17,0,26,27,26,17,26,26,25,26,17,0,26,26,27,17,0,26,26,27,26,27,17,26,17,26,27,0,26,26,17,26,25,25,25,26,27,17,26,26,26,27,17,25,26,0,26,25,26,17,26,26,26,26,17,0,26,17,26,27,0,26,26,17,26,26,26,27,17,26,17,26,27,0,26,26,17,26,17,26,26,26,26,27,17,26,27,26,26,26,26,27,26,0,26,27,17,26,17,17,26,25,26,26,26,27,17,26,26,25,28,28,26,27,17,25,26,17,26,27,26,25,26,17,26,26,0,26,26,27,25,25,25,25,26,27,17,26,17,26,25,26,0,26,17,0,26,26,27,17,26,17,26,26,26,26,26,0,26,26,0,26,26,17,26,17,26,17,26,17,0,26,17,26,27,17,26,17,26,17,26,17,26,17,26,17,26,17,28,26,17,25,17,26,17,26,26,27,17,0,26,25,26,27,17,26,26,26,26,26,0,26,26,17,26,27,26,26,27,17,0,26,27,26,27,17,26,26,26,17,26,26,26,26,26,27,17,26,27,26,0,26,17,25,26,26,26,26,26,26,26,26,26,26,0,25,26,26,17,0,26,26,27,26,26,27,17,26,26,26,26,26,17,26,26,26,25,25,25,25,25,26,27,17,17,26,17,0,17,26,26,26,26,27,0,25,26,27,17,26,0,25,25,26,24,26,27,17,26,26,26,26,17,0,26,26,27,26,27,17,26,26,27,17,26,26,0,26,0,26,27,17,26,17,26,17,26,26,26,27,17,0,17,17,26,26,26,25,25,26,26,27,17,0,26,25,26,26,17,26,27,17,26,26,26,26,27,17,17,26,17,25,26,26,0,26,26,27,17,26,26,26,26,26,26,27,26,26,0,26,27,17,26,26,26,26,0,26,26,26,28,17,26,27,17,26,27,17,0,26,26,0,26,26,0,26,26,27,17,26,25,26,27,17,26,26,26,27,17,0,26,27,26,26,25,25,25,25,26,27,17,26,0,26,17,26,26,26,26,26,26,26,26,26,26,26,25,26,25,26,24,26,17,26,26,17,17,26,27,25,25,25,26,24,26,26,26,26,0,26,26,26,27,17,26,26,26,0,26,26,26,26,26,26,26,27,26,26,26,26,26,26,0,26,26,26,26,26,0,26,26,26,26,26,0,26,26,26,26,26,0,26,26,26,27,0,17,26,17,26,26,26,25,26,0,26,26,25,28,26,27,17,26,26,27,26,26,27,17,26,0,26,0,26,26,26,26,26,26,28,28,25,17,17,17,25,26,17,26,17,26,26,28,26,17,26,26,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,28,26,27,17,0,26,26,26,27,26,0,26,26,27,26,26,26,26,26,26,27,17,26,26,26,26,26,0,26,26,26,27,26,26,26,26,27,26,26,26,26,27,17,25,26,25,26,25,26,25,26,26,27,17,26,0,26,26,25,26,26,26,27,26,27,0,26,26,17,26,25,26,27,26,27,17,26,25,25,25,28,28,26,27,17,0,26,27,26,26,25,26,26,26,26,26,27,17,26,26,26,0,26,26,26,26,17,26,17,26,17,26,26,26,26,26,26,0,26,26,0,26,0,26,27,17,0,26,27,26,26,26,26,27,17,26,26,26,0,26,0,26,26,26,0,26,26,26,26,26,26,27,17,26,26,0,26,0,26,26,27,25,26,26,26,26,26,26,26,0,26,27,26,27,17,26,25,25,25,28,28,26,27,17,26,27,17,26,26,27,26,26,27,17,26,26,26,0,26,26,26,27,17,26,26,26,26,26,0,26,17,26,26,26,26,26,26,27,17,26,27,17,0,26,26,25,25,25,28,28,26,27,17,0,26,27,17,0,26,26,26,26,26,27,17,26,26,0,26,26,26,27,17,0,26,27,26,27,17,26,26,26,26,0,26,26,26,26,26,27,26,26,0,26,25,26,26,17,26,17,26,26,27,17,26,26,26,26,25,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,17,26,26,26,26,26,26,26,26,26,26,27,26,0,26,26,27,26,26,26,27,17,26,27,17,26,17,0,26,26,26,26,26,26,26,26,26,26,0,26,27,17,26,26,27,26,26,26,26,27,0,26,26,26,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,26,27,26,0,26,26,26,26,26,26,27,25,26,17,26,27,26,26,26,27,26,27,26,26,26,27,17,26,26,27,17,26,27,17,0,26,26,26,26,17,26,17,26,26,26,26,26,26,26,27,26,27,17,25,25,25,28,28,26,27,17,26,26,27,26,27,26,17,26,26,26,26,27,17,26,0,26,26,25,25,28,28,25,25,26,27,17,26,27,25,25,26,27,17,0,26,26,0,26,26,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,27,26,26,26,26,26,0,26,27,17,26,26,27,26,26,26,17,26,27,17,26,26,26,26,26,27,26,28,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,27,17,26,27,17,26,26,26,26,26,26,25,25,25,28,28,26,27,17,26,26,26,27,26,26,26,26,26,26,25,25,25,25,26,27,17,26,26,26,26,26,26,26,27,17,26,26,27,17,26,17,17,26,17,0,26,26,26,26,26,26,26,26,27,17,26,26,27,17,26,26,0,26,27,17,26,26,27,26,26,26,26,17,26,26,26,26,0,25,26,26,17,17,26,0,26,26,0,26,26,26,26,26,26,27,26,26,26,26,27,26,26,27,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,27,26,0,26,27,26,27,26,26,26,26,26,26,26,27,25,25,25,28,28,26,27,17,26,27,17,26,26,27,17,26,26,0,26,17,26,26,26,26,26,26,26,26,26,26,26,26,25,26,27,25,26,17,24,26,26,26,26,26,26,26,26,26,0,17,26,17,26,27,26,26,17,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,27,26,26,26,26,26,26,0,28,26,27,17,25,26,27,26,26,26,26,27,17,0,26,27,0,26,27,26,26,17,26,26,26,26,27,26,26,0,26,27,25,26,26,27,26,26,26,26,26,25,25,25,26,17,24,25,26,26,27,26,26,17,26,0,26,26,27,26,17,26,26,0,26,0,26,26,26,0,26,26,26,26,26,26,26,27,26,26,27,26,26,26,27,17,26,26,26,27,17,26,0,26,27,26,26,0,26,26,26,27,17,26,27,26,27,26,26,0,26,26,26,27,26,26,27,17,26,17,26,26,26,26,27,17,26,26,27,26,26,0,26,27,26,26,26,26,26,26,0,26,26,26,25,25,25,25,26,27,17,26,27,17,26,26,27,25,25,26,26,26,17,26,27,17,26,26,26,27,26,26,26,26,26,26,26,26,17,26,0,26,26,26,26,17,26,27,26,27,17,26,26,26,26,0,26,27,26,26,27,26,26,26,26,26,26,0,25,26,27,17,24,0,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,27,26,26,0,26,26,27,17,26,26,26,26,26,26,26,27,26,0,26,26,26,26,26,26,26,17,26,27,26,26,17,26,17,26,26,27,17,26,26,27,26,26,17,26,26,27,17,26,27,26,0,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,25,25,25,26,26,27,26,26,26,26,26,27,26,0,26,27,26,26,26,26,26,27,17,26,27,17,26,17,26,26,26,26,0,26,26,26,26,26,26,27,17,26,26,26,0,26,26,26,26,17,0,26,27,26,26,26,27,26,26,26,27,17,0,17,26,27,17,26,27,28,26,27,17,25,25,25,28,28,26,27,17,26,26,27,26,26,27,26,26,0,26,26,27,26,26,26,0,26,27,26,26,26,26,26,26,27,26,26,26,0,26,26,25,28,28,26,27,17,17,26,17,26,26,25,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,26,26,26,0,25,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,0,26,25,26,26,26,26,26,25,25,26,27,26,26,0,26,26,28,26,27,17,26,27,26,26,26,26,27,26,27,26,27,17,26,27,0,25,26,27,26,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,0,26,27,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,0,17,26,27,17,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,28,26,27,17,26,27,26,27,25,28,28,25,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,25,26,27,17,23,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,17,25,25,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,25,26,27,17,23,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,25,25,25,28,28,26,27,17,0,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,0,26,27,26,26,27,25,25,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,26,27,17,26,25,25,26,26,27,17,26,0,26,26,17,26,25,25,25,28,28,26,27,17,26,27,26,26,27,17,26,26,17,26,27,17,26,26,0,25,26,26,26,26,26,26,26,27,26,26,27,17,26,26,0,26,27,26,26,0,26,26,26,26,26,26,0,26,26,26,0,26,0,26,26,27,26,26,26,17,26,26,25,25,25,25,25,25,25,25,17,26,27,17,0,26,17,26,0,26,27,17,26,26,26,26,27,17,0,26,26,27,17,26,27,26,26,28,26,27,17,26,26,26,26,26,26,0,26,26,26,26,27,26,17,26,17,26,17,17,26,27,17,25,26,17,26,17,26,26,26,26,17,26,26,0,25,26,26,27,17,26,26,26,26,27,26,26,27,26,26,26,17,26,26,26,26,28,26,27,17,26,27,26,17,26,26,26,27,26,0,26,26,26,27,26,26,26,0,26,26,27,0,26,26,0,17,26,0,26,27,26,26,27,26,26,17,0,26,26,26,26,26,0,26,26,26,26,0,26,26,27,17,26,27,26,26,0,26,0,26,26,26,26,0,26,17,26,26,27,17,26,26,27,17,26,26,17,0,26,17,26,26,0,26,26,26,26,0,26,28,26,27,17,26,26,26,26,27,26,0,26,26,26,26,27,17,26,26,26,26,26,27,17,26,17,26,17,26,27,17,26,27,26,26,26,26,27,26,27,26,26,26,26,26,17,26,26,26,27,17,26,27,17,0,25,28,28,26,27,17,26,26,26,27,17,26,0,26,26,26,26,27,26,27,26,26,26,26,26,27,26,0,26,26,27,26,26,26,0,26,26,17,17,17,26,0,25,25,25,26,24,0,26,27,26,17,26,27,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,17,26,25,26,27,17,26,27,17,26,26,0,17,26,27,17,0,26,0,26,17,25,25,26,27,17,25,26,27,17,26,25,26,27,17,25,26,17,0,25,26,17,0,26,26,28,26,27,17,26,26,26,26,27,17,26,26,25,26,27,17,26,27,26,0,26,26,17,26,26,26,27,17,26,17,17,26,27,17,0,28,26,27,17,26,27,17,26,0,26,26,27,17,17,26,17,26,27,26,0,26,26,26,25,26,27,17,26,26,26,27,26,27,17,25,25,26,27,17,26,26,27,17,26,17,26,27,26,26,26,27,26,25,28,28,26,27,17,26,26,26,26,28,26,27,17,26,26,27,17,26,26,27,26,27,26,27,26,26,27,17,26,27,17,26,26,26,17,26,26,25,26,25,25,25,26,27,17,25,26,26,0,26,26,26,17,26,0,26,27,17,26,27,17,26,0,26,26,0,26,26,27,26,27,17,25,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,17,26,26,0,25,26,17,26,27,17,26,26,26,27,17,26,26,26,27,17,26,27,17,0,26,27,17,26,26,27,26,27,17,17,17,26,17,26,26,26,26,26,26,26,17,0,25,25,25,26,27,24,26,26,26,27,17,26,26,26,26,26,26,26,26,17,26,25,26,27,24,26,27,17,26,26,17,26,27,17,0,26,26,26,26,25,26,27,17,0,26,17,26,26,26,0,26,26,26,26,26,26,0,26,26,26,0,26,27,17,0,26,26,26,27,26,26,0,26,27,26,17,26,0,26,26,27,17,26,26,0,26,26,26,25,25,26,27,26,26,0,26,26,27,17,26,27,17,26,26,26,26,27,17,26,27,26,26,26,26,17,0,26,0,26,26,28,26,27,17,26,26,26,26,26,26,27,26,0,26,26,0,26,17,26,27,26,26,27,17,26,17,17,26,26,26,26,26,0,26,27,26,26,26,27,17,26,27,26,0,26,27,26,26,26,17,26,26,26,26,26,17,28,26,27,17,26,27,17,26,26,27,17,26,27,26,0,26,25,25,25,28,28,26,27,17,17,26,27,17,26,26,26,26,26,26,26,27,26,26,26,26,26,0,26,26,26,26,0,26,27,0,26,17,26,26,17,26,26,26,26,26,27,17,26,26,26,0,28,26,27,17,26,26,26,26,0,26,26,26,26,27,26,27,26,27,17,26,0,26,26,26,27,26,26,26,26,0,26,27,17,26,26,17,26,26,26,26,26,26,0,26,27,17,26,27,26,26,0,26,26,27,17,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,26,0,26,26,26,26,25,25,26,27,17,25,26,17,26,27,17,0,26,0,26,26,26,17,26,27,17,26,26,26,26,26,26,27,17,26,26,17,26,26,27,17,25,17,26,17,26,26,0,26,27,17,0,26,26,26,26,26,27,26,27,17,0,26,26,26,0,26,26,26,26,26,26,27,26,17,28,26,27,17,26,0,26,26,27,17,25,25,25,26,24,26,26,25,28,28,25,25,26,27,17,25,26,17,25,26,17,0,26,26,26,26,17,26,27,17,26,27,17,26,0,28,26,27,17,26,26,27,25,28,28,25,26,27,17,26,27,17,28,26,27,17,26,26,26,26,25,26,27,17,26,26,26,26,26,27,0,26,26,27,26,27,17,0,26,26,25,25,26,27,17,24,26,0,26,26,25,26,0,26,0,26,26,26,27,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,26,0,26,26,27,26,26,26,26,27,17,26,26,26,26,26,17,25,26,26,27,17,25,28,28,26,27,17,17,26,17,26,26,26,25,28,28,25,26,27,17,26,27,17,26,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,25,25,26,27,17,26,25,25,25,25,26,27,17,26,17,26,26,26,25,26,17,26,26,26,26,0,26,26,26,27,17,26,28,26,27,17,26,0,26,27,17,26,26,26,26,26,26,27,26,27,26,26,27,17,0,26,27,17,26,26,26,27,26,0,26,26,27,26,27,0,26,27,17,26,26,27,26,26,0,26,0,26,26,26,26,17,26,27,17,26,27,17,26,25,25,25,25,28,28,26,27,17,26,27,26,0,26,27,17,26,0,26,0,26,26,17,26,17,0,26,26,27,17,26,27,17,26,27,17,26,26,26,17,26,0,26,26,26,26,27,26,17,26,26,26,26,27,17,26,17,26,27,17,26,26,26,27,26,27,17,26,17,26,17,26,17,26,17,26,17,26,27,17,26,17,26,26,26,26,26,25,26,27,26,26,26,26,25,26,26,0,26,26,0,26,0,26,26,17,26,26,27,17,26,26,27,26,26,26,26,27,17,26,25,28,28,25,26,27,17,0,26,27,26,26,26,26,26,27,17,26,26,27,26,27,17,0,26,26,0,26,26,26,25,26,27,0,26,27,0,26,17,26,27,17,26,27,26,27,26,27,26,17,0,26,17,26,26,27,26,26,26,27,26,26,26,26,26,25,26,26,17,26,27,17,0,26,17,26,27,17,26,17,26,27,17,26,17,26,26,26,26,27,25,25,25,25,26,27,17,25,26,27,17,0,26,0,26,26,26,25,26,27,17,26,17,26,0,25,26,26,27,17,26,17,26,27,17,26,26,26,26,26,25,26,27,17,24,26,26,26,26,26,26,27,17,25,25,25,26,24,26,28,26,27,17,26,26,27,25,26,25,28,28,26,27,17,26,26,26,26,25,26,26,0,26,27,25,26,27,17,26,17,26,25,26,27,0,26,28,26,27,17,26,26,26,26,26,27,26,26,26,27,26,27,26,26,27,26,27,26,25,26,27,17,26,27,0,26,26,26,26,27,0,26,28,26,27,17,26,26,27,26,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,27,26,26,27,26,26,26,26,26,27,26,26,26,26,26,26,26,26,25,25,26,27,17,26,26,26,26,27,26,27,26,26,25,26,25,26,25,26,26,26,26,26,17,26,26,26,17,26,27,26,27,26,26,27,26,26,28,26,27,17,26,26,27,17,26,25,26,27,26,26,26,27,17,26,0,26,27,26,17,26,26,27,26,26,0,26,17,26,27,0,26,27,26,26,17,0,26,26,26,0,26,27,17,26,26,26,26,26,26,26,27,26,26,26,27,26,26,26,27,26,0,26,26,26,26,26,28,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,26,0,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,27,17,0,26,27,17,26,26,26,26,26,25,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,27,26,26,17,26,26,26,17,0,26,27,17,26,26,26,26,26,0,26,0,26,26,27,0,26,26,26,26,0,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,26,26,17,26,26,27,26,26,26,26,26,27,17,25,26,24,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,27,26,26,27,26,27,17,0,26,26,25,25,25,26,27,17,25,26,17,26,0,26,26,0,26,26,26,27,26,26,0,26,26,27,17,26,26,0,26,17,26,26,26,0,26,26,26,26,17,26,26,26,26,26,26,27,17,26,26,25,26,26,27,17,26,27,17,0,26,0,26,27,26,26,26,26,0,26,28,26,17,0,26,27,17,26,26,26,26,26,27,17,26,26,26,28,26,27,17,0,26,27,26,26,26,0,26,26,27,26,26,26,26,0,26,27,26,26,28,25,28,28,26,27,17,26,27,17,26,26,26,0,26,26,17,0,26,27,17,26,26,26,27,0,26,26,26,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,25,25,28,28,25,26,27,17,26,27,26,27,17,28,26,27,17,26,27,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,28,28,26,27,17,0,28,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,25,26,27,17,25,26,27,24,25,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,26,27,0,25,25,25,26,27,17,24,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,25,26,27,26,27,26,27,26,27,26,27,17,0,26,26,26,26,17,26,0,26,26,26,27,0,25,28,28,25,26,27,17,26,26,26,27,17,17,26,27,17,0,26,17,25,28,25,17,26,27,17,0,26,25,26,26,27,26,26,26,26,26,26,26,26,27,25,28,28,26,27,17,17,17,26,17,26,0,26,26,26,27,26,27,17,25,28,28,26,27,17,26,25,26,27,26,17,25,26,25,25,26,27,17,26,27,17,26,17,26,26,27,25,26,25,25,26,27,17,25,26,27,17,25,25,26,27,17,25,26,28,28,28,28,28,26,17,25,26,27,17,0,26,27,17,17,26,26,17,26,27,26,27,17,26,26,17,25,26,27,17,26,26,26,17,26,27,17,26,27,26,27,26,17,28,26,27,17,26,26,27,26,27,17,17,25,26,27,17,26,27,17,26,26,17,26,26,27,17,26,27,26,27,26,26,26,25,25,25,25,26,27,17,0,23,25,26,27,17,26,26,26,26,25,26,26,26,27,26,26,26,25,25,25,26,27,17,17,17,25,26,17,26,0,26,25,25,25,26,27,17,26,26,0,26,25,26,0,26,26,27,26,26,27,17,26,17,26,17,26,17,26,17,26,17,0,26,17,0,26,0,26,26,27,17,26,26,26,27,17,26,27,26,26,27,26,27,17,26,26,26,27,26,27,17,26,0,26,26,27,26,0,25,28,28,26,27,17,0,26,27,25,26,17,26,17,0,26,26,26,26,26,26,26,26,25,26,27,17,26,28,26,27,17,17,26,25,26,26,26,17,25,26,27,17,24,26,17,26,27,17,26,17,26,17,25,26,27,17,26,25,26,27,28,17,17,26,27,17,26,0,26,0,26,26,26,26,27,17,26,26,25,28,28,26,27,17,26,26,26,26,26,0,26,26,26,27,17,25,26,17,26,26,25,26,27,17,26,26,27,0,26,26,17,26,27,17,17,17,26,17,26,17,26,17,26,17,0,26,27,17,26,27,17,26,27,26,26,26,26,0,26,27,25,26,0,26,17,26,0,26,0,26,26,26,26,0,26,27,17,17,26,27,17,26,26,26,27,17,26,26,26,26,26,27,26,25,26,26,17,25,25,26,27,17,25,26,27,17,26,27,17,26,17,0,26,17,0,26,17,25,26,24,26,26,27,17,26,26,26,0,26,17,17,26,26,25,26,17,26,17,26,26,26,0,26,26,26,26,26,17,26,27,26,17,26,17,26,17,26,17,26,17,0,25,26,17,26,27,17,26,17,26,26,26,26,26,26,25,17,26,17,26,26,27,17,0,26,26,26,17,0,26,26,27,26,26,26,26,26,27,17,26,28,26,27,17,26,26,0,26,26,26,26,26,27,26,26,0,26,25,26,27,26,26,26,26,17,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,26,17,26,17,25,26,26,26,26,26,26,0,26,17,25,28,28,26,27,17,17,17,26,27,17,26,0,26,26,26,0,26,27,26,26,26,17,28,25,25,25,26,27,17,25,26,17,25,25,25,25,26,17,24,25,26,26,27,26,27,26,26,28,26,27,17,26,26,27,17,0,26,26,26,26,0,26,27,17,26,26,26,27,0,26,0,26,26,27,26,26,26,26,26,25,28,28,26,27,17,0,26,17,26,0,26,26,26,26,26,0,26,27,17,26,26,26,26,26,26,26,26,17,26,26,25,26,26,17,26,26,27,17,26,25,28,28,26,27,17,26,26,26,27,17,26,26,26,27,26,26,26,26,27,26,26,17,26,27,17,26,0,26,27,26,17,26,26,27,17,26,0,26,27,26,27,26,26,26,27,26,26,26,26,27,0,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,0,25,26,27,17,26,26,26,27,17,0,26,26,27,17,26,26,26,17,26,26,26,0,26,26,26,26,27,17,26,25,25,25,25,26,27,17,26,26,26,26,0,26,0,26,0,26,26,26,26,0,26,27,26,26,0,26,27,0,26,27,17,26,26,26,26,26,26,26,27,26,26,27,17,26,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,0,26,26,26,26,0,26,28,26,27,17,0,26,27,26,27,26,26,0,26,26,26,26,0,26,26,27,17,26,26,0,26,26,26,26,27,26,26,27,17,26,26,26,26,26,27,26,26,26,26,26,26,26,26,0,26,0,26,26,26,27,17,26,26,26,0,26,26,26,26,26,26,27,17,0,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,26,27,26,26,26,26,26,27,17,26,27,26,27,17,26,27,17,26,26,0,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,0,26,26,26,26,27,26,26,26,26,26,0,26,26,0,26,26,0,26,26,27,17,26,17,26,27,17,26,26,26,26,27,0,25,28,28,26,27,17,0,26,26,26,27,26,27,0,26,27,17,0,26,25,26,26,26,26,25,26,27,17,26,26,26,26,27,26,26,0,26,27,26,26,17,26,0,17,17,26,17,26,26,26,26,26,27,26,26,0,26,25,17,25,26,17,26,0,26,17,0,26,17,26,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,0,26,27,26,27,0,26,27,26,27,17,26,27,17,0,26,27,25,25,25,25,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,0,26,27,26,27,26,27,25,25,28,28,26,27,17,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,28,26,27,17,26,27,26,27,17,0,26,27,26,25,26,27,25,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,25,25,25,26,27,17,0,26,27,26,27,26,27,25,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,25,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,17,17,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,25,28,28,26,27,17,26,27,26,27,26,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,0,26,27,26,27,0,26,27,17,26,27,0,25,26,27,26,27,17,25,26,27,26,27,28,28,28,28,28,26,27,17,26,27,25,28,28,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,17,26,26,27,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,0,26,27,17,26,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,25,25,28,28,26,27,17,0,26,27,26,27,17,26,27,17,17,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,25,25,26,27,17,25,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,25,26,27,26,27,26,27,26,26,26,26,27,17,26,26,26,26,26,26,26,28,26,27,17,26,27,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,0,26,26,26,27,17,26,26,26,26,26,27,17,0,26,26,26,27,26,26,26,0,26,26,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,25,26,26,0,26,26,0,26,26,26,26,26,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,26,25,26,27,17,28,26,27,17,26,26,26,26,26,26,26,17,28,26,27,17,26,26,26,27,17,0,26,26,26,26,27,17,26,26,26,26,27,17,26,0,25,25,25,26,24,26,0,26,26,26,27,17,26,25,26,27,17,28,26,27,17,26,26,26,26,26,27,26,26,27,0,26,26,26,27,17,26,26,26,25,26,27,17,25,28,28,25,25,28,28,25,28,28,25,28,28,25,28,28,25,28,28,26,27,17,26,26,26,25,26,26,25,26,26,26,25,28,28,26,27,17,26,26,26,26,26,27,26,26,26,26,0,26,26,0,26,26,26,26,26,27,26,26,25,25,25,26,24,26,27,17,26,26,26,0,26,26,25,25,25,25,25,25,25,25,28,28,25,25,25,25,26,27,17,26,27,26,27,26,26,0,26,27,17,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,25,25,26,27,26,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,17,25,26,27,17,26,27,17,26,27,25,25,26,27,17,0,25,26,27,0,26,27,26,27,26,27,0,25,26,27,25,28,28,26,27,17,25,26,27,26,27,26,27,17,25,26,27,17,26,0,26,27,17,26,26,25,25,25,26,27,17,26,26,26,27,17,26,26,25,26,26,26,27,25,26,27,17,26,26,25,26,27,26,26,26,27,26,26,25,26,27,17,26,0,26,26,0,26,26,0,26,26,26,26,26,26,27,17,26,17,26,26,27,17,0,26,26,26,27,17,0,26,27,17,26,26,26,28,25,26,17,26,25,25,26,27,26,0,26,26,27,25,26,27,26,26,26,0,26,26,26,26,26,26,26,26,26,25,26,26,26,25,25,25,25,25,26,27,17,24,26,0,26,25,26,26,26,26,26,26,26,26,26,27,26,27,26,27,26,27,17,26,27,25,25,26,27,26,27,25,28,28,25,26,27,17,26,27,26,27,17,26,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,25,28,28,26,27,17,26,27,26,27,25,25,25,28,28,25,28,28,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,0,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,28,26,27,0,26,27,17,26,27,0,25,26,27,26,27,25,28,26,27,17,25,26,27,26,27,0,26,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,26,27,26,27,26,27,17,26,27,26,27,25,25,25,25,25,26,27,17,0,26,27,25,26,27,26,27,26,27,25,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,28,28,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,25,28,28,25,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,0,26,26,27,26,27,28,25,26,27,17,26,27,17,26,27,25,26,27,0,26,27,26,27,26,25,17,26,27,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,26,27,17,26,27,0,26,26,27,0,26,27,26,27,26,27,17,25,25,26,27,17,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,25,26,27,26,27,0,25,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,25,26,27,26,27,17,17,17,26,27,26,27,0,26,27,17,25,17,25,26,27,17,26,17,26,27,26,27,26,27,28,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,25,26,27,24,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,25,26,27,17,0,25,25,17,17,26,27,26,27,26,27,0,26,27,17,26,27,17,25,25,25,26,27,17,0,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,26,26,26,26,26,27,0,26,26,26,27,26,26,26,26,26,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,24,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,0,26,27,25,26,27,17,0,26,27,26,27,25,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,26,26,27,26,26,26,17,26,26,0,26,27,26,27,26,25,26,27,17,26,26,17,0,26,17,26,26,26,26,26,26,26,0,26,26,26,26,27,26,26,26,0,26,26,27,26,27,26,17,17,26,26,26,26,26,26,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,25,26,26,26,26,0,26,26,27,0,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,17,26,27,17,26,26,26,26,27,17,25,25,25,26,24,17,26,27,17,26,26,26,26,26,27,17,26,27,17,26,26,26,26,0,26,0,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,0,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,25,25,25,25,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,0,25,25,26,27,17,28,25,17,17,17,25,26,27,17,25,26,27,17,26,27,17,0,25,26,27,26,27,28,28,28,26,27,17,26,27,25,25,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,24,26,27,17,26,27,26,27,26,27,26,27,0,26,26,27,26,27,25,26,27,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,26,27,17,26,28,26,17,26,0,26,26,27,17,26,26,0,26,25,26,26,26,17,26,26,28,26,17,0,26,26,27,17,26,26,28,26,17,26,26,17,26,27,26,0,26,17,26,28,26,27,17,26,27,17,26,26,17,26,26,26,26,26,26,26,0,26,26,26,26,26,27,26,26,28,26,17,26,26,26,26,27,17,26,27,17,26,26,26,17,0,26,26,26,26,26,25,25,26,27,17,0,26,25,26,26,26,26,26,17,26,26,26,26,25,26,17,26,26,26,26,25,26,27,24,0,26,26,26,26,0,26,27,26,26,25,26,26,27,25,26,26,27,26,26,26,17,26,26,27,17,26,27,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,25,26,26,27,0,26,26,26,26,26,26,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,25,25,25,25,25,25,25,25,25,26,27,17,25,26,27,17,25,25,25,26,27,17,25,26,27,26,27,26,27,28,26,27,17,26,27,17,26,27,26,27,17,0,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,26,26,26,26,26,26,25,26,26,26,26,26,26,26,26,26,27,26,26,26,26,27,28,26,27,17,17,17,26,0,26,0,26,26,17,0,26,26,26,26,17,26,26,26,26,0,26,27,26,26,26,26,27,26,26,0,26,26,27,17,26,27,26,17,26,26,26,27,0,26,26,27,17,0,26,0,25,25,25,28,28,26,27,17,26,25,28,28,25,26,27,17,25,26,17,25,25,28,28,26,27,17,17,26,26,26,27,26,25,28,28,26,27,17,25,26,27,26,26,26,26,27,0,26,25,26,27,26,0,26,26,26,25,26,27,26,26,26,26,27,25,26,27,26,26,27,25,26,27,17,26,25,26,27,0,17,17,26,26,0,26,26,26,26,26,26,26,26,26,25,26,27,0,26,17,0,26,0,26,17,26,26,26,25,26,27,26,27,0,26,26,26,26,27,0,26,26,26,26,26,26,27,26,0,26,0,26,25,26,27,17,26,26,26,27,17,26,0,26,25,26,27,17,26,0,26,17,25,17,25,26,17,26,17,26,27,0,25,26,27,17,26,26,27,17,26,26,26,26,26,26,0,26,27,28,26,17,26,26,0,26,0,26,26,26,27,26,26,26,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,25,26,27,26,27,26,26,27,26,26,26,27,17,26,26,26,26,25,28,28,26,27,17,26,27,17,25,25,26,27,17,0,26,0,25,25,25,28,28,26,27,17,25,26,24,26,26,27,26,27,26,26,26,27,25,25,26,27,17,26,25,26,26,26,26,26,17,26,17,28,26,17,0,26,25,26,25,26,27,26,27,26,26,27,26,26,26,26,26,26,26,26,26,17,26,17,0,26,26,0,26,28,26,27,17,26,26,27,25,26,25,17,25,26,27,17,0,26,26,0,26,26,17,26,25,25,26,27,17,28,26,27,17,0,26,26,0,26,26,26,25,26,27,26,26,26,27,0,26,26,26,0,26,26,26,26,26,0,25,26,17,26,26,27,17,26,0,26,26,26,26,26,26,26,25,25,26,24,26,27,0,26,26,27,26,26,27,0,26,17,26,0,26,27,17,26,27,17,26,25,26,27,17,25,26,26,26,25,26,26,27,17,26,27,0,25,26,24,25,26,26,26,26,26,26,26,26,26,26,27,17,26,26,27,26,26,26,26,26,0,26,26,27,26,17,26,26,26,26,27,26,0,26,17,25,26,27,25,26,26,26,0,26,26,26,26,27,26,26,26,26,27,17,26,26,26,27,17,26,27,17,26,26,26,26,27,26,26,25,26,26,26,25,25,26,27,26,26,26,17,26,26,26,26,26,25,26,27,26,26,27,26,26,26,26,0,26,0,26,27,25,26,27,26,27,17,26,27,17,25,25,25,28,28,26,27,17,26,27,26,26,26,26,17,26,27,26,26,26,26,27,17,26,0,26,26,27,17,0,26,17,28,25,25,26,27,17,26,26,17,26,26,26,26,25,28,25,25,17,26,27,17,26,26,26,26,25,26,26,26,26,26,26,27,17,26,25,26,27,17,26,26,27,26,26,26,26,26,17,26,0,26,27,26,0,26,17,26,26,0,26,26,17,28,26,26,27,17,0,26,26,17,26,27,26,25,26,27,26,17,26,26,26,27,17,26,17,26,26,26,17,26,27,17,0,26,0,26,0,26,25,25,26,27,17,25,25,25,25,28,28,26,27,17,25,26,27,26,27,26,17,26,27,25,26,27,17,0,17,17,17,26,27,0,26,17,26,27,17,26,28,26,17,26,17,26,26,26,27,17,0,26,26,26,17,26,26,17,0,25,26,27,25,26,27,17,17,26,26,17,25,26,25,26,26,17,26,17,26,0,26,26,28,26,27,17,26,27,17,26,26,25,26,0,26,26,26,26,17,25,25,25,26,25,26,26,27,26,17,26,26,17,26,17,25,26,27,17,26,0,26,0,26,17,26,26,26,26,27,17,26,17,26,27,26,26,27,26,17,26,27,26,26,17,26,26,26,26,25,26,17,26,27,26,26,26,27,17,0,26,26,25,26,27,17,26,17,26,26,26,27,26,17,26,26,27,26,26,26,27,17,28,26,27,17,26,0,26,27,17,25,26,27,17,26,27,17,26,26,17,26,26,26,26,0,26,28,26,17,26,26,26,26,26,26,26,26,0,26,26,26,0,26,26,26,17,17,26,26,17,26,26,17,26,26,26,27,17,26,27,26,27,26,26,25,26,26,0,26,26,26,26,26,26,27,17,0,26,26,27,17,26,26,0,25,25,26,27,17,26,26,26,26,26,25,26,26,0,26,26,26,26,26,27,17,26,26,25,26,17,26,17,26,27,26,27,26,26,17,26,26,17,0,26,26,26,26,0,26,26,26,0,26,25,26,17,25,26,26,26,27,17,26,17,25,26,17,0,25,25,26,17,26,17,25,26,17,25,26,17,25,26,26,0,26,26,26,27,17,26,0,26,26,27,26,26,25,26,27,17,25,26,27,17,25,26,27,17,26,27,17,26,26,17,26,25,26,26,26,27,17,26,0,26,25,26,27,23,26,27,17,25,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,25,26,0,28,26,27,17,0,17,26,26,27,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,17,17,26,25,26,27,26,26,17,0,26,0,28,26,27,17,26,26,27,26,26,26,26,27,26,26,27,17,26,17,26,26,26,0,26,26,17,26,0,26,27,25,28,28,26,27,17,25,26,26,27,17,26,26,0,26,26,26,26,26,26,26,26,27,26,26,26,27,26,0,26,27,17,0,26,26,17,17,26,0,26,26,26,26,0,26,26,0,26,26,27,26,27,26,26,27,17,0,26,26,26,27,25,26,27,17,26,26,25,25,25,25,26,27,17,26,25,26,27,17,26,26,26,26,26,27,0,26,26,27,17,26,27,26,27,26,26,0,26,26,25,28,28,26,27,17,0,26,27,26,27,25,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,25,28,28,25,25,25,28,28,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,17,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,28,28,26,27,17,25,25,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,25,26,27,26,27,25,28,28,26,27,17,26,27,26,27,25,26,27,26,0,26,27,17,25,26,26,17,25,26,27,26,27,26,27,26,27,26,27,26,27,25,17,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,28,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,26,27,0,17,17,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,17,0,26,27,0,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,17,26,27,26,27,26,27,26,26,27,17,26,27,17,0,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,26,27,26,27,17,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,25,25,26,27,25,25,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,0,25,25,25,25,26,27,17,26,27,26,27,26,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,0,26,27,26,27,26,27,0,26,27,25,26,27,17,26,27,17,26,27,26,27,25,25,25,25,25,28,25,25,26,27,17,26,27,26,27,25,26,27,25,26,27,26,27,17,26,28,28,28,28,28,28,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,17,0,26,27,26,27,0,26,27,26,27,25,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,0,26,27,26,27,26,27,0,25,25,25,25,26,27,17,0,25,26,27,17,26,27,26,27,26,27,17,28,26,27,17,26,27,26,27,26,27,17,26,27,26,26,26,27,17,26,26,27,17,26,27,26,26,27,26,26,27,17,0,26,27,17,26,27,17,0,26,26,27,26,26,26,17,26,26,0,26,26,26,25,26,27,17,26,26,26,27,26,26,27,26,27,25,26,27,26,26,26,17,0,26,27,26,27,26,25,26,26,26,28,26,17,26,27,17,26,27,26,25,26,27,17,26,26,25,26,27,0,26,27,17,25,26,27,26,25,26,26,26,26,27,17,0,26,26,26,25,26,27,17,25,28,28,26,27,17,25,25,26,26,27,17,26,26,26,25,26,26,26,27,17,25,26,26,26,26,25,26,27,0,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,28,28,26,27,17,25,26,27,17,0,26,27,26,27,26,27,25,26,27,26,27,0,25,26,27,0,26,27,17,26,27,26,27,26,27,25,26,27,25,26,27,26,27,26,27,26,0,26,27,25,26,27,25,26,27,26,27,26,27,25,26,27,17,0,25,25,26,27,17,0,26,27,26,27,17,0,25,28,28,25,26,27,17,25,26,27,17,26,27,25,26,27,26,27,26,27,25,28,28,26,27,17,25,25,26,27,17,25,25,26,27,26,27,0,26,27,25,26,27,26,27,25,25,26,27,17,0,25,26,27,0,26,27,17,26,27,17,26,27,26,27,25,26,27,25,26,27,17,25,26,27,17,17,17,17,17,17,17,26,27,26,27,25,26,27,26,27,17,26,27,26,27,25,26,27,25,26,27,26,27,26,27,26,27,0,26,27,25,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,25,26,27,17,25,25,25,25,26,27,17,26,27,17,25,25,26,27,17,25,28,28,26,27,17,26,27,26,27,25,25,26,27,26,27,25,25,26,27,17,25,25,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,25,25,26,27,17,26,27,0,26,25,26,27,17,0,26,27,26,27,17,26,27,25,25,26,27,17,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,25,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,17,25,28,28,25,25,26,27,17,26,27,17,26,27,26,27,25,26,27,17,25,25,26,27,26,27,17,25,25,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,25,26,27,17,25,25,26,27,17,26,27,17,0,26,27,17,25,26,27,17,26,27,17,26,27,17,26,27,17,25,25,25,26,27,17,28,26,27,17,26,27,0,26,27,17,26,27,26,27,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,0,25,28,28,26,27,17,25,26,27,25,26,27,17,0,26,27,26,27,17,26,27,17,17,26,27,25,26,27,17,25,25,25,26,27,17,24,25,25,26,27,26,27,26,27,26,27,26,27,0,25,25,25,25,25,26,27,17,25,25,26,27,17,26,27,17,26,27,17,0,17,26,27,17,25,26,27,17,26,27,17,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,26,27,0,26,27,17,25,28,28,25,25,25,26,27,17,25,25,26,27,17,0,25,26,27,17,25,26,27,17,25,26,27,17,26,27,17,26,27,17,25,25,28,28,26,27,17,26,27,17,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,25,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,17,0,26,27,17,26,27,17,0,26,27,0,26,27,25,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,25,25,26,27,24,26,27,26,27,26,27,25,25,25,17,25,26,27,17,26,27,0,26,27,17,25,26,27,26,27,17,0,28,26,27,17,0,26,26,27,17,26,27,26,27,17,25,26,27,0,26,27,26,27,26,27,26,26,27,26,27,25,28,28,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,25,25,26,27,17,26,27,25,26,27,26,27,26,27,25,26,27,17,25,26,27,25,26,27,0,28,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,25,17,26,27,17,0,26,27,17,0,26,27,0,25,28,28,17,25,26,27,17,26,27,25,28,28,26,27,17,0,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,25,26,27,17,25,26,27,17,26,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,25,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,25,28,28,26,27,17,26,27,0,26,27,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,25,26,27,26,27,23,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,0,17,26,27,17,26,27,0,26,27,25,26,27,0,26,27,26,27,0,26,27,26,27,28,26,27,17,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,0,26,27,0,25,26,27,26,27,17,25,25,25,26,27,17,26,0,25,25,26,27,17,26,26,25,26,26,27,17,17,17,26,27,26,26,0,26,25,26,25,26,26,26,26,26,28,26,27,17,26,25,17,17,17,17,17,17,17,25,26,27,17,0,26,0,26,26,25,25,26,27,26,26,25,26,26,26,17,26,26,26,26,17,26,26,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,0,17,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,17,26,17,26,26,27,17,26,26,17,26,26,0,26,27,26,26,27,17,26,26,26,17,26,26,27,17,26,26,17,26,26,27,17,26,17,17,26,27,0,25,26,27,0,26,26,26,17,26,27,26,17,26,26,26,26,27,26,25,25,26,27,17,26,26,26,26,27,17,26,26,28,26,27,17,26,17,26,0,26,26,0,26,27,17,28,25,25,26,27,17,0,25,26,17,25,26,17,26,27,26,26,26,0,26,27,26,28,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,27,17,26,26,26,26,0,26,26,26,27,0,26,26,26,26,27,0,26,27,26,26,26,26,27,26,26,26,0,26,26,26,27,26,26,26,26,26,26,0,26,26,27,25,26,26,26,26,26,26,26,26,26,0,26,26,26,0,26,26,25,25,26,27,17,26,26,26,25,17,25,26,17,26,26,17,26,17,0,28,26,27,17,26,0,26,26,0,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,25,25,26,27,17,26,27,26,26,27,26,17,17,26,26,26,27,17,26,27,26,26,26,26,17,26,26,26,26,26,26,27,0,26,27,26,17,0,26,26,17,26,25,25,25,26,27,17,0,26,26,27,25,26,27,0,26,27,17,26,27,26,0,26,27,17,17,26,26,26,27,25,28,28,26,27,17,26,27,17,26,27,0,26,27,0,26,27,0,26,27,17,17,26,27,25,28,28,25,26,27,17,26,27,26,27,17,0,26,27,17,0,26,27,26,27,26,27,0,25,26,27,17,26,27,25,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,25,25,28,28,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,26,26,27,0,25,25,26,27,17,26,27,26,27,25,17,26,27,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,28,26,27,17,17,17,26,27,25,26,27,17,26,27,26,27,26,27,28,26,27,17,26,27,26,27,0,25,25,25,26,27,17,23,23,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,25,26,27,17,17,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,28,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,26,26,26,26,26,0,26,25,26,26,0,26,27,28,26,17,26,26,27,17,0,26,27,26,17,26,26,26,26,26,26,27,25,26,17,25,25,26,27,17,26,26,26,26,27,17,26,27,0,26,27,17,26,27,26,26,27,0,26,26,26,26,0,26,26,26,27,17,25,25,23,25,28,25,26,27,17,26,26,26,26,25,26,27,26,26,26,28,28,26,27,17,17,26,17,26,26,26,26,26,0,26,26,26,0,26,26,26,27,26,0,26,27,17,26,26,26,26,17,26,26,26,27,17,26,17,26,26,27,17,26,26,17,26,27,26,26,26,0,26,26,26,27,17,26,26,25,28,28,26,27,17,26,26,26,26,26,0,26,26,26,26,26,17,26,26,26,25,26,26,27,17,26,25,28,28,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,17,26,27,17,26,27,26,27,26,27,0,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,25,25,26,27,17,25,25,17,26,27,17,26,27,26,27,25,25,25,26,27,17,26,27,25,26,25,26,26,26,26,26,0,26,25,26,26,26,17,17,26,27,17,26,26,26,0,26,27,0,26,27,17,26,26,26,17,26,26,26,26,26,26,26,27,17,0,26,17,26,26,27,17,28,26,27,17,26,26,27,26,17,26,26,17,26,27,17,26,0,26,17,26,17,17,26,26,27,25,28,28,26,27,17,26,17,26,26,26,27,26,17,26,0,26,0,26,26,27,17,0,26,26,27,26,26,27,17,26,26,25,26,27,17,25,17,25,26,27,17,26,17,17,26,27,17,26,17,26,17,26,17,26,27,26,25,26,27,17,26,27,17,0,26,27,17,26,26,17,25,25,25,26,27,17,0,26,26,26,17,0,26,17,26,25,26,26,17,26,27,17,0,26,26,26,26,27,26,25,28,28,26,27,17,17,26,26,0,26,26,26,27,26,27,26,0,26,26,26,17,26,17,26,17,0,26,17,26,17,26,27,17,26,27,17,26,17,26,17,26,17,26,17,26,17,26,17,26,26,26,27,17,17,26,27,26,26,27,17,26,17,26,17,26,17,26,17,26,17,26,17,26,27,26,26,17,26,26,17,26,26,17,17,26,27,17,26,17,0,26,25,26,17,26,17,26,26,26,26,17,26,26,27,17,26,26,26,26,26,26,28,26,27,17,26,27,26,17,26,27,17,26,26,26,26,17,26,26,0,26,26,26,26,26,17,26,27,26,27,26,26,0,26,0,26,26,0,25,26,27,17,26,27,26,26,0,26,26,26,26,27,26,26,26,26,26,27,26,27,26,26,27,17,26,26,27,17,26,26,26,26,17,26,26,26,26,26,26,26,17,26,17,26,26,26,26,26,26,26,27,17,26,26,26,25,26,26,26,26,26,26,26,25,28,28,26,27,17,26,26,27,26,26,26,0,26,26,26,27,17,26,17,26,26,27,26,26,25,26,24,26,27,17,26,0,26,17,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,27,26,26,26,26,0,26,26,27,17,25,28,28,26,27,17,0,26,26,26,26,27,26,17,26,26,26,26,26,26,0,26,26,26,26,0,26,27,26,27,17,26,0,26,27,26,26,26,26,0,26,26,26,26,26,26,26,26,27,26,26,27,17,0,26,17,26,27,26,26,27,17,26,26,27,26,26,26,26,26,26,26,0,26,27,17,26,26,26,26,27,26,26,27,26,0,26,28,26,27,17,26,26,26,0,26,0,26,17,26,26,26,27,17,26,27,26,27,26,27,26,26,26,26,26,17,26,26,27,26,26,26,26,17,26,0,26,28,26,17,26,26,0,26,26,26,26,26,26,0,26,27,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,17,26,27,17,26,26,26,26,27,17,26,26,26,27,26,26,26,26,0,26,26,27,26,26,0,26,27,26,25,26,27,17,26,27,25,28,28,25,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,27,17,26,26,26,17,0,26,0,26,26,27,26,26,26,26,0,26,26,26,25,26,27,17,26,26,25,26,27,26,26,26,27,26,27,17,25,26,27,26,27,17,26,26,26,26,25,26,27,26,26,26,26,26,27,25,26,27,26,26,26,26,27,26,26,26,0,26,25,25,25,26,24,26,27,17,26,17,26,26,25,25,25,26,27,17,28,26,17,26,26,0,26,26,27,0,25,26,26,26,26,26,26,26,26,0,26,26,26,26,17,0,26,0,26,0,26,0,25,26,26,17,26,26,0,26,0,26,26,27,17,26,26,27,17,26,26,0,26,26,25,26,27,0,26,26,26,26,25,28,28,26,27,17,26,26,26,26,27,17,25,26,27,17,26,26,26,26,26,26,27,26,26,26,26,26,26,0,26,0,26,26,27,26,26,26,26,0,26,26,26,26,25,26,27,26,27,17,26,26,26,26,26,26,26,26,26,26,28,26,17,25,26,27,17,26,26,27,17,26,26,27,17,26,26,26,0,26,17,26,27,17,26,17,26,26,26,26,0,26,25,28,28,26,27,17,26,26,26,27,26,25,26,27,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,27,26,26,27,26,26,0,26,26,26,0,25,26,27,17,26,27,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,26,17,26,27,17,26,26,26,0,26,26,26,26,26,27,26,27,17,26,26,26,26,26,0,26,26,26,0,26,0,26,17,26,27,25,26,26,0,26,26,26,26,26,25,28,28,26,27,17,26,27,17,26,26,26,17,25,26,27,17,25,26,24,26,25,26,27,17,0,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,26,26,27,17,25,25,25,25,25,25,25,26,27,17,0,26,26,0,26,26,26,27,17,0,26,26,26,27,17,26,26,26,26,26,27,17,0,26,26,27,26,17,26,26,0,26,26,27,17,26,26,26,26,25,26,26,26,27,17,26,26,26,26,26,26,27,17,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,0,26,26,27,0,26,26,25,25,25,25,26,27,17,26,26,27,26,26,26,26,26,26,0,26,25,25,25,25,25,25,26,27,17,26,26,26,26,27,0,26,26,26,26,26,26,26,26,0,26,26,27,17,26,26,26,26,27,26,26,0,26,26,26,17,26,26,26,26,26,26,26,26,26,0,26,26,26,17,26,26,26,26,26,26,26,26,26,0,26,26,0,26,26,27,26,26,26,26,0,25,26,17,17,26,17,26,26,0,26,27,17,26,26,26,26,0,26,26,28,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,26,26,27,26,26,27,17,17,26,26,26,26,26,26,26,26,27,26,26,26,27,17,26,0,26,26,26,25,28,28,26,27,17,25,25,25,26,24,26,26,26,26,25,26,27,26,26,26,26,25,26,27,26,26,26,26,26,26,27,26,26,26,17,26,17,26,27,26,26,26,27,17,26,26,27,17,26,26,26,26,26,26,25,25,26,27,17,26,0,26,26,25,26,26,26,25,26,27,0,26,26,26,26,26,26,17,17,26,26,26,26,27,0,17,26,26,0,26,26,26,0,26,26,26,25,26,0,26,26,17,25,28,28,26,27,17,26,25,26,27,26,26,27,17,26,26,25,25,25,25,28,28,26,27,17,26,27,17,26,27,25,26,25,26,27,0,25,26,27,17,26,0,26,26,26,26,26,26,0,26,26,26,17,26,27,17,25,28,28,26,27,17,0,25,26,27,26,26,27,17,26,26,27,17,26,26,25,25,28,28,26,27,17,26,17,26,17,17,26,26,28,26,17,26,26,26,26,17,26,26,17,26,0,26,25,26,27,26,17,26,27,26,17,17,26,25,28,28,26,27,17,0,26,27,26,26,26,26,0,25,26,27,0,25,26,24,26,25,26,27,25,28,28,17,26,27,17,26,26,26,26,25,26,27,17,26,27,17,26,28,25,26,27,17,26,26,17,26,26,0,26,26,26,0,26,26,25,25,17,26,27,17,25,26,27,0,26,26,26,26,25,26,27,25,25,26,27,0,26,26,26,26,25,28,28,28,26,27,17,26,27,26,25,25,26,27,17,25,25,25,26,27,17,25,26,26,17,17,26,26,25,26,26,0,26,26,26,26,26,27,17,26,0,26,17,26,27,26,27,17,26,17,26,17,26,0,25,26,27,26,26,27,17,26,25,25,25,25,26,17,26,26,25,26,0,26,25,26,26,27,17,26,26,26,26,17,0,26,26,26,26,17,26,17,26,26,0,26,26,26,27,17,25,26,27,17,26,27,17,26,26,27,26,27,17,26,26,27,17,0,25,26,27,17,0,26,27,26,17,26,25,25,26,25,26,17,26,17,26,27,25,26,17,26,26,17,26,0,26,26,26,26,25,17,26,27,0,26,26,26,26,26,26,26,25,26,27,17,0,26,26,26,27,26,26,26,27,26,0,26,26,26,26,17,26,26,26,27,17,26,0,26,27,17,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,27,17,0,26,26,26,26,0,26,26,26,26,26,26,26,26,27,17,0,26,27,17,26,25,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,17,0,26,26,27,26,26,26,0,26,26,17,26,26,26,27,26,0,26,26,26,26,26,26,0,26,27,17,0,26,27,26,26,26,25,26,17,26,27,17,26,0,26,26,27,26,26,26,26,26,27,17,26,0,26,26,26,26,25,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,26,26,26,25,26,27,17,0,26,25,26,27,26,26,26,26,27,26,26,26,26,27,17,26,27,26,26,26,0,26,26,0,26,26,26,26,27,26,0,26,26,17,26,27,17,26,26,26,26,26,26,26,26,0,26,26,26,26,17,25,26,26,26,17,26,17,26,26,26,26,0,28,26,27,17,26,27,26,17,26,17,26,26,0,26,0,26,26,26,26,26,26,26,26,26,27,0,26,26,26,26,26,27,26,26,26,25,26,26,26,27,17,26,26,17,17,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,0,26,26,26,26,26,0,26,0,26,26,26,26,26,26,17,26,0,26,26,26,26,0,26,26,26,26,25,26,17,25,25,28,17,26,27,17,26,26,26,0,26,26,17,0,26,0,26,26,26,26,0,26,26,27,26,26,26,27,26,27,17,26,26,26,0,26,26,17,26,27,17,26,25,26,26,17,17,26,26,26,26,26,27,26,26,0,26,26,0,26,26,26,26,27,26,26,27,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,27,26,17,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,27,17,26,26,26,27,28,26,27,17,26,27,25,26,17,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,27,26,27,17,26,27,26,25,26,26,26,17,17,26,25,25,25,25,25,25,25,25,26,27,17,26,26,0,26,26,26,26,26,26,27,17,26,26,26,26,26,26,27,26,26,26,26,26,26,17,26,17,26,26,27,26,26,26,17,26,0,26,26,26,25,26,27,24,0,26,17,26,0,26,26,26,26,26,26,27,17,26,26,26,26,17,26,0,28,26,27,17,26,26,26,26,26,26,26,27,17,26,27,17,26,24,26,26,26,26,17,17,26,0,26,26,26,27,26,25,26,28,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,26,26,27,17,26,27,26,26,26,26,27,17,0,26,26,27,17,0,26,17,26,17,25,25,25,28,28,26,27,17,26,0,26,26,27,26,26,27,17,26,26,26,26,26,17,26,27,17,26,26,26,27,26,26,0,26,26,17,26,27,17,26,26,27,26,26,26,0,26,17,17,26,0,26,0,26,27,17,17,26,17,26,26,26,26,26,26,26,26,17,26,17,26,26,0,26,26,26,27,17,26,25,26,17,17,26,26,26,26,26,0,26,27,26,26,26,26,26,26,27,17,0,26,26,26,26,26,0,26,17,17,26,0,26,25,26,0,26,26,26,0,26,26,26,27,17,26,26,26,26,17,26,26,26,26,26,26,26,27,26,0,26,26,26,26,26,27,17,26,27,26,26,26,26,26,27,26,26,27,26,27,26,26,26,26,26,27,17,17,17,26,26,26,26,26,25,26,17,17,26,26,26,0,25,26,26,26,26,26,26,26,27,17,26,26,26,17,26,26,0,17,26,17,26,0,26,26,26,26,17,25,28,28,26,27,17,26,26,26,26,27,17,0,26,17,17,26,26,27,0,26,17,26,26,26,27,26,26,26,26,27,26,26,0,17,17,26,27,17,26,0,26,25,28,28,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,25,28,28,25,25,25,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,25,25,25,17,17,25,26,27,17,25,26,27,26,27,26,27,17,26,27,25,25,25,26,27,17,26,27,0,25,25,26,27,26,27,26,27,17,26,27,26,27,0,25,25,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,26,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,26,27,26,26,26,27,17,26,26,26,27,26,25,17,26,27,17,26,25,26,26,26,26,27,26,25,26,27,17,26,26,26,25,25,25,25,25,25,25,25,26,27,17,25,25,26,27,17,26,27,17,26,26,26,26,26,27,17,26,27,0,26,26,26,26,25,26,27,17,26,17,17,17,26,26,27,17,26,26,26,26,27,17,26,26,26,27,26,27,0,25,26,27,17,26,26,27,26,26,17,26,0,26,27,17,26,27,17,26,26,26,26,17,25,26,27,17,26,26,26,26,26,26,26,26,17,26,17,17,26,26,27,17,26,26,26,26,17,26,26,26,27,17,26,0,26,26,25,26,26,27,26,25,26,27,17,26,0,26,26,26,26,26,27,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,17,0,26,26,27,26,26,26,27,0,26,26,26,26,26,27,26,26,26,0,26,17,26,26,27,17,0,26,26,27,26,26,26,26,26,27,17,26,27,0,26,27,26,0,26,17,26,26,26,27,26,17,26,26,26,26,26,26,26,27,26,26,26,27,26,26,26,0,26,26,25,26,26,26,25,25,26,27,17,26,26,26,26,26,0,26,26,26,27,26,27,17,26,27,17,26,26,0,26,0,26,26,26,27,17,0,26,17,0,26,0,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,17,17,26,0,25,25,26,27,17,26,0,26,26,0,26,26,17,26,26,27,26,27,17,26,17,26,17,26,0,26,26,26,26,26,0,26,0,17,26,17,26,26,27,17,0,25,25,25,26,24,26,26,26,17,17,26,26,17,26,17,26,0,26,27,17,25,26,26,26,26,27,26,27,17,26,0,26,26,26,26,26,26,26,26,26,25,26,27,17,26,26,26,26,27,17,26,27,26,27,0,26,26,26,17,26,0,26,26,26,26,26,17,17,26,17,17,26,0,26,27,17,26,17,26,26,26,27,17,26,26,27,0,26,26,26,26,26,26,28,26,27,17,26,0,23,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,27,17,17,17,26,0,26,26,26,17,26,26,17,26,0,26,25,26,26,26,26,26,17,26,17,26,17,26,25,25,25,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,25,26,27,26,27,26,27,26,26,27,26,27,26,27,25,25,25,25,26,27,17,26,27,26,27,0,26,27,25,26,27,17,25,25,26,27,17,26,27,26,27,0,25,25,25,26,27,17,25,26,27,17,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,26,26,26,26,0,26,27,17,26,17,26,27,17,17,26,26,26,26,17,26,17,26,26,27,26,26,0,26,26,26,27,17,26,26,0,26,26,17,26,17,26,26,26,27,26,27,26,17,26,26,27,17,26,27,17,26,26,17,0,26,26,26,26,26,26,26,26,26,25,25,25,26,24,26,26,26,26,27,0,26,17,26,27,17,26,26,26,27,26,0,26,0,25,26,24,26,26,28,26,27,17,25,26,0,26,26,26,17,26,26,26,26,17,26,0,26,26,0,26,26,0,26,27,17,26,26,0,26,26,27,17,26,26,26,26,26,0,26,17,26,26,26,26,26,26,26,0,26,26,27,17,26,26,27,17,26,26,26,26,26,26,27,17,0,26,26,17,17,26,26,26,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,17,26,27,26,27,0,26,27,17,26,27,17,0,26,27,26,27,17,26,26,26,26,0,26,25,26,26,26,0,26,26,0,26,26,26,25,26,26,26,27,0,26,26,17,26,27,17,26,26,26,26,26,26,0,17,26,26,26,26,26,26,26,27,17,26,26,26,26,25,25,26,26,0,26,26,17,26,26,26,0,26,26,27,17,26,17,26,26,25,26,17,26,0,26,26,27,17,17,26,27,17,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,17,17,26,28,26,27,17,26,0,26,27,26,26,26,26,25,26,26,26,26,26,26,26,26,26,26,27,17,26,17,26,27,17,0,26,26,26,26,27,17,26,26,17,26,27,17,17,26,27,17,26,0,26,26,26,0,26,27,26,0,26,26,26,26,0,26,0,26,26,26,26,0,26,26,26,26,0,26,0,26,27,26,26,0,26,25,25,25,25,25,25,26,27,17,26,26,26,27,26,17,26,26,26,26,26,26,0,26,26,26,26,26,26,26,27,0,26,26,26,27,17,26,26,26,26,26,25,26,26,26,27,26,17,28,26,27,17,26,27,17,26,26,17,26,26,26,26,0,26,26,26,26,27,17,0,26,26,0,26,17,26,17,26,0,26,26,26,0,26,26,27,0,26,26,27,26,27,26,27,26,17,26,26,26,0,26,26,26,26,25,26,27,17,26,26,26,26,26,26,17,26,17,26,26,26,0,26,0,26,17,26,17,26,26,26,17,26,26,17,26,17,26,27,17,26,26,26,0,26,26,0,26,26,26,17,26,25,26,27,26,26,26,26,26,26,17,26,26,17,17,26,26,26,26,0,26,26,27,26,27,17,17,26,26,26,17,0,26,26,26,26,27,26,26,27,0,26,27,26,17,26,26,17,26,27,26,27,26,0,26,26,26,0,26,27,17,26,27,17,26,26,28,26,27,17,0,17,26,27,17,17,26,26,17,26,26,26,26,27,17,26,26,27,26,0,26,26,27,26,26,26,27,17,26,26,26,26,17,26,26,26,26,0,26,26,17,26,17,17,26,26,27,26,26,26,26,26,17,26,17,26,26,26,27,17,26,25,26,26,27,17,26,26,0,26,27,28,25,26,17,26,27,25,26,26,26,26,0,26,26,26,26,26,26,27,17,26,26,26,26,27,26,26,0,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,0,26,26,26,17,26,26,27,26,0,26,26,27,17,26,26,27,17,26,26,25,26,27,17,26,26,26,26,26,26,27,26,26,27,26,26,26,26,26,26,26,17,26,26,26,27,26,27,17,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,17,26,26,26,26,27,17,26,26,27,26,27,26,17,0,26,26,17,26,17,26,26,26,27,26,0,26,26,26,26,26,0,26,26,17,26,26,26,27,17,26,0,26,26,26,26,26,26,27,26,0,26,26,17,26,26,26,26,27,0,26,27,17,26,26,26,26,27,17,26,0,26,26,26,26,17,26,26,26,17,26,26,26,26,26,27,17,26,27,17,26,26,0,26,27,26,27,26,26,26,26,26,26,26,26,0,26,26,27,17,26,26,26,26,27,26,26,27,26,26,27,17,26,0,26,25,25,25,28,28,26,27,17,26,26,27,26,26,26,27,26,26,26,0,26,27,26,26,26,26,26,0,26,27,17,26,26,0,26,27,17,26,26,26,26,27,17,0,26,27,17,26,17,0,26,0,26,28,26,27,17,25,28,28,25,25,26,27,17,26,27,17,25,26,17,26,27,17,26,27,26,17,26,27,17,26,26,0,26,25,25,28,28,26,27,17,25,26,26,26,17,26,26,26,26,25,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,26,26,25,26,26,26,26,27,17,0,26,26,25,25,26,27,17,25,25,26,27,17,26,27,17,0,26,26,0,26,26,26,26,26,26,0,26,26,26,27,17,26,17,0,25,26,26,27,17,26,26,27,26,26,27,26,26,0,26,0,26,26,26,17,25,26,26,27,26,26,0,26,26,0,26,17,26,27,17,26,26,27,17,26,26,0,26,26,26,26,27,26,26,26,0,26,26,26,26,26,26,0,28,26,27,17,17,26,17,26,0,26,26,26,27,17,26,26,26,26,27,26,27,17,17,17,17,17,17,17,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,28,26,17,26,26,26,26,27,17,26,26,27,17,26,26,26,26,25,28,28,25,26,27,17,0,26,26,0,26,27,0,25,26,26,27,26,26,27,26,27,17,26,27,17,26,17,26,26,17,26,27,26,26,26,26,26,27,17,26,26,27,26,26,27,17,25,25,25,28,28,26,27,17,26,26,27,26,26,27,26,26,26,26,26,27,26,26,26,27,25,26,27,17,17,17,26,26,27,17,26,26,26,26,27,0,26,27,17,26,26,27,17,25,25,26,27,17,25,28,28,26,27,17,25,28,28,26,27,17,26,26,26,26,27,0,25,26,27,26,26,0,26,26,17,26,26,26,0,17,26,17,26,0,17,26,26,26,17,26,17,26,26,0,26,0,26,26,26,26,26,26,26,26,27,17,0,26,17,26,17,26,0,26,0,26,27,26,27,26,27,17,26,26,26,0,26,27,26,0,17,17,26,17,25,25,25,28,28,26,27,17,17,26,17,26,26,27,17,26,17,25,28,28,26,27,17,0,26,27,26,26,26,26,25,26,26,26,26,28,26,27,17,25,26,27,17,26,26,27,26,26,26,26,26,26,26,26,26,0,26,17,26,0,26,26,26,26,0,26,26,0,26,26,26,0,26,26,26,26,26,17,26,27,0,26,0,26,26,17,26,0,26,27,17,26,27,26,26,26,27,26,26,17,28,26,27,17,26,27,17,26,26,27,25,25,26,27,17,25,26,17,0,26,25,25,26,17,26,27,25,25,26,27,17,17,26,27,17,25,25,25,28,28,26,27,17,0,26,26,27,17,17,17,26,26,26,26,26,26,26,26,27,0,26,26,17,26,26,27,17,26,25,25,26,27,17,26,0,25,25,26,27,17,26,26,26,26,26,26,27,26,26,27,26,27,26,27,17,26,26,26,0,26,26,26,27,0,25,26,26,26,27,0,26,26,26,26,26,26,0,26,27,17,25,26,26,26,26,27,26,26,26,26,26,26,26,17,25,26,26,26,26,26,17,26,26,26,26,26,26,27,17,26,0,25,25,25,28,28,26,27,17,26,26,27,0,26,27,17,0,26,26,27,26,28,26,27,17,17,26,27,17,0,26,26,27,17,26,27,26,26,26,26,26,26,26,28,26,27,17,26,26,27,17,26,26,26,26,0,25,28,28,26,27,17,17,26,27,17,28,28,25,17,17,17,25,26,27,17,26,27,17,25,25,25,26,27,26,27,26,27,25,26,27,17,28,28,28,28,28,28,17,17,26,27,17,25,25,25,25,25,25,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,0,25,26,17,26,27,26,26,26,0,26,0,26,0,26,26,26,27,26,26,0,26,26,26,27,26,26,26,27,26,27,26,27,26,0,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,27,26,27,17,26,27,17,26,26,26,0,26,26,26,17,26,27,17,26,17,26,17,26,26,27,26,27,17,26,27,17,28,26,27,17,26,26,17,17,26,26,17,26,26,26,26,25,26,27,17,26,27,17,26,26,27,0,26,26,26,25,26,26,26,26,0,26,25,26,26,26,26,0,26,26,26,26,27,17,17,17,26,27,17,26,25,26,27,17,25,26,26,26,26,26,26,26,27,25,26,26,26,26,26,27,17,26,25,26,26,28,25,26,17,26,26,26,26,26,0,26,0,26,26,27,17,17,26,26,26,26,26,17,26,26,26,26,26,26,27,17,26,27,17,26,26,27,26,26,26,27,26,26,0,26,26,25,26,27,17,26,26,26,0,26,0,26,26,27,17,26,0,26,26,27,26,26,17,26,28,26,27,17,17,26,17,26,27,0,26,27,26,27,17,26,26,26,27,26,26,26,26,26,27,26,26,26,26,26,26,17,26,26,27,17,26,26,26,26,0,26,26,0,26,0,25,26,26,26,27,26,26,26,26,0,25,25,26,26,26,17,26,25,26,24,26,27,17,26,27,26,17,0,26,26,26,26,26,26,26,26,26,27,26,26,26,26,0,26,26,26,26,26,28,26,27,17,26,0,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,26,17,0,26,26,26,26,27,26,26,26,26,26,0,17,26,27,17,0,26,27,17,26,26,26,26,17,26,27,17,26,26,26,26,26,17,17,26,27,17,26,27,26,0,26,0,26,0,26,17,26,27,17,0,26,27,17,26,26,26,27,17,0,26,17,26,27,17,26,26,26,26,26,28,17,26,27,17,26,26,26,26,17,26,17,26,27,17,26,26,17,26,17,26,26,17,26,27,17,26,26,27,26,27,17,26,26,27,17,26,27,17,0,26,17,26,26,26,27,26,17,26,27,17,0,26,26,26,26,26,17,26,27,17,25,26,27,17,26,26,27,26,26,26,26,0,26,26,28,25,25,25,26,27,17,24,25,28,28,26,27,17,0,26,26,26,26,26,26,26,28,26,27,17,0,26,26,27,0,26,0,26,26,26,27,26,27,17,26,26,26,26,26,26,27,26,26,27,26,26,26,26,17,26,17,0,26,26,26,26,0,26,26,26,27,26,17,26,17,0,26,26,27,0,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,17,17,26,26,26,0,26,26,27,26,27,17,26,26,26,27,17,26,26,26,26,26,26,27,26,26,26,26,26,27,26,27,17,26,27,26,26,27,26,26,26,26,26,17,26,26,0,26,0,26,26,0,28,26,17,26,27,26,27,26,27,26,26,26,26,27,17,26,0,25,25,25,25,26,27,17,26,26,27,17,0,26,27,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,27,17,26,26,17,26,27,26,0,26,26,27,26,0,26,26,0,26,26,27,26,26,0,26,26,0,26,27,0,26,0,26,26,27,26,26,17,26,17,26,17,26,25,26,27,17,25,25,25,26,17,26,27,17,25,25,26,17,17,17,26,26,26,27,17,26,0,26,26,26,26,26,26,27,17,26,26,26,26,0,26,27,17,26,26,27,17,0,26,26,26,28,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,26,0,26,27,17,26,0,26,26,26,26,26,26,26,26,26,27,26,27,17,26,26,26,27,26,26,26,27,17,0,26,0,28,26,27,17,26,26,26,27,26,0,26,26,26,26,26,27,26,17,26,25,26,27,17,26,26,26,26,26,26,27,26,26,28,26,27,17,26,26,26,17,0,26,27,17,26,26,0,26,26,0,26,26,26,0,26,0,26,26,26,17,26,17,26,26,26,26,26,26,0,26,26,27,26,17,26,27,25,25,26,27,17,26,26,25,17,26,17,24,26,26,17,0,26,26,26,27,28,26,27,17,0,26,26,26,0,17,17,17,17,17,17,17,26,26,17,26,26,25,26,24,26,17,25,25,25,26,24,26,27,17,26,26,27,26,0,26,26,26,17,26,26,27,17,17,26,26,0,26,27,0,26,26,25,26,27,17,26,0,26,26,26,17,17,17,17,17,17,17,26,26,26,0,26,26,17,26,0,26,27,26,17,26,26,26,27,0,26,17,26,26,26,17,26,27,26,26,26,0,26,17,26,26,26,25,26,27,26,0,26,27,26,0,26,25,26,27,17,26,0,26,26,17,26,17,0,26,26,17,26,26,25,26,27,26,17,17,26,17,17,17,17,17,17,17,26,17,26,26,26,17,17,26,26,17,26,17,26,17,26,25,26,26,26,0,25,26,26,26,26,27,26,26,25,28,26,17,26,26,26,26,26,26,25,26,27,17,0,26,26,26,26,26,26,17,26,26,25,26,26,27,26,26,26,26,26,26,26,26,26,26,27,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,26,27,0,17,26,26,26,17,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,27,25,26,0,25,17,17,26,25,26,24,26,27,17,26,26,26,26,26,25,25,26,27,17,26,27,17,0,26,26,26,17,0,26,0,25,26,26,0,17,26,17,26,26,26,26,26,26,26,0,28,26,27,17,26,26,0,26,27,26,26,17,26,27,26,25,26,27,17,26,27,17,26,27,26,26,27,17,26,17,25,26,26,26,26,26,26,26,26,26,17,26,27,26,27,26,26,17,26,26,26,0,26,26,26,26,17,17,26,17,26,26,26,25,28,28,26,27,17,26,26,27,26,17,26,27,0,26,26,26,26,27,17,26,26,27,26,27,17,28,26,17,26,26,26,27,26,27,26,17,26,26,27,26,26,26,26,17,26,26,27,26,27,17,0,26,26,26,27,26,26,26,26,27,17,26,26,27,26,27,26,26,26,26,26,26,26,26,26,26,26,26,27,26,17,25,26,27,17,26,17,26,26,27,26,26,26,26,0,26,27,26,27,26,26,27,17,26,26,26,26,26,26,27,17,26,27,17,26,17,26,17,0,17,17,17,17,17,17,17,26,17,26,17,0,26,27,17,26,26,0,26,27,17,26,26,26,0,26,26,26,26,26,17,26,27,17,25,26,25,26,17,26,26,26,27,17,26,26,26,26,26,25,26,27,17,26,26,26,26,27,17,17,17,17,17,17,17,26,27,17,26,17,0,26,17,26,17,26,17,26,17,26,17,26,26,27,26,27,0,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,27,26,26,26,17,25,26,27,17,26,27,17,26,17,26,17,26,17,26,17,26,27,17,0,26,26,27,17,26,17,26,17,25,25,26,27,17,25,26,27,17,25,26,17,26,28,28,26,27,17,26,26,26,0,26,25,25,26,25,26,26,0,26,17,26,27,17,26,17,25,26,27,26,0,26,26,26,26,26,27,26,26,25,26,26,26,26,26,27,17,26,26,26,0,26,0,26,26,26,26,25,26,26,26,27,26,26,27,26,0,26,27,17,26,27,0,26,26,26,0,26,26,26,27,26,26,27,26,27,0,26,26,26,17,26,27,26,27,17,26,27,26,26,26,27,0,26,26,26,27,26,26,27,26,0,26,27,26,26,17,26,26,26,0,25,26,0,26,26,26,26,27,26,26,27,26,17,26,27,26,26,26,25,26,26,26,26,27,26,27,17,26,26,26,17,26,27,17,26,26,26,26,27,17,26,27,26,26,0,26,27,17,26,26,17,0,26,0,26,27,26,26,27,26,27,26,26,26,26,27,26,26,26,27,26,26,26,26,26,26,27,17,17,17,17,17,17,17,26,27,26,27,0,26,0,26,26,26,26,26,27,26,26,0,26,26,27,26,26,26,17,26,26,26,26,26,26,26,27,26,27,17,26,26,27,17,26,27,26,27,26,26,26,26,26,26,26,0,26,26,26,0,26,27,17,0,26,27,17,17,17,17,17,17,17,17,26,26,26,0,26,26,26,26,0,26,26,25,25,26,27,17,0,26,27,26,26,0,26,17,26,26,27,26,27,26,26,26,26,26,25,28,28,25,26,27,17,26,26,27,26,26,26,17,26,17,26,0,26,26,27,26,26,17,0,26,26,27,26,26,25,26,24,26,26,26,17,17,17,17,17,17,17,26,27,17,0,26,26,25,26,27,17,24,26,26,26,26,27,17,0,26,26,26,27,17,26,26,27,26,26,27,0,26,26,27,0,26,26,26,25,26,28,26,17,26,0,26,0,26,26,0,26,26,26,26,26,0,26,27,26,26,27,26,26,27,17,26,27,17,26,0,26,26,27,26,27,26,26,17,26,17,0,26,26,17,0,26,26,26,26,26,0,26,26,27,26,27,26,0,26,27,17,0,26,0,28,26,27,17,0,26,26,26,26,26,27,26,27,26,26,27,26,26,27,17,26,26,27,17,17,17,25,26,0,26,26,27,26,26,26,26,27,26,27,26,27,26,27,0,26,26,17,26,17,26,26,26,26,26,26,0,28,25,26,27,17,26,27,17,26,26,27,26,26,0,26,27,17,26,26,26,27,26,26,26,25,25,25,26,24,0,25,26,26,26,25,17,26,27,17,26,17,26,26,26,17,0,26,27,17,0,26,27,26,0,26,26,27,26,26,26,26,25,26,26,27,26,26,27,17,26,0,26,17,26,26,26,26,26,26,26,17,17,26,0,26,17,0,26,27,26,27,26,0,26,26,26,26,27,26,26,26,25,25,26,27,17,25,26,17,25,26,17,26,26,26,26,27,17,26,27,26,26,26,27,26,26,26,26,26,0,26,26,27,0,26,26,26,27,0,26,26,26,26,0,26,27,26,27,26,0,26,26,26,28,26,27,17,26,27,17,26,17,26,26,26,26,26,26,27,26,27,17,26,26,26,27,17,26,27,26,26,26,26,26,26,0,26,26,26,27,26,27,17,26,26,17,0,26,17,26,26,26,17,0,26,26,27,26,26,26,26,27,26,27,17,26,26,27,26,26,26,26,26,27,26,26,27,26,26,26,26,26,27,26,26,0,26,27,26,26,27,17,25,26,26,26,26,17,26,26,27,26,26,27,26,27,0,26,26,27,17,26,25,26,26,26,27,17,26,17,26,26,26,27,26,27,26,27,26,0,26,26,25,26,26,26,26,27,17,0,26,26,17,26,26,26,26,26,26,17,26,17,26,26,0,26,26,25,26,0,17,26,17,26,27,26,27,26,26,26,0,26,26,27,17,26,26,27,17,26,26,27,26,26,26,26,27,26,26,26,26,27,17,26,26,17,26,27,17,26,27,26,27,28,26,27,17,26,17,26,26,26,27,17,26,27,26,0,26,26,17,26,0,26,27,0,26,26,27,17,26,26,26,26,26,26,27,17,26,27,26,17,0,26,27,26,26,26,26,17,26,26,25,28,28,26,27,17,26,26,27,26,26,17,26,26,26,26,17,26,26,26,26,26,26,26,26,27,26,0,26,26,25,25,26,27,17,26,25,25,26,17,25,25,25,26,27,17,24,26,17,26,26,27,17,26,26,26,26,26,27,17,26,26,26,26,25,26,17,26,26,26,26,0,26,26,27,17,26,17,26,17,26,25,26,24,26,26,26,0,26,26,26,0,25,26,24,26,27,26,26,26,0,26,26,26,26,26,26,26,27,0,25,25,25,25,25,25,26,27,17,26,27,0,26,27,17,0,26,26,26,25,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,17,26,0,26,26,26,27,26,26,26,0,26,26,27,0,26,26,17,0,26,26,26,27,26,27,17,26,25,25,25,26,24,26,26,26,17,26,17,25,25,25,26,27,17,0,26,27,26,25,25,26,27,17,25,25,26,17,26,25,26,27,0,17,28,28,28,28,28,28,28,28,26,27,17,26,27,0,26,26,25,26,0,26,0,26,17,26,25,26,27,17,17,26,27,17,26,25,26,27,17,26,26,26,17,17,26,27,17,26,26,0,25,26,26,26,17,28,26,27,17,26,26,0,17,17,17,17,17,17,17,26,25,26,26,27,17,26,27,17,26,17,26,17,0,17,26,17,26,25,25,28,28,26,27,17,0,17,26,27,17,26,27,17,26,28,26,27,17,26,25,26,25,17,26,27,17,26,26,0,28,26,17,26,26,17,26,27,17,25,26,26,26,17,26,0,26,17,26,27,17,0,26,25,26,27,26,26,27,26,27,17,26,27,17,26,26,25,26,0,26,26,17,26,27,17,0,26,27,0,26,26,25,26,26,27,17,17,26,27,17,25,28,28,26,27,17,26,26,26,25,25,25,25,26,27,17,17,26,27,17,0,26,26,0,26,26,28,25,26,27,17,25,17,26,27,17,26,17,26,26,26,26,26,25,26,26,26,26,17,26,25,17,26,27,17,0,26,25,26,26,26,26,17,17,26,27,17,26,26,25,26,26,27,17,25,26,27,17,26,26,26,17,26,27,17,0,25,26,27,26,26,26,26,27,17,26,27,17,26,27,25,26,27,26,27,17,26,27,26,27,25,17,26,27,17,23,26,27,26,27,17,25,26,27,26,27,17,26,27,17,17,26,27,17,0,26,27,26,27,26,27,17,25,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,17,0,26,27,26,27,0,26,27,28,25,23,25,26,27,17,25,26,27,25,25,28,28,17,26,27,17,26,27,28,26,27,17,26,27,17,0,26,27,26,27,17,17,25,28,28,26,27,17,25,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,26,27,26,27,17,26,27,17,17,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,25,17,26,27,17,25,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,17,0,26,0,25,26,0,26,27,26,26,17,26,27,17,28,26,27,17,26,0,25,25,28,28,26,27,17,25,26,24,26,26,26,26,27,17,17,26,27,17,25,26,26,28,26,27,17,26,0,26,26,27,26,25,25,25,25,26,27,17,26,26,26,26,25,26,27,28,25,25,26,27,17,25,26,26,0,26,26,26,26,27,26,25,26,27,17,26,25,26,26,26,26,26,25,17,26,17,26,27,17,26,27,26,26,26,17,26,27,0,25,26,26,0,26,26,26,26,17,26,25,26,26,27,17,26,0,26,26,26,27,17,26,25,26,26,26,26,27,26,27,26,26,25,26,26,27,26,25,26,17,26,26,26,25,26,26,26,26,26,26,0,26,25,26,26,27,26,26,27,26,0,26,26,25,26,27,17,26,26,0,17,17,17,17,17,17,17,26,26,26,17,26,27,17,0,25,26,26,27,26,26,26,27,17,17,26,27,17,26,25,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,25,26,27,26,26,27,0,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,17,25,26,27,17,26,27,17,26,26,27,17,25,17,26,27,17,0,26,26,26,26,17,26,27,17,26,25,26,26,27,25,28,28,17,26,27,17,0,26,26,26,26,25,26,25,17,26,27,17,0,26,26,26,0,26,26,27,25,26,26,17,25,26,27,26,26,27,17,26,17,17,26,27,17,25,28,28,25,25,26,27,17,26,27,26,26,26,17,26,27,17,26,25,26,26,26,26,26,25,26,27,17,25,26,25,26,26,25,26,27,26,27,26,28,26,17,26,25,26,26,26,0,26,26,27,26,26,25,26,0,26,26,26,26,26,0,26,0,25,26,26,26,26,26,27,0,26,26,27,25,26,26,26,26,0,26,27,26,26,25,26,26,26,26,25,25,25,26,27,17,26,0,25,25,25,26,27,17,25,26,26,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,17,17,25,17,17,17,17,17,17,17,25,17,26,27,17,26,27,25,25,25,26,27,24,0,26,27,17,26,27,26,27,25,26,27,26,26,27,26,27,17,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,25,26,27,24,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,25,17,25,26,27,17,26,27,26,27,17,17,26,27,17,26,27,0,28,26,27,17,26,27,26,27,25,26,27,17,17,26,27,17,26,0,26,27,0,17,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,25,26,27,26,27,26,27,17,17,26,27,17,26,27,25,26,27,17,26,27,17,26,27,28,28,26,27,17,17,26,27,17,0,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,17,26,27,17,26,27,17,17,26,27,17,26,27,17,26,27,17,17,17,26,27,17,26,27,17,26,27,17,0,25,26,27,17,26,27,17,25,28,28,26,27,17,0,26,27,17,17,26,27,17,26,27,17,26,27,26,27,26,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,17,25,17,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,0,17,26,27,17,0,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,26,27,26,0,26,27,26,27,17,26,27,17,26,27,26,26,27,26,27,25,26,27,24,17,26,27,17,0,26,27,0,17,26,27,17,26,27,25,26,27,26,27,0,25,25,17,26,27,17,17,17,26,27,0,17,17,26,27,26,27,26,27,26,25,28,28,25,25,17,26,27,17,26,27,26,26,27,26,17,0,26,27,17,26,27,17,26,27,26,26,27,26,27,26,27,17,0,17,26,27,17,26,0,26,27,26,27,17,26,27,26,17,26,27,17,26,0,26,26,26,25,25,25,26,27,17,17,26,27,17,25,26,26,26,17,26,26,0,17,26,27,17,26,26,26,28,26,27,17,26,17,17,26,27,17,26,26,26,27,26,26,25,25,26,27,26,0,25,26,27,17,26,0,26,26,26,27,26,27,17,26,26,26,0,26,26,0,26,0,17,26,17,26,26,0,26,17,26,27,17,26,26,0,26,26,27,28,26,27,17,17,26,27,17,25,26,27,17,23,26,26,27,26,25,26,17,17,26,27,17,26,26,25,26,27,17,24,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,25,26,27,23,17,17,26,27,17,17,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,28,28,26,27,17,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,0,26,26,27,17,17,26,27,17,0,25,25,25,17,26,27,24,0,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,0,26,27,17,25,28,28,26,27,17,25,25,25,28,28,25,26,27,17,25,25,26,27,17,17,26,27,17,25,25,25,26,27,17,23,26,27,25,26,27,17,28,26,27,17,26,27,17,26,27,17,26,27,17,28,26,27,17,26,27,17,26,27,17,26,27,17,26,27,25,25,26,27,17,0,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,17,17,17,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,17,25,28,28,26,27,17,0,26,27,26,27,17,26,27,0,26,27,17,26,27,17,25,25,25,26,27,24,26,0,26,27,25,26,27,17,26,27,17,26,27,17,26,27,0,26,17,26,17,26,27,0,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,26,17,26,27,17,25,26,26,27,26,26,27,25,26,27,17,0,17,26,27,17,26,27,26,27,26,27,26,27,26,17,26,27,17,25,25,28,28,25,28,28,25,28,28,25,26,27,26,27,17,26,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,26,27,17,26,27,17,26,27,17,25,25,25,26,27,17,26,27,26,27,26,27,17,17,26,27,17,25,26,26,27,25,25,26,27,26,27,0,25,28,28,26,27,17,25,17,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,26,27,25,26,27,25,26,27,26,27,26,27,0,26,27,26,25,17,26,27,0,26,27,26,27,26,27,26,27,26,27,17,25,25,28,28,26,27,0,25,26,27,17,26,27,26,27,17,26,27,25,26,27,0,26,27,17,26,26,26,27,25,26,25,26,26,26,26,26,25,25,25,25,25,26,17,26,26,26,26,17,25,25,17,17,17,25,26,25,25,17,26,17,26,17,26,26,27,17,26,25,28,28,25,25,25,26,27,17,26,25,26,26,0,26,17,26,26,26,26,0,28,26,27,17,26,27,28,26,27,17,26,0,25,26,27,17,26,26,0,26,26,0,26,26,26,17,26,27,17,17,26,26,27,17,26,26,26,0,26,26,0,26,26,26,0,26,26,25,25,26,0,26,26,27,17,0,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,0,26,26,17,26,26,26,27,17,25,28,28,26,27,17,26,0,26,26,26,0,26,26,0,26,25,26,26,0,26,26,26,26,26,26,26,26,0,26,0,26,26,26,26,26,0,17,17,26,27,26,26,28,26,27,17,0,26,26,27,17,26,27,26,26,27,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,26,27,26,27,25,26,27,26,27,0,26,27,25,26,27,17,25,26,27,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,17,26,27,25,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,25,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,26,26,27,26,27,17,0,26,0,26,27,17,26,27,26,17,26,27,26,27,26,25,26,26,26,26,26,26,0,26,27,0,26,27,25,26,27,17,26,26,26,26,27,26,25,25,28,28,26,27,26,17,26,0,26,26,26,27,17,26,26,0,26,26,26,26,26,25,28,28,26,27,17,26,26,0,26,26,25,26,27,17,26,28,26,27,17,26,26,0,25,26,26,26,0,26,26,26,26,26,25,26,26,25,25,25,25,25,25,26,27,17,26,26,25,25,26,17,26,26,27,17,25,25,26,27,26,26,17,26,26,26,26,26,17,26,26,17,26,26,0,25,25,25,26,27,17,26,25,26,26,26,26,26,27,26,27,17,25,26,27,25,28,28,25,28,28,25,25,26,27,17,25,26,17,26,26,26,26,0,26,0,26,0,25,25,26,27,17,25,26,27,26,26,0,26,26,0,26,17,26,26,27,26,0,26,26,26,26,26,26,0,26,27,17,26,25,26,17,26,26,28,26,27,17,26,27,26,25,26,27,26,26,26,26,27,26,27,17,26,26,26,26,26,26,26,26,27,26,26,26,0,26,0,26,26,0,26,26,26,26,26,28,26,26,0,26,27,0,26,26,26,26,17,26,26,27,26,26,26,26,27,17,25,28,28,26,27,17,25,26,27,26,27,17,0,25,26,26,17,26,25,26,27,26,0,26,27,17,26,26,25,17,25,28,28,17,26,27,17,0,26,26,26,25,26,27,17,26,17,25,26,27,26,26,0,25,26,27,17,25,26,27,26,26,17,26,17,25,26,27,0,25,26,27,25,26,27,26,17,25,25,26,27,17,26,25,26,27,25,26,27,17,26,27,25,26,27,0,26,27,25,26,27,26,25,25,26,27,17,26,26,26,25,26,27,25,26,27,26,26,26,27,17,25,25,26,27,17,25,25,26,27,25,26,27,26,17,17,17,26,25,26,27,25,26,27,17,26,17,26,27,26,25,26,27,26,25,25,26,27,17,26,0,28,26,17,0,26,0,25,25,25,26,27,0,25,26,27,26,26,26,27,25,25,25,25,26,27,17,26,25,26,25,26,27,17,26,26,26,26,25,25,25,25,25,25,26,27,0,25,26,27,17,26,26,26,25,26,27,26,25,26,27,26,26,0,25,25,26,27,17,26,27,17,26,17,26,25,26,17,26,25,26,27,17,26,26,25,26,27,17,26,27,25,26,26,26,26,26,26,25,26,27,25,28,28,25,26,27,17,26,26,0,25,26,27,26,26,27,17,26,27,0,26,26,25,25,26,27,17,26,0,25,26,24,26,25,26,27,25,25,26,27,24,0,26,17,17,26,26,25,26,27,17,26,26,26,0,26,26,25,26,27,17,0,25,25,25,26,24,26,25,26,27,17,26,26,25,25,25,26,17,26,26,27,26,17,0,26,17,26,25,26,26,26,0,26,26,26,26,26,26,26,0,26,26,26,0,26,26,26,27,17,26,26,26,26,26,17,26,26,26,26,26,17,17,26,0,17,17,26,27,17,26,17,26,26,26,26,26,26,27,26,26,17,26,27,26,26,26,26,26,26,27,26,17,26,0,26,26,26,26,0,26,26,26,26,27,26,0,26,26,17,26,26,26,27,26,17,0,26,26,27,17,26,0,26,26,26,0,26,27,17,26,26,26,26,26,26,25,26,27,17,0,26,27,17,0,26,17,0,26,26,26,25,25,26,27,17,0,26,26,26,26,17,26,26,26,26,26,26,26,27,25,28,28,26,27,17,17,26,17,26,0,25,25,25,28,26,17,24,26,17,17,26,26,0,26,26,0,26,0,26,26,26,26,26,26,17,26,26,26,26,0,26,0,26,26,26,27,26,27,26,27,17,0,26,26,17,17,26,0,25,28,28,25,26,27,17,26,26,26,26,0,26,27,17,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,0,17,26,26,26,26,26,26,27,26,0,26,26,26,0,26,27,26,26,0,26,26,0,26,27,26,26,26,26,26,26,27,26,0,26,27,17,26,26,27,26,25,17,17,26,27,17,25,26,27,0,26,26,26,26,26,26,26,26,26,26,28,26,17,26,26,26,25,25,26,27,17,26,27,17,26,26,17,25,28,28,26,27,17,26,25,26,27,25,26,27,26,27,26,0,26,0,26,0,25,25,25,25,26,27,17,23,26,25,26,27,26,26,26,25,26,27,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,25,26,27,26,26,26,0,26,26,26,26,26,27,17,0,26,0,26,25,28,28,26,27,17,26,27,17,26,26,26,26,26,26,26,27,17,25,25,26,27,17,26,26,0,26,26,26,27,17,25,25,25,26,24,26,26,26,26,26,26,26,25,26,27,26,0,26,26,26,26,26,0,26,26,26,26,0,26,27,17,0,26,27,26,27,17,26,26,27,26,26,17,26,26,26,0,26,0,26,25,28,28,26,27,17,26,27,26,26,26,26,26,26,26,26,26,25,26,27,26,26,26,26,26,27,17,26,26,0,26,0,26,26,26,26,26,26,26,27,17,26,26,26,26,27,26,26,26,27,26,0,26,26,17,26,26,17,26,27,26,26,0,26,26,26,27,0,25,28,28,25,26,27,17,25,26,27,26,0,26,26,27,17,25,26,27,17,26,25,26,27,17,26,26,26,25,26,26,25,26,27,26,26,26,26,26,25,26,27,26,26,26,25,25,25,25,26,27,17,0,25,28,28,26,27,17,25,28,28,25,26,27,17,26,26,17,26,27,26,28,26,27,17,25,26,27,26,26,27,26,0,26,25,26,17,25,26,27,26,26,26,26,26,26,26,25,26,27,26,25,26,27,0,26,27,17,26,0,26,0,25,26,27,26,26,26,0,26,26,0,26,25,28,28,26,27,17,26,27,26,26,26,27,17,0,26,26,26,0,25,25,25,26,27,17,26,26,26,26,28,25,26,27,17,25,28,28,26,27,17,25,25,25,25,25,25,26,27,17,25,26,26,0,26,26,26,17,26,17,25,26,27,26,26,26,25,28,28,26,27,17,0,26,26,27,26,26,26,26,25,25,26,27,17,26,26,26,26,26,0,26,26,26,17,26,0,26,26,26,26,26,17,17,26,0,26,26,27,17,26,26,27,17,26,26,26,26,26,26,26,26,27,26,26,26,26,27,17,25,26,26,26,27,17,26,27,17,26,17,0,26,26,25,26,26,17,17,26,17,0,26,26,26,27,26,26,25,26,27,17,26,17,26,26,26,26,27,17,26,0,26,26,26,17,26,26,27,26,26,27,26,26,26,26,0,26,27,26,0,26,17,17,26,26,26,26,26,17,26,25,26,26,17,17,26,17,26,0,26,26,27,17,26,17,26,27,26,26,25,17,26,27,26,26,26,26,25,25,25,26,27,17,26,26,26,26,26,25,25,26,0,26,17,26,27,26,26,26,17,26,17,26,26,26,26,27,26,28,26,27,17,26,0,26,27,0,26,17,17,26,27,17,26,26,0,26,27,0,26,26,17,26,26,26,26,25,26,24,26,0,26,27,17,26,17,26,26,26,26,26,0,26,17,26,17,26,17,26,0,26,26,26,26,26,26,0,26,26,27,26,26,26,27,17,26,27,17,26,26,26,0,26,0,26,17,26,26,26,26,26,26,26,0,26,0,26,27,0,26,17,26,26,26,26,26,26,26,27,17,26,26,27,17,26,26,26,17,26,26,0,26,26,26,27,17,26,17,26,27,17,26,26,26,26,26,27,17,26,26,27,26,26,17,25,26,17,26,26,27,17,26,26,26,26,26,26,0,26,26,25,25,25,25,17,26,27,17,26,26,17,26,17,26,26,26,27,26,25,28,28,26,27,17,26,26,26,26,27,0,26,27,0,26,27,26,0,26,0,25,26,27,17,0,26,26,26,17,26,26,25,26,27,17,26,26,25,26,17,24,26,26,17,26,26,27,17,28,26,27,17,26,17,26,26,0,26,26,27,17,26,26,26,26,26,0,26,26,0,26,0,26,0,26,17,26,26,26,26,26,17,26,25,26,26,26,26,17,26,25,25,25,26,24,26,0,26,26,26,26,27,26,17,26,17,0,26,26,26,0,26,26,26,26,26,26,26,27,17,26,26,27,17,26,0,26,26,26,26,26,26,0,26,26,26,17,26,27,17,25,28,28,26,27,17,26,27,26,26,26,27,25,26,27,26,26,26,27,26,27,17,26,26,26,17,26,0,26,0,25,26,27,17,26,26,25,28,28,26,27,17,26,0,26,26,26,26,17,26,25,28,25,26,27,17,17,17,26,25,26,27,17,26,26,25,25,26,27,17,26,0,26,27,17,26,17,0,26,26,26,26,26,26,17,26,26,26,26,17,26,26,26,26,27,17,26,27,26,26,26,17,26,26,26,26,26,25,28,28,26,27,17,26,25,26,27,17,25,25,25,26,24,26,0,26,26,27,17,26,26,0,26,26,17,26,26,26,0,26,25,26,27,17,26,26,26,17,0,26,27,17,26,26,0,26,0,26,26,17,26,17,26,0,26,26,26,26,26,26,26,26,25,28,28,26,27,17,26,26,26,26,17,26,25,26,17,26,26,26,26,26,27,26,25,25,26,27,17,0,26,25,26,26,26,17,17,26,26,0,26,0,26,26,26,26,26,27,26,26,27,26,26,26,17,26,26,26,0,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,0,26,26,0,26,27,17,26,28,26,27,17,26,0,26,27,17,26,0,26,26,27,26,26,26,26,17,26,26,26,27,26,26,26,26,26,27,17,26,27,17,26,26,0,26,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,27,26,25,28,28,26,27,17,26,25,26,27,26,27,17,26,27,26,26,0,25,25,25,25,26,27,17,0,25,26,27,26,26,26,0,26,27,17,26,25,26,27,0,26,28,26,27,17,26,26,25,26,27,26,26,26,26,17,26,26,17,26,26,26,27,17,26,26,26,17,26,26,27,25,26,27,17,0,26,17,26,26,26,0,26,17,26,26,27,17,26,26,17,26,26,27,26,26,27,17,26,27,17,26,26,26,26,26,17,26,26,26,26,26,25,28,28,26,27,17,26,26,26,17,26,26,26,26,26,25,26,27,26,26,26,26,0,26,26,26,17,0,26,27,17,26,26,27,26,26,26,27,26,17,26,27,17,26,26,26,0,26,27,17,26,26,25,25,25,26,24,26,17,26,27,17,26,26,0,26,0,26,0,26,26,17,26,27,26,25,28,28,26,27,17,25,25,26,27,17,26,17,26,26,26,26,26,26,17,17,26,26,26,26,0,26,17,26,26,26,0,26,27,17,26,26,25,25,25,25,26,27,17,26,26,26,26,26,26,26,27,0,26,26,26,26,27,17,0,26,26,0,26,25,26,27,26,26,26,26,25,25,26,27,17,26,27,25,25,25,26,27,17,26,25,26,25,17,26,26,26,26,26,26,26,26,26,26,17,26,27,26,26,28,26,27,17,26,27,17,26,27,0,26,26,26,26,17,26,26,26,27,25,26,24,26,26,17,26,27,0,17,17,26,0,17,26,17,26,26,26,27,26,26,26,26,17,17,26,17,26,0,26,26,26,27,26,26,26,26,26,26,0,25,26,17,26,0,26,26,26,26,26,27,17,26,27,17,17,17,26,26,26,17,26,26,26,25,25,25,25,26,27,17,28,17,17,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,0,26,26,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,17,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,27,25,26,27,17,26,27,17,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,28,28,28,28,28,28,28,28,26,27,17,26,27,17,26,27,26,27,26,27,17,17,26,26,27,26,26,27,17,26,26,27,26,26,27,26,27,26,26,27,17,26,26,27,17,25,26,27,26,27,26,27,25,25,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,17,26,27,26,27,26,26,27,17,26,27,26,26,26,26,0,26,26,27,17,26,0,26,0,26,26,26,27,26,26,27,17,26,26,26,27,26,26,26,0,26,27,17,0,26,26,26,27,26,27,17,25,25,26,27,26,27,17,26,27,17,26,27,26,26,26,17,0,26,26,26,27,17,26,27,17,26,0,26,26,26,17,26,26,27,17,0,26,26,26,26,0,26,26,26,27,17,26,26,26,26,26,26,26,27,17,28,26,17,26,26,25,26,17,26,27,28,25,26,27,17,24,26,27,17,26,26,26,26,25,26,27,26,26,27,17,0,26,26,26,26,27,26,26,0,26,27,17,26,26,27,17,26,26,26,26,26,27,17,26,26,26,26,0,26,26,26,27,17,26,0,26,26,27,17,26,0,26,26,26,27,17,26,17,26,26,27,17,26,27,26,28,26,27,17,26,27,17,0,26,25,25,26,17,0,26,26,26,26,26,27,17,26,26,26,26,27,26,0,26,25,28,28,17,26,27,17,26,26,26,26,17,26,26,26,27,17,26,28,26,17,26,17,26,26,26,26,27,17,26,26,26,0,26,0,25,26,24,0,17,17,26,0,26,27,17,26,26,17,26,26,0,26,27,26,26,27,17,25,26,17,26,26,26,26,26,26,27,17,26,17,0,26,0,26,26,26,27,17,26,26,27,17,26,27,17,26,26,26,26,17,26,0,26,27,17,17,17,26,26,26,26,26,17,26,26,27,17,26,26,27,26,27,17,26,26,26,27,17,26,27,17,26,26,0,25,25,25,28,28,26,27,17,26,26,26,27,26,27,17,26,26,26,26,26,26,26,27,17,26,26,0,25,25,25,26,27,17,28,26,27,17,26,26,26,27,17,26,0,25,26,17,26,17,26,26,26,0,26,27,17,26,26,26,26,26,26,27,17,26,27,17,0,26,27,17,26,26,26,27,26,0,26,27,17,26,27,17,26,0,26,28,26,27,17,26,26,27,17,26,0,26,27,17,17,17,26,26,27,17,26,0,26,25,26,17,26,26,27,17,0,26,28,26,27,17,26,0,26,26,27,17,25,26,17,0,26,27,17,26,17,26,25,26,17,24,26,26,26,26,27,17,26,26,26,26,17,26,27,17,26,27,17,26,27,17,26,26,26,25,25,25,26,27,17,26,27,17,26,26,27,17,0,26,25,26,27,17,0,26,27,17,17,26,26,26,27,17,26,27,17,17,26,26,27,17,26,0,26,26,27,0,26,26,27,17,26,26,26,27,26,17,0,26,25,25,25,25,26,24,26,27,17,0,26,26,27,17,26,25,26,27,0,26,27,17,26,27,26,27,17,26,26,25,26,26,0,26,26,17,0,26,27,17,26,26,27,17,26,17,26,26,25,26,27,24,26,27,17,0,25,25,26,25,26,27,26,26,26,27,17,26,26,27,17,26,27,17,26,27,17,26,0,28,26,27,17,26,0,26,26,27,17,26,26,17,26,26,26,26,26,27,17,26,27,26,26,17,0,26,26,26,27,0,26,27,17,26,26,27,26,26,17,26,26,26,27,17,26,26,26,26,0,26,17,26,26,27,17,26,27,26,17,26,27,26,26,27,26,17,26,27,17,26,27,26,27,26,25,26,27,17,26,27,0,26,26,27,17,26,28,26,27,17,26,17,26,17,25,26,26,0,26,27,17,26,26,27,26,25,26,27,17,26,17,26,26,27,17,26,26,26,26,26,27,17,26,26,27,17,26,26,17,26,27,26,26,26,26,27,17,26,0,26,26,26,26,26,27,17,26,27,17,0,26,25,25,26,27,17,26,27,25,25,26,17,25,26,17,26,26,27,17,26,27,26,26,0,25,25,26,27,17,26,27,26,26,27,17,26,27,26,26,26,26,26,17,26,27,17,26,26,26,27,26,26,27,26,27,26,27,17,0,25,26,27,17,0,26,26,0,26,26,26,26,27,17,26,26,28,26,27,17,26,25,26,17,26,27,26,27,17,26,0,25,26,26,26,27,17,17,26,0,25,26,17,26,27,17,26,26,26,26,0,26,26,26,27,17,26,26,26,26,27,26,26,26,27,17,26,26,26,26,27,26,0,26,0,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,17,26,26,26,26,27,17,25,26,26,28,26,27,17,26,0,26,26,26,27,17,26,26,26,26,27,0,25,26,17,26,26,27,17,26,26,26,26,27,17,26,26,26,27,17,26,17,17,26,26,27,17,26,0,26,26,26,27,17,26,26,27,17,0,26,27,26,27,26,27,26,17,26,27,17,26,26,26,17,25,26,17,25,28,28,26,27,17,26,27,26,27,17,26,26,17,26,26,0,26,17,26,0,26,27,17,26,26,26,26,25,25,26,28,25,28,28,25,26,27,17,0,26,27,26,26,0,26,0,25,26,26,27,17,17,17,26,25,26,17,26,17,26,26,26,26,28,28,28,28,28,28,26,17,26,26,26,0,26,26,26,27,26,26,0,26,0,26,26,27,0,26,0,26,27,17,26,17,26,17,26,26,27,26,26,26,26,0,26,26,27,0,25,17,25,26,17,25,26,26,17,0,26,27,0,26,26,26,26,27,26,25,26,27,26,28,26,27,17,26,17,0,26,17,26,17,26,26,26,26,27,26,26,0,26,26,0,26,27,0,26,26,27,17,26,26,26,27,0,26,26,26,27,26,26,26,26,27,25,25,25,25,26,27,17,23,0,26,26,27,26,26,26,25,26,26,26,26,27,26,26,27,17,26,26,0,26,26,27,26,27,26,27,26,17,26,26,26,26,26,27,25,28,28,26,27,17,26,27,17,26,26,0,26,25,25,26,27,17,25,26,17,26,26,17,0,26,26,26,26,0,26,27,26,27,17,26,26,17,26,26,0,26,26,26,17,17,26,27,17,26,26,26,26,26,25,26,27,24,26,26,0,26,27,26,27,17,26,0,26,26,26,17,25,26,26,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,27,17,26,26,0,26,17,17,17,17,17,17,17,17,26,26,26,27,17,0,26,27,17,26,26,26,26,26,0,26,26,26,17,25,26,27,17,26,26,26,17,26,0,26,26,26,17,26,0,26,26,27,17,26,0,26,26,26,27,17,26,26,26,26,26,17,26,26,26,26,27,17,0,26,26,0,26,26,17,0,26,26,0,26,26,26,26,26,26,26,27,26,26,27,26,26,0,26,26,26,26,27,26,26,0,26,27,26,0,26,26,26,26,26,0,26,26,26,27,17,26,26,26,26,26,26,26,26,27,17,26,0,26,26,27,17,26,26,26,27,17,26,27,26,26,26,26,26,27,26,26,27,17,26,26,27,26,27,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,27,26,26,26,26,26,27,26,26,17,26,26,27,17,26,26,27,25,26,27,17,0,26,27,26,26,27,26,0,26,26,26,27,26,26,26,27,17,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,27,17,26,26,27,17,26,27,17,26,17,17,17,17,17,17,17,26,0,26,26,27,0,26,0,26,26,26,26,26,26,26,26,26,26,27,26,26,26,17,26,26,26,26,0,26,26,26,26,26,26,27,26,27,17,26,26,26,17,0,26,27,26,26,27,25,25,26,27,17,0,26,25,28,28,26,27,17,26,26,0,26,26,26,26,27,25,28,28,26,27,17,26,26,26,26,26,27,26,17,26,17,25,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,26,27,17,25,25,25,26,27,17,26,27,25,28,28,26,27,17,0,25,26,27,17,26,26,26,27,0,17,26,26,27,0,26,26,26,17,26,17,17,26,26,26,17,26,26,26,0,26,26,27,26,26,27,17,26,27,26,26,26,27,26,25,26,27,26,26,26,26,26,26,26,17,0,26,27,25,28,25,25,28,28,26,27,17,25,28,28,25,26,27,17,25,26,27,26,26,27,17,25,25,26,27,17,26,25,28,28,26,27,17,26,26,17,26,25,26,27,17,26,26,26,0,26,17,26,17,25,26,27,0,26,26,27,26,17,25,26,27,26,17,0,26,27,26,26,25,28,28,26,27,17,26,26,26,0,26,26,25,26,27,26,25,26,27,26,26,25,26,27,17,26,17,17,26,26,26,26,26,26,26,17,26,27,26,0,26,26,17,26,26,26,26,17,26,27,17,25,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,26,25,25,26,27,17,26,27,0,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,25,26,26,26,26,27,26,26,26,26,17,26,17,25,26,27,26,26,27,26,26,26,26,26,26,27,17,26,17,25,26,27,26,26,26,26,26,26,26,26,27,26,26,26,26,25,26,27,17,25,25,26,27,17,25,25,26,17,25,17,17,26,17,26,26,26,26,27,17,0,26,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,26,25,26,27,26,26,27,17,26,17,26,17,26,26,26,25,28,28,26,27,17,26,0,26,27,26,27,17,25,26,27,26,26,26,26,27,25,26,27,26,27,17,26,26,26,26,25,25,25,28,28,26,27,17,26,27,26,27,17,25,17,26,27,26,26,26,17,25,26,27,0,17,17,26,26,26,27,25,26,27,0,26,26,26,25,28,28,26,27,17,0,26,25,26,27,26,27,17,25,26,27,26,26,26,0,25,26,27,26,27,25,28,28,26,27,17,25,26,27,17,25,26,27,17,17,26,25,26,27,0,17,17,26,25,26,27,26,17,0,25,26,27,17,26,25,26,27,26,0,25,26,27,26,25,26,27,26,25,26,27,25,26,27,26,0,26,25,25,26,27,26,27,25,25,26,27,0,17,26,27,17,0,25,25,26,27,26,0,25,25,25,26,27,17,25,25,25,26,27,25,26,27,26,17,17,26,26,25,26,27,0,26,25,26,27,26,26,17,26,26,26,25,26,27,26,27,17,26,27,26,28,26,17,26,0,25,26,27,25,26,27,17,26,27,17,17,26,17,26,25,28,28,26,27,17,25,26,27,26,25,25,26,27,26,27,26,27,25,25,25,26,27,17,25,26,27,0,26,0,26,27,17,26,25,26,27,25,26,27,25,26,27,17,26,17,26,0,26,26,25,26,27,26,26,0,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,25,17,26,27,17,26,27,26,27,0,26,27,26,27,25,25,25,26,27,26,27,26,27,26,27,0,17,17,25,26,27,25,25,26,27,26,26,27,26,27,26,27,17,0,26,27,25,26,27,25,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,17,17,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,28,26,27,17,26,27,26,27,26,27,25,25,26,27,17,17,26,26,27,25,25,25,25,26,27,17,25,26,27,26,26,26,17,26,26,17,26,0,26,28,26,27,17,26,26,26,0,26,26,28,28,26,27,17,26,26,26,26,26,27,0,26,26,26,26,17,17,26,27,26,26,26,25,26,27,0,26,26,26,26,26,25,25,26,27,25,26,26,0,26,26,25,26,17,24,26,26,26,0,26,26,26,26,27,0,26,27,17,26,26,26,25,25,25,26,17,26,26,26,25,25,26,27,17,26,26,0,26,26,26,26,27,17,26,26,26,26,27,17,26,26,27,0,25,26,27,26,26,26,26,26,26,26,0,26,26,26,26,27,28,26,27,17,0,25,26,27,17,26,25,26,26,27,26,26,17,26,28,17,26,27,17,26,27,17,26,27,26,26,0,26,0,26,26,26,26,26,26,26,26,27,26,0,26,25,26,26,26,26,26,26,17,0,26,28,26,27,17,26,26,26,17,17,26,26,27,26,0,26,26,0,26,26,26,26,26,27,26,28,26,27,17,26,26,26,27,26,26,26,0,26,26,26,26,0,26,0,26,26,17,26,26,26,27,17,26,26,26,26,27,26,26,26,27,17,26,26,26,26,27,0,26,26,26,26,26,26,26,27,26,26,26,17,26,26,26,17,17,26,26,17,26,26,26,26,25,17,26,17,26,26,26,26,26,26,26,26,26,26,27,0,26,27,26,25,26,26,26,0,26,26,26,26,26,0,26,0,26,17,26,17,26,0,26,26,26,26,25,25,25,26,27,17,25,25,26,17,26,26,0,26,26,26,26,26,27,0,26,26,27,26,26,27,26,0,25,25,25,26,24,26,27,17,26,0,26,26,26,17,17,26,26,26,0,26,26,27,26,26,26,27,17,0,26,0,26,26,26,26,26,26,26,26,26,27,26,25,26,26,25,28,28,26,27,17,26,0,26,26,27,26,27,26,26,26,26,0,26,26,27,17,26,26,17,28,26,27,17,26,26,26,0,26,27,26,27,26,27,26,27,0,26,26,26,27,17,26,17,26,27,26,26,26,26,0,26,26,26,27,26,26,25,25,25,26,24,26,26,0,26,25,17,26,24,26,26,26,26,26,26,28,26,27,17,26,27,17,0,26,27,26,26,26,26,26,0,26,17,26,0,26,27,17,26,26,26,26,26,26,27,26,26,17,17,26,26,25,26,0,26,26,26,26,0,26,27,17,26,27,17,26,26,26,26,26,26,26,26,0,26,25,26,24,0,26,26,26,26,17,26,26,26,26,26,27,17,28,26,27,17,25,26,27,17,26,27,26,27,17,28,26,27,17,26,26,26,27,26,26,26,27,26,26,26,26,27,17,26,26,26,0,26,26,27,17,26,0,26,27,0,26,26,26,26,26,27,0,26,0,26,27,26,26,27,26,17,0,26,26,0,26,26,26,27,26,26,25,25,25,26,26,27,25,26,26,27,17,25,26,27,17,26,27,0,26,0,26,27,17,26,26,26,26,26,26,0,26,26,26,26,27,26,0,26,27,26,27,17,0,26,27,17,26,0,26,26,26,26,26,27,0,26,26,26,27,17,26,26,26,26,0,26,0,26,17,26,26,26,0,26,26,26,27,17,26,0,26,17,26,25,28,28,25,25,25,26,27,17,26,27,26,26,27,17,26,25,26,17,26,27,17,26,27,26,26,26,26,27,17,26,27,26,26,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,26,17,26,26,26,0,26,26,27,26,26,26,26,26,26,26,17,26,26,27,17,26,27,26,26,25,26,27,26,27,26,26,27,17,28,26,27,17,26,26,27,17,26,27,26,26,27,26,17,0,26,26,27,17,26,26,27,17,26,0,26,27,17,26,26,26,26,26,27,28,26,27,17,0,26,26,26,25,26,27,17,0,26,27,26,27,0,26,26,17,26,26,0,26,26,26,0,26,26,26,26,26,26,26,27,17,26,0,26,26,25,26,27,17,0,26,27,26,26,26,27,17,0,26,26,27,26,26,27,17,26,26,27,17,0,26,26,26,27,17,26,0,26,26,26,26,27,26,26,26,0,28,26,27,17,26,26,26,26,17,26,26,27,0,26,26,26,26,26,0,26,26,27,26,17,0,26,0,26,27,17,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,26,17,28,26,27,17,26,26,26,26,26,25,26,24,26,26,0,26,0,26,27,26,27,26,26,27,26,26,27,26,27,26,27,26,26,26,26,26,26,26,26,26,26,17,26,0,26,26,26,27,17,26,26,26,26,0,26,26,26,26,0,26,26,26,26,26,27,17,26,17,26,27,26,26,26,26,17,26,0,26,26,27,26,0,26,27,17,26,0,26,27,26,26,27,26,26,26,26,26,26,26,26,27,26,0,26,26,26,17,26,26,26,26,26,17,26,26,27,17,26,26,26,27,26,26,26,26,26,0,26,26,26,25,28,28,26,27,17,26,17,26,0,26,26,25,17,25,26,17,26,26,17,26,26,26,26,26,0,26,28,26,27,17,26,26,26,17,26,0,26,26,26,26,27,17,17,26,27,17,26,27,17,26,26,27,26,27,26,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,28,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,25,28,28,26,27,17,26,27,26,26,27,26,27,25,28,28,26,27,17,25,25,25,26,27,24,26,27,26,27,17,26,27,0,26,27,26,27,26,27,25,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,25,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,26,27,26,27,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,17,26,27,26,27,28,26,27,17,26,27,26,0,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,26,27,25,28,28,26,27,17,26,27,26,26,26,17,26,26,27,17,26,26,26,27,17,26,17,26,27,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,0,26,27,26,0,26,26,27,25,26,26,27,26,27,0,26,26,26,26,0,26,26,17,26,26,27,26,26,17,25,28,28,25,26,27,17,26,26,26,26,26,26,26,17,26,26,0,26,26,26,26,27,17,26,26,26,26,17,26,25,28,28,26,27,17,26,26,27,17,26,26,27,26,26,26,26,26,26,26,0,26,27,17,26,17,0,25,28,28,26,27,17,0,26,26,17,26,26,26,0,26,26,27,28,26,27,17,26,26,27,17,26,26,0,26,26,27,17,26,26,26,27,26,26,26,27,17,26,26,26,26,27,17,26,26,27,17,25,25,28,28,26,27,17,25,26,26,26,27,17,26,26,26,26,26,0,26,27,26,26,0,26,26,27,17,26,26,27,26,26,27,26,26,26,26,26,26,27,17,0,26,25,25,25,25,26,27,17,26,26,27,17,26,26,26,17,26,27,17,26,26,27,17,0,25,26,27,17,24,26,26,17,26,0,26,26,26,26,26,27,17,0,26,27,17,26,26,26,26,26,25,25,26,27,17,26,26,27,17,26,26,26,26,27,17,26,26,0,26,0,26,26,26,27,26,26,26,26,27,26,27,17,26,27,17,26,26,27,17,26,26,25,25,25,28,28,26,27,17,26,27,0,26,26,28,25,25,17,26,27,17,26,26,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,25,26,27,23,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,0,26,27,26,27,26,27,25,26,27,23,26,27,17,0,26,27,25,28,28,26,27,17,25,26,27,26,27,17,0,26,27,26,17,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,17,0,26,25,26,27,17,26,27,26,17,17,26,27,17,26,0,17,17,26,27,26,27,17,26,27,26,25,28,28,25,28,28,26,27,17,26,27,26,26,27,26,27,17,25,26,27,17,26,27,17,17,26,17,26,27,25,26,27,17,26,27,26,26,27,17,26,26,27,0,26,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,26,27,25,26,27,26,27,26,27,17,26,27,26,27,0,26,26,27,17,26,27,26,26,27,26,27,17,26,17,26,27,17,26,27,17,26,27,26,27,26,27,17,25,25,26,27,0,26,26,26,27,0,26,25,26,17,17,26,27,26,26,26,26,27,26,27,0,26,26,27,17,26,26,25,25,25,26,24,26,26,27,26,0,26,26,27,17,26,0,26,25,26,27,26,28,25,26,27,17,0,26,26,26,17,26,26,26,17,17,26,26,27,17,26,26,25,26,24,17,26,26,26,27,26,26,26,0,26,26,26,26,27,17,26,26,17,26,26,26,26,26,26,25,26,0,26,26,26,0,26,26,26,27,26,0,26,27,0,17,17,26,26,26,27,17,0,26,26,26,0,26,26,26,26,26,26,27,17,26,26,26,26,25,26,27,17,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,0,26,26,25,26,0,26,26,26,27,25,25,17,26,26,0,26,0,26,26,26,0,26,26,0,26,27,0,26,26,26,27,17,26,26,27,17,26,27,17,0,26,26,26,26,26,25,26,26,17,26,26,25,25,25,26,24,26,27,17,26,25,28,28,26,27,17,26,27,26,26,17,26,26,26,26,26,25,26,26,27,0,26,17,25,28,28,26,27,17,0,26,0,26,27,26,27,17,26,26,26,26,26,17,25,26,24,26,26,26,26,26,27,26,17,26,26,27,26,27,26,27,17,26,26,26,26,17,26,26,25,26,26,26,26,26,26,27,17,26,26,27,17,26,26,27,17,26,26,26,26,17,26,26,0,26,26,17,26,26,26,26,17,26,26,0,26,17,26,26,26,26,0,26,17,26,27,17,26,26,26,26,26,26,27,26,27,26,0,17,26,17,26,0,26,26,26,0,26,26,26,26,26,0,25,26,24,26,26,26,27,0,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,27,26,27,17,17,17,26,25,26,26,26,26,26,0,26,26,25,26,26,26,27,26,26,26,26,0,26,26,27,17,26,26,0,26,26,26,26,27,26,17,26,26,26,26,26,26,26,0,26,26,25,26,26,26,17,26,0,26,17,26,26,26,27,26,0,26,26,27,17,28,26,27,17,17,26,26,26,26,27,26,26,26,26,26,26,27,26,26,26,26,27,17,26,0,26,26,27,28,26,27,17,26,17,26,26,26,26,17,26,0,26,27,25,26,0,26,27,25,28,28,17,17,26,27,17,26,26,27,26,26,0,26,0,25,26,27,0,26,17,26,26,27,0,26,0,26,25,25,28,28,26,27,17,0,25,26,27,25,25,26,27,17,25,25,28,28,25,26,27,17,0,26,27,25,25,26,27,17,26,26,26,17,26,0,25,26,27,0,26,26,26,25,26,27,17,26,0,25,26,27,17,26,26,25,26,27,26,25,26,27,17,26,25,26,27,17,26,26,25,26,27,26,26,17,0,26,26,25,26,27,0,25,26,27,26,0,26,26,26,26,25,26,27,17,26,26,26,26,25,26,27,17,26,26,26,25,26,27,17,26,26,27,17,0,26,26,27,26,25,26,27,17,26,26,26,26,26,27,26,26,26,26,26,0,26,27,26,0,26,25,26,26,27,0,26,26,27,17,26,26,0,26,26,0,26,26,26,26,0,26,27,26,27,0,26,26,27,17,0,25,25,25,26,27,17,25,26,27,17,26,26,26,17,26,27,26,26,26,26,27,26,26,28,26,17,26,0,25,25,25,17,26,27,17,0,26,26,26,26,26,26,25,25,25,26,24,0,26,27,26,26,26,26,26,27,26,27,17,28,26,27,17,26,26,26,26,26,0,26,26,27,17,26,0,26,26,27,26,17,17,26,26,27,17,26,26,26,0,26,27,26,26,27,26,26,26,26,27,17,26,27,26,17,26,26,26,26,26,26,0,26,26,0,26,0,26,26,27,26,27,17,26,26,26,26,26,27,17,26,17,26,26,27,17,0,26,0,26,27,26,27,17,25,26,27,17,23,0,26,0,26,17,26,0,26,27,26,26,28,25,25,17,26,27,17,0,25,26,27,23,26,25,26,27,17,23,26,27,26,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,17,25,28,28,26,27,17,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,0,17,26,27,26,27,17,26,27,0,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,0,26,27,17,26,27,17,26,27,26,27,17,26,17,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,17,25,26,27,17,26,27,25,28,28,26,27,17,26,27,25,26,27,26,27,0,26,27,26,27,26,25,17,26,27,17,25,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,25,25,25,25,26,27,17,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,28,26,27,17,26,27,26,27,0,26,27,26,27,17,0,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,26,0,26,26,0,26,26,26,26,26,26,27,26,26,28,26,27,17,26,26,26,0,26,26,26,27,17,26,27,26,26,27,0,26,26,26,0,26,26,26,26,26,26,17,26,26,26,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,0,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,26,26,26,27,26,17,26,27,26,26,27,17,26,27,17,0,26,0,26,28,25,26,17,26,25,28,28,26,27,17,26,27,17,26,17,28,26,27,17,26,25,26,17,17,17,17,17,17,17,26,26,26,0,26,26,26,25,26,27,17,0,26,26,0,26,0,26,17,26,26,0,25,26,26,26,26,26,26,0,26,25,26,27,26,26,17,26,0,26,27,17,26,26,25,26,26,26,0,26,26,26,26,25,26,26,27,17,26,27,17,26,27,26,0,26,25,26,17,25,25,26,26,26,26,17,26,26,0,26,25,26,27,17,26,25,28,28,25,17,17,26,27,17,26,27,26,26,26,25,26,26,26,17,26,26,26,26,27,17,25,26,26,26,26,27,25,28,28,25,26,27,17,0,26,25,26,17,0,25,26,26,27,17,26,0,26,25,26,17,26,26,25,26,26,26,25,28,28,26,27,17,0,26,0,26,26,25,26,28,26,17,25,26,26,27,0,26,0,26,27,17,26,25,26,25,28,28,25,26,27,17,0,26,0,26,26,25,26,27,17,26,0,25,25,25,26,17,26,26,27,17,0,26,26,26,26,27,25,26,26,26,25,26,27,26,26,27,17,26,25,26,26,0,26,27,26,17,0,26,27,26,27,17,26,0,25,26,26,27,17,26,26,26,26,17,25,25,25,25,25,26,27,17,25,26,27,17,26,27,25,26,26,26,26,25,17,17,17,17,17,17,17,25,26,27,17,0,26,17,25,26,25,25,26,27,28,26,17,26,26,26,26,26,26,26,27,26,26,17,26,27,26,26,26,27,26,27,26,26,27,28,26,17,26,27,26,26,26,26,26,26,27,26,17,26,26,27,17,26,26,26,27,17,26,26,26,17,26,27,17,26,17,0,26,26,17,26,26,26,28,26,27,17,26,25,26,17,26,26,26,27,17,26,26,26,26,27,17,25,26,17,26,26,17,26,17,17,26,26,26,26,26,26,26,26,0,17,26,27,17,0,26,26,17,26,25,26,26,27,0,17,26,27,17,25,28,28,26,27,17,26,26,27,26,27,26,27,17,26,27,17,26,27,17,26,17,26,27,26,27,26,27,0,17,26,27,17,26,26,27,17,26,0,26,27,26,27,26,27,0,26,27,25,26,17,26,27,0,26,27,26,26,27,26,27,25,25,28,28,25,28,28,25,25,23,25,25,25,28,28,25,25,26,27,17,26,27,25,25,26,27,17,26,27,17,25,26,27,17,26,27,26,27,17,26,27,0,26,27,25,28,28,25,17,17,26,27,17,25,17,26,27,17,26,26,27,26,27,26,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,17,26,26,27,26,27,26,17,26,27,17,26,27,26,27,0,26,0,26,27,26,27,17,26,27,17,0,26,17,26,27,26,27,17,25,26,27,17,26,27,17,26,27,17,0,26,27,25,17,25,26,27,17,26,17,26,27,17,25,28,28,26,27,17,0,17,26,27,17,26,28,26,27,17,26,27,26,27,25,26,27,25,26,27,17,26,25,25,25,26,27,24,26,27,26,27,26,27,0,26,27,26,26,27,26,27,28,26,17,25,17,17,26,27,17,26,25,26,27,17,26,27,0,26,27,26,26,27,26,26,27,25,26,27,17,26,26,27,26,27,26,26,27,26,27,26,25,26,27,17,25,25,25,26,27,26,26,27,25,26,17,0,26,27,25,26,25,26,27,17,26,27,17,26,25,28,28,28,28,28,26,27,17,24,26,27,17,26,27,17,25,28,28,26,27,17,26,27,26,26,27,25,26,27,26,27,26,25,26,27,17,25,26,27,17,26,27,26,26,27,26,27,26,27,17,0,17,26,27,17,25,26,27,17,26,26,27,26,26,27,26,25,28,28,26,27,17,26,27,26,26,27,26,25,17,26,27,17,26,27,17,26,26,27,0,26,27,17,26,27,26,27,25,25,26,27,17,25,25,26,27,17,0,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,26,27,26,27,17,17,26,27,17,26,27,0,26,27,17,26,26,27,26,27,17,26,27,17,26,26,27,25,28,28,25,26,27,17,17,17,26,27,17,26,27,25,17,26,27,17,26,26,27,17,0,26,0,28,25,25,26,27,17,0,26,17,26,27,17,26,27,25,26,17,0,26,27,26,27,26,27,17,26,27,17,25,26,17,24,0,26,17,0,17,26,17,26,17,26,27,17,0,17,26,27,17,26,26,27,17,26,26,27,26,0,17,26,27,17,26,26,26,26,17,26,27,17,17,26,27,17,0,26,0,26,26,27,17,26,27,26,17,26,27,17,26,25,26,17,26,26,26,17,26,27,17,26,27,17,26,0,26,26,17,26,0,26,26,26,26,26,26,25,26,24,26,27,26,26,25,25,25,26,24,26,28,26,27,17,26,0,26,26,26,27,26,26,17,0,26,26,27,17,0,26,26,26,27,26,26,0,17,17,26,26,0,26,0,25,28,28,26,27,17,26,26,25,25,26,27,26,25,26,27,17,26,25,25,26,27,26,26,26,27,26,26,27,17,26,27,17,26,26,26,0,26,26,26,25,25,26,26,26,26,26,26,26,26,26,26,25,26,27,26,27,26,0,26,26,27,26,0,26,27,26,0,26,26,26,26,25,26,17,26,27,26,27,26,26,26,26,26,27,17,26,26,26,26,25,26,27,26,27,17,26,26,26,27,17,26,27,17,26,26,27,26,26,26,27,17,0,26,26,26,26,25,26,27,17,26,26,26,0,26,26,26,26,26,0,26,27,17,26,0,26,26,26,26,26,26,26,27,17,26,27,26,26,17,17,25,26,27,26,0,26,26,26,0,26,27,17,26,26,17,26,17,26,27,28,26,27,17,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,26,26,27,26,26,0,26,26,27,26,28,26,26,26,26,26,27,17,17,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,0,26,26,26,27,17,26,28,26,27,17,26,27,26,26,26,26,27,26,26,26,26,26,27,26,17,26,27,17,26,26,26,27,26,26,17,26,26,26,26,0,26,27,26,27,26,26,0,26,27,26,0,26,27,17,26,26,26,26,26,0,26,26,26,26,26,17,17,17,26,26,26,26,26,26,17,26,0,26,26,27,17,26,0,26,28,26,17,26,26,27,17,0,26,28,26,17,26,27,26,26,0,26,26,26,26,25,26,27,26,27,26,27,26,27,26,27,0,26,27,0,17,26,27,17,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,25,17,26,27,17,26,27,26,27,25,25,28,28,26,27,17,0,26,27,0,26,27,25,17,26,27,17,26,27,17,25,26,27,26,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,25,28,28,17,26,27,17,26,27,25,25,28,28,25,25,26,27,17,26,27,26,27,17,25,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,0,26,27,25,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,26,27,0,26,27,0,26,27,25,17,26,27,17,25,26,27,26,27,26,27,26,27,26,27,25,17,25,26,27,17,26,27,0,26,27,0,26,27,26,27,25,26,27,25,17,26,27,17,0,26,27,26,27,26,27,26,27,25,26,27,25,17,26,27,17,26,27,17,26,26,27,25,26,27,17,26,27,0,25,17,26,27,17,26,27,26,27,25,25,26,27,25,26,27,26,27,0,25,17,26,27,17,26,27,25,17,25,25,26,27,17,26,27,26,27,17,26,27,17,25,17,26,27,17,26,27,25,26,27,26,27,26,27,26,27,0,25,17,26,27,17,25,28,28,25,26,27,17,0,26,27,17,25,26,27,25,28,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,25,26,27,25,25,26,27,25,28,28,17,26,27,17,26,27,25,25,26,27,26,27,26,27,0,25,25,26,27,0,25,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,25,26,27,26,27,25,26,27,0,26,27,17,26,27,25,17,26,27,17,26,27,25,25,25,26,27,25,25,25,26,27,17,25,26,27,17,25,26,27,17,25,17,26,27,17,26,27,25,26,27,25,26,27,17,28,26,27,17,26,27,0,25,17,26,27,17,25,26,27,26,27,26,27,25,25,26,27,17,0,26,27,25,17,25,26,27,17,26,27,26,27,26,27,26,27,0,25,25,26,27,26,27,25,26,27,26,27,17,26,27,0,25,26,27,25,26,27,17,25,28,25,26,27,17,26,27,25,26,27,26,27,17,28,26,27,17,25,25,25,26,27,24,25,26,27,26,27,26,27,17,26,27,26,27,25,26,27,0,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,17,26,27,26,27,26,27,26,27,17,0,26,27,0,26,27,25,25,26,27,17,26,27,17,25,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,26,26,27,26,17,26,27,26,27,17,0,26,17,17,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,0,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,0,28,26,27,17,26,27,26,27,26,27,17,26,27,26,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,25,28,28,26,27,17,0,26,27,0,25,26,27,25,26,24,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,26,26,26,26,17,26,0,26,17,0,26,26,27,17,25,28,28,26,27,17,26,26,17,26,27,17,0,17,26,26,26,25,26,27,26,0,26,27,26,0,26,26,26,26,27,17,26,17,26,26,27,17,26,27,17,26,17,26,26,17,26,26,26,27,17,26,26,27,17,26,26,26,26,27,0,26,17,26,26,17,26,27,17,26,26,27,17,26,26,0,26,27,26,26,26,26,26,0,26,27,17,26,26,26,26,27,17,26,26,26,27,26,27,26,26,25,26,27,17,26,17,26,26,27,17,26,26,27,17,26,25,28,28,26,27,17,26,27,17,0,26,26,26,27,17,26,26,17,26,26,26,26,26,26,27,26,26,25,26,27,17,26,26,27,17,26,26,25,26,26,0,26,17,26,26,26,27,26,26,27,0,26,26,27,17,25,26,27,17,26,26,26,27,17,25,28,28,26,27,17,26,27,26,27,26,17,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,25,26,27,17,26,27,26,25,26,27,17,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,0,26,27,25,26,25,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,17,26,27,17,0,26,27,0,25,28,28,26,27,17,26,27,26,0,26,27,17,25,28,28,26,27,17,26,27,25,25,25,25,25,25,26,27,17,26,27,26,27,26,27,25,26,27,17,25,28,28,25,26,27,17,0,26,27,17,26,27,17,26,27,0,25,26,17,26,27,0,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,26,26,27,17,0,25,25,25,25,26,27,17,25,26,27,17,25,26,27,17,0,25,28,28,25,25,26,27,17,26,27,26,27,17,26,26,27,0,26,27,17,26,26,27,26,27,26,27,26,27,26,17,17,17,26,27,17,25,28,28,26,27,17,26,27,17,26,27,26,27,26,26,27,17,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,25,26,27,26,26,27,0,25,26,27,17,26,27,25,26,27,26,27,17,26,27,25,25,25,26,17,25,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,17,26,27,17,26,27,17,0,26,27,0,26,27,25,26,27,26,27,26,27,26,27,26,25,26,27,17,26,27,17,0,25,25,25,26,27,24,26,25,25,26,27,17,26,25,25,28,28,26,27,17,26,27,25,26,27,26,27,17,26,25,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,26,17,26,27,26,27,25,26,27,17,26,27,26,27,25,25,26,27,17,26,27,17,0,26,27,25,25,26,27,0,26,27,0,25,25,25,26,27,17,0,26,27,26,26,27,25,26,27,26,27,0,26,27,0,26,27,26,27,25,25,28,28,25,26,27,17,25,26,27,26,25,26,27,25,26,27,25,26,27,26,0,26,27,17,17,17,26,27,26,27,17,17,26,27,17,25,26,27,0,26,27,17,26,27,26,27,26,27,25,25,26,27,26,27,17,0,26,27,26,27,17,25,25,25,17,26,27,17,24,0,25,26,27,17,26,27,26,0,26,27,0,26,27,26,0,25,25,25,25,26,27,17,23,25,26,27,17,26,27,25,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,17,17,17,25,26,27,26,27,0,26,27,17,26,27,26,27,0,25,25,25,26,27,17,26,27,17,26,27,26,26,27,17,17,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,25,28,28,26,27,17,17,26,27,26,27,25,25,25,25,25,25,28,28,25,25,17,26,27,17,26,27,25,25,26,27,17,0,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,28,28,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,25,25,25,26,27,17,25,28,28,26,27,17,26,27,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,0,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,25,28,28,26,27,17,25,26,27,26,27,17,25,17,26,27,24,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,17,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,25,25,26,27,17,0,26,27,17,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,0,26,27,25,25,26,27,25,25,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,25,26,27,17,26,27,17,0,26,27,0,26,27,26,27,26,27,25,26,27,17,25,25,25,26,27,17,25,28,28,25,26,27,17,0,26,27,26,27,0,26,27,0,26,27,17,26,27,0,25,26,27,17,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,0,25,28,28,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,26,27,25,26,27,26,27,26,17,26,27,26,26,27,26,27,26,27,0,26,27,26,26,27,26,27,26,27,17,26,27,25,25,25,25,25,26,27,17,26,27,26,27,26,26,27,26,27,26,0,26,27,26,27,0,17,26,25,26,27,24,26,27,26,27,17,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,0,26,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,17,26,27,26,26,27,25,26,27,0,26,27,26,27,17,26,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,26,27,0,26,27,0,26,27,26,27,17,26,27,26,25,25,26,27,17,26,27,0,25,26,27,26,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,17,26,27,17,26,26,27,26,27,26,26,27,26,27,26,27,25,26,27,26,27,0,25,28,28,26,27,17,26,25,26,27,0,25,26,27,26,27,26,27,17,0,26,25,26,27,25,26,27,0,25,25,25,25,26,27,17,26,27,26,0,25,26,27,26,27,26,27,26,17,17,26,27,25,26,27,25,26,27,17,25,26,27,17,0,26,25,26,27,17,26,0,25,25,26,27,17,26,27,26,27,26,25,25,26,27,17,0,25,25,26,27,26,27,26,27,26,26,27,0,25,26,27,25,25,26,27,26,27,26,27,0,26,27,26,26,26,27,26,27,26,26,27,26,27,26,27,26,0,26,27,26,27,25,26,27,25,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,26,27,17,26,27,26,0,26,27,26,26,27,17,26,27,26,27,26,25,25,25,26,27,17,25,26,25,26,26,27,26,17,0,26,26,26,17,26,27,17,0,26,25,28,28,26,27,17,26,26,26,26,26,26,26,17,26,26,26,27,26,27,26,27,17,26,26,27,0,25,26,27,26,27,26,27,26,26,27,25,26,27,26,27,17,26,17,26,27,28,28,28,28,17,17,26,27,17,0,26,27,17,26,0,26,26,27,0,26,25,25,26,26,26,26,27,17,26,17,26,26,26,26,26,26,26,25,26,27,17,0,26,26,27,17,17,26,26,17,26,26,17,17,26,26,26,26,26,26,0,26,26,0,26,26,27,25,17,26,27,17,25,26,27,17,26,27,26,26,26,26,0,26,0,25,26,25,28,28,26,27,17,25,26,17,26,17,26,17,25,25,26,26,26,26,17,26,25,26,27,17,25,26,27,26,17,26,26,0,26,26,25,26,27,26,26,26,26,26,27,26,26,26,25,25,26,27,17,26,25,26,26,25,17,17,26,27,17,26,26,26,28,26,17,25,26,27,17,25,26,27,17,26,26,26,0,26,25,26,27,0,25,25,25,25,25,17,17,17,26,27,17,26,27,17,0,26,26,26,25,25,25,26,27,17,26,26,27,26,26,25,26,27,26,25,26,27,17,26,26,26,26,27,26,27,26,27,25,26,27,26,27,0,25,26,27,26,27,17,0,26,26,27,26,26,17,17,26,25,17,26,26,27,17,26,26,26,26,26,26,26,27,17,26,17,26,27,26,27,17,0,26,25,25,25,26,17,25,26,26,27,17,25,25,25,25,25,25,25,26,27,17,26,26,26,26,27,26,26,25,26,27,26,27,17,26,17,17,26,0,26,26,26,26,26,27,17,26,26,17,26,27,26,26,0,26,26,27,17,26,26,26,17,26,26,17,26,26,27,17,26,26,26,26,26,0,26,27,26,27,17,26,26,26,26,25,26,27,17,26,26,27,17,26,27,17,17,26,26,26,0,26,26,26,27,17,26,26,26,26,26,0,26,27,17,26,27,17,26,27,26,26,17,26,26,0,26,26,27,17,17,17,26,27,17,28,26,27,17,26,27,23,26,27,26,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,28,28,25,26,27,17,26,27,17,25,17,26,27,17,25,26,27,26,27,17,26,27,17,25,25,25,26,27,17,25,25,26,27,26,27,17,0,26,27,0,26,27,26,26,27,25,25,26,27,17,26,27,26,27,26,27,26,28,28,26,27,17,26,27,26,26,27,26,27,26,27,0,25,26,27,0,26,27,26,27,0,26,27,26,27,0,25,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,25,26,27,25,25,25,26,27,24,26,26,27,17,26,27,17,25,26,0,17,26,27,17,25,26,27,26,26,27,17,26,27,0,26,0,26,27,26,0,26,26,26,27,25,26,27,17,26,25,26,17,26,26,27,26,27,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,26,27,0,26,26,27,26,26,26,26,0,26,26,26,27,26,26,26,26,26,17,26,27,17,26,26,26,26,26,27,26,27,26,26,0,26,26,27,17,26,26,26,27,17,0,26,26,26,26,26,26,26,25,26,17,26,25,26,17,0,17,26,17,25,26,26,26,26,26,27,17,0,26,25,26,26,26,17,17,26,26,26,27,26,26,26,26,27,0,26,26,26,26,27,17,26,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,0,26,0,25,25,25,26,24,26,27,17,26,26,26,27,17,26,26,26,26,27,0,26,26,0,26,26,26,0,17,26,26,26,26,26,26,25,26,26,27,17,26,17,0,26,26,26,26,26,26,0,26,26,26,26,27,26,26,27,26,27,17,26,26,27,17,26,26,0,26,17,17,17,26,26,26,26,27,26,26,26,26,26,26,26,26,26,0,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,0,26,26,0,26,25,26,24,26,26,26,26,26,26,26,25,25,25,26,24,26,26,27,26,0,26,0,26,26,26,27,17,26,25,26,0,26,27,17,0,26,26,26,0,26,26,26,27,17,26,26,26,26,26,17,26,17,26,26,26,25,26,27,0,26,26,26,0,25,25,25,25,26,27,17,26,0,26,26,26,26,27,26,26,17,25,26,24,26,26,27,26,27,17,26,27,26,26,27,26,27,26,0,26,0,26,27,17,26,25,25,25,26,24,26,26,26,27,17,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,26,27,26,25,26,0,17,26,17,26,27,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,26,26,26,0,26,26,27,26,0,26,0,25,26,26,27,17,26,27,26,27,17,17,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,26,26,26,26,26,26,0,25,28,28,25,26,27,17,25,26,17,25,17,26,17,26,27,17,26,26,26,26,26,0,25,25,17,26,27,17,26,27,17,25,26,26,26,26,27,26,26,26,0,26,0,17,26,26,26,26,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,17,17,26,26,25,25,26,27,17,0,26,17,26,26,26,26,17,26,27,26,27,26,27,26,17,26,26,26,26,26,26,26,27,26,17,26,26,26,26,17,26,26,27,17,26,17,0,26,26,26,27,17,26,27,26,17,26,26,25,26,0,26,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,27,26,26,17,17,26,17,17,17,26,26,26,27,0,26,0,26,26,26,26,0,26,26,26,27,17,26,0,26,25,28,28,25,26,27,17,25,26,17,0,26,25,25,26,17,26,26,28,26,27,17,26,0,26,0,26,26,0,26,26,26,26,26,26,26,26,27,0,26,26,26,26,26,26,26,17,26,26,26,27,17,0,28,26,27,17,26,0,25,26,26,26,26,0,28,26,17,25,28,28,25,25,25,28,28,26,27,17,0,26,27,0,26,26,0,26,26,26,26,26,27,17,26,27,26,27,17,26,26,26,26,26,26,0,26,0,26,26,0,17,26,17,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,25,25,26,27,17,25,26,27,26,26,0,26,27,26,26,17,26,26,26,25,26,27,17,26,17,26,17,25,17,17,26,26,0,26,27,17,26,26,26,26,26,26,26,27,26,26,26,27,25,28,28,17,26,27,17,0,26,26,27,17,26,0,26,26,26,26,17,25,25,26,26,26,26,26,26,26,26,26,26,0,26,27,17,0,26,26,26,26,26,26,26,17,17,26,0,26,26,27,26,26,26,26,27,25,25,26,27,17,25,17,17,26,27,17,26,26,27,17,26,17,0,26,0,26,26,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,26,26,27,28,17,26,27,17,26,26,26,26,26,26,27,26,26,0,26,26,26,27,26,26,17,26,27,17,26,26,17,17,26,17,26,26,27,17,26,26,26,27,26,17,26,26,26,26,17,17,26,17,26,27,17,0,26,0,26,26,25,26,26,27,26,27,17,26,27,17,26,26,17,26,17,17,17,26,26,26,26,17,26,26,27,17,25,26,27,17,0,26,17,17,26,26,26,27,17,26,0,26,27,26,27,17,25,25,25,25,26,27,17,26,26,26,0,26,26,26,26,26,26,0,26,17,26,26,26,26,27,0,26,27,17,26,26,0,26,26,26,17,17,26,26,26,17,26,27,26,26,26,25,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,0,26,26,0,26,25,25,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,0,26,26,26,27,17,26,26,26,0,26,26,17,26,17,26,26,26,27,17,26,26,26,26,26,27,0,26,25,25,25,25,26,27,17,0,25,26,17,26,26,27,17,26,26,17,0,26,26,26,0,26,17,26,27,0,26,26,26,17,26,26,26,27,17,0,17,17,26,17,26,26,0,26,26,26,26,27,26,0,25,26,17,24,26,27,26,26,26,26,27,17,26,27,0,26,26,26,27,0,26,26,26,17,0,25,26,27,17,26,26,26,26,26,17,26,26,0,26,26,26,27,17,26,26,26,26,27,26,26,17,26,17,26,26,0,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,26,26,17,26,26,26,26,26,27,17,26,26,26,26,17,17,26,26,26,26,0,26,27,26,26,0,26,26,27,26,26,28,26,27,17,26,26,27,17,26,26,26,26,27,26,26,26,26,17,17,26,26,26,26,17,26,26,26,27,17,26,27,26,26,26,26,17,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,26,27,26,26,26,26,0,26,26,26,26,27,17,17,26,27,17,0,26,0,26,26,26,27,25,25,25,25,26,27,17,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,26,26,0,26,17,26,26,26,26,26,27,17,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,17,0,26,0,26,0,28,26,27,17,0,26,26,27,17,0,26,0,26,26,26,26,26,26,26,17,26,26,26,0,26,17,26,17,26,27,17,26,27,26,26,26,28,26,27,17,26,17,0,26,26,26,26,26,26,27,17,26,26,26,26,17,26,26,26,26,26,0,26,26,26,26,0,17,17,26,27,17,26,28,26,27,17,26,26,27,28,26,17,26,27,17,26,26,26,26,27,26,26,26,0,26,26,27,17,26,26,27,17,26,26,26,27,17,26,0,26,28,26,27,17,26,27,26,26,26,17,26,27,26,27,17,0,25,25,25,26,24,26,26,27,17,26,27,26,26,26,26,26,0,26,26,26,26,26,26,25,26,17,26,27,17,26,26,26,26,26,26,27,17,26,26,26,0,26,27,26,26,26,26,26,27,26,0,26,25,26,24,26,26,27,17,26,17,26,25,28,28,25,26,27,17,26,0,26,27,17,26,26,27,26,0,26,26,0,26,17,26,27,17,0,26,0,26,26,26,26,26,27,26,0,26,26,26,26,26,26,26,27,17,26,26,27,26,27,26,26,17,26,27,17,0,26,26,27,26,26,27,26,26,17,17,26,27,26,26,26,23,26,27,26,26,26,27,17,26,26,27,26,26,26,27,26,17,26,17,26,26,26,0,26,27,0,26,27,17,26,27,0,26,26,26,26,26,27,26,27,26,26,26,26,26,26,26,27,17,26,26,27,26,26,0,26,26,27,17,26,27,26,26,0,26,17,17,26,27,26,26,26,26,27,17,0,26,26,26,26,26,27,17,0,25,25,25,26,27,24,26,26,17,26,17,26,27,26,26,26,28,26,27,17,26,26,27,26,27,0,26,26,26,17,0,26,27,28,26,17,26,27,26,26,26,26,26,26,26,27,26,26,26,27,0,26,27,17,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,28,26,27,17,26,26,27,26,0,26,26,25,25,26,27,17,17,26,25,26,27,17,26,26,27,17,26,26,26,27,17,26,26,26,27,0,26,27,26,0,26,26,26,26,0,26,27,26,26,26,26,27,26,26,26,26,0,26,17,17,26,27,17,25,26,17,26,27,17,26,26,0,25,25,25,26,27,17,26,26,25,26,27,26,26,27,0,26,26,0,26,26,0,26,26,26,26,27,17,26,27,26,26,26,27,26,26,26,26,26,26,26,0,26,26,26,27,17,26,26,17,25,25,25,26,24,26,26,26,27,17,0,26,26,26,27,17,26,17,26,26,26,25,25,17,17,26,27,17,26,17,25,25,26,17,25,25,26,26,26,0,26,25,28,28,26,27,17,26,0,26,27,26,26,26,26,26,26,0,26,26,26,26,17,26,17,26,28,25,26,27,17,26,26,26,26,27,26,27,26,0,26,26,0,26,26,26,26,27,17,26,26,26,26,27,26,17,0,26,27,17,17,26,17,26,26,26,27,0,26,17,17,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,25,28,28,26,27,17,0,26,27,0,26,26,17,26,26,26,26,26,17,17,26,26,25,26,27,17,26,27,17,26,26,26,0,26,27,26,26,26,26,0,26,26,27,17,26,0,26,26,27,17,26,26,26,27,17,25,26,27,17,25,26,17,25,26,17,26,26,26,26,27,26,27,26,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,26,26,26,0,26,27,26,26,26,26,17,26,26,27,26,26,26,27,28,26,27,17,26,27,17,0,26,27,17,26,26,26,17,26,26,26,26,26,0,26,26,27,26,26,26,27,17,26,27,17,0,26,27,17,26,27,17,26,26,26,0,26,26,26,27,26,27,0,26,27,26,27,26,26,26,26,17,17,26,26,0,26,27,17,26,26,27,26,26,26,0,26,26,26,27,17,26,26,25,28,28,25,26,27,17,26,0,26,26,27,17,0,26,17,26,27,17,26,26,26,26,26,0,26,26,26,26,27,26,27,17,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,26,27,17,26,26,26,26,27,17,26,26,26,27,17,26,27,17,25,28,28,26,27,17,26,27,26,26,26,26,26,26,26,26,0,26,26,27,26,27,17,26,26,26,26,26,25,28,28,25,26,27,17,26,27,26,26,27,26,26,27,17,26,26,25,26,24,0,26,27,17,26,17,26,26,26,26,0,26,26,26,26,26,27,17,26,17,26,27,26,26,27,26,27,17,0,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,27,0,26,0,26,27,17,26,0,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,27,17,26,26,26,26,17,26,26,27,26,26,26,26,27,26,25,28,28,26,27,17,26,26,27,17,26,27,25,26,0,26,26,26,26,26,26,27,26,26,26,25,26,17,26,26,26,26,27,17,26,26,27,17,26,0,26,27,17,26,26,26,26,27,17,26,27,0,26,26,27,26,26,26,27,26,26,27,17,26,27,17,26,17,0,26,26,26,26,17,25,25,25,26,24,26,26,26,26,26,26,26,27,26,26,26,26,26,27,26,26,27,26,27,17,26,26,26,26,26,26,27,25,25,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,25,26,26,26,26,26,27,17,26,26,26,17,26,28,26,27,17,26,26,27,17,26,26,27,26,26,25,26,17,26,26,27,17,26,27,26,26,27,17,26,26,25,26,17,26,26,26,26,26,26,0,26,26,27,26,27,26,25,25,25,26,27,17,25,26,17,26,27,17,0,26,28,26,27,17,26,26,27,26,0,26,27,17,26,27,17,0,26,27,26,26,26,26,0,26,26,27,17,0,26,26,27,26,26,27,17,26,25,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,25,26,27,24,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,17,17,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,17,17,17,26,27,26,27,25,25,26,27,26,27,0,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,26,26,27,26,26,26,27,26,25,28,28,26,17,25,26,17,26,26,26,17,26,26,0,25,26,27,0,26,17,0,26,26,27,17,26,26,25,26,26,27,26,26,27,26,26,25,26,26,26,27,17,26,26,17,0,25,17,26,17,25,26,24,26,26,26,26,0,26,25,28,28,25,28,28,17,26,27,17,26,26,25,26,26,0,25,26,26,25,26,26,26,26,27,26,26,26,27,17,26,0,26,26,27,17,26,26,26,17,17,26,26,26,27,26,26,26,26,17,17,26,27,28,26,17,26,26,26,27,17,26,27,17,0,26,27,26,26,27,17,26,27,25,26,27,17,26,26,27,26,27,26,27,25,28,28,25,26,27,17,0,25,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,25,28,28,25,28,28,25,28,28,25,25,25,25,26,27,17,0,25,26,27,17,26,27,26,27,26,25,25,26,27,0,17,26,27,26,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,26,27,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,25,28,28,25,26,27,17,0,25,26,27,17,26,27,26,27,25,26,27,26,27,17,25,25,26,27,26,0,25,26,27,17,25,26,27,26,27,17,25,25,25,26,27,17,25,17,17,26,27,25,25,25,26,27,17,26,27,17,26,27,26,0,26,27,17,26,27,25,25,26,27,25,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,26,27,17,26,27,17,0,26,27,26,0,26,27,0,26,27,26,27,26,27,17,26,17,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,26,27,26,26,26,26,27,17,0,26,26,26,27,17,26,26,0,25,25,25,26,27,24,26,26,26,27,26,0,26,26,17,0,26,26,26,17,26,26,26,27,17,26,26,26,26,26,17,26,26,26,26,26,26,26,26,27,17,26,0,26,27,26,27,17,28,28,28,26,17,26,27,17,26,27,17,26,26,26,26,26,27,0,26,27,17,26,26,26,27,17,0,26,26,0,26,27,17,26,27,17,26,0,26,27,17,26,27,26,26,26,28,26,27,17,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,26,26,27,17,25,26,17,26,26,26,26,0,26,27,26,27,17,26,26,26,26,27,26,0,26,26,27,17,26,27,17,26,0,17,26,17,26,26,27,26,26,27,17,26,26,26,27,17,26,26,17,26,27,26,27,17,26,26,26,26,17,0,26,25,26,17,26,27,17,26,26,26,17,26,26,26,27,26,27,17,17,17,26,27,17,26,26,26,26,26,26,27,17,26,25,28,28,26,27,17,26,27,17,26,27,26,27,17,26,27,0,26,27,17,26,27,25,26,27,17,26,27,0,26,26,27,26,26,27,17,26,27,25,26,27,17,26,27,26,27,17,0,26,26,27,26,27,17,26,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,25,26,27,17,25,25,25,26,27,17,26,27,17,0,26,26,27,26,27,17,26,27,25,26,27,25,26,27,17,26,27,26,27,26,26,27,17,26,27,17,26,17,25,25,25,26,27,17,23,23,23,26,27,17,26,27,26,27,26,27,17,26,27,0,25,25,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,26,27,26,27,26,0,26,27,26,27,17,26,26,27,17,17,26,27,26,27,26,27,26,27,0,26,27,17,26,26,27,26,17,26,27,26,27,26,26,27,17,17,26,27,17,26,26,26,0,26,27,17,26,26,27,17,26,27,26,27,17,17,26,26,26,0,26,26,27,17,26,26,26,26,25,26,27,17,26,26,27,17,0,26,26,26,26,26,17,26,26,27,17,26,26,26,26,26,0,26,0,26,27,17,26,26,17,26,26,26,26,0,26,27,17,26,26,17,26,27,17,26,26,26,17,26,27,17,0,26,26,27,17,26,26,27,26,26,26,27,17,26,0,26,27,26,26,26,26,27,17,25,25,25,25,26,27,17,0,26,26,17,26,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,25,26,27,17,26,27,26,27,26,26,27,0,25,25,28,28,26,27,17,26,27,26,27,17,26,27,25,17,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,17,0,25,26,27,25,26,27,17,17,17,26,27,17,25,25,26,27,17,26,27,26,27,25,26,27,26,27,25,26,27,26,27,17,26,27,0,26,27,25,25,28,28,26,27,17,26,27,26,27,26,27,25,26,27,17,0,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,25,25,26,27,26,27,17,25,28,25,26,27,17,26,17,26,27,25,26,27,17,0,26,27,25,26,27,26,27,17,26,27,26,27,25,26,27,25,26,27,25,26,27,26,27,26,27,17,26,27,25,26,27,25,25,25,25,26,27,17,25,28,28,26,27,17,25,25,25,26,27,24,17,26,27,26,27,17,26,25,26,25,25,26,27,17,26,26,27,26,27,17,26,27,17,26,27,26,26,26,27,26,25,26,24,26,27,17,26,26,26,0,26,17,26,26,27,26,27,17,25,28,28,26,27,17,26,27,0,26,27,17,17,26,26,27,0,26,27,0,26,27,17,26,27,25,26,27,26,27,26,27,0,26,26,27,26,27,17,26,26,26,0,25,25,25,26,27,17,26,26,26,27,17,26,26,28,26,17,26,25,26,27,17,17,26,25,25,25,25,26,27,17,25,25,28,28,26,27,17,26,27,26,26,27,26,26,25,26,27,17,26,26,26,26,27,26,26,25,26,27,17,25,26,27,25,26,26,26,26,27,17,26,26,27,17,26,26,27,17,0,26,17,26,26,26,26,27,17,26,26,26,26,26,17,26,17,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,28,28,26,27,17,25,26,27,17,26,27,26,27,28,26,27,26,27,17,25,26,27,17,25,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,25,26,27,26,27,17,17,26,27,26,27,17,25,26,27,17,26,27,17,0,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,17,25,25,26,27,17,25,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,17,26,27,25,26,27,17,28,26,27,17,0,26,27,17,26,27,25,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,0,25,26,27,17,0,25,26,27,17,25,25,25,25,26,27,17,25,26,27,17,0,25,25,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,17,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,17,17,26,27,25,26,17,26,27,26,27,0,26,26,27,17,26,27,17,26,26,27,26,27,26,27,26,27,17,25,26,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,17,26,27,26,27,17,26,26,27,0,26,27,26,26,27,17,26,27,26,27,17,26,26,26,26,0,26,27,17,0,26,26,27,17,26,26,17,26,0,26,26,27,17,26,26,27,26,26,17,26,27,0,26,26,27,17,28,26,17,26,26,26,26,26,26,27,17,26,0,26,27,0,26,25,26,17,26,26,26,27,17,26,26,26,25,26,17,26,26,27,17,26,27,17,26,17,26,26,26,26,0,26,27,26,27,17,26,25,26,26,27,17,26,17,26,17,26,17,26,27,17,26,27,17,26,17,26,0,26,26,26,26,27,17,26,26,26,0,26,26,26,27,17,26,27,17,26,26,0,28,26,17,26,25,25,25,26,27,17,26,0,26,27,17,26,17,25,25,26,26,26,26,26,27,17,26,27,17,26,26,27,17,26,17,0,26,17,26,17,26,17,26,27,17,26,17,26,26,25,25,26,27,26,25,25,26,27,17,26,27,17,26,27,25,26,27,17,26,0,25,26,27,26,27,17,26,26,27,17,26,26,27,17,26,25,26,27,17,26,26,26,27,17,26,26,17,26,26,27,17,28,17,26,25,25,26,17,26,27,17,26,26,26,25,25,25,25,26,17,0,26,26,26,27,17,26,25,26,26,26,26,17,26,17,26,27,17,26,26,26,17,26,26,27,25,26,27,17,26,27,17,28,26,17,26,26,26,0,26,17,26,26,27,17,26,26,26,26,26,0,26,25,28,28,26,27,17,26,0,25,26,17,26,27,17,26,0,17,17,26,26,26,27,17,26,26,26,0,26,26,0,26,26,27,17,26,27,17,26,26,27,17,26,17,26,26,26,27,17,0,26,26,27,17,26,26,26,25,28,28,26,27,17,25,26,27,17,26,26,17,0,25,26,0,26,26,0,25,26,27,26,27,17,26,26,27,26,0,26,27,17,0,25,25,28,28,26,27,17,26,26,27,17,0,25,25,25,25,25,25,25,28,28,26,27,17,25,25,26,27,17,25,25,26,27,17,0,26,0,26,26,25,25,26,27,17,26,25,26,25,26,27,26,26,25,26,27,26,27,17,25,17,26,27,17,26,17,0,26,0,26,26,26,26,27,17,26,27,17,26,26,26,26,17,26,26,27,17,26,27,17,26,26,0,26,17,25,25,28,28,26,27,17,26,17,25,25,26,27,17,26,25,25,26,27,26,26,27,26,26,17,17,26,27,17,25,25,26,27,17,26,26,26,0,26,26,26,27,17,26,26,25,26,27,26,17,26,25,25,26,17,26,27,17,25,26,27,26,0,26,26,26,26,0,25,26,27,17,26,26,26,0,25,28,28,26,27,17,0,26,26,27,17,26,27,17,25,25,25,25,26,27,17,26,26,25,26,27,26,26,26,27,17,26,26,25,26,27,0,26,27,0,26,26,27,17,26,27,17,26,25,26,27,26,26,26,26,26,27,17,17,26,17,26,17,26,26,0,26,26,26,27,17,26,26,17,26,26,26,26,25,26,27,17,0,26,0,26,0,26,26,27,17,25,26,24,26,26,27,17,26,26,26,26,26,26,17,17,26,27,17,26,26,26,25,25,26,27,17,26,26,0,26,27,17,26,26,26,26,0,26,26,26,27,17,28,26,27,17,26,0,25,26,27,17,26,17,26,17,25,26,27,26,27,17,26,25,25,26,27,17,26,27,26,26,0,26,26,27,17,26,17,26,26,17,26,27,26,26,26,27,17,26,26,26,26,26,26,26,27,17,0,26,26,0,17,17,26,25,28,28,26,27,17,26,26,26,27,17,25,25,25,26,24,26,26,26,25,26,27,26,26,27,17,0,17,17,26,26,26,26,26,26,26,27,17,26,26,0,26,26,27,26,26,25,26,27,17,26,26,26,26,27,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,27,17,26,25,26,27,26,25,28,28,26,27,17,26,27,17,26,25,26,17,26,26,26,26,0,26,27,17,26,26,0,26,25,26,26,17,26,26,27,17,26,26,26,25,25,26,27,17,26,0,26,26,27,17,26,26,26,27,26,26,26,26,27,17,26,26,25,26,27,26,26,25,26,24,26,27,17,26,17,26,26,0,17,17,26,26,25,28,28,26,27,17,26,27,17,26,26,25,26,0,26,26,27,26,26,27,17,26,26,26,26,26,26,26,27,17,26,17,25,26,26,0,26,26,26,26,27,17,26,27,0,25,26,27,26,27,17,26,0,26,0,26,0,25,28,28,25,25,25,25,26,27,17,26,27,26,0,26,27,17,26,17,26,17,26,17,26,27,17,25,25,25,28,28,26,27,17,26,26,27,17,26,26,25,25,25,26,27,17,26,27,17,26,0,25,26,26,0,26,26,27,17,26,26,27,17,26,25,25,26,27,17,0,25,25,26,0,26,26,26,27,26,27,17,26,26,0,26,17,17,26,26,17,26,26,27,17,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,26,27,26,17,26,26,27,17,26,26,26,0,26,17,26,26,17,26,27,17,26,0,17,26,26,26,26,26,26,27,17,26,17,26,0,26,27,17,26,17,0,26,26,26,27,17,26,26,0,17,26,17,26,27,26,26,26,27,17,26,17,26,26,27,26,0,25,17,26,27,17,26,17,17,26,27,17,26,26,26,26,0,26,26,26,27,17,26,26,26,25,25,25,26,27,17,0,26,26,26,27,17,26,25,25,17,17,26,0,26,26,26,26,0,26,27,17,26,26,25,26,26,17,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,26,25,28,28,17,26,27,17,26,26,27,17,17,26,27,17,26,26,0,26,26,17,26,17,26,27,17,26,26,26,26,27,26,17,26,27,17,26,27,17,26,26,26,17,26,0,17,26,27,17,0,26,26,27,17,26,26,27,17,25,25,26,27,17,17,17,17,26,27,17,26,27,17,25,25,25,28,28,26,27,17,26,27,17,26,26,27,17,26,27,17,26,0,26,26,26,27,17,17,26,17,26,27,17,26,26,26,27,17,26,26,27,17,17,26,27,17,26,26,27,17,26,26,26,17,26,27,17,26,26,26,27,17,26,26,17,26,27,17,26,27,17,26,26,26,26,17,17,26,27,17,26,26,27,17,26,26,27,26,0,17,26,27,17,17,26,0,26,26,27,17,26,26,17,17,26,27,17,26,26,26,26,27,17,26,26,26,27,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,27,17,26,26,28,26,27,17,26,0,26,26,26,27,17,26,26,26,26,26,26,27,17,26,27,17,26,0,26,26,26,26,26,27,26,27,17,26,0,26,26,26,17,26,17,26,17,0,26,27,17,26,17,26,17,26,26,26,0,26,26,27,17,26,26,27,26,26,26,26,26,27,17,26,26,0,26,26,26,27,17,0,26,17,26,27,17,26,26,17,17,26,26,26,26,26,27,17,17,17,26,26,26,0,26,25,26,27,17,25,26,0,26,27,17,26,26,26,0,25,25,25,25,26,27,17,26,26,26,27,17,26,26,27,26,26,26,27,26,0,26,27,17,26,27,26,26,26,27,26,26,26,27,17,0,26,26,26,26,26,26,0,26,27,17,26,28,26,17,26,26,27,17,26,26,26,27,17,26,26,26,26,27,17,26,26,27,17,26,27,17,26,26,27,26,26,26,26,26,27,17,0,26,26,26,27,17,17,17,17,17,17,17,17,26,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,27,17,26,26,26,28,26,17,26,27,17,26,26,26,25,28,28,26,27,17,0,26,25,25,25,25,25,25,26,27,17,26,27,17,17,17,17,17,17,17,17,26,26,26,26,26,26,26,27,17,26,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,26,17,0,26,26,26,26,27,17,26,26,26,0,26,26,26,26,27,17,26,26,26,26,0,26,27,26,27,17,26,27,17,17,17,17,17,17,17,17,26,26,26,26,26,26,26,27,17,0,26,26,26,25,26,27,17,26,26,26,27,17,26,26,26,17,26,26,27,17,26,26,27,17,26,0,26,26,26,26,17,0,26,26,27,17,26,27,26,27,17,0,26,26,25,28,28,26,27,17,26,25,26,27,17,26,25,26,25,25,25,25,26,17,26,27,26,26,26,27,17,26,27,25,26,17,17,17,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,27,17,26,26,0,26,26,0,26,26,26,27,17,26,26,26,0,26,26,17,26,26,27,17,26,27,0,26,26,27,17,26,26,27,26,26,27,17,26,26,0,26,26,17,26,26,26,27,17,26,27,0,17,17,17,17,17,17,17,26,26,27,17,26,0,26,25,25,25,26,24,26,27,17,26,26,26,26,26,17,26,26,27,17,0,26,26,0,26,26,27,26,26,26,27,17,26,26,26,26,27,17,26,26,17,26,27,17,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,27,17,26,26,27,17,26,27,17,25,26,26,26,26,27,17,26,25,26,26,26,27,26,26,26,27,17,26,26,26,27,26,26,27,26,0,26,27,17,26,17,26,26,26,26,26,26,27,17,17,26,17,0,26,0,26,0,26,26,26,26,27,17,26,27,17,26,26,27,26,26,26,26,27,17,26,17,26,0,26,26,26,26,26,27,17,26,26,25,25,25,26,24,26,0,26,26,17,17,26,27,17,26,26,26,0,26,26,26,27,26,27,17,26,26,26,26,26,26,26,27,17,25,26,27,24,28,26,27,17,0,26,26,26,26,26,27,17,17,17,17,17,17,17,17,26,26,26,27,26,26,26,27,17,26,27,17,26,26,26,0,26,26,17,26,17,0,26,27,17,17,26,26,0,26,26,26,26,26,27,17,26,26,17,26,26,26,26,26,27,17,26,26,0,26,17,26,26,26,26,27,17,26,26,17,0,26,26,26,17,17,17,26,26,27,17,26,26,26,26,26,0,26,27,17,26,27,17,26,27,17,17,17,26,27,26,17,26,26,26,26,27,17,26,26,27,26,26,26,26,26,27,17,26,27,26,26,0,26,0,26,0,26,26,27,17,26,26,0,26,26,26,26,0,26,27,17,26,26,17,26,26,26,26,26,27,17,26,26,26,27,26,0,26,0,26,26,27,17,26,0,26,26,26,27,17,26,26,25,25,26,27,17,26,26,26,27,26,26,26,27,26,27,17,26,26,26,26,26,26,26,27,17,26,26,27,26,26,17,17,17,17,17,17,17,26,26,26,27,17,26,26,26,0,26,0,26,0,26,26,27,17,26,0,26,26,26,26,17,0,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,25,25,25,26,24,0,26,27,17,26,26,17,26,27,17,26,26,26,27,17,25,26,27,17,26,26,26,27,17,26,0,25,26,27,17,26,0,26,26,27,17,26,0,26,27,17,26,26,0,26,26,26,17,26,27,17,26,27,17,26,26,26,26,26,26,26,27,17,26,26,27,26,26,26,26,17,25,17,26,27,17,26,27,0,26,26,26,26,27,17,26,26,27,17,26,26,26,26,26,26,27,17,26,27,17,26,0,26,26,26,26,0,17,17,17,17,17,17,17,26,27,26,27,17,26,0,26,26,26,26,25,26,27,17,0,26,27,17,26,17,17,26,17,26,17,26,27,26,26,17,26,27,17,26,26,26,26,0,26,26,26,27,17,26,25,28,28,25,26,27,17,26,26,27,17,26,26,26,27,17,26,26,26,0,26,0,26,26,27,17,26,27,17,17,17,26,26,26,27,17,28,26,17,26,26,26,27,17,26,0,26,17,26,26,0,26,26,26,27,17,25,26,24,26,25,26,26,26,27,17,26,0,26,27,17,26,0,26,26,26,26,26,0,26,27,17,0,26,26,28,17,17,17,17,17,17,17,26,27,17,26,26,0,26,26,27,17,26,26,26,26,26,26,0,26,27,17,26,27,0,26,26,26,26,26,26,27,17,26,25,28,28,26,27,17,26,26,25,25,26,27,17,0,26,26,27,17,0,26,26,26,25,26,27,17,26,26,26,27,17,26,26,26,26,27,26,27,17,25,26,27,17,26,27,17,0,26,0,26,17,0,26,0,26,26,27,26,26,27,17,25,26,27,17,26,27,26,26,26,26,26,27,17,26,0,26,25,25,26,27,17,26,26,27,17,26,26,27,17,26,26,26,26,25,26,27,17,26,26,27,17,26,25,26,27,26,17,25,25,28,28,26,27,17,0,26,27,17,26,25,26,27,17,26,26,27,26,26,17,26,17,26,26,27,17,0,25,26,27,17,25,26,27,17,26,0,25,26,27,17,26,25,26,27,17,0,26,27,17,26,26,25,25,25,28,28,25,25,25,25,25,25,28,28,26,27,17,25,26,17,25,25,26,17,26,0,26,27,17,26,25,25,26,26,27,25,25,25,25,26,27,17,26,26,26,27,17,26,26,17,26,26,25,26,27,17,26,26,27,17,26,0,26,26,27,17,26,26,26,26,27,17,26,26,26,26,26,26,17,0,26,27,17,26,0,26,26,27,17,26,27,26,17,26,26,27,17,26,0,26,26,26,17,26,25,26,27,17,0,26,27,17,26,17,26,26,26,26,26,25,26,27,17,26,27,17,26,17,25,28,28,26,27,17,26,25,25,26,27,17,0,26,27,26,27,17,26,27,17,26,27,26,27,17,25,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,25,25,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,0,25,26,27,17,26,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,17,25,25,28,28,25,25,25,17,26,27,17,25,28,28,25,26,27,17,26,27,17,0,26,25,25,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,0,28,25,25,26,27,17,26,27,17,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,17,25,26,27,26,27,26,17,17,26,17,26,26,26,27,17,26,17,0,26,26,26,17,17,26,25,25,25,26,27,17,0,25,26,27,17,25,26,27,17,26,27,25,25,17,26,27,17,26,26,26,27,17,17,26,27,17,26,26,27,26,17,26,26,27,26,27,17,0,26,27,17,26,26,27,26,26,26,27,17,26,27,17,17,25,26,27,17,26,26,27,26,26,27,17,26,26,26,27,17,25,28,28,26,27,17,17,17,26,26,26,26,27,26,26,27,17,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,27,17,0,26,27,17,26,0,26,17,26,26,27,17,26,0,25,25,26,27,17,26,27,17,26,26,26,26,26,26,26,27,17,0,26,26,27,26,27,26,26,25,26,27,17,26,27,17,26,27,17,0,26,26,26,26,26,27,0,26,27,17,26,26,26,27,26,27,26,27,17,26,27,26,27,17,26,27,28,26,27,26,27,17,25,28,28,26,27,17,25,26,27,26,27,0,26,27,17,28,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,25,25,25,25,26,27,17,26,27,17,26,27,25,17,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,17,17,26,26,0,26,26,17,17,26,26,0,26,27,17,0,26,26,26,26,26,26,27,25,26,27,17,26,26,26,26,26,26,26,27,17,25,26,17,26,26,26,26,26,27,17,26,27,17,0,26,26,25,26,27,26,26,27,17,26,26,27,17,26,27,17,26,0,17,26,27,17,26,26,27,17,26,17,26,27,17,26,26,26,26,26,17,26,26,27,17,26,26,26,25,26,27,17,26,26,26,27,17,26,26,26,17,26,26,25,26,27,17,26,27,17,17,17,17,17,26,25,26,27,26,26,28,26,27,17,26,17,26,27,17,26,27,17,0,26,26,26,17,25,26,27,17,26,26,27,17,26,28,26,17,25,26,27,17,26,0,25,26,25,25,26,27,17,26,27,17,26,27,26,28,25,26,17,26,25,26,27,17,0,26,27,0,26,27,17,17,26,17,17,17,17,17,17,17,17,26,25,26,25,28,28,17,26,27,17,26,26,27,26,27,17,25,26,27,26,17,25,26,27,17,26,26,0,26,26,27,17,26,17,26,27,17,25,26,0,26,27,26,26,26,27,17,0,17,17,26,27,17,26,27,25,17,17,26,26,27,17,25,25,25,26,27,17,26,17,26,27,17,26,0,25,26,25,26,26,26,26,27,17,26,27,17,26,27,26,0,25,26,27,17,26,17,26,27,17,0,26,26,27,17,26,27,17,26,25,26,0,17,26,27,17,26,26,0,17,17,26,27,17,26,26,17,25,26,27,17,26,17,26,28,26,27,17,26,27,17,26,17,26,27,17,0,25,26,26,27,26,26,27,26,27,17,26,26,0,25,26,17,26,17,26,17,26,0,26,27,17,26,26,25,26,26,27,26,17,26,27,17,26,27,17,26,28,26,27,17,25,26,27,26,27,25,28,28,17,26,27,17,26,27,0,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,17,0,25,26,27,17,0,26,27,26,27,17,26,27,26,27,17,25,17,17,26,27,17,17,17,26,27,0,26,27,26,27,26,27,17,26,0,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,0,26,27,17,26,27,26,25,26,27,26,0,26,27,26,27,25,17,26,27,17,26,27,26,27,25,26,27,26,27,0,26,27,0,17,26,27,17,0,26,27,17,26,27,26,27,25,26,27,0,26,27,17,26,27,17,0,26,27,26,27,17,26,26,27,25,26,27,17,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,17,25,26,27,17,0,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,17,25,26,27,0,26,27,17,26,27,26,26,27,17,17,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,25,26,27,17,0,25,26,27,17,26,27,17,26,27,17,0,26,27,17,26,27,26,27,25,26,27,25,25,17,26,27,17,26,27,17,28,26,17,26,27,0,26,27,17,26,27,25,25,25,25,26,24,17,26,27,17,26,26,27,26,27,26,27,26,27,0,25,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,0,25,25,25,17,26,27,17,25,26,27,25,17,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,26,27,17,26,27,17,26,27,25,17,17,17,17,17,17,17,25,26,27,17,26,27,0,26,27,26,27,17,26,27,17,26,27,17,26,27,17,25,26,27,24,26,27,26,27,17,26,27,17,26,27,25,25,25,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,26,26,0,26,26,26,17,26,27,17,26,26,26,26,0,25,26,27,17,17,26,27,17,26,26,26,25,25,26,27,17,26,27,17,0,26,26,0,26,26,26,26,17,26,27,17,26,26,26,26,26,0,17,26,27,17,26,26,26,26,0,26,17,26,27,17,26,26,26,26,0,25,26,17,26,27,17,26,26,26,26,26,17,26,27,17,0,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,26,17,0,26,17,26,0,26,26,17,26,26,27,28,26,17,26,26,26,26,0,26,26,27,26,26,26,17,26,27,17,26,26,25,26,27,26,26,27,17,26,27,17,26,26,26,26,27,17,17,26,17,0,17,26,27,17,26,27,17,26,26,26,26,17,17,26,27,17,26,0,26,0,26,26,27,17,0,26,26,26,26,27,17,17,26,27,17,0,26,26,26,25,26,27,26,17,26,27,17,26,0,26,26,26,17,17,26,26,26,26,17,26,26,26,25,17,26,27,17,25,26,17,26,25,25,26,17,26,26,17,26,27,17,26,27,26,26,17,26,26,27,17,17,26,27,17,26,27,26,26,26,27,17,26,17,26,27,17,0,26,26,27,17,26,26,26,17,26,27,17,26,26,26,26,26,17,26,27,17,26,26,26,26,26,17,17,26,27,17,26,27,0,26,26,26,25,26,27,17,26,0,25,28,28,26,27,17,0,26,25,26,26,27,26,0,26,26,26,28,28,28,28,28,28,28,26,17,26,26,26,27,26,26,28,26,17,26,26,26,26,27,17,26,17,17,17,26,26,0,26,26,17,26,27,17,26,27,26,25,28,28,26,27,17,26,26,27,26,26,26,26,17,26,26,0,26,26,26,27,26,27,17,26,26,26,26,26,27,17,26,0,26,26,27,26,26,26,26,27,0,25,25,26,27,17,17,26,17,26,0,25,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,26,26,0,17,26,17,26,26,27,26,26,17,17,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,17,17,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,25,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,25,28,28,26,27,17,0,26,27,26,27,25,25,25,28,28,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,25,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,25,28,28,17,26,27,17,26,26,27,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,28,26,27,17,26,27,26,27,17,26,27,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,0,25,25,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,0,26,27,17,17,26,27,17,26,27,26,27,17,26,27,17,17,17,26,27,26,27,26,27,26,27,17,25,28,28,25,26,27,17,25,26,27,17,25,25,26,27,17,25,26,27,17,0,25,25,26,27,17,26,27,0,26,27,26,27,0,17,17,26,27,26,27,28,26,27,17,26,27,26,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,25,28,28,26,27,17,25,25,26,27,17,25,17,26,27,17,26,27,26,27,26,27,26,27,25,28,28,26,27,17,0,25,17,26,27,17,26,27,26,26,27,17,25,25,25,26,27,17,0,26,27,17,26,27,17,25,26,27,17,0,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,25,25,25,26,27,17,25,26,27,26,26,27,26,27,25,28,28,25,26,27,17,26,27,17,26,27,26,27,25,25,26,27,0,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,26,26,27,17,25,17,26,27,17,17,26,27,17,26,26,27,17,26,26,26,17,17,26,27,17,26,26,17,26,26,0,26,17,26,27,17,26,26,26,26,26,27,17,17,26,27,17,26,26,27,26,26,26,17,17,26,27,17,26,27,26,26,0,26,26,17,26,27,17,26,27,0,26,26,27,17,0,26,26,27,17,26,26,25,25,26,26,27,26,26,26,26,26,27,26,26,0,26,0,26,26,27,17,26,0,17,17,26,27,26,26,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,0,26,27,26,27,0,26,27,0,17,26,27,17,26,27,0,26,27,17,26,27,25,26,27,26,27,17,17,17,17,17,17,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,0,26,26,27,0,17,17,17,17,17,17,17,26,27,0,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,25,28,28,26,27,17,0,26,27,26,27,26,27,25,26,27,26,27,26,27,25,26,27,17,0,26,27,17,26,27,17,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,17,24,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,17,17,17,17,17,17,17,26,27,26,27,17,26,27,17,26,27,17,26,27,0,26,27,25,26,27,17,26,27,26,27,17,17,26,27,17,26,27,0,26,27,26,27,25,25,25,25,25,25,26,27,17,26,27,17,26,27,17,26,27,25,25,17,26,27,17,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,25,25,25,26,27,17,0,26,27,26,27,17,26,27,17,25,28,28,26,27,17,26,27,17,26,27,25,26,27,17,26,27,17,17,26,27,17,26,27,26,27,26,27,17,26,27,25,28,28,26,27,17,17,26,27,17,0,26,27,26,27,17,25,26,27,17,25,26,27,25,28,28,17,17,26,27,17,17,26,27,17,26,27,26,27,26,27,25,26,27,17,25,26,27,25,28,28,17,26,27,17,25,25,26,27,17,26,27,0,26,27,26,27,25,25,25,25,26,27,17,17,25,26,27,17,26,27,17,17,26,27,0,26,27,0,26,27,26,27,17,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,17,17,17,17,17,17,17,26,27,26,27,0,25,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,0,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,25,25,25,26,27,17,25,26,27,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,17,25,28,28,26,27,17,0,26,27,26,27,17,26,26,27,25,25,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,28,25,26,27,17,26,27,0,17,17,17,17,17,17,17,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,0,26,0,26,27,17,26,26,26,17,26,26,26,26,26,26,0,26,26,26,26,0,25,25,28,28,25,26,27,17,26,27,17,26,0,26,26,26,26,26,0,26,26,26,26,26,26,0,26,27,17,26,26,26,26,26,26,0,26,17,26,26,26,26,26,26,27,25,28,28,26,27,17,25,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,17,0,26,27,26,27,26,27,0,28,26,27,17,26,27,26,27,17,26,27,0,26,27,17,0,26,27,17,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,17,17,26,27,26,27,25,25,25,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,0,26,27,25,28,28,26,27,17,25,25,26,27,25,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,28,26,27,17,26,27,26,26,27,26,27,25,25,17,17,26,27,17,25,25,25,17,17,17,17,17,17,17,26,27,17,26,27,25,28,28,26,27,17,26,27,26,26,0,26,26,26,26,0,26,25,26,27,17,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,25,28,28,26,27,17,0,26,27,26,27,0,17,17,26,27,26,27,0,26,27,26,27,26,27,25,25,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,0,25,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,0,26,27,17,25,25,26,27,17,25,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,0,25,26,27,26,27,26,27,0,26,27,26,27,17,26,27,25,26,27,17,25,26,27,26,27,0,26,27,25,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,25,25,26,27,17,26,27,26,27,17,26,27,26,27,25,25,25,26,27,17,24,26,27,25,26,27,17,25,25,25,17,26,27,17,0,26,27,17,26,27,17,26,27,26,27,0,17,26,27,26,27,25,26,27,0,26,27,17,0,26,27,26,27,26,27,26,27,25,26,27,17,25,28,25,26,27,17,26,27,25,26,27,26,27,26,27,17,26,27,17,25,25,28,28,26,27,17,0,26,27,17,25,26,27,24,0,26,27,26,27,17,17,26,27,17,26,27,17,25,17,17,26,27,17,26,27,26,27,0,17,17,26,27,17,17,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,0,17,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,28,26,27,17,25,25,28,28,17,26,27,17,26,27,17,26,27,17,26,27,26,27,25,26,27,0,17,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,0,17,26,27,17,26,27,17,0,26,27,26,27,17,26,27,26,27,0,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,17,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,26,27,0,17,26,27,26,27,26,27,26,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,17,17,26,27,26,27,25,26,27,17,24,28,26,27,17,26,27,25,26,27,17,28,26,27,17,26,25,28,28,26,27,17,26,26,27,17,0,26,27,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,17,26,27,17,26,26,26,26,26,27,17,0,17,26,27,17,26,26,26,26,26,17,26,27,17,26,26,0,26,26,26,17,26,27,17,26,26,26,27,17,26,17,26,17,26,27,17,26,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,0,26,27,0,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,25,28,28,17,26,27,17,26,27,26,27,0,17,26,27,17,26,27,26,27,25,17,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,0,17,26,27,17,25,25,28,28,26,27,17,0,26,17,26,27,0,26,26,27,17,26,27,17,26,0,26,27,26,27,26,26,17,26,27,17,26,27,25,26,27,17,25,26,17,0,26,17,17,26,17,17,26,27,17,26,0,26,26,26,26,27,17,17,17,26,27,17,0,26,26,26,0,26,27,26,0,17,26,27,17,26,26,26,27,26,0,26,28,26,27,17,26,26,26,26,17,25,26,24,26,0,26,26,0,26,26,26,26,26,26,17,17,26,26,26,26,26,26,28,26,27,17,26,0,26,27,17,26,26,26,26,26,26,26,27,17,26,26,27,17,25,25,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,25,26,27,17,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,26,26,27,17,26,0,26,26,25,25,25,28,28,26,27,17,25,25,28,28,25,26,27,17,26,17,17,17,26,26,26,26,26,27,26,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,17,26,17,26,26,0,26,27,17,26,26,26,0,26,25,25,26,27,26,26,26,26,27,17,26,26,26,26,26,27,0,26,26,0,26,0,26,26,25,26,26,17,26,26,17,17,26,17,26,0,26,26,26,26,0,26,26,28,26,27,17,26,26,26,26,26,27,26,26,26,26,0,26,26,26,26,17,26,26,26,17,26,26,25,26,27,17,17,26,26,25,25,26,27,17,0,26,27,17,26,26,25,26,27,17,26,25,26,27,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,27,17,17,26,26,17,17,26,17,26,0,26,26,0,26,26,26,26,26,26,25,26,26,26,0,26,26,0,26,0,26,26,25,26,26,26,26,25,28,28,26,27,17,26,0,26,26,26,26,17,26,17,26,26,27,17,26,26,26,26,26,26,26,27,26,0,26,26,26,25,26,26,25,25,25,25,26,27,17,26,26,26,26,26,27,26,0,26,26,26,0,26,17,17,26,26,27,26,26,26,26,17,26,27,17,26,26,26,26,25,26,27,17,0,25,25,25,17,26,27,17,0,25,25,26,17,26,27,26,27,26,26,17,26,27,17,26,0,26,26,26,26,17,17,26,27,17,17,26,26,0,26,26,27,26,26,26,26,26,26,26,17,26,27,17,0,25,26,17,0,26,25,25,25,26,24,26,25,26,27,17,0,17,26,27,17,26,27,26,26,26,26,27,17,0,25,28,28,17,26,27,17,26,25,25,28,25,26,27,17,26,0,17,17,26,25,26,25,17,26,27,17,26,0,26,26,27,17,26,26,25,17,26,27,17,26,26,25,26,26,26,17,26,27,17,26,26,26,26,26,27,26,26,26,27,26,26,26,27,17,17,26,27,17,26,26,27,17,0,26,26,26,17,26,27,17,26,27,26,0,26,26,26,17,26,27,17,26,26,26,26,0,28,26,27,17,17,26,27,17,25,26,0,26,26,26,26,17,26,27,17,26,26,26,26,0,26,26,26,26,0,26,27,17,0,26,26,26,0,26,27,0,26,26,0,26,26,26,26,26,17,26,27,17,26,0,26,26,27,17,26,26,27,26,26,26,26,17,26,17,26,17,26,27,17,26,26,25,26,26,25,28,28,25,25,26,27,17,0,25,26,27,17,26,26,17,26,27,17,26,27,26,17,17,26,27,17,26,26,25,25,26,27,17,26,27,0,26,25,28,28,17,26,27,17,26,26,27,26,27,26,0,26,27,17,0,26,17,17,26,26,25,28,28,17,26,27,17,26,26,0,26,25,26,26,27,17,25,17,26,27,17,0,26,26,26,26,26,27,26,27,26,27,26,17,0,26,0,26,27,26,27,0,17,26,17,0,26,26,17,26,27,17,26,26,26,26,17,26,27,17,26,27,17,26,26,26,26,27,26,25,17,26,27,17,25,26,17,25,26,17,26,26,26,27,17,26,27,17,0,26,26,26,27,17,26,26,27,26,26,26,26,27,17,0,26,17,26,26,26,26,0,26,0,26,26,17,26,27,17,26,27,17,26,27,26,26,26,17,26,27,17,26,26,26,26,25,25,25,26,24,26,26,0,26,26,26,26,17,25,28,28,17,26,27,17,26,26,26,0,26,26,17,26,27,17,26,0,26,26,0,26,26,17,26,27,17,26,27,17,26,26,25,26,24,26,25,17,26,27,17,25,26,27,17,26,26,0,26,26,25,17,26,27,17,25,26,0,26,26,26,26,26,26,0,26,26,26,28,26,27,17,17,26,27,17,26,26,26,17,26,26,17,26,27,17,0,26,25,25,26,27,26,26,26,17,17,26,27,17,26,0,26,26,26,26,17,26,27,17,26,26,26,27,26,26,0,26,17,26,26,0,26,26,26,26,26,26,0,26,27,17,26,26,26,26,26,17,17,26,25,25,25,25,26,27,17,26,0,26,26,26,26,26,26,26,26,26,28,26,27,17,26,27,26,26,27,17,26,27,26,0,26,26,26,26,27,26,26,27,17,17,17,26,27,17,26,26,26,0,26,17,26,17,26,27,17,26,27,26,26,17,26,27,26,17,26,27,17,26,26,26,26,26,0,17,26,27,17,26,26,26,27,25,25,26,26,0,17,26,27,17,0,26,28,26,27,17,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,17,0,26,26,26,26,27,26,26,26,0,26,26,26,26,26,17,26,26,26,26,26,0,26,28,26,27,17,26,26,26,26,26,26,27,17,26,27,17,17,26,27,26,26,27,26,26,26,0,26,26,26,26,27,0,26,26,25,26,27,26,26,17,26,27,17,26,26,26,26,26,26,26,0,26,27,26,26,27,26,27,26,27,17,26,26,26,26,26,27,17,26,26,26,0,26,26,26,26,27,17,26,27,26,27,0,17,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,0,26,26,26,26,27,26,26,26,26,27,26,17,26,17,26,26,26,27,17,26,26,27,17,26,26,27,26,0,26,26,26,26,26,27,25,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,24,17,17,26,27,26,27,28,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,28,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,28,26,27,17,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,28,26,27,17,26,27,26,0,26,27,26,27,0,26,27,17,26,27,26,27,26,25,26,27,17,23,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,25,25,26,27,17,17,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,0,26,27,0,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,25,25,25,25,28,28,26,27,17,26,27,17,26,27,26,26,27,17,26,25,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,26,27,17,26,25,28,28,26,27,17,28,26,27,17,26,27,26,26,26,17,26,26,26,26,27,26,27,26,26,26,26,26,26,26,26,27,17,26,26,27,17,26,27,26,26,26,25,17,25,28,26,17,26,26,17,26,26,0,26,26,0,26,26,26,26,0,26,26,27,26,26,26,17,26,26,26,26,25,26,27,26,27,26,26,0,26,26,26,26,26,26,26,28,25,28,28,25,26,27,17,26,26,26,26,26,25,26,27,26,27,17,26,26,17,26,27,17,17,17,26,26,25,26,26,0,26,17,26,27,17,26,28,28,28,28,28,26,17,0,26,26,26,27,17,17,26,27,17,26,27,17,26,26,27,25,26,27,0,26,17,17,26,27,17,26,0,26,27,26,27,25,26,17,26,17,17,26,27,17,26,26,26,17,26,26,17,26,27,17,26,26,27,17,0,26,0,26,26,27,17,26,27,17,25,28,28,26,27,17,26,25,26,26,0,26,27,17,17,26,17,26,26,17,26,27,17,26,26,26,25,28,28,26,27,17,26,25,17,26,27,17,26,27,26,26,26,27,26,0,26,26,26,26,26,27,26,25,28,28,17,26,27,17,26,27,17,26,27,26,26,25,26,25,17,26,27,17,26,26,26,26,26,17,26,27,17,26,26,26,26,27,26,17,26,27,17,26,26,0,26,0,26,26,26,26,26,26,26,25,26,17,24,26,26,26,17,26,27,17,25,25,25,26,27,24,0,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,26,27,25,28,28,26,27,17,25,26,27,26,27,0,25,28,28,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,17,26,27,17,26,27,26,27,0,26,27,17,26,27,26,27,0,17,26,27,17,0,26,27,25,17,17,17,17,17,17,17,17,17,26,27,25,26,27,17,25,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,25,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,0,26,27,25,26,27,17,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,0,17,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,17,17,26,27,17,0,26,27,26,27,17,26,27,26,26,27,25,17,26,27,17,26,27,26,27,0,26,27,0,25,25,25,25,26,27,17,26,27,25,17,26,27,17,0,26,27,26,26,27,26,27,25,26,27,17,17,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,0,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,25,26,27,17,0,26,27,0,26,27,0,17,26,27,17,26,27,17,26,27,0,17,26,27,17,26,27,17,26,27,17,17,26,27,17,0,25,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,17,17,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,28,28,25,28,28,25,26,27,17,26,27,26,27,0,25,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,17,0,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,0,26,27,0,26,27,26,27,26,27,26,27,0,25,26,27,17,28,17,26,27,17,26,27,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,0,17,17,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,28,26,27,17,0,26,27,26,27,28,26,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,0,25,25,25,25,28,28,26,27,17,24,0,26,27,0,26,27,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,26,26,26,27,17,26,27,17,26,27,17,26,26,26,26,26,27,17,25,26,26,26,26,27,26,27,26,27,17,26,27,17,0,26,27,26,27,0,25,25,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,25,26,27,0,26,27,26,27,26,27,26,27,17,26,26,26,26,17,26,26,27,26,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,17,26,27,25,25,25,28,28,26,27,17,25,26,27,17,0,26,27,26,27,26,27,26,17,26,27,26,27,25,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,0,25,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,0,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,0,25,26,27,0,26,27,26,27,26,27,25,28,28,17,26,27,17,26,27,17,26,27,17,0,25,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,25,26,27,26,27,17,25,26,27,17,26,27,26,27,25,26,27,24,25,25,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,17,17,25,26,27,26,27,26,27,26,27,26,27,26,27,0,25,28,28,25,26,27,17,26,27,17,26,27,26,27,26,27,25,28,28,25,26,27,17,0,25,26,27,26,27,26,27,17,26,27,25,25,25,26,27,17,26,27,26,27,25,26,27,0,26,26,27,17,26,27,17,17,26,27,17,17,26,27,17,26,27,25,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,17,25,26,27,17,0,26,0,25,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,17,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,25,26,27,17,26,27,17,26,27,25,26,27,17,25,26,27,0,26,27,0,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,17,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,28,28,26,27,17,0,26,27,17,26,27,17,26,27,26,27,17,26,27,25,25,25,28,28,26,27,17,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,25,25,25,26,27,17,23,0,26,27,0,26,27,0,25,17,17,26,27,26,27,17,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,25,26,27,24,26,27,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,17,25,28,28,26,27,17,25,26,27,25,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,0,25,26,27,17,26,27,0,26,27,26,27,25,25,25,26,27,24,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,25,25,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,25,26,27,26,27,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,0,25,26,27,17,26,27,25,25,26,27,17,25,25,25,26,27,24,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,0,26,27,0,26,27,25,25,26,27,17,26,27,26,27,17,26,25,25,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,26,27,26,27,26,26,27,17,26,27,26,27,25,28,28,25,26,27,17,26,26,27,26,27,0,25,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,0,25,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,25,28,28,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,25,28,28,26,27,17,0,17,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,25,26,27,26,27,26,27,26,27,26,27,17,17,26,27,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,17,17,17,17,17,17,26,27,26,0,26,27,0,26,27,0,26,27,17,17,26,0,25,26,27,17,17,26,27,17,26,27,0,26,27,0,26,27,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,0,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,0,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,0,25,28,28,26,27,17,25,26,27,26,27,26,27,26,27,17,25,25,25,26,27,24,26,27,25,26,27,25,26,27,26,0,17,17,26,27,26,27,26,27,26,27,26,26,27,17,26,27,17,26,27,0,26,27,26,27,28,17,17,26,27,17,0,25,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,25,26,27,17,26,27,26,27,25,28,28,25,25,25,26,27,17,26,27,25,26,27,17,25,25,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,0,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,0,26,0,26,27,26,26,27,0,26,27,25,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,28,25,26,27,17,26,27,0,17,26,27,26,27,26,27,0,25,26,27,26,27,26,27,25,25,25,26,27,17,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,17,17,26,27,17,0,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,25,17,25,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,26,27,26,27,17,26,27,0,25,25,28,28,25,25,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,26,27,25,28,28,17,17,26,27,17,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,0,25,28,28,25,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,25,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,0,25,17,17,26,27,24,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,17,26,27,28,26,27,17,26,27,17,25,26,17,26,27,26,27,26,25,28,28,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,17,26,27,26,25,25,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,25,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,17,25,25,25,25,25,26,27,17,0,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,26,27,0,26,27,0,26,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,25,25,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,0,25,28,28,26,27,17,26,27,26,27,26,25,26,27,25,26,27,0,26,27,0,25,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,25,28,28,25,26,27,17,26,27,26,27,25,25,25,26,27,17,26,27,25,25,26,27,26,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,26,27,17,26,27,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,0,26,27,25,26,26,27,26,27,26,0,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,25,28,28,26,27,17,26,27,0,25,26,27,0,26,27,0,25,26,27,26,27,26,27,0,26,27,17,0,26,27,26,17,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,25,26,27,17,25,25,25,25,26,27,17,26,27,26,27,26,27,26,26,27,26,27,0,26,27,25,26,27,17,0,26,27,17,0,17,26,27,26,27,17,26,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,0,26,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,17,0,26,27,17,26,26,26,27,25,26,27,17,0,26,27,17,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,25,25,25,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,25,25,25,25,25,26,27,24,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,26,26,27,25,25,25,25,26,27,17,24,26,27,17,26,27,17,26,27,26,27,26,27,25,25,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,17,17,17,26,17,26,26,26,27,26,0,26,26,27,26,26,25,28,28,26,27,17,26,27,26,26,26,26,27,17,26,26,27,25,26,27,0,26,26,27,26,25,26,27,17,17,26,27,17,26,26,26,17,17,26,17,17,26,26,26,27,17,26,26,26,26,26,25,25,26,26,26,26,0,26,26,26,17,26,27,17,26,27,17,26,26,17,26,26,26,27,17,17,26,26,26,27,17,26,17,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,25,28,28,26,27,17,25,28,28,26,27,17,26,17,26,27,17,26,17,25,26,27,26,26,0,26,26,27,17,26,26,26,0,17,17,17,26,17,26,26,27,17,26,26,25,25,25,28,28,26,27,17,26,27,17,26,27,17,26,27,17,26,17,0,17,26,26,26,26,27,0,26,26,26,17,26,26,26,26,26,26,26,0,25,26,27,26,26,27,17,17,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,17,26,27,25,26,24,26,26,27,26,27,26,26,26,26,26,27,17,26,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,27,26,27,0,26,26,27,0,26,27,17,17,26,27,17,25,25,25,26,27,24,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,17,17,26,27,17,26,27,17,26,26,27,0,26,27,0,26,27,26,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,17,17,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,25,26,27,17,26,27,17,25,26,26,27,0,17,26,27,26,27,17,26,27,0,26,27,17,26,27,17,25,26,27,17,26,25,26,27,26,27,26,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,0,26,27,0,26,27,0,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,17,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,25,26,27,17,17,17,17,28,28,25,17,17,17,17,17,17,17,25,25,25,17,26,27,26,27,17,25,25,26,27,26,17,0,26,27,26,27,17,17,26,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,26,17,25,26,27,17,17,26,27,26,26,0,26,27,25,25,26,27,17,26,0,26,27,25,26,27,17,25,26,27,26,27,26,27,0,26,27,0,26,27,25,26,27,17,26,27,26,0,26,27,17,25,26,27,17,26,27,26,26,27,25,25,25,26,27,17,25,26,27,17,25,26,27,26,27,26,27,26,27,0,26,27,25,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,26,25,26,26,17,25,26,26,26,25,25,25,17,17,26,27,17,17,17,17,26,27,26,25,25,26,27,17,25,26,27,26,27,25,25,26,27,17,25,26,17,26,26,0,26,27,26,27,17,26,0,26,0,26,26,26,17,26,26,17,26,17,17,26,27,26,26,26,27,17,26,17,26,26,26,0,26,26,26,26,0,26,17,26,26,26,27,17,26,17,17,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,0,28,26,17,26,17,26,27,17,17,17,25,25,25,25,25,25,25,25,25,26,17,0,25,26,17,26,26,27,17,0,26,26,17,25,26,26,26,26,26,26,26,25,25,25,26,17,26,27,26,26,26,17,26,26,25,25,25,26,17,26,27,26,27,26,26,17,17,26,26,26,26,17,17,26,26,17,0,26,27,26,26,17,0,26,17,26,25,26,17,26,26,26,17,26,26,26,17,26,26,26,26,26,26,25,26,24,26,17,26,26,26,26,26,26,26,28,26,27,17,0,26,26,17,26,26,27,26,26,26,26,26,25,26,17,26,26,26,26,26,26,26,0,26,26,26,0,26,26,27,26,26,26,26,26,26,0,26,26,26,26,26,27,26,26,26,27,26,26,26,28,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,0,26,26,0,26,26,17,0,26,26,26,26,26,26,0,26,26,26,0,26,26,0,26,26,26,0,17,26,17,26,26,26,26,0,26,26,0,26,26,26,27,17,26,26,25,25,25,28,28,26,27,17,25,26,24,26,0,26,27,0,26,26,26,26,27,26,26,26,26,25,26,26,0,17,17,26,25,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,0,26,26,26,26,28,26,17,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,27,26,25,25,25,25,25,25,25,17,17,17,17,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,5,5,23,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,27,17,25,26,27,28,26,17,26,26,26,26,26,0,26,26,27,26,26,0,26,26,27,26,26,26,26,26,26,26,26,26,26,26,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,0,26,26,26,0,26,26,26,0,26,26,26,27,26,26,26,25,26,26,27,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,27,26,26,26,0,26,26,0,26,26,0,26,26,26,26,27,0,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,26,26,26,27,26,26,26,26,0,26,26,26,26,25,26,26,26,26,25,26,0,26,26,26,26,25,25,26,27,17,26,26,26,0,26,26,26,0,26,26,0,26,26,27,26,26,0,26,0,26,26,26,26,26,26,26,27,17,26,0,26,0,26,26,26,26,26,17,0,26,26,26,26,27,26,26,26,27,17,26,26,26,26,23,26,0,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,26,26,27,26,26,26,26,26,25,25,25,25,25,25,25,26,26,26,27,26,26,26,26,26,27,26,26,0,26,26,26,0,26,26,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,27,26,26,26,26,0,26,0,26,26,27,0,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,28,26,27,17,26,26,26,27,0,26,26,26,26,27,17,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,0,26,26,0,26,0,26,26,0,26,0,26,27,26,0,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,25,25,25,26,26,25,26,26,26,26,26,26,26,26,26,0,26,26,17,26,27,17,26,0,26,26,27,26,0,26,0,26,26,0,26,26,26,0,26,26,26,26,17,26,26,26,26,26,26,27,26,26,0,26,26,26,26,17,17,26,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,25,26,27,17,0,26,26,26,26,27,26,26,26,26,0,26,27,26,26,26,27,17,0,26,25,25,26,27,17,26,17,0,26,26,26,26,26,26,27,25,25,26,27,17,25,26,26,26,26,28,26,17,26,26,17,26,26,26,0,26,26,26,0,26,17,26,27,26,27,0,26,26,26,26,0,26,0,26,26,28,26,17,26,26,26,26,26,26,27,17,0,25,25,28,28,25,28,26,27,17,25,26,27,17,25,26,17,0,25,25,25,26,27,17,25,26,17,26,26,26,28,26,17,26,26,27,26,26,26,26,26,27,17,26,26,26,0,26,26,26,26,26,27,17,26,27,17,26,0,28,26,17,26,26,26,26,17,25,25,26,26,0,26,26,26,25,26,25,25,26,0,26,0,26,26,26,26,26,0,26,0,26,26,26,28,26,17,25,25,26,28,26,17,26,26,26,26,27,17,26,26,26,26,27,0,26,26,26,27,17,25,26,26,26,28,26,27,17,26,26,26,26,26,27,17,26,28,26,17,26,26,27,17,26,26,27,26,17,26,26,27,17,17,17,26,26,0,26,26,17,0,26,26,26,26,17,28,26,17,0,26,27,17,26,26,27,26,26,26,26,26,0,26,27,17,26,26,26,26,25,28,26,17,26,26,26,26,26,26,26,26,27,17,26,27,17,26,26,26,26,0,26,27,26,26,26,0,26,27,17,26,0,26,26,27,17,0,26,27,0,26,0,26,26,0,26,26,26,26,26,25,26,27,25,26,0,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,26,27,17,17,26,0,26,26,26,28,26,27,17,0,26,26,26,25,25,26,27,17,0,25,26,17,25,26,17,25,26,17,25,26,17,26,26,26,26,23,26,26,26,26,25,25,26,26,17,25,26,28,26,17,0,26,26,26,26,26,26,27,17,26,26,26,0,26,27,26,0,26,26,26,26,28,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,17,26,27,26,27,28,26,27,17,0,26,27,26,26,27,26,26,28,26,17,26,26,26,26,26,26,26,26,27,17,26,26,26,0,26,25,26,27,26,26,27,0,26,26,0,26,27,0,26,26,27,26,26,17,26,26,26,26,26,26,26,26,26,0,26,0,26,27,26,26,26,26,27,0,26,27,17,26,26,25,25,25,28,28,26,27,17,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,25,25,28,28,25,25,26,27,17,25,26,27,17,25,26,17,25,26,27,17,0,25,26,17,26,26,26,27,17,26,26,0,26,27,26,26,26,26,26,26,26,26,26,26,27,17,26,17,26,25,25,25,26,25,26,0,26,0,26,26,26,25,26,27,26,0,26,26,27,26,26,17,26,26,26,26,27,26,0,26,26,0,28,26,27,17,26,0,26,26,26,0,26,26,26,26,26,0,26,27,17,26,0,17,26,17,0,26,26,0,26,26,26,26,17,26,27,17,26,26,26,26,26,26,26,26,27,26,26,27,26,26,26,27,17,26,26,26,27,26,26,27,26,27,17,17,26,26,26,26,26,26,27,26,26,26,25,26,26,27,26,26,27,17,26,26,26,26,26,0,25,25,28,28,26,27,17,25,26,26,26,27,26,26,26,27,26,26,26,26,26,0,17,26,26,25,25,26,0,26,0,26,27,17,26,26,25,25,28,28,25,25,26,27,17,25,26,17,25,26,17,26,0,25,25,26,27,17,26,26,0,26,26,26,26,26,26,26,26,26,27,17,0,26,0,26,26,26,17,17,26,26,26,0,26,26,26,26,26,26,26,26,27,26,27,26,0,26,0,26,26,26,26,25,26,26,26,26,26,27,0,26,26,0,26,26,25,26,26,26,26,25,26,27,17,26,27,26,26,0,26,26,26,27,26,26,26,27,0,26,27,26,26,27,26,0,26,27,17,26,26,0,25,25,26,0,26,26,27,17,0,26,26,26,26,26,0,26,26,0,26,26,26,26,27,26,26,26,26,26,17,26,26,26,26,25,26,27,17,0,26,27,26,26,26,26,26,26,26,26,26,26,17,0,25,25,26,27,17,26,27,17,25,25,26,27,26,25,26,26,0,26,26,27,26,26,26,26,27,0,26,27,17,26,26,27,26,26,27,26,26,26,17,26,26,26,27,17,26,27,0,26,26,26,26,26,26,26,27,17,26,0,26,26,27,0,26,27,26,26,0,26,25,25,26,26,26,0,26,26,26,26,27,26,25,25,28,28,25,25,26,27,17,25,26,17,25,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,26,0,26,27,26,26,27,26,26,26,27,26,28,25,26,27,17,26,26,26,26,27,26,27,17,26,0,26,26,27,17,26,26,26,26,25,25,28,28,25,25,26,27,17,25,26,27,17,0,25,26,17,25,26,17,0,25,25,25,26,27,17,26,26,26,26,28,26,17,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,25,25,26,27,17,26,26,26,26,26,26,26,26,26,25,25,26,27,26,26,25,26,27,26,26,26,26,26,27,0,26,26,27,26,26,27,0,26,25,17,17,26,27,26,25,26,27,17,26,0,26,26,25,26,27,26,26,26,26,26,26,27,17,0,25,17,17,26,27,26,26,26,27,0,26,26,26,0,26,26,17,26,26,26,26,26,26,27,26,26,0,26,27,17,26,28,26,27,17,26,26,25,26,26,27,0,26,26,26,28,26,17,0,26,26,26,26,26,26,0,26,26,25,25,26,25,26,27,0,25,25,26,17,26,26,26,26,26,17,17,26,27,26,27,17,26,26,26,26,26,27,26,26,17,26,25,25,25,25,28,25,26,27,17,25,25,25,26,25,17,17,26,27,17,26,26,0,26,26,26,27,26,26,26,27,17,26,26,26,26,26,0,26,26,27,17,25,26,27,17,26,25,25,26,26,26,26,26,27,26,26,26,26,25,26,27,26,26,26,26,26,26,27,26,26,26,26,0,26,26,26,27,26,26,25,17,26,27,0,26,27,26,25,26,27,26,27,17,26,26,25,26,27,26,26,25,25,26,26,27,17,0,26,26,26,27,26,0,26,26,26,25,26,27,26,26,26,26,26,25,26,0,26,27,17,26,27,26,27,0,26,25,25,25,28,28,26,27,17,26,0,26,0,26,26,27,25,25,28,28,25,25,26,27,17,25,26,17,25,26,27,17,25,26,17,25,26,17,26,26,25,26,27,26,0,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,25,26,27,26,28,26,17,26,28,26,27,17,26,27,0,26,26,27,17,26,26,26,28,26,17,26,0,25,26,27,26,26,26,27,0,26,26,26,26,26,25,26,27,26,26,27,17,26,26,25,25,26,26,26,27,25,26,27,17,25,26,27,26,26,26,25,25,26,27,26,27,26,0,26,0,26,27,26,25,26,26,26,0,26,26,25,26,27,0,26,26,0,26,0,26,27,26,26,26,27,26,27,26,25,26,27,26,26,27,26,26,26,28,26,27,17,26,26,0,26,26,26,26,25,26,27,26,26,26,27,17,26,27,26,26,26,26,26,27,17,25,26,27,0,26,26,26,25,26,26,27,26,26,26,0,26,27,17,26,27,17,26,0,26,25,26,27,0,26,25,25,25,28,28,26,27,17,0,26,27,26,27,26,17,26,27,26,25,25,25,25,26,25,26,27,17,26,26,26,26,27,26,17,17,26,26,26,26,26,27,26,27,26,27,26,26,26,27,26,26,26,26,26,0,26,0,26,26,26,0,26,26,26,26,27,17,26,26,26,27,17,26,0,26,26,26,26,26,26,26,25,26,26,26,26,0,25,25,28,28,25,26,27,17,25,26,17,25,26,17,25,26,17,0,25,26,27,17,26,26,0,26,25,25,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,25,26,0,26,26,26,26,26,25,25,26,26,26,26,26,27,26,26,26,26,27,26,26,26,0,26,26,27,17,25,26,28,26,27,17,26,26,0,26,26,27,26,26,25,25,26,27,26,26,26,26,26,28,26,27,17,26,26,26,27,26,26,26,26,0,26,26,26,0,26,26,26,26,0,25,26,26,26,27,17,26,26,26,27,17,26,26,26,25,26,17,26,26,26,26,17,26,26,27,26,27,17,25,26,26,26,26,26,25,25,25,28,28,26,27,17,0,26,26,27,26,26,26,26,27,26,25,25,26,26,26,26,26,26,0,26,26,27,17,0,26,27,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,27,0,26,26,26,26,26,26,26,27,17,26,0,26,27,26,26,26,26,27,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,0,25,26,26,26,26,0,26,26,27,17,26,26,26,26,0,26,25,26,27,26,26,0,26,25,26,27,17,26,26,0,25,25,28,28,25,25,26,27,17,25,26,17,25,26,17,25,26,17,25,25,25,25,28,28,26,27,17,0,26,27,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,26,26,27,26,0,26,27,17,26,25,26,26,26,26,25,26,0,26,26,27,26,26,26,26,27,26,26,26,26,25,25,26,26,26,26,26,26,26,27,0,26,27,17,26,26,26,26,26,26,26,27,26,25,26,26,26,0,26,0,25,26,25,26,26,26,0,26,26,26,27,26,26,26,27,17,26,0,26,26,26,0,26,26,26,0,26,26,26,26,27,26,27,0,26,27,17,26,26,26,0,26,27,17,26,0,25,25,26,26,26,26,0,26,26,25,26,27,17,25,26,26,26,26,0,26,26,0,26,26,26,26,26,26,26,26,25,25,26,0,26,26,26,26,26,27,26,0,26,26,26,0,26,26,27,0,26,25,26,24,26,0,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,26,27,26,26,0,26,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,27,17,26,26,0,26,26,26,26,27,25,25,28,28,25,25,26,27,17,28,25,25,17,17,17,17,17,17,17,25,26,27,17,25,26,17,25,25,25,25,26,17,25,25,25,25,28,28,26,27,17,26,26,26,17,26,27,25,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,27,26,25,25,26,26,26,26,26,26,26,26,26,0,17,17,17,17,17,17,17,26,0,26,26,26,26,27,26,27,17,0,26,26,26,27,26,26,26,26,27,17,25,26,26,26,26,27,17,26,26,26,0,26,17,26,26,27,17,26,0,26,26,26,0,26,26,25,26,26,27,26,27,17,26,26,26,26,17,17,17,17,17,17,17,26,0,26,27,26,26,0,25,25,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,27,0,26,26,26,26,26,26,26,27,17,0,26,26,26,27,17,26,26,27,17,26,26,25,25,28,28,25,25,26,27,17,25,26,17,25,26,17,25,26,27,17,25,26,17,26,26,0,26,26,26,27,17,26,27,17,26,27,26,26,26,26,26,0,26,26,0,26,26,26,26,26,26,27,26,26,25,25,26,25,26,25,26,26,27,26,26,26,26,26,27,17,26,26,26,25,26,26,26,26,26,27,0,26,26,26,26,27,26,0,26,27,17,26,27,26,27,26,26,26,27,17,0,26,26,26,26,26,26,0,26,25,26,17,26,26,0,26,26,27,17,26,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,26,26,27,17,26,26,26,26,26,26,27,17,26,0,26,26,0,26,26,27,26,25,26,26,27,17,26,26,0,26,26,26,27,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,25,25,26,26,0,26,27,26,26,26,27,17,26,25,25,28,28,25,25,26,27,17,25,26,17,25,26,17,25,26,27,17,25,26,17,26,26,26,27,17,0,26,27,17,26,17,26,26,26,26,26,0,26,26,26,26,26,27,26,26,27,17,26,0,26,27,17,26,26,26,26,26,0,26,26,26,0,26,26,27,17,26,26,27,26,27,26,26,27,17,0,26,25,26,26,0,26,27,26,26,26,26,26,27,26,26,27,26,26,0,26,26,27,17,25,26,26,26,26,26,0,26,27,26,26,26,26,26,27,26,26,26,27,17,0,26,0,26,0,26,26,25,25,26,26,26,26,26,26,26,26,27,17,26,26,26,0,26,26,26,27,26,17,26,27,26,27,17,0,26,26,27,17,26,26,26,0,26,0,26,27,26,27,17,26,26,27,17,26,27,17,26,26,26,26,26,27,0,26,0,25,26,17,25,25,26,26,26,26,25,25,25,26,27,17,26,26,27,17,26,26,26,26,26,0,26,27,26,26,26,17,26,26,26,26,27,17,26,26,26,26,26,27,26,26,27,26,26,26,26,27,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,0,26,26,27,26,26,0,26,26,26,26,26,26,0,25,25,28,28,25,26,27,17,25,26,17,25,26,17,25,26,27,17,25,26,17,26,26,26,26,26,0,26,0,26,25,26,0,26,26,27,26,26,26,27,26,26,26,26,26,27,25,25,26,26,27,17,26,27,17,0,26,0,26,26,26,27,26,26,17,26,26,27,17,26,27,17,26,0,26,26,26,27,17,0,26,26,27,26,27,26,0,26,25,28,26,17,0,26,26,26,0,26,0,26,0,26,25,26,26,26,26,27,17,26,26,26,27,0,26,26,26,26,26,26,26,17,26,26,0,26,26,26,26,26,17,26,26,26,26,26,26,25,26,27,17,26,27,17,26,26,26,26,27,17,26,27,26,0,26,26,26,0,26,26,26,26,26,26,0,26,26,26,26,0,26,27,17,26,26,26,0,26,26,26,0,26,27,26,26,26,26,27,26,26,26,26,26,26,27,26,27,17,26,26,27,26,27,26,27,17,26,26,26,26,26,26,27,17,26,26,26,26,26,0,26,27,17,26,26,26,26,0,26,0,26,26,17,17,26,28,17,17,28,26,27,17,26,25,26,26,27,26,26,26,26,25,25,25,25,26,27,17,25,26,17,25,25,28,25,25,25,26,27,17,24,25,26,17,25,26,27,17,26,26,26,26,27,26,26,26,26,0,26,27,26,26,26,0,26,26,26,26,27,26,0,25,25,26,0,26,26,28,26,17,0,26,0,26,26,26,26,26,26,27,26,27,17,0,26,27,17,26,26,27,26,27,17,26,25,25,25,28,28,26,27,17,0,26,27,26,17,26,26,17,26,26,26,26,26,0,26,26,26,26,27,26,26,27,26,26,0,26,27,17,26,26,25,26,26,26,25,26,26,27,26,26,0,26,0,26,26,26,26,0,26,0,26,26,0,26,0,26,26,27,26,26,27,17,26,26,26,26,0,26,0,26,27,26,0,26,26,26,26,26,26,0,26,17,26,27,26,26,0,26,26,26,0,26,27,26,0,26,26,26,26,0,26,27,17,26,26,27,17,26,0,26,28,26,17,26,26,25,25,26,28,26,17,26,26,26,27,17,26,26,27,26,26,27,26,26,26,26,27,17,25,26,25,25,26,25,26,0,26,26,27,17,26,25,26,26,26,26,26,0,26,26,27,17,26,26,26,26,26,26,27,26,0,26,26,27,26,26,26,26,27,26,17,26,26,0,26,26,26,0,28,26,17,26,26,27,26,27,17,26,0,26,26,26,26,26,26,26,26,27,17,26,27,17,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,27,17,25,25,25,28,28,26,27,17,26,26,26,27,25,26,26,26,26,0,26,26,27,26,26,27,17,26,26,27,17,26,26,28,25,25,28,28,25,25,26,27,17,25,26,17,25,26,27,17,25,26,17,25,26,17,26,26,0,26,0,26,26,26,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,27,26,26,27,17,0,26,26,0,26,26,27,26,26,26,26,27,0,26,26,26,27,26,26,25,26,27,17,26,26,27,26,26,26,26,25,25,26,26,28,26,17,26,25,26,26,26,26,27,17,26,26,26,27,26,0,26,0,26,26,26,26,27,26,26,26,26,26,25,26,26,26,27,26,26,0,26,26,0,26,26,26,27,17,26,26,26,26,25,26,26,26,0,26,25,26,27,26,26,26,26,26,26,27,26,26,26,26,26,26,27,17,25,25,26,27,26,26,26,26,26,26,26,27,26,26,26,26,26,27,17,26,27,26,26,0,26,25,26,0,26,27,26,26,26,26,26,28,26,17,26,26,27,17,26,26,27,26,26,27,25,25,26,28,26,17,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,17,26,26,26,27,26,26,26,26,27,17,26,26,26,26,27,17,26,27,26,17,26,27,26,26,27,26,26,26,0,26,26,26,27,26,26,26,26,26,27,26,26,26,26,25,26,26,26,26,26,26,0,26,0,26,26,27,26,26,26,26,0,26,26,26,26,26,26,26,17,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,27,17,25,26,0,26,26,26,26,26,27,17,26,27,26,26,0,26,26,26,26,26,0,26,26,27,26,27,17,26,26,28,26,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,25,25,17,26,27,17,26,25,26,27,17,26,26,26,26,26,17,26,26,26,17,17,26,27,0,26,27,26,26,0,17,26,26,27,17,26,26,26,0,26,27,17,26,27,26,26,26,26,26,26,26,25,25,26,26,26,26,27,26,26,0,26,26,26,26,26,26,26,17,17,26,17,26,26,0,26,26,26,26,27,17,26,26,26,0,26,27,26,26,26,28,26,27,17,26,17,26,26,0,26,27,17,26,0,26,27,17,26,26,26,26,26,27,25,26,0,26,26,26,0,26,27,26,0,26,27,17,26,27,17,26,26,26,26,28,26,17,28,26,27,17,26,26,27,26,17,17,26,25,25,26,27,26,0,26,26,17,26,17,0,26,0,25,26,26,26,26,17,17,26,27,26,26,26,26,0,26,25,26,27,26,0,26,26,26,26,17,17,26,27,26,27,26,26,27,17,26,17,25,26,27,26,27,17,26,26,17,17,26,26,26,27,26,26,0,26,26,25,26,27,26,26,26,0,26,27,17,26,26,27,0,26,26,26,25,26,27,17,25,25,25,25,28,28,26,27,17,26,27,26,26,26,27,26,27,26,0,26,26,26,25,26,27,26,26,26,26,26,27,26,26,26,27,17,0,26,26,25,26,27,26,26,26,26,0,17,17,26,27,26,26,26,26,25,26,27,26,26,27,17,26,26,28,26,27,17,26,26,26,26,26,25,26,27,17,26,26,26,26,27,26,17,0,25,26,26,27,26,25,26,27,0,26,26,26,28,26,27,17,26,17,26,26,26,26,27,17,0,25,26,27,26,26,26,25,26,27,26,27,0,26,26,27,26,26,26,25,26,27,17,26,0,26,26,17,28,26,17,26,27,26,26,17,26,26,26,0,25,26,27,26,26,26,26,27,0,26,27,26,27,17,26,26,27,17,0,26,25,25,25,28,28,26,27,17,25,26,27,26,26,0,26,27,26,26,26,27,0,26,27,17,0,26,26,27,26,26,26,25,26,27,26,26,26,26,27,0,26,26,26,26,26,25,26,27,26,26,26,26,27,26,26,27,26,26,26,0,25,26,27,26,26,26,26,26,26,25,26,27,26,26,26,26,25,26,27,26,26,26,26,0,25,25,26,27,17,26,26,26,26,25,26,27,26,0,26,26,26,0,26,26,26,27,26,25,26,26,27,26,0,25,26,27,26,26,27,17,26,27,26,26,26,27,0,26,26,26,26,25,26,27,0,26,26,26,26,26,27,17,26,26,27,0,26,26,25,25,26,0,26,25,26,27,26,0,25,26,17,24,26,26,27,17,26,26,26,27,0,26,0,26,26,25,26,27,26,26,26,26,25,26,27,26,27,17,26,26,0,26,17,26,27,26,26,25,26,27,26,25,25,26,26,26,26,26,27,17,26,26,26,26,25,26,27,26,26,26,27,26,27,26,26,27,26,0,26,26,26,25,26,27,26,26,27,0,26,27,26,26,26,26,27,17,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,27,17,26,26,27,17,26,25,25,25,28,28,26,27,17,26,27,0,26,26,26,27,0,26,26,27,26,0,26,0,25,26,26,27,26,26,0,26,28,26,27,17,26,26,26,26,26,26,27,17,26,26,26,26,26,26,27,26,26,26,26,27,17,26,27,17,26,26,26,0,26,26,26,26,26,26,0,26,26,26,26,0,26,25,26,26,26,26,26,26,26,26,26,28,26,17,26,26,26,26,26,26,26,0,26,26,26,26,0,26,26,26,26,0,26,26,26,26,27,25,26,26,17,26,26,26,26,0,26,27,26,26,26,26,26,27,26,26,27,26,26,0,26,26,26,0,26,26,27,26,27,17,26,0,26,26,26,26,0,26,26,26,26,26,26,25,26,25,26,24,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,0,26,26,0,26,27,17,26,26,0,26,0,26,26,17,26,0,26,17,26,27,26,26,27,17,25,26,27,26,0,26,26,26,26,26,26,26,26,26,26,27,26,0,26,26,26,26,0,26,0,26,26,26,26,26,27,26,26,26,26,26,26,26,27,26,26,26,0,26,26,26,26,27,17,26,26,0,26,26,28,26,27,17,26,26,27,17,26,26,26,26,26,26,26,17,26,26,0,25,25,26,26,26,26,26,26,25,25,28,28,25,25,26,27,17,25,26,27,17,25,26,17,25,26,17,0,25,26,17,26,27,17,26,26,27,25,25,26,27,17,26,25,26,26,0,26,26,26,26,17,26,0,26,26,26,26,26,26,26,26,0,26,26,26,25,25,26,27,26,27,26,26,26,0,26,26,27,17,0,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,17,26,26,26,26,0,26,28,25,26,17,26,26,26,26,26,26,26,26,27,26,26,26,0,26,26,26,26,0,26,0,26,26,25,25,25,26,27,17,26,26,25,26,27,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,0,26,26,26,26,27,0,26,27,17,26,26,26,26,26,25,25,25,26,27,17,26,26,26,26,27,17,26,26,26,27,26,25,25,26,27,17,26,26,26,26,26,26,0,26,0,26,26,26,0,26,26,26,26,26,26,26,27,17,26,26,26,26,26,17,26,26,26,26,17,26,26,26,27,17,25,26,26,27,17,26,0,28,26,17,26,27,26,26,26,26,26,27,26,0,26,26,0,26,26,25,26,27,17,26,0,26,26,26,26,0,26,26,26,17,17,26,26,26,0,26,0,26,26,26,26,26,26,27,17,0,26,26,26,26,26,0,26,26,26,26,26,26,0,26,27,17,26,25,25,26,26,17,17,17,17,17,17,17,26,26,26,27,0,26,25,25,26,26,26,26,26,26,26,17,26,28,26,17,26,27,26,26,26,25,26,26,26,27,26,26,26,26,0,26,17,17,17,17,17,17,17,26,26,0,26,27,26,0,26,0,26,26,26,27,26,26,26,26,26,26,26,26,26,0,26,26,27,26,26,0,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,17,17,17,17,17,17,17,26,26,26,26,27,26,26,26,26,17,26,27,17,0,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,0,26,26,0,26,26,26,26,0,26,17,26,28,26,17,26,26,27,26,26,26,26,25,26,26,26,26,26,26,0,26,26,26,26,26,26,27,17,26,26,0,26,26,26,26,26,27,17,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,17,28,26,27,17,26,17,26,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,0,26,27,17,26,26,26,0,26,0,26,26,0,26,26,17,17,17,17,17,17,17,25,26,28,28,26,17,26,26,26,26,27,17,26,27,17,26,17,17,17,17,17,17,17,26,26,26,26,26,26,26,0,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,27,17,26,26,26,26,26,0,28,26,17,26,26,26,26,0,26,17,26,27,26,26,26,26,26,27,17,26,26,26,26,0,26,17,25,28,28,26,27,17,26,26,26,26,26,26,26,25,26,27,17,26,0,26,26,26,26,17,26,26,0,26,26,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,25,26,26,27,26,26,0,26,26,26,17,26,0,26,28,26,27,17,0,26,0,26,26,28,26,17,26,27,0,26,26,26,27,26,26,26,0,26,26,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,26,25,26,26,26,26,0,26,0,28,26,17,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,25,26,24,26,26,26,26,26,26,27,17,26,26,26,28,26,17,0,25,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,26,26,17,26,0,26,26,26,26,0,26,26,26,26,28,26,17,26,0,26,26,26,26,26,17,26,26,26,17,26,27,26,26,26,25,26,26,26,26,26,26,26,26,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,0,26,26,26,26,27,17,26,28,26,17,26,26,26,0,26,0,26,17,17,17,17,17,17,17,26,26,26,26,26,26,26,17,26,26,25,26,26,27,17,26,26,26,27,17,26,26,26,26,26,27,26,26,0,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,17,26,26,0,26,27,17,26,26,26,26,26,26,0,26,26,28,26,17,26,26,17,26,28,26,27,17,26,26,27,26,26,26,26,27,17,26,26,26,17,26,25,25,25,26,27,17,26,26,26,27,26,26,27,17,26,26,26,0,26,0,26,26,26,26,27,17,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,26,26,26,0,28,26,27,17,26,26,26,26,25,26,17,26,26,26,26,0,26,26,26,26,27,26,26,28,26,17,26,0,26,26,0,26,27,26,26,26,26,0,26,26,26,27,17,26,0,26,27,17,26,0,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,27,17,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,26,26,27,26,26,17,17,17,17,17,17,17,26,28,26,17,0,26,17,26,26,28,26,17,26,26,26,26,26,26,26,26,25,26,0,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,0,26,0,26,26,26,0,26,26,26,27,17,26,26,26,26,0,26,17,26,26,26,26,27,17,0,26,27,26,26,26,0,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,17,17,17,17,17,17,17,26,26,26,26,25,25,26,27,17,26,26,17,26,26,26,26,26,27,26,0,28,26,27,17,26,26,28,26,27,17,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,27,26,26,26,26,26,26,26,27,17,26,25,26,26,26,26,26,26,28,26,17,26,26,26,26,26,26,17,26,26,26,26,26,28,26,27,17,26,17,26,27,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,0,26,28,26,17,26,26,27,26,26,26,17,17,17,17,17,17,17,26,0,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,0,26,26,26,0,28,26,17,26,27,26,26,26,27,17,26,28,26,17,26,26,26,0,26,26,27,26,26,0,26,0,26,26,0,26,25,26,17,26,26,26,27,26,26,26,27,26,17,17,17,17,17,17,17,17,26,27,26,0,26,26,26,27,17,26,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,17,26,26,28,26,17,26,26,26,26,27,26,26,26,0,25,26,24,25,26,27,17,26,26,27,17,26,26,27,17,25,26,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,27,26,26,26,26,26,26,27,17,26,26,25,26,26,28,26,27,17,26,26,26,26,26,26,26,26,26,17,26,26,17,26,0,26,26,26,0,26,26,26,26,26,26,26,26,27,17,26,26,26,25,25,25,26,27,17,0,26,26,26,0,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,27,17,0,26,26,26,26,26,27,26,28,26,17,26,26,25,26,26,26,26,26,17,26,26,26,26,0,26,26,26,26,26,27,17,26,26,27,26,26,26,27,17,26,26,26,27,26,26,26,26,26,26,28,26,17,26,26,27,23,26,0,25,26,17,26,26,26,26,26,0,26,26,26,26,27,26,26,26,27,17,0,26,25,17,17,17,17,17,17,17,17,17,17,17,25,28,26,27,17,26,26,0,26,26,27,17,26,26,26,26,26,0,26,28,26,27,17,26,17,26,26,26,26,26,28,26,17,26,25,26,26,27,26,27,17,26,26,27,0,26,26,27,26,26,0,26,26,27,17,26,0,26,0,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,28,28,26,27,17,26,26,26,0,26,26,26,0,26,0,26,26,26,28,26,17,26,26,26,26,27,17,0,26,26,26,27,17,25,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,26,26,0,25,25,26,27,17,26,26,27,26,17,26,28,26,27,17,25,26,27,17,26,26,27,17,28,26,27,17,26,26,26,27,17,26,26,26,26,26,26,26,0,26,0,26,26,25,26,26,26,26,17,26,26,26,28,26,27,17,26,26,26,26,26,26,26,26,25,25,25,26,27,17,26,26,26,26,27,17,0,26,26,27,26,28,26,27,17,26,26,25,17,17,17,17,17,17,17,17,17,17,17,25,25,25,26,27,17,26,25,25,26,26,0,26,26,26,26,17,26,0,26,26,26,26,26,26,26,0,26,27,26,26,26,26,0,25,25,25,25,25,26,27,17,26,26,0,26,26,26,26,26,26,27,26,26,26,0,26,26,17,0,26,26,26,26,25,26,26,26,25,25,26,27,17,26,0,26,26,17,17,17,17,17,17,17,26,17,26,26,27,17,26,26,26,27,17,26,28,26,17,26,26,26,26,26,26,26,0,26,26,17,26,17,28,26,27,17,26,26,26,26,26,26,26,26,0,26,26,26,26,17,17,17,17,17,17,17,26,27,26,0,26,26,27,26,28,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,27,17,26,27,26,26,26,26,25,26,27,26,0,26,27,26,26,27,17,26,17,26,26,26,27,17,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,28,26,27,17,26,26,26,26,26,28,26,27,17,26,26,27,26,26,26,27,26,26,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,25,26,26,27,17,26,26,27,17,0,26,26,26,26,26,26,0,26,0,26,26,26,26,26,27,26,26,27,17,26,26,26,0,26,26,26,26,0,26,26,26,26,26,26,26,27,0,17,17,17,17,17,17,17,26,0,26,0,26,27,26,26,27,26,26,0,26,0,26,0,26,26,0,26,26,26,26,26,26,26,26,26,0,26,26,27,26,26,26,26,28,26,27,17,26,26,0,26,26,26,26,0,26,25,17,17,17,17,17,17,26,17,26,26,0,26,26,26,27,17,26,26,26,26,26,26,26,26,17,17,17,17,17,17,17,26,26,26,27,26,17,17,17,17,17,17,17,17,17,17,17,17,26,26,26,26,26,0,26,26,26,26,27,26,26,0,28,26,27,17,0,26,26,26,27,26,26,26,26,26,26,26,27,26,26,26,17,26,27,26,26,0,26,26,26,26,26,26,26,26,26,27,26,26,0,26,27,0,25,17,25,26,27,17,26,27,17,0,26,26,27,17,26,26,0,26,26,26,26,26,26,26,26,26,26,27,0,26,26,26,26,28,26,27,17,26,0,26,26,26,26,26,0,26,26,26,0,26,17,26,27,26,26,25,26,26,26,26,17,25,26,26,26,27,28,28,28,28,28,28,28,28,28,26,17,0,26,26,26,26,26,26,17,28,26,17,26,27,26,26,0,26,26,26,0,26,17,26,17,26,0,26,0,26,26,26,27,17,26,27,17,26,26,27,26,26,26,26,26,26,25,17,25,26,17,0,26,28,26,27,17,26,17,26,26,17,26,26,0,26,26,26,26,26,0,26,26,26,26,27,0,26,0,26,26,27,26,27,17,26,26,26,26,26,26,27,26,26,26,26,26,26,27,26,26,26,26,25,26,0,26,26,27,26,0,26,27,17,26,0,26,27,17,0,26,26,26,17,26,0,26,26,27,17,26,26,26,26,26,26,27,0,26,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,26,17,0,26,27,17,26,28,26,17,26,26,17,26,0,26,26,17,26,26,0,26,26,26,27,17,0,26,26,28,26,27,17,26,26,26,26,26,27,26,26,26,26,26,26,26,26,27,26,27,17,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,27,17,26,27,26,17,26,26,26,26,27,17,26,26,27,25,26,26,27,17,26,26,26,27,17,26,17,26,26,0,26,0,26,26,27,26,26,0,26,26,26,26,17,26,26,26,26,27,17,26,26,0,26,17,0,26,17,26,17,0,26,26,26,27,26,26,26,26,27,17,0,26,0,26,26,26,26,27,17,26,26,26,26,17,26,26,26,25,26,27,17,26,27,17,0,28,26,27,17,26,26,26,26,26,26,27,26,26,26,27,26,17,26,26,26,26,26,27,17,0,26,26,26,27,26,25,26,0,26,26,26,26,26,26,17,26,26,0,26,26,26,27,17,25,26,26,26,27,17,26,26,17,26,25,26,27,26,26,26,26,26,0,26,26,26,27,17,26,26,26,26,26,27,17,26,27,0,26,26,17,26,26,26,0,26,26,26,26,27,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,0,26,26,26,0,26,17,26,27,17,26,27,17,26,26,26,26,17,26,26,26,26,26,26,17,26,26,26,27,17,26,26,27,17,26,26,26,26,26,26,25,26,27,26,26,26,17,26,25,26,27,17,26,27,17,26,26,26,26,26,26,26,25,26,25,26,25,25,25,26,27,17,25,26,17,25,26,27,25,25,26,17,26,26,26,26,27,17,0,26,26,27,17,26,27,26,26,26,26,26,27,17,0,26,26,27,17,26,25,25,25,28,28,26,27,17,0,26,27,17,26,26,27,0,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,0,26,26,26,26,26,26,17,0,26,17,28,26,27,17,26,26,26,26,26,17,26,26,26,26,0,26,0,26,26,27,17,26,26,26,17,26,27,17,25,25,25,26,27,17,26,26,25,26,26,26,27,17,0,26,26,26,26,26,26,0,26,0,26,26,27,26,26,0,26,26,28,26,27,17,26,26,26,26,25,25,25,28,28,26,27,17,26,27,26,0,26,17,26,26,27,17,26,17,26,25,25,26,27,24,26,26,26,26,26,27,17,26,27,17,26,17,0,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,26,26,17,26,26,26,25,26,26,25,26,0,25,25,26,25,25,26,27,17,25,26,17,0,26,27,17,26,27,17,26,28,26,17,26,27,17,26,17,0,26,26,26,17,25,26,27,17,25,26,0,26,26,27,17,25,28,28,26,27,17,26,26,17,26,17,26,26,0,26,26,27,26,26,25,26,0,26,26,26,26,26,0,26,26,17,26,26,26,0,26,26,26,27,0,25,26,17,24,26,26,26,26,26,26,27,17,26,27,26,26,27,17,0,26,27,17,26,26,26,26,26,27,17,0,26,25,26,27,17,23,25,26,27,17,26,17,26,26,26,26,26,26,26,26,0,26,26,17,26,26,26,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,25,25,26,27,17,26,27,17,25,25,26,27,17,26,27,25,25,26,27,17,26,27,17,26,27,17,0,26,27,26,26,27,17,25,28,28,17,26,27,17,26,27,26,27,25,26,27,17,23,26,26,27,26,27,17,26,27,26,27,26,26,27,0,26,27,17,26,27,26,27,0,26,27,17,17,26,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,26,0,26,26,26,27,17,26,26,26,27,17,25,26,27,17,23,26,27,17,26,17,26,26,26,17,26,27,26,26,26,26,27,0,26,17,26,26,17,26,26,26,26,26,26,26,0,26,17,26,27,17,26,27,25,28,28,26,17,26,27,17,0,26,27,25,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,0,25,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,0,26,27,25,26,27,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,26,27,26,27,17,26,27,0,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,28,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,26,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,25,26,27,0,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,0,26,27,26,27,0,26,17,0,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,25,26,27,17,23,26,27,17,26,27,26,26,27,17,26,27,26,27,26,27,25,26,27,26,27,0,26,27,17,0,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,17,26,27,26,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,0,26,27,26,27,26,27,26,27,17,26,27,17,0,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,26,27,0,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,25,28,28,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,26,27,0,26,27,26,27,26,27,26,26,27,26,27,25,26,27,17,23,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,0,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,17,25,28,28,26,27,17,26,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,25,25,25,25,25,25,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,17,0,26,27,17,26,27,17,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,26,26,17,26,27,17,26,26,26,0,26,0,26,26,26,26,26,26,17,26,26,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,28,28,26,27,17,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,0,26,27,17,26,26,27,25,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,0,25,26,27,23,0,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,28,25,25,26,27,17,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,25,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,17,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,26,27,17,0,25,17,26,27,0,26,27,17,26,27,25,25,26,27,17,26,27,26,27,17,26,27,17,26,27,17,28,26,27,17,0,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,17,24,26,27,26,27,26,27,26,27,17,25,26,27,23,26,27,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,25,25,25,26,27,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,17,26,27,0,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,17,26,26,27,26,27,26,27,26,27,26,27,17,0,26,26,26,0,26,27,17,0,26,27,17,0,26,17,26,26,26,26,27,17,25,26,26,27,17,26,0,26,0,26,27,26,17,26,26,27,26,28,26,27,17,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,0,26,0,26,26,26,27,17,0,26,26,26,26,26,17,26,26,26,26,27,17,26,26,0,26,26,27,26,27,17,26,0,26,26,27,26,26,0,26,27,0,26,26,26,0,26,0,26,0,26,0,26,26,26,26,27,26,26,27,26,27,17,26,25,26,17,26,26,25,26,17,26,27,26,26,26,26,26,26,26,0,26,26,26,27,26,26,17,26,26,26,27,0,26,0,26,26,17,25,25,26,26,26,0,26,27,17,26,26,26,26,27,17,26,26,27,17,0,26,27,26,27,26,26,26,27,17,26,26,0,26,26,17,26,26,27,26,26,26,26,26,26,0,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,0,26,26,27,17,26,27,17,0,25,25,26,26,26,26,27,17,0,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,28,26,27,17,26,26,17,26,0,26,26,0,26,26,26,26,25,26,26,27,0,26,27,17,26,26,26,25,26,27,26,26,26,17,26,26,27,17,26,26,26,17,26,27,17,26,17,26,27,17,26,17,26,26,26,26,27,26,26,26,27,26,26,26,26,26,26,26,27,26,26,17,26,27,17,26,26,26,26,26,26,27,26,25,26,27,26,27,26,26,26,26,26,27,17,26,26,27,17,26,26,26,27,17,0,26,27,17,26,26,26,0,25,26,27,26,26,0,26,17,26,26,0,26,27,26,26,26,26,26,26,27,26,26,26,17,26,26,27,26,27,0,26,17,26,26,27,17,26,17,26,25,25,28,28,26,27,17,17,26,26,26,17,26,26,26,26,26,26,26,26,25,25,28,28,25,28,28,26,27,17,26,27,17,26,27,26,27,17,26,26,26,26,26,26,27,26,26,17,26,26,0,26,26,26,26,26,27,26,26,26,25,26,27,26,26,26,0,26,26,25,26,27,26,26,26,27,0,26,26,26,27,0,26,0,26,26,27,17,26,26,0,26,27,17,26,27,0,26,26,27,17,26,17,26,26,27,17,26,27,17,26,27,26,26,27,26,26,26,17,26,26,26,26,26,26,17,26,27,26,17,26,0,26,26,26,26,27,17,26,26,27,26,26,26,26,26,26,17,26,0,26,26,26,26,27,17,26,27,17,26,0,26,26,0,25,26,27,26,27,17,26,26,17,26,26,26,26,26,17,26,26,26,17,28,26,27,17,26,26,27,26,17,28,26,27,17,26,0,25,28,28,25,26,27,17,26,26,26,27,17,26,26,27,17,26,26,26,26,27,26,26,25,26,27,24,26,26,26,26,0,26,27,17,26,27,17,26,17,26,26,26,26,0,26,27,26,0,26,26,26,26,26,26,27,17,26,0,26,27,26,17,26,26,26,26,27,26,27,17,26,26,26,0,26,0,26,26,25,17,26,26,26,0,26,26,26,26,26,0,26,25,25,25,26,24,26,25,26,27,17,26,27,17,26,26,26,26,27,0,26,0,26,26,26,0,26,27,26,26,26,17,0,26,26,0,26,26,26,0,26,26,26,26,27,26,0,26,26,26,26,25,25,25,28,28,25,25,26,27,17,26,27,26,25,26,27,17,26,0,26,26,26,27,25,26,17,26,26,26,26,26,27,26,27,26,26,26,27,17,0,26,26,28,26,27,17,26,26,0,26,0,26,26,26,26,25,26,17,0,26,27,26,26,26,26,25,26,27,26,26,26,27,17,26,25,25,25,28,28,26,27,17,26,26,27,26,27,0,26,26,0,26,26,17,26,0,26,26,26,26,26,26,0,26,26,27,0,26,26,27,17,26,26,27,0,26,27,26,26,26,26,26,26,27,26,17,0,25,26,27,26,0,26,26,26,27,26,26,27,17,26,26,27,26,26,17,26,17,26,26,0,26,26,27,26,25,26,27,17,26,27,26,27,26,0,26,27,26,26,26,27,28,25,28,28,26,27,17,0,26,26,28,26,27,17,25,26,27,26,27,17,28,26,27,17,26,25,26,27,17,25,26,27,0,26,0,26,26,27,26,27,26,25,26,27,26,27,26,27,26,27,28,26,27,17,0,26,27,26,27,17,26,27,26,27,17,26,27,25,25,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,17,25,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,17,0,25,25,26,27,17,26,27,0,25,26,27,26,27,26,27,26,27,25,26,27,26,27,0,26,27,26,27,26,27,17,26,27,28,28,28,26,27,17,25,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,26,26,27,26,27,26,27,17,28,26,27,17,26,27,26,27,26,27,17,0,25,28,28,26,27,17,17,26,27,17,26,27,0,25,26,27,24,26,27,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,17,17,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,26,27,26,27,26,27,17,26,26,0,26,26,27,26,0,26,26,25,25,26,26,26,17,26,26,26,27,17,0,26,27,17,26,26,17,26,26,26,26,26,27,17,26,26,27,17,26,26,0,26,28,26,27,17,0,26,26,26,26,26,26,27,0,26,26,27,26,26,27,26,27,25,28,28,26,27,17,0,26,17,26,27,17,26,27,26,26,26,26,26,26,27,26,27,26,26,26,26,27,17,0,26,26,26,26,26,26,27,26,17,26,26,26,27,26,28,26,27,17,26,26,25,26,26,17,26,17,28,26,27,17,26,26,26,0,26,26,17,26,27,25,26,0,26,27,17,26,26,26,26,26,26,27,26,26,27,26,26,27,0,26,26,27,26,26,26,27,17,26,26,26,27,26,26,26,26,26,26,25,28,28,26,27,17,26,0,26,26,26,26,26,26,27,26,0,26,27,17,26,26,26,26,27,26,26,0,26,25,26,26,26,27,17,26,0,26,26,26,26,27,17,26,17,26,27,17,26,26,27,25,25,25,26,27,17,26,26,27,17,26,0,25,26,26,26,26,0,26,26,26,26,25,28,28,26,27,17,26,26,25,25,26,27,17,26,26,28,26,26,26,26,26,26,27,26,26,26,26,26,26,27,26,26,26,17,26,17,26,26,17,26,26,27,26,25,26,27,17,26,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,25,28,28,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,25,25,26,27,17,26,27,0,26,27,0,25,26,27,17,26,27,17,26,27,26,27,26,27,17,28,26,27,17,26,27,0,26,27,17,26,27,25,28,28,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,17,26,27,17,26,27,26,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,0,26,27,28,26,27,17,0,25,26,27,24,0,26,27,0,26,27,26,27,17,26,27,26,27,26,26,27,0,25,26,27,17,17,26,17,26,0,26,27,17,26,26,26,26,26,26,27,0,26,26,27,17,26,26,26,26,26,26,26,0,26,0,26,0,26,26,26,26,26,26,25,25,26,26,26,25,26,0,26,27,26,26,26,26,26,17,26,26,27,17,26,27,26,26,25,26,27,17,26,26,27,17,26,26,26,25,26,27,17,26,26,17,26,26,26,27,26,26,17,26,26,26,26,26,27,17,26,27,26,0,26,27,17,26,26,0,26,0,26,17,0,26,26,26,27,26,26,0,26,26,0,26,27,17,26,0,26,26,17,17,26,17,26,27,25,26,26,26,25,26,27,17,26,27,26,26,27,17,26,26,25,26,27,17,26,26,27,26,26,26,26,26,26,25,25,26,17,26,26,26,26,27,17,26,26,26,27,26,17,0,26,17,26,27,26,26,26,26,27,26,26,27,0,26,26,27,17,25,17,25,26,17,26,27,17,26,26,26,26,27,17,17,17,26,17,26,26,26,17,26,26,25,28,28,26,27,17,0,26,27,25,28,25,17,26,27,17,26,27,26,17,25,26,27,17,0,26,28,26,27,17,26,26,26,26,26,27,17,26,26,0,26,25,26,26,27,17,17,26,17,26,27,25,26,26,17,26,25,26,26,26,17,26,26,28,28,28,26,17,26,26,27,17,26,26,17,26,26,27,17,0,26,17,0,26,26,27,25,25,26,0,26,26,17,26,17,26,26,27,26,26,17,26,0,26,26,26,27,17,26,26,27,26,26,17,25,26,17,26,26,26,26,27,17,28,26,27,17,26,26,17,26,26,26,17,26,27,17,26,26,27,17,26,26,26,26,26,26,17,26,27,17,26,27,17,26,26,27,17,26,25,17,26,17,26,27,17,26,26,26,27,26,27,0,26,27,17,26,25,26,0,26,0,26,17,26,27,17,26,17,26,26,27,17,28,26,17,0,26,26,26,26,26,27,26,26,26,17,26,26,26,0,28,26,27,17,25,26,26,26,26,26,0,26,26,17,26,17,26,17,26,27,17,26,27,17,26,17,26,17,26,17,26,17,26,0,26,26,26,26,27,17,26,26,0,26,27,26,26,27,26,17,28,26,27,17,26,0,17,26,26,26,26,26,0,25,26,17,0,25,26,27,17,26,26,26,26,26,26,26,26,26,0,26,0,26,0,26,26,25,26,27,17,0,25,28,28,17,26,27,17,26,25,26,25,26,27,25,26,27,17,26,26,26,0,26,17,0,26,27,26,26,0,26,26,26,26,26,17,26,26,26,27,17,26,26,27,17,26,26,26,27,26,27,17,26,27,17,26,27,26,26,27,26,26,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,27,17,26,26,0,26,27,17,26,26,26,27,26,26,26,27,0,25,17,25,26,17,25,26,17,0,26,27,17,26,26,27,17,28,26,27,17,26,27,26,27,26,26,27,0,26,27,0,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,25,26,27,26,27,17,25,26,27,26,27,26,27,26,27,0,28,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,0,26,27,17,26,27,25,26,27,17,26,27,26,26,27,17,26,17,26,26,27,17,26,26,27,26,26,27,17,26,26,17,26,26,0,26,26,26,27,26,26,0,26,26,27,17,26,27,26,27,26,17,26,26,26,27,17,26,26,26,17,26,27,17,25,26,17,26,27,17,26,27,26,25,25,26,27,17,17,26,27,17,25,26,27,17,25,26,17,26,17,26,26,0,26,27,26,0,26,26,26,26,26,27,17,26,26,27,17,26,26,26,26,26,27,17,26,27,26,26,26,26,26,0,26,26,17,25,26,27,24,0,26,26,26,27,0,26,26,26,27,17,26,27,17,26,25,25,26,24,26,0,26,27,17,26,0,26,26,25,26,26,26,26,26,17,26,26,26,0,25,25,26,17,26,26,0,26,27,17,26,27,17,26,27,17,26,26,27,17,26,0,26,0,26,26,26,17,26,26,0,26,0,26,26,27,17,26,26,26,26,0,26,26,25,26,26,26,26,27,0,26,0,26,26,17,26,27,26,27,17,26,26,0,26,27,26,17,26,26,26,26,27,17,26,26,26,26,27,26,27,17,25,28,28,26,27,17,26,26,26,26,17,26,26,26,26,0,26,25,26,27,25,26,26,27,26,26,26,26,26,26,25,28,28,26,27,17,0,26,26,27,17,0,26,27,17,26,17,26,17,0,26,17,26,17,26,27,17,26,17,26,26,26,26,26,26,26,27,17,26,26,26,0,26,26,26,27,17,25,28,28,26,27,17,26,27,26,27,26,26,27,26,26,17,26,25,25,26,27,17,0,26,26,26,0,26,26,26,17,26,17,26,17,26,17,26,27,17,26,17,26,17,26,26,26,26,26,26,17,26,27,26,26,26,27,17,26,26,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,27,17,26,27,17,26,17,25,17,25,26,17,26,26,17,0,26,27,17,0,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,0,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,26,27,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,17,26,27,26,26,27,0,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,0,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,26,27,26,27,17,0,26,26,26,26,26,0,26,26,26,26,26,26,26,26,0,26,0,26,26,0,26,27,26,26,26,27,17,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,17,26,26,17,26,26,27,17,26,17,26,26,26,26,25,26,17,17,26,25,17,26,26,28,26,27,17,26,27,26,26,27,26,17,0,28,28,28,26,27,17,26,17,26,26,27,26,26,26,17,26,26,26,26,27,17,26,26,26,26,17,17,26,17,26,26,26,26,26,26,26,27,17,26,27,17,26,26,27,17,26,26,25,28,28,26,27,17,26,27,26,17,26,26,26,26,17,26,26,27,26,26,0,26,27,26,25,26,27,17,26,27,17,0,26,27,17,26,0,26,26,0,26,0,26,26,26,26,27,26,26,26,26,0,26,27,26,27,17,26,17,26,25,25,25,26,27,17,25,25,26,0,26,17,26,26,27,26,27,26,17,26,27,17,26,0,26,26,26,26,0,26,27,26,17,26,26,27,26,27,26,27,17,26,26,26,25,25,28,28,25,25,25,25,17,26,27,17,26,27,0,26,27,17,26,26,17,26,27,17,0,26,26,26,0,26,27,17,0,26,27,26,26,17,0,26,25,26,17,26,26,17,26,26,0,26,26,17,26,27,26,0,26,27,26,27,17,26,26,0,26,26,27,17,26,0,17,26,27,26,27,0,26,17,26,26,0,26,0,26,27,26,26,26,0,26,17,26,26,27,17,26,26,17,26,26,26,27,17,26,17,26,27,26,27,17,25,26,17,26,27,17,26,26,25,28,28,26,27,17,28,25,26,17,26,26,17,17,17,17,17,17,17,26,25,26,27,17,26,25,28,28,26,27,17,25,26,25,26,17,28,26,27,17,26,25,26,26,17,26,25,26,26,27,26,26,25,26,26,26,27,17,25,25,26,17,26,17,26,17,26,17,25,26,27,17,0,26,27,17,26,25,26,27,17,26,27,26,27,17,25,17,26,27,17,0,25,26,26,0,26,0,25,26,0,26,25,26,27,17,28,26,17,25,26,26,17,0,26,25,26,26,0,28,26,27,17,0,26,27,25,26,26,27,17,26,25,26,27,0,26,26,26,25,26,0,26,27,17,26,25,26,17,26,26,26,25,26,26,26,25,26,26,26,26,25,26,26,27,26,0,25,26,25,26,27,17,26,27,17,0,26,25,26,26,26,25,26,26,27,26,26,25,26,26,27,26,25,26,26,27,25,26,27,17,26,27,25,26,17,26,27,17,26,25,25,26,24,25,25,25,28,28,26,27,17,0,26,27,26,25,26,26,26,0,25,25,25,26,27,17,26,26,17,26,25,26,0,26,26,27,17,25,25,26,27,17,26,26,26,25,26,26,28,26,27,17,25,26,17,0,26,26,27,17,26,25,26,17,0,26,26,25,26,25,28,28,26,27,17,26,17,26,27,17,25,26,26,17,26,25,26,26,26,27,17,26,25,26,0,26,27,17,26,0,25,26,27,17,26,26,26,27,25,26,26,25,17,17,17,17,17,17,17,25,26,27,17,25,26,26,26,26,25,26,27,26,26,25,28,28,26,27,17,26,25,26,26,27,25,26,26,26,26,0,26,26,26,27,25,26,27,25,28,28,25,25,26,27,17,26,26,25,26,17,26,26,25,26,26,0,25,28,28,26,27,17,25,28,28,25,26,27,17,26,25,25,26,17,26,27,17,25,25,25,26,27,17,26,27,17,26,27,25,26,0,26,27,17,26,27,26,0,25,26,26,17,0,26,27,26,25,26,26,26,25,26,27,17,26,26,17,26,27,17,26,27,17,26,26,27,17,25,25,25,28,28,25,26,27,17,26,17,26,26,27,17,26,27,26,26,25,26,17,0,26,26,26,26,26,26,27,25,25,26,17,26,25,17,25,17,26,27,17,26,26,27,17,26,17,0,26,25,26,27,17,26,26,17,26,26,26,26,17,25,26,26,26,26,27,17,25,28,28,26,27,17,0,26,17,26,27,25,26,17,26,26,0,25,28,28,26,27,17,26,26,26,25,26,0,26,17,26,17,26,26,27,17,0,26,26,0,25,26,27,26,26,27,17,26,26,0,26,0,26,25,26,27,26,17,17,26,26,27,17,25,17,17,17,17,17,17,17,25,26,27,17,26,26,26,26,27,17,26,27,17,25,26,26,17,26,26,26,26,26,27,17,26,25,28,28,26,27,17,26,0,25,25,26,26,0,26,26,17,26,26,26,0,26,17,25,28,28,26,27,17,26,26,17,26,17,0,26,26,17,26,27,17,26,0,26,27,17,0,26,26,27,26,27,17,26,26,26,26,27,17,26,27,17,26,26,26,27,26,27,26,26,27,25,26,27,17,0,25,26,26,27,26,27,26,27,17,0,26,27,26,27,17,26,27,26,27,17,25,28,28,26,27,17,26,27,26,0,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,17,26,26,27,25,26,27,26,27,26,27,17,26,27,26,27,25,26,27,0,26,27,25,26,27,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,25,28,28,28,28,26,27,17,25,25,26,27,26,27,17,0,26,26,0,26,27,26,27,25,25,26,27,17,24,26,27,17,26,27,26,27,0,25,25,25,26,27,24,26,27,26,25,26,27,17,17,26,27,17,26,27,26,27,17,26,27,17,0,26,27,26,27,26,27,25,28,28,25,28,28,25,28,28,26,27,17,26,27,26,27,0,26,0,25,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,0,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,0,26,26,27,0,26,27,26,27,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,28,26,27,17,26,27,26,27,17,0,25,25,26,27,17,0,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,26,27,17,26,27,0,26,27,26,27,26,26,27,0,26,27,17,26,27,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,26,27,26,27,17,26,26,26,17,26,26,26,27,17,26,26,27,26,26,26,26,26,0,26,26,26,26,26,26,27,17,26,28,26,27,17,0,25,25,26,26,26,26,27,17,26,27,26,26,27,17,0,26,26,26,26,27,26,27,0,26,26,27,17,25,26,27,17,26,26,26,26,27,26,27,28,26,27,17,26,17,0,26,26,26,26,26,0,26,26,25,26,17,26,26,27,17,26,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,25,26,17,26,26,27,17,26,26,26,0,26,26,26,27,26,26,0,26,26,26,27,26,26,26,26,26,26,26,27,17,25,17,25,26,17,26,17,0,26,26,27,17,26,0,25,25,25,26,27,17,23,25,25,26,27,26,27,0,25,26,26,26,26,17,0,25,26,26,26,26,27,17,26,26,26,26,17,25,26,27,17,26,26,27,26,27,17,26,26,26,26,27,17,26,26,26,26,17,26,26,26,27,17,26,0,26,26,25,26,27,26,27,26,26,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,25,25,26,27,26,27,17,26,26,27,17,26,26,27,26,26,27,17,26,26,26,26,0,26,27,17,26,26,27,26,17,26,25,26,27,17,25,25,25,26,17,24,26,26,26,0,26,27,17,26,26,26,26,26,26,0,26,26,0,25,26,24,26,27,17,26,27,17,26,26,26,26,27,17,26,27,0,26,26,26,27,0,26,26,26,26,25,26,17,26,26,26,26,0,26,27,17,26,27,26,26,26,26,26,26,26,26,26,27,17,26,0,26,25,26,27,26,17,25,26,27,17,0,26,26,26,17,25,25,26,26,27,26,27,17,26,26,26,27,26,26,0,26,26,26,26,26,26,27,26,26,27,17,26,27,17,26,0,26,27,26,26,27,0,26,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,28,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,0,25,25,26,27,17,26,27,26,27,28,26,27,17,26,27,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,25,26,27,17,26,27,26,27,17,25,26,27,17,25,26,27,17,26,27,26,27,25,25,26,27,17,24,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,25,28,28,26,27,17,26,27,0,26,27,0,25,26,27,25,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,28,26,27,17,25,25,28,28,25,26,27,17,26,27,0,25,28,28,26,27,17,25,26,27,25,25,26,27,25,26,27,17,25,26,27,17,26,27,25,26,27,25,26,27,26,27,26,27,0,26,27,0,25,25,26,27,25,26,27,26,27,26,27,25,26,27,17,26,27,26,26,27,0,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,25,26,27,17,26,27,26,27,26,27,0,25,26,27,0,25,26,27,0,26,27,25,26,27,26,27,28,28,28,28,26,27,17,0,26,27,17,26,27,26,27,26,27,17,26,27,17,25,25,25,26,27,24,0,25,26,27,17,25,26,27,0,25,26,27,26,27,25,26,27,17,25,28,28,26,27,17,26,27,26,27,25,28,25,25,28,28,17,26,27,17,26,27,25,26,27,17,26,27,25,25,26,27,17,26,27,17,25,26,27,17,26,25,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,17,25,26,27,0,26,27,0,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,25,28,28,26,27,17,25,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,26,27,17,25,26,27,26,27,26,27,26,27,0,25,26,27,17,25,26,27,17,25,28,28,26,27,17,25,26,27,25,28,28,26,27,17,26,27,25,26,27,17,26,27,17,25,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,0,26,27,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,25,25,26,27,17,26,27,25,28,28,26,27,17,26,27,17,0,26,27,26,27,25,26,27,17,25,28,28,26,27,17,26,27,17,25,26,27,17,26,27,17,0,25,26,27,17,26,27,17,26,27,17,0,26,27,0,25,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,25,25,26,27,17,25,26,27,17,26,27,25,28,28,26,27,17,26,27,17,25,26,27,0,25,26,27,17,0,26,27,26,27,25,25,26,27,17,25,26,27,17,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,0,25,26,27,17,26,27,17,0,26,27,17,25,25,25,17,26,27,17,26,27,17,26,27,17,26,27,17,25,25,25,26,27,17,0,25,28,28,25,25,28,28,26,27,17,26,27,0,25,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,17,25,25,26,27,26,27,17,26,27,25,26,27,17,0,25,17,25,26,27,17,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,0,25,26,27,17,26,27,25,26,27,26,27,17,26,27,17,25,26,27,26,27,25,25,26,27,17,26,27,28,25,23,25,26,27,17,26,27,26,27,17,26,27,25,25,28,28,26,27,17,25,26,27,26,27,25,26,27,17,25,26,27,17,17,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,0,26,27,17,0,26,27,26,27,0,25,28,28,26,27,17,26,27,17,25,25,26,27,17,26,27,26,27,26,27,28,26,27,17,25,26,27,17,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,17,17,17,17,17,17,26,27,26,27,25,25,25,26,27,24,26,27,25,25,26,27,17,26,27,0,25,26,27,26,27,25,25,28,28,25,25,26,27,17,0,25,26,27,17,25,26,27,17,25,28,26,27,17,26,27,25,26,27,17,26,27,25,17,17,26,27,17,26,27,17,17,26,27,0,26,27,0,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,25,26,27,26,27,25,26,27,26,27,26,27,0,26,27,26,27,17,25,26,27,17,26,27,25,26,27,28,25,26,27,17,26,27,25,26,27,25,26,27,26,27,0,26,27,25,25,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,17,25,26,27,17,25,26,27,25,26,27,17,26,27,17,26,27,17,25,26,27,17,0,26,27,25,25,26,27,26,27,17,26,27,25,26,27,17,26,27,25,28,26,27,17,0,25,25,26,27,25,26,27,26,27,26,27,0,25,26,27,17,17,26,27,17,26,27,17,26,27,25,26,27,26,27,26,27,25,26,27,26,27,26,27,25,28,28,25,26,27,17,25,26,27,0,26,27,17,26,27,26,27,17,25,26,27,24,26,27,25,26,27,17,25,26,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,0,26,27,26,27,25,26,27,0,28,26,27,17,25,26,27,26,27,26,26,27,26,27,25,25,25,26,27,17,26,25,25,26,25,25,26,25,26,27,17,25,26,26,27,26,27,26,25,26,25,26,25,26,27,26,26,27,17,26,17,25,26,27,17,25,26,17,26,27,17,25,25,26,27,17,26,17,26,27,17,26,17,26,17,0,25,26,27,17,26,27,26,17,26,26,27,26,17,26,25,26,27,26,0,17,26,17,26,0,26,26,26,25,26,26,26,26,26,17,26,27,17,26,25,26,27,26,26,27,17,26,0,25,26,27,17,26,17,26,17,25,26,27,17,25,26,27,17,0,25,17,26,17,26,27,17,26,17,26,27,17,26,17,25,26,27,17,26,17,26,17,26,27,25,25,26,27,17,25,26,26,27,17,25,26,26,26,26,0,26,26,26,25,26,26,26,26,26,26,26,25,26,26,0,26,0,26,17,25,25,26,27,17,26,17,0,17,26,17,25,26,27,17,0,26,17,26,17,26,17,0,26,27,17,0,26,17,26,17,25,26,27,17,26,26,27,26,27,26,0,26,0,26,25,26,26,27,17,26,26,28,26,0,26,26,25,26,26,26,27,26,26,27,17,26,27,26,27,17,25,26,25,26,27,17,26,0,26,17,17,17,17,26,26,0,26,27,17,25,26,26,27,17,26,26,26,17,26,27,26,25,26,27,17,26,17,26,27,25,28,28,26,17,25,28,28,25,17,17,17,17,17,17,17,25,25,26,27,17,25,25,25,26,17,25,26,17,26,25,26,26,25,25,26,26,0,26,0,25,26,27,26,0,17,26,17,0,25,26,26,26,25,26,27,17,26,25,26,26,28,26,27,17,25,26,27,17,26,27,17,26,27,17,25,25,26,0,17,26,27,17,26,27,26,25,26,17,26,25,26,17,26,27,26,27,26,26,27,17,26,27,0,26,0,26,27,0,26,27,17,25,26,27,0,26,17,26,26,26,27,17,26,26,0,28,26,27,17,26,26,26,26,17,26,26,0,26,27,17,0,25,26,17,26,27,25,25,25,25,26,27,17,26,27,26,17,26,17,26,26,26,27,17,26,17,26,17,26,17,26,27,17,26,27,17,0,26,17,26,27,26,17,26,25,25,26,27,17,26,26,17,26,26,26,27,0,26,17,26,0,26,26,26,17,26,26,26,26,17,26,26,26,25,26,17,26,26,26,28,26,17,26,26,0,26,27,17,26,17,25,26,17,17,26,17,26,27,17,26,17,26,17,26,26,26,27,17,26,26,27,26,26,0,26,26,27,17,26,26,17,0,26,26,27,17,26,26,26,0,26,17,26,17,26,27,17,26,17,26,0,26,25,17,26,27,17,26,26,26,26,26,26,27,17,26,27,26,26,26,17,26,26,27,0,26,26,26,27,17,0,26,25,26,26,26,26,17,26,26,26,26,26,25,25,17,26,27,17,26,26,17,26,26,27,26,26,0,26,26,26,26,26,26,26,26,27,0,26,0,26,27,25,26,27,17,25,26,27,17,26,27,17,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,25,17,25,17,17,26,27,17,26,27,26,27,0,25,26,27,17,25,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,17,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,25,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,26,25,26,27,26,27,26,27,17,17,17,25,17,17,26,27,26,27,17,0,26,27,17,26,27,26,26,27,17,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,25,17,17,26,27,17,26,27,17,17,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,26,27,17,26,27,26,27,25,26,27,17,0,25,28,28,25,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,17,17,26,27,17,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,0,26,27,17,26,27,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,28,26,27,17,26,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,17,0,26,27,25,26,27,0,25,25,26,27,17,0,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,25,26,27,26,27,0,26,27,26,27,17,0,26,27,25,26,27,17,26,27,0,25,28,28,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,26,26,27,26,27,26,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,26,27,26,26,26,27,0,26,26,27,26,26,26,26,26,17,26,26,26,26,27,25,26,0,26,0,26,26,26,26,26,26,27,26,26,26,26,0,25,25,28,28,26,27,17,26,26,27,28,26,27,17,26,26,26,26,26,17,26,17,26,27,17,25,25,25,26,27,17,26,0,25,26,26,26,26,27,26,26,26,27,26,26,26,26,26,26,26,27,0,26,26,26,26,27,17,26,26,0,28,26,27,17,26,0,26,27,17,26,27,26,27,26,17,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,0,26,27,17,26,27,25,25,25,26,27,24,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,17,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,24,25,28,28,25,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,17,0,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,26,27,25,25,25,25,26,27,24,25,26,27,17,26,27,26,27,17,17,26,27,17,26,27,26,27,28,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,17,0,26,27,25,26,27,25,28,28,28,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,28,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,17,25,28,28,26,27,17,26,27,25,26,27,17,26,27,17,0,26,27,26,27,26,27,25,28,28,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,25,17,25,26,27,17,26,27,0,26,27,26,27,28,26,27,17,26,27,17,0,26,27,0,25,28,28,26,27,17,26,27,25,26,27,26,27,25,26,27,26,27,26,26,26,27,17,26,26,26,0,26,17,26,26,27,26,26,26,27,26,26,27,26,25,26,0,26,26,26,26,27,17,26,25,26,27,26,25,17,26,17,26,27,17,26,27,17,26,26,0,26,26,25,26,26,26,25,26,26,27,26,26,26,25,26,27,26,27,26,26,26,26,26,26,0,26,26,26,0,26,0,26,27,26,26,26,27,0,26,26,26,26,0,26,27,17,17,26,27,17,0,26,26,17,26,26,25,26,26,27,26,26,0,26,26,26,26,26,26,27,17,26,25,26,17,26,26,26,27,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,25,26,27,17,26,27,17,26,0,26,26,26,26,27,17,26,26,25,26,27,17,26,26,26,27,26,27,26,0,26,27,26,26,26,0,26,0,25,26,26,27,26,26,26,26,26,27,17,26,17,26,26,26,27,17,26,25,26,26,26,27,17,26,26,26,26,25,26,17,26,26,26,26,27,26,26,26,26,26,17,26,0,26,26,26,26,27,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,27,17,26,27,17,0,26,27,17,26,26,27,0,26,26,26,26,27,26,26,26,26,25,26,27,25,25,25,25,25,25,26,27,17,26,26,26,27,26,26,26,17,26,0,26,26,26,26,26,25,26,0,26,26,26,27,26,26,0,26,27,26,27,26,25,26,26,26,27,26,26,0,26,17,26,26,27,26,26,26,26,17,26,26,0,26,26,26,26,26,17,26,27,17,26,27,17,0,26,17,26,17,26,26,26,26,26,0,26,26,26,26,26,26,26,27,0,26,25,25,25,26,24,26,27,25,26,0,26,27,26,27,17,0,26,26,26,27,0,26,26,26,27,17,26,26,27,17,17,26,26,25,26,26,17,26,26,27,0,26,26,26,26,26,0,26,0,26,26,27,26,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,25,25,26,27,24,26,27,26,27,26,27,26,27,17,26,27,26,17,26,25,26,26,26,26,26,26,27,26,27,17,0,26,26,26,27,0,26,26,27,17,26,26,0,26,26,26,17,26,26,27,26,17,0,26,26,26,26,26,26,17,0,26,27,26,0,26,26,0,26,27,17,26,26,27,26,26,17,26,17,26,27,17,26,26,0,26,27,26,26,27,26,25,26,17,17,26,26,27,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,27,17,26,27,17,26,26,26,0,26,26,26,26,27,0,26,26,26,17,26,26,26,26,27,0,26,26,26,0,26,26,26,26,27,26,0,26,26,27,17,26,26,26,27,0,26,26,26,26,26,26,27,17,26,0,26,26,25,26,26,0,26,0,26,25,26,25,26,17,26,0,26,26,26,0,26,0,26,26,25,26,27,0,25,26,25,26,26,26,26,28,26,17,26,26,0,28,26,27,17,26,26,27,26,26,26,26,0,17,26,17,26,27,17,26,0,25,26,26,26,26,26,26,0,26,27,26,26,0,26,27,0,26,27,17,26,26,26,26,28,26,17,26,26,0,26,0,26,0,26,25,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,27,17,26,26,0,26,26,0,26,26,26,26,26,26,25,26,0,26,28,28,28,28,25,17,17,17,25,26,17,26,17,26,27,0,26,26,0,25,25,25,25,25,26,26,0,28,28,25,25,25,25,25,25,25,25,25,25,25,26,17,26,17,26,27,26,26,26,26,27,26,26,26,26,26,0,26,26,26,26,26,26,27,26,26,26,27,26,26,27,26,26,26,26,26,26,27,17,17,26,17,0,26,26,26,26,26,27,26,26,26,26,27,17,25,26,24,26,0,26,26,26,0,25,26,27,26,26,27,17,25,26,26,27,26,27,17,25,25,25,28,28,26,27,17,0,26,27,26,26,27,26,26,26,27,17,26,26,25,26,0,26,26,27,26,0,25,26,26,26,0,26,17,26,26,17,26,26,25,26,24,26,26,26,27,17,0,26,27,17,26,26,25,26,26,27,26,26,27,17,26,26,0,26,26,25,26,26,26,26,25,26,17,26,26,26,0,26,26,27,26,26,27,26,0,26,25,26,26,26,26,26,26,27,26,25,28,28,26,27,17,0,26,27,0,26,0,25,26,17,26,17,25,26,28,25,25,25,26,27,17,25,26,17,0,26,26,28,26,17,26,27,17,26,27,17,0,26,26,25,26,26,27,17,0,26,17,17,26,17,0,26,26,26,26,27,17,26,17,26,26,26,26,27,26,17,25,26,26,26,27,25,25,26,26,28,26,27,17,26,26,26,0,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,26,0,25,28,28,25,28,28,26,27,17,26,27,26,26,26,0,26,27,26,26,26,25,26,26,26,25,26,27,17,26,27,17,26,26,26,26,27,17,26,25,25,25,26,27,0,26,26,27,26,0,26,0,26,26,26,26,17,26,26,0,25,25,28,28,25,25,26,27,17,26,25,25,26,27,17,25,26,17,26,26,26,26,26,27,17,25,26,28,26,17,0,26,26,26,28,26,27,17,26,26,26,26,26,26,27,17,17,26,17,26,26,26,0,26,26,27,0,26,27,17,26,26,0,26,26,26,27,17,26,27,17,26,26,26,26,0,26,27,17,26,26,26,0,26,26,26,26,0,26,26,26,26,26,0,25,26,27,26,27,17,26,0,26,26,27,26,27,26,26,26,26,26,27,26,26,26,26,26,25,26,24,26,26,17,26,27,0,26,26,26,0,25,26,0,26,26,26,0,26,27,26,27,17,26,25,26,0,26,26,26,27,26,26,17,26,26,26,26,26,25,28,28,26,27,17,26,0,26,26,26,27,26,26,26,25,25,25,25,25,26,27,17,25,28,28,26,27,17,26,26,25,26,27,0,25,26,26,27,17,26,27,17,26,26,25,26,27,26,26,27,26,26,25,26,27,26,25,17,17,26,27,17,26,17,26,26,25,25,28,28,26,27,17,0,26,26,26,26,26,17,0,25,28,28,26,27,17,26,17,26,26,17,0,26,26,0,25,26,27,26,25,26,27,26,17,26,27,26,26,26,27,17,26,26,26,17,17,26,25,26,27,17,26,26,26,26,25,25,26,27,17,0,26,27,26,27,17,17,26,27,17,26,17,25,26,26,26,26,26,26,25,28,28,25,26,27,17,25,26,17,26,25,26,17,25,25,26,17,26,17,26,25,25,25,25,26,27,17,25,26,27,26,28,26,27,17,26,26,26,26,26,27,26,26,26,27,17,26,27,26,26,26,26,26,0,26,26,26,26,26,27,17,26,26,27,17,26,26,27,26,27,17,26,27,26,25,26,27,17,26,0,26,26,26,25,26,27,17,17,26,26,0,26,26,26,17,26,26,17,28,26,27,17,26,17,26,17,26,26,27,17,26,26,26,28,26,27,17,26,26,27,26,26,26,26,26,27,17,25,26,26,27,28,26,27,17,26,17,17,17,26,26,25,26,27,17,25,28,28,25,26,27,17,25,26,17,26,25,25,25,26,27,17,26,26,26,17,26,0,25,28,28,26,27,17,26,27,17,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,0,26,17,26,26,26,0,26,25,26,26,17,25,26,27,26,26,26,26,26,27,17,0,25,28,28,26,27,17,26,26,26,26,26,26,26,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,25,25,26,27,17,28,25,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,25,26,27,17,25,26,27,0,26,27,17,26,27,17,17,17,17,17,17,17,17,26,27,26,27,0,26,27,25,26,27,17,25,26,27,26,27,26,27,17,26,27,26,27,17,25,25,25,26,27,17,25,26,27,17,25,26,27,26,27,25,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,0,26,27,26,27,26,27,26,27,17,26,27,0,25,25,25,25,26,27,17,25,26,27,26,27,28,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,17,26,27,17,26,27,26,27,17,0,26,27,0,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,17,26,27,0,26,27,17,26,27,26,27,25,26,27,26,27,17,25,17,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,17,26,25,28,28,26,27,17,28,25,25,25,26,27,17,28,26,27,17,0,26,27,26,27,26,27,25,26,27,25,26,27,17,0,25,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,17,0,26,27,17,26,27,25,26,27,25,17,17,17,17,17,17,17,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,17,25,25,26,27,17,26,27,0,17,17,26,27,17,26,27,17,0,26,27,25,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,17,17,26,27,25,26,27,17,25,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,17,26,17,26,27,17,26,27,17,0,26,27,26,27,26,27,17,17,26,27,17,25,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,17,26,27,25,26,27,17,0,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,17,26,27,25,26,27,17,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,17,26,27,0,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,17,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,25,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,0,26,27,25,28,28,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,26,26,26,26,27,26,26,26,26,26,27,26,26,27,17,25,26,27,17,26,27,26,27,26,26,27,26,26,26,25,25,26,26,17,26,26,26,25,28,28,26,27,17,0,26,26,26,27,26,26,26,27,26,27,17,0,26,26,26,26,26,26,0,26,27,26,17,26,26,26,27,17,26,26,27,26,26,26,27,17,26,17,26,26,27,17,26,0,26,26,26,26,25,26,24,26,26,27,0,26,26,27,17,26,26,26,26,26,26,26,26,26,17,26,26,0,26,26,27,17,26,26,26,0,25,25,25,26,27,17,24,26,26,26,0,26,26,25,26,26,26,0,26,17,26,17,26,26,26,25,25,26,0,26,27,17,26,26,27,26,26,26,25,26,24,26,26,26,26,26,27,26,0,26,26,17,26,27,17,26,27,26,27,26,26,26,24,26,27,26,25,25,26,27,17,0,26,26,0,26,27,17,26,26,26,26,26,27,26,25,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,0,26,0,25,28,28,25,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,26,27,17,25,26,26,0,26,26,25,17,26,27,17,26,27,17,25,26,26,27,26,26,26,26,27,26,27,25,25,26,26,26,0,26,27,26,27,26,26,27,26,17,26,26,27,26,26,26,25,26,26,17,25,28,28,25,26,27,17,26,26,27,17,17,26,26,26,26,27,17,26,26,0,26,0,25,28,28,26,27,17,26,26,26,26,27,26,26,26,27,17,26,26,26,27,17,0,26,26,26,17,26,17,26,17,25,26,26,26,27,26,26,17,17,26,27,17,0,26,26,26,27,26,0,26,0,26,26,27,26,26,26,26,26,17,26,26,0,26,26,26,26,26,26,25,28,28,26,27,17,26,26,26,25,25,26,27,26,26,26,26,27,26,27,17,26,26,0,26,27,26,27,26,25,26,27,17,26,27,26,26,17,26,26,26,26,0,26,26,0,26,26,0,25,26,27,17,0,26,26,0,28,26,27,17,26,27,26,27,17,25,28,28,25,26,27,17,0,26,26,26,25,25,26,25,28,28,28,28,26,17,25,26,27,17,26,26,26,27,17,26,26,26,17,17,26,25,28,28,25,26,27,17,26,27,17,26,26,25,26,27,17,26,0,26,26,26,27,17,26,27,26,26,17,0,26,17,26,17,26,27,17,26,25,26,27,17,0,26,26,0,26,26,26,26,0,26,26,26,27,26,27,17,26,27,25,25,25,28,28,25,26,27,17,26,27,17,26,26,26,26,26,0,26,26,0,25,25,25,26,27,17,25,25,17,26,17,26,17,26,17,0,26,26,26,26,26,27,17,26,26,26,26,26,26,26,27,17,25,25,25,25,25,25,25,25,25,26,27,17,26,25,25,25,25,26,27,17,26,26,26,0,25,26,27,17,0,26,27,17,26,17,26,26,27,17,26,17,17,26,27,17,0,26,26,26,27,26,17,26,26,26,26,26,26,0,26,26,17,26,26,17,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,17,26,27,17,26,26,27,17,26,27,17,26,27,17,26,26,27,17,26,27,26,26,26,26,27,17,0,26,26,26,25,26,27,17,17,17,26,0,26,26,25,25,26,27,17,28,25,26,27,17,0,25,26,27,17,25,26,27,17,0,26,25,25,25,25,26,27,17,25,25,26,26,27,17,26,26,0,26,26,28,26,27,17,26,17,26,27,17,26,26,26,26,27,26,17,26,26,26,27,26,17,26,0,26,26,27,17,26,17,0,17,26,27,0,26,26,26,26,27,17,26,26,26,27,26,26,17,26,17,26,26,26,26,27,26,27,17,26,26,25,17,25,26,17,26,26,26,17,26,23,25,26,24,26,26,26,0,26,26,26,27,26,27,26,27,17,26,27,17,26,27,25,28,28,26,27,17,26,26,26,26,27,17,26,26,25,25,25,28,28,26,27,17,26,28,26,27,17,26,27,0,26,26,26,27,17,26,26,26,26,26,27,26,26,17,26,17,26,27,17,26,27,17,26,26,0,26,26,26,26,26,26,26,27,17,26,26,27,26,26,26,26,26,27,26,27,17,26,25,26,0,26,17,26,27,17,25,26,17,26,26,26,26,26,26,26,26,26,17,25,25,25,26,24,26,26,17,26,26,26,26,17,25,26,26,26,26,26,27,26,27,0,26,26,26,26,0,17,26,17,26,26,27,26,25,26,24,26,26,27,17,26,27,26,26,26,26,27,26,0,26,17,26,27,26,27,17,26,26,26,26,26,27,26,26,27,17,26,27,26,0,26,26,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,25,26,26,27,17,26,26,26,27,0,26,26,26,26,17,0,26,26,26,26,27,0,26,26,17,26,26,26,26,27,26,26,27,17,26,26,26,26,26,0,26,17,0,26,26,27,17,26,26,0,26,26,26,27,17,26,27,26,26,26,26,26,26,27,17,0,26,17,0,26,26,27,17,26,26,27,17,26,26,26,0,26,27,26,26,26,26,26,17,26,17,0,26,17,26,26,26,27,17,26,26,25,25,25,25,26,27,17,26,26,27,17,26,25,25,25,28,28,26,27,17,0,26,26,27,17,26,27,25,26,26,26,26,26,26,17,26,26,26,0,26,26,27,26,0,26,26,26,26,26,0,26,26,26,27,26,27,26,0,26,17,26,27,17,26,27,26,26,17,0,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,17,26,27,17,0,26,26,26,26,26,0,26,26,17,26,26,26,26,27,17,26,0,25,26,26,26,27,17,26,26,26,27,26,17,26,26,26,26,27,17,0,26,26,27,17,26,27,26,17,26,0,26,25,26,25,26,27,17,25,25,25,28,28,26,27,17,0,26,27,17,26,27,17,26,26,26,26,27,26,25,28,28,26,27,17,26,17,25,26,27,17,25,26,17,26,26,0,26,26,17,26,26,26,26,26,26,27,17,0,26,26,17,26,27,17,26,0,26,26,26,26,26,26,26,26,26,25,26,26,26,0,26,27,17,26,27,17,26,25,25,28,28,26,27,17,26,27,17,26,17,26,27,17,26,26,26,27,26,26,27,26,27,17,26,17,26,0,26,26,26,27,26,26,26,27,26,17,0,25,26,26,26,17,0,17,26,17,26,26,26,27,26,25,26,25,26,27,26,27,0,26,17,26,26,0,25,25,25,25,25,26,27,17,26,26,17,26,26,25,25,25,25,26,27,17,26,26,26,27,26,27,17,26,27,26,27,17,26,27,0,26,26,26,25,28,28,25,25,28,28,26,27,17,28,26,27,17,26,27,17,26,26,26,17,26,26,26,27,17,26,17,26,26,26,26,27,17,26,17,0,26,0,17,26,17,26,27,17,26,26,26,27,26,26,26,0,26,26,25,26,26,26,26,26,26,27,26,17,26,17,0,26,26,27,26,25,26,27,17,26,26,27,17,26,26,26,26,27,25,26,27,17,26,0,26,26,27,17,26,25,26,27,17,28,26,17,26,26,26,26,26,26,26,26,27,17,26,17,17,26,27,26,26,27,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,27,25,17,25,25,28,28,25,26,27,17,26,17,26,26,26,27,26,28,26,17,0,26,26,26,26,27,26,0,26,27,17,26,17,0,26,26,26,27,17,26,0,26,26,26,17,26,26,26,0,26,27,26,27,26,26,26,27,17,0,26,26,27,17,26,27,26,27,25,26,27,25,25,25,28,28,26,27,17,0,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,17,17,26,27,17,0,26,27,26,26,27,26,27,17,28,26,27,17,26,27,25,26,27,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,28,28,25,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,26,27,17,25,26,27,26,27,26,27,17,26,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,0,26,27,26,27,25,26,27,0,26,27,17,26,27,26,27,17,26,27,17,26,27,17,0,26,27,26,27,17,26,27,26,27,17,25,26,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,17,25,25,25,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,28,26,27,17,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,25,28,28,26,27,17,26,27,26,27,25,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,0,26,27,26,27,17,26,27,0,25,25,25,28,28,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,25,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,17,26,27,17,26,27,23,26,27,17,26,27,25,26,27,17,26,27,26,27,0,26,27,17,0,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,25,28,28,26,27,17,0,26,27,17,26,27,26,27,17,0,26,27,26,27,17,26,27,25,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,17,0,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,0,26,17,28,26,27,17,26,26,26,27,0,25,26,26,26,27,25,26,26,27,26,27,17,26,27,26,26,17,26,26,26,27,26,27,17,26,26,25,26,26,0,26,27,17,26,26,26,0,26,26,26,27,17,26,26,26,27,26,27,26,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,25,26,26,26,0,26,26,26,26,26,27,17,26,27,26,0,26,17,25,26,25,26,26,26,27,17,26,26,26,26,26,27,17,26,26,27,17,26,26,27,17,26,26,27,26,26,27,17,26,27,26,25,26,17,26,17,26,26,17,26,26,27,17,26,17,26,26,26,25,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,25,25,26,26,26,26,26,27,17,26,26,27,17,26,26,27,17,26,26,17,25,26,26,27,17,26,26,27,26,26,26,0,26,27,26,27,26,27,0,26,26,26,26,26,0,26,27,17,26,27,17,0,26,26,17,26,0,26,26,25,28,28,26,27,17,26,25,26,27,17,26,26,26,26,25,28,28,26,27,17,26,26,26,17,26,27,17,25,26,0,25,26,27,17,25,26,26,27,17,26,26,28,26,27,17,0,25,26,26,25,26,24,26,26,27,26,26,27,17,26,26,28,25,26,27,17,26,26,27,26,0,26,26,27,0,26,0,26,0,26,0,26,26,17,26,17,26,27,17,25,25,25,25,26,27,17,26,26,26,25,26,27,0,26,0,26,26,25,28,28,26,27,17,26,26,26,26,0,26,26,27,17,0,26,27,17,26,27,26,26,26,26,26,27,17,26,26,26,26,26,26,26,25,26,27,17,26,26,26,26,27,0,26,26,26,17,26,26,26,27,26,26,26,27,26,27,26,0,25,26,26,26,26,27,17,26,27,17,25,28,28,26,27,17,26,17,0,26,17,26,17,0,26,27,17,26,0,25,26,26,27,26,27,17,26,26,26,27,17,26,26,27,26,26,17,0,25,26,26,26,26,26,26,26,26,26,27,17,26,26,27,26,0,26,0,26,27,17,26,26,26,27,26,0,26,26,27,17,0,26,26,26,26,26,26,27,0,26,27,17,26,17,26,27,17,26,26,26,17,26,26,26,26,26,26,17,26,26,27,17,26,26,26,26,27,26,26,26,26,26,27,26,27,17,26,27,17,26,17,25,28,28,26,27,17,26,17,26,17,0,26,17,26,17,26,27,26,27,17,0,26,0,26,27,0,17,26,26,27,17,26,26,26,26,26,27,17,26,0,26,27,26,26,17,17,17,17,17,17,17,17,26,26,26,26,26,26,25,26,0,26,26,26,27,17,26,27,17,0,26,26,26,27,17,26,28,26,27,17,26,26,26,26,25,25,26,27,17,26,26,26,26,0,26,27,17,26,26,27,26,26,26,0,26,27,17,26,27,17,26,26,0,26,26,26,27,17,26,26,26,26,27,17,26,27,26,26,27,17,26,27,17,25,26,27,26,26,26,27,0,26,17,26,27,17,26,17,0,26,26,26,27,17,26,17,26,26,27,17,26,25,26,26,26,26,27,26,27,26,27,17,26,25,26,27,26,0,26,26,28,28,28,26,17,26,26,25,26,26,27,17,25,26,27,17,26,27,17,0,26,26,27,17,28,25,25,25,25,26,27,17,26,27,26,26,26,17,26,26,26,26,26,26,26,26,27,26,27,26,27,26,26,25,25,25,26,24,17,26,27,17,26,17,26,26,27,26,0,25,26,26,27,17,26,0,26,27,26,26,25,25,25,26,27,17,26,26,26,27,26,27,17,26,0,26,25,26,26,17,26,26,27,28,28,28,26,17,26,27,17,26,27,17,26,26,17,17,26,17,26,26,27,17,25,26,27,26,17,26,26,26,17,26,17,28,26,27,17,26,27,17,26,26,27,26,26,26,26,26,26,17,26,0,26,27,17,26,17,26,17,0,26,27,17,26,17,26,27,17,26,26,26,27,17,26,26,26,26,26,26,27,26,26,27,26,27,17,26,26,26,26,26,17,26,25,25,26,27,17,26,26,27,26,26,27,26,0,26,26,27,26,0,26,26,27,26,26,26,27,26,0,26,26,17,26,0,26,27,26,26,26,27,26,26,26,26,17,17,26,26,27,0,26,26,27,17,0,28,26,27,17,26,26,26,26,27,0,26,26,26,26,26,0,26,26,26,27,26,27,17,26,26,26,27,17,17,26,17,26,26,26,26,26,0,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,27,26,26,26,27,17,26,17,17,26,26,26,26,26,27,26,0,26,27,17,26,0,26,26,26,26,26,17,26,26,26,27,26,27,17,26,26,17,26,26,27,26,27,26,27,26,27,26,27,0,26,17,26,27,26,26,26,0,25,26,27,17,26,26,27,17,26,26,27,26,27,26,26,26,27,25,28,28,26,27,17,17,17,26,27,17,26,25,26,27,26,26,25,26,26,26,27,26,27,17,25,26,27,0,26,27,17,26,26,26,26,26,25,25,26,27,17,26,27,26,27,17,26,26,26,27,17,26,26,28,26,27,17,26,26,26,26,26,26,26,26,0,25,26,27,26,27,26,26,26,27,0,25,26,27,26,26,27,26,26,26,27,26,26,26,0,26,0,26,27,17,26,26,0,26,27,28,26,27,17,26,26,26,17,26,27,17,26,27,26,26,27,17,26,26,27,0,26,26,26,26,26,27,17,25,26,27,28,26,27,17,0,25,28,28,26,27,17,26,0,26,26,26,26,26,0,26,17,26,26,26,26,27,26,26,26,0,26,26,26,26,26,27,26,26,27,17,26,26,27,26,26,26,26,27,17,26,26,0,26,26,27,25,26,27,26,26,26,0,26,27,26,27,26,26,26,0,26,26,26,26,0,26,26,0,26,17,26,27,17,26,26,0,26,26,0,26,26,26,27,26,27,17,0,26,26,26,27,26,27,26,0,26,26,27,26,26,25,26,27,17,26,17,26,26,0,26,26,26,27,25,26,24,26,26,26,0,26,26,26,25,26,27,17,25,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,26,0,26,26,26,27,26,17,26,26,26,27,26,27,26,26,17,0,26,26,27,26,26,27,17,26,17,26,26,26,27,26,26,26,17,26,17,26,26,27,26,26,26,0,26,27,17,28,26,27,17,26,27,17,26,26,27,17,26,26,26,26,26,26,27,17,26,26,0,26,26,26,26,26,26,0,26,26,26,0,26,25,28,28,25,25,26,27,17,25,26,17,25,26,27,17,25,26,17,25,26,17,0,26,26,0,26,26,26,26,26,0,26,0,26,26,0,26,26,26,26,26,26,26,27,17,26,26,17,26,26,27,17,26,0,26,26,26,26,26,26,0,26,26,0,26,27,17,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,25,17,26,27,17,24,26,27,26,27,17,17,17,17,17,17,17,26,27,0,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,0,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,17,17,17,17,17,17,17,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,26,27,26,17,26,26,27,26,26,26,26,26,0,26,17,26,26,27,25,25,26,26,26,26,26,26,27,17,0,26,27,26,26,26,17,26,26,26,27,17,26,27,17,26,27,25,25,26,27,17,26,26,0,26,27,17,26,27,17,26,27,26,17,26,26,26,26,27,26,26,26,25,26,26,0,26,25,28,28,26,27,17,26,27,26,27,17,26,26,26,17,26,26,27,26,26,27,17,26,26,26,0,26,27,26,26,26,25,17,25,26,17,0,28,26,27,17,0,26,26,17,26,26,26,26,26,0,26,26,27,26,27,26,26,27,26,25,28,28,26,27,17,26,27,17,26,26,17,26,28,26,27,17,26,26,17,26,27,0,25,25,26,0,25,28,28,26,27,17,17,26,27,17,0,26,26,27,26,26,26,26,27,26,26,26,26,26,26,17,26,26,25,28,28,26,27,17,0,26,27,26,26,26,26,17,26,0,26,26,26,17,17,17,17,17,17,17,26,27,26,17,17,26,26,26,17,26,27,26,26,27,17,26,26,26,26,27,26,26,26,26,27,26,0,26,17,26,27,17,26,17,25,28,28,25,25,26,27,17,25,26,17,26,0,25,25,26,17,26,26,17,26,26,26,27,0,26,26,27,17,26,26,26,26,17,26,26,26,25,28,28,26,27,17,26,26,0,26,26,0,26,26,26,25,25,26,26,26,26,28,26,17,26,0,26,27,25,25,25,25,17,17,26,27,17,24,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,17,25,25,26,27,26,27,26,27,17,25,26,27,17,26,27,25,26,27,17,26,27,26,27,26,0,26,27,26,27,26,27,25,25,25,25,25,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,28,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,28,26,27,17,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,0,26,27,0,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,0,26,26,26,27,26,26,26,27,26,26,17,26,17,26,27,17,26,27,17,26,26,26,0,26,27,0,26,26,26,26,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,28,26,27,17,26,27,26,27,17,26,27,0,26,27,17,26,27,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,17,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,17,17,17,17,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,17,26,26,26,26,26,27,17,26,26,26,26,26,27,26,17,17,26,27,17,0,26,27,17,26,26,27,26,27,17,25,26,27,17,25,26,25,25,26,27,17,0,25,26,27,17,26,0,26,17,26,25,26,26,27,28,26,27,17,26,27,17,26,28,28,28,26,17,26,27,26,27,26,27,26,27,26,27,0,25,25,25,26,27,17,26,27,17,26,27,26,26,26,27,17,25,26,26,26,27,17,26,26,17,26,17,26,26,26,0,26,26,26,0,26,27,26,27,26,26,0,26,26,26,26,26,26,26,27,26,17,26,27,26,26,26,27,17,26,26,26,26,27,17,26,0,28,26,27,17,26,26,27,17,26,27,0,26,27,26,0,26,26,26,27,17,26,26,26,26,26,26,26,26,0,26,27,17,26,26,27,26,26,26,26,0,26,26,26,27,26,26,26,25,28,28,26,27,17,26,0,26,27,17,28,26,17,17,26,17,26,26,26,26,27,26,27,25,28,28,25,25,28,28,26,27,17,0,26,27,17,26,27,17,25,26,25,26,0,26,25,28,28,26,27,17,26,26,26,27,26,17,25,26,26,26,26,27,17,26,26,27,17,25,26,24,26,0,26,27,26,27,26,26,17,26,26,26,26,26,26,26,27,26,25,26,27,17,26,27,0,26,26,27,0,26,26,26,25,25,25,26,27,17,26,0,25,25,26,27,17,25,26,17,26,26,26,26,27,26,27,17,26,25,28,28,26,27,17,26,26,0,26,26,0,28,26,27,17,26,26,25,25,25,26,27,17,0,26,26,26,25,26,27,17,26,26,17,26,17,26,26,26,27,26,26,26,26,0,26,26,17,26,27,17,26,25,26,17,26,26,26,26,26,26,26,26,26,26,25,26,27,17,26,26,26,25,28,28,26,27,17,26,26,27,17,0,17,26,27,17,0,26,26,26,27,17,26,26,26,26,26,26,27,0,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,25,28,28,26,27,17,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,0,28,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,17,26,26,27,28,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,25,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,25,26,27,25,26,27,17,26,26,27,26,27,26,27,0,26,27,0,17,17,25,25,26,27,25,26,27,17,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,25,26,27,0,26,27,26,27,0,25,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,0,25,26,27,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,17,0,26,26,17,26,27,26,27,26,27,26,26,0,26,27,26,25,26,27,17,25,28,28,25,26,27,17,25,26,26,27,17,26,17,26,17,26,27,17,0,26,27,26,27,17,26,26,0,26,27,17,26,25,26,27,0,26,26,26,0,26,26,25,26,26,25,26,27,17,26,26,26,26,17,26,0,26,25,26,26,26,0,25,26,27,17,26,0,17,17,25,28,28,25,26,27,17,26,26,26,26,0,26,0,26,26,28,26,27,17,25,26,27,17,26,26,25,26,27,26,0,26,28,26,27,17,26,26,17,17,26,17,26,27,17,26,26,26,26,26,27,17,26,0,25,26,27,26,0,26,26,27,17,26,26,26,27,26,26,26,0,26,26,26,25,26,27,17,26,26,27,26,26,26,17,17,26,25,26,0,26,27,17,26,26,17,17,26,27,17,26,25,25,25,25,26,27,17,25,25,26,27,0,26,26,26,26,27,25,25,26,27,26,0,26,27,17,26,26,26,27,17,26,26,26,26,26,27,25,17,26,27,17,26,17,17,26,27,17,0,26,26,26,26,26,26,26,26,26,26,26,26,27,17,0,26,26,0,26,27,17,26,26,25,17,25,26,27,17,25,25,26,17,26,17,26,17,26,17,26,26,26,26,17,17,26,25,25,26,27,26,26,26,27,26,27,17,0,26,0,26,26,26,26,25,26,27,26,26,26,26,26,0,26,26,26,26,27,26,17,26,26,0,26,26,26,26,26,26,27,0,26,26,0,26,26,27,17,26,17,26,0,26,26,26,17,26,17,26,26,27,26,26,26,0,26,27,26,28,25,25,26,27,17,0,26,26,17,26,26,26,26,26,27,17,25,26,24,26,26,26,26,17,26,26,17,26,0,26,26,26,17,17,17,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,17,26,26,17,26,25,25,26,27,17,26,26,26,28,26,27,17,0,26,0,26,26,0,26,26,26,17,26,26,26,27,0,26,27,17,26,0,25,25,28,28,26,27,17,26,17,0,28,26,27,17,26,0,26,26,0,26,17,26,25,25,25,17,17,26,27,17,0,26,25,25,26,17,0,26,26,26,27,17,26,27,26,26,26,0,26,26,26,26,26,17,26,26,26,26,17,25,17,26,27,17,26,27,17,26,17,25,25,25,26,27,17,25,26,27,0,26,27,17,26,17,26,17,0,26,17,17,26,17,26,17,0,26,17,26,26,26,26,26,26,26,26,17,25,26,17,17,26,26,0,26,26,26,0,26,26,27,17,26,0,17,26,27,17,26,26,26,26,26,26,17,26,26,27,0,26,26,26,26,25,26,27,17,26,26,26,25,26,26,27,17,26,17,26,26,26,0,26,26,27,17,26,26,26,26,27,17,26,17,26,26,27,26,26,26,26,25,26,27,26,26,26,27,17,28,25,26,17,26,25,26,26,26,26,26,17,26,26,26,26,26,26,26,26,25,26,27,17,26,26,27,26,27,17,26,26,26,26,27,26,26,26,26,17,26,27,17,26,26,26,17,26,26,26,0,25,26,27,17,26,26,26,26,17,26,27,17,26,26,26,0,26,26,0,26,17,26,26,26,26,17,25,26,27,26,26,27,17,26,26,26,27,25,26,27,17,26,26,17,26,26,17,26,26,17,26,0,26,28,25,25,26,17,26,26,17,25,26,26,26,26,26,26,26,17,26,26,27,26,26,27,17,26,17,26,26,27,17,26,17,17,26,27,25,25,26,27,17,26,26,27,17,26,26,0,25,25,26,27,26,27,17,26,26,26,27,26,26,26,26,25,25,26,27,17,26,26,26,26,27,25,26,0,17,17,26,26,27,17,0,26,27,26,26,26,27,26,17,26,26,26,26,17,26,0,26,0,26,26,17,26,27,17,0,26,26,27,25,25,26,27,17,26,27,26,26,26,17,26,26,25,25,25,25,26,27,17,26,17,25,26,26,26,26,17,26,26,0,25,26,17,26,0,26,26,26,26,26,26,26,17,25,26,27,17,26,26,0,26,0,26,17,0,28,26,27,17,26,26,25,26,27,17,26,26,26,25,26,24,26,0,26,26,27,26,26,26,0,25,26,27,25,26,27,0,26,26,26,27,26,26,25,26,27,26,0,26,27,17,26,25,26,0,25,28,28,26,27,17,0,26,26,26,27,0,26,26,26,26,0,26,0,26,27,26,25,26,27,26,26,26,26,26,27,25,26,27,17,26,25,25,28,28,25,26,27,17,0,26,26,25,26,27,26,26,17,26,26,0,26,26,26,26,27,17,26,26,27,17,26,27,17,25,26,27,25,26,27,26,17,17,25,26,17,25,28,28,26,27,17,25,26,27,26,26,25,26,25,26,27,26,0,26,17,26,27,28,26,27,17,25,26,27,17,25,26,27,17,25,26,17,26,26,27,17,26,26,25,26,27,26,26,26,17,26,25,28,28,26,17,26,17,26,27,26,17,26,17,25,26,26,17,17,17,26,17,28,26,17,26,26,0,25,26,27,17,0,25,26,25,26,27,26,27,17,25,26,26,25,26,25,28,28,26,27,17,0,25,26,27,25,26,27,17,26,26,27,25,26,27,26,27,17,26,27,26,27,17,26,25,28,28,26,27,17,26,27,17,25,26,26,26,27,17,0,26,17,26,26,17,17,25,25,28,28,26,27,17,0,25,26,27,0,26,26,26,27,17,26,26,25,26,27,26,26,0,26,25,26,27,26,27,17,26,25,26,27,26,0,25,26,27,17,26,26,27,26,27,17,0,25,26,27,25,26,27,26,27,17,26,26,26,25,25,28,28,25,25,26,27,17,26,25,26,27,17,26,26,26,26,26,26,25,25,26,27,26,26,26,25,26,27,25,26,27,17,26,26,27,26,0,26,27,0,25,25,26,27,26,25,26,27,25,26,27,25,26,27,25,28,28,26,27,17,25,25,26,27,17,25,26,27,17,25,25,25,25,25,26,27,17,0,25,26,17,26,25,26,27,17,25,26,27,17,26,0,26,26,26,25,26,27,25,26,27,25,26,27,17,0,26,27,17,0,26,26,27,17,28,25,26,27,17,25,26,27,25,26,27,26,0,26,25,26,27,17,26,26,0,25,26,27,17,26,26,25,25,25,26,27,17,0,17,26,27,25,26,27,26,26,26,25,25,26,27,0,26,26,25,26,27,17,26,0,25,25,25,26,27,17,26,25,26,27,17,26,17,26,26,25,26,27,25,26,27,17,26,26,0,25,26,27,17,26,17,26,0,17,26,17,26,0,26,26,26,27,26,25,25,25,26,17,25,26,26,25,28,25,25,26,27,17,25,26,17,26,26,25,26,17,25,17,26,26,25,26,26,26,26,26,17,17,28,25,26,27,17,26,26,26,26,26,17,17,26,26,26,0,26,26,26,26,26,26,26,0,26,26,17,26,27,26,26,27,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,17,26,27,26,26,26,26,26,26,26,27,26,25,26,17,0,26,0,26,17,26,27,17,26,27,26,26,27,25,26,26,0,25,28,28,26,27,17,26,26,26,17,17,17,17,17,17,17,26,0,25,26,17,26,26,27,17,26,26,27,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,26,25,26,26,0,26,26,27,17,26,17,0,26,17,26,17,25,26,27,17,26,17,0,26,17,26,27,17,26,26,25,26,25,26,26,26,26,27,26,26,26,25,26,17,26,27,17,17,17,26,27,17,26,27,17,26,27,17,26,27,17,26,17,25,26,17,0,17,26,27,17,26,27,17,26,25,28,28,26,27,17,26,26,25,17,17,26,26,27,17,26,17,26,26,27,17,17,26,17,17,26,17,25,25,26,26,0,26,26,17,26,17,26,17,0,26,17,0,25,26,17,0,26,17,26,17,26,25,25,26,27,17,26,26,25,26,27,17,26,17,0,26,26,17,26,26,0,26,27,17,25,26,26,26,26,0,17,26,26,26,17,25,26,17,26,27,17,26,26,17,25,26,27,17,26,26,25,26,17,26,27,17,26,25,25,26,27,17,0,25,26,17,26,0,26,27,17,25,25,26,26,26,26,25,25,25,26,27,17,0,17,26,27,17,26,0,25,26,26,26,26,27,26,26,26,25,26,27,17,26,26,0,26,27,17,26,26,26,27,25,26,26,27,17,0,26,26,25,25,26,27,17,26,17,26,25,26,26,26,26,27,17,26,27,17,26,26,25,17,17,17,17,17,17,17,25,17,26,27,17,26,26,27,17,0,26,25,28,28,25,26,27,17,26,27,17,25,28,28,25,25,25,26,27,17,26,26,27,26,25,26,25,26,0,25,28,28,26,27,17,26,26,26,27,17,17,26,26,26,27,17,26,26,26,26,17,26,27,17,26,26,26,17,26,26,26,26,27,17,26,26,27,26,26,17,26,25,26,17,26,26,17,26,26,27,26,27,17,26,17,0,26,26,27,17,26,26,17,25,25,26,26,17,26,27,26,26,26,26,17,26,27,17,26,26,27,17,26,0,26,17,26,26,27,26,26,27,17,26,17,26,26,26,17,26,26,26,26,26,26,26,26,26,25,25,25,25,26,27,17,26,25,28,28,26,27,17,26,26,25,25,26,27,26,26,27,17,26,25,26,27,26,0,26,26,26,26,25,26,27,26,0,26,26,26,26,27,17,26,0,26,25,26,17,26,26,26,0,26,26,26,27,26,17,25,26,25,25,25,25,25,26,27,17,26,26,26,25,26,27,26,26,27,26,26,26,26,25,25,26,27,25,26,27,17,26,26,0,26,26,0,26,27,17,26,0,26,26,26,27,26,26,26,25,26,26,17,0,26,26,27,17,0,26,26,0,26,26,26,26,0,26,27,26,26,27,25,26,27,26,26,27,17,26,26,17,26,0,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,27,17,0,26,26,17,26,0,25,28,28,26,27,17,26,26,26,25,26,27,17,25,26,26,0,25,26,27,26,26,26,27,17,26,26,27,26,26,26,26,26,0,26,25,26,25,25,26,27,17,26,26,26,27,26,26,27,26,26,26,27,26,26,27,17,26,27,17,26,26,25,17,25,26,17,26,26,27,17,26,0,26,26,26,25,26,27,17,26,27,17,26,27,17,0,26,27,26,26,27,17,26,26,26,26,25,28,28,25,26,27,17,0,26,27,17,25,26,27,17,26,25,26,27,17,26,0,26,27,17,17,17,17,17,26,27,26,27,26,27,26,27,17,26,26,26,25,26,27,17,26,27,17,0,26,27,26,26,17,26,0,25,28,28,26,27,17,0,26,26,17,26,25,28,28,25,25,26,27,17,26,27,26,17,26,25,26,27,26,25,26,27,17,25,26,26,26,27,25,28,28,28,25,17,26,17,25,26,27,17,25,26,17,26,17,25,26,27,26,27,26,27,17,0,26,27,17,26,17,25,25,26,26,26,27,17,25,25,17,26,27,17,17,26,26,27,26,26,25,28,28,26,27,17,25,26,27,17,25,26,26,0,26,17,26,17,26,25,25,26,27,26,26,26,27,17,26,26,26,25,26,27,26,27,17,26,26,26,25,25,25,28,25,25,26,17,26,27,17,25,26,27,26,0,25,26,0,26,26,26,0,26,25,28,28,26,27,17,26,26,0,26,26,26,0,26,26,26,0,26,25,26,27,17,25,28,28,26,27,17,26,26,26,25,26,26,26,26,26,27,26,26,26,26,26,26,26,27,0,25,26,27,26,26,26,26,26,27,26,26,26,26,25,25,26,26,26,26,27,17,26,26,26,26,26,0,26,26,26,27,26,26,26,26,0,26,0,26,27,26,26,26,0,26,0,26,27,17,0,26,25,26,27,26,26,26,26,26,0,26,17,28,26,27,17,26,25,26,27,17,26,26,26,26,26,26,27,26,27,17,0,26,0,26,26,27,17,26,26,26,0,25,26,17,0,26,0,25,26,0,26,26,25,25,26,27,17,26,27,17,26,26,26,27,26,25,26,27,26,26,26,26,26,27,17,26,26,27,26,27,26,25,26,27,17,26,0,26,27,17,26,26,26,25,25,26,27,17,26,27,17,26,26,25,28,28,26,27,17,26,0,26,27,26,26,26,26,25,25,25,25,26,27,17,26,26,26,27,17,26,0,26,26,25,26,27,26,26,26,26,26,26,27,17,26,0,26,26,26,26,26,25,26,26,26,27,25,26,17,26,27,17,26,25,25,25,26,24,26,17,26,17,26,26,26,26,26,0,26,27,25,26,26,26,26,26,26,25,26,27,26,26,26,26,26,26,0,26,17,26,26,26,26,17,26,0,26,17,17,26,26,26,26,27,17,26,26,26,17,26,25,25,26,26,27,17,26,17,0,26,27,17,26,27,17,26,26,0,26,26,26,27,26,26,25,28,28,26,27,17,25,28,28,26,27,17,17,26,27,17,26,26,26,26,17,26,0,17,17,26,26,0,26,26,0,26,26,26,17,26,27,17,26,26,25,26,27,26,26,26,26,27,17,0,25,26,27,17,26,17,26,0,26,27,17,26,26,17,26,26,17,25,26,26,26,27,17,26,17,26,0,25,26,27,17,26,0,26,0,26,26,27,17,26,26,27,17,25,28,28,25,26,27,17,26,17,0,26,25,17,26,26,26,28,26,27,17,26,26,27,17,26,17,26,26,26,27,17,0,26,25,25,25,25,26,27,17,26,26,0,26,0,26,27,25,25,26,26,26,26,26,0,26,26,25,26,26,17,26,17,26,17,0,17,17,26,17,26,17,26,17,26,17,26,0,26,26,26,27,0,17,26,26,17,26,25,28,28,26,27,17,0,26,26,26,26,26,0,25,26,28,26,27,17,26,26,26,17,26,26,26,0,26,26,26,27,26,26,0,26,27,17,0,26,26,26,26,26,26,26,26,17,26,27,28,26,27,17,26,26,26,26,26,26,26,26,26,17,0,26,26,26,27,17,25,26,27,17,0,26,26,26,26,26,26,26,26,27,26,27,25,25,26,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,26,27,17,25,25,26,27,17,26,26,25,26,26,17,26,26,26,26,26,26,27,0,26,0,26,26,26,26,26,26,26,17,26,26,26,26,28,26,27,17,26,26,27,17,26,26,27,26,27,26,27,26,26,26,26,27,26,26,26,27,17,26,27,26,17,26,0,26,26,0,26,27,17,26,26,27,0,26,26,26,26,26,25,25,26,26,26,26,28,28,25,17,17,17,25,26,27,17,26,17,26,26,25,25,26,26,28,28,28,28,28,26,17,28,25,25,25,25,25,26,27,17,26,26,27,26,25,26,26,26,26,26,26,26,26,0,26,26,17,26,25,26,27,17,26,26,27,26,26,26,26,27,17,0,26,27,0,26,26,17,26,26,26,27,17,26,0,26,26,26,27,17,26,26,0,26,26,26,26,26,26,0,26,27,26,0,26,26,26,26,17,26,27,17,26,26,26,26,27,17,26,26,26,0,26,26,26,26,26,26,26,27,26,26,25,25,26,26,27,17,26,26,26,26,26,26,26,26,27,26,26,26,0,26,26,26,27,26,26,26,27,17,26,26,17,26,26,27,17,26,27,17,25,26,27,26,0,26,26,26,17,26,26,26,26,26,26,0,26,27,17,26,27,17,26,26,26,27,26,27,26,27,26,26,27,26,0,26,26,27,26,27,26,26,26,26,26,27,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25,26,26,25,25,25,26,26,26,27,17,26,26,17,26,0,26,26,27,26,26,26,26,26,26,26,26,26,17,26,26,26,26,26,17,26,26,25,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,27,17,0,26,26,25,26,27,17,26,27,17,26,0,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,26,17,26,26,26,0,26,26,26,0,26,26,26,26,26,26,26,27,25,25,26,26,26,26,26,27,17,26,26,26,27,26,26,26,26,26,17,26,26,17,26,0,26,26,27,17,26,0,26,25,26,17,17,17,17,17,17,17,26,25,26,26,26,26,17,26,26,26,26,26,0,25,26,27,17,26,27,26,26,26,26,27,17,25,25,28,28,25,25,26,27,17,25,26,17,25,26,17,25,25,26,27,17,25,26,17,26,27,17,17,17,17,17,17,17,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,26,0,26,26,0,26,25,25,26,27,26,26,27,26,26,26,26,26,17,26,0,26,26,26,26,26,0,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,25,26,27,26,0,26,26,26,26,26,26,27,26,27,26,27,25,26,27,26,25,26,26,26,27,17,26,25,26,26,26,26,25,26,26,26,17,26,26,26,26,26,26,27,26,26,0,26,26,26,28,26,27,17,26,26,0,26,26,0,26,26,26,26,26,28,26,27,17,26,26,27,17,26,26,27,17,26,26,26,26,26,17,26,26,26,26,26,26,27,17,26,27,17,26,26,0,26,26,0,25,25,25,25,25,25,26,27,17,26,0,26,26,26,26,26,26,27,25,26,27,17,26,26,27,26,26,26,26,26,25,26,26,26,27,26,26,26,26,0,25,25,25,26,24,26,26,26,26,26,26,26,17,26,26,26,0,28,26,17,25,26,0,26,26,26,26,26,17,17,17,17,17,17,17,28,26,27,17,26,25,25,28,28,25,26,27,17,26,25,25,25,26,27,17,25,26,17,25,26,17,0,26,26,0,26,26,26,26,26,26,17,26,0,26,26,27,17,26,27,17,26,26,0,26,0,26,26,27,26,17,26,26,26,26,26,26,26,26,27,17,26,26,27,17,26,26,26,27,0,26,27,25,26,27,26,26,26,26,26,28,17,26,27,17,26,27,17,26,27,26,17,26,17,26,26,0,26,26,26,27,26,26,0,26,17,26,26,26,26,17,26,26,26,26,17,25,26,27,17,26,25,28,28,26,27,17,26,27,0,26,27,26,27,17,17,26,27,26,27,17,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,26,27,17,25,25,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,17,25,26,27,17,26,27,26,27,26,27,0,25,25,25,26,27,24,0,26,27,26,27,25,25,26,27,17,26,27,26,27,17,26,27,17,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,26,27,28,25,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,17,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,0,26,27,26,27,0,26,27,0,26,27,17,0,25,25,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,25,26,27,0,26,27,26,27,26,27,17,25,26,27,26,27,17,26,27,26,27,25,28,17,26,27,17,26,27,17,26,17,26,17,0,26,17,26,17,26,27,17,25,26,17,26,26,26,17,26,0,26,0,26,26,17,26,27,28,26,27,17,0,26,0,26,27,17,26,26,26,26,17,26,0,26,26,25,17,17,26,17,26,26,26,26,17,26,26,27,26,26,0,26,27,26,27,26,27,17,26,27,17,26,27,26,26,26,0,26,26,17,17,26,26,26,26,26,26,26,17,26,26,26,26,0,26,17,26,26,26,26,26,26,17,26,26,27,26,26,26,0,26,26,26,26,26,0,26,26,26,0,26,27,0,26,27,26,26,26,26,26,26,26,27,26,26,26,27,17,26,0,26,25,26,26,27,17,26,28,26,27,17,26,27,28,26,27,17,26,0,26,27,26,26,25,26,26,26,26,26,26,17,0,26,26,26,26,27,0,26,25,26,26,26,26,26,26,26,26,26,26,26,0,26,26,17,26,0,26,26,25,26,26,26,27,26,26,26,26,27,17,26,26,26,26,26,25,26,26,26,26,0,26,26,26,27,17,26,26,27,26,26,26,26,26,27,17,26,26,17,26,26,26,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,26,26,25,26,27,17,25,26,17,25,26,17,25,26,17,25,26,17,26,26,26,26,27,0,26,27,17,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,0,25,26,26,26,26,26,27,26,0,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,0,26,26,26,25,26,26,26,26,26,26,0,26,26,25,26,24,26,26,27,17,26,26,26,26,26,27,17,25,28,26,17,26,27,26,27,26,26,0,28,26,17,26,27,17,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,26,26,25,28,28,25,25,17,26,27,17,26,25,26,26,25,26,26,26,26,26,17,17,17,17,17,17,17,26,26,26,26,26,26,26,27,0,26,26,26,0,26,26,26,26,26,26,26,26,26,17,28,26,27,17,26,27,0,26,26,26,26,0,26,26,28,26,27,17,0,25,26,26,26,27,26,26,0,17,17,17,17,17,17,17,26,27,17,26,26,26,26,27,26,26,26,27,0,26,27,17,26,17,26,26,17,25,26,27,26,17,26,26,26,26,17,26,27,17,26,27,17,26,26,17,26,26,27,0,26,26,26,26,26,26,27,17,26,25,26,26,27,17,26,26,26,26,26,27,17,26,17,26,26,26,26,26,27,0,26,26,17,26,0,26,26,27,17,0,26,26,25,17,26,27,17,26,26,27,26,26,26,26,27,17,26,26,26,27,25,25,25,26,24,26,26,26,26,26,0,26,0,26,25,26,26,27,26,26,26,26,27,26,26,0,26,26,17,26,26,26,17,26,26,26,26,27,26,26,26,27,17,26,17,26,26,26,26,28,26,27,17,26,26,27,26,26,26,26,26,26,26,27,26,25,28,28,26,27,17,0,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,27,26,26,27,17,0,26,26,0,26,26,26,27,26,17,26,17,0,26,26,26,26,26,26,17,26,26,25,26,27,26,26,0,26,26,26,26,27,17,17,26,17,26,0,26,26,26,26,26,27,17,26,25,25,25,25,25,25,28,28,26,27,17,25,25,25,26,27,17,26,27,25,26,26,17,26,17,26,26,26,26,26,26,27,0,26,26,0,26,27,17,26,0,26,26,27,26,26,0,26,27,26,26,26,26,26,26,26,17,26,27,26,17,26,0,25,26,27,17,26,26,25,25,28,28,26,27,17,26,27,25,26,27,17,26,27,26,27,26,25,28,28,26,27,17,26,26,26,26,25,26,27,26,27,17,26,17,26,17,25,25,26,26,26,0,26,17,26,0,26,26,26,26,27,17,26,27,17,26,17,26,25,25,25,26,27,17,26,0,26,26,0,26,26,17,26,26,26,25,26,0,26,26,26,25,26,27,25,25,26,17,0,25,25,28,28,25,26,27,17,25,25,26,27,17,25,26,25,26,27,25,17,26,27,17,26,26,26,26,26,26,26,26,26,27,26,27,25,26,17,26,17,26,25,26,27,25,26,26,27,17,26,0,26,26,26,26,25,26,17,26,27,26,17,26,17,17,26,0,26,26,27,17,26,26,26,0,25,26,27,17,26,27,25,25,26,17,25,26,17,25,26,27,17,26,25,28,28,26,27,17,26,27,26,0,26,27,17,26,26,26,0,26,27,17,0,26,17,26,27,26,26,26,26,27,17,26,17,26,26,27,17,25,25,26,26,26,26,26,17,26,26,27,0,26,26,26,17,26,27,26,26,25,26,27,17,26,27,17,26,26,26,27,0,26,26,26,25,25,25,26,27,17,25,26,26,17,17,26,26,17,26,26,27,26,26,26,26,26,26,25,26,27,17,0,26,26,26,26,27,26,27,17,26,26,17,26,26,27,17,26,26,26,26,26,26,25,28,28,25,26,27,17,25,26,17,0,25,26,17,25,26,17,25,26,17,26,26,26,17,26,27,17,26,27,17,26,26,27,17,26,26,27,26,26,26,0,25,26,26,27,17,26,26,26,26,26,25,25,26,26,26,26,26,26,27,26,26,27,26,25,26,26,26,17,26,0,26,26,26,26,26,27,26,26,26,26,26,28,26,27,17,26,26,27,17,26,27,17,0,26,17,26,0,26,27,17,0,26,27,17,26,26,26,26,26,17,26,26,26,26,26,26,26,26,0,26,26,0,26,26,27,17,26,26,0,26,26,17,26,27,17,26,0,26,26,17,0,26,26,27,26,26,27,17,26,25,26,26,27,17,26,0,26,26,27,17,26,26,17,26,26,27,26,27,26,17,26,26,25,25,26,26,26,27,26,26,26,17,26,27,26,0,26,26,26,27,25,28,28,26,27,17,0,26,27,26,0,26,26,26,17,0,26,26,26,27,17,26,27,26,26,0,26,26,27,26,0,26,26,26,26,26,25,26,26,26,17,26,0,26,26,25,28,28,26,27,17,26,26,26,0,26,26,26,26,17,26,26,0,26,27,26,26,26,26,27,26,26,27,17,26,26,27,25,26,26,17,26,26,26,26,17,26,0,28,26,27,17,26,0,26,0,26,26,25,26,26,26,26,26,27,17,26,25,25,26,26,26,26,26,27,26,27,17,26,27,26,26,27,0,26,26,26,26,17,26,27,26,26,26,26,27,26,0,26,26,0,26,27,26,26,26,26,26,26,0,26,27,26,26,26,0,26,27,26,26,26,17,26,26,17,26,27,17,26,0,26,27,0,26,26,26,0,26,27,26,26,26,26,25,26,26,26,26,28,25,28,28,25,28,28,25,26,27,17,26,25,26,26,25,26,24,26,26,26,27,25,26,27,26,25,28,28,25,25,26,27,17,26,26,26,0,26,26,27,26,26,0,26,27,17,26,26,25,25,26,0,26,26,27,26,26,26,27,17,26,27,26,26,26,26,26,26,26,17,26,26,0,26,27,0,26,25,26,27,24,26,26,25,28,28,26,27,17,26,26,27,0,26,0,26,26,0,26,26,27,0,26,26,27,17,26,26,26,25,26,26,0,26,26,27,25,26,27,26,26,26,28,25,26,27,17,28,28,28,28,26,17,26,26,26,26,27,17,26,26,26,26,26,27,26,27,17,26,26,26,26,27,17,26,26,26,27,26,26,0,26,26,26,0,26,0,26,26,27,17,26,17,0,26,26,26,25,28,28,25,26,27,17,25,25,26,0,26,0,26,25,28,28,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,28,28,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,26,27,25,26,27,17,0,26,27,26,27,17,0,26,27,25,26,27,17,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,25,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,0,25,26,27,17,26,27,25,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,25,28,28,25,25,26,27,17,25,26,27,26,27,17,26,27,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,0,26,27,26,27,25,26,27,0,26,27,26,27,26,26,27,17,26,27,25,25,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,26,27,26,27,25,26,27,17,26,27,17,25,25,26,27,26,27,17,26,27,26,27,26,27,0,25,26,27,26,27,26,27,17,26,27,0,26,27,26,27,25,26,27,26,27,17,26,27,26,27,26,27,17,28,26,27,17,26,27,25,26,27,17,26,27,17,0,26,27,26,27,26,27,25,25,26,27,17,26,27,26,26,26,17,26,25,25,25,26,17,26,26,26,27,26,27,0,28,25,26,27,17,26,27,17,26,27,26,27,0,26,27,25,26,27,17,23,26,27,26,27,26,27,0,26,27,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,0,26,27,26,27,26,27,26,26,27,17,26,26,26,26,27,25,28,28,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,28,28,25,26,27,17,25,25,26,17,25,26,27,17,25,26,27,17,25,28,28,25,26,27,17,26,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,0,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,27,25,26,17,0,26,27,0,26,26,17,25,28,28,26,27,17,26,26,26,26,17,0,26,25,26,27,17,25,26,27,17,26,26,26,27,17,26,26,26,27,17,26,17,26,27,26,25,25,26,27,17,26,27,26,27,17,26,27,26,26,26,17,26,26,26,27,26,26,27,17,26,26,27,0,26,17,0,26,27,25,26,27,26,27,17,26,25,26,17,26,26,26,17,25,25,26,26,27,25,26,26,17,26,26,26,27,25,26,27,17,26,27,28,28,26,17,26,26,26,17,26,27,25,28,28,26,27,17,26,26,26,17,26,27,17,26,0,26,26,26,26,0,26,25,28,28,25,26,27,17,0,26,26,25,25,26,17,26,0,26,25,26,27,26,26,26,25,26,26,25,26,27,26,26,26,0,25,26,27,26,26,28,26,17,26,0,25,28,28,26,27,17,26,25,26,27,17,26,26,27,26,17,26,17,26,17,0,26,26,0,26,27,26,26,27,25,26,27,26,0,26,26,26,27,17,26,26,25,26,0,26,27,17,26,26,26,27,17,26,27,17,26,26,26,27,17,26,0,26,27,0,26,27,26,26,25,25,25,25,26,27,17,26,27,17,26,26,25,25,26,26,26,26,26,27,17,26,26,26,26,26,26,0,26,27,17,26,26,26,26,26,27,25,26,27,17,23,26,26,17,26,26,26,0,26,17,26,27,17,26,27,17,26,26,26,26,26,25,26,27,17,23,26,26,26,26,26,26,26,26,27,17,25,26,27,17,25,26,27,17,0,26,27,26,17,26,26,27,17,26,25,26,27,26,27,17,26,26,25,26,0,26,27,17,0,25,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,25,26,27,17,23,25,26,27,26,27,26,27,17,17,26,27,17,0,26,27,0,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,0,25,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,26,27,17,26,27,17,26,27,17,26,26,17,17,26,26,26,26,25,28,28,25,26,27,17,26,27,17,26,26,26,0,26,27,26,26,27,17,25,26,27,17,26,17,25,26,25,26,26,26,0,26,26,26,27,17,26,17,0,26,26,26,26,27,17,26,26,28,26,27,17,26,26,26,26,0,26,27,26,26,26,26,26,26,26,17,26,26,27,17,26,26,17,26,27,17,26,27,26,26,25,25,26,26,27,25,26,26,27,17,26,26,26,0,25,26,26,27,26,0,26,26,25,26,26,0,26,27,17,26,26,0,26,27,17,26,25,17,17,26,27,17,26,26,26,28,26,17,26,26,26,26,27,17,26,26,26,26,26,26,26,0,26,26,26,27,26,26,26,27,17,26,27,26,26,26,17,26,26,26,26,26,27,17,26,27,26,27,26,17,26,26,27,17,26,26,27,17,26,26,27,17,26,26,17,26,27,17,26,27,17,26,17,26,26,26,26,26,26,26,26,0,26,25,25,26,26,26,27,17,25,26,27,17,25,28,28,26,27,17,26,25,25,26,27,26,17,26,27,26,0,26,26,27,26,26,26,26,26,26,0,26,25,26,27,26,27,26,26,26,17,26,17,26,26,26,26,17,26,26,26,27,17,26,26,27,17,26,27,17,26,25,26,27,17,0,26,0,26,26,0,26,26,26,25,28,28,26,27,17,26,26,25,26,27,17,26,27,26,0,26,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,17,26,27,0,28,26,27,17,26,26,26,0,26,17,26,0,26,26,26,26,26,27,0,25,25,26,26,27,17,26,26,26,26,27,17,26,26,26,28,26,27,17,26,26,26,26,26,26,26,26,27,17,0,26,27,17,26,0,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,26,27,26,27,0,26,27,17,26,27,0,26,0,26,27,26,26,27,17,26,0,25,28,28,26,27,17,25,26,17,26,27,0,26,26,26,25,26,26,27,26,27,26,0,26,26,0,25,26,27,17,26,27,17,26,25,25,25,25,26,27,17,25,26,17,0,25,25,26,17,25,26,17,25,25,26,27,17,26,0,26,26,0,26,25,26,26,0,26,27,17,0,26,26,26,25,26,26,27,17,26,0,26,25,26,27,26,25,26,26,26,25,26,27,24,26,0,26,27,17,25,26,26,27,26,26,26,27,17,26,26,26,26,26,26,0,26,0,26,26,26,26,26,26,27,26,26,26,27,26,27,26,27,17,26,27,17,26,26,27,25,26,27,26,26,26,0,26,26,27,17,26,28,26,27,17,26,17,26,17,0,26,0,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,25,26,27,25,26,27,26,27,24,26,27,26,27,26,27,26,27,17,26,27,25,26,26,27,0,26,27,0,26,27,0,26,27,17,0,26,27,25,25,25,25,26,27,17,25,25,25,26,27,24,25,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,24,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,17,26,26,27,28,26,27,17,26,27,26,26,0,26,27,17,26,26,26,26,26,0,26,27,26,27,17,26,25,25,25,28,28,26,27,17,26,26,0,26,27,0,26,26,26,26,26,26,26,26,26,26,26,26,25,26,27,17,26,27,17,0,17,26,27,17,26,27,26,27,26,27,26,0,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,28,25,25,26,27,17,26,27,17,26,27,17,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,28,26,27,17,26,27,26,26,28,25,26,17,26,27,17,25,17,25,28,26,17,26,0,26,26,27,17,25,26,27,26,27,26,27,0,26,27,17,0,28,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,25,26,27,23,17,17,26,27,26,27,26,27,26,27,26,27,17,25,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,25,28,28,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,26,27,25,26,27,26,27,0,26,27,17,26,27,26,27,26,27,17,25,17,26,27,26,27,26,27,0,26,27,17,28,28,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,17,26,27,17,17,26,27,0,26,27,17,26,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,0,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,17,0,26,27,26,27,26,27,26,26,27,26,27,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,25,28,28,25,26,27,17,25,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,0,26,27,17,0,26,27,17,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,17,17,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,0,26,27,17,25,28,28,25,28,28,25,25,26,27,17,25,26,27,0,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,26,26,26,26,26,26,27,26,0,25,28,28,26,27,17,26,26,26,27,17,26,25,25,26,27,17,25,26,17,26,25,25,26,27,17,26,26,26,26,26,27,0,26,26,0,26,27,26,26,26,26,0,25,28,28,26,27,17,26,27,25,26,27,26,26,0,26,0,26,25,26,27,26,26,0,26,26,0,26,26,25,26,27,26,26,25,28,28,26,27,17,26,26,25,25,26,27,25,26,27,17,26,27,17,26,26,27,17,25,28,28,25,26,27,17,26,27,17,26,26,26,27,26,25,25,28,28,25,25,26,27,17,25,26,27,0,25,26,27,17,25,25,26,27,26,27,0,28,26,27,17,0,25,25,25,26,27,25,26,27,17,26,27,26,27,26,27,25,26,27,17,0,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,25,26,27,24,26,27,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,28,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,25,26,27,26,27,26,26,26,26,26,27,26,26,27,26,25,26,17,26,26,26,26,25,25,25,25,26,27,17,23,25,25,26,27,17,25,26,17,25,26,17,25,26,27,17,25,26,17,0,25,26,27,17,26,17,26,26,26,26,27,26,0,26,26,26,27,26,26,26,26,26,26,26,26,0,26,27,26,26,27,0,25,26,24,26,27,26,26,26,0,26,26,26,25,26,27,26,26,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,25,28,28,26,27,17,26,26,26,26,25,25,25,25,26,27,17,0,25,26,26,17,0,26,26,26,26,26,26,26,26,26,26,27,26,26,25,26,27,26,27,26,26,26,26,26,28,26,27,17,26,26,27,26,26,17,26,27,26,26,26,27,26,0,26,27,17,26,28,26,27,17,26,26,26,26,25,25,25,26,27,17,26,26,27,17,26,27,25,26,26,26,27,26,25,26,27,17,26,25,26,27,26,26,26,25,28,28,26,27,26,17,26,26,27,26,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,25,26,27,26,27,17,26,27,17,26,27,26,27,26,26,26,26,26,27,17,0,26,26,0,26,0,26,26,26,17,26,27,17,26,27,26,26,26,26,27,17,0,17,26,26,27,17,26,26,26,26,26,26,26,27,17,26,27,26,26,27,17,25,26,27,26,26,26,27,17,0,26,26,26,26,26,27,26,26,27,17,0,26,0,26,26,27,17,26,0,26,26,27,17,26,26,26,26,26,26,26,17,26,26,27,17,26,26,27,26,26,26,0,26,26,27,17,26,25,26,27,0,28,26,27,17,26,26,0,26,0,26,27,17,26,26,0,26,26,0,26,27,17,26,26,27,17,26,27,17,26,0,28,25,25,26,27,17,26,26,26,26,27,17,26,17,26,26,26,26,26,26,27,17,26,26,26,26,26,0,26,26,27,17,26,26,17,26,26,26,26,27,17,0,25,26,26,26,26,17,26,28,26,27,17,0,26,27,17,25,26,27,17,26,26,26,0,26,28,26,27,17,0,26,26,26,26,27,28,25,25,25,26,27,17,26,26,27,17,25,26,17,26,26,26,17,25,26,17,25,26,26,0,25,26,17,26,25,26,17,26,27,17,26,26,26,26,26,26,0,26,26,27,17,26,27,17,26,27,26,26,26,26,17,26,27,17,0,26,26,26,27,26,26,26,26,0,26,26,26,26,26,26,26,26,28,26,27,17,17,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,0,26,26,26,27,26,26,26,26,27,26,27,26,0,26,27,26,27,26,26,26,26,26,26,26,26,27,17,0,26,26,0,26,27,26,26,26,26,26,26,27,26,26,25,26,26,26,26,0,26,26,26,25,26,26,26,26,26,26,26,26,27,17,26,26,26,28,26,27,17,26,27,17,26,26,27,17,26,26,27,17,0,26,0,26,26,27,26,26,27,17,26,26,17,0,26,26,26,26,0,26,27,17,26,26,26,26,26,26,26,24,26,26,26,26,0,26,26,26,26,0,26,26,27,26,26,26,27,26,26,27,17,26,26,26,26,25,26,24,26,27,17,26,0,26,26,26,27,0,26,27,17,28,26,17,26,26,27,26,26,27,17,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,0,26,26,26,26,26,26,27,17,0,26,26,26,26,26,27,26,26,26,26,27,0,26,26,27,26,26,26,26,26,26,26,0,26,27,26,26,17,26,26,26,26,26,26,26,27,26,26,26,26,26,0,26,27,26,27,26,28,26,27,17,26,27,26,26,27,17,26,26,26,26,26,27,26,26,26,26,26,27,26,26,26,26,27,17,26,27,26,26,26,26,26,26,25,26,26,26,26,27,0,26,26,26,17,26,26,26,0,26,26,26,26,26,26,26,26,26,25,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,27,17,26,0,26,26,26,26,0,26,26,26,26,26,27,17,0,26,26,26,26,27,17,0,26,25,26,26,26,26,26,26,26,26,26,26,27,26,0,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,26,26,27,26,0,26,26,26,0,26,26,26,0,26,0,26,27,17,26,25,26,27,17,26,26,26,26,17,26,26,27,26,26,26,27,26,26,26,27,17,26,26,26,0,26,0,28,26,27,17,26,0,26,26,26,26,17,26,26,26,26,26,26,25,26,27,26,26,0,26,27,17,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,17,26,26,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,26,26,27,26,0,26,26,27,17,26,26,27,26,26,26,17,26,26,0,26,17,26,26,26,27,17,26,26,26,0,26,26,26,27,26,26,26,26,25,26,26,26,26,25,26,27,17,26,0,26,17,26,25,26,26,27,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,26,0,26,25,26,26,26,28,26,27,17,25,25,26,27,17,26,27,17,26,26,26,26,0,26,25,17,25,26,17,0,26,26,26,26,26,17,26,26,26,26,0,26,26,27,26,0,26,26,27,26,26,27,26,26,17,26,26,26,26,26,26,26,26,27,17,0,26,26,0,26,26,26,27,0,26,26,0,26,27,17,25,26,26,26,26,0,26,25,28,28,28,28,28,26,17,26,26,0,26,26,26,27,26,26,26,27,17,26,0,26,26,26,26,0,26,27,26,27,26,26,17,26,17,26,26,27,17,26,0,26,26,26,25,26,26,26,26,27,26,27,26,26,26,26,26,17,26,27,26,26,27,26,27,26,26,26,27,26,26,26,26,26,26,26,27,17,26,27,26,26,27,26,26,27,17,26,26,27,26,26,26,26,26,26,26,27,17,17,26,17,26,26,27,17,0,26,26,26,26,26,26,0,26,0,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,25,25,26,27,17,26,27,26,17,17,26,0,26,26,26,26,26,26,26,26,26,26,0,26,25,25,25,25,26,27,17,28,26,27,17,0,26,0,26,26,26,27,26,26,26,26,26,26,27,26,26,26,26,26,17,0,26,0,17,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,25,26,26,26,0,26,27,26,0,26,26,26,26,26,26,26,26,26,17,17,26,17,17,26,17,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,17,17,26,0,17,17,26,26,27,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,0,26,0,26,26,26,26,26,26,26,0,26,27,26,27,0,26,26,26,17,26,26,26,27,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,26,27,26,26,26,26,26,26,26,17,17,26,25,26,26,27,0,26,26,26,26,27,26,26,26,17,26,27,17,26,26,26,26,25,25,25,26,27,24,26,26,26,17,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,17,17,26,27,26,0,26,27,26,26,26,27,17,26,26,26,26,26,27,26,0,26,27,17,26,26,26,27,17,26,26,26,27,26,27,17,0,26,26,26,26,26,26,26,26,26,27,17,26,27,26,26,26,27,0,26,27,17,26,26,26,26,26,27,26,27,17,26,17,0,26,26,17,26,26,26,26,26,27,26,26,26,26,26,26,27,26,0,26,26,26,27,26,26,26,17,26,26,0,26,26,26,26,27,17,28,26,27,17,0,26,26,26,26,27,26,27,26,26,26,0,26,26,26,26,0,25,17,25,26,17,26,26,26,17,0,26,26,17,26,26,26,26,26,26,27,26,26,27,17,26,27,26,26,26,26,26,26,26,26,26,27,26,26,26,27,26,17,26,26,26,27,26,27,17,26,17,26,26,0,26,25,28,28,26,27,17,25,25,26,26,27,26,26,26,27,17,0,26,26,26,27,26,26,26,0,26,0,26,0,26,26,26,27,26,26,26,27,26,26,26,26,26,26,26,17,26,26,0,26,26,26,27,17,26,28,26,27,17,26,17,26,26,26,26,26,17,26,26,26,26,26,26,0,26,26,26,27,26,26,26,26,26,27,17,26,26,26,27,17,26,27,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,27,26,26,26,26,25,26,27,26,27,17,26,26,26,26,26,28,26,27,17,26,26,0,26,17,26,27,26,26,26,26,26,26,26,26,27,0,28,26,27,17,26,26,17,0,26,26,26,26,26,26,27,17,26,25,26,17,25,28,28,26,27,17,26,26,26,26,0,26,26,27,26,26,26,0,26,26,26,26,26,27,17,26,26,26,26,26,25,25,28,28,25,26,27,17,25,25,26,27,17,25,26,17,25,26,17,25,26,27,17,26,26,0,26,26,26,26,26,0,26,26,26,25,28,28,26,27,17,0,26,27,17,25,26,27,24,0,26,26,26,26,0,26,26,26,27,26,0,26,26,26,25,28,28,26,27,17,26,27,17,26,26,25,26,26,27,26,26,27,17,0,26,27,26,27,17,26,26,27,26,28,26,17,0,26,26,26,27,26,27,17,26,27,17,26,26,17,26,27,17,26,26,26,27,26,25,25,25,28,28,26,27,17,26,27,26,0,26,27,26,0,26,0,26,0,26,27,17,0,26,0,26,26,26,0,26,26,26,26,27,26,27,17,26,26,27,26,25,26,26,27,17,0,26,26,26,25,25,28,28,26,27,17,0,26,26,26,26,26,26,0,25,28,28,25,25,25,28,28,26,27,17,0,25,26,27,17,26,26,27,26,0,26,0,26,26,27,0,26,26,26,26,27,17,26,26,27,0,26,27,26,26,26,25,26,27,17,25,25,28,28,26,27,17,0,26,26,27,17,26,26,25,28,28,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,17,0,26,27,17,26,27,28,26,27,17,26,27,26,27,26,27,26,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,25,26,27,26,27,0,26,27,26,27,25,28,28,25,26,27,17,26,26,27,26,27,0,26,27,25,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,25,26,27,26,27,17,26,27,0,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,17,26,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,25,28,28,25,25,25,26,27,17,0,25,26,27,17,24,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,25,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,25,25,25,26,27,17,26,27,17,25,25,26,27,26,25,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,26,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,0,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,28,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,0,25,25,26,26,27,26,27,26,27,25,26,27,17,0,28,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,0,25,26,27,0,26,27,26,27,26,27,26,27,28,28,28,26,27,17,0,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,25,25,26,27,26,27,26,27,26,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,26,25,25,28,28,26,17,26,17,25,17,26,25,25,26,26,26,26,26,25,26,27,0,26,26,27,17,26,26,27,26,27,17,26,27,17,26,0,26,26,17,26,17,26,26,0,26,26,26,27,17,26,26,26,17,26,26,26,26,25,26,26,25,26,25,26,27,26,27,17,0,26,27,17,26,26,26,26,26,26,26,17,17,26,27,17,26,0,28,26,27,17,26,26,25,26,17,24,25,26,26,25,26,26,26,26,26,26,25,25,25,28,28,25,26,27,17,26,0,26,26,26,25,26,25,26,26,27,25,26,27,17,26,25,26,27,17,26,27,17,26,26,25,26,25,25,25,26,27,17,26,26,26,26,0,26,27,25,26,26,27,17,26,26,26,26,25,26,17,28,28,28,26,17,26,26,26,26,25,26,17,0,17,26,27,17,26,27,26,25,25,28,28,26,27,17,26,27,25,25,26,27,26,27,26,27,26,27,25,26,27,25,26,27,0,26,27,17,0,25,26,27,17,26,27,28,26,27,17,26,27,26,27,26,27,17,0,25,25,26,27,26,17,25,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,26,26,26,26,17,26,26,27,26,0,26,17,0,26,26,26,26,27,25,26,27,26,27,17,25,26,26,26,27,25,28,28,26,27,17,25,26,25,25,25,26,27,17,26,27,26,26,25,26,17,25,26,25,26,27,26,27,26,27,17,26,27,17,26,26,27,17,0,25,26,27,17,26,27,26,26,26,17,25,26,27,26,25,26,27,26,25,17,26,27,17,26,26,25,26,27,26,27,26,25,25,26,27,25,28,28,26,27,17,25,26,27,26,27,25,26,27,25,26,27,17,0,26,25,26,27,26,27,17,25,26,27,26,26,27,17,25,28,28,26,27,17,0,25,26,27,17,26,25,26,27,17,25,25,25,25,25,26,17,17,26,17,26,25,26,0,25,26,27,25,26,27,26,0,26,25,26,27,26,17,25,26,27,26,26,26,27,17,25,26,27,25,28,28,26,27,17,25,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,25,25,25,28,28,26,27,17,25,26,27,26,27,26,27,17,26,27,25,25,26,27,26,27,25,26,27,17,26,27,25,25,26,27,24,25,17,25,26,27,17,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,0,25,26,27,25,26,27,17,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,25,17,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,17,26,27,0,25,26,27,17,25,26,27,17,26,27,0,25,25,26,27,17,25,25,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,26,27,26,27,26,27,26,27,25,25,26,27,26,27,17,0,25,26,27,17,26,27,0,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,25,26,27,26,27,0,26,27,26,27,0,25,25,26,27,17,0,26,27,26,27,26,27,17,26,27,17,26,27,25,17,25,26,27,17,25,26,27,17,0,26,27,26,27,17,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,17,26,27,25,26,27,17,26,27,25,26,27,25,26,27,0,26,27,26,27,26,27,17,25,25,28,28,25,25,26,27,17,26,27,25,25,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,26,27,0,26,27,26,27,17,26,27,0,26,27,0,17,26,27,17,25,25,26,27,26,27,26,27,26,26,27,0,25,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,0,26,27,25,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,25,26,27,25,26,27,17,0,25,26,27,17,26,27,26,27,0,25,26,27,0,25,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,17,0,26,26,27,26,27,0,26,27,17,26,27,26,27,26,27,25,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,25,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,25,26,27,17,25,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,0,25,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,25,26,27,26,27,0,26,27,26,27,26,27,26,27,25,25,25,25,26,27,17,25,28,28,26,27,17,26,17,26,27,25,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,17,26,27,17,26,27,26,27,17,25,26,27,17,26,27,0,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,17,26,27,0,26,27,25,28,28,26,27,17,26,27,17,17,26,27,17,26,17,17,26,27,17,26,27,26,27,26,27,17,25,26,26,27,0,25,26,27,17,26,27,26,27,17,26,27,17,28,25,25,26,27,17,26,27,17,25,28,28,26,27,17,26,26,27,25,26,27,26,17,26,27,25,25,26,27,26,27,0,26,27,17,26,27,26,27,0,26,27,17,25,26,27,17,25,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,26,27,26,27,17,26,27,25,26,27,17,26,27,25,25,28,28,26,27,17,26,27,26,27,17,0,26,27,26,17,26,27,26,26,26,17,0,26,26,0,26,27,25,26,27,17,25,26,27,17,26,27,17,26,27,26,17,26,27,26,27,26,27,26,26,26,25,26,28,25,28,28,26,27,17,26,17,26,27,26,26,26,26,27,26,25,26,27,17,26,26,26,25,26,27,17,26,25,25,26,27,17,17,17,26,17,25,25,26,26,27,17,0,25,25,25,28,28,25,26,27,17,26,27,25,25,26,17,0,26,17,26,26,26,27,26,26,26,27,17,26,26,0,26,25,28,28,26,27,17,26,27,17,26,26,26,26,26,26,26,27,17,26,0,28,26,27,17,26,25,26,27,26,25,26,26,26,27,17,26,17,25,25,25,25,25,26,27,17,24,25,26,27,17,0,26,26,26,26,25,26,28,26,17,17,17,26,17,26,27,26,26,26,25,26,25,28,28,26,27,17,26,27,26,25,26,27,17,26,26,26,26,26,26,27,17,26,26,25,28,28,26,27,17,26,26,26,27,26,27,26,26,26,25,26,27,17,26,27,0,26,27,25,25,26,27,25,26,27,17,26,27,17,17,26,27,26,27,26,25,28,28,26,27,17,26,27,26,27,25,26,27,25,25,26,27,17,26,27,28,26,27,17,25,25,25,25,28,28,26,27,17,0,26,27,26,27,26,27,0,26,27,25,26,27,25,28,28,26,27,17,25,26,27,26,27,26,27,17,26,27,26,27,0,26,27,17,0,26,27,0,25,26,27,26,27,17,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,17,0,26,27,26,27,0,26,27,25,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,0,26,27,25,25,26,27,17,17,17,26,27,17,26,27,26,27,0,26,27,26,27,26,27,25,28,28,26,27,17,0,17,17,17,17,26,27,17,26,27,0,26,27,26,27,26,27,0,25,26,27,17,26,27,17,26,26,27,17,26,0,25,26,27,25,28,25,26,27,17,0,26,27,26,27,25,25,17,26,27,17,26,27,26,27,0,17,17,17,17,17,17,17,26,27,0,25,25,25,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,17,26,27,25,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,17,0,26,25,26,27,26,0,17,26,17,25,26,27,24,0,25,26,25,17,26,26,26,27,17,26,26,26,25,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,25,25,25,25,25,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,25,26,27,26,27,26,27,28,25,25,26,27,17,0,25,26,27,26,27,26,27,25,25,26,27,26,27,0,28,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,26,27,17,26,27,25,25,25,26,25,26,26,17,26,25,26,27,0,26,26,26,27,17,26,27,25,28,28,26,27,17,26,27,17,0,25,26,27,25,26,27,26,27,0,26,27,17,25,26,27,26,27,17,26,27,25,25,26,27,26,27,25,26,27,0,17,17,26,27,26,27,26,27,26,27,17,17,17,25,25,26,27,26,27,17,26,27,25,26,27,26,26,27,26,27,17,25,26,27,17,26,27,17,25,26,27,17,26,27,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,17,0,25,28,28,26,27,17,0,26,27,26,27,25,26,27,25,26,27,26,27,26,27,25,26,27,17,17,17,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,17,0,25,26,27,25,25,26,27,17,26,27,26,27,17,25,26,27,17,26,27,0,26,27,26,27,17,28,25,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,25,28,28,25,26,27,17,25,28,28,26,27,17,26,27,25,26,27,0,26,27,17,25,26,27,26,27,25,26,27,26,27,26,27,17,0,26,27,26,27,25,28,28,26,27,17,26,27,25,26,27,26,27,26,27,26,27,0,26,27,26,27,25,26,27,25,26,27,0,26,27,26,27,25,26,27,26,27,26,27,17,17,26,27,17,25,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,25,26,27,25,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,26,27,25,25,26,27,17,25,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,0,26,27,17,26,27,17,25,25,26,27,17,26,27,17,25,28,28,25,26,27,17,26,27,17,26,25,25,26,27,26,27,26,27,0,17,17,26,27,17,17,25,26,27,26,27,17,17,26,27,17,26,27,26,27,17,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,17,26,27,25,25,25,26,27,17,24,25,25,26,27,17,26,27,26,27,26,27,26,27,17,17,17,26,27,26,27,25,26,27,26,27,25,25,28,28,26,27,17,26,27,25,26,27,26,27,17,26,27,17,25,26,27,0,26,27,26,27,0,25,26,27,26,27,0,17,26,27,26,27,17,25,26,27,17,17,26,27,25,26,0,26,27,26,27,17,28,26,27,17,0,25,26,27,17,25,26,27,25,25,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,25,26,27,17,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,25,26,25,26,27,26,27,26,27,25,26,27,26,27,17,0,26,27,25,25,26,27,26,27,0,25,25,28,28,28,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,26,27,17,26,26,27,17,26,27,17,17,26,27,26,27,25,26,27,26,27,26,27,0,26,27,17,0,26,27,17,26,27,26,27,25,26,27,17,26,27,17,25,26,27,17,25,28,28,26,27,17,26,27,26,27,17,26,27,17,25,25,26,27,26,27,26,27,25,28,28,25,26,27,17,26,27,17,25,25,25,26,27,17,0,25,26,27,17,25,25,25,26,27,26,27,26,27,17,25,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,17,25,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,17,26,27,25,28,28,26,27,17,26,27,25,26,27,25,26,27,17,0,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,25,17,17,17,17,17,17,17,25,26,27,17,0,26,26,27,17,25,25,26,27,0,26,27,26,27,25,25,25,25,25,25,26,27,17,26,27,25,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,0,17,26,27,0,26,27,25,28,28,25,25,25,25,28,28,26,27,17,26,26,26,27,26,17,26,26,26,26,17,26,26,26,17,26,17,26,17,26,17,26,27,17,25,25,25,26,17,24,25,25,25,26,27,17,26,26,26,17,0,26,25,26,26,26,0,26,26,27,26,17,17,26,17,25,26,27,17,25,25,26,27,17,26,26,26,26,26,26,17,26,26,27,26,25,26,24,28,26,27,17,26,27,26,26,17,0,26,26,27,17,26,26,17,0,26,26,26,0,26,26,26,25,25,26,26,26,26,0,26,27,26,27,17,26,17,26,26,26,17,26,26,26,26,26,26,27,17,26,26,17,0,26,27,17,25,26,27,17,26,26,17,26,26,26,26,17,0,26,26,26,0,26,27,17,26,26,26,26,26,26,27,26,26,27,17,26,26,26,17,26,17,26,27,17,26,27,17,26,27,17,0,26,17,26,17,26,25,26,26,17,26,26,26,27,17,26,27,17,26,26,27,17,26,26,26,27,26,26,0,26,27,17,26,26,26,25,26,27,17,26,26,17,17,26,17,26,17,17,25,25,25,28,28,26,27,17,26,25,28,28,26,27,17,26,27,17,0,25,25,25,26,27,17,0,25,25,26,27,25,26,27,26,17,26,26,17,26,26,27,17,26,27,17,26,27,26,26,26,26,26,26,26,27,0,26,17,26,26,17,26,27,17,26,25,26,26,17,26,27,26,27,17,26,26,17,17,26,17,25,25,26,27,17,26,26,26,26,0,25,26,27,17,26,27,17,26,27,17,25,26,27,25,25,26,27,17,26,26,26,26,0,25,28,28,26,27,17,26,26,27,17,26,0,26,0,26,0,26,26,27,26,26,0,26,26,17,17,17,26,26,17,26,27,26,26,17,26,27,17,26,27,17,26,25,28,28,26,27,17,17,26,26,26,17,0,26,27,17,25,28,28,26,27,17,26,26,26,25,26,27,0,26,26,26,27,26,0,26,25,28,28,26,27,17,26,17,25,25,25,26,27,17,26,27,26,26,17,26,17,25,26,26,26,26,26,26,26,17,26,0,26,26,26,26,26,26,26,26,27,26,27,26,26,17,26,26,25,26,27,26,17,26,26,26,26,26,0,26,27,26,26,27,26,26,26,26,25,26,27,17,26,0,26,26,27,17,26,26,0,26,26,26,26,27,26,25,26,27,17,26,0,25,25,25,25,26,27,17,25,26,26,26,26,26,26,26,26,0,26,26,27,26,27,26,0,26,27,17,26,17,26,0,26,26,26,27,17,26,26,26,26,27,25,25,25,26,27,17,25,25,26,17,25,26,17,0,25,25,25,26,17,25,26,17,26,0,26,25,17,17,26,27,17,26,26,27,17,26,25,26,17,26,25,25,26,27,17,26,0,26,27,17,0,26,26,26,27,17,0,26,27,17,26,26,26,26,26,26,17,26,0,26,27,17,26,27,26,0,26,26,17,26,27,17,26,26,27,17,26,17,0,26,26,26,26,25,26,17,26,27,17,26,26,17,26,26,26,0,25,28,28,26,27,17,25,17,26,0,26,26,0,26,27,17,26,26,17,26,26,26,27,26,0,25,26,24,26,26,27,17,26,26,0,26,17,26,0,26,27,17,26,27,26,17,26,27,26,25,25,25,28,28,26,27,17,26,26,26,27,0,26,26,27,26,26,26,26,27,17,26,0,26,26,26,17,26,26,26,26,17,26,25,26,27,17,26,25,28,28,26,27,17,26,26,26,26,26,26,26,25,26,27,17,26,27,17,26,26,17,26,17,26,27,17,26,26,26,25,26,27,26,26,25,25,25,25,26,27,17,0,26,26,0,26,26,0,26,26,25,26,27,17,26,26,25,25,26,27,17,26,26,26,27,26,26,26,17,26,26,26,26,27,17,26,27,26,26,26,27,17,26,0,26,26,26,27,17,0,26,26,26,26,17,26,26,26,28,25,26,17,26,26,26,0,26,26,25,26,27,26,27,0,26,26,17,0,26,26,26,27,17,26,27,26,26,26,27,17,26,26,26,26,27,17,0,17,26,17,26,26,26,27,17,26,26,26,25,26,27,17,26,26,27,25,26,27,26,17,26,26,0,26,27,26,17,26,26,25,28,28,26,27,17,26,27,17,25,26,0,26,26,26,0,17,25,28,28,17,26,27,17,26,0,26,17,17,26,17,26,0,26,26,0,26,27,17,26,25,26,27,17,26,26,27,17,26,26,26,26,26,26,26,27,17,26,27,17,25,26,17,26,26,26,0,26,26,26,25,26,27,17,26,27,17,26,27,25,26,27,17,26,17,26,26,26,0,26,25,28,28,26,27,17,26,26,25,25,25,26,24,26,26,26,27,17,0,26,26,0,25,26,27,17,26,27,26,27,17,0,26,27,17,26,26,26,27,17,26,26,27,17,26,26,17,26,0,26,26,17,26,27,17,26,26,25,25,25,25,26,27,17,26,17,25,26,27,26,26,26,0,26,26,0,26,0,26,26,26,26,26,26,27,26,26,26,17,26,26,26,26,27,26,26,26,17,26,27,26,25,25,25,25,26,27,17,26,0,26,26,27,26,26,27,17,26,26,26,26,26,27,17,26,26,26,26,25,26,27,17,0,26,27,26,26,26,17,0,26,26,26,26,0,26,26,26,26,26,27,26,26,26,17,26,27,26,26,26,26,26,26,26,26,0,26,0,28,26,27,17,26,0,26,26,0,26,26,26,26,26,27,17,26,27,26,27,0,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,26,26,26,26,26,26,26,27,26,26,27,17,26,26,0,26,26,26,26,26,26,26,0,26,17,17,26,26,0,26,0,26,27,17,28,26,27,17,26,26,26,26,26,27,17,0,26,26,0,26,26,0,26,27,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,17,26,26,27,17,26,26,26,27,17,26,26,0,26,26,27,26,17,26,26,26,28,26,27,17,26,26,26,17,26,26,26,0,26,27,17,26,27,17,0,26,27,26,26,27,26,26,27,26,26,0,26,26,27,17,26,26,26,26,27,17,0,26,27,17,26,26,27,28,26,27,17,0,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,26,27,17,26,0,26,26,26,27,17,26,26,26,26,0,26,26,26,26,26,26,26,26,27,17,26,17,26,27,17,26,26,27,26,27,17,26,26,27,26,26,26,26,27,26,27,17,25,28,28,26,27,26,17,26,26,26,26,26,26,27,17,26,26,26,26,26,0,26,26,28,26,27,17,26,0,26,26,26,17,26,27,26,27,17,26,26,26,26,26,27,17,0,26,27,17,26,26,0,26,26,26,27,0,25,25,26,27,17,26,0,26,27,17,25,25,26,27,17,28,26,27,17,26,26,17,26,17,26,26,27,17,0,26,27,17,26,0,26,26,26,27,17,26,26,27,0,26,27,17,0,26,17,0,26,0,26,26,27,17,26,26,26,26,27,17,17,26,27,26,27,0,26,27,17,26,27,26,27,0,26,27,0,26,27,25,26,27,0,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,26,17,26,26,26,27,26,26,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,0,26,27,26,26,27,17,0,26,26,27,17,26,27,17,0,26,26,27,26,26,26,26,26,26,26,26,27,26,27,17,26,17,26,25,25,25,26,27,17,24,26,26,26,26,26,26,26,26,26,26,26,27,26,0,26,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,0,26,26,26,26,27,17,26,26,26,27,17,0,26,26,26,26,27,17,26,26,27,17,26,26,27,17,26,26,17,26,27,17,26,26,26,26,26,0,28,26,27,17,26,0,26,26,0,26,17,26,26,0,26,26,0,26,26,26,26,25,26,24,28,26,27,17,26,26,26,26,0,26,17,17,17,26,26,26,27,26,26,26,26,27,17,26,28,26,27,17,26,26,27,17,26,27,26,26,27,26,0,26,17,26,26,26,27,26,26,27,17,26,26,27,17,26,26,27,17,26,26,26,26,26,27,26,27,26,26,26,26,26,26,26,0,26,17,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,27,17,26,26,25,26,27,17,26,26,27,26,26,0,26,0,26,26,26,26,17,17,26,25,26,27,17,26,0,26,27,26,27,17,26,26,26,0,26,26,0,26,26,27,17,26,27,26,26,28,26,27,17,26,0,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,17,26,27,17,26,26,27,17,26,26,26,27,26,26,0,26,0,26,26,26,27,17,26,26,26,17,26,26,26,0,26,26,26,27,26,26,26,26,25,26,26,26,27,17,26,0,28,26,27,17,26,27,17,26,26,27,26,26,26,26,26,0,26,26,0,26,17,25,25,26,27,17,26,26,0,26,26,26,26,27,17,26,26,27,17,26,25,26,24,26,0,26,26,26,26,26,27,26,25,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,0,25,25,25,26,27,17,24,26,26,17,26,26,26,26,26,26,26,26,26,26,27,17,26,26,17,26,27,26,26,26,27,17,26,27,17,26,27,0,26,27,26,28,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,26,17,26,26,25,25,26,26,26,26,25,25,26,0,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,17,26,26,26,26,26,26,26,26,27,17,26,26,26,27,26,26,27,17,26,17,26,27,26,0,26,27,26,26,26,17,17,17,26,26,26,17,26,26,26,27,26,25,26,27,24,26,26,26,26,26,26,26,27,17,26,26,26,26,28,26,27,17,26,26,26,26,26,26,27,26,26,27,17,26,26,26,26,26,27,17,26,26,0,26,26,26,0,26,26,27,17,26,0,26,26,26,26,27,17,26,26,0,26,26,26,26,26,26,26,26,26,26,27,17,26,27,0,26,26,26,27,0,26,0,26,26,26,27,26,26,26,0,25,26,0,26,26,26,26,26,27,0,17,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,25,26,27,17,26,17,26,27,26,17,25,28,28,25,26,27,17,26,27,26,26,26,0,26,26,26,26,17,17,26,26,26,0,26,26,26,27,17,26,26,0,26,26,0,25,25,25,25,26,27,17,26,27,26,0,26,26,27,26,26,26,26,27,26,26,26,27,17,0,26,26,26,0,26,27,26,26,25,28,28,26,27,17,26,25,26,27,26,27,17,26,27,26,25,26,27,26,26,26,27,26,0,26,26,27,17,25,25,26,27,17,26,17,28,25,28,28,25,26,27,17,26,26,27,0,26,25,26,27,26,26,25,26,26,26,26,26,26,26,26,26,26,0,26,26,25,26,27,26,28,26,27,17,26,26,27,26,27,26,26,26,26,26,26,26,0,25,26,27,0,25,26,27,26,26,27,17,26,26,27,26,25,26,27,26,27,17,28,26,27,17,26,25,25,26,27,17,26,27,17,25,26,27,26,26,26,26,25,28,28,26,27,17,26,26,27,17,25,28,28,25,26,27,17,26,26,27,25,26,27,26,25,26,27,26,26,26,25,26,27,26,26,25,26,27,26,0,26,0,26,27,26,26,25,26,27,25,25,26,27,25,26,27,26,0,26,25,26,27,26,26,27,26,26,25,26,27,26,26,27,26,26,26,25,26,27,26,25,26,17,26,26,27,17,26,27,25,26,27,0,26,26,27,17,26,27,26,26,27,17,26,26,27,17,26,26,26,27,17,26,0,26,26,0,26,26,26,26,25,25,25,25,25,25,26,27,17,26,27,0,26,0,26,0,26,25,26,27,26,27,26,27,25,28,28,26,27,17,26,27,25,26,27,26,27,25,26,27,26,27,0,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,25,26,27,25,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,26,27,25,25,25,26,27,24,25,26,27,26,27,25,26,27,0,26,27,25,26,27,26,27,25,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,26,27,0,26,27,26,27,26,27,28,26,27,17,25,26,27,0,26,27,0,26,27,0,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,25,28,28,26,27,17,0,26,27,0,26,27,17,26,27,17,0,25,26,27,26,27,0,25,26,27,0,25,26,27,17,25,26,27,26,27,25,26,27,26,27,17,26,27,26,27,25,26,27,26,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,17,17,26,17,26,27,17,0,26,27,26,27,25,26,27,17,25,26,27,0,25,28,28,26,27,17,25,26,27,25,26,27,17,26,27,25,25,25,25,26,27,17,25,25,25,26,27,17,25,26,27,25,28,28,25,26,27,17,25,25,26,27,26,27,26,27,26,27,25,25,26,27,17,25,26,27,26,27,0,26,27,26,27,0,25,25,25,26,27,24,25,25,26,27,26,27,17,26,27,17,26,27,26,27,0,26,26,27,25,26,27,26,27,17,26,27,26,25,25,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,25,26,27,26,27,0,26,27,25,26,27,0,26,27,17,25,25,26,27,0,25,26,27,26,27,25,26,27,0,26,27,17,26,27,25,26,27,17,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,26,27,26,17,26,26,26,26,26,27,0,26,27,17,26,26,26,17,26,25,26,27,0,26,26,25,26,27,26,25,25,26,27,26,26,26,26,27,17,26,25,26,27,17,17,26,26,0,26,26,27,17,26,26,28,26,27,17,0,26,27,17,26,26,0,26,26,0,26,26,26,26,27,25,26,0,26,17,26,26,17,26,27,0,28,26,17,25,26,27,17,26,26,25,25,26,27,26,0,25,26,27,26,26,26,26,26,0,25,26,27,17,26,26,25,26,26,26,26,26,26,25,25,25,26,24,0,26,27,17,26,26,26,0,26,26,27,17,26,26,26,27,17,26,27,26,27,17,26,26,26,27,26,27,26,27,25,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,25,26,27,26,27,25,25,25,25,26,27,17,26,27,26,27,17,25,26,27,26,27,26,26,17,26,26,26,26,26,25,26,26,26,26,26,0,26,26,27,26,27,26,26,26,26,26,26,26,26,26,26,26,27,17,26,25,26,27,17,23,0,26,25,26,27,17,26,26,17,0,26,25,25,25,25,26,26,27,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,17,26,25,26,24,26,25,28,28,26,27,17,0,26,27,17,26,26,27,17,26,27,26,26,26,0,25,25,25,28,28,26,27,17,26,0,26,17,25,26,27,26,26,26,27,0,26,0,26,27,0,26,26,26,26,26,25,26,27,17,23,26,26,26,17,0,26,26,27,25,26,27,17,26,27,26,26,26,26,27,26,26,26,26,27,26,26,27,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,25,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,0,26,27,17,17,28,28,28,28,28,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,25,25,26,0,26,27,25,25,25,25,25,26,27,17,0,25,26,27,26,27,17,26,27,26,27,17,26,27,25,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,25,26,27,0,26,27,26,27,0,26,27,17,25,26,27,24,26,27,26,27,17,26,27,17,0,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,26,26,26,26,27,17,26,27,26,26,27,26,27,17,26,27,17,26,26,27,17,26,27,17,26,27,26,26,26,17,26,26,27,17,26,27,17,26,0,26,27,25,26,25,28,28,26,27,17,17,26,26,27,17,26,25,28,28,26,27,17,26,27,25,28,28,25,25,26,27,17,26,17,26,26,27,17,25,26,27,26,26,26,27,26,17,25,26,26,27,17,26,27,17,26,26,27,17,26,27,17,26,28,26,27,17,26,27,17,26,26,17,26,27,26,26,26,27,26,27,17,26,27,26,26,25,25,25,25,25,25,26,27,17,26,25,26,26,27,17,26,26,25,26,27,0,26,26,25,28,28,26,27,17,26,27,17,26,27,26,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,17,26,27,0,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,17,26,27,17,0,25,26,27,17,26,27,26,27,26,27,17,0,26,25,26,27,17,26,26,26,26,27,17,26,27,17,26,27,17,25,26,27,26,27,25,25,26,27,17,26,26,26,27,17,26,26,26,26,0,26,17,26,17,28,26,27,17,0,26,26,27,26,26,27,17,25,25,25,25,25,26,27,17,26,26,27,17,25,26,17,26,17,26,17,25,25,26,27,17,26,17,26,17,25,26,27,17,26,26,26,17,26,26,26,0,25,26,27,17,25,28,28,26,27,25,25,26,27,17,26,25,26,27,26,26,0,25,25,26,26,26,26,25,28,28,26,27,17,26,26,17,26,26,26,27,17,26,25,26,26,25,26,27,17,26,27,17,0,26,26,26,27,0,26,26,27,17,26,25,26,0,25,25,28,25,26,27,17,23,23,23,23,23,0,25,25,26,27,28,26,27,17,0,25,26,26,17,26,26,17,26,25,26,26,26,26,26,26,26,26,26,26,0,26,17,26,26,26,26,26,26,26,27,17,0,26,27,17,25,26,27,26,27,17,0,26,26,27,26,26,26,26,0,26,26,26,17,26,26,27,26,25,25,26,27,26,26,26,27,26,25,26,27,17,26,26,26,27,26,26,26,26,17,26,17,0,26,26,26,26,25,25,26,27,17,26,27,26,17,26,27,17,26,26,26,26,25,26,27,17,26,0,26,27,0,25,26,26,17,25,26,27,26,26,27,17,25,28,28,25,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,25,25,28,28,26,27,17,25,26,27,0,26,27,25,25,26,27,26,27,17,25,28,28,25,26,27,17,26,27,25,25,25,25,25,26,27,17,26,27,26,27,26,27,25,25,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,25,26,27,26,27,0,25,25,26,27,26,27,17,26,27,25,25,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,0,25,26,27,26,27,17,25,25,26,27,28,26,27,17,26,27,26,27,0,25,26,27,26,27,26,27,17,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,25,26,27,26,27,26,27,26,27,0,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,17,28,25,25,28,25,25,26,27,17,26,27,0,25,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,17,26,27,17,26,27,17,26,27,25,25,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,17,17,26,27,0,26,27,0,26,27,26,27,26,27,17,25,26,27,0,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,0,26,27,25,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,28,28,25,28,28,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,25,26,27,26,27,17,26,27,25,26,27,17,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,25,28,28,26,27,17,26,27,25,26,27,26,27,17,26,27,25,26,27,17,0,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,25,25,26,27,17,0,26,27,25,25,25,26,27,17,26,27,26,27,25,26,27,17,17,26,27,25,26,27,17,26,27,17,25,26,27,17,25,25,25,25,25,25,28,28,25,25,25,26,27,17,26,27,25,26,26,27,25,25,25,25,26,27,17,0,26,27,26,27,26,27,17,26,27,25,25,28,28,25,26,27,17,0,26,27,17,26,27,25,26,27,26,27,17,28,25,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,25,26,27,26,27,17,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,25,25,25,25,25,28,28,26,27,17,26,27,26,27,0,26,27,25,25,26,27,25,26,27,26,27,26,27,26,27,25,26,27,26,0,26,0,26,25,26,27,17,26,26,27,26,27,17,26,26,27,26,28,26,27,17,26,0,26,26,26,26,26,17,26,17,26,17,25,26,27,26,26,26,27,17,0,26,26,26,26,26,25,26,27,0,25,26,25,26,26,26,25,26,27,26,27,17,26,26,27,17,0,26,17,25,25,25,28,28,26,27,17,26,27,26,26,26,27,17,26,26,26,26,26,27,17,26,27,17,26,26,27,26,26,25,26,27,26,26,26,26,26,26,26,26,25,26,27,0,26,26,27,17,26,26,25,26,27,26,25,26,17,26,26,0,26,0,26,17,26,26,26,0,26,26,26,26,26,26,26,17,26,26,26,25,25,28,25,25,25,26,27,17,0,26,17,26,26,26,26,25,26,26,28,26,25,26,27,17,26,26,25,28,28,26,27,17,26,25,25,26,27,26,25,26,25,26,27,17,26,26,26,0,26,26,26,26,26,26,17,26,17,26,26,27,0,26,26,26,26,27,17,25,26,27,26,0,26,0,26,27,26,26,26,26,26,25,26,27,26,26,27,26,27,26,27,17,25,26,27,26,26,25,25,26,27,25,26,27,0,28,26,27,17,26,25,28,28,25,26,27,17,0,26,26,26,27,0,25,26,27,26,26,26,27,26,17,25,25,26,27,17,26,26,27,17,26,25,25,26,27,26,26,26,27,17,26,25,26,27,17,25,26,27,26,26,27,25,26,27,26,0,26,25,26,0,26,25,25,26,27,17,26,26,25,25,26,27,26,26,26,26,26,25,26,27,17,26,27,17,26,26,26,26,26,26,26,25,26,27,17,26,0,26,26,26,26,27,17,0,26,27,17,26,26,0,26,26,0,25,26,27,26,0,26,26,26,26,26,25,26,27,0,25,26,27,26,25,25,25,26,27,17,24,26,27,17,26,17,0,26,26,0,26,25,26,25,26,26,26,17,0,26,17,25,26,27,17,26,0,26,26,26,26,26,26,0,26,26,26,26,25,26,27,25,26,27,0,25,26,26,17,26,26,27,17,25,26,26,26,27,17,25,26,27,26,25,26,26,25,26,25,26,24,26,26,26,25,26,26,26,26,26,25,26,26,26,27,26,26,17,26,26,26,25,25,25,25,26,17,0,26,26,26,26,26,25,26,0,26,0,26,25,26,24,25,25,25,25,26,27,17,26,26,0,26,26,26,26,26,26,0,26,26,27,17,26,27,17,26,17,26,26,27,26,27,28,26,27,17,26,26,26,26,26,26,26,26,0,26,26,17,25,28,28,26,27,0,26,17,26,17,25,26,26,26,26,0,17,26,27,17,26,26,26,26,26,26,26,25,26,27,26,26,0,26,27,17,26,26,17,26,26,0,26,26,27,17,26,26,27,17,26,26,26,26,26,26,27,26,26,26,17,26,26,26,26,27,26,26,26,27,17,26,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,25,26,27,25,28,28,17,26,27,17,0,26,27,26,27,26,27,17,0,26,27,17,26,27,25,26,27,26,27,26,27,25,26,27,17,26,27,25,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,17,26,27,0,25,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,17,17,26,27,17,25,26,27,26,26,27,17,26,27,26,27,26,27,25,25,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,0,26,27,25,28,25,26,27,17,0,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,25,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,0,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,0,26,27,17,26,27,17,28,26,27,17,26,27,0,26,27,26,27,25,25,25,26,27,0,25,26,27,17,26,27,17,26,27,0,26,27,26,27,28,25,26,27,17,26,27,25,26,27,26,27,17,28,26,27,17,25,28,28,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,17,0,25,28,28,25,26,27,17,26,27,25,25,26,27,17,26,27,17,25,25,26,27,24,26,27,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,17,26,27,25,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,0,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,25,25,26,27,17,26,27,17,26,25,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,17,25,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,17,26,27,17,26,27,25,25,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,0,25,26,27,24,26,27,26,27,25,25,26,27,17,26,27,25,25,26,27,17,0,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,0,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,0,26,27,0,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,26,26,26,28,26,27,17,0,26,25,26,26,27,17,26,26,0,26,26,26,17,26,26,26,17,26,27,17,26,26,27,26,26,26,26,0,26,26,26,26,26,26,26,26,0,26,26,26,27,26,26,0,26,0,26,26,26,26,26,26,0,26,26,0,26,26,26,26,26,0,26,26,26,27,26,27,17,0,26,26,26,26,26,26,26,27,17,25,25,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,0,25,26,0,26,26,26,26,26,26,17,0,26,0,26,27,17,26,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,27,17,0,26,27,26,0,26,26,26,26,26,0,26,17,26,17,0,26,26,26,27,17,26,27,17,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,27,26,26,26,26,26,26,27,26,26,26,26,27,17,0,26,17,26,26,27,0,26,17,26,27,17,26,26,17,26,26,27,17,26,26,26,26,0,26,26,26,27,17,26,27,26,26,26,27,26,26,27,26,26,26,26,26,0,26,27,26,26,0,26,26,27,26,17,26,26,26,26,26,26,27,17,26,26,26,27,26,26,26,25,26,26,27,17,26,26,25,25,25,26,24,26,0,25,26,27,17,26,26,0,26,26,26,26,26,26,17,0,17,17,26,26,0,17,26,17,26,26,26,0,26,0,26,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,17,26,26,26,26,27,17,26,26,27,17,26,27,17,26,26,26,27,26,26,26,26,27,26,26,27,26,26,26,27,26,26,27,17,26,26,26,26,26,26,17,26,27,17,0,26,26,26,26,0,26,26,26,26,26,26,26,17,26,26,26,27,26,26,26,26,0,26,26,26,26,26,26,0,26,27,26,27,17,26,26,27,26,26,26,27,17,26,0,26,26,17,26,17,26,26,26,0,26,26,27,26,26,26,26,27,17,26,26,26,0,26,26,27,17,26,26,17,0,26,26,26,26,26,26,26,27,26,26,27,17,0,26,26,25,26,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,26,27,17,26,26,26,0,26,26,17,26,0,26,26,26,26,26,26,27,26,26,26,27,26,26,17,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,26,26,0,26,27,25,26,17,26,27,17,26,27,17,26,26,25,26,26,0,26,26,0,26,26,27,26,25,25,25,25,25,25,25,25,26,27,17,26,26,26,26,0,26,25,26,17,25,26,17,26,26,26,26,17,26,26,0,26,26,26,0,26,26,26,26,26,17,0,26,26,0,26,27,26,26,26,26,25,26,26,26,26,26,27,17,28,26,17,26,0,26,0,26,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,0,26,26,0,26,27,17,26,26,26,26,27,17,26,26,0,26,26,0,25,26,26,17,26,26,0,26,26,26,26,17,26,17,25,26,17,26,26,26,26,27,26,17,26,26,26,26,26,26,27,26,26,27,25,26,26,26,26,26,26,0,17,26,17,0,26,0,25,26,27,17,26,17,26,17,17,26,26,26,26,0,26,0,26,26,27,26,27,17,26,26,26,17,26,0,26,26,26,0,25,25,26,27,17,25,26,17,25,26,27,17,25,26,17,25,26,27,17,26,26,26,26,26,27,26,26,26,26,26,17,26,27,26,26,17,26,26,25,25,26,27,17,26,26,26,27,26,26,27,26,27,17,26,26,26,26,26,26,17,0,26,26,26,26,26,26,26,26,26,25,26,24,26,26,26,27,17,26,26,0,26,27,0,26,27,26,27,26,26,26,26,27,17,26,26,26,26,26,26,27,26,27,26,26,26,26,26,26,0,26,17,26,26,28,26,27,17,17,26,26,26,27,26,0,17,26,17,26,0,26,26,27,26,26,26,26,26,26,27,26,26,26,26,26,26,27,26,17,26,26,27,26,26,26,17,17,26,26,17,26,26,26,26,26,26,27,26,26,17,26,28,26,17,0,26,26,26,27,26,26,25,26,27,24,26,26,26,26,26,26,26,26,0,26,26,27,17,26,28,26,27,17,26,26,26,27,0,26,26,17,26,26,27,26,27,0,26,17,26,27,26,26,26,26,0,26,26,26,0,26,26,26,26,17,26,17,26,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,17,26,17,26,26,26,27,0,26,17,26,17,26,26,26,26,26,26,26,0,26,26,0,25,28,28,26,27,17,26,0,26,27,26,25,26,26,26,26,26,26,26,0,26,26,26,26,27,26,26,27,17,17,17,26,26,26,26,26,26,26,27,0,26,26,26,26,26,26,27,17,26,0,26,26,26,0,26,27,26,26,27,26,26,26,26,26,25,26,27,17,26,26,26,26,17,26,26,27,26,26,0,26,26,26,0,26,26,26,26,26,17,26,0,26,26,26,26,26,17,26,17,26,25,25,25,26,24,0,26,26,25,26,27,17,25,26,17,25,26,17,25,26,17,0,25,26,17,26,26,0,26,26,26,27,17,26,27,17,17,26,27,17,26,27,17,26,25,26,27,17,26,27,17,17,26,26,26,26,26,0,26,27,26,25,28,28,26,27,17,0,26,27,26,27,26,27,26,27,0,26,27,26,27,0,25,26,27,17,26,27,26,27,26,27,25,25,26,27,24,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,0,26,27,25,25,25,26,27,17,26,26,26,17,25,26,26,0,26,26,26,27,26,0,26,27,26,26,0,26,26,25,28,28,26,27,17,0,26,25,26,27,0,26,26,26,26,26,25,26,27,26,26,26,26,26,0,25,26,27,17,25,26,27,17,26,26,27,17,26,26,26,17,0,26,26,27,17,28,26,27,17,26,17,26,27,26,26,26,26,27,0,26,26,26,26,27,17,25,26,27,26,17,26,17,0,26,26,26,27,17,26,17,26,27,17,0,26,26,27,17,25,26,24,26,17,26,0,26,26,26,26,26,26,0,26,26,27,26,26,27,17,26,26,26,26,26,26,26,26,17,26,27,17,26,26,27,17,25,26,27,26,0,26,26,27,26,25,28,28,25,26,27,17,26,26,26,17,17,26,26,26,26,26,26,26,25,25,25,26,24,26,26,27,26,26,27,17,26,26,26,26,26,26,28,26,27,17,0,26,25,28,28,26,27,17,25,26,27,26,26,27,17,26,26,26,26,27,26,26,17,26,26,26,26,25,26,26,27,25,17,26,27,26,26,0,26,26,25,26,27,26,26,26,27,17,26,26,0,25,26,27,26,25,25,25,26,27,17,0,26,27,17,26,27,17,26,25,26,27,25,26,27,0,17,26,17,26,26,25,28,28,26,27,17,26,26,26,26,0,25,28,28,26,27,17,26,25,25,25,25,26,27,17,25,25,25,26,26,17,26,0,26,26,26,17,26,26,26,27,17,26,27,17,25,17,26,17,25,26,27,17,26,25,25,25,28,28,26,27,17,26,27,26,26,26,27,26,26,26,26,17,26,27,26,26,0,26,17,26,26,26,26,17,26,17,26,26,27,17,0,26,17,26,0,25,26,17,26,26,25,28,28,25,26,27,17,25,26,27,17,25,26,17,0,25,25,25,26,17,25,26,17,25,26,24,26,26,27,17,26,26,0,26,26,26,26,27,26,26,25,26,26,25,25,26,27,26,26,26,26,26,26,27,26,26,26,26,26,26,26,27,26,26,27,17,26,25,25,25,25,25,25,26,27,17,26,26,26,0,26,27,26,26,27,17,26,26,26,27,26,26,17,26,17,26,26,26,25,26,26,26,0,26,26,26,26,0,26,27,0,26,17,0,26,26,26,26,0,26,26,27,26,26,26,26,26,0,26,0,26,26,25,25,26,0,26,26,27,17,26,26,26,27,17,26,26,26,27,26,26,26,26,27,26,0,26,0,25,26,26,0,26,26,26,27,26,26,17,0,26,26,26,26,26,26,26,0,26,26,26,27,17,26,27,17,17,26,17,26,26,26,0,26,26,26,27,17,0,26,26,26,0,26,26,25,26,27,17,26,26,26,26,0,26,26,28,26,27,17,26,27,26,0,26,27,17,26,26,26,17,26,17,17,26,26,27,26,26,26,17,26,27,17,26,0,26,26,0,17,26,17,26,25,25,26,26,26,27,26,26,0,26,26,26,26,26,26,0,26,26,26,26,26,25,26,17,26,17,26,0,26,17,17,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,26,26,26,0,26,26,27,26,27,17,26,0,17,26,26,26,17,17,26,17,26,26,17,17,26,27,26,17,26,27,26,0,26,26,27,26,26,0,26,26,27,17,17,26,26,26,25,25,25,28,28,26,27,17,0,26,26,26,27,0,26,28,28,25,17,17,17,25,26,17,26,17,26,26,27,0,25,25,26,26,25,25,28,28,28,28,26,17,25,25,25,25,25,26,26,26,26,26,27,26,0,25,17,26,17,26,26,0,26,26,0,17,17,26,26,26,27,17,26,26,26,25,26,26,26,26,26,17,26,27,17,26,26,26,26,26,0,26,26,26,0,26,27,0,26,17,17,26,26,0,26,26,26,26,26,26,17,26,26,26,17,26,26,26,26,26,0,26,26,26,26,26,26,26,27,26,26,26,26,17,26,26,27,17,26,26,26,26,26,25,26,17,17,26,27,26,26,27,25,25,26,0,26,27,26,26,26,26,26,26,28,26,27,17,26,26,27,26,26,26,26,27,26,26,26,26,25,26,26,26,0,26,27,26,27,26,0,26,26,27,26,26,26,0,26,26,27,26,26,27,17,26,27,17,0,26,26,0,26,26,26,17,17,26,17,26,26,26,26,26,27,26,17,26,17,26,25,26,26,27,26,26,26,26,26,26,27,26,26,26,26,26,26,26,27,26,0,26,17,17,26,27,26,0,26,26,27,25,25,26,26,27,26,26,26,26,27,26,26,26,26,28,26,27,17,26,26,27,26,26,26,26,27,26,26,27,0,26,26,25,26,26,0,26,26,26,26,26,27,17,26,26,26,27,26,25,26,27,17,26,26,26,26,17,26,26,26,0,26,26,26,26,26,26,0,26,26,26,25,26,26,28,26,17,26,26,26,17,26,26,26,26,27,26,17,26,17,26,17,26,26,26,26,26,26,26,26,26,25,25,26,27,26,27,17,17,26,17,26,26,28,26,27,17,26,26,26,26,26,25,26,26,26,27,26,26,17,17,26,0,26,26,26,0,25,25,26,27,17,26,25,26,26,17,26,27,17,26,26,27,26,27,26,26,26,26,26,17,26,25,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,26,26,26,17,26,26,27,26,27,0,26,26,26,26,25,26,26,26,27,26,26,26,27,26,27,17,26,26,26,27,26,26,26,27,17,25,25,26,17,26,17,26,26,26,27,26,26,27,17,26,26,25,26,26,26,26,0,26,26,27,17,25,25,25,26,27,17,25,26,17,26,26,27,26,26,0,26,26,26,26,26,26,17,26,17,17,17,26,17,0,26,26,26,26,26,26,17,26,26,26,26,26,27,17,26,0,26,26,26,26,26,27,17,26,26,0,26,26,26,26,27,26,26,26,26,26,26,25,26,27,17,0,26,27,25,28,28,26,27,17,26,26,26,26,26,27,26,26,26,26,26,25,25,26,0,26,26,17,0,25,26,26,25,26,27,17,26,26,26,25,25,25,28,28,26,27,17,26,26,27,26,26,26,26,27,26,26,26,26,27,17,26,25,26,26,25,17,26,26,17,26,26,26,26,26,0,26,0,26,27,26,26,27,26,27,17,26,26,26,25,26,26,27,26,26,26,26,26,0,26,26,27,17,0,26,26,26,17,17,26,27,17,26,17,26,17,26,26,26,28,26,17,28,26,17,26,28,26,17,26,26,26,26,26,0,26,0,26,26,26,26,26,25,25,26,26,26,26,26,27,17,26,0,26,26,26,26,26,26,26,26,27,26,27,17,26,26,26,26,17,26,27,26,17,26,17,26,27,0,26,27,25,26,26,0,26,26,25,28,28,26,27,17,26,27,17,0,26,26,26,26,25,26,0,26,17,26,26,26,26,26,0,26,27,26,26,27,26,27,26,27,26,27,17,25,26,27,26,26,0,26,27,17,25,26,25,28,28,26,27,17,0,26,26,26,26,26,17,26,26,27,26,27,17,26,17,26,26,26,0,26,26,26,27,26,26,26,0,25,25,26,26,27,17,26,26,25,25,25,25,25,25,28,28,26,27,17,25,25,26,17,26,17,26,25,26,27,17,26,26,26,0,26,26,26,27,26,26,17,26,27,0,26,27,17,26,26,0,26,0,26,17,26,26,27,17,0,25,26,26,17,26,26,26,26,0,26,0,26,26,26,26,0,26,26,27,17,26,0,26,26,0,26,0,26,26,0,26,26,27,0,26,25,25,26,27,17,26,25,25,26,17,25,26,17,26,27,26,27,17,26,17,26,17,26,27,17,26,26,26,26,26,26,26,17,26,26,26,25,26,17,26,26,26,26,27,17,25,25,26,26,26,26,17,26,26,0,26,0,26,26,26,26,27,26,26,17,26,27,17,26,26,17,26,26,26,27,17,26,17,26,26,26,26,26,26,26,27,17,25,26,25,25,25,26,24,0,26,26,17,26,17,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,27,17,17,17,26,27,17,26,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,24,26,27,26,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,0,26,26,27,26,27,26,27,26,27,25,25,26,27,26,27,17,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,25,26,27,26,27,0,26,27,26,26,27,25,26,27,26,27,17,26,27,17,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,17,17,26,27,28,26,17,26,27,0,26,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,17,17,26,27,26,27,26,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,26,27,0,25,25,26,27,26,27,0,26,27,26,27,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,26,26,26,27,17,26,26,26,26,0,26,27,26,27,17,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,26,26,27,26,27,26,27,17,25,28,28,25,26,27,17,0,26,27,17,26,27,26,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,17,26,27,26,27,25,25,25,25,26,27,17,26,27,26,27,26,27,25,25,26,27,26,27,26,26,27,26,27,26,0,26,26,27,26,27,0,26,27,17,26,26,27,26,27,17,25,25,25,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,25,26,27,17,25,17,26,27,17,25,26,27,17,25,26,27,17,25,26,27,17,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,26,27,26,26,27,26,25,25,28,28,26,27,17,26,27,25,26,27,26,27,0,26,27,17,17,26,27,17,0,26,26,27,0,28,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,26,26,27,26,27,17,0,25,25,26,27,26,27,17,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,0,26,27,17,0,26,27,26,25,26,27,17,26,27,26,27,26,27,17,17,26,27,0,26,27,17,26,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,25,25,26,26,27,26,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,26,27,17,25,26,24,26,27,17,26,27,26,27,26,27,17,26,0,26,27,26,27,26,27,26,27,26,25,28,28,26,27,17,26,27,26,27,26,26,27,26,25,25,17,26,27,17,17,26,26,27,26,26,27,26,26,27,26,25,17,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,0,26,26,27,26,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,0,17,17,26,27,26,27,25,25,26,26,27,26,27,26,27,0,28,25,25,26,27,17,26,27,25,26,27,17,28,26,27,17,26,27,26,26,27,25,26,27,17,25,26,27,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,17,26,27,0,26,27,25,26,27,17,0,17,26,17,25,26,27,26,27,26,27,17,26,25,28,28,26,27,17,0,26,25,26,27,26,27,0,26,27,26,27,17,26,17,26,27,17,25,26,27,0,25,26,27,17,0,26,27,26,0,25,26,27,17,26,27,25,26,27,0,26,27,26,27,17,25,26,27,26,27,26,27,25,17,26,27,17,17,17,26,27,26,27,26,27,26,26,26,26,0,26,27,17,26,17,26,17,26,17,17,26,27,17,17,17,26,17,26,17,26,26,17,26,25,26,27,0,26,25,26,27,17,26,26,26,26,27,17,26,27,17,0,25,26,27,17,17,26,26,17,26,27,26,25,26,27,25,25,26,27,17,0,26,25,25,26,27,17,25,26,27,17,0,25,26,17,26,25,17,26,27,0,17,26,26,27,26,26,27,17,0,26,0,25,26,27,0,26,26,0,26,26,25,26,27,17,25,26,27,28,26,17,26,17,26,26,26,25,26,27,26,17,26,26,27,26,26,25,26,27,26,26,27,17,17,25,26,27,26,26,17,26,26,26,26,0,26,26,26,26,26,26,27,26,17,26,25,25,26,26,27,17,17,26,27,26,26,27,17,0,26,26,27,17,25,25,17,17,17,17,25,26,27,17,26,26,26,26,26,26,27,17,17,17,17,26,26,26,26,17,25,26,27,26,27,17,26,17,26,26,26,26,17,26,26,26,28,17,17,26,27,17,26,26,17,26,26,26,25,25,26,27,17,26,17,0,26,17,26,27,17,26,17,26,17,25,26,27,17,26,0,26,26,0,26,17,25,26,26,27,17,26,26,17,26,25,28,28,26,27,17,26,17,26,17,17,26,0,26,27,25,26,27,17,26,17,26,26,17,0,26,26,27,17,0,26,26,26,26,17,25,26,27,17,17,17,26,0,26,26,26,26,27,0,26,27,26,17,26,26,26,26,26,26,17,17,26,25,26,27,17,26,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,26,25,26,27,17,26,17,26,0,26,26,26,26,27,26,26,26,17,0,17,26,17,26,26,27,17,17,26,17,0,26,26,26,26,26,17,26,27,26,27,17,26,17,26,26,27,17,0,25,25,26,27,17,26,26,26,27,17,0,26,26,17,26,26,27,17,26,0,26,17,26,27,26,17,17,26,17,26,27,17,26,26,27,17,17,26,26,26,26,27,17,26,26,26,17,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,17,26,26,0,26,26,26,26,26,0,17,26,27,17,26,26,26,27,17,26,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,28,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,17,17,26,27,25,28,28,25,26,27,17,25,26,27,17,25,26,27,17,0,26,27,17,26,17,26,27,26,0,26,27,26,27,25,26,27,17,26,17,26,27,26,27,17,26,27,26,27,26,26,27,17,0,26,27,0,26,26,27,25,26,27,17,26,27,26,27,17,26,27,26,27,0,26,27,26,0,26,27,17,26,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,17,26,27,17,25,28,28,26,27,17,25,26,27,26,27,17,25,26,27,17,0,26,27,25,26,27,26,27,25,26,27,17,17,26,27,17,26,27,0,26,27,17,26,27,26,27,26,27,17,0,25,26,27,17,26,27,17,0,26,27,26,27,17,25,26,27,17,26,27,26,27,25,26,27,17,0,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,25,28,28,26,27,17,28,25,25,26,27,17,26,27,17,0,26,27,25,25,26,27,17,26,27,0,28,26,27,17,0,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,25,26,27,0,26,27,28,26,27,17,26,27,25,26,27,26,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,17,25,28,28,25,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,0,25,28,28,26,27,17,25,26,27,17,26,27,28,26,27,17,25,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,25,26,27,17,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,0,25,25,26,27,17,26,27,25,28,28,28,28,28,26,27,17,25,25,26,27,0,25,25,17,17,26,27,17,0,17,26,27,17,26,26,17,26,27,17,0,26,27,17,26,26,0,26,26,25,26,0,26,27,17,26,0,26,26,17,26,27,17,26,26,26,27,17,26,26,26,25,25,25,26,27,17,0,26,26,25,25,25,17,17,25,26,27,17,26,26,27,17,17,17,26,17,26,27,17,26,25,26,26,17,0,26,26,26,26,27,17,26,26,26,26,0,26,26,17,17,17,26,26,26,27,26,26,26,26,27,17,26,27,25,25,25,25,26,27,17,26,17,26,0,26,26,27,26,26,17,26,17,26,27,17,26,26,0,26,26,17,0,26,27,17,26,25,26,26,27,17,0,26,17,0,26,26,25,28,28,25,25,26,27,17,26,25,26,17,26,17,17,17,26,27,26,26,27,26,26,27,17,25,28,28,25,28,28,25,26,27,17,26,17,25,26,27,26,26,27,17,17,26,26,17,17,26,26,26,26,0,26,26,17,26,27,17,28,26,27,17,26,27,17,26,17,0,26,26,25,26,27,26,27,26,26,27,26,26,27,26,26,17,26,17,26,26,26,26,26,17,26,17,26,27,26,25,25,26,26,27,17,26,26,26,26,26,26,26,26,27,17,26,26,26,26,26,17,26,0,26,17,17,26,26,26,27,0,26,26,26,27,25,26,27,17,26,17,26,26,0,26,25,25,25,26,24,26,27,17,25,26,26,26,25,17,17,26,27,25,26,27,17,17,26,27,28,28,28,26,17,26,27,26,26,27,17,0,26,26,26,27,17,26,17,25,25,26,25,26,27,26,0,26,26,26,0,26,0,26,26,17,26,25,28,28,25,26,27,17,26,27,17,25,28,28,25,25,25,25,26,27,17,26,26,26,27,25,26,0,26,17,25,26,25,25,26,26,26,27,17,26,26,27,0,25,25,25,28,28,17,26,27,17,26,27,17,26,26,27,26,26,26,26,26,17,26,27,17,25,26,17,17,26,27,17,26,26,17,0,26,26,26,26,26,27,17,26,17,26,26,26,26,0,26,26,26,17,17,26,26,25,28,28,26,27,17,26,26,26,26,27,17,26,26,25,26,27,17,26,26,26,26,27,0,26,26,26,27,26,17,26,25,26,26,27,17,25,26,17,26,26,26,26,26,26,0,26,26,27,17,26,26,17,26,27,26,26,27,17,0,26,17,26,0,26,26,26,26,26,26,27,26,26,26,27,17,26,26,26,26,0,26,0,25,25,26,27,17,25,26,27,17,26,17,25,26,26,26,17,26,26,27,26,28,28,28,26,17,26,27,17,25,25,25,26,26,26,25,26,27,25,25,25,26,27,17,24,26,26,26,17,26,26,0,28,26,27,17,26,17,26,26,26,26,26,27,26,26,26,26,25,25,26,17,17,26,17,26,17,26,26,27,17,26,0,26,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,26,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,26,27,26,25,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,26,27,26,27,17,26,27,26,26,27,0,26,27,0,26,27,26,26,27,26,27,26,26,27,26,27,26,27,17,25,28,25,17,26,27,17,26,27,26,27,0,25,17,25,25,17,17,26,27,17,17,17,26,25,26,27,17,26,27,26,27,26,25,25,26,27,17,0,25,26,27,17,25,26,27,17,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,17,26,27,25,26,27,26,27,0,26,27,26,27,25,26,24,26,27,26,27,17,26,27,17,0,17,26,27,17,26,27,26,27,17,26,26,27,0,26,27,26,27,17,26,27,26,26,27,26,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,17,26,27,17,0,26,27,26,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,25,28,28,26,27,17,26,27,0,26,27,17,26,26,27,26,27,17,25,26,27,17,17,26,27,17,0,26,27,26,27,17,0,26,0,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,17,17,26,27,17,25,26,27,26,27,26,26,27,26,27,26,27,17,26,26,27,17,0,26,27,26,27,25,28,28,25,25,26,27,17,25,26,27,17,25,26,27,17,25,26,27,17,26,17,17,26,27,26,17,17,26,27,26,27,26,17,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,25,25,26,27,17,26,25,28,28,25,28,28,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,0,26,27,0,26,27,26,27,25,26,27,26,25,26,27,17,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,26,0,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,25,25,25,26,27,17,26,0,25,17,26,27,17,26,26,27,17,26,26,26,27,28,25,28,28,26,27,17,26,0,25,28,28,26,27,17,26,26,26,17,26,26,27,17,17,26,26,26,27,17,26,26,25,25,17,26,27,17,26,26,26,26,17,25,26,17,26,26,17,17,26,26,26,27,17,26,26,26,26,27,26,17,25,25,17,26,17,26,17,26,17,26,27,17,26,27,17,17,17,26,17,0,26,0,26,25,17,25,26,17,26,17,26,17,25,25,25,25,25,25,28,28,17,17,26,27,17,26,27,17,26,25,25,17,26,25,25,25,25,25,25,26,27,17,17,26,17,25,25,26,27,26,26,26,25,25,26,17,26,17,26,26,26,26,27,17,26,26,26,27,26,26,26,17,0,26,0,26,0,26,26,17,26,26,17,26,26,27,17,26,26,17,17,26,26,26,27,17,26,27,17,0,25,26,24,28,28,17,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,26,27,17,26,27,17,26,26,17,26,17,26,26,26,0,26,17,26,26,25,25,26,26,27,17,26,17,17,26,25,26,26,17,26,26,26,27,17,0,26,17,0,26,27,0,26,26,27,26,26,26,27,17,26,0,26,27,0,26,27,0,26,27,0,26,26,26,26,26,26,17,26,26,26,26,26,26,26,25,17,17,26,27,17,24,26,27,17,0,26,26,26,26,0,26,26,26,0,26,26,25,26,27,17,25,25,17,26,17,26,27,17,26,27,26,26,26,17,17,26,27,26,27,26,27,17,17,26,26,26,17,26,27,26,26,26,26,27,17,26,27,26,26,26,26,17,26,26,26,17,26,25,25,26,27,26,26,27,17,0,26,26,26,27,26,17,26,27,17,26,17,17,26,27,17,26,27,17,26,26,26,26,17,26,26,25,26,27,17,26,17,0,25,26,17,25,25,26,17,0,25,26,17,26,27,17,26,17,26,27,17,26,27,26,27,17,0,26,26,26,26,27,17,0,25,25,26,27,26,26,26,26,26,27,17,26,0,26,28,26,17,26,27,26,26,27,26,26,26,27,26,26,26,27,17,26,27,26,0,25,25,26,27,17,0,26,26,26,17,0,26,26,27,26,26,27,26,26,26,0,26,26,0,26,0,26,27,26,17,26,26,27,17,26,27,26,25,25,26,26,26,26,27,17,26,26,0,26,26,17,26,26,27,26,27,25,26,27,17,26,27,26,26,27,25,26,17,26,27,17,26,26,17,26,17,26,27,0,26,26,27,26,27,17,26,26,26,0,26,27,26,26,26,26,26,27,26,17,26,17,26,26,26,26,26,26,26,25,26,27,26,26,0,17,17,26,27,26,27,17,26,17,26,17,26,27,17,26,27,17,26,17,26,17,0,26,0,26,26,26,27,17,0,26,26,26,17,26,27,17,0,17,17,26,26,26,26,26,27,26,27,26,26,26,0,26,0,25,25,26,26,26,17,26,26,26,26,0,26,26,26,27,26,27,26,26,26,0,26,26,26,26,26,26,26,0,26,0,26,26,27,26,26,26,27,17,26,26,27,17,26,26,26,26,26,0,26,26,26,26,26,26,27,26,26,26,26,27,26,26,0,26,0,17,26,17,0,26,26,26,26,26,25,26,26,26,26,26,25,25,26,24,26,26,26,0,26,26,26,27,26,27,17,26,26,26,26,17,26,27,17,25,25,26,27,26,17,26,17,0,17,17,26,26,26,26,26,26,26,26,0,25,26,27,26,26,26,27,26,17,17,26,27,26,26,0,26,26,26,27,17,0,26,26,0,26,17,17,26,26,26,26,26,26,26,26,26,25,26,27,25,26,27,17,26,27,25,25,25,25,26,27,17,26,27,26,27,17,0,26,0,26,0,26,26,26,26,17,26,0,26,26,27,25,26,26,0,26,26,0,26,26,26,26,26,17,0,26,27,17,26,26,26,26,26,17,26,26,26,26,27,26,26,26,25,25,25,25,25,26,24,26,26,17,25,28,28,25,25,25,26,27,17,0,17,17,17,26,26,27,25,26,17,0,26,0,25,26,25,25,26,26,26,26,26,26,17,26,26,26,27,26,27,17,26,26,26,26,17,26,26,26,26,17,26,27,17,26,27,17,26,17,26,27,17,26,26,26,26,26,26,26,26,25,26,26,26,27,17,26,17,26,26,27,26,26,26,26,26,26,27,26,28,26,27,17,26,27,26,17,26,26,26,26,27,17,26,26,17,26,26,26,26,27,26,26,26,27,17,26,17,17,26,26,25,25,26,0,26,0,26,26,26,26,0,26,26,26,26,26,25,25,26,27,17,0,26,26,26,26,27,26,26,26,26,26,26,26,27,26,17,26,26,26,26,26,26,27,25,25,25,26,27,17,23,0,25,26,27,17,26,26,26,25,26,26,0,26,26,26,26,26,26,26,27,26,0,26,27,17,26,26,17,26,26,25,26,26,26,0,26,26,17,26,28,26,17,26,26,26,17,26,27,17,0,26,26,26,0,17,26,17,26,0,26,27,0,26,26,26,26,25,25,26,26,26,26,26,26,0,26,27,17,25,26,26,26,26,26,26,0,26,26,17,17,26,26,26,0,25,26,26,27,17,26,17,17,26,26,26,26,26,26,25,25,25,25,25,25,26,27,17,26,26,27,0,26,25,28,28,26,27,17,26,26,27,17,26,26,26,26,0,26,26,26,26,26,27,25,26,27,26,0,25,26,26,26,27,25,26,26,26,27,17,26,26,26,28,28,26,27,17,26,0,26,27,26,27,26,0,26,26,26,27,17,26,17,26,25,26,26,26,26,27,26,26,27,17,26,26,25,25,26,25,26,17,26,26,26,25,28,25,25,26,27,17,26,26,25,26,0,26,27,26,0,26,26,17,0,26,27,17,26,0,26,25,25,26,27,17,0,17,17,26,26,25,28,28,26,27,17,26,26,26,26,26,26,26,27,17,26,17,17,26,0,26,26,26,26,26,17,26,26,0,17,26,17,26,27,26,26,26,27,17,26,26,26,0,26,27,17,0,26,26,25,26,27,17,25,25,26,27,17,26,26,17,17,26,25,26,26,27,26,26,26,27,0,26,26,17,26,27,17,26,26,27,17,26,27,17,0,26,26,26,17,17,26,26,26,26,25,25,26,25,25,25,28,28,25,25,28,28,26,27,17,25,25,26,17,26,26,26,26,26,0,26,17,26,25,25,26,27,17,25,25,26,17,26,25,25,26,17,26,26,0,26,25,28,28,26,27,17,26,26,26,26,26,17,17,26,26,26,26,26,26,17,0,26,26,26,26,27,26,27,17,26,0,26,17,26,26,0,26,26,25,17,26,26,26,26,26,27,26,27,17,25,26,27,17,26,17,26,26,0,26,26,26,26,26,26,26,26,25,25,25,26,27,26,25,28,28,26,27,17,26,26,26,26,17,0,26,26,27,17,17,17,26,26,26,25,26,25,25,26,0,25,26,0,26,26,26,26,26,26,27,26,27,17,26,26,26,26,26,26,27,26,0,26,25,26,26,26,0,26,27,17,26,26,26,27,17,26,0,26,26,17,25,26,17,0,26,17,26,27,17,26,17,26,17,25,28,28,25,26,27,17,26,0,25,26,27,25,25,28,28,25,25,25,25,28,28,26,27,17,26,27,26,26,26,17,25,26,26,26,26,26,25,25,26,27,26,27,26,26,26,26,25,26,26,26,26,28,26,17,26,25,17,17,26,27,17,26,26,26,27,26,27,26,27,17,0,25,26,0,25,26,25,26,25,26,27,26,27,0,26,27,26,27,17,25,26,27,17,25,25,26,26,27,25,25,25,25,28,28,26,27,17,26,26,27,25,26,27,0,26,26,26,17,26,26,27,25,26,26,26,26,26,27,26,25,26,27,17,26,27,26,26,26,0,26,26,26,17,25,26,26,27,26,26,0,25,26,27,26,26,26,27,17,25,26,26,25,26,25,26,27,17,26,25,25,25,26,17,26,25,26,17,26,26,0,25,26,25,26,17,26,26,27,25,26,0,25,26,26,26,25,26,27,17,26,17,28,28,28,26,27,17,26,25,25,25,25,26,17,26,27,26,28,25,26,27,17,25,25,26,27,25,26,27,17,26,26,26,25,25,25,28,28,17,26,27,17,26,26,27,26,17,26,26,26,25,25,26,27,17,25,26,17,26,26,0,26,26,26,26,25,28,28,26,27,26,17,26,25,26,25,26,26,27,0,26,26,0,26,25,25,25,25,25,28,26,27,17,0,26,27,17,17,26,26,17,26,25,26,27,26,28,26,27,17,26,26,26,26,27,26,27,17,0,26,26,25,25,26,26,0,26,26,26,0,26,26,26,26,26,26,26,26,26,26,25,25,26,27,17,26,26,26,27,0,26,26,26,27,26,17,26,17,25,26,26,0,26,26,26,26,27,17,26,0,26,26,26,26,0,26,26,27,26,26,25,25,26,25,26,26,25,25,26,27,17,25,26,26,26,27,17,26,26,27,17,26,17,17,26,26,26,26,27,17,26,26,26,17,26,27,26,17,17,26,17,26,26,26,26,26,26,0,26,25,26,26,25,26,24,26,26,26,25,26,25,26,27,17,26,27,25,25,25,26,25,26,26,0,26,26,27,26,26,27,17,0,26,26,26,17,17,25,26,17,25,26,17,26,27,17,26,17,0,26,17,28,26,27,17,26,17,25,26,17,26,0,26,26,26,26,26,26,27,26,0,26,0,26,26,0,26,26,26,26,25,25,26,26,25,25,26,27,25,26,26,26,17,26,17,26,27,17,26,0,17,26,26,26,26,28,26,27,17,26,17,26,26,26,26,26,27,17,0,28,26,27,17,26,0,26,26,17,26,25,26,24,26,26,26,26,26,26,26,17,17,26,27,17,26,17,26,26,27,26,26,28,26,27,17,28,26,27,17,26,26,27,0,26,0,26,26,27,17,26,27,26,27,26,25,26,26,0,17,17,26,26,27,26,26,26,26,27,26,27,26,26,27,17,17,26,26,26,17,26,25,26,24,26,26,26,26,26,26,26,27,26,25,25,25,17,26,17,25,26,17,26,27,17,26,0,26,26,26,27,26,26,17,26,26,25,25,25,26,24,26,26,26,26,0,26,27,0,17,17,26,26,26,25,26,27,17,26,26,26,26,26,26,26,26,26,26,26,0,25,25,26,17,17,26,26,25,25,25,26,24,26,26,26,26,26,27,0,26,26,25,26,17,26,17,26,26,26,26,26,26,17,26,26,26,26,0,26,26,26,27,26,26,26,26,26,26,26,26,17,17,26,26,26,25,26,26,25,25,26,25,26,26,26,26,17,0,26,26,0,26,27,17,26,26,0,26,26,25,26,26,26,26,25,26,25,26,26,26,25,26,17,26,25,26,26,26,26,26,26,26,26,26,0,26,26,26,17,26,17,26,0,25,26,0,26,26,25,26,27,26,26,26,0,26,26,26,0,26,0,26,26,26,26,26,26,26,26,26,26,26,26,27,26,0,26,17,17,17,26,17,28,26,26,17,26,26,26,26,0,26,0,26,26,25,25,26,17,28,25,26,27,17,26,26,26,26,0,26,26,26,26,26,17,26,26,26,17,26,26,17,17,26,26,28,26,27,17,26,27,17,25,26,0,26,26,26,26,27,26,26,26,26,26,26,26,26,26,27,0,25,25,26,25,25,26,25,26,26,17,17,25,26,27,17,26,26,26,26,26,26,27,26,26,26,26,0,26,26,26,26,26,26,27,17,26,26,25,26,26,26,25,26,28,28,28,28,26,17,26,26,26,26,27,17,26,0,26,17,26,26,25,26,25,25,26,26,27,17,26,17,26,26,25,28,28,25,28,28,25,25,28,28,25,26,27,17,28,26,17,0,26,27,0,26,26,26,17,26,17,26,26,26,26,26,0,26,27,17,26,26,26,26,26,26,0,26,27,26,26,26,25,17,25,26,27,17,0,17,17,26,26,26,26,26,25,26,26,27,17,26,27,26,25,26,27,17,26,27,17,26,26,26,0,17,26,27,17,26,26,25,25,28,28,25,26,27,17,26,27,26,0,26,25,17,25,26,27,17,26,0,26,27,26,27,17,26,26,26,26,26,26,26,0,26,27,26,26,17,26,0,26,0,26,26,27,26,26,27,26,25,25,25,26,27,26,27,17,26,26,26,26,26,26,26,0,26,26,26,26,26,27,17,26,27,17,26,27,17,26,26,27,26,27,17,26,0,25,28,28,26,27,17,26,26,26,28,26,27,17,26,26,26,26,27,17,26,26,26,26,27,17,26,25,25,26,26,25,26,27,17,26,27,0,26,26,0,25,26,25,25,28,28,25,25,25,25,28,28,26,27,17,26,27,26,27,26,25,26,26,25,26,26,27,17,26,26,26,26,0,26,26,26,26,26,0,26,27,17,17,26,17,0,25,26,27,17,26,27,17,0,26,26,26,26,26,26,26,27,25,17,25,26,17,26,25,25,26,25,26,17,0,26,0,26,27,17,26,27,17,0,25,26,26,26,27,17,25,26,26,26,26,27,17,26,17,26,17,25,26,27,17,26,27,17,26,26,0,26,26,26,27,0,26,26,25,26,27,17,26,26,27,17,25,25,25,25,25,25,25,25,26,27,17,26,25,25,26,27,26,26,17,25,26,27,17,26,26,26,26,26,27,26,26,27,17,26,25,26,26,0,25,25,26,27,17,26,26,26,26,26,26,26,26,26,27,26,27,26,17,26,26,26,26,0,26,26,26,26,26,27,26,27,26,25,26,27,17,26,26,26,26,26,25,25,26,26,27,17,26,17,25,26,27,17,26,26,26,27,26,27,25,25,25,25,25,25,26,27,17,26,26,26,26,0,26,27,17,26,26,26,26,26,28,26,27,17,26,26,27,17,26,27,26,25,25,25,25,26,27,17,0,26,26,25,26,26,26,26,25,17,26,27,17,26,27,17,26,17,25,26,26,26,26,0,26,25,26,27,17,26,27,17,26,26,26,25,26,27,26,0,26,27,26,27,26,0,25,25,26,27,17,17,26,17,25,17,25,26,17,26,26,27,17,0,26,17,25,26,27,26,28,26,17,26,27,17,26,25,17,17,26,27,17,25,26,27,26,26,26,17,26,17,25,25,26,27,17,26,26,27,26,26,17,0,26,27,17,25,26,27,17,17,26,27,17,26,0,26,17,0,26,27,17,26,25,26,27,26,26,26,26,17,25,26,27,26,26,27,17,26,26,27,17,26,17,25,26,27,17,26,17,0,26,17,0,17,25,26,17,26,17,26,27,0,25,26,27,25,28,28,25,26,27,17,26,26,28,28,17,17,26,17,0,25,26,27,26,27,26,26,26,26,25,25,26,27,17,17,26,0,26,26,26,0,25,26,26,26,26,0,26,26,27,17,26,27,17,26,26,26,26,17,26,17,26,17,0,26,17,26,27,17,26,17,26,17,26,17,26,26,0,26,27,17,0,26,0,26,17,17,26,26,26,26,26,17,25,25,26,27,17,25,28,28,26,27,17,0,26,25,25,26,25,26,27,25,26,17,26,26,26,25,26,27,26,25,25,26,27,17,26,0,26,26,25,26,27,26,27,26,26,26,17,26,26,26,27,26,26,28,17,26,17,26,27,17,26,17,26,17,26,26,26,25,28,28,25,26,27,17,0,26,26,25,26,27,26,26,17,26,26,26,26,26,26,25,28,28,25,28,28,26,27,17,0,26,26,26,0,26,0,26,27,26,27,17,17,17,26,17,26,17,26,17,0,26,26,26,26,17,26,26,27,17,26,27,26,26,17,26,17,26,27,17,26,17,17,26,17,26,17,26,17,25,26,27,0,26,27,26,26,26,17,25,25,26,27,17,26,26,27,17,26,0,26,0,26,17,17,17,26,26,26,26,26,27,26,0,26,26,17,26,17,26,26,26,17,17,26,26,26,25,26,17,26,17,26,17,26,27,17,26,17,26,17,26,17,26,17,25,26,27,26,26,26,27,17,17,26,17,26,26,26,26,26,0,25,26,27,0,26,26,17,0,25,28,28,26,27,17,26,17,26,26,26,27,17,26,26,27,17,26,26,0,26,27,26,26,26,17,26,27,17,26,27,17,0,26,27,17,26,26,25,25,25,28,28,17,17,26,27,17,26,17,26,25,26,27,26,26,26,17,26,26,26,26,25,25,26,0,26,0,26,27,17,25,26,26,27,0,26,26,25,25,26,27,17,26,27,26,17,17,26,27,26,26,27,25,25,25,26,27,17,26,26,27,17,25,26,27,17,26,0,26,26,26,26,26,26,26,26,0,26,26,27,25,26,17,26,27,0,26,26,0,26,26,26,27,17,26,26,26,26,26,26,0,26,27,25,26,27,17,26,26,26,25,25,28,28,25,25,26,27,17,25,26,17,25,26,27,17,26,27,17,0,25,25,26,17,26,27,17,26,26,27,26,26,26,27,17,26,26,27,17,26,26,27,17,0,26,26,27,17,25,26,27,17,26,26,26,26,26,27,17,26,25,26,27,17,25,25,26,17,26,26,27,26,27,26,25,17,26,27,17,26,17,26,0,26,26,26,26,26,26,27,17,26,26,26,26,26,27,17,26,26,27,17,26,26,26,26,17,26,27,17,25,26,26,27,17,26,26,26,26,26,27,17,0,25,26,26,27,17,26,26,26,26,26,26,26,0,26,27,17,26,26,27,26,26,26,17,26,26,26,17,17,26,26,27,17,26,0,28,26,27,17,26,26,0,25,26,17,26,26,26,26,26,26,26,0,26,0,26,27,17,25,26,27,17,0,26,26,25,26,25,25,26,27,17,26,27,17,26,27,26,26,0,26,27,0,17,26,27,26,26,17,26,26,0,26,26,26,26,26,27,17,26,28,26,27,17,26,26,26,27,17,26,26,26,26,0,26,26,27,17,26,26,26,26,26,27,17,17,25,26,17,0,26,27,26,26,26,26,25,28,28,25,26,27,17,26,26,26,26,26,26,17,26,26,0,26,17,26,27,17,26,27,26,27,26,0,26,17,26,0,26,26,26,17,26,0,26,26,26,27,17,26,26,26,26,17,26,26,27,26,26,26,27,26,25,25,26,27,17,26,27,26,26,27,17,26,26,27,17,25,26,17,26,26,26,26,0,26,0,26,0,25,26,26,26,26,0,26,26,26,26,26,26,27,26,26,0,26,26,26,0,26,26,27,26,0,26,26,26,26,26,26,26,27,26,25,26,24,26,26,26,0,26,0,26,27,17,26,17,0,26,26,26,26,26,26,0,26,26,0,26,26,0,26,26,26,26,26,26,0,26,26,26,26,17,26,26,26,0,25,28,28,26,27,17,26,25,25,26,26,27,17,26,26,26,27,0,26,27,26,27,26,27,26,27,26,27,28,26,27,17,26,26,26,27,17,26,26,26,26,27,26,26,25,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,26,26,27,26,27,26,27,26,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,26,0,26,27,26,27,17,26,27,26,27,26,0,26,27,26,27,26,27,26,27,26,27,26,27,26,26,27,0,26,27,26,27,26,27,26,26,27,25,25,26,27,26,25,25,25,25,25,25,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,0,17,26,27,17,26,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,28,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,0,26,27,26,27,0,25,26,27,17,26,26,27,17,25,26,27,17,26,27,17,26,25,25,17,17,26,27,17,26,27,26,27,26,27,25,25,28,28,26,27,17,26,27,26,27,26,26,27,25,28,28,26,27,17,26,27,17,26,27,26,27,0,26,27,0,25,25,25,26,27,17,26,27,26,27,0,25,26,26,27,26,27,26,27,17,28,26,27,17,26,27,26,26,26,26,26,26,0,26,27,17,17,26,26,26,26,0,26,26,27,26,27,26,27,26,27,26,26,17,26,27,26,27,26,27,17,26,27,26,26,26,27,0,26,17,26,27,25,26,27,17,25,26,17,26,25,25,26,17,26,26,26,17,17,26,27,17,26,17,26,27,26,26,0,26,26,26,26,26,27,26,26,0,26,26,25,25,26,27,17,26,26,26,26,28,26,27,17,26,27,26,26,26,26,26,27,26,0,26,27,26,26,26,26,26,27,17,26,27,26,27,26,26,0,26,26,26,26,27,26,27,17,0,26,17,26,26,26,26,27,26,26,27,26,26,26,26,26,17,26,0,26,26,27,26,26,0,26,17,17,26,17,17,26,17,26,26,26,27,17,26,26,27,17,26,26,0,26,25,25,17,17,26,0,26,26,26,27,26,26,26,26,27,17,26,26,26,0,26,26,0,26,0,26,25,25,26,27,26,27,17,17,26,27,26,26,26,26,26,26,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,25,26,27,17,25,26,27,17,25,26,27,17,17,17,26,27,26,27,26,27,0,25,25,25,26,27,24,26,27,26,27,26,27,28,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,17,26,27,17,26,27,26,27,0,17,26,27,17,26,27,26,27,26,27,26,26,26,26,26,26,26,26,26,26,26,0,25,25,26,27,17,26,17,17,26,26,26,27,17,0,26,26,27,0,26,26,26,26,0,26,17,17,26,26,25,25,26,26,26,17,25,28,28,26,27,17,26,25,28,28,26,27,17,17,17,17,17,17,17,17,26,27,26,27,17,0,26,27,25,26,27,26,26,26,27,17,26,0,25,26,27,26,25,25,26,25,26,27,17,26,26,26,25,26,27,26,27,26,0,26,27,26,26,26,26,26,17,17,17,17,17,17,17,26,26,26,26,26,26,27,17,0,26,27,17,26,26,26,26,27,17,25,26,27,26,26,26,27,26,0,26,25,28,28,26,27,17,26,26,26,27,17,0,26,27,26,27,26,26,25,28,28,26,27,17,26,27,17,26,26,0,26,26,26,26,0,26,26,0,25,26,26,17,26,26,25,28,25,25,25,25,25,25,26,17,26,27,17,25,25,26,26,26,26,25,26,27,0,26,26,27,17,26,26,27,26,0,26,26,27,17,26,26,26,26,27,17,26,26,26,27,17,26,26,26,27,26,26,26,26,27,17,26,26,27,17,26,27,26,26,26,26,26,26,26,26,27,26,25,26,27,26,26,27,17,26,0,25,26,26,27,26,27,17,26,26,26,26,26,27,26,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,26,27,0,26,27,25,25,17,26,27,17,0,26,27,25,25,28,28,26,27,17,25,25,25,25,25,17,28,26,27,17,26,27,25,25,26,27,26,27,0,26,27,17,26,27,0,26,27,25,26,27,25,25,26,27,17,28,25,26,27,17,0,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,0,26,27,25,17,17,26,27,17,26,27,0,26,27,25,26,27,17,26,27,25,26,27,17,26,27,26,27,0,26,27,25,26,27,0,26,27,0,26,27,26,27,25,26,27,26,27,25,28,28,26,27,17,25,25,26,27,17,26,27,17,26,27,26,27,25,26,27,0,25,26,27,26,27,26,27,0,26,27,26,27,26,27,0,25,26,27,26,27,17,26,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,25,26,27,26,27,26,27,26,27,26,27,25,25,26,27,26,27,26,27,25,28,28,26,27,17,0,17,26,27,17,25,25,26,27,26,27,0,26,27,25,26,27,26,27,25,26,27,0,26,27,26,27,26,27,0,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,0,25,26,27,26,27,26,27,26,27,25,28,28,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,25,28,28,26,27,17,26,26,27,17,26,26,27,17,26,27,17,25,26,27,26,26,27,26,26,26,25,25,25,25,26,17,26,26,27,26,26,25,26,25,25,26,27,17,26,27,25,25,26,26,26,26,26,17,0,26,28,26,27,17,26,26,26,25,26,27,26,26,27,17,26,26,26,27,17,26,17,26,26,26,27,26,26,26,26,27,26,27,17,26,26,28,26,27,17,26,26,27,17,26,26,27,17,26,26,0,26,25,17,26,17,26,26,27,26,27,17,26,0,26,28,26,27,17,0,26,26,26,27,17,26,27,17,26,26,26,27,17,26,26,0,17,17,26,27,17,26,27,26,26,26,27,0,26,27,17,25,25,25,28,28,26,27,17,26,27,17,28,26,27,17,26,27,26,27,26,27,26,27,26,26,27,0,25,25,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,25,28,28,25,25,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,26,27,0,26,25,26,27,24,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,17,26,0,25,25,28,28,26,27,17,26,27,26,27,17,0,26,26,27,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,25,25,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,25,25,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,0,25,25,28,28,25,25,26,27,17,26,27,25,26,27,17,26,27,17,0,28,26,27,17,26,27,17,26,17,25,25,26,27,17,26,27,26,26,27,26,27,26,27,26,27,26,25,25,26,27,17,26,27,26,27,17,26,27,17,17,17,26,27,26,27,25,25,26,27,17,0,26,27,17,26,27,26,27,25,25,26,27,26,26,27,25,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,17,26,27,26,27,26,27,26,26,27,26,27,0,26,27,25,25,25,25,26,27,17,0,25,17,17,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,26,17,26,27,26,27,26,27,17,26,27,17,26,26,27,17,26,27,17,26,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,25,25,25,17,26,27,17,26,27,26,27,26,27,26,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,25,28,28,26,27,17,26,27,26,27,25,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,0,17,17,26,27,17,26,27,25,25,25,26,27,17,0,26,27,17,26,27,17,26,27,25,28,28,26,27,17,26,27,0,26,27,26,27,0,26,27,26,26,27,25,26,27,17,26,27,25,26,27,17,26,27,26,27,17,26,27,25,25,26,27,26,27,26,27,17,25,26,27,25,26,27,26,27,26,27,25,25,28,28,26,27,17,25,26,27,17,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,0,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,25,25,26,27,25,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,25,28,28,26,27,26,27,17,26,27,0,25,26,27,25,26,27,17,26,27,26,27,26,27,25,25,26,27,0,26,27,26,27,25,28,28,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,27,26,27,26,26,27,26,27,0,25,26,27,24,25,17,26,27,17,26,27,28,25,26,27,17,25,25,26,27,17,25,26,27,17,25,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,25,25,25,26,27,26,27,26,27,26,27,0,25,25,17,26,27,17,0,25,25,25,26,27,17,0,26,27,17,26,27,25,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,0,26,27,0,26,27,17,26,27,25,26,27,26,17,25,25,28,26,17,28,26,17,26,26,26,26,26,27,0,25,26,27,17,0,26,27,17,26,17,26,26,26,17,26,26,27,0,26,25,26,17,26,26,26,27,26,27,17,26,26,25,26,27,17,26,26,25,25,26,27,17,26,26,25,25,26,27,26,27,26,27,26,28,26,17,26,27,17,26,17,17,26,26,27,26,26,27,17,26,26,27,26,26,26,26,26,0,26,26,26,27,17,26,26,27,28,26,27,17,26,26,26,26,27,26,27,26,26,26,27,17,26,26,27,26,0,26,26,26,26,26,27,0,26,26,25,25,26,26,26,27,17,0,26,26,26,26,26,26,26,26,26,26,26,17,26,26,26,26,26,25,26,27,25,26,26,25,25,26,27,17,0,25,26,17,25,25,25,26,17,25,26,27,26,26,26,26,27,17,26,25,28,28,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,27,17,26,26,26,26,26,26,26,26,25,25,26,26,26,26,26,25,26,24,25,26,26,26,0,25,25,25,26,24,26,27,26,26,27,26,26,27,26,26,26,27,26,17,17,26,27,26,26,26,0,26,26,26,26,26,27,17,26,26,26,26,26,26,26,25,26,27,17,26,25,26,26,26,27,25,26,27,17,26,17,26,26,26,0,25,26,26,26,26,27,26,26,26,27,0,26,26,26,25,26,27,17,25,25,26,27,17,25,26,27,17,25,26,27,17,0,26,27,26,27,26,26,27,0,26,27,26,27,26,27,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,0,26,27,17,26,27,26,27,25,26,27,0,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,0,26,27,17,26,27,17,0,26,27,0,26,27,17,26,27,17,0,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,17,25,28,28,26,27,17,0,26,27,0,26,27,26,27,17,25,25,28,28,17,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,25,26,27,25,26,27,17,26,27,25,25,26,27,24,25,25,25,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,26,27,25,26,27,26,27,17,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,28,17,17,26,27,17,25,26,27,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,26,0,26,27,17,26,26,26,26,27,26,26,26,26,26,26,25,26,27,26,17,26,26,27,26,26,26,0,26,26,27,26,26,17,26,26,27,17,26,26,26,26,26,26,28,26,27,17,26,26,26,26,25,28,28,25,26,27,17,0,26,25,25,25,26,17,25,26,26,0,17,17,26,26,27,0,26,27,0,26,26,27,17,0,26,26,27,17,26,26,0,26,26,26,26,27,17,0,26,26,27,26,26,26,27,17,26,27,26,0,25,26,26,26,26,27,26,26,26,26,27,17,26,26,26,26,26,26,26,27,26,26,0,28,26,27,17,0,26,26,26,27,17,26,26,27,25,26,26,26,26,26,26,26,26,27,17,26,17,26,0,26,26,26,26,0,26,17,26,17,26,26,26,26,26,27,26,0,28,26,27,17,25,26,25,26,26,27,26,26,26,26,27,26,26,27,26,25,25,26,27,17,26,26,26,26,26,26,26,17,17,26,27,25,26,26,26,26,26,27,17,26,26,26,26,26,27,0,26,26,26,27,17,26,27,26,26,27,26,26,26,27,17,26,0,26,27,26,26,26,26,26,0,26,26,26,26,25,26,26,27,26,27,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,27,17,26,26,26,26,27,17,25,26,26,17,26,17,0,26,26,27,26,27,17,26,27,26,26,27,17,26,26,26,27,26,27,17,26,27,26,27,26,27,28,26,27,17,0,26,27,25,25,25,28,28,26,27,17,26,27,26,26,27,26,27,26,27,17,26,27,0,25,26,27,17,26,27,26,27,26,27,17,17,17,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,28,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,17,17,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,0,26,27,17,28,28,28,28,28,28,26,27,17,25,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,26,27,26,27,25,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,17,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,17,26,25,28,28,26,27,17,26,27,17,26,26,26,26,27,17,26,27,25,28,28,25,26,27,17,26,26,26,26,27,26,27,17,26,26,25,26,27,17,26,26,26,17,17,26,27,17,26,25,26,26,26,26,26,26,27,17,0,26,26,26,27,26,27,17,26,26,25,26,27,17,26,25,25,25,26,27,24,26,26,17,26,27,26,17,26,27,17,25,26,27,17,26,27,26,26,26,26,26,27,17,26,25,26,26,25,26,26,26,0,26,27,17,26,26,26,25,26,27,17,26,0,26,26,27,17,26,26,26,27,25,26,27,26,17,26,26,27,17,26,26,26,26,26,25,26,25,26,27,17,26,26,27,17,26,27,17,0,26,0,26,26,26,27,17,26,26,26,26,28,26,17,26,26,27,17,26,26,25,28,28,26,27,17,26,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,25,25,25,25,28,28,26,27,17,25,26,27,17,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,25,26,27,17,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,26,27,0,26,27,17,25,26,27,26,27,25,25,25,26,27,17,23,25,26,27,17,26,27,26,27,26,27,17,26,27,26,27,25,28,28,25,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,17,26,27,17,0,26,27,17,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,17,26,27,26,26,27,26,27,26,27,25,28,28,26,27,17,26,27,17,26,25,25,25,28,28,26,27,17,26,27,26,0,25,26,0,26,26,27,17,26,26,26,26,17,26,26,26,27,17,26,0,26,28,26,27,17,26,26,26,0,26,27,17,26,0,26,17,26,27,17,26,26,26,26,27,17,26,26,27,17,26,26,27,17,0,26,26,26,27,17,0,26,0,26,26,17,26,27,26,0,26,27,0,25,28,28,26,27,17,26,17,26,26,26,27,17,26,26,26,27,17,0,26,26,17,26,26,17,0,26,26,26,27,17,26,26,0,26,26,26,26,25,26,27,17,26,26,27,17,26,27,17,26,0,26,0,26,0,26,27,17,25,28,28,26,27,17,26,26,27,26,17,26,25,26,26,27,17,26,0,26,26,0,26,26,26,26,27,17,0,26,26,17,0,25,26,27,26,25,25,26,27,17,26,26,27,17,0,28,26,27,17,26,0,26,26,26,26,26,27,17,26,27,17,26,27,17,26,26,27,17,26,26,26,27,17,26,26,26,0,26,26,26,26,27,17,26,26,0,26,26,26,26,17,26,27,17,26,27,26,26,26,17,26,26,25,26,27,17,26,0,25,28,28,26,27,17,26,26,26,0,25,28,28,26,27,17,26,27,17,26,26,25,26,27,17,0,26,26,27,26,26,27,17,26,26,27,17,26,26,26,26,0,25,26,27,17,26,26,28,26,27,17,17,26,17,26,27,17,26,26,27,17,26,26,27,26,26,25,25,25,25,28,28,25,26,27,17,0,25,26,27,17,0,25,26,27,17,25,26,17,25,26,17,0,26,25,25,26,26,26,27,17,26,27,17,26,27,26,17,26,0,26,26,27,17,26,27,0,26,27,17,26,17,28,17,17,26,27,17,26,27,26,17,26,26,27,26,27,17,26,26,0,26,17,0,26,26,26,26,27,17,0,26,26,26,26,17,26,17,26,26,27,17,26,27,17,26,27,17,26,27,26,26,27,17,26,26,27,17,26,26,27,26,17,26,25,26,27,17,25,26,24,26,27,17,26,26,17,26,26,26,0,26,26,27,17,25,26,27,17,26,0,26,26,26,26,26,27,17,26,26,25,26,27,17,26,26,27,26,17,26,27,17,26,17,17,26,26,26,26,27,17,26,26,27,17,26,26,26,27,26,17,26,27,17,26,26,27,17,26,26,26,26,27,17,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,27,25,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,17,25,26,27,25,28,28,25,28,28,26,27,17,0,26,27,25,26,27,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,0,25,25,25,26,27,17,24,26,27,17,26,27,25,26,27,17,25,25,26,27,26,26,26,27,17,0,26,27,26,27,26,26,26,26,27,17,26,27,17,26,25,26,28,26,27,17,26,17,26,26,26,27,17,26,26,26,26,25,26,24,26,26,27,17,0,26,27,17,26,26,26,26,26,0,26,27,17,26,26,27,26,27,17,0,26,0,26,0,26,0,26,27,17,26,27,17,26,25,26,17,26,27,17,0,26,27,26,0,26,27,17,26,27,17,25,26,27,17,25,26,17,26,26,26,27,17,0,26,27,17,26,25,26,26,26,26,26,27,26,27,17,26,26,26,26,25,28,28,25,26,27,17,26,28,26,27,17,26,0,26,26,0,26,27,25,25,26,26,26,27,17,26,26,25,26,26,26,26,17,26,27,17,26,27,17,0,26,26,26,27,26,27,26,27,17,26,27,17,26,26,26,17,0,26,27,26,27,26,26,27,17,26,26,26,0,26,26,27,17,26,26,27,17,26,27,17,26,27,17,26,17,26,27,17,26,27,17,26,26,27,17,26,26,27,17,26,26,26,0,26,26,27,17,26,26,26,26,25,26,26,26,27,17,0,25,25,26,27,26,26,26,26,26,26,27,17,26,17,17,26,17,17,26,26,26,26,26,27,17,26,27,26,26,26,26,27,25,25,26,26,27,17,26,25,26,26,27,17,26,26,17,26,26,27,17,28,26,27,17,26,27,0,26,17,26,26,26,26,27,17,26,26,26,26,26,17,26,26,27,17,26,26,0,26,0,26,26,17,26,26,27,17,26,17,26,26,26,26,26,26,27,17,26,26,27,17,26,25,25,26,28,26,27,17,26,26,27,17,26,26,27,26,26,26,0,26,26,27,17,26,26,26,0,26,17,17,26,26,27,17,17,26,27,17,26,26,26,26,26,0,26,26,27,17,26,27,17,0,26,0,26,26,26,25,26,17,25,25,26,27,17,26,27,17,26,17,26,26,26,17,26,26,27,17,26,26,26,26,0,26,26,0,26,27,17,26,26,26,27,17,26,27,26,26,26,27,17,26,26,26,26,26,26,26,27,17,26,26,26,27,26,27,26,26,26,27,17,26,27,26,28,26,27,17,0,26,27,25,28,28,26,27,17,26,26,27,17,26,26,26,0,26,0,26,26,26,27,17,26,26,26,27,26,0,26,26,26,27,17,26,26,28,17,26,17,26,26,26,27,17,26,27,17,26,26,26,26,26,0,26,17,26,27,17,25,25,26,27,26,27,17,26,26,26,0,26,27,26,27,17,0,26,17,0,26,26,26,26,27,26,26,27,17,26,27,17,17,26,26,27,0,26,26,25,28,28,26,17,0,25,26,27,17,26,26,27,26,26,25,26,27,17,0,26,26,27,17,26,26,26,27,17,25,26,26,0,26,17,26,27,17,26,25,26,25,25,26,27,26,27,26,27,26,27,26,27,17,25,26,26,26,26,26,0,26,26,27,17,25,26,26,28,26,17,26,25,25,26,0,26,26,27,17,26,26,0,26,27,25,26,27,17,26,26,26,27,17,26,26,0,25,25,25,26,17,25,25,26,27,26,26,26,27,17,26,25,25,26,26,25,28,28,26,27,17,26,26,26,27,17,26,27,28,26,27,17,26,26,26,0,26,27,17,26,27,17,26,26,27,17,26,26,26,26,26,27,17,0,26,26,0,26,27,17,26,26,27,17,26,26,27,17,26,17,26,27,17,25,25,25,17,26,27,17,26,26,26,27,26,27,17,26,26,26,27,26,26,27,26,27,26,27,17,26,26,27,26,26,27,26,26,26,27,17,26,0,26,26,26,0,26,26,0,26,27,17,26,26,27,26,27,17,26,27,17,26,26,27,17,26,27,17,26,26,26,26,17,26,0,26,26,27,17,26,0,25,25,26,26,26,26,27,17,26,26,27,17,26,28,26,27,17,26,26,28,26,27,17,26,26,27,17,0,26,26,26,26,26,17,26,17,0,26,27,17,26,26,27,26,27,17,28,26,27,17,26,26,27,26,27,17,26,26,26,27,26,26,26,26,27,17,26,17,26,27,26,26,27,17,26,26,27,26,27,17,26,26,26,28,25,26,17,26,0,26,26,27,17,26,26,25,26,27,17,25,17,17,26,26,26,26,27,17,26,26,27,17,17,17,17,17,17,17,25,26,0,25,26,17,26,26,26,27,17,26,26,25,26,0,25,26,26,26,17,26,27,17,26,26,25,25,25,26,25,26,26,26,17,26,27,17,0,26,26,25,26,25,26,26,26,0,26,27,17,26,26,27,25,26,25,26,27,17,0,26,27,26,25,25,25,28,28,26,27,17,26,25,26,27,17,0,25,26,27,28,25,26,27,17,26,26,26,27,17,26,26,25,26,25,26,0,26,26,26,27,17,17,26,27,26,25,26,25,26,26,26,26,27,17,26,27,0,26,27,0,25,26,25,26,0,26,26,26,27,17,0,26,27,17,26,25,25,26,25,26,27,0,26,26,26,27,17,25,26,27,17,26,25,26,25,26,26,26,17,17,26,27,17,25,25,26,26,0,25,26,25,26,26,28,26,27,17,26,27,17,26,26,25,26,25,25,25,25,26,27,26,26,26,27,17,26,26,25,26,25,26,26,17,26,0,26,27,17,26,0,26,27,17,25,26,25,26,26,26,25,26,27,17,0,26,26,0,25,26,27,17,25,26,26,25,26,17,26,27,17,26,26,25,26,25,26,26,0,26,26,27,17,26,27,26,25,26,0,25,26,26,26,17,26,27,17,26,26,25,26,0,25,26,0,25,26,26,27,17,26,27,17,26,26,25,26,25,17,17,17,17,17,17,17,25,26,27,17,17,26,17,26,17,0,26,27,17,26,26,25,26,25,26,17,26,17,26,26,27,17,26,26,25,26,27,26,17,26,27,26,26,27,17,26,27,17,26,25,26,0,26,25,25,26,26,26,27,17,26,26,17,25,26,17,17,26,0,26,26,26,27,17,26,0,25,25,26,0,25,25,17,17,26,17,25,26,27,17,26,26,27,26,27,17,26,25,26,27,17,25,25,26,27,17,26,0,25,26,26,26,27,17,26,0,26,25,26,26,25,26,27,17,26,27,26,27,17,26,27,26,25,26,26,26,26,17,26,27,17,26,26,25,26,17,0,26,26,26,26,27,17,0,26,26,27,17,25,26,27,17,26,27,26,25,28,28,26,27,17,26,27,17,26,26,0,25,28,28,25,26,27,17,26,26,25,26,27,26,27,17,26,26,25,28,28,25,26,27,17,26,0,26,27,26,26,27,17,26,25,26,27,25,26,27,25,26,27,26,25,25,26,26,27,17,26,25,17,17,26,27,25,26,27,26,26,26,17,26,27,17,26,25,26,27,25,26,26,27,0,26,0,26,26,27,17,25,26,27,25,26,27,17,28,25,26,27,17,26,26,26,17,26,27,17,26,25,25,25,25,26,27,17,25,25,26,17,26,25,25,26,27,17,26,27,26,27,17,0,26,27,26,25,26,27,17,26,27,26,0,26,27,17,26,27,17,26,0,26,25,26,26,26,26,17,26,27,17,26,26,25,26,27,28,26,27,17,26,25,26,26,27,17,25,26,27,0,26,25,25,25,26,24,26,0,25,26,24,26,26,27,17,26,26,25,26,0,26,0,26,25,26,27,17,26,27,17,0,26,0,26,27,17,25,26,26,26,26,25,25,26,27,17,26,27,26,25,26,27,17,26,26,27,26,25,25,25,26,27,17,24,26,26,25,26,26,25,25,25,26,27,17,26,0,25,26,27,17,0,26,26,25,26,27,17,26,26,26,26,27,17,26,26,25,26,26,26,27,26,17,26,27,17,0,26,27,17,26,25,26,26,0,26,26,26,27,17,26,26,25,26,17,26,26,26,26,27,17,26,26,25,26,26,26,27,17,0,25,26,27,17,26,27,17,26,27,17,26,0,25,26,27,17,26,27,25,25,26,27,26,25,26,27,17,26,27,26,25,26,26,0,28,26,27,17,26,26,27,17,26,26,25,26,26,27,26,27,26,26,27,17,25,25,26,0,26,25,26,26,26,26,25,26,27,17,26,28,26,25,26,17,26,25,26,27,17,26,26,27,17,25,28,28,26,27,17,26,27,17,25,26,26,28,26,17,26,26,27,17,26,27,17,26,0,25,26,27,17,26,26,27,26,0,26,27,17,0,26,27,25,26,27,17,25,17,17,17,17,17,17,17,28,25,26,27,17,25,26,27,17,26,26,26,27,17,26,17,26,27,26,26,0,26,26,26,27,17,26,0,26,26,25,26,27,26,26,25,25,25,25,26,27,17,24,26,0,26,26,17,26,26,26,26,27,17,26,26,26,25,28,28,26,27,17,0,26,26,27,17,26,27,17,26,26,26,26,26,0,26,26,27,17,26,25,25,26,17,26,26,26,25,25,26,27,17,26,27,17,26,26,26,26,26,26,26,27,17,26,25,28,28,25,26,27,17,26,26,17,26,26,27,26,27,17,26,17,26,26,27,26,17,26,27,17,26,0,26,27,17,26,27,26,17,26,17,25,28,28,26,27,17,0,17,26,27,26,27,26,27,17,26,17,26,26,26,26,26,17,26,27,17,26,26,17,25,25,25,26,27,17,0,26,27,17,26,27,26,27,25,25,28,28,25,26,27,17,17,26,27,26,27,0,25,25,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,25,25,17,26,27,17,25,26,27,17,0,26,27,26,27,17,25,25,25,25,26,27,17,26,27,25,25,17,26,27,17,0,26,27,26,27,26,27,25,17,17,26,27,17,26,27,17,26,27,17,25,25,25,25,26,27,26,27,17,26,27,26,27,26,27,17,26,27,0,25,28,28,26,27,17,25,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,25,26,27,25,26,27,17,17,26,27,17,25,28,28,17,26,27,17,25,26,27,17,26,17,26,27,17,25,26,27,26,27,25,17,26,27,17,25,25,25,26,27,17,26,27,17,0,26,27,17,26,27,0,25,26,27,17,25,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,0,26,27,25,25,17,26,27,17,26,27,26,27,26,27,25,25,25,26,27,17,24,26,27,26,27,25,26,27,17,17,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,0,25,25,28,28,26,27,17,26,27,26,27,17,26,27,17,25,26,27,17,17,26,27,17,26,27,26,27,17,25,25,26,27,26,27,17,26,27,17,26,27,17,26,27,17,26,27,25,26,27,26,27,26,27,17,26,27,17,25,26,27,17,17,26,27,26,27,25,26,27,0,25,26,27,25,26,27,26,27,26,27,17,26,27,26,27,17,0,25,26,27,26,27,17,17,26,27,17,0,26,27,26,27,17,26,27,28,26,27,17,25,26,27,25,26,27,17,0,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,26,27,0,26,27,17,17,17,26,27,17,26,27,26,27,0,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,25,26,27,17,25,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,26,27,0,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,25,25,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,17,0,25,26,27,26,27,17,17,26,27,0,26,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,17,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,17,25,28,28,26,27,17,0,26,27,17,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,26,27,25,28,28,26,27,17,26,27,25,25,25,25,26,27,17,26,27,26,27,17,0,26,27,26,27,25,26,27,25,17,26,27,17,26,27,0,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,26,27,25,25,26,27,0,25,26,27,17,26,27,26,27,17,25,26,27,17,26,27,26,27,26,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,17,26,27,17,17,26,27,26,27,17,26,27,26,27,0,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,0,26,27,25,26,27,17,26,27,17,0,25,26,27,25,25,28,28,26,27,17,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,25,25,25,26,27,25,26,27,17,26,27,26,27,0,25,26,27,25,26,27,26,27,0,17,26,27,25,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,28,25,26,27,17,25,28,28,26,27,17,25,26,27,24,0,25,26,27,17,25,26,27,25,26,27,17,26,27,0,25,25,25,25,26,27,17,26,27,26,27,25,26,27,25,25,25,26,27,24,26,27,26,27,25,25,25,26,27,17,26,27,26,27,26,0,17,17,26,27,26,27,26,27,0,25,26,27,17,26,27,26,27,25,25,26,27,17,26,27,17,26,27,17,26,27,25,26,27,17,26,27,26,27,25,25,26,27,24,25,28,28,17,26,27,17,26,27,26,27,25,25,25,26,27,17,0,28,26,27,17,26,27,25,25,25,17,26,27,17,23,23,25,26,27,0,26,27,26,27,17,0,25,26,27,17,26,27,26,27,25,25,25,25,26,27,17,25,26,27,17,26,27,17,26,27,25,26,27,17,26,27,26,27,0,25,25,28,28,26,27,17,17,26,27,17,26,27,26,27,17,25,26,27,17,26,27,26,27,17,25,17,26,27,17,26,27,26,27,26,27,0,25,26,27,17,26,27,17,26,27,17,26,27,26,27,17,25,28,28,26,27,17,26,27,25,26,27,17,17,26,27,17,26,27,26,27,0,25,17,26,27,17,26,27,17,26,27,17,25,26,27,17,0,26,27,26,27,26,27,0,26,27,26,27,17,26,27,17,25,17,26,27,17,26,26,27,26,27,25,26,27,0,17,26,27,17,17,17,17,17,17,17,17,26,27,25,17,26,27,17,26,27,25,28,28,26,27,17,0,26,26,26,0,26,25,26,27,17,26,27,17,17,26,27,26,27,17,26,27,26,26,25,26,27,17,26,26,26,27,26,27,26,17,26,27,25,26,27,17,26,26,27,26,27,26,27,26,26,25,26,27,17,26,25,26,27,17,25,25,25,26,17,26,26,27,26,25,26,27,17,0,26,26,27,26,27,26,0,26,26,25,26,27,17,26,26,27,17,0,26,17,17,26,0,26,26,25,26,27,17,26,25,26,27,17,26,26,27,26,0,26,28,25,26,27,17,0,26,26,26,26,26,26,25,26,27,17,0,26,17,26,25,26,27,17,26,17,23,26,27,26,25,25,26,27,17,26,27,26,26,26,26,0,26,27,25,26,27,17,26,26,27,17,26,17,26,26,26,25,26,27,17,28,26,27,17,26,26,26,26,27,17,26,25,26,27,17,0,26,27,26,26,26,26,25,25,28,26,27,17,25,26,0,17,26,17,26,26,26,26,26,27,17,25,26,26,27,26,26,27,26,26,26,0,25,25,26,27,17,26,0,26,27,26,26,26,26,25,26,26,26,27,26,26,26,17,17,26,25,26,26,26,26,26,26,27,0,26,25,26,28,26,17,26,26,26,0,26,26,25,26,26,25,26,26,26,27,17,26,27,26,27,25,26,26,26,26,26,26,27,25,26,17,25,26,27,17,26,0,26,27,17,26,27,26,27,17,26,26,25,17,26,26,17,26,27,17,26,26,26,26,17,25,26,27,0,17,26,27,17,26,26,26,26,26,17,25,26,27,17,26,26,27,17,26,26,27,26,0,17,26,27,17,25,26,0,26,26,26,26,17,17,17,26,27,17,26,27,17,25,26,26,26,26,17,26,27,17,0,26,26,25,26,26,0,26,27,17,26,27,17,26,27,17,26,27,17,17,26,17,25,26,26,17,26,27,17,26,26,26,27,26,25,26,0,17,26,27,17,26,27,17,26,26,17,25,26,26,25,26,26,26,26,26,27,0,26,26,25,26,26,26,26,26,26,0,26,25,26,26,26,26,27,26,25,25,26,26,25,26,26,27,17,0,26,26,26,26,26,25,26,27,26,26,26,26,0,26,26,25,26,26,26,26,27,26,26,25,26,25,26,0,26,0,26,26,26,26,27,17,26,25,26,26,26,17,26,26,26,27,26,27,25,26,27,26,27,0,26,27,26,27,26,27,26,27,0,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,26,27,25,25,26,27,26,27,26,27,0,26,27,26,26,27,0,26,27,25,25,26,27,17,26,27,26,25,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,25,28,28,25,28,28,25,26,27,17,26,27,26,27,25,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,26,27,26,27,28,25,28,28,26,27,17,0,25,25,26,27,17,25,26,27,0,26,27,25,26,27,25,26,27,26,27,26,27,25,26,27,17,25,25,26,27,17,28,28,28,28,26,27,17,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,25,26,27,26,27,26,27,26,27,0,25,28,26,27,17,0,26,27,26,27,25,26,27,26,27,26,0,26,27,26,27,17,26,27,17,26,27,25,26,27,17,26,27,17,26,26,27,26,27,26,27,26,27,25,17,17,17,17,17,17,17,25,26,27,17,0,26,27,25,26,27,26,27,25,26,27,26,26,27,26,27,26,27,26,27,17,26,27,17,26,25,26,27,17,26,27,26,27,26,27,0,26,27,26,27,17,25,25,25,25,26,27,17,26,27,17,17,26,27,26,27,26,27,26,26,27,0,26,27,26,27,26,27,17,26,27,0,26,27,0,26,26,27,26,27,26,27,0,26,27,26,27,17,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,17,0,26,27,26,27,17,26,27,26,26,27,17,26,27,26,27,26,27,0,26,27,25,25,26,17,0,26,27,26,27,17,26,27,0,26,27,25,25,26,27,17,26,27,26,27,17,26,26,26,17,26,17,26,27,26,26,27,17,26,26,26,0,26,17,26,27,26,26,0,25,26,17,26,26,0,26,27,26,26,26,26,27,17,26,26,27,26,26,0,26,26,0,26,27,17,17,26,26,17,26,27,17,26,26,26,17,26,0,26,26,27,17,0,26,26,0,26,26,26,17,26,26,26,26,17,0,26,27,26,17,26,17,0,26,17,26,26,26,25,26,17,26,26,26,26,26,26,26,28,26,27,17,26,26,27,17,0,26,26,26,27,17,26,27,0,26,17,26,26,26,26,26,26,27,17,17,26,26,26,27,17,25,28,28,25,28,28,25,25,26,27,17,26,25,26,26,26,25,26,17,26,25,17,26,27,17,26,27,26,26,26,26,26,0,26,0,26,27,26,26,27,17,26,27,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,0,26,26,26,26,26,26,26,26,26,27,17,26,26,26,26,0,26,26,26,27,26,27,0,26,27,17,25,25,25,25,26,27,17,25,28,28,26,27,17,26,26,26,26,26,25,25,25,25,25,25,26,27,17,25,26,26,27,26,26,17,26,26,26,26,26,26,26,27,17,26,26,27,26,27,26,0,26,26,26,27,0,26,26,26,17,26,26,26,26,28,26,27,17,26,26,26,26,26,17,17,26,27,17,25,25,26,26,17,25,25,25,26,24,26,26,0,25,26,26,26,17,0,26,26,26,0,26,26,17,26,26,26,26,26,0,26,26,27,17,26,27,26,17,0,26,26,17,26,26,26,26,27,26,17,26,17,26,27,0,26,26,26,26,27,17,26,25,26,26,26,26,27,26,26,26,26,0,26,26,26,26,0,28,26,27,17,26,26,26,26,26,26,17,26,17,17,17,26,26,0,26,26,26,26,26,26,27,17,0,26,26,26,26,27,17,26,26,0,26,27,26,26,26,26,0,26,26,26,26,26,17,26,17,17,26,0,26,27,26,17,26,26,26,26,0,26,26,26,0,26,26,26,26,26,27,17,26,27,0,26,26,26,27,17,26,0,28,26,27,17,25,26,17,26,27,17,26,26,25,26,17,26,0,26,26,27,26,27,0,25,26,27,17,26,26,27,26,26,26,26,27,17,26,26,26,26,26,26,26,27,26,26,27,26,17,26,26,26,17,26,26,26,26,26,0,26,26,26,27,26,26,27,24,26,26,17,26,26,26,27,26,26,26,26,26,26,26,27,26,0,17,17,26,26,0,26,17,26,26,27,26,0,26,0,26,26,26,26,0,26,26,27,26,25,28,28,26,27,17,26,27,0,17,17,26,26,26,26,27,26,27,26,17,0,26,27,0,26,27,17,26,26,26,26,26,26,0,26,26,26,26,26,26,26,25,25,17,17,17,25,26,27,17,26,26,26,26,26,26,26,26,0,26,26,0,25,26,26,26,26,26,26,17,26,27,26,25,25,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,27,17,0,26,26,17,26,17,26,17,26,26,26,26,17,26,27,26,26,26,26,26,26,26,17,26,25,25,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,25,26,27,17,26,27,26,27,0,26,27,26,27,17,17,26,27,26,27,25,28,28,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,17,25,25,26,27,17,26,27,25,26,27,25,26,27,28,26,27,17,17,26,27,26,27,25,25,26,27,17,26,27,26,27,25,25,26,27,28,26,27,17,26,27,25,26,27,25,25,26,27,0,26,27,0,26,27,25,26,27,26,27,26,27,26,27,25,26,27,17,28,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,25,26,27,25,28,28,26,27,17,25,28,26,27,17,26,27,25,17,17,26,27,17,25,25,23,25,25,26,27,17,26,27,25,25,25,26,27,25,26,27,17,26,27,26,27,26,27,25,17,26,27,17,26,27,26,27,25,26,27,17,26,27,26,27,25,25,26,27,17,26,27,26,27,0,25,25,26,27,25,25,25,26,27,24,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,27,0,25,26,27,26,27,26,27,26,27,26,27,26,25,26,27,26,27,17,17,26,26,27,25,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,0,26,27,25,26,27,25,25,26,27,26,27,26,27,26,27,25,25,26,27,24,0,26,27,26,27,17,26,27,26,27,25,25,25,26,27,17,25,25,26,27,17,0,26,27,17,26,27,26,27,26,27,26,27,26,25,26,27,17,17,26,27,0,26,27,26,27,26,27,26,27,25,28,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,25,17,26,27,17,26,27,26,27,26,27,17,26,27,0,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,26,27,17,26,27,26,27,0,26,27,26,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,26,27,26,27,26,27,17,17,26,27,26,27,26,26,26,26,26,26,17,17,26,26,26,26,26,26,26,27,17,25,26,27,0,26,26,26,26,26,25,26,27,26,27,26,26,27,25,26,24,26,26,0,26,27,17,26,26,27,17,26,17,26,26,26,26,25,25,25,28,28,26,27,17,26,27,26,27,26,0,26,26,26,26,26,26,26,26,0,26,26,26,27,26,0,26,26,26,27,26,26,26,26,17,17,26,26,26,27,17,17,26,17,26,27,26,26,26,26,27,17,26,26,27,17,26,26,26,26,26,26,26,26,17,17,26,27,26,27,17,26,26,17,25,25,26,27,26,26,26,26,26,17,17,26,26,26,27,26,26,26,26,27,26,17,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,0,26,27,17,26,27,26,27,0,26,27,17,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,17,17,26,27,0,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,26,27,26,27,0,26,26,26,26,25,26,27,26,26,26,26,25,28,28,25,28,28,25,25,26,27,17,25,26,17,25,26,27,17,25,26,17,26,27,17,26,26,27,17,26,26,0,26,26,27,26,26,26,26,26,27,26,0,26,0,26,26,17,0,26,26,0,26,27,17,26,26,27,26,26,26,26,26,25,26,27,26,26,26,0,26,0,26,26,26,26,25,26,27,0,25,26,27,26,27,26,26,26,25,17,26,27,17,26,25,26,27,26,25,25,28,26,27,17,26,0,26,26,0,26,0,25,26,27,17,26,27,26,27,26,25,26,27,26,28,25,26,27,17,26,0,26,25,26,27,26,0,26,25,17,17,25,26,27,26,27,26,17,0,26,25,26,27,25,26,27,17,17,17,26,27,17,26,26,27,26,0,26,27,25,25,25,26,27,26,26,26,25,26,27,25,26,27,26,26,25,26,27,0,26,25,26,27,25,26,27,26,26,26,26,26,27,17,26,27,17,26,0,25,25,26,27,17,26,26,17,26,25,26,27,26,26,26,26,25,25,25,25,26,27,17,17,26,27,25,26,27,17,26,27,25,26,27,25,26,27,25,26,27,26,27,26,27,17,26,27,17,26,27,17,25,25,26,27,26,27,26,27,26,27,17,26,27,26,27,25,25,26,27,26,27,26,27,26,27,26,27,25,26,27,0,25,26,27,0,26,27,26,27,26,27,25,26,27,17,25,17,17,26,27,26,0,26,27,17,0,26,25,26,27,26,25,26,27,26,26,26,0,26,17,17,26,26,26,26,27,17,26,25,26,27,0,26,26,26,26,0,26,25,26,27,26,27,0,25,26,27,17,26,26,26,17,26,27,17,26,27,17,0,26,25,26,27,26,25,26,27,0,26,26,0,25,26,27,26,26,27,17,26,27,26,25,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,25,26,27,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,17,25,26,27,17,26,27,0,26,27,26,27,25,26,27,25,26,27,26,27,25,28,28,26,27,17,26,27,17,26,27,17,26,27,25,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,25,26,27,17,25,26,27,17,25,26,27,17,0,26,27,26,27,0,26,27,17,26,27,26,25,26,27,17,0,26,27,26,27,26,27,26,27,25,26,27,25,25,25,25,26,27,17,0,26,26,26,26,25,26,27,0,25,25,26,27,26,26,27,25,25,25,26,27,17,25,26,27,25,25,26,27,17,26,27,17,25,26,0,26,0,26,25,26,27,26,27,17,26,26,26,0,26,25,26,27,0,25,26,27,17,26,25,25,26,27,17,26,25,26,27,26,0,26,26,26,26,26,25,26,27,26,26,26,26,27,17,0,25,26,27,26,28,26,17,26,26,26,26,27,17,26,27,17,26,27,26,28,26,17,26,26,26,27,17,0,26,0,26,26,25,26,27,26,27,26,26,26,25,28,28,26,27,17,26,26,26,27,26,26,27,17,26,17,26,26,27,17,26,25,25,26,27,17,26,27,25,25,26,27,17,25,26,27,17,25,26,17,26,26,26,26,27,17,26,27,17,26,25,25,25,25,26,27,17,26,26,26,0,26,26,26,26,25,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,25,26,27,26,27,17,25,26,27,26,26,27,0,26,26,26,25,26,27,26,27,17,0,26,25,28,28,25,26,27,17,26,26,17,26,27,26,27,17,25,26,27,17,26,26,0,26,27,17,26,0,25,26,27,17,26,26,26,26,26,25,25,26,27,17,26,25,25,25,26,27,17,26,26,25,25,25,26,27,17,26,26,25,26,26,26,17,26,26,27,26,27,26,17,26,26,0,26,26,17,26,26,26,26,0,26,27,17,26,26,26,17,26,26,26,26,17,26,0,26,26,26,26,26,26,25,26,17,26,26,26,26,17,26,27,17,26,26,26,25,28,28,26,27,17,25,28,28,26,27,17,26,27,17,0,26,26,0,26,0,26,26,27,26,27,26,26,27,17,17,26,17,26,26,0,26,26,0,26,26,17,26,26,27,17,26,26,26,26,17,0,26,26,26,26,27,17,26,26,26,0,26,17,26,26,26,25,28,28,26,27,17,26,26,26,27,17,26,17,26,27,17,26,25,25,25,26,27,17,26,26,25,26,26,17,17,26,17,26,25,26,27,26,27,26,27,26,26,27,17,26,26,0,26,27,17,26,26,26,26,26,26,26,27,17,26,0,26,26,27,17,17,17,26,17,26,27,26,26,26,17,25,25,26,27,17,17,17,17,26,26,17,26,17,26,27,17,26,26,27,17,26,27,17,0,26,25,17,26,17,26,26,26,26,0,26,26,27,17,26,27,17,26,26,26,27,17,0,26,27,17,26,17,26,17,26,17,26,25,26,27,26,27,26,0,26,25,25,25,26,24,0,26,27,17,26,26,26,17,26,0,26,27,17,26,26,0,26,26,26,26,26,26,26,26,17,26,27,25,26,27,17,26,25,25,25,25,17,17,26,27,17,25,25,17,17,26,17,26,26,17,26,17,26,26,26,26,26,26,0,26,17,26,27,26,27,26,26,26,26,26,26,0,26,27,17,26,26,26,27,26,26,26,17,26,26,26,27,17,0,26,17,26,27,26,0,26,26,27,17,26,26,17,26,17,17,26,26,26,26,27,26,25,25,26,26,26,26,17,26,26,26,26,26,0,26,26,26,27,17,26,26,26,25,26,26,26,26,26,26,17,17,26,26,26,26,26,26,26,26,0,26,26,26,27,17,26,26,26,26,26,26,26,26,26,27,17,0,26,26,26,27,26,26,27,17,26,0,26,26,26,26,26,27,17,26,26,0,26,26,26,0,26,27,26,26,0,26,26,26,26,26,27,17,26,17,26,25,25,25,26,17,24,26,26,26,26,26,17,26,26,26,0,26,27,26,27,17,26,26,27,17,26,26,27,0,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,0,26,26,25,17,25,26,17,26,0,17,26,27,17,28,26,27,17,26,17,26,26,0,26,26,26,26,26,26,26,25,26,26,26,26,26,0,26,27,17,26,26,0,26,27,17,26,28,26,27,17,26,26,27,26,27,17,17,26,26,26,26,26,26,26,26,25,28,28,25,26,27,17,26,26,26,26,26,27,17,26,0,26,27,17,26,26,26,26,0,26,26,26,26,26,27,26,26,0,26,27,26,26,26,0,26,26,26,26,0,26,26,26,26,27,17,26,27,17,26,26,26,27,26,27,17,26,0,26,17,26,27,17,26,25,25,28,28,26,27,17,25,25,26,27,25,25,26,26,27,25,26,26,26,27,26,27,17,26,27,26,26,26,26,27,26,26,26,26,26,27,26,27,26,0,26,17,26,26,26,17,17,26,26,0,26,26,28,26,27,17,26,27,0,26,26,26,26,26,0,26,27,26,26,27,17,26,26,26,26,27,17,26,27,17,0,25,25,26,27,25,26,26,26,25,26,26,27,17,28,26,17,26,26,26,27,28,28,28,28,28,28,26,17,25,28,28,26,27,17,26,26,26,26,26,27,26,26,27,26,17,26,25,26,24,0,26,27,26,26,26,17,17,26,17,26,26,25,25,26,17,26,0,26,26,27,26,26,26,17,0,26,26,26,26,0,26,26,26,27,26,26,27,0,26,26,27,26,26,26,26,26,0,26,26,26,26,0,26,26,26,26,27,17,25,25,26,27,17,26,26,26,26,27,26,26,25,25,26,27,17,26,27,26,17,26,26,27,26,27,26,27,0,26,26,26,26,0,26,26,26,26,26,0,26,26,27,17,0,26,17,26,17,0,26,26,0,26,26,0,26,26,27,26,27,17,26,26,26,27,26,26,26,25,25,26,27,17,25,26,17,26,26,26,0,26,27,17,26,26,26,26,27,17,26,0,26,0,26,27,17,17,26,26,26,26,26,26,26,26,27,26,26,26,26,27,17,26,26,0,26,27,26,26,25,25,25,25,26,27,17,0,26,0,23,26,17,26,25,26,26,26,27,26,26,26,26,26,26,17,26,17,0,26,27,26,26,27,17,25,25,26,24,26,26,25,17,25,26,17,26,26,27,26,17,26,26,27,26,26,26,26,27,17,17,17,26,26,0,26,26,26,27,17,26,26,0,26,26,25,28,28,25,26,27,17,17,17,26,27,25,25,25,25,25,26,27,17,26,26,26,0,26,25,26,17,26,26,26,26,26,26,26,26,17,26,26,26,26,26,26,26,26,26,26,0,26,26,0,26,26,0,17,26,17,25,28,28,17,26,27,17,26,27,17,26,0,26,26,27,17,26,26,27,17,25,25,26,27,26,25,26,27,17,26,26,26,26,17,26,26,26,26,27,17,0,25,26,27,17,26,26,17,26,26,26,26,26,25,28,28,25,17,17,26,27,17,25,17,26,27,17,26,27,26,25,26,26,26,26,26,26,25,26,27,17,25,26,27,26,26,26,26,25,25,26,17,0,25,26,27,17,26,0,26,26,26,26,25,25,26,27,0,26,26,17,26,27,17,26,26,26,27,17,26,26,26,17,26,17,26,26,0,26,27,17,26,26,26,26,27,26,25,26,27,26,26,26,26,27,26,17,26,26,26,27,26,26,26,25,26,17,26,25,25,26,27,26,26,26,27,17,26,27,17,0,26,25,26,26,17,0,26,25,25,26,27,26,26,27,26,27,26,27,26,26,27,17,0,26,26,26,26,26,26,26,26,0,26,26,26,26,26,25,26,17,24,26,27,17,25,25,26,26,27,26,26,27,26,26,26,26,26,0,26,27,26,26,0,26,27,17,0,26,26,27,17,26,26,17,26,26,26,0,26,26,25,26,27,26,26,26,26,27,25,26,27,17,26,26,0,26,26,27,26,17,26,27,26,17,26,17,26,26,26,26,27,0,25,28,28,26,27,17,26,26,26,0,26,17,26,17,26,27,17,26,26,27,17,26,27,17,26,26,26,26,26,26,26,26,26,27,17,26,27,26,26,17,26,26,27,17,26,26,26,26,25,26,24,26,26,25,25,17,17,26,25,26,27,17,26,0,26,26,26,26,26,27,26,26,27,17,26,26,0,26,0,26,26,26,26,27,26,17,26,27,17,26,17,0,26,26,27,26,26,26,26,26,0,26,26,26,27,26,26,27,26,27,17,0,26,25,26,26,26,26,26,27,17,26,26,26,26,26,25,26,26,26,26,17,26,26,27,26,26,27,26,17,26,26,26,0,26,26,26,26,17,26,17,26,26,0,26,0,26,26,26,17,26,26,26,26,27,25,25,26,25,26,27,17,26,27,25,25,26,17,25,26,17,25,26,17,26,26,26,27,17,26,17,26,26,27,17,0,26,26,26,26,26,26,26,26,26,0,26,27,17,17,17,26,17,26,26,26,26,26,26,26,0,26,26,25,26,26,27,26,26,0,26,26,26,26,26,26,26,26,26,26,26,26,25,28,28,26,27,17,0,26,25,26,26,26,26,27,25,25,25,26,17,24,26,27,17,26,25,25,26,27,17,25,25,26,26,26,26,26,26,0,26,26,0,26,17,26,26,26,26,25,25,26,26,28,26,27,17,26,26,27,17,26,26,26,26,26,17,26,27,17,26,26,26,17,26,17,26,17,26,27,17,26,26,26,26,0,26,17,26,27,17,26,25,28,28,26,27,17,0,26,25,25,26,26,17,25,26,27,17,26,27,17,26,26,26,26,17,26,17,26,27,0,26,0,26,26,0,26,17,26,27,17,26,26,26,27,17,26,27,26,17,26,27,17,26,26,26,25,28,28,26,27,17,26,27,17,0,17,26,27,17,26,26,26,26,26,17,17,26,27,17,26,26,17,17,26,26,26,17,26,27,17,0,26,27,26,26,27,26,27,26,0,17,26,27,17,28,25,26,17,26,26,26,27,17,26,26,25,28,28,26,17,25,26,17,25,26,26,26,27,26,0,26,26,25,25,26,27,26,17,26,0,26,26,0,26,25,26,25,26,27,26,26,26,25,26,26,26,25,26,26,26,26,26,17,17,17,17,17,17,17,26,26,25,17,26,27,17,26,26,26,26,25,26,25,17,26,27,17,25,26,25,26,27,26,26,26,0,26,26,25,25,26,27,17,0,17,26,27,17,26,25,25,25,26,27,17,26,26,0,25,25,25,25,26,17,25,26,26,27,26,26,0,25,17,17,17,17,17,17,17,26,26,25,26,25,26,26,26,25,26,26,26,25,26,25,25,25,25,25,26,27,17,26,25,26,26,25,26,0,26,25,26,17,25,26,0,26,28,26,27,17,26,28,26,27,17,26,25,26,27,25,26,26,26,26,26,27,25,26,25,26,25,25,26,26,26,27,17,26,17,26,26,25,25,25,25,25,26,27,17,25,26,27,26,26,0,25,25,25,28,28,26,27,17,26,26,27,25,25,26,17,25,26,26,26,26,0,26,17,26,25,26,25,26,26,26,26,26,26,27,17,25,28,26,17,0,25,26,0,26,27,17,26,26,26,17,26,25,26,25,26,26,27,26,0,25,17,25,26,17,26,0,26,25,26,27,17,25,26,27,17,0,26,27,17,26,26,17,17,26,26,25,26,0,25,26,26,0,26,26,17,26,27,17,26,25,26,25,26,26,26,26,0,26,26,27,25,26,25,26,26,26,0,17,26,17,0,26,26,25,25,26,25,26,0,26,26,26,26,0,26,25,25,26,25,26,28,28,26,17,26,17,17,26,26,26,25,26,25,26,27,17,26,26,26,26,26,25,26,25,26,26,26,27,17,26,27,17,26,27,17,26,27,25,26,27,25,26,27,26,26,27,26,27,26,27,0,26,27,25,17,25,25,26,27,17,25,17,17,26,27,26,27,26,27,26,27,17,25,26,27,26,27,25,26,27,25,26,27,26,27,25,26,27,17,26,27,26,27,0,26,27,25,25,25,26,27,25,17,26,27,17,0,28,26,27,17,26,27,26,27,26,27,26,27,25,26,27,25,25,26,27,17,26,27,25,26,27,25,17,25,26,27,17,26,27,26,27,25,26,27,25,26,27,26,27,17,26,27,0,26,27,26,27,17,0,26,27,0,25,26,27,25,26,27,26,27,17,17,26,27,26,27,0,26,27,0,26,27,25,26,27,17,0,25,26,27,26,27,0,25,26,27,26,27,26,27,26,27,25,26,27,0,25,26,27,26,27,25,26,27,26,27,26,27,26,27,25,26,27,25,26,27,17,26,27,25,26,27,26,27,26,27,26,27,17,25,28,28,25,28,28,25,25,25,25,26,27,17,25,26,26,27,17,25,26,27,26,27,26,27,26,27,17,25,26,27,17,25,26,27,17,26,27,25,26,27,0,26,27,17,0,25,26,27,17,26,27,25,26,27,17,25,17,17,17,17,17,17,17,25,26,27,17,26,27,25,26,27,17,26,27,26,27,17,25,28,28,17,26,27,17,25,25,26,27,17,17,26,27,17,26,27,25,25,26,27,17,26,27,26,27,26,27,25,26,27,25,26,27,17,26,27,17,25,26,27,26,27,26,27,26,27,17,25,26,27,26,27,26,27,25,25,26,27,17,26,27,17,26,27,17,26,27,25,26,27,17,25,26,27,17,17,26,27,17,26,27,17,26,27,17,0,25,25,26,27,17,25,25,26,27,17,25,25,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,0,25,26,27,26,27,26,27,17,26,27,17,26,27,17,0,25,26,27,17,25,26,27,17,25,25,26,27,17,26,27,0,25,28,28,25,26,27,17,26,27,17,17,26,27,26,27,26,27,25,25,26,27,17,17,17,26,27,0,25,25,17,26,27,17,25,26,27,17,26,27,26,27,26,27,25,17,26,27,26,17,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,26,27,25,26,27,17,0,25,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,25,26,27,26,27,17,0,26,27,17,26,27,26,27,25,26,27,17,26,27,17,25,28,28,26,27,17,26,27,26,17,25,28,28,26,27,17,26,27,25,26,27,25,26,27,17,25,26,27,0,26,27,26,27,17,26,27,26,27,25,25,25,26,27,26,27,26,27,17,26,27,17,26,25,26,27,26,27,17,25,28,28,25,28,28,25,25,25,25,25,25,26,27,17,26,27,17,26,27,25,25,26,27,17,0,26,27,26,27,26,27,25,26,27,17,25,28,28,26,27,17,26,27,26,27,26,27,17,26,27,25,26,27,17,25,25,26,27,0,26,27,17,26,27,26,27,25,26,27,0,25,26,27,0,26,27,25,26,25,26,27,17,26,27,26,25,25,25,25,26,27,17,26,27,25,26,27,25,25,25,17,26,27,17,17,26,27,26,27,17,26,27,17,26,27,26,27,26,27,17,0,25,26,27,17,0,26,27,26,27,17,26,27,26,17,26,26,27,17,25,26,26,26,26,26,26,27,17,26,27,25,25,25,17,17,26,25,17,25,26,17,26,27,17,0,26,27,17,26,17,26,26,17,25,26,26,0,26,17,26,17,26,0,26,25,25,25,25,26,27,17,24,25,25,28,28,26,17,26,17,26,27,28,26,27,17,26,17,26,27,17,25,26,25,25,26,26,17,17,26,17,26,25,26,0,25,25,26,17,26,27,25,26,17,26,0,26,17,25,26,0,26,26,26,17,25,17,17,17,17,17,17,17,25,17,26,27,17,0,17,26,17,26,27,17,26,17,26,0,26,26,25,26,17,26,26,26,26,26,26,27,25,17,17,26,27,17,17,17,26,17,25,17,26,27,26,26,26,17,26,25,17,25,26,17,26,0,26,17,26,0,26,26,26,27,17,26,26,26,25,25,25,26,17,26,26,26,27,26,27,17,26,17,26,25,26,26,17,26,26,26,17,17,26,17,26,17,26,17,26,17,26,27,17,25,17,26,17,26,25,26,27,26,17,26,26,26,26,27,17,25,26,27,17,26,27,17,28,26,27,17,26,27,17,26,26,26,17,26,17,26,17,26,27,17,26,27,17,26,17,26,17,26,27,26,25,17,17,26,17,17,17,26,26,26,0,26,27,17,26,27,17,26,26,26,17,17,26,26,26,26,17,25,26,27,25,26,17,17,26,26,26,27,26,17,26,27,26,27,26,27,17,25,26,17,0,26,26,26,27,17,26,17,26,27,17,26,17,26,17,26,17,25,25,26,17,0,26,0,26,27,26,27,17,17,26,0,17,26,26,0,26,0,26,27,17,26,25,26,27,17,26,26,27,17,26,26,0,26,25,26,27,26,0,26,26,17,26,27,26,26,26,17,26,26,0,26,26,26,26,17,26,26,26,27,26,26,26,26,26,26,26,0,26,0,26,27,26,25,26,27,17,26,26,26,27,17,26,27,0,26,26,25,26,27,17,17,26,0,26,27,25,26,27,17,26,26,26,26,27,17,26,26,25,25,25,25,26,27,17,23,25,25,25,26,27,17,26,27,26,27,26,27,26,27,25,26,27,0,26,27,17,26,27,26,27,26,27,0,25,25,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,0,26,27,17,26,27,26,27,0,25,26,27,0,26,27,26,27,17,26,27,0,25,25,25,26,27,17,25,26,27,17,26,27,0,26,27,26,27,0,26,27,25,26,26,27,17,25,25,26,27,17,0,25,26,27,17,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,17,25,25,25,25,25,25,26,27,17,0,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,25,26,27,26,27,26,27,26,27,0,26,27,0,26,27,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,0,26,27,26,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,0,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,0,26,27,26,27,26,27,17,17,26,27,0,26,27,0,26,27,0,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,26,27,25,25,25,26,27,26,27,25,28,28,25,26,27,17,26,27,28,26,27,17,26,27,26,27,17,0,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,26,27,0,26,27,0,26,27,25,26,27,17,26,27,26,27,26,27,0,25,28,28,26,27,17,25,17,25,26,27,17,26,27,17,26,27,0,26,27,17,0,26,27,26,27,26,27,26,27,26,27,17,26,27,0,28,26,27,17,25,26,27,17,0,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,0,17,26,27,17,26,27,17,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,25,25,26,27,26,27,25,26,27,26,27,26,27,25,25,26,27,17,25,26,27,26,27,26,27,0,17,17,26,27,26,27,17,17,26,27,26,27,17,26,27,25,26,27,17,26,27,25,26,27,17,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,26,27,17,25,26,27,17,26,27,17,25,25,26,27,17,26,26,27,17,25,28,28,26,27,17,26,27,17,26,27,26,27,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,25,26,27,0,26,27,25,26,27,17,0,26,27,25,25,26,27,17,26,27,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,25,28,28,26,27,17,25,26,27,26,27,26,27,25,26,27,17,0,28,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,25,26,27,17,25,25,26,27,25,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,17,26,27,17,0,26,27,0,26,27,26,27,25,28,28,26,27,17,26,27,26,27,26,27,17,25,26,27,26,27,0,26,27,25,26,27,17,25,28,28,26,27,17,25,25,28,28,26,27,17,26,27,25,26,27,0,25,28,28,26,27,17,25,26,27,0,26,27,25,25,26,27,25,26,27,26,27,25,26,27,0,26,27,26,27,17,25,25,26,27,17,25,26,27,26,26,27,26,27,17,26,27,0,25,26,27,25,17,26,27,26,27,26,27,25,26,27,26,27,17,25,28,28,25,26,27,17,26,27,0,25,26,27,17,26,27,0,26,0,26,27,25,25,26,27,26,27,26,27,25,26,27,25,26,27,26,27,25,25,28,28,26,27,17,0,26,27,26,27,26,27,26,27,17,25,25,25,26,27,17,25,25,26,27,17,26,27,25,25,26,27,26,27,17,26,27,25,26,27,17,25,26,27,17,26,27,26,27,26,27,26,27,25,17,25,26,27,17,26,27,26,27,26,27,26,27,17,28,26,27,17,0,26,26,27,17,25,26,27,17,0,26,27,26,27,25,28,26,27,17,28,25,26,27,17,25,26,27,17,0,28,28,25,26,27,17,0,26,27,17,26,17,25,26,27,26,27,0,25,26,27,26,27,25,26,26,27,26,27,26,27,26,27,17,17,26,27,17,26,27,17,26,0,25,26,27,17,26,27,26,27,25,28,28,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,26,27,17,26,27,25,28,28,26,27,17,0,25,25,26,27,17,25,26,27,26,27,0,25,26,27,26,27,26,27,25,26,27,17,26,27,25,28,28,26,27,17,26,26,27,17,26,27,26,27,0,25,26,27,17,25,25,28,25,26,27,17,0,26,27,0,26,27,26,27,26,27,25,25,26,27,26,27,25,26,26,27,26,27,26,27,26,27,17,26,27,25,26,17,26,27,25,26,27,25,26,27,26,27,26,26,27,26,27,25,26,27,17,0,26,17,26,27,25,26,27,26,27,25,26,27,17,25,25,26,27,17,26,27,17,26,27,26,27,0,26,27,25,26,27,0,26,26,27,0,26,27,25,26,27,17,26,27,25,17,17,26,27,17,26,26,27,17,26,27,26,27,25,26,27,25,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,25,26,27,17,26,27,26,27,17,26,27,0,26,27,25,28,25,26,27,17,0,26,27,26,27,26,27,25,26,27,26,27,25,26,26,27,25,28,28,26,27,17,25,26,27,17,26,27,17,26,27,26,27,26,27,26,26,27,25,26,27,17,26,27,17,26,27,26,27,26,27,26,27,17,0,26,27,26,27,0,26,27,26,27,17,26,27,26,27,17,26,27,26,27,17,0,26,25,26,27,17,26,27,25,25,26,27,17,26,27,17,26,27,26,27,17,25,26,27,17,0,26,27,17,26,27,26,26,27,17,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,25,26,27,17,26,27,26,27,0,26,25,26,27,17,26,27,17,26,27,0,26,27,25,28,28,25,26,27,17,25,25,26,27,17,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,25,28,28,26,27,17,17,26,27,26,27,25,25,26,27,26,27,26,26,27,25,26,27,17,0,26,27,26,0,26,27,25,26,0,26,27,0,26,27,25,26,27,17,26,27,25,26,26,27,17,26,27,0,26,26,27,0,26,27,17,17,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,26,27,17,0,26,27,17,26,27,26,27,26,27,25,25,26,27,17,25,26,27,17,26,27,25,17,26,27,17,26,27,25,26,27,26,27,26,27,17,25,26,27,26,27,26,27,26,27,26,26,26,27,0,26,27,26,27,26,27,26,27,17,26,27,17,17,26,27,28,26,27,17,26,27,26,27,17,25,25,25,26,27,17,24,26,27,17,26,27,17,26,27,17,25,26,27,17,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,25,26,27,17,26,23,26,27,17,25,26,27,26,27,26,27,0,26,26,26,17,26,17,0,26,17,26,17,26,17,0,26,27,17,26,17,26,25,25,26,27,17,26,27,25,26,27,17,26,26,26,17,0,26,26,26,0,26,26,17,26,27,26,25,25,25,26,27,17,26,0,26,27,0,26,25,26,27,0,26,17,26,26,0,26,26,26,25,26,26,26,27,17,26,17,26,17,26,17,26,27,17,26,17,26,17,26,26,17,26,26,0,26,27,17,26,26,26,26,26,17,26,26,27,25,26,0,26,26,26,0,26,0,26,28,26,17,26,26,0,26,26,26,26,26,27,17,17,26,26,27,17,0,26,17,0,26,17,26,17,25,28,28,25,28,28,26,27,17,26,27,17,26,17,26,26,26,26,26,0,17,26,27,17,26,26,26,26,0,26,26,26,27,17,26,26,26,27,26,0,26,26,26,17,26,27,17,26,26,27,17,26,28,26,27,17,26,26,26,26,27,17,17,17,26,17,0,26,17,26,27,17,26,17,26,27,17,0,26,17,26,26,26,26,0,26,26,26,26,26,28,25,26,27,17,26,26,0,25,25,17,26,17,26,25,26,27,17,0,26,0,26,27,17,0,26,26,25,25,25,17,26,24,26,26,27,26,26,26,26,26,27,17,26,26,27,17,0,25,25,25,26,27,17,26,26,26,26,25,26,0,26,26,26,25,26,0,17,17,26,26,27,26,0,25,26,24,26,26,26,25,25,26,25,26,26,27,26,26,26,26,26,0,26,26,0,26,26,26,27,25,26,26,26,26,26,26,28,26,17,25,26,27,17,26,27,26,0,26,27,26,26,27,17,0,26,17,26,26,26,26,27,26,0,26,27,17,26,26,26,25,25,25,25,28,28,26,27,17,26,27,17,26,26,27,17,26,26,26,17,26,25,28,28,25,28,28,25,26,27,17,26,27,26,26,26,26,26,17,26,0,26,0,26,17,17,26,17,26,26,26,26,27,17,26,26,26,0,26,26,0,26,0,26,26,26,26,25,28,28,26,27,17,26,27,26,27,25,26,27,0,26,27,26,27,26,27,25,26,27,17,25,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,25,26,27,17,26,27,26,27,17,25,25,25,28,28,26,27,17,26,27,26,27,17,26,27,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,17,26,27,25,25,25,26,27,17,25,26,27,17,25,25,26,27,17,26,27,26,27,26,27,26,27,17,25,26,27,17,0,26,27,26,26,27,26,27,26,27,26,27,17,25,26,27,17,0,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,0,26,27,26,27,26,27,26,27,26,27,26,27,17,25,26,27,0,26,27,26,27,26,27,26,27,26,26,27,26,27,26,27,0,17,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,27,17,26,27,17,26,27,17,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,26,27,25,28,28,26,27,17,26,27,25,26,27,25,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,17,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,17,26,27,26,27,26,27,26,27,26,27,26,27,26,27,17,26,27,26,26,27,26,27,0,26,27,25,28,28,26,27,17,26,27,26,27,26,27,26,27,26,27,0,26,27,26,27,26,27,25,26,27,17,26,27,26,27,25,26,27,26,27,17,25,26,27,17,0,26,27,17,26,27,0,25,26,27,17,25,26,27,17,0,25,25,25,28,28,26,27,17,0,26,27,26,27,17,26,27,0,26,26,27,26,27,17,0,26,27,17,17,26,27,17,25,25,26,27,17,26,27,0,26,27,25,28,28,25,26,27,17,26,27,25,26,27,17,25,25,25,25,26,27,17,26,27,26,27,25,26,27,17,25,25,26,27,26,27,26,27,26,27,26,27,17,26,27,25,25,26,27,24,25,26,27,0,26,27,26,27,26,27,25,25,26,27,17,26,27,26,27,25,26,27,0,26,27,26,27,26,27,0,25,28,28,26,27,17,26,27,0,26,26,27,26,27,25,25,25,25,26,27,17,25,26,27,17,26,27,17,26,27,26,27,25,26,27,26,27,26,27,25,26,27,17,17,17,17,25,25,25,25,25,25,17,26,27,26,25,26,27,17,26,27,17,26,26,26,26,17,26,27,17,26,17,26,26,26,27,26,26,26,26,26,26,26,26,26,26,27,26,25,26,27,26,26,26,26,26,26,26,27,26,0,26,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,25,17,17,26,27,17,26,0,26,27,0,26,0,25,26,26,0,26,25,26,27,26,26,17,17,17,26,27,26,26,0,17,26,17,26,26,26,26,25,28,28,26,27,17,25,26,25,26,26,26,27,17,25,25,28,28,26,27,17,24,26,25,26,27,17,26,27,25,26,27,17,26,26,25,26,27,17,26,25,26,27,26,27,26,26,27,17,17,26,17,26,26,17,17,26,26,25,25,26,27,26,26,26,26,26,26,26,26,26,26,26,0,26,26,27,26,25,26,27,26,26,26,0,26,26,26,0,25,25,28,28,25,17,17,17,25,25,25,25,25,25,25,25,25,26,27,17,25,26,27,26,0,26,26,26,25,25,26,27,17,0,26,26,25,26,25,25,25,26,17,25,25,25,25,26,17,17,26,17,25,26,26,26,26,26,26,0,26,26,0,26,0,26,25,26,17,26,0,26,26,27,0,26,26,26,26,0,26,26,26,17,26,25,26,27,26,26,17,26,26,26,26,27,17,26,26,23,26,26,26,26,26,26,17,26,26,23,26,26,26,26,26,26,17,26,26,26,26,26,26,17,26,26,26,26,0,25,25,25,25,26,27,17,0,25,25,26,27,26,26,26,0,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,17,26,26,0,26,17,17,26,26,0,26,0,26,26,26,26,26,26,27,26,26,26,26,25,26,27,26,26,26,26,17,26,17,26,26,25,26,0,26,26,26,26,26,28,26,17,0,26,26,26,26,26,26,26,26,0,26,26,26,0,26,27,17,26,27,17,28,26,26,0,26,26,26,27,26,25,26,27,26,26,26,17,0,26,26,26,26,26,0,26,26,26,26,26,26,25,26,26,0,25,26,26,26,0,26,26,26,26,0,26,17,26,26,26,26,26,26,26,0,26,26,25,26,27,26,26,0,26,26,27,0,26,26,26,26,26,26,17,26,26,26,26,27,17,0,26,26,26,26,26,27,26,27,0,26,26,26,26,0,26,26,26,26,26,26,26,26,17,26,17,25,26,27,26,0,26,26,26,26,26,26,26,26,26,26,26,25,23,23,25,23,25,25,25,25,25,25,25,25,25,25,25,26,27,17] \ No newline at end of file diff --git a/test_data/small_entities.json b/test_data/small_entities.json deleted file mode 100644 index 9069d5c..0000000 --- a/test_data/small_entities.json +++ /dev/null @@ -1,316 +0,0 @@ -{"tick":0,"serverClass":"CWorld","id":0,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":1,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":1,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_WORLD.m_flWaveHeight":0.03125,"DT_WORLD.m_WorldMins":{"x":-3882,"y":-4570,"z":-560},"DT_WORLD.m_WorldMaxs":{"x":5240,"y":3936,"z":1641},"DT_WORLD.m_bStartDark":0,"DT_WORLD.m_flMaxOccludeeArea":0,"DT_WORLD.m_flMinOccluderArea":0,"DT_WORLD.m_flMaxPropScreenSpaceWidth":-1,"DT_WORLD.m_flMinPropScreenSpaceWidth":0,"DT_WORLD.m_iszDetailSpriteMaterial":"detail/detailsprites","DT_WORLD.m_bColdWorld":0},"pvs":1} -{"tick":0,"serverClass":"CTFPlayer","id":1,"props":{"DT_Local.m_flDucktime":0,"DT_Local.m_flFallVelocity":0.03125023842039809,"DT_Local.m_vecPunchAngle":{"x":0,"y":0,"z":0},"DT_LocalPlayerExclusive.m_vecViewOffset[2]":65.00006198888968,"DT_LocalPlayerExclusive.m_nTickBase":4859,"DT_LocalPlayerExclusive.m_hGroundEntity":1032192,"DT_LocalPlayerExclusive.m_vecVelocity[0]":0,"DT_LocalPlayerExclusive.m_vecVelocity[1]":0,"DT_LocalPlayerExclusive.m_vecVelocity[2]":0,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3431,"y":421.33099365234375,"z":0},"DT_TFLocalPlayerExclusive.m_vecOrigin[2]":298.03125,"DT_TFLocalPlayerExclusive.m_angEyeAngles[0]":0.3529411764705799,"DT_TFNonLocalPlayerExclusive.m_vecOrigin":{"x":-3431,"y":421.25,"z":0},"DT_TFNonLocalPlayerExclusive.m_vecOrigin[2]":298,"DT_TFNonLocalPlayerExclusive.m_angEyeAngles[0]":0.3529411764705799,"DT_TFNonLocalPlayerExclusive.m_angEyeAngles[1]":0,"DT_BaseEntity.m_flSimulationTime":58,"DT_BasePlayer.m_iHealth":125,"DT_BasePlayer.m_fFlags":257,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_BCCLocalPlayerExclusive.m_flNextAttack":69.33999633789062,"m_hMyWeapons.000":1606276,"m_hMyWeapons.001":1587845,"m_hMyWeapons.002":1211014,"m_hMyWeapons.003":2097151,"m_hMyWeapons.004":2097151,"m_hMyWeapons.005":2097151,"m_hMyWeapons.006":2097151,"m_hMyWeapons.007":2097151,"m_hMyWeapons.008":2097151,"m_hMyWeapons.009":2097151,"m_hMyWeapons.010":2097151,"m_hMyWeapons.011":2097151,"m_hMyWeapons.012":2097151,"m_hMyWeapons.013":2097151,"m_hMyWeapons.014":2097151,"m_hMyWeapons.015":2097151,"m_hMyWeapons.016":2097151,"m_hMyWeapons.017":2097151,"m_hMyWeapons.018":2097151,"m_hMyWeapons.019":2097151,"m_hMyWeapons.020":2097151,"m_hMyWeapons.021":2097151,"m_hMyWeapons.022":2097151,"m_hMyWeapons.023":2097151,"m_hMyWeapons.024":2097151,"m_hMyWeapons.025":2097151,"m_hMyWeapons.026":2097151,"m_hMyWeapons.027":2097151,"m_hMyWeapons.028":2097151,"m_hMyWeapons.029":2097151,"m_hMyWeapons.030":2097151,"m_hMyWeapons.031":2097151,"m_hMyWeapons.032":2097151,"m_hMyWeapons.033":2097151,"m_hMyWeapons.034":2097151,"m_hMyWeapons.035":2097151,"m_hMyWeapons.036":2097151,"m_hMyWeapons.037":2097151,"m_hMyWeapons.038":2097151,"m_hMyWeapons.039":2097151,"m_hMyWeapons.040":2097151,"m_hMyWeapons.041":2097151,"m_hMyWeapons.042":2097151,"m_hMyWeapons.043":2097151,"m_hMyWeapons.044":2097151,"m_hMyWeapons.045":2097151,"m_hMyWeapons.046":2097151,"m_hMyWeapons.047":2097151,"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_PlayerState.deadflag":0,"_LPT_m_hMyWearables_8.lengthprop8":3,"_ST_m_hMyWearables_8.000":1688201,"_ST_m_hMyWearables_8.001":1645192,"_ST_m_hMyWearables_8.002":578183,"_ST_m_hMyWearables_8.003":0,"_ST_m_hMyWearables_8.004":0,"_ST_m_hMyWearables_8.005":0,"_ST_m_hMyWearables_8.006":0,"_ST_m_hMyWearables_8.007":0,"m_chAreaBits.000":248,"m_chAreaBits.001":102,"m_chAreaBits.002":0,"m_chAreaBits.003":0,"m_chAreaBits.004":0,"m_chAreaBits.005":0,"m_chAreaBits.006":0,"m_chAreaBits.007":0,"m_chAreaBits.008":0,"m_chAreaBits.009":0,"m_chAreaBits.010":0,"m_chAreaBits.011":0,"m_chAreaBits.012":0,"m_chAreaBits.013":0,"m_chAreaBits.014":0,"m_chAreaBits.015":0,"m_chAreaBits.016":0,"m_chAreaBits.017":0,"m_chAreaBits.018":0,"m_chAreaBits.019":0,"m_chAreaBits.020":0,"m_chAreaBits.021":0,"m_chAreaBits.022":0,"m_chAreaBits.023":0,"m_chAreaBits.024":0,"m_chAreaBits.025":0,"m_chAreaBits.026":0,"m_chAreaBits.027":0,"m_chAreaBits.028":0,"m_chAreaBits.029":0,"m_chAreaBits.030":0,"m_chAreaBits.031":0,"m_chAreaPortalBits.000":230,"m_chAreaPortalBits.001":255,"m_chAreaPortalBits.002":219,"m_chAreaPortalBits.003":121,"m_chAreaPortalBits.004":0,"m_chAreaPortalBits.005":0,"m_chAreaPortalBits.006":0,"m_chAreaPortalBits.007":0,"m_chAreaPortalBits.008":0,"m_chAreaPortalBits.009":0,"m_chAreaPortalBits.010":0,"m_chAreaPortalBits.011":0,"m_chAreaPortalBits.012":0,"m_chAreaPortalBits.013":0,"m_chAreaPortalBits.014":0,"m_chAreaPortalBits.015":0,"m_chAreaPortalBits.016":0,"m_chAreaPortalBits.017":0,"m_chAreaPortalBits.018":0,"m_chAreaPortalBits.019":0,"m_chAreaPortalBits.020":0,"m_chAreaPortalBits.021":0,"m_chAreaPortalBits.022":0,"m_chAreaPortalBits.023":0,"DT_Local.m_iHideHUD":2050,"DT_Local.m_flFOVRate":0,"DT_Local.m_bDucked":0,"DT_Local.m_bDucking":0,"DT_Local.m_bInDuckJump":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-24,"y":-24,"z":0},"DT_Local.m_flDuckJumpTime":0,"DT_Local.m_flJumpTime":0,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":24,"y":24,"z":82},"DT_CollisionProperty.m_vecMins":{"x":-24,"y":-24,"z":0},"DT_Local.m_vecPunchAngleVel":{"x":0,"y":0,"z":0},"DT_Local.m_bDrawViewmodel":1,"DT_Local.m_bWearingSuit":1,"DT_Local.m_bPoisoned":0,"DT_Local.m_flStepSize":18,"DT_Local.m_bAllowAutoMovement":1,"DT_Local.m_skybox3d.scale":16,"DT_Local.m_skybox3d.origin":{"x":10271,"y":-113.78125,"z":4947},"DT_Local.m_skybox3d.area":1,"DT_Local.m_skybox3d.fog.enable":1,"DT_Local.m_skybox3d.fog.blend":0,"DT_Local.m_skybox3d.fog.dirPrimary":{"x":1,"y":0,"z":0},"DT_Local.m_skybox3d.fog.colorPrimary":9335665,"DT_Local.m_skybox3d.fog.colorSecondary":16777215,"DT_Local.m_skybox3d.fog.start":50,"DT_Local.m_skybox3d.fog.end":14200,"DT_Local.m_skybox3d.fog.maxdensity":1,"DT_Local.m_PlayerFog.m_hCtrl":1667300,"DT_Local.m_audio.localSound[0]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[1]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[2]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[3]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[4]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[5]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[6]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.localSound[7]":{"x":0,"y":0,"z":0},"DT_Local.m_audio.soundscapeIndex":-1,"DT_Local.m_audio.localBits":0,"DT_Local.m_audio.ent":2037945,"m_iAmmo.000":0,"m_iAmmo.001":32,"m_iAmmo.002":36,"m_iAmmo.003":100,"m_iAmmo.004":1,"m_iAmmo.005":1,"m_iAmmo.006":1,"m_iAmmo.007":0,"m_iAmmo.008":0,"m_iAmmo.009":0,"m_iAmmo.010":0,"m_iAmmo.011":0,"m_iAmmo.012":0,"m_iAmmo.013":0,"m_iAmmo.014":0,"m_iAmmo.015":0,"m_iAmmo.016":0,"m_iAmmo.017":0,"m_iAmmo.018":0,"m_iAmmo.019":0,"m_iAmmo.020":0,"m_iAmmo.021":0,"m_iAmmo.022":0,"m_iAmmo.023":0,"m_iAmmo.024":0,"m_iAmmo.025":0,"m_iAmmo.026":0,"m_iAmmo.027":0,"m_iAmmo.028":0,"m_iAmmo.029":0,"m_iAmmo.030":0,"m_iAmmo.031":0,"DT_LocalPlayerExclusive.m_vecViewOffset[0]":0,"DT_LocalPlayerExclusive.m_vecViewOffset[1]":0,"DT_CollisionProperty.m_vecMaxs":{"x":24,"y":24,"z":82},"DT_LocalPlayerExclusive.m_flFriction":1,"DT_LocalPlayerExclusive.m_fOnTarget":0,"DT_CollisionProperty.m_nSolidType":2,"DT_LocalPlayerExclusive.m_nNextThinkTick":0,"DT_LocalPlayerExclusive.m_hLastWeapon":1587845,"DT_CollisionProperty.m_usSolidFlags":16,"DT_CollisionProperty.m_nSurroundType":3,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":-24,"y":-24,"z":0},"DT_LocalPlayerExclusive.m_vecBaseVelocity":{"x":-0.0009536752259009518,"y":-0.0009536752259009518,"z":-0.0009536752259009518},"DT_LocalPlayerExclusive.m_hConstraintEntity":2097151,"DT_LocalPlayerExclusive.m_vecConstraintCenter":{"x":0,"y":0,"z":0},"DT_LocalPlayerExclusive.m_flConstraintRadius":0,"DT_LocalPlayerExclusive.m_flConstraintWidth":0,"DT_LocalPlayerExclusive.m_flConstraintSpeedFactor":0,"DT_LocalPlayerExclusive.m_flDeathTime":0,"DT_LocalPlayerExclusive.m_nWaterLevel":0,"DT_LocalPlayerExclusive.m_flLaggedMovementValue":1,"DT_TFPlayerClassShared.m_iClass":1,"DT_TFPlayerClassShared.m_iszClassIcon":"scout","DT_TFPlayerClassShared.m_iszCustomModel":"","DT_TFPlayerClassShared.m_vecCustomModelOffset":{"x":0,"y":0,"z":0},"DT_TFPlayerClassShared.m_angCustomModelRotation":{"x":0,"y":0,"z":0},"DT_TFPlayerClassShared.m_bCustomModelRotates":1,"DT_TFPlayerClassShared.m_bCustomModelRotationSet":0,"DT_TFPlayerClassShared.m_bCustomModelVisibleToSelf":1,"DT_TFPlayerClassShared.m_bUseClassAnimations":0,"DT_TFPlayerClassShared.m_iClassModelParity":0,"m_bPlayerDominated.000":0,"m_bPlayerDominated.001":0,"m_bPlayerDominated.002":0,"m_bPlayerDominated.003":0,"m_bPlayerDominated.004":0,"m_bPlayerDominated.005":0,"m_bPlayerDominated.006":0,"m_bPlayerDominated.007":0,"m_bPlayerDominated.008":0,"m_bPlayerDominated.009":0,"m_bPlayerDominated.010":0,"m_bPlayerDominated.011":0,"m_bPlayerDominated.012":0,"m_bPlayerDominated.013":0,"m_bPlayerDominated.014":0,"m_bPlayerDominated.015":0,"m_bPlayerDominated.016":0,"m_bPlayerDominated.017":0,"m_bPlayerDominated.018":0,"m_bPlayerDominated.019":0,"m_bPlayerDominated.020":0,"m_bPlayerDominated.021":0,"m_bPlayerDominated.022":0,"m_bPlayerDominated.023":0,"m_bPlayerDominated.024":0,"m_bPlayerDominated.025":0,"m_bPlayerDominated.026":0,"m_bPlayerDominated.027":0,"m_bPlayerDominated.028":0,"m_bPlayerDominated.029":0,"m_bPlayerDominated.030":0,"m_bPlayerDominated.031":0,"m_bPlayerDominated.032":0,"m_bPlayerDominated.033":0,"m_bPlayerDominatingMe.000":0,"m_bPlayerDominatingMe.001":0,"m_bPlayerDominatingMe.002":0,"m_bPlayerDominatingMe.003":0,"m_bPlayerDominatingMe.004":0,"m_bPlayerDominatingMe.005":0,"m_bPlayerDominatingMe.006":0,"m_bPlayerDominatingMe.007":0,"m_bPlayerDominatingMe.008":0,"m_bPlayerDominatingMe.009":0,"m_bPlayerDominatingMe.010":0,"m_bPlayerDominatingMe.011":0,"m_bPlayerDominatingMe.012":0,"m_bPlayerDominatingMe.013":0,"m_bPlayerDominatingMe.014":0,"m_bPlayerDominatingMe.015":0,"m_bPlayerDominatingMe.016":0,"m_bPlayerDominatingMe.017":0,"m_bPlayerDominatingMe.018":0,"m_bPlayerDominatingMe.019":0,"m_bPlayerDominatingMe.020":0,"m_bPlayerDominatingMe.021":0,"m_bPlayerDominatingMe.022":0,"m_bPlayerDominatingMe.023":0,"m_bPlayerDominatingMe.024":0,"m_bPlayerDominatingMe.025":0,"m_bPlayerDominatingMe.026":0,"m_bPlayerDominatingMe.027":0,"m_bPlayerDominatingMe.028":0,"m_bPlayerDominatingMe.029":0,"m_bPlayerDominatingMe.030":0,"m_bPlayerDominatingMe.031":0,"m_bPlayerDominatingMe.032":0,"m_bPlayerDominatingMe.033":0,"DT_TFPlayerScoringDataExclusive.m_iCaptures":0,"DT_TFPlayerScoringDataExclusive.m_iDefenses":0,"DT_TFPlayerScoringDataExclusive.m_iKills":0,"DT_TFPlayerScoringDataExclusive.m_iDeaths":0,"DT_TFPlayerScoringDataExclusive.m_iSuicides":0,"DT_TFPlayerScoringDataExclusive.m_iDominations":0,"DT_TFPlayerScoringDataExclusive.m_iRevenge":0,"DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt":0,"DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed":0,"DT_TFPlayerScoringDataExclusive.m_iHeadshots":0,"DT_TFPlayerScoringDataExclusive.m_iBackstabs":0,"DT_TFPlayerScoringDataExclusive.m_iHealPoints":0,"DT_TFPlayerScoringDataExclusive.m_iInvulns":0,"DT_TFPlayerScoringDataExclusive.m_iTeleports":0,"DT_TFPlayerScoringDataExclusive.m_iDamageDone":0,"DT_TFPlayerScoringDataExclusive.m_iCrits":0,"DT_TFPlayerScoringDataExclusive.m_iResupplyPoints":0,"DT_TFPlayerScoringDataExclusive.m_iKillAssists":0,"DT_TFPlayerScoringDataExclusive.m_iBonusPoints":0,"DT_TFPlayerScoringDataExclusive.m_iPoints":0,"DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam":0,"DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass":0,"DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam":0,"DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire":68.53999328613281,"DT_TFPlayerSharedLocal.m_flStealthNextChangeTime":0,"DT_TFPlayerSharedLocal.m_flRageMeter":0,"DT_TFPlayerSharedLocal.m_bRageDraining":0,"DT_TFPlayerSharedLocal.m_flNextRageEarnTime":0,"DT_TFPlayerSharedLocal.m_bInUpgradeZone":0,"DT_TFPlayerConditionListExclusive._condition_bits":0,"m_nStreaks.000":0,"m_nStreaks.001":0,"m_nStreaks.002":0,"m_nStreaks.003":0,"DT_TFPlayerShared.m_nPlayerCond":0,"DT_TFPlayerShared.m_bJumping":0,"DT_TFPlayerShared.m_nNumHealers":0,"DT_TFPlayerShared.m_iCritMult":0,"DT_TFPlayerShared.m_iAirDash":0,"DT_TFPlayerShared.m_nAirDucked":0,"DT_TFPlayerShared.m_flDuckTimer":51.779998779296875,"DT_TFPlayerShared.m_nPlayerState":0,"DT_TFPlayerShared.m_iDesiredPlayerClass":1,"DT_TFPlayerShared.m_flMovementStunTime":0,"DT_TFPlayerShared.m_iMovementStunAmount":0,"DT_TFPlayerShared.m_iMovementStunParity":0,"DT_TFPlayerShared.m_hStunner":2097151,"DT_TFPlayerShared.m_iStunFlags":0,"DT_TFPlayerShared.m_nArenaNumChanges":0,"DT_TFPlayerShared.m_bArenaFirstBloodBoost":0,"DT_TFPlayerShared.m_iWeaponKnockbackID":-1,"DT_TFPlayerShared.m_bLoadoutUnavailable":0,"DT_TFPlayerShared.m_iItemFindBonus":0,"DT_TFPlayerShared.m_bShieldEquipped":0,"DT_TFPlayerShared.m_iNextMeleeCrit":0,"DT_TFPlayerShared.m_iDecapitations":0,"DT_TFPlayerShared.m_iRevengeCrits":0,"DT_TFPlayerShared.m_iDisguiseBody":0,"DT_TFPlayerShared.m_hCarriedObject":2097151,"DT_TFPlayerShared.m_bCarryingObject":0,"DT_TFPlayerShared.m_flNextNoiseMakerTime":0,"DT_TFPlayerShared.m_iKillCountSinceLastDeploy":0,"DT_TFPlayerShared.m_flFirstPrimaryAttack":69.00999450683594,"DT_TFPlayerShared.m_flEnergyDrinkMeter":100,"DT_TFPlayerShared.m_flHypeMeter":0,"DT_TFPlayerShared.m_flChargeMeter":100,"DT_TFPlayerShared.m_flInvisChangeCompleteTime":68.53999328613281,"DT_TFPlayerShared.m_nDisguiseTeam":0,"DT_TFPlayerShared.m_nDisguiseClass":0,"DT_TFPlayerShared.m_nMaskClass":0,"DT_TFPlayerShared.m_iDisguiseTargetIndex":0,"DT_TFPlayerShared.m_iDisguiseHealth":0,"DT_TFPlayerShared.m_bFeignDeathReady":0,"DT_TFPlayerShared.m_hDisguiseWeapon":2097151,"DT_TFPlayerShared.m_nTeamTeleporterUsed":0,"DT_TFPlayerShared.m_flCloakMeter":100,"DT_TFPlayerShared.m_flSpyTranqBuffDuration":0,"DT_TFPlayerShared.m_iTauntIndex":0,"DT_TFPlayerShared.m_iTauntConcept":0,"DT_TFPlayerShared.m_nPlayerCondEx":0,"DT_TFPlayerShared.m_iStunIndex":-1,"DT_TFPlayerShared.m_nHalloweenBombHeadStage":0,"DT_TFPlayerShared.m_nPlayerCondEx2":0,"DT_TFPlayerShared.m_nPlayerCondEx3":0,"DT_TFPlayerShared.m_unTauntSourceItemID_Low":0,"DT_TFPlayerShared.m_unTauntSourceItemID_High":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":24,"y":24,"z":82},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":-24,"y":-24,"z":0},"DT_TFLocalPlayerExclusive.\"player_object_array\"":[],"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":24,"y":24,"z":82},"DT_TFLocalPlayerExclusive.m_bIsCoaching":0,"DT_TFLocalPlayerExclusive.m_hCoach":2097151,"DT_TFLocalPlayerExclusive.m_hStudent":2097151,"DT_TFLocalPlayerExclusive.m_nCurrency":0,"DT_TFLocalPlayerExclusive.m_nExperienceLevel":1,"DT_TFLocalPlayerExclusive.m_nExperienceLevelProgress":0,"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"DT_AttributeManager.m_hOuter":1972225,"DT_AttributeManager.m_ProviderType":0,"DT_AttributeManager.m_iReapplyProvisionParity":9,"m_nModelIndexOverrides.002":0,"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":5,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":2,"DT_BaseEntity.movecollide":0,"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":1,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":6,"DT_BaseAnimating.m_nResetEventsParity":6,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_BaseCombatCharacter.m_bGlowEnabled":0,"DT_BaseCombatCharacter.m_hActiveWeapon":1606276,"DT_BasePlayer.m_hVehicle":2097151,"DT_BasePlayer.m_hUseEntity":2097151,"m_nModelIndexOverrides.003":0,"DT_BasePlayer.m_lifeState":0,"DT_BasePlayer.m_iBonusProgress":0,"DT_BasePlayer.m_iBonusChallenge":0,"DT_BasePlayer.m_flMaxspeed":1,"m_flEncodedController.000":0,"DT_BasePlayer.m_iObserverMode":0,"DT_BasePlayer.m_hObserverTarget":2097151,"DT_BasePlayer.m_iFOV":0,"DT_BasePlayer.m_iFOVStart":90,"DT_BasePlayer.m_flFOVTime":68.33999633789062,"DT_BasePlayer.m_iDefaultFOV":90,"DT_BasePlayer.m_hZoomOwner":2097151,"DT_BasePlayer.m_hViewModel":[1724563,453250],"DT_BasePlayer.m_szLastPlaceName":"","DT_TFPlayer.m_bSaveMeParity":0,"DT_TFPlayer.m_bIsMiniBoss":0,"DT_TFPlayer.m_bIsABot":0,"DT_TFPlayer.m_nBotSkill":0,"DT_TFPlayer.m_nWaterLevel":0,"DT_TFPlayer.m_hRagdoll":2097151,"DT_TFPlayer.m_hItem":2097151,"DT_TFPlayer.m_bAllowMoveDuringTaunt":0,"DT_TFPlayer.m_bIsReadyToHighFive":0,"DT_TFPlayer.m_hHighFivePartner":2097151,"DT_TFPlayer.m_nForceTauntCam":0,"DT_TFPlayer.m_flTauntYaw":0,"DT_TFPlayer.m_nActiveTauntSlot":-1,"DT_TFPlayer.m_iTauntItemDefIndex":-1,"DT_TFPlayer.m_flCurrentTauntMoveSpeed":0,"DT_TFPlayer.m_flVehicleReverseTime":3.4028234663852886e+38,"DT_TFPlayer.m_flLastDamageTime":1,"DT_TFPlayer.m_bInPowerPlay":0,"DT_TFPlayer.m_iSpawnCounter":0,"DT_TFPlayer.m_bArenaSpectator":0,"DT_TFPlayer.m_flHeadScale":1,"DT_TFPlayer.m_flTorsoScale":1,"DT_TFPlayer.m_flHandScale":1,"DT_TFPlayer.m_bUseBossHealthBar":0,"DT_TFPlayer.m_bUsingVRHeadset":0,"DT_TFPlayer.m_bForcedSkin":0,"DT_TFPlayer.m_nForcedSkin":0,"DT_TFPlayer.m_flKartNextAvailableBoost":0,"DT_TFPlayer.m_iKartHealth":0,"DT_TFPlayer.m_iKartState":0,"DT_TFPlayer.m_hGrapplingHookTarget":2097151,"DT_TFPlayer.m_hSecondaryLastWeapon":2097151,"DT_TFPlayer.m_bUsingActionSlot":0},"pvs":1} -{"tick":0,"serverClass":"CTFTeam","id":25,"props":{"DT_Team.m_iTeamNum":0,"DT_Team.m_iScore":0,"DT_Team.m_iRoundsWon":0,"DT_Team.m_szTeamname":"Unassigned","DT_Team.\"player_array\"":[],"DT_TFTeam.m_nFlagCaptures":0,"DT_TFTeam.m_iRole":0,"DT_TFTeam.\"team_object_array\"":[],"DT_TFTeam.m_hLeader":2097151},"pvs":1} -{"tick":0,"serverClass":"CTFTeam","id":26,"props":{"DT_Team.m_iTeamNum":1,"DT_Team.m_iScore":0,"DT_Team.m_iRoundsWon":0,"DT_Team.m_szTeamname":"Spectator","DT_Team.\"player_array\"":[],"DT_TFTeam.m_nFlagCaptures":0,"DT_TFTeam.m_iRole":0,"DT_TFTeam.\"team_object_array\"":[],"DT_TFTeam.m_hLeader":2097151},"pvs":1} -{"tick":0,"serverClass":"CTFTeam","id":27,"props":{"DT_Team.m_iTeamNum":2,"DT_Team.m_iScore":0,"DT_Team.m_iRoundsWon":0,"DT_Team.m_szTeamname":"Red","DT_Team.\"player_array\"":[1],"DT_TFTeam.m_nFlagCaptures":0,"DT_TFTeam.m_iRole":0,"DT_TFTeam.\"team_object_array\"":[],"DT_TFTeam.m_hLeader":1972225},"pvs":1} -{"tick":0,"serverClass":"CTFTeam","id":28,"props":{"DT_Team.m_iTeamNum":3,"DT_Team.m_iScore":0,"DT_Team.m_iRoundsWon":0,"DT_Team.m_szTeamname":"Blue","DT_Team.\"player_array\"":[],"DT_TFTeam.m_nFlagCaptures":0,"DT_TFTeam.m_iRole":0,"DT_TFTeam.\"team_object_array\"":[],"DT_TFTeam.m_hLeader":2097151},"pvs":1} -{"tick":0,"serverClass":"CTFPlayerResource","id":30,"props":{"m_iPing.000":0,"m_iPing.001":5,"m_iPing.002":0,"m_iPing.003":0,"m_iPing.004":0,"m_iPing.005":0,"m_iPing.006":0,"m_iPing.007":0,"m_iPing.008":0,"m_iPing.009":0,"m_iPing.010":0,"m_iPing.011":0,"m_iPing.012":0,"m_iPing.013":0,"m_iPing.014":0,"m_iPing.015":0,"m_iPing.016":0,"m_iPing.017":0,"m_iPing.018":0,"m_iPing.019":0,"m_iPing.020":0,"m_iPing.021":0,"m_iPing.022":0,"m_iPing.023":0,"m_iPing.024":0,"m_iPing.025":0,"m_iPing.026":0,"m_iPing.027":0,"m_iPing.028":0,"m_iPing.029":0,"m_iPing.030":0,"m_iPing.031":0,"m_iPing.032":0,"m_iPing.033":0,"m_iScore.000":0,"m_iScore.001":0,"m_iScore.002":0,"m_iScore.003":0,"m_iScore.004":0,"m_iScore.005":0,"m_iScore.006":0,"m_iScore.007":0,"m_iScore.008":0,"m_iScore.009":0,"m_iScore.010":0,"m_iScore.011":0,"m_iScore.012":0,"m_iScore.013":0,"m_iScore.014":0,"m_iScore.015":0,"m_iScore.016":0,"m_iScore.017":0,"m_iScore.018":0,"m_iScore.019":0,"m_iScore.020":0,"m_iScore.021":0,"m_iScore.022":0,"m_iScore.023":0,"m_iScore.024":0,"m_iScore.025":0,"m_iScore.026":0,"m_iScore.027":0,"m_iScore.028":0,"m_iScore.029":0,"m_iScore.030":0,"m_iScore.031":0,"m_iScore.032":0,"m_iScore.033":0,"m_iDeaths.000":0,"m_iDeaths.001":0,"m_iDeaths.002":0,"m_iDeaths.003":0,"m_iDeaths.004":0,"m_iDeaths.005":0,"m_iDeaths.006":0,"m_iDeaths.007":0,"m_iDeaths.008":0,"m_iDeaths.009":0,"m_iDeaths.010":0,"m_iDeaths.011":0,"m_iDeaths.012":0,"m_iDeaths.013":0,"m_iDeaths.014":0,"m_iDeaths.015":0,"m_iDeaths.016":0,"m_iDeaths.017":0,"m_iDeaths.018":0,"m_iDeaths.019":0,"m_iDeaths.020":0,"m_iDeaths.021":0,"m_iDeaths.022":0,"m_iDeaths.023":0,"m_iDeaths.024":0,"m_iDeaths.025":0,"m_iDeaths.026":0,"m_iDeaths.027":0,"m_iDeaths.028":0,"m_iDeaths.029":0,"m_iDeaths.030":0,"m_iDeaths.031":0,"m_iDeaths.032":0,"m_iDeaths.033":0,"m_bConnected.000":0,"m_bConnected.001":1,"m_bConnected.002":0,"m_bConnected.003":0,"m_bConnected.004":0,"m_bConnected.005":0,"m_bConnected.006":0,"m_bConnected.007":0,"m_bConnected.008":0,"m_bConnected.009":0,"m_bConnected.010":0,"m_bConnected.011":0,"m_bConnected.012":0,"m_bConnected.013":0,"m_bConnected.014":0,"m_bConnected.015":0,"m_bConnected.016":0,"m_bConnected.017":0,"m_bConnected.018":0,"m_bConnected.019":0,"m_bConnected.020":0,"m_bConnected.021":0,"m_bConnected.022":0,"m_bConnected.023":0,"m_bConnected.024":0,"m_bConnected.025":0,"m_bConnected.026":0,"m_bConnected.027":0,"m_bConnected.028":0,"m_bConnected.029":0,"m_bConnected.030":0,"m_bConnected.031":0,"m_bConnected.032":0,"m_bConnected.033":0,"m_iTeam.000":0,"m_iTeam.001":2,"m_iTeam.002":0,"m_iTeam.003":0,"m_iTeam.004":0,"m_iTeam.005":0,"m_iTeam.006":0,"m_iTeam.007":0,"m_iTeam.008":0,"m_iTeam.009":0,"m_iTeam.010":0,"m_iTeam.011":0,"m_iTeam.012":0,"m_iTeam.013":0,"m_iTeam.014":0,"m_iTeam.015":0,"m_iTeam.016":0,"m_iTeam.017":0,"m_iTeam.018":0,"m_iTeam.019":0,"m_iTeam.020":0,"m_iTeam.021":0,"m_iTeam.022":0,"m_iTeam.023":0,"m_iTeam.024":0,"m_iTeam.025":0,"m_iTeam.026":0,"m_iTeam.027":0,"m_iTeam.028":0,"m_iTeam.029":0,"m_iTeam.030":0,"m_iTeam.031":0,"m_iTeam.032":0,"m_iTeam.033":0,"m_bAlive.000":0,"m_bAlive.001":1,"m_bAlive.002":0,"m_bAlive.003":0,"m_bAlive.004":0,"m_bAlive.005":0,"m_bAlive.006":0,"m_bAlive.007":0,"m_bAlive.008":0,"m_bAlive.009":0,"m_bAlive.010":0,"m_bAlive.011":0,"m_bAlive.012":0,"m_bAlive.013":0,"m_bAlive.014":0,"m_bAlive.015":0,"m_bAlive.016":0,"m_bAlive.017":0,"m_bAlive.018":0,"m_bAlive.019":0,"m_bAlive.020":0,"m_bAlive.021":0,"m_bAlive.022":0,"m_bAlive.023":0,"m_bAlive.024":0,"m_bAlive.025":0,"m_bAlive.026":0,"m_bAlive.027":0,"m_bAlive.028":0,"m_bAlive.029":0,"m_bAlive.030":0,"m_bAlive.031":0,"m_bAlive.032":0,"m_bAlive.033":0,"m_iHealth.000":0,"m_iHealth.001":125,"m_iHealth.002":0,"m_iHealth.003":0,"m_iHealth.004":0,"m_iHealth.005":0,"m_iHealth.006":0,"m_iHealth.007":0,"m_iHealth.008":0,"m_iHealth.009":0,"m_iHealth.010":0,"m_iHealth.011":0,"m_iHealth.012":0,"m_iHealth.013":0,"m_iHealth.014":0,"m_iHealth.015":0,"m_iHealth.016":0,"m_iHealth.017":0,"m_iHealth.018":0,"m_iHealth.019":0,"m_iHealth.020":0,"m_iHealth.021":0,"m_iHealth.022":0,"m_iHealth.023":0,"m_iHealth.024":0,"m_iHealth.025":0,"m_iHealth.026":0,"m_iHealth.027":0,"m_iHealth.028":0,"m_iHealth.029":0,"m_iHealth.030":0,"m_iHealth.031":0,"m_iHealth.032":0,"m_iHealth.033":0,"m_iTotalScore.000":0,"m_iTotalScore.001":0,"m_iTotalScore.002":0,"m_iTotalScore.003":0,"m_iTotalScore.004":0,"m_iTotalScore.005":0,"m_iTotalScore.006":0,"m_iTotalScore.007":0,"m_iTotalScore.008":0,"m_iTotalScore.009":0,"m_iTotalScore.010":0,"m_iTotalScore.011":0,"m_iTotalScore.012":0,"m_iTotalScore.013":0,"m_iTotalScore.014":0,"m_iTotalScore.015":0,"m_iTotalScore.016":0,"m_iTotalScore.017":0,"m_iTotalScore.018":0,"m_iTotalScore.019":0,"m_iTotalScore.020":0,"m_iTotalScore.021":0,"m_iTotalScore.022":0,"m_iTotalScore.023":0,"m_iTotalScore.024":0,"m_iTotalScore.025":0,"m_iTotalScore.026":0,"m_iTotalScore.027":0,"m_iTotalScore.028":0,"m_iTotalScore.029":0,"m_iTotalScore.030":0,"m_iTotalScore.031":0,"m_iTotalScore.032":0,"m_iTotalScore.033":0,"m_iMaxHealth.000":1,"m_iMaxHealth.001":125,"m_iMaxHealth.002":1,"m_iMaxHealth.003":1,"m_iMaxHealth.004":1,"m_iMaxHealth.005":1,"m_iMaxHealth.006":1,"m_iMaxHealth.007":1,"m_iMaxHealth.008":1,"m_iMaxHealth.009":1,"m_iMaxHealth.010":1,"m_iMaxHealth.011":1,"m_iMaxHealth.012":1,"m_iMaxHealth.013":1,"m_iMaxHealth.014":1,"m_iMaxHealth.015":1,"m_iMaxHealth.016":1,"m_iMaxHealth.017":1,"m_iMaxHealth.018":1,"m_iMaxHealth.019":1,"m_iMaxHealth.020":1,"m_iMaxHealth.021":1,"m_iMaxHealth.022":1,"m_iMaxHealth.023":1,"m_iMaxHealth.024":1,"m_iMaxHealth.025":1,"m_iMaxHealth.026":1,"m_iMaxHealth.027":1,"m_iMaxHealth.028":1,"m_iMaxHealth.029":1,"m_iMaxHealth.030":1,"m_iMaxHealth.031":1,"m_iMaxHealth.032":1,"m_iMaxHealth.033":1,"m_iMaxBuffedHealth.000":1,"m_iMaxBuffedHealth.001":125,"m_iMaxBuffedHealth.002":1,"m_iMaxBuffedHealth.003":1,"m_iMaxBuffedHealth.004":1,"m_iMaxBuffedHealth.005":1,"m_iMaxBuffedHealth.006":1,"m_iMaxBuffedHealth.007":1,"m_iMaxBuffedHealth.008":1,"m_iMaxBuffedHealth.009":1,"m_iMaxBuffedHealth.010":1,"m_iMaxBuffedHealth.011":1,"m_iMaxBuffedHealth.012":1,"m_iMaxBuffedHealth.013":1,"m_iMaxBuffedHealth.014":1,"m_iMaxBuffedHealth.015":1,"m_iMaxBuffedHealth.016":1,"m_iMaxBuffedHealth.017":1,"m_iMaxBuffedHealth.018":1,"m_iMaxBuffedHealth.019":1,"m_iMaxBuffedHealth.020":1,"m_iMaxBuffedHealth.021":1,"m_iMaxBuffedHealth.022":1,"m_iMaxBuffedHealth.023":1,"m_iMaxBuffedHealth.024":1,"m_iMaxBuffedHealth.025":1,"m_iMaxBuffedHealth.026":1,"m_iMaxBuffedHealth.027":1,"m_iMaxBuffedHealth.028":1,"m_iMaxBuffedHealth.029":1,"m_iMaxBuffedHealth.030":1,"m_iMaxBuffedHealth.031":1,"m_iMaxBuffedHealth.032":1,"m_iMaxBuffedHealth.033":1,"m_iPlayerClass.000":0,"m_iPlayerClass.001":1,"m_iPlayerClass.002":0,"m_iPlayerClass.003":0,"m_iPlayerClass.004":0,"m_iPlayerClass.005":0,"m_iPlayerClass.006":0,"m_iPlayerClass.007":0,"m_iPlayerClass.008":0,"m_iPlayerClass.009":0,"m_iPlayerClass.010":0,"m_iPlayerClass.011":0,"m_iPlayerClass.012":0,"m_iPlayerClass.013":0,"m_iPlayerClass.014":0,"m_iPlayerClass.015":0,"m_iPlayerClass.016":0,"m_iPlayerClass.017":0,"m_iPlayerClass.018":0,"m_iPlayerClass.019":0,"m_iPlayerClass.020":0,"m_iPlayerClass.021":0,"m_iPlayerClass.022":0,"m_iPlayerClass.023":0,"m_iPlayerClass.024":0,"m_iPlayerClass.025":0,"m_iPlayerClass.026":0,"m_iPlayerClass.027":0,"m_iPlayerClass.028":0,"m_iPlayerClass.029":0,"m_iPlayerClass.030":0,"m_iPlayerClass.031":0,"m_iPlayerClass.032":0,"m_iPlayerClass.033":0,"m_bArenaSpectator.000":0,"m_bArenaSpectator.001":0,"m_bArenaSpectator.002":0,"m_bArenaSpectator.003":0,"m_bArenaSpectator.004":0,"m_bArenaSpectator.005":0,"m_bArenaSpectator.006":0,"m_bArenaSpectator.007":0,"m_bArenaSpectator.008":0,"m_bArenaSpectator.009":0,"m_bArenaSpectator.010":0,"m_bArenaSpectator.011":0,"m_bArenaSpectator.012":0,"m_bArenaSpectator.013":0,"m_bArenaSpectator.014":0,"m_bArenaSpectator.015":0,"m_bArenaSpectator.016":0,"m_bArenaSpectator.017":0,"m_bArenaSpectator.018":0,"m_bArenaSpectator.019":0,"m_bArenaSpectator.020":0,"m_bArenaSpectator.021":0,"m_bArenaSpectator.022":0,"m_bArenaSpectator.023":0,"m_bArenaSpectator.024":0,"m_bArenaSpectator.025":0,"m_bArenaSpectator.026":0,"m_bArenaSpectator.027":0,"m_bArenaSpectator.028":0,"m_bArenaSpectator.029":0,"m_bArenaSpectator.030":0,"m_bArenaSpectator.031":0,"m_bArenaSpectator.032":0,"m_bArenaSpectator.033":0,"m_iActiveDominations.000":0,"m_iActiveDominations.001":0,"m_iActiveDominations.002":0,"m_iActiveDominations.003":0,"m_iActiveDominations.004":0,"m_iActiveDominations.005":0,"m_iActiveDominations.006":0,"m_iActiveDominations.007":0,"m_iActiveDominations.008":0,"m_iActiveDominations.009":0,"m_iActiveDominations.010":0,"m_iActiveDominations.011":0,"m_iActiveDominations.012":0,"m_iActiveDominations.013":0,"m_iActiveDominations.014":0,"m_iActiveDominations.015":0,"m_iActiveDominations.016":0,"m_iActiveDominations.017":0,"m_iActiveDominations.018":0,"m_iActiveDominations.019":0,"m_iActiveDominations.020":0,"m_iActiveDominations.021":0,"m_iActiveDominations.022":0,"m_iActiveDominations.023":0,"m_iActiveDominations.024":0,"m_iActiveDominations.025":0,"m_iActiveDominations.026":0,"m_iActiveDominations.027":0,"m_iActiveDominations.028":0,"m_iActiveDominations.029":0,"m_iActiveDominations.030":0,"m_iActiveDominations.031":0,"m_iActiveDominations.032":0,"m_iActiveDominations.033":0,"m_flNextRespawnTime.000":0,"m_flNextRespawnTime.001":0,"m_flNextRespawnTime.002":0,"m_flNextRespawnTime.003":0,"m_flNextRespawnTime.004":0,"m_flNextRespawnTime.005":0,"m_flNextRespawnTime.006":0,"m_flNextRespawnTime.007":0,"m_flNextRespawnTime.008":0,"m_flNextRespawnTime.009":0,"m_flNextRespawnTime.010":0,"m_flNextRespawnTime.011":0,"m_flNextRespawnTime.012":0,"m_flNextRespawnTime.013":0,"m_flNextRespawnTime.014":0,"m_flNextRespawnTime.015":0,"m_flNextRespawnTime.016":0,"m_flNextRespawnTime.017":0,"m_flNextRespawnTime.018":0,"m_flNextRespawnTime.019":0,"m_flNextRespawnTime.020":0,"m_flNextRespawnTime.021":0,"m_flNextRespawnTime.022":0,"m_flNextRespawnTime.023":0,"m_flNextRespawnTime.024":0,"m_flNextRespawnTime.025":0,"m_flNextRespawnTime.026":0,"m_flNextRespawnTime.027":0,"m_flNextRespawnTime.028":0,"m_flNextRespawnTime.029":0,"m_flNextRespawnTime.030":0,"m_flNextRespawnTime.031":0,"m_flNextRespawnTime.032":0,"m_flNextRespawnTime.033":0,"m_iChargeLevel.000":0,"m_iChargeLevel.001":0,"m_iChargeLevel.002":0,"m_iChargeLevel.003":0,"m_iChargeLevel.004":0,"m_iChargeLevel.005":0,"m_iChargeLevel.006":0,"m_iChargeLevel.007":0,"m_iChargeLevel.008":0,"m_iChargeLevel.009":0,"m_iChargeLevel.010":0,"m_iChargeLevel.011":0,"m_iChargeLevel.012":0,"m_iChargeLevel.013":0,"m_iChargeLevel.014":0,"m_iChargeLevel.015":0,"m_iChargeLevel.016":0,"m_iChargeLevel.017":0,"m_iChargeLevel.018":0,"m_iChargeLevel.019":0,"m_iChargeLevel.020":0,"m_iChargeLevel.021":0,"m_iChargeLevel.022":0,"m_iChargeLevel.023":0,"m_iChargeLevel.024":0,"m_iChargeLevel.025":0,"m_iChargeLevel.026":0,"m_iChargeLevel.027":0,"m_iChargeLevel.028":0,"m_iChargeLevel.029":0,"m_iChargeLevel.030":0,"m_iChargeLevel.031":0,"m_iChargeLevel.032":0,"m_iChargeLevel.033":0,"m_iDamage.000":0,"m_iDamage.001":0,"m_iDamage.002":0,"m_iDamage.003":0,"m_iDamage.004":0,"m_iDamage.005":0,"m_iDamage.006":0,"m_iDamage.007":0,"m_iDamage.008":0,"m_iDamage.009":0,"m_iDamage.010":0,"m_iDamage.011":0,"m_iDamage.012":0,"m_iDamage.013":0,"m_iDamage.014":0,"m_iDamage.015":0,"m_iDamage.016":0,"m_iDamage.017":0,"m_iDamage.018":0,"m_iDamage.019":0,"m_iDamage.020":0,"m_iDamage.021":0,"m_iDamage.022":0,"m_iDamage.023":0,"m_iDamage.024":0,"m_iDamage.025":0,"m_iDamage.026":0,"m_iDamage.027":0,"m_iDamage.028":0,"m_iDamage.029":0,"m_iDamage.030":0,"m_iDamage.031":0,"m_iDamage.032":0,"m_iDamage.033":0,"m_iDamageAssist.000":0,"m_iDamageAssist.001":0,"m_iDamageAssist.002":0,"m_iDamageAssist.003":0,"m_iDamageAssist.004":0,"m_iDamageAssist.005":0,"m_iDamageAssist.006":0,"m_iDamageAssist.007":0,"m_iDamageAssist.008":0,"m_iDamageAssist.009":0,"m_iDamageAssist.010":0,"m_iDamageAssist.011":0,"m_iDamageAssist.012":0,"m_iDamageAssist.013":0,"m_iDamageAssist.014":0,"m_iDamageAssist.015":0,"m_iDamageAssist.016":0,"m_iDamageAssist.017":0,"m_iDamageAssist.018":0,"m_iDamageAssist.019":0,"m_iDamageAssist.020":0,"m_iDamageAssist.021":0,"m_iDamageAssist.022":0,"m_iDamageAssist.023":0,"m_iDamageAssist.024":0,"m_iDamageAssist.025":0,"m_iDamageAssist.026":0,"m_iDamageAssist.027":0,"m_iDamageAssist.028":0,"m_iDamageAssist.029":0,"m_iDamageAssist.030":0,"m_iDamageAssist.031":0,"m_iDamageAssist.032":0,"m_iDamageAssist.033":0,"m_iDamageBoss.000":0,"m_iDamageBoss.001":0,"m_iDamageBoss.002":0,"m_iDamageBoss.003":0,"m_iDamageBoss.004":0,"m_iDamageBoss.005":0,"m_iDamageBoss.006":0,"m_iDamageBoss.007":0,"m_iDamageBoss.008":0,"m_iDamageBoss.009":0,"m_iDamageBoss.010":0,"m_iDamageBoss.011":0,"m_iDamageBoss.012":0,"m_iDamageBoss.013":0,"m_iDamageBoss.014":0,"m_iDamageBoss.015":0,"m_iDamageBoss.016":0,"m_iDamageBoss.017":0,"m_iDamageBoss.018":0,"m_iDamageBoss.019":0,"m_iDamageBoss.020":0,"m_iDamageBoss.021":0,"m_iDamageBoss.022":0,"m_iDamageBoss.023":0,"m_iDamageBoss.024":0,"m_iDamageBoss.025":0,"m_iDamageBoss.026":0,"m_iDamageBoss.027":0,"m_iDamageBoss.028":0,"m_iDamageBoss.029":0,"m_iDamageBoss.030":0,"m_iDamageBoss.031":0,"m_iDamageBoss.032":0,"m_iDamageBoss.033":0,"m_iHealing.000":0,"m_iHealing.001":0,"m_iHealing.002":0,"m_iHealing.003":0,"m_iHealing.004":0,"m_iHealing.005":0,"m_iHealing.006":0,"m_iHealing.007":0,"m_iHealing.008":0,"m_iHealing.009":0,"m_iHealing.010":0,"m_iHealing.011":0,"m_iHealing.012":0,"m_iHealing.013":0,"m_iHealing.014":0,"m_iHealing.015":0,"m_iHealing.016":0,"m_iHealing.017":0,"m_iHealing.018":0,"m_iHealing.019":0,"m_iHealing.020":0,"m_iHealing.021":0,"m_iHealing.022":0,"m_iHealing.023":0,"m_iHealing.024":0,"m_iHealing.025":0,"m_iHealing.026":0,"m_iHealing.027":0,"m_iHealing.028":0,"m_iHealing.029":0,"m_iHealing.030":0,"m_iHealing.031":0,"m_iHealing.032":0,"m_iHealing.033":0,"m_iHealingAssist.000":0,"m_iHealingAssist.001":0,"m_iHealingAssist.002":0,"m_iHealingAssist.003":0,"m_iHealingAssist.004":0,"m_iHealingAssist.005":0,"m_iHealingAssist.006":0,"m_iHealingAssist.007":0,"m_iHealingAssist.008":0,"m_iHealingAssist.009":0,"m_iHealingAssist.010":0,"m_iHealingAssist.011":0,"m_iHealingAssist.012":0,"m_iHealingAssist.013":0,"m_iHealingAssist.014":0,"m_iHealingAssist.015":0,"m_iHealingAssist.016":0,"m_iHealingAssist.017":0,"m_iHealingAssist.018":0,"m_iHealingAssist.019":0,"m_iHealingAssist.020":0,"m_iHealingAssist.021":0,"m_iHealingAssist.022":0,"m_iHealingAssist.023":0,"m_iHealingAssist.024":0,"m_iHealingAssist.025":0,"m_iHealingAssist.026":0,"m_iHealingAssist.027":0,"m_iHealingAssist.028":0,"m_iHealingAssist.029":0,"m_iHealingAssist.030":0,"m_iHealingAssist.031":0,"m_iHealingAssist.032":0,"m_iHealingAssist.033":0,"m_iDamageBlocked.000":0,"m_iDamageBlocked.001":0,"m_iDamageBlocked.002":0,"m_iDamageBlocked.003":0,"m_iDamageBlocked.004":0,"m_iDamageBlocked.005":0,"m_iDamageBlocked.006":0,"m_iDamageBlocked.007":0,"m_iDamageBlocked.008":0,"m_iDamageBlocked.009":0,"m_iDamageBlocked.010":0,"m_iDamageBlocked.011":0,"m_iDamageBlocked.012":0,"m_iDamageBlocked.013":0,"m_iDamageBlocked.014":0,"m_iDamageBlocked.015":0,"m_iDamageBlocked.016":0,"m_iDamageBlocked.017":0,"m_iDamageBlocked.018":0,"m_iDamageBlocked.019":0,"m_iDamageBlocked.020":0,"m_iDamageBlocked.021":0,"m_iDamageBlocked.022":0,"m_iDamageBlocked.023":0,"m_iDamageBlocked.024":0,"m_iDamageBlocked.025":0,"m_iDamageBlocked.026":0,"m_iDamageBlocked.027":0,"m_iDamageBlocked.028":0,"m_iDamageBlocked.029":0,"m_iDamageBlocked.030":0,"m_iDamageBlocked.031":0,"m_iDamageBlocked.032":0,"m_iDamageBlocked.033":0,"m_iCurrencyCollected.000":0,"m_iCurrencyCollected.001":0,"m_iCurrencyCollected.002":0,"m_iCurrencyCollected.003":0,"m_iCurrencyCollected.004":0,"m_iCurrencyCollected.005":0,"m_iCurrencyCollected.006":0,"m_iCurrencyCollected.007":0,"m_iCurrencyCollected.008":0,"m_iCurrencyCollected.009":0,"m_iCurrencyCollected.010":0,"m_iCurrencyCollected.011":0,"m_iCurrencyCollected.012":0,"m_iCurrencyCollected.013":0,"m_iCurrencyCollected.014":0,"m_iCurrencyCollected.015":0,"m_iCurrencyCollected.016":0,"m_iCurrencyCollected.017":0,"m_iCurrencyCollected.018":0,"m_iCurrencyCollected.019":0,"m_iCurrencyCollected.020":0,"m_iCurrencyCollected.021":0,"m_iCurrencyCollected.022":0,"m_iCurrencyCollected.023":0,"m_iCurrencyCollected.024":0,"m_iCurrencyCollected.025":0,"m_iCurrencyCollected.026":0,"m_iCurrencyCollected.027":0,"m_iCurrencyCollected.028":0,"m_iCurrencyCollected.029":0,"m_iCurrencyCollected.030":0,"m_iCurrencyCollected.031":0,"m_iCurrencyCollected.032":0,"m_iCurrencyCollected.033":0,"m_iBonusPoints.000":0,"m_iBonusPoints.001":0,"m_iBonusPoints.002":0,"m_iBonusPoints.003":0,"m_iBonusPoints.004":0,"m_iBonusPoints.005":0,"m_iBonusPoints.006":0,"m_iBonusPoints.007":0,"m_iBonusPoints.008":0,"m_iBonusPoints.009":0,"m_iBonusPoints.010":0,"m_iBonusPoints.011":0,"m_iBonusPoints.012":0,"m_iBonusPoints.013":0,"m_iBonusPoints.014":0,"m_iBonusPoints.015":0,"m_iBonusPoints.016":0,"m_iBonusPoints.017":0,"m_iBonusPoints.018":0,"m_iBonusPoints.019":0,"m_iBonusPoints.020":0,"m_iBonusPoints.021":0,"m_iBonusPoints.022":0,"m_iBonusPoints.023":0,"m_iBonusPoints.024":0,"m_iBonusPoints.025":0,"m_iBonusPoints.026":0,"m_iBonusPoints.027":0,"m_iBonusPoints.028":0,"m_iBonusPoints.029":0,"m_iBonusPoints.030":0,"m_iBonusPoints.031":0,"m_iBonusPoints.032":0,"m_iBonusPoints.033":0,"m_iPlayerLevel.000":0,"m_iPlayerLevel.001":1,"m_iPlayerLevel.002":0,"m_iPlayerLevel.003":0,"m_iPlayerLevel.004":0,"m_iPlayerLevel.005":0,"m_iPlayerLevel.006":0,"m_iPlayerLevel.007":0,"m_iPlayerLevel.008":0,"m_iPlayerLevel.009":0,"m_iPlayerLevel.010":0,"m_iPlayerLevel.011":0,"m_iPlayerLevel.012":0,"m_iPlayerLevel.013":0,"m_iPlayerLevel.014":0,"m_iPlayerLevel.015":0,"m_iPlayerLevel.016":0,"m_iPlayerLevel.017":0,"m_iPlayerLevel.018":0,"m_iPlayerLevel.019":0,"m_iPlayerLevel.020":0,"m_iPlayerLevel.021":0,"m_iPlayerLevel.022":0,"m_iPlayerLevel.023":0,"m_iPlayerLevel.024":0,"m_iPlayerLevel.025":0,"m_iPlayerLevel.026":0,"m_iPlayerLevel.027":0,"m_iPlayerLevel.028":0,"m_iPlayerLevel.029":0,"m_iPlayerLevel.030":0,"m_iPlayerLevel.031":0,"m_iPlayerLevel.032":0,"m_iPlayerLevel.033":0,"m_iStreaks.000":0,"m_iStreaks.001":0,"m_iStreaks.002":0,"m_iStreaks.003":0,"m_iStreaks.004":0,"m_iStreaks.005":0,"m_iStreaks.006":0,"m_iStreaks.007":0,"m_iStreaks.008":0,"m_iStreaks.009":0,"m_iStreaks.010":0,"m_iStreaks.011":0,"m_iStreaks.012":0,"m_iStreaks.013":0,"m_iStreaks.014":0,"m_iStreaks.015":0,"m_iStreaks.016":0,"m_iStreaks.017":0,"m_iStreaks.018":0,"m_iStreaks.019":0,"m_iStreaks.020":0,"m_iStreaks.021":0,"m_iStreaks.022":0,"m_iStreaks.023":0,"m_iStreaks.024":0,"m_iStreaks.025":0,"m_iStreaks.026":0,"m_iStreaks.027":0,"m_iStreaks.028":0,"m_iStreaks.029":0,"m_iStreaks.030":0,"m_iStreaks.031":0,"m_iStreaks.032":0,"m_iStreaks.033":0,"m_iStreaks.034":0,"m_iStreaks.035":0,"m_iStreaks.036":0,"m_iStreaks.037":0,"m_iStreaks.038":0,"m_iStreaks.039":0,"m_iStreaks.040":0,"m_iStreaks.041":0,"m_iStreaks.042":0,"m_iStreaks.043":0,"m_iStreaks.044":0,"m_iStreaks.045":0,"m_iStreaks.046":0,"m_iStreaks.047":0,"m_iStreaks.048":0,"m_iStreaks.049":0,"m_iStreaks.050":0,"m_iStreaks.051":0,"m_iStreaks.052":0,"m_iStreaks.053":0,"m_iStreaks.054":0,"m_iStreaks.055":0,"m_iStreaks.056":0,"m_iStreaks.057":0,"m_iStreaks.058":0,"m_iStreaks.059":0,"m_iStreaks.060":0,"m_iStreaks.061":0,"m_iStreaks.062":0,"m_iStreaks.063":0,"m_iStreaks.064":0,"m_iStreaks.065":0,"m_iStreaks.066":0,"m_iStreaks.067":0,"m_iStreaks.068":0,"m_iStreaks.069":0,"m_iStreaks.070":0,"m_iStreaks.071":0,"m_iStreaks.072":0,"m_iStreaks.073":0,"m_iStreaks.074":0,"m_iStreaks.075":0,"m_iStreaks.076":0,"m_iStreaks.077":0,"m_iStreaks.078":0,"m_iStreaks.079":0,"m_iStreaks.080":0,"m_iStreaks.081":0,"m_iStreaks.082":0,"m_iStreaks.083":0,"m_iStreaks.084":0,"m_iStreaks.085":0,"m_iStreaks.086":0,"m_iStreaks.087":0,"m_iStreaks.088":0,"m_iStreaks.089":0,"m_iStreaks.090":0,"m_iStreaks.091":0,"m_iStreaks.092":0,"m_iStreaks.093":0,"m_iStreaks.094":0,"m_iStreaks.095":0,"m_iStreaks.096":0,"m_iStreaks.097":0,"m_iStreaks.098":0,"m_iStreaks.099":0,"m_iStreaks.100":0,"m_iStreaks.101":0,"m_iStreaks.102":0,"m_iStreaks.103":0,"m_iStreaks.104":0,"m_iStreaks.105":0,"m_iStreaks.106":0,"m_iStreaks.107":0,"m_iStreaks.108":0,"m_iStreaks.109":0,"m_iStreaks.110":0,"m_iStreaks.111":0,"m_iStreaks.112":0,"m_iStreaks.113":0,"m_iStreaks.114":0,"m_iStreaks.115":0,"m_iStreaks.116":0,"m_iStreaks.117":0,"m_iStreaks.118":0,"m_iStreaks.119":0,"m_iStreaks.120":0,"m_iStreaks.121":0,"m_iStreaks.122":0,"m_iStreaks.123":0,"m_iStreaks.124":0,"m_iStreaks.125":0,"m_iStreaks.126":0,"m_iStreaks.127":0,"m_iStreaks.128":0,"m_iStreaks.129":0,"m_iStreaks.130":0,"m_iStreaks.131":0,"m_iStreaks.132":0,"m_iStreaks.133":0,"m_iStreaks.134":0,"m_iStreaks.135":0,"m_iUpgradeRefundCredits.000":0,"m_iUpgradeRefundCredits.001":0,"m_iUpgradeRefundCredits.002":0,"m_iUpgradeRefundCredits.003":0,"m_iUpgradeRefundCredits.004":0,"m_iUpgradeRefundCredits.005":0,"m_iUpgradeRefundCredits.006":0,"m_iUpgradeRefundCredits.007":0,"m_iUpgradeRefundCredits.008":0,"m_iUpgradeRefundCredits.009":0,"m_iUpgradeRefundCredits.010":0,"m_iUpgradeRefundCredits.011":0,"m_iUpgradeRefundCredits.012":0,"m_iUpgradeRefundCredits.013":0,"m_iUpgradeRefundCredits.014":0,"m_iUpgradeRefundCredits.015":0,"m_iUpgradeRefundCredits.016":0,"m_iUpgradeRefundCredits.017":0,"m_iUpgradeRefundCredits.018":0,"m_iUpgradeRefundCredits.019":0,"m_iUpgradeRefundCredits.020":0,"m_iUpgradeRefundCredits.021":0,"m_iUpgradeRefundCredits.022":0,"m_iUpgradeRefundCredits.023":0,"m_iUpgradeRefundCredits.024":0,"m_iUpgradeRefundCredits.025":0,"m_iUpgradeRefundCredits.026":0,"m_iUpgradeRefundCredits.027":0,"m_iUpgradeRefundCredits.028":0,"m_iUpgradeRefundCredits.029":0,"m_iUpgradeRefundCredits.030":0,"m_iUpgradeRefundCredits.031":0,"m_iUpgradeRefundCredits.032":0,"m_iUpgradeRefundCredits.033":0},"pvs":1} -{"tick":0,"serverClass":"CTFObjectiveResource","id":31,"props":{"m_bCPIsVisible.000":1,"m_bCPIsVisible.001":1,"m_bCPIsVisible.002":1,"m_bCPIsVisible.003":1,"m_bCPIsVisible.004":1,"m_bCPIsVisible.005":1,"m_bCPIsVisible.006":1,"m_bCPIsVisible.007":1,"m_flLazyCapPerc.000":0,"m_flLazyCapPerc.001":0,"m_flLazyCapPerc.002":0,"m_flLazyCapPerc.003":0,"m_flLazyCapPerc.004":0,"m_flLazyCapPerc.005":0,"m_flLazyCapPerc.006":0,"m_flLazyCapPerc.007":0,"m_iTeamIcons.000":2,"m_iTeamIcons.001":2,"m_iTeamIcons.002":2,"m_iTeamIcons.003":2,"m_iTeamIcons.004":2,"m_iTeamIcons.005":0,"m_iTeamIcons.006":0,"m_iTeamIcons.007":0,"m_iTeamIcons.008":0,"m_iTeamIcons.009":0,"m_iTeamIcons.010":0,"m_iTeamIcons.011":0,"m_iTeamIcons.012":0,"m_iTeamIcons.013":0,"m_iTeamIcons.014":0,"m_iTeamIcons.015":0,"m_iTeamIcons.016":3,"m_iTeamIcons.017":3,"m_iTeamIcons.018":3,"m_iTeamIcons.019":3,"m_iTeamIcons.020":3,"m_iTeamIcons.021":0,"m_iTeamIcons.022":0,"m_iTeamIcons.023":0,"m_iTeamIcons.024":4,"m_iTeamIcons.025":4,"m_iTeamIcons.026":4,"m_iTeamIcons.027":4,"m_iTeamIcons.028":4,"m_iTeamIcons.029":0,"m_iTeamIcons.030":0,"m_iTeamIcons.031":0,"m_iTeamIcons.032":0,"m_iTeamIcons.033":0,"m_iTeamIcons.034":0,"m_iTeamIcons.035":0,"m_iTeamIcons.036":0,"m_iTeamIcons.037":0,"m_iTeamIcons.038":0,"m_iTeamIcons.039":0,"m_iTeamIcons.040":0,"m_iTeamIcons.041":0,"m_iTeamIcons.042":0,"m_iTeamIcons.043":0,"m_iTeamIcons.044":0,"m_iTeamIcons.045":0,"m_iTeamIcons.046":0,"m_iTeamIcons.047":0,"m_iTeamIcons.048":0,"m_iTeamIcons.049":0,"m_iTeamIcons.050":0,"m_iTeamIcons.051":0,"m_iTeamIcons.052":0,"m_iTeamIcons.053":0,"m_iTeamIcons.054":0,"m_iTeamIcons.055":0,"m_iTeamIcons.056":0,"m_iTeamIcons.057":0,"m_iTeamIcons.058":0,"m_iTeamIcons.059":0,"m_iTeamIcons.060":0,"m_iTeamIcons.061":0,"m_iTeamIcons.062":0,"m_iTeamIcons.063":0,"m_iTeamOverlays.000":0,"m_iTeamOverlays.001":0,"m_iTeamOverlays.002":0,"m_iTeamOverlays.003":0,"m_iTeamOverlays.004":0,"m_iTeamOverlays.005":0,"m_iTeamOverlays.006":0,"m_iTeamOverlays.007":0,"m_iTeamOverlays.008":0,"m_iTeamOverlays.009":0,"m_iTeamOverlays.010":0,"m_iTeamOverlays.011":0,"m_iTeamOverlays.012":0,"m_iTeamOverlays.013":0,"m_iTeamOverlays.014":0,"m_iTeamOverlays.015":0,"m_iTeamOverlays.016":0,"m_iTeamOverlays.017":0,"m_iTeamOverlays.018":0,"m_iTeamOverlays.019":0,"m_iTeamOverlays.020":0,"m_iTeamOverlays.021":0,"m_iTeamOverlays.022":0,"m_iTeamOverlays.023":0,"m_iTeamOverlays.024":0,"m_iTeamOverlays.025":0,"m_iTeamOverlays.026":0,"m_iTeamOverlays.027":0,"m_iTeamOverlays.028":0,"m_iTeamOverlays.029":0,"m_iTeamOverlays.030":0,"m_iTeamOverlays.031":0,"m_iTeamOverlays.032":0,"m_iTeamOverlays.033":0,"m_iTeamOverlays.034":0,"m_iTeamOverlays.035":0,"m_iTeamOverlays.036":0,"m_iTeamOverlays.037":0,"m_iTeamOverlays.038":0,"m_iTeamOverlays.039":0,"m_iTeamOverlays.040":0,"m_iTeamOverlays.041":0,"m_iTeamOverlays.042":0,"m_iTeamOverlays.043":0,"m_iTeamOverlays.044":0,"m_iTeamOverlays.045":0,"m_iTeamOverlays.046":0,"m_iTeamOverlays.047":0,"m_iTeamOverlays.048":0,"m_iTeamOverlays.049":0,"m_iTeamOverlays.050":0,"m_iTeamOverlays.051":0,"m_iTeamOverlays.052":0,"m_iTeamOverlays.053":0,"m_iTeamOverlays.054":0,"m_iTeamOverlays.055":0,"m_iTeamOverlays.056":0,"m_iTeamOverlays.057":0,"m_iTeamOverlays.058":0,"m_iTeamOverlays.059":0,"m_iTeamOverlays.060":0,"m_iTeamOverlays.061":0,"m_iTeamOverlays.062":0,"m_iTeamOverlays.063":0,"m_iTeamReqCappers.000":0,"m_iTeamReqCappers.001":0,"m_iTeamReqCappers.002":0,"m_iTeamReqCappers.003":0,"m_iTeamReqCappers.004":0,"m_iTeamReqCappers.005":0,"m_iTeamReqCappers.006":0,"m_iTeamReqCappers.007":0,"m_iTeamReqCappers.008":0,"m_iTeamReqCappers.009":0,"m_iTeamReqCappers.010":0,"m_iTeamReqCappers.011":0,"m_iTeamReqCappers.012":0,"m_iTeamReqCappers.013":0,"m_iTeamReqCappers.014":0,"m_iTeamReqCappers.015":0,"m_iTeamReqCappers.016":1,"m_iTeamReqCappers.017":1,"m_iTeamReqCappers.018":1,"m_iTeamReqCappers.019":1,"m_iTeamReqCappers.020":1,"m_iTeamReqCappers.021":0,"m_iTeamReqCappers.022":0,"m_iTeamReqCappers.023":0,"m_iTeamReqCappers.024":1,"m_iTeamReqCappers.025":1,"m_iTeamReqCappers.026":1,"m_iTeamReqCappers.027":1,"m_iTeamReqCappers.028":1,"m_iTeamReqCappers.029":0,"m_iTeamReqCappers.030":0,"m_iTeamReqCappers.031":0,"m_iTeamReqCappers.032":0,"m_iTeamReqCappers.033":0,"m_iTeamReqCappers.034":0,"m_iTeamReqCappers.035":0,"m_iTeamReqCappers.036":0,"m_iTeamReqCappers.037":0,"m_iTeamReqCappers.038":0,"m_iTeamReqCappers.039":0,"m_iTeamReqCappers.040":0,"m_iTeamReqCappers.041":0,"m_iTeamReqCappers.042":0,"m_iTeamReqCappers.043":0,"m_iTeamReqCappers.044":0,"m_iTeamReqCappers.045":0,"m_iTeamReqCappers.046":0,"m_iTeamReqCappers.047":0,"m_iTeamReqCappers.048":0,"m_iTeamReqCappers.049":0,"m_iTeamReqCappers.050":0,"m_iTeamReqCappers.051":0,"m_iTeamReqCappers.052":0,"m_iTeamReqCappers.053":0,"m_iTeamReqCappers.054":0,"m_iTeamReqCappers.055":0,"m_iTeamReqCappers.056":0,"m_iTeamReqCappers.057":0,"m_iTeamReqCappers.058":0,"m_iTeamReqCappers.059":0,"m_iTeamReqCappers.060":0,"m_iTeamReqCappers.061":0,"m_iTeamReqCappers.062":0,"m_iTeamReqCappers.063":0,"m_flTeamCapTime.000":0,"m_flTeamCapTime.001":0,"m_flTeamCapTime.002":0,"m_flTeamCapTime.003":0,"m_flTeamCapTime.004":0,"m_flTeamCapTime.005":0,"m_flTeamCapTime.006":0,"m_flTeamCapTime.007":0,"m_flTeamCapTime.008":0,"m_flTeamCapTime.009":0,"m_flTeamCapTime.010":0,"m_flTeamCapTime.011":0,"m_flTeamCapTime.012":0,"m_flTeamCapTime.013":0,"m_flTeamCapTime.014":0,"m_flTeamCapTime.015":0,"m_flTeamCapTime.016":3.799999952316284,"m_flTeamCapTime.017":17.399999618530273,"m_flTeamCapTime.018":22,"m_flTeamCapTime.019":17.399999618530273,"m_flTeamCapTime.020":3.799999952316284,"m_flTeamCapTime.021":0,"m_flTeamCapTime.022":0,"m_flTeamCapTime.023":0,"m_flTeamCapTime.024":3.799999952316284,"m_flTeamCapTime.025":17.399999618530273,"m_flTeamCapTime.026":22,"m_flTeamCapTime.027":17.399999618530273,"m_flTeamCapTime.028":3.799999952316284,"m_flTeamCapTime.029":0,"m_flTeamCapTime.030":0,"m_flTeamCapTime.031":0,"m_flTeamCapTime.032":0,"m_flTeamCapTime.033":0,"m_flTeamCapTime.034":0,"m_flTeamCapTime.035":0,"m_flTeamCapTime.036":0,"m_flTeamCapTime.037":0,"m_flTeamCapTime.038":0,"m_flTeamCapTime.039":0,"m_flTeamCapTime.040":0,"m_flTeamCapTime.041":0,"m_flTeamCapTime.042":0,"m_flTeamCapTime.043":0,"m_flTeamCapTime.044":0,"m_flTeamCapTime.045":0,"m_flTeamCapTime.046":0,"m_flTeamCapTime.047":0,"m_flTeamCapTime.048":0,"m_flTeamCapTime.049":0,"m_flTeamCapTime.050":0,"m_flTeamCapTime.051":0,"m_flTeamCapTime.052":0,"m_flTeamCapTime.053":0,"m_flTeamCapTime.054":0,"m_flTeamCapTime.055":0,"m_flTeamCapTime.056":0,"m_flTeamCapTime.057":0,"m_flTeamCapTime.058":0,"m_flTeamCapTime.059":0,"m_flTeamCapTime.060":0,"m_flTeamCapTime.061":0,"m_flTeamCapTime.062":0,"m_flTeamCapTime.063":0,"m_iPreviousPoints.000":-1,"m_iPreviousPoints.001":-1,"m_iPreviousPoints.002":-1,"m_iPreviousPoints.003":-1,"m_iPreviousPoints.004":-1,"m_iPreviousPoints.005":-1,"m_iPreviousPoints.006":-1,"m_iPreviousPoints.007":-1,"m_iPreviousPoints.008":-1,"m_iPreviousPoints.009":-1,"m_iPreviousPoints.010":-1,"m_iPreviousPoints.011":-1,"m_iPreviousPoints.012":-1,"m_iPreviousPoints.013":-1,"m_iPreviousPoints.014":-1,"m_iPreviousPoints.015":-1,"m_iPreviousPoints.016":-1,"m_iPreviousPoints.017":-1,"m_iPreviousPoints.018":-1,"m_iPreviousPoints.019":-1,"m_iPreviousPoints.020":-1,"m_iPreviousPoints.021":-1,"m_iPreviousPoints.022":-1,"m_iPreviousPoints.023":-1,"m_iPreviousPoints.024":-1,"m_iPreviousPoints.025":-1,"m_iPreviousPoints.026":-1,"m_iPreviousPoints.027":-1,"m_iPreviousPoints.028":-1,"m_iPreviousPoints.029":-1,"m_iPreviousPoints.030":-1,"m_iPreviousPoints.031":-1,"m_iPreviousPoints.032":-1,"m_iPreviousPoints.033":-1,"m_iPreviousPoints.034":-1,"m_iPreviousPoints.035":-1,"m_iPreviousPoints.036":-1,"m_iPreviousPoints.037":-1,"m_iPreviousPoints.038":-1,"m_iPreviousPoints.039":-1,"m_iPreviousPoints.040":-1,"m_iPreviousPoints.041":-1,"m_iPreviousPoints.042":-1,"m_iPreviousPoints.043":-1,"m_iPreviousPoints.044":-1,"m_iPreviousPoints.045":-1,"m_iPreviousPoints.046":-1,"m_iPreviousPoints.047":-1,"m_iPreviousPoints.048":-1,"m_iPreviousPoints.049":-1,"m_iPreviousPoints.050":-1,"m_iPreviousPoints.051":-1,"m_iPreviousPoints.052":-1,"m_iPreviousPoints.053":-1,"m_iPreviousPoints.054":-1,"m_iPreviousPoints.055":-1,"m_iPreviousPoints.056":-1,"m_iPreviousPoints.057":-1,"m_iPreviousPoints.058":-1,"m_iPreviousPoints.059":-1,"m_iPreviousPoints.060":-1,"m_iPreviousPoints.061":-1,"m_iPreviousPoints.062":-1,"m_iPreviousPoints.063":-1,"m_iPreviousPoints.064":-1,"m_iPreviousPoints.065":-1,"m_iPreviousPoints.066":-1,"m_iPreviousPoints.067":-1,"m_iPreviousPoints.068":-1,"m_iPreviousPoints.069":-1,"m_iPreviousPoints.070":-1,"m_iPreviousPoints.071":-1,"m_iPreviousPoints.072":-1,"m_iPreviousPoints.073":-1,"m_iPreviousPoints.074":-1,"m_iPreviousPoints.075":-1,"m_iPreviousPoints.076":-1,"m_iPreviousPoints.077":-1,"m_iPreviousPoints.078":-1,"m_iPreviousPoints.079":-1,"m_iPreviousPoints.080":-1,"m_iPreviousPoints.081":-1,"m_iPreviousPoints.082":-1,"m_iPreviousPoints.083":-1,"m_iPreviousPoints.084":-1,"m_iPreviousPoints.085":-1,"m_iPreviousPoints.086":-1,"m_iPreviousPoints.087":-1,"m_iPreviousPoints.088":-1,"m_iPreviousPoints.089":-1,"m_iPreviousPoints.090":-1,"m_iPreviousPoints.091":-1,"m_iPreviousPoints.092":-1,"m_iPreviousPoints.093":-1,"m_iPreviousPoints.094":-1,"m_iPreviousPoints.095":-1,"m_iPreviousPoints.096":-1,"m_iPreviousPoints.097":-1,"m_iPreviousPoints.098":-1,"m_iPreviousPoints.099":-1,"m_iPreviousPoints.100":-1,"m_iPreviousPoints.101":-1,"m_iPreviousPoints.102":-1,"m_iPreviousPoints.103":-1,"m_iPreviousPoints.104":-1,"m_iPreviousPoints.105":-1,"m_iPreviousPoints.106":-1,"m_iPreviousPoints.107":-1,"m_iPreviousPoints.108":-1,"m_iPreviousPoints.109":-1,"m_iPreviousPoints.110":-1,"m_iPreviousPoints.111":-1,"m_iPreviousPoints.112":-1,"m_iPreviousPoints.113":-1,"m_iPreviousPoints.114":-1,"m_iPreviousPoints.115":-1,"m_iPreviousPoints.116":-1,"m_iPreviousPoints.117":-1,"m_iPreviousPoints.118":-1,"m_iPreviousPoints.119":-1,"m_iPreviousPoints.120":-1,"m_iPreviousPoints.121":-1,"m_iPreviousPoints.122":-1,"m_iPreviousPoints.123":-1,"m_iPreviousPoints.124":-1,"m_iPreviousPoints.125":-1,"m_iPreviousPoints.126":-1,"m_iPreviousPoints.127":-1,"m_iPreviousPoints.128":-1,"m_iPreviousPoints.129":-1,"m_iPreviousPoints.130":-1,"m_iPreviousPoints.131":-1,"m_iPreviousPoints.132":-1,"m_iPreviousPoints.133":-1,"m_iPreviousPoints.134":-1,"m_iPreviousPoints.135":-1,"m_iPreviousPoints.136":-1,"m_iPreviousPoints.137":-1,"m_iPreviousPoints.138":-1,"m_iPreviousPoints.139":-1,"m_iPreviousPoints.140":-1,"m_iPreviousPoints.141":-1,"m_iPreviousPoints.142":-1,"m_iPreviousPoints.143":-1,"m_iPreviousPoints.144":-1,"m_iPreviousPoints.145":-1,"m_iPreviousPoints.146":-1,"m_iPreviousPoints.147":-1,"m_iPreviousPoints.148":-1,"m_iPreviousPoints.149":-1,"m_iPreviousPoints.150":-1,"m_iPreviousPoints.151":-1,"m_iPreviousPoints.152":-1,"m_iPreviousPoints.153":-1,"m_iPreviousPoints.154":-1,"m_iPreviousPoints.155":-1,"m_iPreviousPoints.156":-1,"m_iPreviousPoints.157":-1,"m_iPreviousPoints.158":-1,"m_iPreviousPoints.159":-1,"m_iPreviousPoints.160":-1,"m_iPreviousPoints.161":-1,"m_iPreviousPoints.162":-1,"m_iPreviousPoints.163":-1,"m_iPreviousPoints.164":-1,"m_iPreviousPoints.165":-1,"m_iPreviousPoints.166":-1,"m_iPreviousPoints.167":-1,"m_iPreviousPoints.168":-1,"m_iPreviousPoints.169":-1,"m_iPreviousPoints.170":-1,"m_iPreviousPoints.171":-1,"m_iPreviousPoints.172":-1,"m_iPreviousPoints.173":-1,"m_iPreviousPoints.174":-1,"m_iPreviousPoints.175":-1,"m_iPreviousPoints.176":-1,"m_iPreviousPoints.177":-1,"m_iPreviousPoints.178":-1,"m_iPreviousPoints.179":-1,"m_iPreviousPoints.180":-1,"m_iPreviousPoints.181":-1,"m_iPreviousPoints.182":-1,"m_iPreviousPoints.183":-1,"m_iPreviousPoints.184":-1,"m_iPreviousPoints.185":-1,"m_iPreviousPoints.186":-1,"m_iPreviousPoints.187":-1,"m_iPreviousPoints.188":-1,"m_iPreviousPoints.189":-1,"m_iPreviousPoints.190":-1,"m_iPreviousPoints.191":-1,"m_bTeamCanCap.000":0,"m_bTeamCanCap.001":0,"m_bTeamCanCap.002":0,"m_bTeamCanCap.003":0,"m_bTeamCanCap.004":0,"m_bTeamCanCap.005":0,"m_bTeamCanCap.006":0,"m_bTeamCanCap.007":0,"m_bTeamCanCap.008":0,"m_bTeamCanCap.009":0,"m_bTeamCanCap.010":0,"m_bTeamCanCap.011":0,"m_bTeamCanCap.012":0,"m_bTeamCanCap.013":0,"m_bTeamCanCap.014":0,"m_bTeamCanCap.015":0,"m_bTeamCanCap.016":1,"m_bTeamCanCap.017":1,"m_bTeamCanCap.018":1,"m_bTeamCanCap.019":1,"m_bTeamCanCap.020":1,"m_bTeamCanCap.021":0,"m_bTeamCanCap.022":0,"m_bTeamCanCap.023":0,"m_bTeamCanCap.024":1,"m_bTeamCanCap.025":1,"m_bTeamCanCap.026":1,"m_bTeamCanCap.027":1,"m_bTeamCanCap.028":1,"m_bTeamCanCap.029":0,"m_bTeamCanCap.030":0,"m_bTeamCanCap.031":0,"m_bTeamCanCap.032":0,"m_bTeamCanCap.033":0,"m_bTeamCanCap.034":0,"m_bTeamCanCap.035":0,"m_bTeamCanCap.036":0,"m_bTeamCanCap.037":0,"m_bTeamCanCap.038":0,"m_bTeamCanCap.039":0,"m_bTeamCanCap.040":0,"m_bTeamCanCap.041":0,"m_bTeamCanCap.042":0,"m_bTeamCanCap.043":0,"m_bTeamCanCap.044":0,"m_bTeamCanCap.045":0,"m_bTeamCanCap.046":0,"m_bTeamCanCap.047":0,"m_bTeamCanCap.048":0,"m_bTeamCanCap.049":0,"m_bTeamCanCap.050":0,"m_bTeamCanCap.051":0,"m_bTeamCanCap.052":0,"m_bTeamCanCap.053":0,"m_bTeamCanCap.054":0,"m_bTeamCanCap.055":0,"m_bTeamCanCap.056":0,"m_bTeamCanCap.057":0,"m_bTeamCanCap.058":0,"m_bTeamCanCap.059":0,"m_bTeamCanCap.060":0,"m_bTeamCanCap.061":0,"m_bTeamCanCap.062":0,"m_bTeamCanCap.063":0,"m_iTeamBaseIcons.000":0,"m_iTeamBaseIcons.001":0,"m_iTeamBaseIcons.002":5,"m_iTeamBaseIcons.003":6,"m_iTeamBaseIcons.004":0,"m_iTeamBaseIcons.005":0,"m_iTeamBaseIcons.006":0,"m_iTeamBaseIcons.007":0,"m_iTeamBaseIcons.008":0,"m_iTeamBaseIcons.009":0,"m_iTeamBaseIcons.010":0,"m_iTeamBaseIcons.011":0,"m_iTeamBaseIcons.012":0,"m_iTeamBaseIcons.013":0,"m_iTeamBaseIcons.014":0,"m_iTeamBaseIcons.015":0,"m_iTeamBaseIcons.016":0,"m_iTeamBaseIcons.017":0,"m_iTeamBaseIcons.018":0,"m_iTeamBaseIcons.019":0,"m_iTeamBaseIcons.020":0,"m_iTeamBaseIcons.021":0,"m_iTeamBaseIcons.022":0,"m_iTeamBaseIcons.023":0,"m_iTeamBaseIcons.024":0,"m_iTeamBaseIcons.025":0,"m_iTeamBaseIcons.026":0,"m_iTeamBaseIcons.027":0,"m_iTeamBaseIcons.028":0,"m_iTeamBaseIcons.029":0,"m_iTeamBaseIcons.030":0,"m_iTeamBaseIcons.031":0,"m_iBaseControlPoints.000":-1,"m_iBaseControlPoints.001":-1,"m_iBaseControlPoints.002":4,"m_iBaseControlPoints.003":0,"m_iBaseControlPoints.004":-1,"m_iBaseControlPoints.005":-1,"m_iBaseControlPoints.006":-1,"m_iBaseControlPoints.007":-1,"m_iBaseControlPoints.008":-1,"m_iBaseControlPoints.009":-1,"m_iBaseControlPoints.010":-1,"m_iBaseControlPoints.011":-1,"m_iBaseControlPoints.012":-1,"m_iBaseControlPoints.013":-1,"m_iBaseControlPoints.014":-1,"m_iBaseControlPoints.015":-1,"m_iBaseControlPoints.016":-1,"m_iBaseControlPoints.017":-1,"m_iBaseControlPoints.018":-1,"m_iBaseControlPoints.019":-1,"m_iBaseControlPoints.020":-1,"m_iBaseControlPoints.021":-1,"m_iBaseControlPoints.022":-1,"m_iBaseControlPoints.023":-1,"m_iBaseControlPoints.024":-1,"m_iBaseControlPoints.025":-1,"m_iBaseControlPoints.026":-1,"m_iBaseControlPoints.027":-1,"m_iBaseControlPoints.028":-1,"m_iBaseControlPoints.029":-1,"m_iBaseControlPoints.030":-1,"m_iBaseControlPoints.031":-1,"m_bInMiniRound.000":1,"m_bInMiniRound.001":1,"m_bInMiniRound.002":1,"m_bInMiniRound.003":1,"m_bInMiniRound.004":1,"m_bInMiniRound.005":1,"m_bInMiniRound.006":1,"m_bInMiniRound.007":1,"m_iWarnOnCap.000":0,"m_iWarnOnCap.001":0,"m_iWarnOnCap.002":0,"m_iWarnOnCap.003":0,"m_iWarnOnCap.004":0,"m_iWarnOnCap.005":0,"m_iWarnOnCap.006":0,"m_iWarnOnCap.007":0,"m_flPathDistance.000":0,"m_flPathDistance.001":0,"m_flPathDistance.002":0,"m_flPathDistance.003":0,"m_flPathDistance.004":0,"m_flPathDistance.005":0,"m_flPathDistance.006":0,"m_flPathDistance.007":0,"m_iCPGroup.000":0,"m_iCPGroup.001":0,"m_iCPGroup.002":0,"m_iCPGroup.003":0,"m_iCPGroup.004":0,"m_iCPGroup.005":-1,"m_iCPGroup.006":-1,"m_iCPGroup.007":-1,"m_bCPLocked.000":0,"m_bCPLocked.001":0,"m_bCPLocked.002":0,"m_bCPLocked.003":0,"m_bCPLocked.004":0,"m_bCPLocked.005":0,"m_bCPLocked.006":0,"m_bCPLocked.007":0,"m_nNumNodeHillData.000":0,"m_nNumNodeHillData.001":0,"m_nNumNodeHillData.002":0,"m_nNumNodeHillData.003":0,"m_flNodeHillData.000":0,"m_flNodeHillData.001":0,"m_flNodeHillData.002":0,"m_flNodeHillData.003":0,"m_flNodeHillData.004":0,"m_flNodeHillData.005":0,"m_flNodeHillData.006":0,"m_flNodeHillData.007":0,"m_flNodeHillData.008":0,"m_flNodeHillData.009":0,"m_flNodeHillData.010":0,"m_flNodeHillData.011":0,"m_flNodeHillData.012":0,"m_flNodeHillData.013":0,"m_flNodeHillData.014":0,"m_flNodeHillData.015":0,"m_flNodeHillData.016":0,"m_flNodeHillData.017":0,"m_flNodeHillData.018":0,"m_flNodeHillData.019":0,"m_flNodeHillData.020":0,"m_flNodeHillData.021":0,"m_flNodeHillData.022":0,"m_flNodeHillData.023":0,"m_flNodeHillData.024":0,"m_flNodeHillData.025":0,"m_flNodeHillData.026":0,"m_flNodeHillData.027":0,"m_flNodeHillData.028":0,"m_flNodeHillData.029":0,"m_flNodeHillData.030":0,"m_flNodeHillData.031":0,"m_flNodeHillData.032":0,"m_flNodeHillData.033":0,"m_flNodeHillData.034":0,"m_flNodeHillData.035":0,"m_flNodeHillData.036":0,"m_flNodeHillData.037":0,"m_flNodeHillData.038":0,"m_flNodeHillData.039":0,"m_bTrackAlarm.000":0,"m_bTrackAlarm.001":0,"m_bTrackAlarm.002":0,"m_bTrackAlarm.003":0,"m_flUnlockTimes.000":0,"m_flUnlockTimes.001":0,"m_flUnlockTimes.002":0,"m_flUnlockTimes.003":0,"m_flUnlockTimes.004":0,"m_flUnlockTimes.005":0,"m_flUnlockTimes.006":0,"m_flUnlockTimes.007":0,"m_bHillIsDownhill.000":0,"m_bHillIsDownhill.001":0,"m_bHillIsDownhill.002":0,"m_bHillIsDownhill.003":0,"m_bHillIsDownhill.004":0,"m_bHillIsDownhill.005":0,"m_bHillIsDownhill.006":0,"m_bHillIsDownhill.007":0,"m_bHillIsDownhill.008":0,"m_bHillIsDownhill.009":0,"m_bHillIsDownhill.010":0,"m_bHillIsDownhill.011":0,"m_bHillIsDownhill.012":0,"m_bHillIsDownhill.013":0,"m_bHillIsDownhill.014":0,"m_bHillIsDownhill.015":0,"m_bHillIsDownhill.016":0,"m_bHillIsDownhill.017":0,"m_bHillIsDownhill.018":0,"m_bHillIsDownhill.019":0,"m_flCPTimerTimes.000":-1,"m_flCPTimerTimes.001":-1,"m_flCPTimerTimes.002":-1,"m_flCPTimerTimes.003":-1,"m_flCPTimerTimes.004":-1,"m_flCPTimerTimes.005":-1,"m_flCPTimerTimes.006":-1,"m_flCPTimerTimes.007":-1,"m_iNumTeamMembers.000":0,"m_iNumTeamMembers.001":0,"m_iNumTeamMembers.002":0,"m_iNumTeamMembers.003":0,"m_iNumTeamMembers.004":0,"m_iNumTeamMembers.005":0,"m_iNumTeamMembers.006":0,"m_iNumTeamMembers.007":0,"m_iNumTeamMembers.008":0,"m_iNumTeamMembers.009":0,"m_iNumTeamMembers.010":0,"m_iNumTeamMembers.011":0,"m_iNumTeamMembers.012":0,"m_iNumTeamMembers.013":0,"m_iNumTeamMembers.014":0,"m_iNumTeamMembers.015":0,"m_iNumTeamMembers.016":0,"m_iNumTeamMembers.017":0,"m_iNumTeamMembers.018":0,"m_iNumTeamMembers.019":0,"m_iNumTeamMembers.020":0,"m_iNumTeamMembers.021":0,"m_iNumTeamMembers.022":0,"m_iNumTeamMembers.023":0,"m_iNumTeamMembers.024":0,"m_iNumTeamMembers.025":0,"m_iNumTeamMembers.026":0,"m_iNumTeamMembers.027":0,"m_iNumTeamMembers.028":0,"m_iNumTeamMembers.029":0,"m_iNumTeamMembers.030":0,"m_iNumTeamMembers.031":0,"m_iNumTeamMembers.032":0,"m_iNumTeamMembers.033":0,"m_iNumTeamMembers.034":0,"m_iNumTeamMembers.035":0,"m_iNumTeamMembers.036":0,"m_iNumTeamMembers.037":0,"m_iNumTeamMembers.038":0,"m_iNumTeamMembers.039":0,"m_iNumTeamMembers.040":0,"m_iNumTeamMembers.041":0,"m_iNumTeamMembers.042":0,"m_iNumTeamMembers.043":0,"m_iNumTeamMembers.044":0,"m_iNumTeamMembers.045":0,"m_iNumTeamMembers.046":0,"m_iNumTeamMembers.047":0,"m_iNumTeamMembers.048":0,"m_iNumTeamMembers.049":0,"m_iNumTeamMembers.050":0,"m_iNumTeamMembers.051":0,"m_iNumTeamMembers.052":0,"m_iNumTeamMembers.053":0,"m_iNumTeamMembers.054":0,"m_iNumTeamMembers.055":0,"m_iNumTeamMembers.056":0,"m_iNumTeamMembers.057":0,"m_iNumTeamMembers.058":0,"m_iNumTeamMembers.059":0,"m_iNumTeamMembers.060":0,"m_iNumTeamMembers.061":0,"m_iNumTeamMembers.062":0,"m_iNumTeamMembers.063":0,"m_iCappingTeam.000":0,"m_iCappingTeam.001":0,"m_iCappingTeam.002":0,"m_iCappingTeam.003":0,"m_iCappingTeam.004":0,"m_iCappingTeam.005":0,"m_iCappingTeam.006":0,"m_iCappingTeam.007":0,"m_iTeamInZone.000":0,"m_iTeamInZone.001":0,"m_iTeamInZone.002":0,"m_iTeamInZone.003":0,"m_iTeamInZone.004":0,"m_iTeamInZone.005":0,"m_iTeamInZone.006":0,"m_iTeamInZone.007":0,"m_bBlocked.000":0,"m_bBlocked.001":0,"m_bBlocked.002":0,"m_bBlocked.003":0,"m_bBlocked.004":0,"m_bBlocked.005":0,"m_bBlocked.006":0,"m_bBlocked.007":0,"m_iOwner.000":3,"m_iOwner.001":3,"m_iOwner.002":0,"m_iOwner.003":2,"m_iOwner.004":2,"m_iOwner.005":0,"m_iOwner.006":0,"m_iOwner.007":0,"m_bCPCapRateScalesWithPlayers.000":1,"m_bCPCapRateScalesWithPlayers.001":1,"m_bCPCapRateScalesWithPlayers.002":1,"m_bCPCapRateScalesWithPlayers.003":1,"m_bCPCapRateScalesWithPlayers.004":1,"m_bCPCapRateScalesWithPlayers.005":1,"m_bCPCapRateScalesWithPlayers.006":1,"m_bCPCapRateScalesWithPlayers.007":1,"m_nMannVsMachineWaveClassCounts.000":0,"m_nMannVsMachineWaveClassCounts.001":0,"m_nMannVsMachineWaveClassCounts.002":0,"m_nMannVsMachineWaveClassCounts.003":0,"m_nMannVsMachineWaveClassCounts.004":0,"m_nMannVsMachineWaveClassCounts.005":0,"m_nMannVsMachineWaveClassCounts.006":0,"m_nMannVsMachineWaveClassCounts.007":0,"m_nMannVsMachineWaveClassCounts.008":0,"m_nMannVsMachineWaveClassCounts.009":0,"m_nMannVsMachineWaveClassCounts.010":0,"m_nMannVsMachineWaveClassCounts.011":0,"m_nMannVsMachineWaveClassFlags.000":0,"m_nMannVsMachineWaveClassFlags.001":0,"m_nMannVsMachineWaveClassFlags.002":0,"m_nMannVsMachineWaveClassFlags.003":0,"m_nMannVsMachineWaveClassFlags.004":0,"m_nMannVsMachineWaveClassFlags.005":0,"m_nMannVsMachineWaveClassFlags.006":0,"m_nMannVsMachineWaveClassFlags.007":0,"m_nMannVsMachineWaveClassFlags.008":0,"m_nMannVsMachineWaveClassFlags.009":0,"m_nMannVsMachineWaveClassFlags.010":0,"m_nMannVsMachineWaveClassFlags.011":0,"m_nMannVsMachineWaveClassCounts2.000":0,"m_nMannVsMachineWaveClassCounts2.001":0,"m_nMannVsMachineWaveClassCounts2.002":0,"m_nMannVsMachineWaveClassCounts2.003":0,"m_nMannVsMachineWaveClassCounts2.004":0,"m_nMannVsMachineWaveClassCounts2.005":0,"m_nMannVsMachineWaveClassCounts2.006":0,"m_nMannVsMachineWaveClassCounts2.007":0,"m_nMannVsMachineWaveClassCounts2.008":0,"m_nMannVsMachineWaveClassCounts2.009":0,"m_nMannVsMachineWaveClassCounts2.010":0,"m_nMannVsMachineWaveClassCounts2.011":0,"m_nMannVsMachineWaveClassFlags2.000":0,"m_nMannVsMachineWaveClassFlags2.001":0,"m_nMannVsMachineWaveClassFlags2.002":0,"m_nMannVsMachineWaveClassFlags2.003":0,"m_nMannVsMachineWaveClassFlags2.004":0,"m_nMannVsMachineWaveClassFlags2.005":0,"m_nMannVsMachineWaveClassFlags2.006":0,"m_nMannVsMachineWaveClassFlags2.007":0,"m_nMannVsMachineWaveClassFlags2.008":0,"m_nMannVsMachineWaveClassFlags2.009":0,"m_nMannVsMachineWaveClassFlags2.010":0,"m_nMannVsMachineWaveClassFlags2.011":0,"m_bMannVsMachineWaveClassActive.000":0,"m_bMannVsMachineWaveClassActive.001":0,"m_bMannVsMachineWaveClassActive.002":0,"m_bMannVsMachineWaveClassActive.003":0,"m_bMannVsMachineWaveClassActive.004":0,"m_bMannVsMachineWaveClassActive.005":0,"m_bMannVsMachineWaveClassActive.006":0,"m_bMannVsMachineWaveClassActive.007":0,"m_bMannVsMachineWaveClassActive.008":0,"m_bMannVsMachineWaveClassActive.009":0,"m_bMannVsMachineWaveClassActive.010":0,"m_bMannVsMachineWaveClassActive.011":0,"m_bMannVsMachineWaveClassActive2.000":0,"m_bMannVsMachineWaveClassActive2.001":0,"m_bMannVsMachineWaveClassActive2.002":0,"m_bMannVsMachineWaveClassActive2.003":0,"m_bMannVsMachineWaveClassActive2.004":0,"m_bMannVsMachineWaveClassActive2.005":0,"m_bMannVsMachineWaveClassActive2.006":0,"m_bMannVsMachineWaveClassActive2.007":0,"m_bMannVsMachineWaveClassActive2.008":0,"m_bMannVsMachineWaveClassActive2.009":0,"m_bMannVsMachineWaveClassActive2.010":0,"m_bMannVsMachineWaveClassActive2.011":0,"DT_BaseTeamObjectiveResource.m_iTimerToShowInHUD":144,"DT_BaseTeamObjectiveResource.m_iStopWatchTimer":0,"DT_BaseTeamObjectiveResource.m_iNumControlPoints":5,"DT_BaseTeamObjectiveResource.m_bPlayingMiniRounds":0,"DT_BaseTeamObjectiveResource.m_bControlPointsReset":0,"DT_BaseTeamObjectiveResource.m_iUpdateCapHudParity":47,"DT_BaseTeamObjectiveResource.m_vCPPositions":[{"x":4502,"y":-1042,"z":163.75},{"x":1723.3125,"y":-1893,"z":170},{"x":690.78125,"y":-296.9375,"z":390},{"x":-358,"y":1317,"z":170},{"x":-3139,"y":454.3125,"z":162},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0},{"x":0,"y":0,"z":0}],"DT_BaseTeamObjectiveResource.m_iszWarnSound":["ControlPoint.CaptureWarn","ControlPoint.CaptureWarn","ControlPoint.CaptureWarn","ControlPoint.CaptureWarn","ControlPoint.CaptureWarn","","",""],"DT_BaseTeamObjectiveResource.m_pszCapLayoutInHUD":"","DT_BaseTeamObjectiveResource.m_flCustomPositionX":-1,"DT_BaseTeamObjectiveResource.m_flCustomPositionY":-1,"DT_TFObjectiveResource.m_nMannVsMachineMaxWaveCount":0,"DT_TFObjectiveResource.m_nMannVsMachineWaveCount":0,"DT_TFObjectiveResource.m_nMannVsMachineWaveEnemyCount":0,"DT_TFObjectiveResource.m_nMvMWorldMoney":0,"DT_TFObjectiveResource.m_flMannVsMachineNextWaveTime":0,"DT_TFObjectiveResource.m_bMannVsMachineBetweenWaves":0,"DT_TFObjectiveResource.m_nFlagCarrierUpgradeLevel":0,"DT_TFObjectiveResource.m_flMvMBaseBombUpgradeTime":0,"DT_TFObjectiveResource.m_flMvMNextBombUpgradeTime":0,"DT_TFObjectiveResource.m_iszMvMPopfileName":"","DT_TFObjectiveResource.m_iChallengeIndex":-1,"DT_TFObjectiveResource.m_nMvMEventPopfileType":0,"DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames":["","","","","","","","","","","",""],"DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames2":["","","","","","","","","","","",""]},"pvs":1} -{"tick":0,"serverClass":"CMonsterResource","id":32,"props":{"DT_MonsterResource.m_iBossHealthPercentageByte":0,"DT_MonsterResource.m_iBossStunPercentageByte":0,"DT_MonsterResource.m_iSkillShotCompleteCount":0,"DT_MonsterResource.m_fSkillShotComboEndTime":0,"DT_MonsterResource.m_iBossState":0},"pvs":1} -{"tick":0,"serverClass":"CMannVsMachineStats","id":33,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CMannVsMachineWaveStats.nCreditsDropped":0,"DT_CMannVsMachineWaveStats.nCreditsAcquired":0,"DT_CMannVsMachineWaveStats.nCreditsBonus":0,"DT_CMannVsMachineWaveStats.nPlayerDeaths":0,"DT_CMannVsMachineWaveStats.nBuyBacks":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_MannVsMachineStats.m_iCurrentWaveIdx":0,"DT_MannVsMachineStats.m_iServerWaveID":0,"DT_MannVsMachineStats.m_iCurrencyCollectedForRespec":0,"DT_MannVsMachineStats.m_nRespecsAwardedInWave":0},"pvs":1} -{"tick":0,"serverClass":"CVoteController","id":35,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_nVoteOptionCount.000":0,"m_nVoteOptionCount.001":0,"m_nVoteOptionCount.002":0,"m_nVoteOptionCount.003":0,"m_nVoteOptionCount.004":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_VoteController.m_iActiveIssueIndex":-1,"DT_VoteController.m_iOnlyTeamToVote":0,"DT_VoteController.m_nPotentialVotes":0,"DT_VoteController.m_bIsYesNoVote":1},"pvs":1} -{"tick":0,"serverClass":"CSprite","id":38,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":2609.375,"y":-462.53125,"z":174.8125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":745,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":9,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4287813886,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Sprite.m_hAttachedToEntity":2097151,"DT_Sprite.m_nAttachment":0,"DT_Sprite.m_flScaleTime":0,"DT_Sprite.m_flSpriteScale":0.75,"DT_Sprite.m_flGlowProxySize":4,"DT_Sprite.m_flHDRColorScale":1,"DT_Sprite.m_flSpriteFramerate":10.078125,"DT_Sprite.m_flFrame":0,"DT_Sprite.m_flBrightnessTime":0,"DT_Sprite.m_nBrightness":255,"DT_Sprite.m_bWorldSpaceScale":0},"pvs":1} -{"tick":0,"serverClass":"CSprite","id":40,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":3949.125,"y":-309.375,"z":376.9375},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":745,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":9,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4287813886,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Sprite.m_hAttachedToEntity":2097151,"DT_Sprite.m_nAttachment":0,"DT_Sprite.m_flScaleTime":0,"DT_Sprite.m_flSpriteScale":0.75,"DT_Sprite.m_flGlowProxySize":4,"DT_Sprite.m_flHDRColorScale":1,"DT_Sprite.m_flSpriteFramerate":10.078125,"DT_Sprite.m_flFrame":0,"DT_Sprite.m_flBrightnessTime":0,"DT_Sprite.m_nBrightness":255,"DT_Sprite.m_bWorldSpaceScale":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":54,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":4511,"y":-711.34375,"z":352},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":5,"y":57,"z":56.989990234375},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5,"y":-57,"z":-57.010009765625},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":5,"y":57,"z":56.989990234375},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":3,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":3,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-5,"y":-57,"z":-57.010009765625},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":57,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":4504,"y":-1379.65625,"z":352},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":5,"y":57,"z":56.989990234375},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5,"y":-57.010009765625,"z":-57.010009765625},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":5,"y":57,"z":56.989990234375},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":6,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":3,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-5,"y":-57.010009765625,"z":-57.010009765625},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":62,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":2298,"y":-1850.96875,"z":215},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":5,"y":56.989990234375,"z":57},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5,"y":-57.010009765625,"z":-57},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":5,"y":56.989990234375,"z":57},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":8,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":3,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-5,"y":-57.010009765625,"z":-57},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":73,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":1537,"y":-1043.25,"z":366.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":0,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":75,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":2437,"y":-2028.65625,"z":292.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":269.9890123306067,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":82,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-178.96875,"y":457.90625,"z":366.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":84,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-2310.40625,"y":-197.78125,"z":651},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":85,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-1941.65625,"y":-201.0625,"z":652},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CBaseDoor","id":90,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3156,"y":115.3125,"z":221.5},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":6.010009765625,"y":99,"z":195.49000549316406},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-3.989990234375,"y":-95,"z":73.49000549316406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":6.010009765625,"y":99,"z":195.49000549316406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":13,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":10,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-3.989990234375,"y":-95,"z":73.49000549316406},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseDoor.m_flWaveHeight":0.03125},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":91,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3173.625,"y":371,"z":213.75},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":16.6298828125,"y":-197,"z":195.24000549316406},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":9.6298828125,"y":-311,"z":81.24000549316406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":16.6298828125,"y":-197,"z":195.24000549316406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":14,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":9.6298828125,"y":-311,"z":81.24000549316406},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseDoor","id":93,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3139,"y":784.3125,"z":221.5},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":6.010009765625,"y":99,"z":195.49000549316406},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-3.989990234375,"y":-95,"z":73.49000549316406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":6.010009765625,"y":99,"z":195.49000549316406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":16,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":10,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-3.989990234375,"y":-95,"z":73.49000549316406},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseDoor.m_flWaveHeight":0.03125},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":110,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3139,"y":454.3125,"z":162},"DT_BaseEntity.m_angRotation":{"x":0,"y":269.9890123306067,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-37.7890625,"y":-37.91983413696289,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":37.788997650146484,"y":37.91983413696289,"z":192.86782836914062},"DT_CollisionProperty.m_vecMins":{"x":-37.7890625,"y":-37.91983413696289,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":757,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":16,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":37.788997650146484,"y":37.91983413696289,"z":192.86782836914062},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":2,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":111,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3139,"y":454.3125,"z":158},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-101.6365966796875,"y":-101.63658905029297,"z":-0.25000444054603577},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":101.63658905029297,"y":101.63655090332031,"z":7.524943828582764},"DT_CollisionProperty.m_vecMins":{"x":-101.6365966796875,"y":-101.63658905029297,"z":-0.25000444054603577},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":758,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":16,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":101.63658905029297,"y":101.63655090332031,"z":7.524943828582764},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":1,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":112,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-26.96875,"y":2,"z":138.46875},"DT_BaseEntity.m_angRotation":{"x":0,"y":90.01098766939323,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-92,"y":-27.332223892211914,"z":-64.25000762939453},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":92.00346374511719,"y":0,"z":54.65977096557617},"DT_CollisionProperty.m_vecMins":{"x":-92,"y":-27.332223892211914,"z":-64.25000762939453},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":778,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":16,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":106586,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":92.00346374511719,"y":0,"z":54.65977096557617},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":113,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-26.96875,"y":2,"z":138.46875},"DT_BaseEntity.m_angRotation":{"x":0,"y":90.01098766939323,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-92,"y":-27.332223892211914,"z":-64.25000762939453},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":92.00346374511719,"y":0,"z":54.65977096557617},"DT_CollisionProperty.m_vecMins":{"x":-92,"y":-27.332223892211914,"z":-64.25000762939453},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":778,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":16,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1265757,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":92.00346374511719,"y":0,"z":54.65977096557617},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":127,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3830,"y":604.3125,"z":296.15625},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-16.250001907348633,"y":-32.25,"z":-0.16006843745708466},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":19.40962028503418,"y":32.25,"z":113.0318832397461},"DT_CollisionProperty.m_vecMins":{"x":-16.250001907348633,"y":-32.25,"z":-0.16006843745708466},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":746,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":19.40962028503418,"y":32.25,"z":113.0318832397461},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":128,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3822,"y":316.3125,"z":296.15625},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-16.250001907348633,"y":-32.25,"z":-0.16006843745708466},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":19.40962028503418,"y":32.25,"z":113.0318832397461},"DT_CollisionProperty.m_vecMins":{"x":-16.250001907348633,"y":-32.25,"z":-0.16006843745708466},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":746,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":19.40962028503418,"y":32.25,"z":113.0318832397461},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":138,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3144,"y":792,"z":351},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":5,"y":57,"z":57},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5,"y":-57,"z":-57},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":5,"y":57,"z":57},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":27,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-5,"y":-57,"z":-57},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CTeamRoundTimer","id":144,"props":{"DT_TeamRoundTimer.m_bTimerPaused":0,"DT_TeamRoundTimer.m_flTimeRemaining":600,"DT_TeamRoundTimer.m_flTimerEndTime":668.3399658203125,"DT_TeamRoundTimer.m_nTimerMaxLength":600,"DT_TeamRoundTimer.m_bIsDisabled":0,"DT_TeamRoundTimer.m_bShowInHUD":1,"DT_TeamRoundTimer.m_nTimerLength":600,"DT_TeamRoundTimer.m_nTimerInitialLength":600,"DT_TeamRoundTimer.m_bAutoCountdown":1,"DT_TeamRoundTimer.m_nSetupTimeLength":0,"DT_TeamRoundTimer.m_nState":1,"DT_TeamRoundTimer.m_bStartPaused":0,"DT_TeamRoundTimer.m_bShowTimeRemaining":1,"DT_TeamRoundTimer.m_bStopWatchTimer":0,"DT_TeamRoundTimer.m_bInCaptureWatchState":0,"DT_TeamRoundTimer.m_flTotalTime":0},"pvs":1} -{"tick":0,"serverClass":"CEnvTonemapController","id":146,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":998.46875,"y":-1098.3125,"z":265},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_EnvTonemapController.m_bUseCustomAutoExposureMin":1,"DT_EnvTonemapController.m_bUseCustomAutoExposureMax":1,"DT_EnvTonemapController.m_bUseCustomBloomScale":1,"DT_EnvTonemapController.m_flCustomAutoExposureMin":0.5,"DT_EnvTonemapController.m_flCustomAutoExposureMax":0.8999999761581421,"DT_EnvTonemapController.m_flCustomBloomScale":0.6000000238418579,"DT_EnvTonemapController.m_flCustomBloomScaleMinimum":0.6000000238418579},"pvs":1} -{"tick":0,"serverClass":"CTFViewModel","id":147,"props":{"DT_BaseViewModel.m_nModelIndex":494,"DT_BaseViewModel.m_nBody":0,"DT_BaseViewModel.m_nSkin":0,"DT_BaseViewModel.m_nSequence":25,"DT_BaseViewModel.m_nViewModelIndex":0,"DT_BaseViewModel.m_flPlaybackRate":1,"DT_BaseViewModel.m_fEffects":0,"DT_BaseViewModel.m_nAnimationParity":1,"DT_BaseViewModel.m_hWeapon":1606276,"DT_BaseViewModel.m_hOwner":1972225,"DT_BaseViewModel.m_nNewSequenceParity":1,"DT_BaseViewModel.m_nResetEventsParity":1,"DT_BaseViewModel.m_nMuzzleFlashParity":1,"DT_BaseViewModel.m_flPoseParameter":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"pvs":1} -{"tick":0,"serverClass":"CTFGameRulesProxy","id":148,"props":{"m_flNextRespawnWave.000":0,"m_flNextRespawnWave.001":0,"m_flNextRespawnWave.002":73.11499786376953,"m_flNextRespawnWave.003":73.11499786376953,"m_flNextRespawnWave.004":0,"m_flNextRespawnWave.005":0,"m_flNextRespawnWave.006":0,"m_flNextRespawnWave.007":0,"m_flNextRespawnWave.008":0,"m_flNextRespawnWave.009":0,"m_flNextRespawnWave.010":0,"m_flNextRespawnWave.011":0,"m_flNextRespawnWave.012":0,"m_flNextRespawnWave.013":0,"m_flNextRespawnWave.014":0,"m_flNextRespawnWave.015":0,"m_flNextRespawnWave.016":0,"m_flNextRespawnWave.017":0,"m_flNextRespawnWave.018":0,"m_flNextRespawnWave.019":0,"m_flNextRespawnWave.020":0,"m_flNextRespawnWave.021":0,"m_flNextRespawnWave.022":0,"m_flNextRespawnWave.023":0,"m_flNextRespawnWave.024":0,"m_flNextRespawnWave.025":0,"m_flNextRespawnWave.026":0,"m_flNextRespawnWave.027":0,"m_flNextRespawnWave.028":0,"m_flNextRespawnWave.029":0,"m_flNextRespawnWave.030":0,"m_flNextRespawnWave.031":0,"m_TeamRespawnWaveTimes.000":-1,"m_TeamRespawnWaveTimes.001":-1,"m_TeamRespawnWaveTimes.002":8.5,"m_TeamRespawnWaveTimes.003":8.5,"m_TeamRespawnWaveTimes.004":-1,"m_TeamRespawnWaveTimes.005":-1,"m_TeamRespawnWaveTimes.006":-1,"m_TeamRespawnWaveTimes.007":-1,"m_TeamRespawnWaveTimes.008":-1,"m_TeamRespawnWaveTimes.009":-1,"m_TeamRespawnWaveTimes.010":-1,"m_TeamRespawnWaveTimes.011":-1,"m_TeamRespawnWaveTimes.012":-1,"m_TeamRespawnWaveTimes.013":-1,"m_TeamRespawnWaveTimes.014":-1,"m_TeamRespawnWaveTimes.015":-1,"m_TeamRespawnWaveTimes.016":-1,"m_TeamRespawnWaveTimes.017":-1,"m_TeamRespawnWaveTimes.018":-1,"m_TeamRespawnWaveTimes.019":-1,"m_TeamRespawnWaveTimes.020":-1,"m_TeamRespawnWaveTimes.021":-1,"m_TeamRespawnWaveTimes.022":-1,"m_TeamRespawnWaveTimes.023":-1,"m_TeamRespawnWaveTimes.024":-1,"m_TeamRespawnWaveTimes.025":-1,"m_TeamRespawnWaveTimes.026":-1,"m_TeamRespawnWaveTimes.027":-1,"m_TeamRespawnWaveTimes.028":-1,"m_TeamRespawnWaveTimes.029":-1,"m_TeamRespawnWaveTimes.030":-1,"m_TeamRespawnWaveTimes.031":-1,"m_bTeamReady.000":0,"m_bTeamReady.001":0,"m_bTeamReady.002":0,"m_bTeamReady.003":0,"m_bTeamReady.004":0,"m_bTeamReady.005":0,"m_bTeamReady.006":0,"m_bTeamReady.007":0,"m_bTeamReady.008":0,"m_bTeamReady.009":0,"m_bTeamReady.010":0,"m_bTeamReady.011":0,"m_bTeamReady.012":0,"m_bTeamReady.013":0,"m_bTeamReady.014":0,"m_bTeamReady.015":0,"m_bTeamReady.016":0,"m_bTeamReady.017":0,"m_bTeamReady.018":0,"m_bTeamReady.019":0,"m_bTeamReady.020":0,"m_bTeamReady.021":0,"m_bTeamReady.022":0,"m_bTeamReady.023":0,"m_bTeamReady.024":0,"m_bTeamReady.025":0,"m_bTeamReady.026":0,"m_bTeamReady.027":0,"m_bTeamReady.028":0,"m_bTeamReady.029":0,"m_bTeamReady.030":0,"m_bTeamReady.031":0,"m_bPlayerReady.000":0,"m_bPlayerReady.001":0,"m_bPlayerReady.002":0,"m_bPlayerReady.003":0,"m_bPlayerReady.004":0,"m_bPlayerReady.005":0,"m_bPlayerReady.006":0,"m_bPlayerReady.007":0,"m_bPlayerReady.008":0,"m_bPlayerReady.009":0,"m_bPlayerReady.010":0,"m_bPlayerReady.011":0,"m_bPlayerReady.012":0,"m_bPlayerReady.013":0,"m_bPlayerReady.014":0,"m_bPlayerReady.015":0,"m_bPlayerReady.016":0,"m_bPlayerReady.017":0,"m_bPlayerReady.018":0,"m_bPlayerReady.019":0,"m_bPlayerReady.020":0,"m_bPlayerReady.021":0,"m_bPlayerReady.022":0,"m_bPlayerReady.023":0,"m_bPlayerReady.024":0,"m_bPlayerReady.025":0,"m_bPlayerReady.026":0,"m_bPlayerReady.027":0,"m_bPlayerReady.028":0,"m_bPlayerReady.029":0,"m_bPlayerReady.030":0,"m_bPlayerReady.031":0,"m_bPlayerReady.032":0,"DT_TeamplayRoundBasedRules.m_iRoundState":3,"DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers":0,"DT_TeamplayRoundBasedRules.m_iWinningTeam":0,"DT_TeamplayRoundBasedRules.m_bInOvertime":0,"DT_TeamplayRoundBasedRules.m_bInSetup":0,"DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound":0,"DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart":0,"DT_TeamplayRoundBasedRules.m_flRestartRoundTime":-1,"DT_TeamplayRoundBasedRules.m_flMapResetTime":68.33999633789062,"DT_TeamplayRoundBasedRules.m_bStopWatch":0,"DT_TeamplayRoundBasedRules.m_bMultipleTrains":0,"DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel":0,"DT_TFGameRules.m_nGameType":2,"DT_TFGameRules.m_nStopWatchState":0,"DT_TFGameRules.m_pszTeamGoalStringRed":"","DT_TFGameRules.m_pszTeamGoalStringBlue":"","DT_TFGameRules.m_flCapturePointEnableTime":0,"DT_TFGameRules.m_nHudType":0,"DT_TFGameRules.m_bIsInTraining":0,"DT_TFGameRules.m_bAllowTrainingAchievements":0,"DT_TFGameRules.m_bIsWaitingForTrainingContinue":0,"DT_TFGameRules.m_bIsTrainingHUDVisible":0,"DT_TFGameRules.m_bIsInItemTestingMode":0,"DT_TFGameRules.m_hBonusLogic":2097151,"DT_TFGameRules.m_bPlayingKoth":0,"DT_TFGameRules.m_bPlayingMedieval":0,"DT_TFGameRules.m_bPlayingHybrid_CTF_CP":0,"DT_TFGameRules.m_bPlayingSpecialDeliveryMode":0,"DT_TFGameRules.m_bPlayingRobotDestructionMode":0,"DT_TFGameRules.m_hRedKothTimer":2097151,"DT_TFGameRules.m_hBlueKothTimer":2097151,"DT_TFGameRules.m_nMapHolidayType":0,"DT_TFGameRules.m_itHandle":2097151,"DT_TFGameRules.m_bPlayingMannVsMachine":0,"DT_TFGameRules.m_hBirthdayPlayer":2097151,"DT_TFGameRules.m_nBossHealth":0,"DT_TFGameRules.m_nMaxBossHealth":0,"DT_TFGameRules.m_fBossNormalizedTravelDistance":0,"DT_TFGameRules.m_bMannVsMachineAlarmStatus":0,"DT_TFGameRules.m_bHaveMinPlayersToEnableReady":0,"DT_TFGameRules.m_bBountyModeEnabled":0,"DT_TFGameRules.m_nHalloweenEffect":-1,"DT_TFGameRules.m_fHalloweenEffectStartTime":-1,"DT_TFGameRules.m_fHalloweenEffectDuration":-1,"DT_TFGameRules.m_halloweenScenario":0,"DT_TFGameRules.m_bHelltowerPlayersInHell":0,"DT_TFGameRules.m_bIsUsingSpells":0,"DT_TFGameRules.m_bCompetitiveMode":0,"DT_TFGameRules.m_bPowerupMode":0,"DT_TFGameRules.m_pszCustomUpgradesFile":""},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":151,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":157.3125,"y":-447.96875,"z":982.3125},"DT_BaseEntity.m_angRotation":{"x":49.136857526553534,"y":16.12989866927115,"z":0.7471615187400805},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":152,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-730.21875,"y":1738.1875,"z":1011.96875},"DT_BaseEntity.m_angRotation":{"x":37.57782932486876,"y":324.3120498107679,"z":0.7032108411671346},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":154,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2410,"y":1057.3125,"z":541.03125},"DT_BaseEntity.m_angRotation":{"x":17.97582712733488,"y":251.00231961909412,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":155,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":2102,"y":-2306.65625,"z":1011.96875},"DT_BaseEntity.m_angRotation":{"x":37.57782932486876,"y":144.29007447198146,"z":0.7032108411671346},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":156,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":3815,"y":-1624.65625,"z":541.03125},"DT_BaseEntity.m_angRotation":{"x":17.97582712733488,"y":70.98034428030766,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseDoor","id":159,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1799,"y":784.3125,"z":360},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":-4,"y":87.65997314453125,"z":57},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-10,"y":-82.34002685546875,"z":-62},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":-4,"y":87.65997314453125,"z":57},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":29,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-10,"y":-82.34002685546875,"z":-62},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseDoor.m_flWaveHeight":0.03125},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":160,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1779.21875,"y":787.96875,"z":360},"DT_BaseEntity.m_angRotation":{"x":0,"y":269.9890123306067,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-96.00000762939453,"y":-29.08789825439453,"z":-64.00000762939453},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":96.00000762939453,"y":29.08789825439453,"z":64.00000762939453},"DT_CollisionProperty.m_vecMins":{"x":-96.00000762939453,"y":-29.08789825439453,"z":-64.00000762939453},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":760,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":96.00000762939453,"y":29.08789825439453,"z":64.00000762939453},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":161,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2500.28125,"y":434.03125,"z":-30.78125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":458,"m_nModelIndexOverrides.001":752,"m_nModelIndexOverrides.002":753,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_CollisionProperty.m_vecMins":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":458,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":165,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-1079,"y":1433.8125,"z":292.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":90.01098766939323,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CWaterLODControl","id":170,"props":{"DT_WaterLODControl.m_flCheapWaterStartDistance":1000,"DT_WaterLODControl.m_flCheapWaterEndDistance":2000},"pvs":1} -{"tick":0,"serverClass":"CFunc_LOD","id":171,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":479,"y":2240,"z":437},"DT_CollisionProperty.m_nSolidType":1,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-435.6789855957031,"y":1515.3299560546875,"z":223},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":479,"y":2240,"z":437},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":34,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-435.6789855957031,"y":1515.3299560546875,"z":223},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Func_LOD.m_fDisappearDist":1782},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":179,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1661.5,"y":485.3125,"z":156.5},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":138.5,"y":-0.329986572265625,"z":-39.5},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-138.5,"y":-10.329986572265625,"z":-52.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":138.5,"y":-0.329986572265625,"z":-39.5},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":38,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-138.5,"y":-10.329986572265625,"z":-52.5},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":182,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":392.40625,"y":539.34375,"z":264},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":183,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":974.125,"y":-1144.375,"z":264},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":184,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":4759.25,"y":-1037.5625,"z":306},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":185,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3394.0625,"y":444.53125,"z":306},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CShadowControl","id":186,"props":{"DT_ShadowControl.m_shadowDirection":{"x":-3.348485932974654e-8,"y":2.809714594320667e-8,"z":-1},"DT_ShadowControl.m_shadowColor":7303023,"DT_ShadowControl.m_flShadowMaxDist":75,"DT_ShadowControl.m_bDisableShadows":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":189,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1895.6875,"y":448.25,"z":161.21875},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":458,"m_nModelIndexOverrides.001":752,"m_nModelIndexOverrides.002":753,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_CollisionProperty.m_vecMins":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":458,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":190,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1935,"y":448.96875,"z":161.25},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":749,"m_nModelIndexOverrides.001":747,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_CollisionProperty.m_vecMins":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":749,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":191,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":3301.3125,"y":-377.84375,"z":652},"DT_LightGlow.m_angRotation":{"x":0,"y":0,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":192,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":3670.0625,"y":-381.125,"z":651},"DT_LightGlow.m_angRotation":{"x":0,"y":0,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":194,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":679,"y":-293.15625,"z":205.46875},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":1056,"y":1010.1700439453125,"z":56.52000427246094},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-1056,"y":-1026.8299560546875,"z":-56.52699279785156},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":1056,"y":1010.1700439453125,"z":56.52000427246094},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":41,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-1056,"y":-1026.8299560546875,"z":-56.52699279785156},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":195,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":2552.1875,"y":-622.34375,"z":579.65625},"DT_LightGlow.m_angRotation":{"x":0,"y":0,"z":22.502746917348308},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":196,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-1195,"y":37.59375,"z":579.90625},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":22.502746917348308},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CFogController","id":228,"props":{"DT_FogController.m_fog.enable":1,"DT_FogController.m_fog.blend":0,"DT_FogController.m_fog.dirPrimary":{"x":1,"y":0,"z":0},"DT_FogController.m_fog.colorPrimary":9335665,"DT_FogController.m_fog.colorSecondary":16777215,"DT_FogController.m_fog.start":50,"DT_FogController.m_fog.end":6000,"DT_FogController.m_fog.maxdensity":1,"DT_FogController.m_fog.farz":-1,"DT_FogController.m_fog.colorPrimaryLerpTo":9335665,"DT_FogController.m_fog.colorSecondaryLerpTo":16777215,"DT_FogController.m_fog.startLerpTo":0,"DT_FogController.m_fog.endLerpTo":0,"DT_FogController.m_fog.lerptime":0,"DT_FogController.m_fog.duration":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":236,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-1676.65625,"y":743.5,"z":501.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":252,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":3026,"y":-1350,"z":501.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":254,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":834.96875,"y":-809,"z":92},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":245.010009765625,"y":57,"z":59.98999786376953},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":235.010009765625,"y":-57,"z":-54.01000213623047},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":245.010009765625,"y":57,"z":59.98999786376953},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":49,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":3,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":235.010009765625,"y":-57,"z":-54.01000213623047},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":257,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":283,"y":217.96875,"z":94},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":4.98974609375,"y":57,"z":57},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5.01025390625,"y":-57,"z":-57},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":4.98974609375,"y":57,"z":57},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":52,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-5.01025390625,"y":-57,"z":-57},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":265,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1480.1875,"y":465.34375,"z":269.5},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":-45.820068359375,"y":249.64999389648438,"z":11.5},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-512.1800537109375,"y":-15,"z":2.13800048828125},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":-45.820068359375,"y":249.64999389648438,"z":11.5},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":58,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-512.1800537109375,"y":-15,"z":2.13800048828125},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":266,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1531.71875,"y":93.90625,"z":321.25},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":749,"m_nModelIndexOverrides.001":747,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_CollisionProperty.m_vecMins":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":749,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":267,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1500.125,"y":217.8125,"z":327},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":126.1300048828125,"y":3.503997802734375,"z":12},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-126.1199951171875,"y":-3.496002197265625,"z":-12},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":126.1300048828125,"y":3.503997802734375,"z":12},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":59,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-126.1199951171875,"y":-3.496002197265625,"z":-12},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CSprite","id":297,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1259,"y":-135,"z":175},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":745,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":9,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4287813886,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Sprite.m_hAttachedToEntity":2097151,"DT_Sprite.m_nAttachment":0,"DT_Sprite.m_flScaleTime":0,"DT_Sprite.m_flSpriteScale":0.75,"DT_Sprite.m_flGlowProxySize":4,"DT_Sprite.m_flHDRColorScale":1,"DT_Sprite.m_flSpriteFramerate":10.078125,"DT_Sprite.m_flFrame":0,"DT_Sprite.m_flBrightnessTime":0,"DT_Sprite.m_nBrightness":255,"DT_Sprite.m_bWorldSpaceScale":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":298,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":679,"y":-296.8125,"z":353.5},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":3481.669921875,"y":170.17398071289062,"z":210.5},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-3481.679931640625,"y":-170.17001342773438,"z":-210.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":3481.669921875,"y":170.17398071289062,"z":210.5},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":61,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-3481.679931640625,"y":-170.17001342773438,"z":-210.5},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CSceneEntity","id":299,"props":{"_LPT_m_hActorList_16.lengthprop16":1,"_ST_m_hActorList_16.000":1972225,"_ST_m_hActorList_16.001":0,"_ST_m_hActorList_16.002":0,"_ST_m_hActorList_16.003":0,"_ST_m_hActorList_16.004":0,"_ST_m_hActorList_16.005":0,"_ST_m_hActorList_16.006":0,"_ST_m_hActorList_16.007":0,"_ST_m_hActorList_16.008":0,"_ST_m_hActorList_16.009":0,"_ST_m_hActorList_16.010":0,"_ST_m_hActorList_16.011":0,"_ST_m_hActorList_16.012":0,"_ST_m_hActorList_16.013":0,"_ST_m_hActorList_16.014":0,"_ST_m_hActorList_16.015":0,"DT_SceneEntity.m_nSceneStringIndex":109,"DT_SceneEntity.m_bIsPlayingBack":1,"DT_SceneEntity.m_bPaused":0,"DT_SceneEntity.m_bMultiplayer":1,"DT_SceneEntity.m_flForceClientTime":0},"pvs":1} -{"tick":0,"serverClass":"CPhysicsPropMultiplayer","id":310,"props":{"DT_AnimTimeMustBeFirst.m_flAnimTime":0,"DT_ServerAnimationData.m_flCycle":0,"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2328.3125,"y":506.375,"z":162.40625},"DT_BaseEntity.m_angRotation":{"x":359.9120986448541,"y":358.81333170553046,"z":0.13185203271883775},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-16.25,"y":-16.25,"z":-0.2500010132789612},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":16.25,"y":16.25,"z":41.25},"DT_CollisionProperty.m_vecMins":{"x":-16.25,"y":-16.25,"z":-0.2500010132789612},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":766,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":16,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":1,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":6,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":16.25,"y":16.25,"z":41.25},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":0,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0.5,"DT_PhysicsProp.m_bAwake":0,"DT_PhysicsPropMultiplayer.m_iPhysicsMode":1,"DT_PhysicsPropMultiplayer.m_fMass":30,"DT_PhysicsPropMultiplayer.m_collisionMins":{"x":-16,"y":-16,"z":-9.999999974752427e-7},"DT_PhysicsPropMultiplayer.m_collisionMaxs":{"x":16,"y":16,"z":41}},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":315,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2487.78125,"y":1155.3125,"z":296.21875},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":458,"m_nModelIndexOverrides.001":752,"m_nModelIndexOverrides.002":753,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_CollisionProperty.m_vecMins":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":458,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":316,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2581.96875,"y":1157.875,"z":296.25},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":749,"m_nModelIndexOverrides.001":747,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_CollisionProperty.m_vecMins":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":749,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":319,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2251.1875,"y":-393.4375,"z":376.25},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":749,"m_nModelIndexOverrides.001":747,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_CollisionProperty.m_vecMins":{"x":-9.486648559570312,"y":-9.502421379089355,"z":-0.26128000020980835},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":749,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":9.482024192810059,"y":9.49077033996582,"z":14.928135871887207},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CBaseAnimating","id":321,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2252,"y":-338,"z":376.21875},"DT_BaseEntity.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":12,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":24,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":458,"m_nModelIndexOverrides.001":752,"m_nModelIndexOverrides.002":753,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_CollisionProperty.m_vecMins":{"x":-8.481677055358887,"y":-8.4414644241333,"z":-0.23517799377441406},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":458,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":8.440301895141602,"y":8.45989990234375,"z":19.715791702270508},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":1,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":1,"DT_BaseAnimating.m_nResetEventsParity":1,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":332,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":-206.625,"y":186.25,"z":356.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":333,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":1566.125,"y":-808.0625,"z":362.3125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":334,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-3379,"y":-228,"z":151},"DT_ParticleSystem.m_angRotation":{"x":0,"y":178.00024417043096,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":335,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-3333.96875,"y":-305,"z":254},"DT_ParticleSystem.m_angRotation":{"x":0,"y":215.0067146868514,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":423,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":339,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":4728.40625,"y":-388,"z":145},"DT_ParticleSystem.m_angRotation":{"x":0,"y":357.97826883164447,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":340,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2017,"y":-15.5,"z":352},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":29,"y":9.5,"z":57},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-29,"y":-9.5,"z":-57},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":29,"y":9.5,"z":57},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":63,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-29,"y":-9.5,"z":-57},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":341,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3262,"y":459,"z":222},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":9,"y":176,"z":67},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-9,"y":-176,"z":-67},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9,"y":176,"z":67},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":64,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-9,"y":-176,"z":-67},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":348,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":513.375,"y":-425.375,"z":-439.96875},"DT_ParticleSystem.m_angRotation":{"x":304.53424490294225,"y":176.46197045537787,"z":2.9007447198144303},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":349,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":530.65625,"y":-241.84375,"z":-439.96875},"DT_ParticleSystem.m_angRotation":{"x":304.53424490294225,"y":126.97350750824074,"z":2.9007447198144303},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":350,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":833.3125,"y":-231.8125,"z":-439.96875},"DT_ParticleSystem.m_angRotation":{"x":304.53424490294225,"y":356.48394579416436,"z":2.9007447198144303},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":351,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":841.6875,"y":-395.4375,"z":-439.96875},"DT_ParticleSystem.m_angRotation":{"x":304.53424490294225,"y":306.9515321694543,"z":2.9007447198144303},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":352,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":10474.875,"y":565.34375,"z":5030.78125},"DT_ParticleSystem.m_angRotation":{"x":289.50311317299474,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":1865,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":353,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":10159.375,"y":-806.78125,"z":5033.5},"DT_ParticleSystem.m_angRotation":{"x":289.50311317299474,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":1865,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":358,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-2907.875,"y":2,"z":296.6875},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":430,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":360,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-2908,"y":2.34375,"z":590},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":428,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":361,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":4326.09375,"y":-612.34375,"z":296.6875},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":430,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":363,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":4326,"y":-612,"z":590},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":428,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":367,"props":{"DT_RopeKeyframe.m_hStartPoint":1311087,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":954,"y":1008.65625,"z":760},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":368,"props":{"DT_RopeKeyframe.m_hStartPoint":1632624,"DT_RopeKeyframe.m_hEndPoint":1311087,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":117,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":73,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":442,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":954,"y":1009.65625,"z":877},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":369,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":695.6875,"y":-403.6875,"z":209.21875},"DT_ParticleSystem.m_angRotation":{"x":0,"y":90.97790257599804,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":428,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":370,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":702.71875,"y":-65.96875,"z":124.90625},"DT_ParticleSystem.m_angRotation":{"x":0,"y":270.9998779147845,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":428,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":372,"props":{"DT_RopeKeyframe.m_hStartPoint":1231220,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":238,"y":-897,"z":995},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":373,"props":{"DT_RopeKeyframe.m_hStartPoint":41333,"DT_RopeKeyframe.m_hEndPoint":1231220,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":160,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":73,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":442,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":237,"y":-897,"z":1155},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":374,"props":{"DT_RopeKeyframe.m_hStartPoint":303478,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1103,"y":340,"z":839},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":375,"props":{"DT_RopeKeyframe.m_hStartPoint":1935735,"DT_RopeKeyframe.m_hEndPoint":303478,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":282,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":73,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":442,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1105,"y":330.65625,"z":1121},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CSprite","id":377,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2582.0625,"y":-283.78125,"z":397.40625},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":745,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":9,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4287813886,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Sprite.m_hAttachedToEntity":2097151,"DT_Sprite.m_nAttachment":0,"DT_Sprite.m_flScaleTime":0,"DT_Sprite.m_flSpriteScale":0.75,"DT_Sprite.m_flGlowProxySize":4,"DT_Sprite.m_flHDRColorScale":1,"DT_Sprite.m_flSpriteFramerate":10.078125,"DT_Sprite.m_flFrame":0,"DT_Sprite.m_flBrightnessTime":0,"DT_Sprite.m_nBrightness":255,"DT_Sprite.m_bWorldSpaceScale":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":381,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":4725,"y":-465,"z":145},"DT_ParticleSystem.m_angRotation":{"x":0,"y":357.97826883164447,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CSprite","id":382,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1336.9375,"y":1130,"z":487.1875},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":745,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":9,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4284045823,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Sprite.m_hAttachedToEntity":2097151,"DT_Sprite.m_nAttachment":0,"DT_Sprite.m_flScaleTime":0,"DT_Sprite.m_flSpriteScale":0.75,"DT_Sprite.m_flGlowProxySize":4,"DT_Sprite.m_flHDRColorScale":1,"DT_Sprite.m_flSpriteFramerate":10.078125,"DT_Sprite.m_flFrame":0,"DT_Sprite.m_flBrightnessTime":0,"DT_Sprite.m_nBrightness":255,"DT_Sprite.m_bWorldSpaceScale":0},"pvs":1} -{"tick":0,"serverClass":"CSprite","id":383,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":2697.28125,"y":-1724,"z":487.1875},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":745,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":9,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4284045823,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_Sprite.m_hAttachedToEntity":2097151,"DT_Sprite.m_nAttachment":0,"DT_Sprite.m_flScaleTime":0,"DT_Sprite.m_flSpriteScale":0.75,"DT_Sprite.m_flGlowProxySize":4,"DT_Sprite.m_flHDRColorScale":1,"DT_Sprite.m_flSpriteFramerate":10.078125,"DT_Sprite.m_flFrame":0,"DT_Sprite.m_flBrightnessTime":0,"DT_Sprite.m_nBrightness":255,"DT_Sprite.m_bWorldSpaceScale":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":390,"props":{"DT_RopeKeyframe.m_hStartPoint":1173894,"DT_RopeKeyframe.m_hEndPoint":1245575,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":328,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":4038,"y":-1388.3125,"z":648},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":391,"props":{"DT_RopeKeyframe.m_hStartPoint":1245575,"DT_RopeKeyframe.m_hEndPoint":313736,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":283,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":4037,"y":-1060,"z":648},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":392,"props":{"DT_RopeKeyframe.m_hStartPoint":313736,"DT_RopeKeyframe.m_hEndPoint":1098124,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":281,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":4038,"y":-777,"z":648},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":394,"props":{"DT_RopeKeyframe.m_hStartPoint":1436042,"DT_RopeKeyframe.m_hEndPoint":1173894,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":323,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":4361,"y":-1394,"z":648},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":395,"props":{"DT_RopeKeyframe.m_hStartPoint":960907,"DT_RopeKeyframe.m_hEndPoint":1436042,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":196,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":4491,"y":-1249,"z":623},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":396,"props":{"DT_RopeKeyframe.m_hStartPoint":1098124,"DT_RopeKeyframe.m_hEndPoint":1847693,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":90,"DT_RopeKeyframe.m_RopeLength":255,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":3801.28125,"y":-859.6875,"z":776.40625},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":397,"props":{"DT_RopeKeyframe.m_hStartPoint":1847693,"DT_RopeKeyframe.m_hEndPoint":1341840,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":140,"DT_RopeKeyframe.m_RopeLength":228,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":3546,"y":-864,"z":776.40625},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":400,"props":{"DT_RopeKeyframe.m_hStartPoint":1341840,"DT_RopeKeyframe.m_hEndPoint":29073,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":140,"DT_RopeKeyframe.m_RopeLength":562,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":3367,"y":-805,"z":647},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":401,"props":{"DT_RopeKeyframe.m_hStartPoint":29073,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":3371,"y":-1367,"z":647},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":402,"props":{"DT_RopeKeyframe.m_hStartPoint":1831314,"DT_RopeKeyframe.m_hEndPoint":1405333,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":328,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2681,"y":796.3125,"z":647.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":403,"props":{"DT_RopeKeyframe.m_hStartPoint":1884563,"DT_RopeKeyframe.m_hEndPoint":1831314,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":323,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-3004,"y":802,"z":647.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":404,"props":{"DT_RopeKeyframe.m_hStartPoint":594324,"DT_RopeKeyframe.m_hEndPoint":1884563,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":196,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-3134,"y":657,"z":622.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":405,"props":{"DT_RopeKeyframe.m_hStartPoint":1405333,"DT_RopeKeyframe.m_hEndPoint":1137046,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":283,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2680,"y":468,"z":647.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":406,"props":{"DT_RopeKeyframe.m_hStartPoint":1137046,"DT_RopeKeyframe.m_hEndPoint":1261975,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":294,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2681,"y":185,"z":647.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":407,"props":{"DT_RopeKeyframe.m_hStartPoint":1261975,"DT_RopeKeyframe.m_hEndPoint":18840,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":90,"DT_RopeKeyframe.m_RopeLength":255,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2446.28125,"y":301,"z":782},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":408,"props":{"DT_RopeKeyframe.m_hStartPoint":18840,"DT_RopeKeyframe.m_hEndPoint":1589657,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":140,"DT_RopeKeyframe.m_RopeLength":243,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2191,"y":305.28125,"z":782},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":409,"props":{"DT_RopeKeyframe.m_hStartPoint":1589657,"DT_RopeKeyframe.m_hEndPoint":1020314,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":140,"DT_RopeKeyframe.m_RopeLength":562,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2010,"y":213,"z":646.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":410,"props":{"DT_RopeKeyframe.m_hStartPoint":1020314,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-2014,"y":775,"z":646.875},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":420,"props":{"DT_RopeKeyframe.m_hStartPoint":1153444,"DT_RopeKeyframe.m_hEndPoint":1659301,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":276,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":2493,"y":-397,"z":777},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":421,"props":{"DT_RopeKeyframe.m_hStartPoint":1659301,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":2768,"y":-400,"z":750},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":422,"props":{"DT_RopeKeyframe.m_hStartPoint":1132966,"DT_RopeKeyframe.m_hEndPoint":1704359,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":276,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-1134,"y":-198.46875,"z":781},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":423,"props":{"DT_RopeKeyframe.m_hStartPoint":1704359,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-1409,"y":-206,"z":750},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":426,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-465.875,"y":-899.46875,"z":103},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":156.2810821533203,"y":65.0116195678711,"z":88.5},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-156.2907257080078,"y":-65.01065063476562,"z":-88.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":156.2810821533203,"y":65.0116195678711,"z":88.5},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":67,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1413553,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-156.2907257080078,"y":-65.01065063476562,"z":-88.5},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":427,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-499.1875,"y":-910.90625,"z":103},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":137.29176330566406,"y":120.811767578125,"z":88.5},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-137.29151916503906,"y":-120.80770111083984,"z":-88.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":137.29176330566406,"y":120.811767578125,"z":88.5},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":68,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":633262,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-137.29151916503906,"y":-120.80770111083984,"z":-88.5},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CBaseEntity","id":428,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-439.09375,"y":-910.90625,"z":50},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":137.29185485839844,"y":120.811767578125,"z":88.5},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-137.29151916503906,"y":-120.8075180053711,"z":-88.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":137.29185485839844,"y":120.811767578125,"z":88.5},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":69,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1018285,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-137.29151916503906,"y":-120.8075180053711,"z":-88.5},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRotating","id":429,"props":{"DT_FuncRotating.m_vecOrigin":{"x":9967.5,"y":51.5,"z":5252.5},"DT_FuncRotating.m_angRotation[0]":0,"DT_FuncRotating.m_angRotation[1]":0,"DT_FuncRotating.m_angRotation[2]":0,"DT_FuncRotating.m_flSimulationTime":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":70,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-429.5,"y":-879.5,"z":-15.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":-406.5,"y":-856.5,"z":15.5},"DT_CollisionProperty.m_vecMins":{"x":-429.5,"y":-879.5,"z":-15.5},"DT_CollisionProperty.m_vecMaxs":{"x":-406.5,"y":-856.5,"z":15.5},"DT_CollisionProperty.m_nSolidType":6},"pvs":1} -{"tick":0,"serverClass":"CFuncRotating","id":430,"props":{"DT_FuncRotating.m_vecOrigin":{"x":10027.5,"y":51.5,"z":5375.5},"DT_FuncRotating.m_angRotation[0]":0,"DT_FuncRotating.m_angRotation[1]":0,"DT_FuncRotating.m_angRotation[2]":0,"DT_FuncRotating.m_flSimulationTime":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":71,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-429.5,"y":-879.5,"z":-15.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":-406.5,"y":-856.5,"z":15.5},"DT_CollisionProperty.m_vecMins":{"x":-429.5,"y":-879.5,"z":-15.5},"DT_CollisionProperty.m_vecMaxs":{"x":-406.5,"y":-856.5,"z":15.5},"DT_CollisionProperty.m_nSolidType":6},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":431,"props":{"DT_RopeKeyframe.m_hStartPoint":940463,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":401,"y":-1601,"z":796},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":432,"props":{"DT_RopeKeyframe.m_hStartPoint":1450416,"DT_RopeKeyframe.m_hEndPoint":940463,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":25,"DT_RopeKeyframe.m_RopeLength":117,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":73,"DT_RopeKeyframe.m_nSegments":10,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":442,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":2,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":401,"y":-1600,"z":913},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CFuncRotating","id":433,"props":{"DT_FuncRotating.m_vecOrigin":{"x":10271.5,"y":-114.5,"z":5375.5},"DT_FuncRotating.m_angRotation[0]":0,"DT_FuncRotating.m_angRotation[1]":0,"DT_FuncRotating.m_angRotation[2]":0,"DT_FuncRotating.m_flSimulationTime":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":72,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":80,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-429.5,"y":-879.5,"z":-15.5},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":-406.5,"y":-856.5,"z":15.5},"DT_CollisionProperty.m_vecMins":{"x":-429.5,"y":-879.5,"z":-15.5},"DT_CollisionProperty.m_vecMaxs":{"x":-406.5,"y":-856.5,"z":15.5},"DT_CollisionProperty.m_nSolidType":6},"pvs":1} -{"tick":0,"serverClass":"CFuncRespawnRoomVisualizer","id":434,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-933,"y":1259,"z":213},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":5,"y":57,"z":57},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5,"y":-57,"z":-57},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":5,"y":57,"z":57},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":73,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":25,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":-5,"y":-57,"z":-57},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":436,"props":{"DT_RopeKeyframe.m_hStartPoint":336308,"DT_RopeKeyframe.m_hEndPoint":868789,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":638,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":563,"y":354,"z":654},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":437,"props":{"DT_RopeKeyframe.m_hStartPoint":868789,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":80,"y":-8,"z":862},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":438,"props":{"DT_RopeKeyframe.m_hStartPoint":1497526,"DT_RopeKeyframe.m_hEndPoint":430519,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":609,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1275,"y":-598.09375,"z":800},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":439,"props":{"DT_RopeKeyframe.m_hStartPoint":430519,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":795,"y":-945,"z":655},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CPhysicsPropMultiplayer","id":450,"props":{"DT_AnimTimeMustBeFirst.m_flAnimTime":0,"DT_ServerAnimationData.m_flCycle":0,"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1444.09375,"y":17.5,"z":288.15625},"DT_BaseEntity.m_angRotation":{"x":355.25332682212183,"y":69.04651446709804,"z":358.5496276400928},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-7.382093906402588,"y":-8.016119956970215,"z":-0.0000021048861071903957},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":6.901711940765381,"y":1.1713509559631348,"z":43.40745162963867},"DT_CollisionProperty.m_vecMins":{"x":-7.382093906402588,"y":-8.016119956970215,"z":-0.0000021048861071903957},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":768,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":6,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":6.901711940765381,"y":1.1713509559631348,"z":43.40745162963867},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":0,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_PhysicsProp.m_bAwake":0,"DT_PhysicsPropMultiplayer.m_iPhysicsMode":1,"DT_PhysicsPropMultiplayer.m_fMass":22.135684967041016,"DT_PhysicsPropMultiplayer.m_collisionMins":{"x":-7.132093906402588,"y":-7.766119956970215,"z":32.902923583984375},"DT_PhysicsPropMultiplayer.m_collisionMaxs":{"x":6.651711940765381,"y":0.9213509559631348,"z":43.15745162963867}},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":493,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-3378.5625,"y":-188,"z":151},"DT_ParticleSystem.m_angRotation":{"x":0,"y":155.98095470638506,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":494,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-3365.5625,"y":-143,"z":151},"DT_ParticleSystem.m_angRotation":{"x":0,"y":155.98095470638506,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":496,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-3342,"y":-95,"z":151},"DT_ParticleSystem.m_angRotation":{"x":0,"y":130.006104260774,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":497,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":4703,"y":-520,"z":145},"DT_ParticleSystem.m_angRotation":{"x":0,"y":325.9821755585399,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":503,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3825,"y":485,"z":322},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-4.950438976287842,"y":-4.468822956085205,"z":-1.1461483240127563},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9.267196655273438,"y":5.1231255531311035,"z":9.5661039352417},"DT_CollisionProperty.m_vecMins":{"x":-4.950438976287842,"y":-4.468822956085205,"z":-1.1461483240127563},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":771,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":9.267196655273438,"y":5.1231255531311035,"z":9.5661039352417},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":505,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1591,"y":575,"z":336.3125},"DT_BaseEntity.m_angRotation":{"x":17.00891222073007,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":3,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-2.6904664039611816,"y":-3.687159538269043,"z":70.71379089355469},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":9.074974060058594,"y":3.4371604919433594,"z":83.84548950195312},"DT_CollisionProperty.m_vecMins":{"x":-2.6904664039611816,"y":-3.687159538269043,"z":70.71379089355469},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":772,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":9.074974060058594,"y":3.4371604919433594,"z":83.84548950195312},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CDynamicProp","id":506,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3549.5625,"y":148,"z":243.65625},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-5.580965995788574,"y":-5.463497638702393,"z":76.17117309570312},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":6.901773452758789,"y":5.461130142211914,"z":87.54560089111328},"DT_CollisionProperty.m_vecMins":{"x":-5.580965995788574,"y":-5.463497638702393,"z":76.17117309570312},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":773,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":7,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":6.901773452758789,"y":5.461130142211914,"z":87.54560089111328},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":-1,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_DynamicProp.m_bUseHitboxesForRenderBox":0},"pvs":1} -{"tick":0,"serverClass":"CPhysicsPropMultiplayer","id":509,"props":{"DT_AnimTimeMustBeFirst.m_flAnimTime":0,"DT_ServerAnimationData.m_flCycle":0,"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2519.15625,"y":604.34375,"z":701.125},"DT_BaseEntity.m_angRotation":{"x":355.42912953241364,"y":215.79782688316445,"z":358.63752899523865},"DT_CollisionProperty.m_nSolidType":6,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":4,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-7.382093906402588,"y":-8.016119956970215,"z":-0.0000021048861071903957},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":6.901711940765381,"y":1.1713509559631348,"z":43.40745162963867},"DT_CollisionProperty.m_vecMins":{"x":-7.382093906402588,"y":-8.016119956970215,"z":-0.0000021048861071903957},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":768,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2097151,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":6,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":6.901711940765381,"y":1.1713509559631348,"z":43.40745162963867},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":0,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":1,"DT_PhysicsProp.m_bAwake":0,"DT_PhysicsPropMultiplayer.m_iPhysicsMode":1,"DT_PhysicsPropMultiplayer.m_fMass":22.135684967041016,"DT_PhysicsPropMultiplayer.m_collisionMins":{"x":-7.132093906402588,"y":-7.766119956970215,"z":32.902923583984375},"DT_PhysicsPropMultiplayer.m_collisionMaxs":{"x":6.651711940765381,"y":0.9213509559631348,"z":43.15745162963867}},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":521,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-492,"y":78.34375,"z":457},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":428,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":523,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":-492.1875,"y":78,"z":171.25},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":430,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":524,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":1850.09375,"y":-498.53125,"z":172.1875},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":430,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":526,"props":{"DT_RopeKeyframe.m_hStartPoint":545294,"DT_RopeKeyframe.m_hEndPoint":877071,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":206,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-179,"y":457.5,"z":422},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":527,"props":{"DT_RopeKeyframe.m_hStartPoint":877071,"DT_RopeKeyframe.m_hEndPoint":686609,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":208,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":5,"y":396.90625,"z":351},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":528,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":1850.25,"y":-498.1875,"z":458.96875},"DT_ParticleSystem.m_angRotation":{"x":0,"y":0,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":428,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":529,"props":{"DT_RopeKeyframe.m_hStartPoint":686609,"DT_RopeKeyframe.m_hEndPoint":1894930,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":144,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":107,"y":552.5,"z":444},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":530,"props":{"DT_RopeKeyframe.m_hStartPoint":1894930,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":100,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":196,"y":438.125,"z":443},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":531,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":107,"y":550.59375,"z":411.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":532,"props":{"DT_RopeKeyframe.m_hStartPoint":1188372,"DT_RopeKeyframe.m_hEndPoint":451093,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":100,"DT_RopeKeyframe.m_RopeLength":143,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1161,"y":-1030.96875,"z":443},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":533,"props":{"DT_RopeKeyframe.m_hStartPoint":451093,"DT_RopeKeyframe.m_hEndPoint":43542,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":213,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1248,"y":-1145.09375,"z":444},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":534,"props":{"DT_RopeKeyframe.m_hStartPoint":43542,"DT_RopeKeyframe.m_hEndPoint":1823255,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":207,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1352,"y":-984.40625,"z":350},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":535,"props":{"DT_RopeKeyframe.m_hStartPoint":1823255,"DT_RopeKeyframe.m_hEndPoint":786972,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":238,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1536.625,"y":-1043.65625,"z":423.09375},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":536,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":834,"y":-310,"z":-439.96875},"DT_ParticleSystem.m_angRotation":{"x":304.53424490294225,"y":0.96691490660481,"z":2.9007447198144303},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CLightGlow","id":537,"props":{"DT_LightGlow.m_clrRender":2425393407,"DT_LightGlow.m_nHorizontalSize":30,"DT_LightGlow.m_nVerticalSize":30,"DT_LightGlow.m_nMinDist":16,"DT_LightGlow.m_nMaxDist":256,"DT_LightGlow.m_nOuterMaxDist":800,"DT_LightGlow.m_spawnflags":0,"DT_LightGlow.m_vecOrigin":{"x":1249.3125,"y":-1143.90625,"z":411.8125},"DT_LightGlow.m_angRotation":{"x":0,"y":180.02197533878646,"z":0},"DT_LightGlow.moveparent":2097151,"DT_LightGlow.m_flGlowProxySize":8,"DT_LightGlow.HDRColorScale":1},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":538,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":4721,"y":-323,"z":145},"DT_ParticleSystem.m_angRotation":{"x":0,"y":50.01587107801245,"z":0},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":539,"props":{"DT_RopeKeyframe.m_hStartPoint":1499675,"DT_RopeKeyframe.m_hEndPoint":545294,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":271,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":72,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":-207,"y":187,"z":421},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CRopeKeyframe","id":540,"props":{"DT_RopeKeyframe.m_hStartPoint":786972,"DT_RopeKeyframe.m_hEndPoint":2097151,"DT_RopeKeyframe.m_iStartAttachment":0,"DT_RopeKeyframe.m_iEndAttachment":0,"DT_RopeKeyframe.m_Slack":130,"DT_RopeKeyframe.m_RopeLength":0,"DT_RopeKeyframe.m_fLockedPoints":3,"DT_RopeKeyframe.m_RopeFlags":64,"DT_RopeKeyframe.m_nSegments":5,"DT_RopeKeyframe.m_bConstrainBetweenEndpoints":0,"DT_RopeKeyframe.m_iRopeMaterialModelIndex":439,"DT_RopeKeyframe.m_Subdiv":2,"DT_RopeKeyframe.m_TextureScale":1.000000001354651,"DT_RopeKeyframe.m_Width":1.7999999523162842,"DT_RopeKeyframe.m_flScrollSpeed":0,"DT_RopeKeyframe.m_vecOrigin":{"x":1566,"y":-807,"z":425},"DT_RopeKeyframe.moveparent":2097151,"DT_RopeKeyframe.m_iParentAttachment":0},"pvs":1} -{"tick":0,"serverClass":"CParticleSystem","id":541,"props":{"DT_ParticleSystem.m_vecOrigin":{"x":534,"y":-313,"z":-439.96875},"DT_ParticleSystem.m_angRotation":{"x":304.53424490294225,"y":204.98596020021975,"z":2.9007447198144303},"m_hControlPointEnts.002":2097151,"m_hControlPointEnts.003":2097151,"m_hControlPointEnts.004":2097151,"m_hControlPointEnts.005":2097151,"m_hControlPointEnts.006":2097151,"m_hControlPointEnts.007":2097151,"m_hControlPointEnts.008":2097151,"m_hControlPointEnts.009":2097151,"m_hControlPointEnts.010":2097151,"m_hControlPointEnts.011":2097151,"m_hControlPointEnts.012":2097151,"m_hControlPointEnts.013":2097151,"m_hControlPointEnts.014":2097151,"m_hControlPointEnts.015":2097151,"m_hControlPointEnts.016":2097151,"m_hControlPointEnts.017":2097151,"m_hControlPointEnts.018":2097151,"m_hControlPointEnts.019":2097151,"m_hControlPointEnts.020":2097151,"m_hControlPointEnts.021":2097151,"m_hControlPointEnts.022":2097151,"m_hControlPointEnts.023":2097151,"m_hControlPointEnts.024":2097151,"m_hControlPointEnts.025":2097151,"m_hControlPointEnts.026":2097151,"m_hControlPointEnts.027":2097151,"m_hControlPointEnts.028":2097151,"m_hControlPointEnts.029":2097151,"m_hControlPointEnts.030":2097151,"m_hControlPointEnts.031":2097151,"m_hControlPointEnts.032":2097151,"m_hControlPointEnts.033":2097151,"m_hControlPointEnts.034":2097151,"m_hControlPointEnts.035":2097151,"m_hControlPointEnts.036":2097151,"m_hControlPointEnts.037":2097151,"m_hControlPointEnts.038":2097151,"m_hControlPointEnts.039":2097151,"m_hControlPointEnts.040":2097151,"m_hControlPointEnts.041":2097151,"m_hControlPointEnts.042":2097151,"m_hControlPointEnts.043":2097151,"m_hControlPointEnts.044":2097151,"m_hControlPointEnts.045":2097151,"m_hControlPointEnts.046":2097151,"m_hControlPointEnts.047":2097151,"m_hControlPointEnts.048":2097151,"m_hControlPointEnts.049":2097151,"m_hControlPointEnts.050":2097151,"m_hControlPointEnts.051":2097151,"m_hControlPointEnts.052":2097151,"m_hControlPointEnts.053":2097151,"m_hControlPointEnts.054":2097151,"m_hControlPointEnts.055":2097151,"m_hControlPointEnts.056":2097151,"m_hControlPointEnts.057":2097151,"m_hControlPointEnts.058":2097151,"m_hControlPointEnts.059":2097151,"m_hControlPointEnts.060":2097151,"m_hControlPointEnts.061":2097151,"m_hControlPointEnts.062":2097151,"m_iControlPointParents.000":0,"m_iControlPointParents.001":0,"m_iControlPointParents.002":0,"m_iControlPointParents.003":0,"m_iControlPointParents.004":0,"m_iControlPointParents.005":0,"m_iControlPointParents.006":0,"m_iControlPointParents.007":0,"m_iControlPointParents.008":0,"m_iControlPointParents.009":0,"m_iControlPointParents.010":0,"m_iControlPointParents.011":0,"m_iControlPointParents.012":0,"m_iControlPointParents.013":0,"m_iControlPointParents.014":0,"m_iControlPointParents.015":0,"m_iControlPointParents.016":0,"m_iControlPointParents.017":0,"m_iControlPointParents.018":0,"m_iControlPointParents.019":0,"m_iControlPointParents.020":0,"m_iControlPointParents.021":0,"m_iControlPointParents.022":0,"m_iControlPointParents.023":0,"m_iControlPointParents.024":0,"m_iControlPointParents.025":0,"m_iControlPointParents.026":0,"m_iControlPointParents.027":0,"m_iControlPointParents.028":0,"m_iControlPointParents.029":0,"m_iControlPointParents.030":0,"m_iControlPointParents.031":0,"m_iControlPointParents.032":0,"m_iControlPointParents.033":0,"m_iControlPointParents.034":0,"m_iControlPointParents.035":0,"m_iControlPointParents.036":0,"m_iControlPointParents.037":0,"m_iControlPointParents.038":0,"m_iControlPointParents.039":0,"m_iControlPointParents.040":0,"m_iControlPointParents.041":0,"m_iControlPointParents.042":0,"m_iControlPointParents.043":0,"m_iControlPointParents.044":0,"m_iControlPointParents.045":0,"m_iControlPointParents.046":0,"m_iControlPointParents.047":0,"m_iControlPointParents.048":0,"m_iControlPointParents.049":0,"m_iControlPointParents.050":0,"m_iControlPointParents.051":0,"m_iControlPointParents.052":0,"m_iControlPointParents.053":0,"m_iControlPointParents.054":0,"m_iControlPointParents.055":0,"m_iControlPointParents.056":0,"m_iControlPointParents.057":0,"m_iControlPointParents.058":0,"m_iControlPointParents.059":0,"m_iControlPointParents.060":0,"m_iControlPointParents.061":0,"m_iControlPointParents.062":0,"m_hControlPointEnts.000":2097151,"DT_ParticleSystem.m_hOwnerEntity":2097151,"DT_ParticleSystem.moveparent":2097151,"DT_ParticleSystem.m_iParentAttachment":0,"m_hControlPointEnts.001":2097151,"DT_ParticleSystem.m_iEffectIndex":417,"DT_ParticleSystem.m_bActive":1,"DT_ParticleSystem.m_flStartTime":68.33999633789062,"DT_ParticleSystem.m_bWeatherEffect":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":560,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-1522.15625,"y":125.78125,"z":321.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1593431,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":561,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-1522.1591532881794,"y":125.7814899091536,"z":501.34470623913876},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":32.46826268732548,"DT_Beam.m_fFadeLength":180.30374145507812,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-1522.15625,"y":125.78125,"z":321.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":564,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3081.03125,"y":567.4375,"z":384},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":10727164,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":368837,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":110},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":565,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1084468988,"DT_Beam.m_vecOrigin":{"x":-3081.037126611951,"y":567.4698323628072,"z":164.03156286537705},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":29.970704019069675,"DT_Beam.m_fEndWidth":60.041310384869576,"DT_Beam.m_fFadeLength":110,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3081.03125,"y":567.4375,"z":274},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":566,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3209.6875,"y":567.375,"z":384},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":10727164,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":438470,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":110},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":567,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1084468988,"DT_Beam.m_vecOrigin":{"x":-3209.7248720643456,"y":567.4073322435979,"z":164.03156286537705},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":29.970704019069675,"DT_Beam.m_fEndWidth":60.041310384869576,"DT_Beam.m_fFadeLength":110,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3209.6875,"y":567.375,"z":274},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":568,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3209.0625,"y":343.375,"z":384},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":10727164,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1282247,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":110},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":569,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1084468988,"DT_Beam.m_vecOrigin":{"x":-3209.099870872251,"y":343.40690499668926,"z":164.03156286537705},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":29.970704019069675,"DT_Beam.m_fEndWidth":60.041310384869576,"DT_Beam.m_fFadeLength":110,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3209.0625,"y":343.375,"z":274},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":570,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3080.4375,"y":343.28125,"z":384},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":10727164,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1982664,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":110},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":571,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1084468988,"DT_Beam.m_vecOrigin":{"x":-3080.4746255390655,"y":343.2819047582707,"z":164.03156286537705},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":29.970704019069675,"DT_Beam.m_fEndWidth":60.041310384869576,"DT_Beam.m_fFadeLength":110,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3080.4375,"y":343.28125,"z":274},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":580,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2290.71875,"y":718.40625,"z":162.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":192728,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":581,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-2290.7231192076088,"y":718.4076202537908,"z":585.6573670527796},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":76.2254905551672,"DT_Beam.m_fFadeLength":423.63568115234375,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-2290.71875,"y":718.40625,"z":162.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":608,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3726.53125,"y":-266,"z":605.53125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":10727164,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2031960,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":110},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":609,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1084468988,"DT_Beam.m_vecOrigin":{"x":-3726.5383578078417,"y":-266.0317574153087,"z":385.53198534390685},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":29.970704019069675,"DT_Beam.m_fEndWidth":60.041310384869576,"DT_Beam.m_fFadeLength":110,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3726.53125,"y":-266,"z":495.53125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":610,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3723.625,"y":-74.78125,"z":475},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":27504380,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":921945,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":110},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":611,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1084468988,"DT_Beam.m_vecOrigin":{"x":-3723.6633523242035,"y":-74.7813926341878,"z":385.53198534390685},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":29.970704019069675,"DT_Beam.m_fEndWidth":24.376172602176666,"DT_Beam.m_fFadeLength":89.4735107421875,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3723.625,"y":-74.78125,"z":475},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":622,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3008.21875,"y":132.8125,"z":296.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":2036123,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":623,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-3008.224487732863,"y":132.8440033798288,"z":587.344870271434},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":52.448732033371925,"DT_Beam.m_fFadeLength":291.30377197265625,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3008.21875,"y":132.8125,"z":296.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":624,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2680.75,"y":184.71875,"z":254.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":74144,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":625,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-2680.7238630749944,"y":184.7191023237283,"z":585.6573670527796},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":59.741603344678886,"DT_Beam.m_fFadeLength":331.624755859375,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-2680.75,"y":184.71875,"z":254.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":626,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2679.78125,"y":466.9375,"z":161.84375},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1601949,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":627,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-2679.786361286853,"y":466.9696406739058,"z":585.6573670527796},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":76.32539290189743,"DT_Beam.m_fFadeLength":423.8047180175781,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-2679.78125,"y":466.9375,"z":161.84375},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":628,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2680.59375,"y":796.28125,"z":254.0625},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":258462,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":629,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-2680.598862836576,"y":796.2827687888494,"z":585.6573670527796},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":59.641700997948654,"DT_Beam.m_fFadeLength":331.5787353515625,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-2680.59375,"y":796.28125,"z":254.0625},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":630,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-3003.6875,"y":799.1875,"z":296.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":27039,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":631,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-3003.724479149778,"y":799.2202743916969,"z":587.344870271434},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":52.448732033371925,"DT_Beam.m_fFadeLength":291.30377197265625,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-3003.6875,"y":799.1875,"z":296.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":632,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2010.375,"y":212.3125,"z":297.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":768417,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":633,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-2010.4100845529265,"y":212.3441550143325,"z":585.6573670527796},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":51.949220299720764,"DT_Beam.m_fFadeLength":288.6357421875,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-2010.375,"y":212.3125,"z":297.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CSpotlightEnd","id":634,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":-2015,"y":774.75,"z":296.03125},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxs":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":0,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":0,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":0,"DT_BaseEntity.m_clrRender":26251408,"DT_BaseEntity.m_iTeamNum":0,"DT_BaseEntity.m_CollisionGroup":0,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1722792,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":2097151,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMins":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":1,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_SpotlightEnd.m_flLightScale":0,"DT_SpotlightEnd.m_Radius":500},"pvs":1} -{"tick":0,"serverClass":"CBeam","id":635,"props":{"DT_Beam.m_flFrame":0,"DT_Beam.m_clrRender":1083216016,"DT_Beam.m_vecOrigin":{"x":-2015.0350933744303,"y":774.7827277807773,"z":585.6573670527796},"m_hAttachEntity.003":2097151,"m_hAttachEntity.004":2097151,"m_hAttachEntity.005":2097151,"m_hAttachEntity.006":2097151,"m_hAttachEntity.007":2097151,"m_hAttachEntity.008":2097151,"m_hAttachEntity.009":2097151,"m_nAttachIndex.000":0,"m_nAttachIndex.001":0,"m_nAttachIndex.002":0,"m_nAttachIndex.003":0,"m_nAttachIndex.004":0,"m_nAttachIndex.005":0,"m_nAttachIndex.006":0,"m_nAttachIndex.007":0,"m_nAttachIndex.008":0,"m_nAttachIndex.009":0,"DT_Beam.m_nBeamType":0,"DT_Beam.m_nBeamFlags":640,"DT_Beam.m_nNumBeamEnts":2,"DT_Beam.m_nHaloIndex":750,"DT_Beam.m_fHaloScale":60,"DT_Beam.m_fWidth":90.01201440393925,"DT_Beam.m_fEndWidth":52.14902499318123,"DT_Beam.m_fFadeLength":289.6357421875,"DT_Beam.m_fAmplitude":0,"DT_Beam.m_fStartFrame":0,"DT_Beam.m_fSpeed":0,"DT_Beam.m_nRenderFX":0,"DT_Beam.m_nRenderMode":2,"DT_Beam.m_flFrameRate":0,"DT_Beam.m_flHDRColorScale":1,"m_hAttachEntity.000":2097151,"m_hAttachEntity.001":2097151,"DT_Beam.m_vecEndPos":{"x":-2015,"y":774.75,"z":296.03125},"DT_Beam.m_nModelIndex":751,"m_hAttachEntity.002":2097151,"DT_Beam.moveparent":2097151,"DT_Beam.m_nMinDXLevel":0},"pvs":1} -{"tick":0,"serverClass":"CTFViewModel","id":642,"props":{"DT_BaseViewModel.m_nModelIndex":0,"DT_BaseViewModel.m_nBody":0,"DT_BaseViewModel.m_nSkin":0,"DT_BaseViewModel.m_nSequence":0,"DT_BaseViewModel.m_nViewModelIndex":1,"DT_BaseViewModel.m_flPlaybackRate":1,"DT_BaseViewModel.m_fEffects":0,"DT_BaseViewModel.m_nAnimationParity":0,"DT_BaseViewModel.m_hWeapon":2097151,"DT_BaseViewModel.m_hOwner":1972225,"DT_BaseViewModel.m_nNewSequenceParity":0,"DT_BaseViewModel.m_nResetEventsParity":0,"DT_BaseViewModel.m_nMuzzleFlashParity":1,"DT_BaseViewModel.m_flPoseParameter":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},"pvs":1} -{"tick":0,"serverClass":"CTFScatterGun","id":644,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":2,"DT_CollisionProperty.m_usSolidFlags":132,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":36,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-12.161678314208984,"y":-18.36384391784668,"z":26.586605072021484},"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_ScriptCreatedItem.m_iItemDefinitionIndex":200,"DT_ScriptCreatedItem.m_iEntityLevel":1,"DT_ScriptCreatedItem.m_iItemIDHigh":0,"DT_ScriptCreatedItem.m_iItemIDLow":2130260295,"DT_ScriptCreatedItem.m_iAccountID":64229260,"DT_ScriptCreatedItem.m_iEntityQuality":11,"DT_ScriptCreatedItem.m_bInitialized":1,"DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes":0,"DT_AttributeContainer.m_hOuter":1606276,"DT_AttributeContainer.m_ProviderType":1,"DT_AttributeContainer.m_iReapplyProvisionParity":3,"DT_LocalWeaponData.m_iClip1":7,"DT_LocalWeaponData.m_iClip2":0,"DT_LocalWeaponData.m_iPrimaryAmmoType":1,"DT_LocalWeaponData.m_iSecondaryAmmoType":-1,"DT_LocalWeaponData.m_nViewModelIndex":0,"DT_LocalWeaponData.m_bFlipViewModel":0,"DT_LocalActiveWeaponData.m_flNextPrimaryAttack":69.00999450683594,"DT_LocalActiveWeaponData.m_flNextSecondaryAttack":69.00999450683594,"DT_LocalActiveWeaponData.m_nNextThinkTick":0,"DT_LocalActiveWeaponData.m_flTimeWeaponIdle":69.33999633789062,"DT_LocalTFWeaponData.m_flLastCritCheckTime":0,"DT_LocalTFWeaponData.m_flReloadPriorNextFire":49.415000915527344,"DT_LocalTFWeaponData.m_flLastFireTime":48.584999084472656,"DT_LocalTFWeaponData.m_flEffectBarRegenTime":0,"DT_LocalTFWeaponData.m_flObservedCritChance":0,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":2.894726037979126,"y":16.616233825683594,"z":69.1546401977539},"DT_CollisionProperty.m_vecMins":{"x":-12.161678314208984,"y":-18.36384391784668,"z":26.586605072021484},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":494,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":129,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1972225,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1972225,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":2.894726037979126,"y":16.616233825683594,"z":69.1546401977539},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":25,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":1,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_BaseCombatWeapon.m_iViewModelIndex":494,"DT_BaseCombatWeapon.m_iWorldModelIndex":121,"DT_BaseCombatWeapon.m_iState":2,"DT_BaseCombatWeapon.m_hOwner":1972225,"DT_TFWeaponBase.m_bLowered":0,"DT_TFWeaponBase.m_bResetParity":0,"DT_TFWeaponBase.m_iReloadMode":0,"DT_TFWeaponBase.m_bReloadedThroughAnimEvent":0,"DT_TFWeaponBase.m_bDisguiseWeapon":0,"DT_TFWeaponBase.m_flEnergy":20,"DT_TFWeaponBase.m_hExtraWearable":2097151,"DT_TFWeaponBase.m_hExtraWearableViewModel":2097151,"DT_TFWeaponBase.m_bBeingRepurposedForTaunt":0,"DT_TFWeaponBase.m_nKillComboClass":0,"DT_TFWeaponBase.m_nKillComboCount":0},"pvs":1} -{"tick":0,"serverClass":"CTFJarMilk","id":645,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":2,"DT_CollisionProperty.m_usSolidFlags":132,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":36,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-12.161678314208984,"y":-18.36384391784668,"z":26.586605072021484},"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_ScriptCreatedItem.m_iItemDefinitionIndex":222,"DT_ScriptCreatedItem.m_iEntityLevel":5,"DT_ScriptCreatedItem.m_iItemIDHigh":0,"DT_ScriptCreatedItem.m_iItemIDLow":694438999,"DT_ScriptCreatedItem.m_iAccountID":64229260,"DT_ScriptCreatedItem.m_iEntityQuality":11,"DT_ScriptCreatedItem.m_bInitialized":1,"DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes":0,"DT_AttributeContainer.m_hOuter":1587845,"DT_AttributeContainer.m_ProviderType":1,"DT_AttributeContainer.m_iReapplyProvisionParity":3,"DT_LocalWeaponData.m_iClip1":0,"DT_LocalWeaponData.m_iClip2":0,"DT_LocalWeaponData.m_iPrimaryAmmoType":5,"DT_LocalWeaponData.m_iSecondaryAmmoType":-1,"DT_LocalWeaponData.m_nViewModelIndex":0,"DT_LocalWeaponData.m_bFlipViewModel":0,"DT_LocalActiveWeaponData.m_flNextPrimaryAttack":38.69499588012695,"DT_LocalActiveWeaponData.m_flNextSecondaryAttack":38.69499588012695,"DT_LocalActiveWeaponData.m_nNextThinkTick":0,"DT_LocalActiveWeaponData.m_flTimeWeaponIdle":39.35832977294922,"DT_LocalTFWeaponData.m_flLastCritCheckTime":0,"DT_LocalTFWeaponData.m_flReloadPriorNextFire":0,"DT_LocalTFWeaponData.m_flLastFireTime":0,"DT_LocalTFWeaponData.m_flEffectBarRegenTime":0,"DT_LocalTFWeaponData.m_flObservedCritChance":0,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":2.894726037979126,"y":16.616233825683594,"z":69.1546401977539},"DT_CollisionProperty.m_vecMins":{"x":-12.161678314208984,"y":-18.36384391784668,"z":26.586605072021484},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":494,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":129,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1972225,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1972225,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":2.894726037979126,"y":16.616233825683594,"z":69.1546401977539},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":31,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_BaseCombatWeapon.m_iViewModelIndex":494,"DT_BaseCombatWeapon.m_iWorldModelIndex":184,"DT_BaseCombatWeapon.m_iState":1,"DT_BaseCombatWeapon.m_hOwner":1972225,"DT_TFWeaponBase.m_bLowered":0,"DT_TFWeaponBase.m_bResetParity":0,"DT_TFWeaponBase.m_iReloadMode":0,"DT_TFWeaponBase.m_bReloadedThroughAnimEvent":0,"DT_TFWeaponBase.m_bDisguiseWeapon":0,"DT_TFWeaponBase.m_flEnergy":20,"DT_TFWeaponBase.m_hExtraWearable":2097151,"DT_TFWeaponBase.m_hExtraWearableViewModel":2097151,"DT_TFWeaponBase.m_bBeingRepurposedForTaunt":0,"DT_TFWeaponBase.m_nKillComboClass":0,"DT_TFWeaponBase.m_nKillComboCount":0},"pvs":1} -{"tick":0,"serverClass":"CTFBat","id":646,"props":{"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":2,"DT_CollisionProperty.m_usSolidFlags":132,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":36,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-12.161678314208984,"y":-18.36384391784668,"z":26.586605072021484},"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_ScriptCreatedItem.m_iItemDefinitionIndex":355,"DT_ScriptCreatedItem.m_iEntityLevel":5,"DT_ScriptCreatedItem.m_iItemIDHigh":0,"DT_ScriptCreatedItem.m_iItemIDLow":3543126689,"DT_ScriptCreatedItem.m_iAccountID":64229260,"DT_ScriptCreatedItem.m_iEntityQuality":11,"DT_ScriptCreatedItem.m_bInitialized":1,"DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes":0,"DT_AttributeContainer.m_hOuter":1211014,"DT_AttributeContainer.m_ProviderType":1,"DT_AttributeContainer.m_iReapplyProvisionParity":3,"DT_LocalWeaponData.m_iClip1":0,"DT_LocalWeaponData.m_iClip2":0,"DT_LocalWeaponData.m_iPrimaryAmmoType":-1,"DT_LocalWeaponData.m_iSecondaryAmmoType":-1,"DT_LocalWeaponData.m_nViewModelIndex":0,"DT_LocalWeaponData.m_bFlipViewModel":0,"DT_LocalActiveWeaponData.m_flNextPrimaryAttack":38.02499771118164,"DT_LocalActiveWeaponData.m_flNextSecondaryAttack":38.02499771118164,"DT_LocalActiveWeaponData.m_nNextThinkTick":0,"DT_LocalActiveWeaponData.m_flTimeWeaponIdle":0,"DT_LocalTFWeaponData.m_flLastCritCheckTime":0,"DT_LocalTFWeaponData.m_flReloadPriorNextFire":0,"DT_LocalTFWeaponData.m_flLastFireTime":0,"DT_LocalTFWeaponData.m_flEffectBarRegenTime":0,"DT_LocalTFWeaponData.m_flObservedCritChance":0,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":2.894726037979126,"y":16.616233825683594,"z":69.1546401977539},"DT_CollisionProperty.m_vecMins":{"x":-12.161678314208984,"y":-18.36384391784668,"z":26.586605072021484},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":494,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":161,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1972225,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1972225,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":2.894726037979126,"y":16.616233825683594,"z":69.1546401977539},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":1,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_BaseCombatWeapon.m_iViewModelIndex":494,"DT_BaseCombatWeapon.m_iWorldModelIndex":217,"DT_BaseCombatWeapon.m_iState":1,"DT_BaseCombatWeapon.m_hOwner":1972225,"DT_TFWeaponBase.m_bLowered":0,"DT_TFWeaponBase.m_bResetParity":1,"DT_TFWeaponBase.m_iReloadMode":0,"DT_TFWeaponBase.m_bReloadedThroughAnimEvent":0,"DT_TFWeaponBase.m_bDisguiseWeapon":0,"DT_TFWeaponBase.m_flEnergy":20,"DT_TFWeaponBase.m_hExtraWearable":2097151,"DT_TFWeaponBase.m_hExtraWearableViewModel":2097151,"DT_TFWeaponBase.m_bBeingRepurposedForTaunt":0,"DT_TFWeaponBase.m_nKillComboClass":0,"DT_TFWeaponBase.m_nKillComboCount":0},"pvs":1} -{"tick":0,"serverClass":"CTFWearable","id":647,"props":{"DT_AnimTimeMustBeFirst.m_flAnimTime":0,"DT_ServerAnimationData.m_flCycle":0,"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-15.241737365722656,"y":-4.182711601257324,"z":56.754451751708984},"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_ScriptCreatedItem.m_iItemDefinitionIndex":30394,"DT_ScriptCreatedItem.m_iEntityLevel":58,"DT_ScriptCreatedItem.m_iItemIDHigh":0,"DT_ScriptCreatedItem.m_iItemIDLow":2860606118,"DT_ScriptCreatedItem.m_iAccountID":64229260,"DT_ScriptCreatedItem.m_iEntityQuality":6,"DT_ScriptCreatedItem.m_bInitialized":1,"DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes":0,"DT_AttributeContainer.m_hOuter":578183,"DT_AttributeContainer.m_ProviderType":1,"DT_AttributeContainer.m_iReapplyProvisionParity":3,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":5.3979644775390625,"y":4.182711601257324,"z":82.09893798828125},"DT_CollisionProperty.m_vecMins":{"x":-15.241737365722656,"y":-4.182711601257324,"z":56.754451751708984},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":-2,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":129,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1972225,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1972225,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":5.3979644775390625,"y":4.182711601257324,"z":82.09893798828125},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":0,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_TFWearable.m_bDisguiseWearable":0,"DT_TFWearable.m_hWeaponAssociatedWith":2097151},"pvs":1} -{"tick":0,"serverClass":"CTFWearable","id":648,"props":{"DT_AnimTimeMustBeFirst.m_flAnimTime":0,"DT_ServerAnimationData.m_flCycle":0,"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-11.094779014587402,"y":-15.330585479736328,"z":25.254676818847656},"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_ScriptCreatedItem.m_iItemDefinitionIndex":30395,"DT_ScriptCreatedItem.m_iEntityLevel":86,"DT_ScriptCreatedItem.m_iItemIDHigh":0,"DT_ScriptCreatedItem.m_iItemIDLow":3564724039,"DT_ScriptCreatedItem.m_iAccountID":64229260,"DT_ScriptCreatedItem.m_iEntityQuality":6,"DT_ScriptCreatedItem.m_bInitialized":1,"DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes":0,"DT_AttributeContainer.m_hOuter":1645192,"DT_AttributeContainer.m_ProviderType":1,"DT_AttributeContainer.m_iReapplyProvisionParity":3,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":8.59468936920166,"y":13.705314636230469,"z":72.51782989501953},"DT_CollisionProperty.m_vecMins":{"x":-11.094779014587402,"y":-15.330585479736328,"z":25.254676818847656},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":-4,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":129,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1972225,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1972225,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":8.59468936920166,"y":13.705314636230469,"z":72.51782989501953},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":0,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_TFWearable.m_bDisguiseWearable":0,"DT_TFWearable.m_hWeaponAssociatedWith":2097151},"pvs":1} -{"tick":0,"serverClass":"CTFWearable","id":649,"props":{"DT_AnimTimeMustBeFirst.m_flAnimTime":0,"DT_ServerAnimationData.m_flCycle":0,"DT_BaseEntity.m_flSimulationTime":0,"DT_BaseEntity.m_vecOrigin":{"x":0,"y":0,"z":0},"DT_BaseEntity.m_angRotation":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_nSolidType":0,"DT_CollisionProperty.m_usSolidFlags":4,"DT_CollisionProperty.m_nSurroundType":0,"DT_CollisionProperty.m_triggerBloat":0,"DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMins":{"x":0,"y":0,"z":0},"DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs":{"x":0,"y":0,"z":0},"m_nModelIndexOverrides.000":0,"m_nModelIndexOverrides.001":0,"m_nModelIndexOverrides.002":0,"m_nModelIndexOverrides.003":0,"m_flPoseParameter.000":0,"m_flPoseParameter.001":0,"m_flPoseParameter.002":0,"m_flPoseParameter.003":0,"m_flPoseParameter.004":0,"m_flPoseParameter.005":0,"m_flPoseParameter.006":0,"m_flPoseParameter.007":0,"m_flPoseParameter.008":0,"m_flPoseParameter.009":0,"m_flPoseParameter.010":0,"m_flPoseParameter.011":0,"m_flPoseParameter.012":0,"m_flPoseParameter.013":0,"m_flPoseParameter.014":0,"m_flPoseParameter.015":0,"m_flPoseParameter.016":0,"m_flPoseParameter.017":0,"m_flPoseParameter.018":0,"m_flPoseParameter.019":0,"m_flPoseParameter.020":0,"m_flPoseParameter.021":0,"m_flPoseParameter.022":0,"m_flPoseParameter.023":0,"m_flEncodedController.000":0,"m_flEncodedController.001":0,"m_flEncodedController.002":0,"m_flEncodedController.003":0,"DT_CollisionProperty.m_vecMinsPreScaled":{"x":-3.0455095767974854,"y":-2.040450794993376e-7,"z":-9.108909606933594},"_LPT_m_Attributes_15.lengthprop15":0,"DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex":0,"DT_ScriptCreatedAttribute.m_iRawValue32":0,"DT_ScriptCreatedAttribute.m_nRefundableCurrency":0,"DT_ScriptCreatedItem.m_iItemDefinitionIndex":1011,"DT_ScriptCreatedItem.m_iEntityLevel":96,"DT_ScriptCreatedItem.m_iItemIDHigh":0,"DT_ScriptCreatedItem.m_iItemIDLow":1462689349,"DT_ScriptCreatedItem.m_iAccountID":64229260,"DT_ScriptCreatedItem.m_iEntityQuality":6,"DT_ScriptCreatedItem.m_bInitialized":1,"DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes":0,"DT_AttributeContainer.m_hOuter":1688201,"DT_AttributeContainer.m_ProviderType":1,"DT_AttributeContainer.m_iReapplyProvisionParity":3,"DT_CollisionProperty.m_vecMaxsPreScaled":{"x":6.290505409240723,"y":12.970368385314941,"z":3.4577503204345703},"DT_CollisionProperty.m_vecMins":{"x":-3.0455095767974854,"y":-2.040450794993376e-7,"z":-9.108909606933594},"DT_BaseEntity.m_ubInterpolationFrame":0,"DT_BaseEntity.m_nModelIndex":-6,"DT_BaseEntity.m_nRenderFX":0,"DT_BaseEntity.m_nRenderMode":0,"DT_BaseEntity.m_fEffects":129,"DT_BaseEntity.m_clrRender":4294967295,"DT_BaseEntity.m_iTeamNum":2,"DT_BaseEntity.m_CollisionGroup":11,"DT_BaseEntity.m_flElasticity":1,"DT_BaseEntity.m_flShadowCastDistance":0,"DT_BaseEntity.m_hOwnerEntity":1972225,"DT_BaseEntity.m_hEffectEntity":2097151,"DT_BaseEntity.moveparent":1972225,"DT_BaseEntity.m_iParentAttachment":0,"DT_BaseEntity.movetype":0,"DT_BaseEntity.movecollide":0,"DT_CollisionProperty.m_vecMaxs":{"x":6.290505409240723,"y":12.970368385314941,"z":3.4577503204345703},"DT_BaseEntity.m_iTextureFrameIndex":0,"DT_BaseEntity.m_bSimulatedEveryTick":0,"DT_BaseEntity.m_bAnimatedEveryTick":0,"DT_BaseEntity.m_bAlternateSorting":0,"DT_BaseAnimating.m_nForceBone":0,"DT_BaseAnimating.m_vecForce":{"x":0,"y":0,"z":0},"DT_BaseAnimating.m_nSkin":0,"DT_BaseAnimating.m_nBody":0,"DT_BaseAnimating.m_nHitboxSet":0,"DT_BaseAnimating.m_flModelScale":1,"DT_BaseAnimating.m_nSequence":0,"DT_BaseAnimating.m_flPlaybackRate":0,"DT_BaseAnimating.m_bClientSideAnimation":0,"DT_BaseAnimating.m_bClientSideFrameReset":0,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0,"DT_BaseAnimating.m_nMuzzleFlashParity":0,"DT_BaseAnimating.m_hLightingOrigin":2097151,"DT_BaseAnimating.m_hLightingOriginRelative":2097151,"DT_BaseAnimating.m_fadeMinDist":0,"DT_BaseAnimating.m_fadeMaxDist":0,"DT_BaseAnimating.m_flFadeScale":0,"DT_TFWearable.m_bDisguiseWearable":0,"DT_TFWearable.m_hWeaponAssociatedWith":2097151},"pvs":1} -{"tick":4,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4868,"DT_BaseEntity.m_flSimulationTime":67},"pvs":0} -{"tick":4,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4869,"DT_BaseEntity.m_flSimulationTime":68},"pvs":0} -{"tick":5,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4870,"DT_BaseEntity.m_flSimulationTime":69},"pvs":0} -{"tick":6,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4871,"DT_BaseEntity.m_flSimulationTime":70},"pvs":0} -{"tick":7,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4872,"DT_BaseEntity.m_flSimulationTime":71},"pvs":0} -{"tick":8,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4873,"DT_BaseEntity.m_flSimulationTime":72},"pvs":0} -{"tick":9,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4874,"DT_BaseEntity.m_flSimulationTime":73},"pvs":0} -{"tick":10,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4875,"DT_BaseEntity.m_flSimulationTime":74},"pvs":0} -{"tick":11,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4876,"DT_BaseEntity.m_flSimulationTime":75},"pvs":0} -{"tick":12,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4877,"DT_BaseEntity.m_flSimulationTime":76},"pvs":0} -{"tick":14,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4878,"DT_BaseEntity.m_flSimulationTime":77},"pvs":0} -{"tick":14,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4879,"DT_BaseEntity.m_flSimulationTime":78},"pvs":0} -{"tick":15,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4880,"DT_BaseEntity.m_flSimulationTime":79},"pvs":0} -{"tick":15,"serverClass":"CTFGameRulesProxy","id":148,"props":{"m_flNextRespawnWave.002":0,"m_flNextRespawnWave.003":0},"pvs":0} -{"tick":16,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4881,"DT_BaseEntity.m_flSimulationTime":80},"pvs":0} -{"tick":17,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4882,"DT_BaseEntity.m_flSimulationTime":81},"pvs":0} -{"tick":19,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4883,"DT_BaseEntity.m_flSimulationTime":82},"pvs":0} -{"tick":19,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4884,"DT_BaseEntity.m_flSimulationTime":83},"pvs":0} -{"tick":20,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4885,"DT_BaseEntity.m_flSimulationTime":84},"pvs":0} -{"tick":21,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4886,"DT_BaseEntity.m_flSimulationTime":85},"pvs":0} -{"tick":22,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4887,"DT_BaseEntity.m_flSimulationTime":86},"pvs":0} -{"tick":23,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4888,"DT_BaseEntity.m_flSimulationTime":87},"pvs":0} -{"tick":24,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4889,"DT_BaseEntity.m_flSimulationTime":88},"pvs":0} -{"tick":25,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4890,"DT_BaseEntity.m_flSimulationTime":89},"pvs":0} -{"tick":26,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4891,"DT_BaseEntity.m_flSimulationTime":90},"pvs":0} -{"tick":27,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4892,"DT_BaseEntity.m_flSimulationTime":91},"pvs":0} -{"tick":28,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4893,"DT_BaseEntity.m_flSimulationTime":92},"pvs":0} -{"tick":30,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4894,"DT_BaseEntity.m_flSimulationTime":93},"pvs":0} -{"tick":30,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4895,"DT_BaseEntity.m_flSimulationTime":94,"DT_BasePlayer.m_flMaxspeed":400},"pvs":0} -{"tick":30,"serverClass":"CTFGameRulesProxy","id":148,"props":{"m_flNextRespawnWave.002":78.3499984741211,"m_flNextRespawnWave.003":78.3499984741211,"DT_TeamplayRoundBasedRules.m_iRoundState":4},"pvs":0} -{"tick":31,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4896,"DT_BaseEntity.m_flSimulationTime":95},"pvs":0} -{"tick":32,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4897,"DT_BaseEntity.m_flSimulationTime":96},"pvs":0} -{"tick":33,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4898,"DT_BaseEntity.m_flSimulationTime":97},"pvs":0} -{"tick":35,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4899,"DT_BaseEntity.m_flSimulationTime":98},"pvs":0} -{"tick":36,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4901,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-87.74998474121094,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3432.822509765625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":100,"DT_BaseAnimating.m_nNewSequenceParity":7,"DT_BaseAnimating.m_nResetEventsParity":7},"pvs":0} -{"tick":37,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4902,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-141.74993896484375,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3434.94873046875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":101},"pvs":0} -{"tick":38,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4903,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-193.24490356445312,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3437.847412109375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":102},"pvs":0} -{"tick":39,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4904,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-241.650146484375,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3441.47216796875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":103},"pvs":0} -{"tick":40,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4905,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-287.15106201171875,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3445.779541015625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":104},"pvs":0} -{"tick":41,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4906,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-329.9219055175781,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3450.728271484375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":5},"pvs":0} -{"tick":42,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4907,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-360,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3456.128173828125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":6},"pvs":0} -{"tick":43,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4908,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3461.528076171875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":7},"pvs":0} -{"tick":44,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4909,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3466.927978515625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":8},"pvs":0} -{"tick":46,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4910,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3472.327880859375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":9},"pvs":0} -{"tick":46,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4911,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3477.727783203125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":10},"pvs":0} -{"tick":47,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4912,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3483.127685546875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":11},"pvs":0} -{"tick":48,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4913,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3488.527587890625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":12},"pvs":0} -{"tick":49,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3493.927490234375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":13},"pvs":0} -{"tick":50,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4915,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3499.327392578125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":14},"pvs":0} -{"tick":51,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4916,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3504.727294921875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":15},"pvs":0} -{"tick":52,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4917,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3510.127197265625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":16},"pvs":0} -{"tick":53,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4918,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3515.527099609375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":17},"pvs":0} -{"tick":54,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4919,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3520.927001953125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":18},"pvs":0} -{"tick":55,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4920,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3526.326904296875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":19},"pvs":0} -{"tick":56,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4921,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-338.3999328613281,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3531.40283203125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":20},"pvs":0} -{"tick":57,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4922,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-318.09588623046875,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3536.17431640625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":21},"pvs":0} -{"tick":58,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4923,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-299.01007080078125,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3540.659423828125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":22},"pvs":0} -{"tick":59,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4924,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-281.06939697265625,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3544.87548828125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":23},"pvs":0} -{"tick":60,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4925,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-264.2051696777344,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3548.838623046875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":24},"pvs":0} -{"tick":62,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4926,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-248.3528289794922,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3552.56396484375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":25},"pvs":0} -{"tick":62,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4927,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-233.45162963867188,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3556.065673828125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":26},"pvs":0} -{"tick":63,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4928,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-219.4445037841797,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3559.357421875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":27},"pvs":0} -{"tick":64,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4929,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-206.27780151367188,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3562.45166015625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":28},"pvs":0} -{"tick":65,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4930,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-193.90110778808594,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3565.360107421875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":29},"pvs":0} -{"tick":66,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4931,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-182.2670135498047,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3568.093994140625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":30},"pvs":0} -{"tick":67,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4932,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-171.33096313476562,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3570.6640625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":31},"pvs":0} -{"tick":68,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4933,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-161.0510711669922,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3573.079833984375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":32},"pvs":0} -{"tick":69,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4934,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-151.38796997070312,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3575.3505859375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":33},"pvs":0} -{"tick":70,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4935,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-142.30465698242188,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3577.485107421875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":34},"pvs":0} -{"tick":71,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4936,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-133.76634216308594,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3579.49169921875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":35},"pvs":0} -{"tick":73,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4937,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-125.74034881591797,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3581.377685546875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":36},"pvs":0} -{"tick":73,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4938,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-118.19591522216797,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3583.150634765625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":37},"pvs":0} -{"tick":74,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4939,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-111.10414123535156,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3584.817138671875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":38},"pvs":0} -{"tick":75,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4940,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-104.43788146972656,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3586.3837890625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":39},"pvs":0} -{"tick":76,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4941,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-98.1716079711914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3587.8564453125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":40},"pvs":0} -{"tick":78,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4942,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-92.1716079711914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3589.239013671875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":41},"pvs":0} -{"tick":78,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4943,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-86.1716079711914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3590.531494140625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":42},"pvs":0} -{"tick":79,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4944,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-80.1716079711914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3591.734130859375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":43},"pvs":0} -{"tick":80,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4945,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-74.1716079711914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3592.8466796875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":44},"pvs":0} -{"tick":81,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4946,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-68.1716079711914,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3593.869140625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":45},"pvs":0} -{"tick":83,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4947,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-62.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3594.8017578125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":46},"pvs":0} -{"tick":83,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4948,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-56.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3595.644287109375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":47},"pvs":0} -{"tick":84,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4949,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-50.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3596.39697265625,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":48},"pvs":0} -{"tick":85,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4950,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-44.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3597.0595703125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":49},"pvs":0} -{"tick":86,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4951,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-38.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3597.632080078125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":50},"pvs":0} -{"tick":87,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4952,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-32.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3598.11474609375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":51},"pvs":0} -{"tick":88,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4953,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-26.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3598.50732421875,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":52},"pvs":0} -{"tick":89,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4954,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-20.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3598.809814453125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":53},"pvs":0} -{"tick":90,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4955,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-14.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3599.0224609375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":54},"pvs":0} -{"tick":91,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4956,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-8.171607971191406,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3599.14501953125,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":55},"pvs":0} -{"tick":92,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4957,"DT_LocalPlayerExclusive.m_vecVelocity[0]":-2.1716079711914062,"DT_TFLocalPlayerExclusive.m_vecOrigin":{"x":-3599.177490234375,"y":421.33099365234375,"z":0},"DT_BaseEntity.m_flSimulationTime":56},"pvs":0} -{"tick":94,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4959,"DT_LocalPlayerExclusive.m_vecVelocity[0]":0,"DT_BaseEntity.m_flSimulationTime":58,"DT_BaseAnimating.m_nNewSequenceParity":0,"DT_BaseAnimating.m_nResetEventsParity":0},"pvs":0} -{"tick":95,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4960,"DT_BaseEntity.m_flSimulationTime":59},"pvs":0} -{"tick":96,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4961,"DT_BaseEntity.m_flSimulationTime":60},"pvs":0} -{"tick":97,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4962,"DT_BaseEntity.m_flSimulationTime":61},"pvs":0} -{"tick":99,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4963,"DT_BaseEntity.m_flSimulationTime":62},"pvs":0} -{"tick":99,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4964,"DT_BaseEntity.m_flSimulationTime":63},"pvs":0} -{"tick":100,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4965,"DT_BaseEntity.m_flSimulationTime":64},"pvs":0} -{"tick":101,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4966,"DT_BaseEntity.m_flSimulationTime":65},"pvs":0} -{"tick":102,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4967,"DT_BaseEntity.m_flSimulationTime":66},"pvs":0} -{"tick":103,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4968,"DT_BaseEntity.m_flSimulationTime":67},"pvs":0} -{"tick":104,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4969,"DT_BaseEntity.m_flSimulationTime":68},"pvs":0} -{"tick":105,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4970,"DT_BaseEntity.m_flSimulationTime":69},"pvs":0} -{"tick":106,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4971,"DT_BaseEntity.m_flSimulationTime":70},"pvs":0} -{"tick":107,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4972,"DT_BaseEntity.m_flSimulationTime":71},"pvs":0} -{"tick":108,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4973,"DT_BaseEntity.m_flSimulationTime":72},"pvs":0} -{"tick":110,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4974,"DT_BaseEntity.m_flSimulationTime":73},"pvs":0} -{"tick":110,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4975,"DT_BaseEntity.m_flSimulationTime":74},"pvs":0} -{"tick":111,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4976,"DT_BaseEntity.m_flSimulationTime":75},"pvs":0} -{"tick":112,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4977,"DT_BaseEntity.m_flSimulationTime":76},"pvs":0} -{"tick":113,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4978,"DT_BaseEntity.m_flSimulationTime":77},"pvs":0} -{"tick":115,"serverClass":"CTFPlayer","id":1,"props":{"DT_LocalPlayerExclusive.m_nTickBase":4979,"DT_BaseEntity.m_flSimulationTime":78},"pvs":0} diff --git a/tests/entity.rs b/tests/entity.rs index a999b20..184a524 100644 --- a/tests/entity.rs +++ b/tests/entity.rs @@ -1,11 +1,10 @@ use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; -use std::fs::{self, File}; +use std::fs; use test_case::test_case; use fnv::FnvHashMap; use std::collections::HashMap; -use std::io::{BufRead, BufReader}; use tf_demo_parser::demo::data::DemoTick; use tf_demo_parser::demo::message::packetentities::{EntityId, PacketEntity, UpdateType}; use tf_demo_parser::demo::message::Message; @@ -134,86 +133,15 @@ impl MessageHandler for EntityDumper { } } -#[test_case("test_data/small.dem", "test_data/small_entities.json"; "small.dem")] -fn entity_test(input_file: &str, snapshot_file: &str) { +#[test_case("test_data/small.dem")] +fn entity_test(input_file: &str) { let file = fs::read(input_file).expect("Unable to read file"); let demo = Demo::new(&file); let (_, entities) = DemoParser::new_with_analyser(demo.get_stream(), EntityDumper::new()) .parse() .unwrap(); - let json_file = File::open(snapshot_file).expect("Unable to read file"); - let mut reader = BufReader::new(json_file); - let mut buffer = String::new(); - - let mut expected = Vec::with_capacity(128); - - while reader.read_line(&mut buffer).expect("failed to read line") > 0 { - let entity: EntityDump = - serde_json::from_str(buffer.trim_end()).expect("failed to parse json"); - expected.push(entity); - buffer.clear(); - } - - pretty_assertions::assert_eq!(expected.len(), entities.len()); - - let entity_ids: Vec<_> = entities.iter().map(|entity| entity.id).collect(); - let expected_ids: Vec<_> = expected.iter().map(|entity| entity.id).collect(); - - pretty_assertions::assert_eq!(expected_ids, entity_ids); - - for (expected_entity, entity) in expected.into_iter().zip(entities.into_iter()) { - pretty_assertions::assert_eq!( - expected_entity.tick, - entity.tick, - "Failed comparing entity {}", - entity.id - ); - pretty_assertions::assert_eq!( - expected_entity.id, - entity.id, - "Failed comparing entity {}", - entity.id - ); - pretty_assertions::assert_eq!( - expected_entity.server_class, - entity.server_class, - "Failed comparing entity {}", - entity.id - ); - pretty_assertions::assert_eq!( - expected_entity.pvs, - entity.pvs, - "Failed comparing entity {}", - entity.id - ); - let mut prop_names: Vec<_> = entity.props.keys().collect(); - let mut expected_prop_names: Vec<_> = expected_entity.props.keys().collect(); - prop_names.sort(); - expected_prop_names.sort(); - - pretty_assertions::assert_eq!( - expected_prop_names, - prop_names, - "Failed comparing entity {}", - entity.id - ); - - for prop_name in expected_prop_names { - pretty_assertions::assert_eq!( - expected_entity.props.get(prop_name), - entity.props.get(prop_name), - "Failed comparing entity {} prop {}", - entity.id, - prop_name - ); - } - - pretty_assertions::assert_eq!( - expected_entity, - entity, - "Failed comparing entity {}", - entity.id - ); - } + insta::with_settings!({sort_maps =>true}, { + insta::assert_json_snapshot!(entities); + }); } diff --git a/tests/sendprops.rs b/tests/sendprops.rs index 52b356e..e38a0a5 100644 --- a/tests/sendprops.rs +++ b/tests/sendprops.rs @@ -2,7 +2,7 @@ use std::fs; use test_case::test_case; use fnv::FnvHashMap; -use std::collections::{HashMap, HashSet}; +use std::collections::HashMap; use tf_demo_parser::demo::packet::datatable::{ParseSendTable, SendTableName, ServerClass}; use tf_demo_parser::demo::parser::MessageHandler; use tf_demo_parser::demo::sendprop::{SendPropIdentifier, SendPropName}; @@ -53,8 +53,8 @@ impl MessageHandler for SendPropAnalyser { } } -#[test_case("test_data/gully.dem", "test_data/gully_props.json"; "gully.dem")] -fn flatten_test(input_file: &str, snapshot_file: &str) { +#[test_case("test_data/gully.dem")] +fn flatten_test(input_file: &str) { let file = fs::read(input_file).expect("Unable to read file"); let demo = Demo::new(&file); let (_, (send_tables, prop_names)) = @@ -79,18 +79,7 @@ fn flatten_test(input_file: &str, snapshot_file: &str) { }) .collect(); - let expected: HashMap> = serde_json::from_slice( - fs::read(snapshot_file) - .expect("Unable to read file") - .as_slice(), - ) - .unwrap(); - - let expected_tables: HashSet<_> = expected.keys().collect(); - let actual_tables: HashSet<_> = flat_props.keys().collect(); - - pretty_assertions::assert_eq!(expected_tables, actual_tables); - for table in expected_tables { - pretty_assertions::assert_eq!(expected[table], flat_props[table]); - } + insta::with_settings!({sort_maps =>true}, { + insta::assert_json_snapshot!(flat_props); + }); } diff --git a/tests/snapshots/entity__entity_test.snap b/tests/snapshots/entity__entity_test.snap new file mode 100644 index 0000000..027e7eb --- /dev/null +++ b/tests/snapshots/entity__entity_test.snap @@ -0,0 +1,20417 @@ +--- +source: tests/entity.rs +expression: entities +--- +[ + { + "tick": 0, + "serverClass": "CWorld", + "id": 0, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 1, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 1, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_WORLD.m_WorldMaxs": { + "x": 5240.0, + "y": 3936.0, + "z": 1641.0 + }, + "DT_WORLD.m_WorldMins": { + "x": -3882.0, + "y": -4570.0, + "z": -560.0 + }, + "DT_WORLD.m_bColdWorld": 0, + "DT_WORLD.m_bStartDark": 0, + "DT_WORLD.m_flMaxOccludeeArea": 0.0, + "DT_WORLD.m_flMaxPropScreenSpaceWidth": -1.0, + "DT_WORLD.m_flMinOccluderArea": 0.0, + "DT_WORLD.m_flMinPropScreenSpaceWidth": 0.0, + "DT_WORLD.m_flWaveHeight": 0.03125, + "DT_WORLD.m_iszDetailSpriteMaterial": "detail/detailsprites", + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_AttributeManager.m_ProviderType": 0, + "DT_AttributeManager.m_hOuter": 1972225, + "DT_AttributeManager.m_iReapplyProvisionParity": 9, + "DT_BCCLocalPlayerExclusive.m_flNextAttack": 69.34, + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 6, + "DT_BaseAnimating.m_nResetEventsParity": 6, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseCombatCharacter.m_bGlowEnabled": 0, + "DT_BaseCombatCharacter.m_hActiveWeapon": 1606276, + "DT_BaseEntity.m_CollisionGroup": 5, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 1, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 58, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 2, + "DT_BasePlayer.m_fFlags": 257, + "DT_BasePlayer.m_flFOVTime": 68.34, + "DT_BasePlayer.m_flMaxspeed": 1.0, + "DT_BasePlayer.m_hObserverTarget": 2097151, + "DT_BasePlayer.m_hUseEntity": 2097151, + "DT_BasePlayer.m_hVehicle": 2097151, + "DT_BasePlayer.m_hViewModel": [ + 1724563, + 453250 + ], + "DT_BasePlayer.m_hZoomOwner": 2097151, + "DT_BasePlayer.m_iBonusChallenge": 0, + "DT_BasePlayer.m_iBonusProgress": 0, + "DT_BasePlayer.m_iDefaultFOV": 90, + "DT_BasePlayer.m_iFOV": 0, + "DT_BasePlayer.m_iFOVStart": 90, + "DT_BasePlayer.m_iHealth": 125, + "DT_BasePlayer.m_iObserverMode": 0, + "DT_BasePlayer.m_lifeState": 0, + "DT_BasePlayer.m_szLastPlaceName": "", + "DT_CollisionProperty.m_nSolidType": 2, + "DT_CollisionProperty.m_nSurroundType": 3, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 16, + "DT_CollisionProperty.m_vecMaxs": { + "x": 24.0, + "y": 24.0, + "z": 82.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 24.0, + "y": 24.0, + "z": 82.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -24.0, + "y": -24.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -24.0, + "y": -24.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 24.0, + "y": 24.0, + "z": 82.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 24.0, + "y": 24.0, + "z": 82.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": -24.0, + "y": -24.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": -24.0, + "y": -24.0, + "z": 0.0 + }, + "DT_Local.m_PlayerFog.m_hCtrl": 1667300, + "DT_Local.m_audio.ent": 2037945, + "DT_Local.m_audio.localBits": 0, + "DT_Local.m_audio.localSound[0]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[1]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[2]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[3]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[4]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[5]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[6]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.localSound[7]": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_audio.soundscapeIndex": -1, + "DT_Local.m_bAllowAutoMovement": 1, + "DT_Local.m_bDrawViewmodel": 1, + "DT_Local.m_bDucked": 0, + "DT_Local.m_bDucking": 0, + "DT_Local.m_bInDuckJump": 0, + "DT_Local.m_bPoisoned": 0, + "DT_Local.m_bWearingSuit": 1, + "DT_Local.m_flDuckJumpTime": 0.0, + "DT_Local.m_flDucktime": 0.0, + "DT_Local.m_flFOVRate": 0.0, + "DT_Local.m_flFallVelocity": 0.03125, + "DT_Local.m_flJumpTime": 0.0, + "DT_Local.m_flStepSize": 18.0, + "DT_Local.m_iHideHUD": 2050, + "DT_Local.m_skybox3d.area": 1, + "DT_Local.m_skybox3d.fog.blend": 0, + "DT_Local.m_skybox3d.fog.colorPrimary": 9335665, + "DT_Local.m_skybox3d.fog.colorSecondary": 16777215, + "DT_Local.m_skybox3d.fog.dirPrimary": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_skybox3d.fog.enable": 1, + "DT_Local.m_skybox3d.fog.end": 14200.0, + "DT_Local.m_skybox3d.fog.maxdensity": 1.0, + "DT_Local.m_skybox3d.fog.start": 50.0, + "DT_Local.m_skybox3d.origin": { + "x": 10271.0, + "y": -113.78125, + "z": 4947.0 + }, + "DT_Local.m_skybox3d.scale": 16, + "DT_Local.m_vecPunchAngle": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Local.m_vecPunchAngleVel": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LocalPlayerExclusive.m_fOnTarget": 0, + "DT_LocalPlayerExclusive.m_flConstraintRadius": 0.0, + "DT_LocalPlayerExclusive.m_flConstraintSpeedFactor": 0.0, + "DT_LocalPlayerExclusive.m_flConstraintWidth": 0.0, + "DT_LocalPlayerExclusive.m_flDeathTime": 0.0, + "DT_LocalPlayerExclusive.m_flFriction": 1.0, + "DT_LocalPlayerExclusive.m_flLaggedMovementValue": 1.0, + "DT_LocalPlayerExclusive.m_hConstraintEntity": 2097151, + "DT_LocalPlayerExclusive.m_hGroundEntity": 1032192, + "DT_LocalPlayerExclusive.m_hLastWeapon": 1587845, + "DT_LocalPlayerExclusive.m_nNextThinkTick": 0, + "DT_LocalPlayerExclusive.m_nTickBase": 4859, + "DT_LocalPlayerExclusive.m_nWaterLevel": 0, + "DT_LocalPlayerExclusive.m_vecBaseVelocity": { + "x": -0.0009765625, + "y": -0.0009765625, + "z": -0.0009765625 + }, + "DT_LocalPlayerExclusive.m_vecConstraintCenter": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": 0.0, + "DT_LocalPlayerExclusive.m_vecVelocity[1]": 0.0, + "DT_LocalPlayerExclusive.m_vecVelocity[2]": 0.0, + "DT_LocalPlayerExclusive.m_vecViewOffset[0]": 0.0, + "DT_LocalPlayerExclusive.m_vecViewOffset[1]": 0.0, + "DT_LocalPlayerExclusive.m_vecViewOffset[2]": 65.00006, + "DT_PlayerState.deadflag": 0, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_TFLocalPlayerExclusive.\"player_object_array\"": [], + "DT_TFLocalPlayerExclusive.m_angEyeAngles[0]": 0.35294342, + "DT_TFLocalPlayerExclusive.m_bIsCoaching": 0, + "DT_TFLocalPlayerExclusive.m_hCoach": 2097151, + "DT_TFLocalPlayerExclusive.m_hStudent": 2097151, + "DT_TFLocalPlayerExclusive.m_nCurrency": 0, + "DT_TFLocalPlayerExclusive.m_nExperienceLevel": 1, + "DT_TFLocalPlayerExclusive.m_nExperienceLevelProgress": 0, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3431.0, + "y": 421.331 + }, + "DT_TFLocalPlayerExclusive.m_vecOrigin[2]": 298.03125, + "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[0]": 0.35294342, + "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[1]": 0.0, + "DT_TFNonLocalPlayerExclusive.m_vecOrigin": { + "x": -3431.0, + "y": 421.25 + }, + "DT_TFNonLocalPlayerExclusive.m_vecOrigin[2]": 298.0, + "DT_TFPlayer.m_bAllowMoveDuringTaunt": 0, + "DT_TFPlayer.m_bArenaSpectator": 0, + "DT_TFPlayer.m_bForcedSkin": 0, + "DT_TFPlayer.m_bInPowerPlay": 0, + "DT_TFPlayer.m_bIsABot": 0, + "DT_TFPlayer.m_bIsMiniBoss": 0, + "DT_TFPlayer.m_bIsReadyToHighFive": 0, + "DT_TFPlayer.m_bSaveMeParity": 0, + "DT_TFPlayer.m_bUseBossHealthBar": 0, + "DT_TFPlayer.m_bUsingActionSlot": 0, + "DT_TFPlayer.m_bUsingVRHeadset": 0, + "DT_TFPlayer.m_flCurrentTauntMoveSpeed": 0.0, + "DT_TFPlayer.m_flHandScale": 1.0, + "DT_TFPlayer.m_flHeadScale": 1.0, + "DT_TFPlayer.m_flKartNextAvailableBoost": 0.0, + "DT_TFPlayer.m_flLastDamageTime": 1.0, + "DT_TFPlayer.m_flTauntYaw": 0.0, + "DT_TFPlayer.m_flTorsoScale": 1.0, + "DT_TFPlayer.m_flVehicleReverseTime": 340282350000000000000000000000000000000.0, + "DT_TFPlayer.m_hGrapplingHookTarget": 2097151, + "DT_TFPlayer.m_hHighFivePartner": 2097151, + "DT_TFPlayer.m_hItem": 2097151, + "DT_TFPlayer.m_hRagdoll": 2097151, + "DT_TFPlayer.m_hSecondaryLastWeapon": 2097151, + "DT_TFPlayer.m_iKartHealth": 0, + "DT_TFPlayer.m_iKartState": 0, + "DT_TFPlayer.m_iSpawnCounter": 0, + "DT_TFPlayer.m_iTauntItemDefIndex": -1, + "DT_TFPlayer.m_nActiveTauntSlot": -1, + "DT_TFPlayer.m_nBotSkill": 0, + "DT_TFPlayer.m_nForceTauntCam": 0, + "DT_TFPlayer.m_nForcedSkin": 0, + "DT_TFPlayer.m_nWaterLevel": 0, + "DT_TFPlayerClassShared.m_angCustomModelRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_TFPlayerClassShared.m_bCustomModelRotates": 1, + "DT_TFPlayerClassShared.m_bCustomModelRotationSet": 0, + "DT_TFPlayerClassShared.m_bCustomModelVisibleToSelf": 1, + "DT_TFPlayerClassShared.m_bUseClassAnimations": 0, + "DT_TFPlayerClassShared.m_iClass": 1, + "DT_TFPlayerClassShared.m_iClassModelParity": 0, + "DT_TFPlayerClassShared.m_iszClassIcon": "scout", + "DT_TFPlayerClassShared.m_iszCustomModel": "", + "DT_TFPlayerClassShared.m_vecCustomModelOffset": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_TFPlayerConditionListExclusive._condition_bits": 0, + "DT_TFPlayerScoringDataExclusive.m_iBackstabs": 0, + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints": 0, + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt": 0, + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed": 0, + "DT_TFPlayerScoringDataExclusive.m_iCaptures": 0, + "DT_TFPlayerScoringDataExclusive.m_iCrits": 0, + "DT_TFPlayerScoringDataExclusive.m_iDamageDone": 0, + "DT_TFPlayerScoringDataExclusive.m_iDeaths": 0, + "DT_TFPlayerScoringDataExclusive.m_iDefenses": 0, + "DT_TFPlayerScoringDataExclusive.m_iDominations": 0, + "DT_TFPlayerScoringDataExclusive.m_iHeadshots": 0, + "DT_TFPlayerScoringDataExclusive.m_iHealPoints": 0, + "DT_TFPlayerScoringDataExclusive.m_iInvulns": 0, + "DT_TFPlayerScoringDataExclusive.m_iKillAssists": 0, + "DT_TFPlayerScoringDataExclusive.m_iKills": 0, + "DT_TFPlayerScoringDataExclusive.m_iPoints": 0, + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints": 0, + "DT_TFPlayerScoringDataExclusive.m_iRevenge": 0, + "DT_TFPlayerScoringDataExclusive.m_iSuicides": 0, + "DT_TFPlayerScoringDataExclusive.m_iTeleports": 0, + "DT_TFPlayerShared.m_bArenaFirstBloodBoost": 0, + "DT_TFPlayerShared.m_bCarryingObject": 0, + "DT_TFPlayerShared.m_bFeignDeathReady": 0, + "DT_TFPlayerShared.m_bJumping": 0, + "DT_TFPlayerShared.m_bLoadoutUnavailable": 0, + "DT_TFPlayerShared.m_bShieldEquipped": 0, + "DT_TFPlayerShared.m_flChargeMeter": 100.0, + "DT_TFPlayerShared.m_flCloakMeter": 100.0, + "DT_TFPlayerShared.m_flDuckTimer": 51.78, + "DT_TFPlayerShared.m_flEnergyDrinkMeter": 100.0, + "DT_TFPlayerShared.m_flFirstPrimaryAttack": 69.009995, + "DT_TFPlayerShared.m_flHypeMeter": 0.0, + "DT_TFPlayerShared.m_flInvisChangeCompleteTime": 68.53999, + "DT_TFPlayerShared.m_flMovementStunTime": 0.0, + "DT_TFPlayerShared.m_flNextNoiseMakerTime": 0.0, + "DT_TFPlayerShared.m_flSpyTranqBuffDuration": 0.0, + "DT_TFPlayerShared.m_hCarriedObject": 2097151, + "DT_TFPlayerShared.m_hDisguiseWeapon": 2097151, + "DT_TFPlayerShared.m_hStunner": 2097151, + "DT_TFPlayerShared.m_iAirDash": 0, + "DT_TFPlayerShared.m_iCritMult": 0, + "DT_TFPlayerShared.m_iDecapitations": 0, + "DT_TFPlayerShared.m_iDesiredPlayerClass": 1, + "DT_TFPlayerShared.m_iDisguiseBody": 0, + "DT_TFPlayerShared.m_iDisguiseHealth": 0, + "DT_TFPlayerShared.m_iDisguiseTargetIndex": 0, + "DT_TFPlayerShared.m_iItemFindBonus": 0, + "DT_TFPlayerShared.m_iKillCountSinceLastDeploy": 0, + "DT_TFPlayerShared.m_iMovementStunAmount": 0, + "DT_TFPlayerShared.m_iMovementStunParity": 0, + "DT_TFPlayerShared.m_iNextMeleeCrit": 0, + "DT_TFPlayerShared.m_iRevengeCrits": 0, + "DT_TFPlayerShared.m_iStunFlags": 0, + "DT_TFPlayerShared.m_iStunIndex": -1, + "DT_TFPlayerShared.m_iTauntConcept": 0, + "DT_TFPlayerShared.m_iTauntIndex": 0, + "DT_TFPlayerShared.m_iWeaponKnockbackID": -1, + "DT_TFPlayerShared.m_nAirDucked": 0, + "DT_TFPlayerShared.m_nArenaNumChanges": 0, + "DT_TFPlayerShared.m_nDisguiseClass": 0, + "DT_TFPlayerShared.m_nDisguiseTeam": 0, + "DT_TFPlayerShared.m_nHalloweenBombHeadStage": 0, + "DT_TFPlayerShared.m_nMaskClass": 0, + "DT_TFPlayerShared.m_nNumHealers": 0, + "DT_TFPlayerShared.m_nPlayerCond": 0, + "DT_TFPlayerShared.m_nPlayerCondEx": 0, + "DT_TFPlayerShared.m_nPlayerCondEx2": 0, + "DT_TFPlayerShared.m_nPlayerCondEx3": 0, + "DT_TFPlayerShared.m_nPlayerState": 0, + "DT_TFPlayerShared.m_nTeamTeleporterUsed": 0, + "DT_TFPlayerShared.m_unTauntSourceItemID_High": 0, + "DT_TFPlayerShared.m_unTauntSourceItemID_Low": 0, + "DT_TFPlayerSharedLocal.m_bInUpgradeZone": 0, + "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam": 0, + "DT_TFPlayerSharedLocal.m_bRageDraining": 0, + "DT_TFPlayerSharedLocal.m_flNextRageEarnTime": 0.0, + "DT_TFPlayerSharedLocal.m_flRageMeter": 0.0, + "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime": 0.0, + "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire": 68.53999, + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass": 0, + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam": 0, + "_LPT_m_Attributes_15.lengthprop15": 0, + "_LPT_m_hMyWearables_8.lengthprop8": 3, + "_ST_m_hMyWearables_8.000": 1688201, + "_ST_m_hMyWearables_8.001": 1645192, + "_ST_m_hMyWearables_8.002": 578183, + "_ST_m_hMyWearables_8.003": 0, + "_ST_m_hMyWearables_8.004": 0, + "_ST_m_hMyWearables_8.005": 0, + "_ST_m_hMyWearables_8.006": 0, + "_ST_m_hMyWearables_8.007": 0, + "m_bPlayerDominated.000": 0, + "m_bPlayerDominated.001": 0, + "m_bPlayerDominated.002": 0, + "m_bPlayerDominated.003": 0, + "m_bPlayerDominated.004": 0, + "m_bPlayerDominated.005": 0, + "m_bPlayerDominated.006": 0, + "m_bPlayerDominated.007": 0, + "m_bPlayerDominated.008": 0, + "m_bPlayerDominated.009": 0, + "m_bPlayerDominated.010": 0, + "m_bPlayerDominated.011": 0, + "m_bPlayerDominated.012": 0, + "m_bPlayerDominated.013": 0, + "m_bPlayerDominated.014": 0, + "m_bPlayerDominated.015": 0, + "m_bPlayerDominated.016": 0, + "m_bPlayerDominated.017": 0, + "m_bPlayerDominated.018": 0, + "m_bPlayerDominated.019": 0, + "m_bPlayerDominated.020": 0, + "m_bPlayerDominated.021": 0, + "m_bPlayerDominated.022": 0, + "m_bPlayerDominated.023": 0, + "m_bPlayerDominated.024": 0, + "m_bPlayerDominated.025": 0, + "m_bPlayerDominated.026": 0, + "m_bPlayerDominated.027": 0, + "m_bPlayerDominated.028": 0, + "m_bPlayerDominated.029": 0, + "m_bPlayerDominated.030": 0, + "m_bPlayerDominated.031": 0, + "m_bPlayerDominated.032": 0, + "m_bPlayerDominated.033": 0, + "m_bPlayerDominatingMe.000": 0, + "m_bPlayerDominatingMe.001": 0, + "m_bPlayerDominatingMe.002": 0, + "m_bPlayerDominatingMe.003": 0, + "m_bPlayerDominatingMe.004": 0, + "m_bPlayerDominatingMe.005": 0, + "m_bPlayerDominatingMe.006": 0, + "m_bPlayerDominatingMe.007": 0, + "m_bPlayerDominatingMe.008": 0, + "m_bPlayerDominatingMe.009": 0, + "m_bPlayerDominatingMe.010": 0, + "m_bPlayerDominatingMe.011": 0, + "m_bPlayerDominatingMe.012": 0, + "m_bPlayerDominatingMe.013": 0, + "m_bPlayerDominatingMe.014": 0, + "m_bPlayerDominatingMe.015": 0, + "m_bPlayerDominatingMe.016": 0, + "m_bPlayerDominatingMe.017": 0, + "m_bPlayerDominatingMe.018": 0, + "m_bPlayerDominatingMe.019": 0, + "m_bPlayerDominatingMe.020": 0, + "m_bPlayerDominatingMe.021": 0, + "m_bPlayerDominatingMe.022": 0, + "m_bPlayerDominatingMe.023": 0, + "m_bPlayerDominatingMe.024": 0, + "m_bPlayerDominatingMe.025": 0, + "m_bPlayerDominatingMe.026": 0, + "m_bPlayerDominatingMe.027": 0, + "m_bPlayerDominatingMe.028": 0, + "m_bPlayerDominatingMe.029": 0, + "m_bPlayerDominatingMe.030": 0, + "m_bPlayerDominatingMe.031": 0, + "m_bPlayerDominatingMe.032": 0, + "m_bPlayerDominatingMe.033": 0, + "m_chAreaBits.000": 248, + "m_chAreaBits.001": 102, + "m_chAreaBits.002": 0, + "m_chAreaBits.003": 0, + "m_chAreaBits.004": 0, + "m_chAreaBits.005": 0, + "m_chAreaBits.006": 0, + "m_chAreaBits.007": 0, + "m_chAreaBits.008": 0, + "m_chAreaBits.009": 0, + "m_chAreaBits.010": 0, + "m_chAreaBits.011": 0, + "m_chAreaBits.012": 0, + "m_chAreaBits.013": 0, + "m_chAreaBits.014": 0, + "m_chAreaBits.015": 0, + "m_chAreaBits.016": 0, + "m_chAreaBits.017": 0, + "m_chAreaBits.018": 0, + "m_chAreaBits.019": 0, + "m_chAreaBits.020": 0, + "m_chAreaBits.021": 0, + "m_chAreaBits.022": 0, + "m_chAreaBits.023": 0, + "m_chAreaBits.024": 0, + "m_chAreaBits.025": 0, + "m_chAreaBits.026": 0, + "m_chAreaBits.027": 0, + "m_chAreaBits.028": 0, + "m_chAreaBits.029": 0, + "m_chAreaBits.030": 0, + "m_chAreaBits.031": 0, + "m_chAreaPortalBits.000": 230, + "m_chAreaPortalBits.001": 255, + "m_chAreaPortalBits.002": 219, + "m_chAreaPortalBits.003": 121, + "m_chAreaPortalBits.004": 0, + "m_chAreaPortalBits.005": 0, + "m_chAreaPortalBits.006": 0, + "m_chAreaPortalBits.007": 0, + "m_chAreaPortalBits.008": 0, + "m_chAreaPortalBits.009": 0, + "m_chAreaPortalBits.010": 0, + "m_chAreaPortalBits.011": 0, + "m_chAreaPortalBits.012": 0, + "m_chAreaPortalBits.013": 0, + "m_chAreaPortalBits.014": 0, + "m_chAreaPortalBits.015": 0, + "m_chAreaPortalBits.016": 0, + "m_chAreaPortalBits.017": 0, + "m_chAreaPortalBits.018": 0, + "m_chAreaPortalBits.019": 0, + "m_chAreaPortalBits.020": 0, + "m_chAreaPortalBits.021": 0, + "m_chAreaPortalBits.022": 0, + "m_chAreaPortalBits.023": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_hMyWeapons.000": 1606276, + "m_hMyWeapons.001": 1587845, + "m_hMyWeapons.002": 1211014, + "m_hMyWeapons.003": 2097151, + "m_hMyWeapons.004": 2097151, + "m_hMyWeapons.005": 2097151, + "m_hMyWeapons.006": 2097151, + "m_hMyWeapons.007": 2097151, + "m_hMyWeapons.008": 2097151, + "m_hMyWeapons.009": 2097151, + "m_hMyWeapons.010": 2097151, + "m_hMyWeapons.011": 2097151, + "m_hMyWeapons.012": 2097151, + "m_hMyWeapons.013": 2097151, + "m_hMyWeapons.014": 2097151, + "m_hMyWeapons.015": 2097151, + "m_hMyWeapons.016": 2097151, + "m_hMyWeapons.017": 2097151, + "m_hMyWeapons.018": 2097151, + "m_hMyWeapons.019": 2097151, + "m_hMyWeapons.020": 2097151, + "m_hMyWeapons.021": 2097151, + "m_hMyWeapons.022": 2097151, + "m_hMyWeapons.023": 2097151, + "m_hMyWeapons.024": 2097151, + "m_hMyWeapons.025": 2097151, + "m_hMyWeapons.026": 2097151, + "m_hMyWeapons.027": 2097151, + "m_hMyWeapons.028": 2097151, + "m_hMyWeapons.029": 2097151, + "m_hMyWeapons.030": 2097151, + "m_hMyWeapons.031": 2097151, + "m_hMyWeapons.032": 2097151, + "m_hMyWeapons.033": 2097151, + "m_hMyWeapons.034": 2097151, + "m_hMyWeapons.035": 2097151, + "m_hMyWeapons.036": 2097151, + "m_hMyWeapons.037": 2097151, + "m_hMyWeapons.038": 2097151, + "m_hMyWeapons.039": 2097151, + "m_hMyWeapons.040": 2097151, + "m_hMyWeapons.041": 2097151, + "m_hMyWeapons.042": 2097151, + "m_hMyWeapons.043": 2097151, + "m_hMyWeapons.044": 2097151, + "m_hMyWeapons.045": 2097151, + "m_hMyWeapons.046": 2097151, + "m_hMyWeapons.047": 2097151, + "m_iAmmo.000": 0, + "m_iAmmo.001": 32, + "m_iAmmo.002": 36, + "m_iAmmo.003": 100, + "m_iAmmo.004": 1, + "m_iAmmo.005": 1, + "m_iAmmo.006": 1, + "m_iAmmo.007": 0, + "m_iAmmo.008": 0, + "m_iAmmo.009": 0, + "m_iAmmo.010": 0, + "m_iAmmo.011": 0, + "m_iAmmo.012": 0, + "m_iAmmo.013": 0, + "m_iAmmo.014": 0, + "m_iAmmo.015": 0, + "m_iAmmo.016": 0, + "m_iAmmo.017": 0, + "m_iAmmo.018": 0, + "m_iAmmo.019": 0, + "m_iAmmo.020": 0, + "m_iAmmo.021": 0, + "m_iAmmo.022": 0, + "m_iAmmo.023": 0, + "m_iAmmo.024": 0, + "m_iAmmo.025": 0, + "m_iAmmo.026": 0, + "m_iAmmo.027": 0, + "m_iAmmo.028": 0, + "m_iAmmo.029": 0, + "m_iAmmo.030": 0, + "m_iAmmo.031": 0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0, + "m_nStreaks.000": 0, + "m_nStreaks.001": 0, + "m_nStreaks.002": 0, + "m_nStreaks.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFTeam", + "id": 25, + "props": { + "DT_TFTeam.\"team_object_array\"": [], + "DT_TFTeam.m_hLeader": 2097151, + "DT_TFTeam.m_iRole": 0, + "DT_TFTeam.m_nFlagCaptures": 0, + "DT_Team.\"player_array\"": [], + "DT_Team.m_iRoundsWon": 0, + "DT_Team.m_iScore": 0, + "DT_Team.m_iTeamNum": 0, + "DT_Team.m_szTeamname": "Unassigned" + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFTeam", + "id": 26, + "props": { + "DT_TFTeam.\"team_object_array\"": [], + "DT_TFTeam.m_hLeader": 2097151, + "DT_TFTeam.m_iRole": 0, + "DT_TFTeam.m_nFlagCaptures": 0, + "DT_Team.\"player_array\"": [], + "DT_Team.m_iRoundsWon": 0, + "DT_Team.m_iScore": 0, + "DT_Team.m_iTeamNum": 1, + "DT_Team.m_szTeamname": "Spectator" + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFTeam", + "id": 27, + "props": { + "DT_TFTeam.\"team_object_array\"": [], + "DT_TFTeam.m_hLeader": 1972225, + "DT_TFTeam.m_iRole": 0, + "DT_TFTeam.m_nFlagCaptures": 0, + "DT_Team.\"player_array\"": [ + 1 + ], + "DT_Team.m_iRoundsWon": 0, + "DT_Team.m_iScore": 0, + "DT_Team.m_iTeamNum": 2, + "DT_Team.m_szTeamname": "Red" + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFTeam", + "id": 28, + "props": { + "DT_TFTeam.\"team_object_array\"": [], + "DT_TFTeam.m_hLeader": 2097151, + "DT_TFTeam.m_iRole": 0, + "DT_TFTeam.m_nFlagCaptures": 0, + "DT_Team.\"player_array\"": [], + "DT_Team.m_iRoundsWon": 0, + "DT_Team.m_iScore": 0, + "DT_Team.m_iTeamNum": 3, + "DT_Team.m_szTeamname": "Blue" + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFPlayerResource", + "id": 30, + "props": { + "m_bAlive.000": 0, + "m_bAlive.001": 1, + "m_bAlive.002": 0, + "m_bAlive.003": 0, + "m_bAlive.004": 0, + "m_bAlive.005": 0, + "m_bAlive.006": 0, + "m_bAlive.007": 0, + "m_bAlive.008": 0, + "m_bAlive.009": 0, + "m_bAlive.010": 0, + "m_bAlive.011": 0, + "m_bAlive.012": 0, + "m_bAlive.013": 0, + "m_bAlive.014": 0, + "m_bAlive.015": 0, + "m_bAlive.016": 0, + "m_bAlive.017": 0, + "m_bAlive.018": 0, + "m_bAlive.019": 0, + "m_bAlive.020": 0, + "m_bAlive.021": 0, + "m_bAlive.022": 0, + "m_bAlive.023": 0, + "m_bAlive.024": 0, + "m_bAlive.025": 0, + "m_bAlive.026": 0, + "m_bAlive.027": 0, + "m_bAlive.028": 0, + "m_bAlive.029": 0, + "m_bAlive.030": 0, + "m_bAlive.031": 0, + "m_bAlive.032": 0, + "m_bAlive.033": 0, + "m_bArenaSpectator.000": 0, + "m_bArenaSpectator.001": 0, + "m_bArenaSpectator.002": 0, + "m_bArenaSpectator.003": 0, + "m_bArenaSpectator.004": 0, + "m_bArenaSpectator.005": 0, + "m_bArenaSpectator.006": 0, + "m_bArenaSpectator.007": 0, + "m_bArenaSpectator.008": 0, + "m_bArenaSpectator.009": 0, + "m_bArenaSpectator.010": 0, + "m_bArenaSpectator.011": 0, + "m_bArenaSpectator.012": 0, + "m_bArenaSpectator.013": 0, + "m_bArenaSpectator.014": 0, + "m_bArenaSpectator.015": 0, + "m_bArenaSpectator.016": 0, + "m_bArenaSpectator.017": 0, + "m_bArenaSpectator.018": 0, + "m_bArenaSpectator.019": 0, + "m_bArenaSpectator.020": 0, + "m_bArenaSpectator.021": 0, + "m_bArenaSpectator.022": 0, + "m_bArenaSpectator.023": 0, + "m_bArenaSpectator.024": 0, + "m_bArenaSpectator.025": 0, + "m_bArenaSpectator.026": 0, + "m_bArenaSpectator.027": 0, + "m_bArenaSpectator.028": 0, + "m_bArenaSpectator.029": 0, + "m_bArenaSpectator.030": 0, + "m_bArenaSpectator.031": 0, + "m_bArenaSpectator.032": 0, + "m_bArenaSpectator.033": 0, + "m_bConnected.000": 0, + "m_bConnected.001": 1, + "m_bConnected.002": 0, + "m_bConnected.003": 0, + "m_bConnected.004": 0, + "m_bConnected.005": 0, + "m_bConnected.006": 0, + "m_bConnected.007": 0, + "m_bConnected.008": 0, + "m_bConnected.009": 0, + "m_bConnected.010": 0, + "m_bConnected.011": 0, + "m_bConnected.012": 0, + "m_bConnected.013": 0, + "m_bConnected.014": 0, + "m_bConnected.015": 0, + "m_bConnected.016": 0, + "m_bConnected.017": 0, + "m_bConnected.018": 0, + "m_bConnected.019": 0, + "m_bConnected.020": 0, + "m_bConnected.021": 0, + "m_bConnected.022": 0, + "m_bConnected.023": 0, + "m_bConnected.024": 0, + "m_bConnected.025": 0, + "m_bConnected.026": 0, + "m_bConnected.027": 0, + "m_bConnected.028": 0, + "m_bConnected.029": 0, + "m_bConnected.030": 0, + "m_bConnected.031": 0, + "m_bConnected.032": 0, + "m_bConnected.033": 0, + "m_flNextRespawnTime.000": 0.0, + "m_flNextRespawnTime.001": 0.0, + "m_flNextRespawnTime.002": 0.0, + "m_flNextRespawnTime.003": 0.0, + "m_flNextRespawnTime.004": 0.0, + "m_flNextRespawnTime.005": 0.0, + "m_flNextRespawnTime.006": 0.0, + "m_flNextRespawnTime.007": 0.0, + "m_flNextRespawnTime.008": 0.0, + "m_flNextRespawnTime.009": 0.0, + "m_flNextRespawnTime.010": 0.0, + "m_flNextRespawnTime.011": 0.0, + "m_flNextRespawnTime.012": 0.0, + "m_flNextRespawnTime.013": 0.0, + "m_flNextRespawnTime.014": 0.0, + "m_flNextRespawnTime.015": 0.0, + "m_flNextRespawnTime.016": 0.0, + "m_flNextRespawnTime.017": 0.0, + "m_flNextRespawnTime.018": 0.0, + "m_flNextRespawnTime.019": 0.0, + "m_flNextRespawnTime.020": 0.0, + "m_flNextRespawnTime.021": 0.0, + "m_flNextRespawnTime.022": 0.0, + "m_flNextRespawnTime.023": 0.0, + "m_flNextRespawnTime.024": 0.0, + "m_flNextRespawnTime.025": 0.0, + "m_flNextRespawnTime.026": 0.0, + "m_flNextRespawnTime.027": 0.0, + "m_flNextRespawnTime.028": 0.0, + "m_flNextRespawnTime.029": 0.0, + "m_flNextRespawnTime.030": 0.0, + "m_flNextRespawnTime.031": 0.0, + "m_flNextRespawnTime.032": 0.0, + "m_flNextRespawnTime.033": 0.0, + "m_iActiveDominations.000": 0, + "m_iActiveDominations.001": 0, + "m_iActiveDominations.002": 0, + "m_iActiveDominations.003": 0, + "m_iActiveDominations.004": 0, + "m_iActiveDominations.005": 0, + "m_iActiveDominations.006": 0, + "m_iActiveDominations.007": 0, + "m_iActiveDominations.008": 0, + "m_iActiveDominations.009": 0, + "m_iActiveDominations.010": 0, + "m_iActiveDominations.011": 0, + "m_iActiveDominations.012": 0, + "m_iActiveDominations.013": 0, + "m_iActiveDominations.014": 0, + "m_iActiveDominations.015": 0, + "m_iActiveDominations.016": 0, + "m_iActiveDominations.017": 0, + "m_iActiveDominations.018": 0, + "m_iActiveDominations.019": 0, + "m_iActiveDominations.020": 0, + "m_iActiveDominations.021": 0, + "m_iActiveDominations.022": 0, + "m_iActiveDominations.023": 0, + "m_iActiveDominations.024": 0, + "m_iActiveDominations.025": 0, + "m_iActiveDominations.026": 0, + "m_iActiveDominations.027": 0, + "m_iActiveDominations.028": 0, + "m_iActiveDominations.029": 0, + "m_iActiveDominations.030": 0, + "m_iActiveDominations.031": 0, + "m_iActiveDominations.032": 0, + "m_iActiveDominations.033": 0, + "m_iBonusPoints.000": 0, + "m_iBonusPoints.001": 0, + "m_iBonusPoints.002": 0, + "m_iBonusPoints.003": 0, + "m_iBonusPoints.004": 0, + "m_iBonusPoints.005": 0, + "m_iBonusPoints.006": 0, + "m_iBonusPoints.007": 0, + "m_iBonusPoints.008": 0, + "m_iBonusPoints.009": 0, + "m_iBonusPoints.010": 0, + "m_iBonusPoints.011": 0, + "m_iBonusPoints.012": 0, + "m_iBonusPoints.013": 0, + "m_iBonusPoints.014": 0, + "m_iBonusPoints.015": 0, + "m_iBonusPoints.016": 0, + "m_iBonusPoints.017": 0, + "m_iBonusPoints.018": 0, + "m_iBonusPoints.019": 0, + "m_iBonusPoints.020": 0, + "m_iBonusPoints.021": 0, + "m_iBonusPoints.022": 0, + "m_iBonusPoints.023": 0, + "m_iBonusPoints.024": 0, + "m_iBonusPoints.025": 0, + "m_iBonusPoints.026": 0, + "m_iBonusPoints.027": 0, + "m_iBonusPoints.028": 0, + "m_iBonusPoints.029": 0, + "m_iBonusPoints.030": 0, + "m_iBonusPoints.031": 0, + "m_iBonusPoints.032": 0, + "m_iBonusPoints.033": 0, + "m_iChargeLevel.000": 0, + "m_iChargeLevel.001": 0, + "m_iChargeLevel.002": 0, + "m_iChargeLevel.003": 0, + "m_iChargeLevel.004": 0, + "m_iChargeLevel.005": 0, + "m_iChargeLevel.006": 0, + "m_iChargeLevel.007": 0, + "m_iChargeLevel.008": 0, + "m_iChargeLevel.009": 0, + "m_iChargeLevel.010": 0, + "m_iChargeLevel.011": 0, + "m_iChargeLevel.012": 0, + "m_iChargeLevel.013": 0, + "m_iChargeLevel.014": 0, + "m_iChargeLevel.015": 0, + "m_iChargeLevel.016": 0, + "m_iChargeLevel.017": 0, + "m_iChargeLevel.018": 0, + "m_iChargeLevel.019": 0, + "m_iChargeLevel.020": 0, + "m_iChargeLevel.021": 0, + "m_iChargeLevel.022": 0, + "m_iChargeLevel.023": 0, + "m_iChargeLevel.024": 0, + "m_iChargeLevel.025": 0, + "m_iChargeLevel.026": 0, + "m_iChargeLevel.027": 0, + "m_iChargeLevel.028": 0, + "m_iChargeLevel.029": 0, + "m_iChargeLevel.030": 0, + "m_iChargeLevel.031": 0, + "m_iChargeLevel.032": 0, + "m_iChargeLevel.033": 0, + "m_iCurrencyCollected.000": 0, + "m_iCurrencyCollected.001": 0, + "m_iCurrencyCollected.002": 0, + "m_iCurrencyCollected.003": 0, + "m_iCurrencyCollected.004": 0, + "m_iCurrencyCollected.005": 0, + "m_iCurrencyCollected.006": 0, + "m_iCurrencyCollected.007": 0, + "m_iCurrencyCollected.008": 0, + "m_iCurrencyCollected.009": 0, + "m_iCurrencyCollected.010": 0, + "m_iCurrencyCollected.011": 0, + "m_iCurrencyCollected.012": 0, + "m_iCurrencyCollected.013": 0, + "m_iCurrencyCollected.014": 0, + "m_iCurrencyCollected.015": 0, + "m_iCurrencyCollected.016": 0, + "m_iCurrencyCollected.017": 0, + "m_iCurrencyCollected.018": 0, + "m_iCurrencyCollected.019": 0, + "m_iCurrencyCollected.020": 0, + "m_iCurrencyCollected.021": 0, + "m_iCurrencyCollected.022": 0, + "m_iCurrencyCollected.023": 0, + "m_iCurrencyCollected.024": 0, + "m_iCurrencyCollected.025": 0, + "m_iCurrencyCollected.026": 0, + "m_iCurrencyCollected.027": 0, + "m_iCurrencyCollected.028": 0, + "m_iCurrencyCollected.029": 0, + "m_iCurrencyCollected.030": 0, + "m_iCurrencyCollected.031": 0, + "m_iCurrencyCollected.032": 0, + "m_iCurrencyCollected.033": 0, + "m_iDamage.000": 0, + "m_iDamage.001": 0, + "m_iDamage.002": 0, + "m_iDamage.003": 0, + "m_iDamage.004": 0, + "m_iDamage.005": 0, + "m_iDamage.006": 0, + "m_iDamage.007": 0, + "m_iDamage.008": 0, + "m_iDamage.009": 0, + "m_iDamage.010": 0, + "m_iDamage.011": 0, + "m_iDamage.012": 0, + "m_iDamage.013": 0, + "m_iDamage.014": 0, + "m_iDamage.015": 0, + "m_iDamage.016": 0, + "m_iDamage.017": 0, + "m_iDamage.018": 0, + "m_iDamage.019": 0, + "m_iDamage.020": 0, + "m_iDamage.021": 0, + "m_iDamage.022": 0, + "m_iDamage.023": 0, + "m_iDamage.024": 0, + "m_iDamage.025": 0, + "m_iDamage.026": 0, + "m_iDamage.027": 0, + "m_iDamage.028": 0, + "m_iDamage.029": 0, + "m_iDamage.030": 0, + "m_iDamage.031": 0, + "m_iDamage.032": 0, + "m_iDamage.033": 0, + "m_iDamageAssist.000": 0, + "m_iDamageAssist.001": 0, + "m_iDamageAssist.002": 0, + "m_iDamageAssist.003": 0, + "m_iDamageAssist.004": 0, + "m_iDamageAssist.005": 0, + "m_iDamageAssist.006": 0, + "m_iDamageAssist.007": 0, + "m_iDamageAssist.008": 0, + "m_iDamageAssist.009": 0, + "m_iDamageAssist.010": 0, + "m_iDamageAssist.011": 0, + "m_iDamageAssist.012": 0, + "m_iDamageAssist.013": 0, + "m_iDamageAssist.014": 0, + "m_iDamageAssist.015": 0, + "m_iDamageAssist.016": 0, + "m_iDamageAssist.017": 0, + "m_iDamageAssist.018": 0, + "m_iDamageAssist.019": 0, + "m_iDamageAssist.020": 0, + "m_iDamageAssist.021": 0, + "m_iDamageAssist.022": 0, + "m_iDamageAssist.023": 0, + "m_iDamageAssist.024": 0, + "m_iDamageAssist.025": 0, + "m_iDamageAssist.026": 0, + "m_iDamageAssist.027": 0, + "m_iDamageAssist.028": 0, + "m_iDamageAssist.029": 0, + "m_iDamageAssist.030": 0, + "m_iDamageAssist.031": 0, + "m_iDamageAssist.032": 0, + "m_iDamageAssist.033": 0, + "m_iDamageBlocked.000": 0, + "m_iDamageBlocked.001": 0, + "m_iDamageBlocked.002": 0, + "m_iDamageBlocked.003": 0, + "m_iDamageBlocked.004": 0, + "m_iDamageBlocked.005": 0, + "m_iDamageBlocked.006": 0, + "m_iDamageBlocked.007": 0, + "m_iDamageBlocked.008": 0, + "m_iDamageBlocked.009": 0, + "m_iDamageBlocked.010": 0, + "m_iDamageBlocked.011": 0, + "m_iDamageBlocked.012": 0, + "m_iDamageBlocked.013": 0, + "m_iDamageBlocked.014": 0, + "m_iDamageBlocked.015": 0, + "m_iDamageBlocked.016": 0, + "m_iDamageBlocked.017": 0, + "m_iDamageBlocked.018": 0, + "m_iDamageBlocked.019": 0, + "m_iDamageBlocked.020": 0, + "m_iDamageBlocked.021": 0, + "m_iDamageBlocked.022": 0, + "m_iDamageBlocked.023": 0, + "m_iDamageBlocked.024": 0, + "m_iDamageBlocked.025": 0, + "m_iDamageBlocked.026": 0, + "m_iDamageBlocked.027": 0, + "m_iDamageBlocked.028": 0, + "m_iDamageBlocked.029": 0, + "m_iDamageBlocked.030": 0, + "m_iDamageBlocked.031": 0, + "m_iDamageBlocked.032": 0, + "m_iDamageBlocked.033": 0, + "m_iDamageBoss.000": 0, + "m_iDamageBoss.001": 0, + "m_iDamageBoss.002": 0, + "m_iDamageBoss.003": 0, + "m_iDamageBoss.004": 0, + "m_iDamageBoss.005": 0, + "m_iDamageBoss.006": 0, + "m_iDamageBoss.007": 0, + "m_iDamageBoss.008": 0, + "m_iDamageBoss.009": 0, + "m_iDamageBoss.010": 0, + "m_iDamageBoss.011": 0, + "m_iDamageBoss.012": 0, + "m_iDamageBoss.013": 0, + "m_iDamageBoss.014": 0, + "m_iDamageBoss.015": 0, + "m_iDamageBoss.016": 0, + "m_iDamageBoss.017": 0, + "m_iDamageBoss.018": 0, + "m_iDamageBoss.019": 0, + "m_iDamageBoss.020": 0, + "m_iDamageBoss.021": 0, + "m_iDamageBoss.022": 0, + "m_iDamageBoss.023": 0, + "m_iDamageBoss.024": 0, + "m_iDamageBoss.025": 0, + "m_iDamageBoss.026": 0, + "m_iDamageBoss.027": 0, + "m_iDamageBoss.028": 0, + "m_iDamageBoss.029": 0, + "m_iDamageBoss.030": 0, + "m_iDamageBoss.031": 0, + "m_iDamageBoss.032": 0, + "m_iDamageBoss.033": 0, + "m_iDeaths.000": 0, + "m_iDeaths.001": 0, + "m_iDeaths.002": 0, + "m_iDeaths.003": 0, + "m_iDeaths.004": 0, + "m_iDeaths.005": 0, + "m_iDeaths.006": 0, + "m_iDeaths.007": 0, + "m_iDeaths.008": 0, + "m_iDeaths.009": 0, + "m_iDeaths.010": 0, + "m_iDeaths.011": 0, + "m_iDeaths.012": 0, + "m_iDeaths.013": 0, + "m_iDeaths.014": 0, + "m_iDeaths.015": 0, + "m_iDeaths.016": 0, + "m_iDeaths.017": 0, + "m_iDeaths.018": 0, + "m_iDeaths.019": 0, + "m_iDeaths.020": 0, + "m_iDeaths.021": 0, + "m_iDeaths.022": 0, + "m_iDeaths.023": 0, + "m_iDeaths.024": 0, + "m_iDeaths.025": 0, + "m_iDeaths.026": 0, + "m_iDeaths.027": 0, + "m_iDeaths.028": 0, + "m_iDeaths.029": 0, + "m_iDeaths.030": 0, + "m_iDeaths.031": 0, + "m_iDeaths.032": 0, + "m_iDeaths.033": 0, + "m_iHealing.000": 0, + "m_iHealing.001": 0, + "m_iHealing.002": 0, + "m_iHealing.003": 0, + "m_iHealing.004": 0, + "m_iHealing.005": 0, + "m_iHealing.006": 0, + "m_iHealing.007": 0, + "m_iHealing.008": 0, + "m_iHealing.009": 0, + "m_iHealing.010": 0, + "m_iHealing.011": 0, + "m_iHealing.012": 0, + "m_iHealing.013": 0, + "m_iHealing.014": 0, + "m_iHealing.015": 0, + "m_iHealing.016": 0, + "m_iHealing.017": 0, + "m_iHealing.018": 0, + "m_iHealing.019": 0, + "m_iHealing.020": 0, + "m_iHealing.021": 0, + "m_iHealing.022": 0, + "m_iHealing.023": 0, + "m_iHealing.024": 0, + "m_iHealing.025": 0, + "m_iHealing.026": 0, + "m_iHealing.027": 0, + "m_iHealing.028": 0, + "m_iHealing.029": 0, + "m_iHealing.030": 0, + "m_iHealing.031": 0, + "m_iHealing.032": 0, + "m_iHealing.033": 0, + "m_iHealingAssist.000": 0, + "m_iHealingAssist.001": 0, + "m_iHealingAssist.002": 0, + "m_iHealingAssist.003": 0, + "m_iHealingAssist.004": 0, + "m_iHealingAssist.005": 0, + "m_iHealingAssist.006": 0, + "m_iHealingAssist.007": 0, + "m_iHealingAssist.008": 0, + "m_iHealingAssist.009": 0, + "m_iHealingAssist.010": 0, + "m_iHealingAssist.011": 0, + "m_iHealingAssist.012": 0, + "m_iHealingAssist.013": 0, + "m_iHealingAssist.014": 0, + "m_iHealingAssist.015": 0, + "m_iHealingAssist.016": 0, + "m_iHealingAssist.017": 0, + "m_iHealingAssist.018": 0, + "m_iHealingAssist.019": 0, + "m_iHealingAssist.020": 0, + "m_iHealingAssist.021": 0, + "m_iHealingAssist.022": 0, + "m_iHealingAssist.023": 0, + "m_iHealingAssist.024": 0, + "m_iHealingAssist.025": 0, + "m_iHealingAssist.026": 0, + "m_iHealingAssist.027": 0, + "m_iHealingAssist.028": 0, + "m_iHealingAssist.029": 0, + "m_iHealingAssist.030": 0, + "m_iHealingAssist.031": 0, + "m_iHealingAssist.032": 0, + "m_iHealingAssist.033": 0, + "m_iHealth.000": 0, + "m_iHealth.001": 125, + "m_iHealth.002": 0, + "m_iHealth.003": 0, + "m_iHealth.004": 0, + "m_iHealth.005": 0, + "m_iHealth.006": 0, + "m_iHealth.007": 0, + "m_iHealth.008": 0, + "m_iHealth.009": 0, + "m_iHealth.010": 0, + "m_iHealth.011": 0, + "m_iHealth.012": 0, + "m_iHealth.013": 0, + "m_iHealth.014": 0, + "m_iHealth.015": 0, + "m_iHealth.016": 0, + "m_iHealth.017": 0, + "m_iHealth.018": 0, + "m_iHealth.019": 0, + "m_iHealth.020": 0, + "m_iHealth.021": 0, + "m_iHealth.022": 0, + "m_iHealth.023": 0, + "m_iHealth.024": 0, + "m_iHealth.025": 0, + "m_iHealth.026": 0, + "m_iHealth.027": 0, + "m_iHealth.028": 0, + "m_iHealth.029": 0, + "m_iHealth.030": 0, + "m_iHealth.031": 0, + "m_iHealth.032": 0, + "m_iHealth.033": 0, + "m_iMaxBuffedHealth.000": 1, + "m_iMaxBuffedHealth.001": 125, + "m_iMaxBuffedHealth.002": 1, + "m_iMaxBuffedHealth.003": 1, + "m_iMaxBuffedHealth.004": 1, + "m_iMaxBuffedHealth.005": 1, + "m_iMaxBuffedHealth.006": 1, + "m_iMaxBuffedHealth.007": 1, + "m_iMaxBuffedHealth.008": 1, + "m_iMaxBuffedHealth.009": 1, + "m_iMaxBuffedHealth.010": 1, + "m_iMaxBuffedHealth.011": 1, + "m_iMaxBuffedHealth.012": 1, + "m_iMaxBuffedHealth.013": 1, + "m_iMaxBuffedHealth.014": 1, + "m_iMaxBuffedHealth.015": 1, + "m_iMaxBuffedHealth.016": 1, + "m_iMaxBuffedHealth.017": 1, + "m_iMaxBuffedHealth.018": 1, + "m_iMaxBuffedHealth.019": 1, + "m_iMaxBuffedHealth.020": 1, + "m_iMaxBuffedHealth.021": 1, + "m_iMaxBuffedHealth.022": 1, + "m_iMaxBuffedHealth.023": 1, + "m_iMaxBuffedHealth.024": 1, + "m_iMaxBuffedHealth.025": 1, + "m_iMaxBuffedHealth.026": 1, + "m_iMaxBuffedHealth.027": 1, + "m_iMaxBuffedHealth.028": 1, + "m_iMaxBuffedHealth.029": 1, + "m_iMaxBuffedHealth.030": 1, + "m_iMaxBuffedHealth.031": 1, + "m_iMaxBuffedHealth.032": 1, + "m_iMaxBuffedHealth.033": 1, + "m_iMaxHealth.000": 1, + "m_iMaxHealth.001": 125, + "m_iMaxHealth.002": 1, + "m_iMaxHealth.003": 1, + "m_iMaxHealth.004": 1, + "m_iMaxHealth.005": 1, + "m_iMaxHealth.006": 1, + "m_iMaxHealth.007": 1, + "m_iMaxHealth.008": 1, + "m_iMaxHealth.009": 1, + "m_iMaxHealth.010": 1, + "m_iMaxHealth.011": 1, + "m_iMaxHealth.012": 1, + "m_iMaxHealth.013": 1, + "m_iMaxHealth.014": 1, + "m_iMaxHealth.015": 1, + "m_iMaxHealth.016": 1, + "m_iMaxHealth.017": 1, + "m_iMaxHealth.018": 1, + "m_iMaxHealth.019": 1, + "m_iMaxHealth.020": 1, + "m_iMaxHealth.021": 1, + "m_iMaxHealth.022": 1, + "m_iMaxHealth.023": 1, + "m_iMaxHealth.024": 1, + "m_iMaxHealth.025": 1, + "m_iMaxHealth.026": 1, + "m_iMaxHealth.027": 1, + "m_iMaxHealth.028": 1, + "m_iMaxHealth.029": 1, + "m_iMaxHealth.030": 1, + "m_iMaxHealth.031": 1, + "m_iMaxHealth.032": 1, + "m_iMaxHealth.033": 1, + "m_iPing.000": 0, + "m_iPing.001": 5, + "m_iPing.002": 0, + "m_iPing.003": 0, + "m_iPing.004": 0, + "m_iPing.005": 0, + "m_iPing.006": 0, + "m_iPing.007": 0, + "m_iPing.008": 0, + "m_iPing.009": 0, + "m_iPing.010": 0, + "m_iPing.011": 0, + "m_iPing.012": 0, + "m_iPing.013": 0, + "m_iPing.014": 0, + "m_iPing.015": 0, + "m_iPing.016": 0, + "m_iPing.017": 0, + "m_iPing.018": 0, + "m_iPing.019": 0, + "m_iPing.020": 0, + "m_iPing.021": 0, + "m_iPing.022": 0, + "m_iPing.023": 0, + "m_iPing.024": 0, + "m_iPing.025": 0, + "m_iPing.026": 0, + "m_iPing.027": 0, + "m_iPing.028": 0, + "m_iPing.029": 0, + "m_iPing.030": 0, + "m_iPing.031": 0, + "m_iPing.032": 0, + "m_iPing.033": 0, + "m_iPlayerClass.000": 0, + "m_iPlayerClass.001": 1, + "m_iPlayerClass.002": 0, + "m_iPlayerClass.003": 0, + "m_iPlayerClass.004": 0, + "m_iPlayerClass.005": 0, + "m_iPlayerClass.006": 0, + "m_iPlayerClass.007": 0, + "m_iPlayerClass.008": 0, + "m_iPlayerClass.009": 0, + "m_iPlayerClass.010": 0, + "m_iPlayerClass.011": 0, + "m_iPlayerClass.012": 0, + "m_iPlayerClass.013": 0, + "m_iPlayerClass.014": 0, + "m_iPlayerClass.015": 0, + "m_iPlayerClass.016": 0, + "m_iPlayerClass.017": 0, + "m_iPlayerClass.018": 0, + "m_iPlayerClass.019": 0, + "m_iPlayerClass.020": 0, + "m_iPlayerClass.021": 0, + "m_iPlayerClass.022": 0, + "m_iPlayerClass.023": 0, + "m_iPlayerClass.024": 0, + "m_iPlayerClass.025": 0, + "m_iPlayerClass.026": 0, + "m_iPlayerClass.027": 0, + "m_iPlayerClass.028": 0, + "m_iPlayerClass.029": 0, + "m_iPlayerClass.030": 0, + "m_iPlayerClass.031": 0, + "m_iPlayerClass.032": 0, + "m_iPlayerClass.033": 0, + "m_iPlayerLevel.000": 0, + "m_iPlayerLevel.001": 1, + "m_iPlayerLevel.002": 0, + "m_iPlayerLevel.003": 0, + "m_iPlayerLevel.004": 0, + "m_iPlayerLevel.005": 0, + "m_iPlayerLevel.006": 0, + "m_iPlayerLevel.007": 0, + "m_iPlayerLevel.008": 0, + "m_iPlayerLevel.009": 0, + "m_iPlayerLevel.010": 0, + "m_iPlayerLevel.011": 0, + "m_iPlayerLevel.012": 0, + "m_iPlayerLevel.013": 0, + "m_iPlayerLevel.014": 0, + "m_iPlayerLevel.015": 0, + "m_iPlayerLevel.016": 0, + "m_iPlayerLevel.017": 0, + "m_iPlayerLevel.018": 0, + "m_iPlayerLevel.019": 0, + "m_iPlayerLevel.020": 0, + "m_iPlayerLevel.021": 0, + "m_iPlayerLevel.022": 0, + "m_iPlayerLevel.023": 0, + "m_iPlayerLevel.024": 0, + "m_iPlayerLevel.025": 0, + "m_iPlayerLevel.026": 0, + "m_iPlayerLevel.027": 0, + "m_iPlayerLevel.028": 0, + "m_iPlayerLevel.029": 0, + "m_iPlayerLevel.030": 0, + "m_iPlayerLevel.031": 0, + "m_iPlayerLevel.032": 0, + "m_iPlayerLevel.033": 0, + "m_iScore.000": 0, + "m_iScore.001": 0, + "m_iScore.002": 0, + "m_iScore.003": 0, + "m_iScore.004": 0, + "m_iScore.005": 0, + "m_iScore.006": 0, + "m_iScore.007": 0, + "m_iScore.008": 0, + "m_iScore.009": 0, + "m_iScore.010": 0, + "m_iScore.011": 0, + "m_iScore.012": 0, + "m_iScore.013": 0, + "m_iScore.014": 0, + "m_iScore.015": 0, + "m_iScore.016": 0, + "m_iScore.017": 0, + "m_iScore.018": 0, + "m_iScore.019": 0, + "m_iScore.020": 0, + "m_iScore.021": 0, + "m_iScore.022": 0, + "m_iScore.023": 0, + "m_iScore.024": 0, + "m_iScore.025": 0, + "m_iScore.026": 0, + "m_iScore.027": 0, + "m_iScore.028": 0, + "m_iScore.029": 0, + "m_iScore.030": 0, + "m_iScore.031": 0, + "m_iScore.032": 0, + "m_iScore.033": 0, + "m_iStreaks.000": 0, + "m_iStreaks.001": 0, + "m_iStreaks.002": 0, + "m_iStreaks.003": 0, + "m_iStreaks.004": 0, + "m_iStreaks.005": 0, + "m_iStreaks.006": 0, + "m_iStreaks.007": 0, + "m_iStreaks.008": 0, + "m_iStreaks.009": 0, + "m_iStreaks.010": 0, + "m_iStreaks.011": 0, + "m_iStreaks.012": 0, + "m_iStreaks.013": 0, + "m_iStreaks.014": 0, + "m_iStreaks.015": 0, + "m_iStreaks.016": 0, + "m_iStreaks.017": 0, + "m_iStreaks.018": 0, + "m_iStreaks.019": 0, + "m_iStreaks.020": 0, + "m_iStreaks.021": 0, + "m_iStreaks.022": 0, + "m_iStreaks.023": 0, + "m_iStreaks.024": 0, + "m_iStreaks.025": 0, + "m_iStreaks.026": 0, + "m_iStreaks.027": 0, + "m_iStreaks.028": 0, + "m_iStreaks.029": 0, + "m_iStreaks.030": 0, + "m_iStreaks.031": 0, + "m_iStreaks.032": 0, + "m_iStreaks.033": 0, + "m_iStreaks.034": 0, + "m_iStreaks.035": 0, + "m_iStreaks.036": 0, + "m_iStreaks.037": 0, + "m_iStreaks.038": 0, + "m_iStreaks.039": 0, + "m_iStreaks.040": 0, + "m_iStreaks.041": 0, + "m_iStreaks.042": 0, + "m_iStreaks.043": 0, + "m_iStreaks.044": 0, + "m_iStreaks.045": 0, + "m_iStreaks.046": 0, + "m_iStreaks.047": 0, + "m_iStreaks.048": 0, + "m_iStreaks.049": 0, + "m_iStreaks.050": 0, + "m_iStreaks.051": 0, + "m_iStreaks.052": 0, + "m_iStreaks.053": 0, + "m_iStreaks.054": 0, + "m_iStreaks.055": 0, + "m_iStreaks.056": 0, + "m_iStreaks.057": 0, + "m_iStreaks.058": 0, + "m_iStreaks.059": 0, + "m_iStreaks.060": 0, + "m_iStreaks.061": 0, + "m_iStreaks.062": 0, + "m_iStreaks.063": 0, + "m_iStreaks.064": 0, + "m_iStreaks.065": 0, + "m_iStreaks.066": 0, + "m_iStreaks.067": 0, + "m_iStreaks.068": 0, + "m_iStreaks.069": 0, + "m_iStreaks.070": 0, + "m_iStreaks.071": 0, + "m_iStreaks.072": 0, + "m_iStreaks.073": 0, + "m_iStreaks.074": 0, + "m_iStreaks.075": 0, + "m_iStreaks.076": 0, + "m_iStreaks.077": 0, + "m_iStreaks.078": 0, + "m_iStreaks.079": 0, + "m_iStreaks.080": 0, + "m_iStreaks.081": 0, + "m_iStreaks.082": 0, + "m_iStreaks.083": 0, + "m_iStreaks.084": 0, + "m_iStreaks.085": 0, + "m_iStreaks.086": 0, + "m_iStreaks.087": 0, + "m_iStreaks.088": 0, + "m_iStreaks.089": 0, + "m_iStreaks.090": 0, + "m_iStreaks.091": 0, + "m_iStreaks.092": 0, + "m_iStreaks.093": 0, + "m_iStreaks.094": 0, + "m_iStreaks.095": 0, + "m_iStreaks.096": 0, + "m_iStreaks.097": 0, + "m_iStreaks.098": 0, + "m_iStreaks.099": 0, + "m_iStreaks.100": 0, + "m_iStreaks.101": 0, + "m_iStreaks.102": 0, + "m_iStreaks.103": 0, + "m_iStreaks.104": 0, + "m_iStreaks.105": 0, + "m_iStreaks.106": 0, + "m_iStreaks.107": 0, + "m_iStreaks.108": 0, + "m_iStreaks.109": 0, + "m_iStreaks.110": 0, + "m_iStreaks.111": 0, + "m_iStreaks.112": 0, + "m_iStreaks.113": 0, + "m_iStreaks.114": 0, + "m_iStreaks.115": 0, + "m_iStreaks.116": 0, + "m_iStreaks.117": 0, + "m_iStreaks.118": 0, + "m_iStreaks.119": 0, + "m_iStreaks.120": 0, + "m_iStreaks.121": 0, + "m_iStreaks.122": 0, + "m_iStreaks.123": 0, + "m_iStreaks.124": 0, + "m_iStreaks.125": 0, + "m_iStreaks.126": 0, + "m_iStreaks.127": 0, + "m_iStreaks.128": 0, + "m_iStreaks.129": 0, + "m_iStreaks.130": 0, + "m_iStreaks.131": 0, + "m_iStreaks.132": 0, + "m_iStreaks.133": 0, + "m_iStreaks.134": 0, + "m_iStreaks.135": 0, + "m_iTeam.000": 0, + "m_iTeam.001": 2, + "m_iTeam.002": 0, + "m_iTeam.003": 0, + "m_iTeam.004": 0, + "m_iTeam.005": 0, + "m_iTeam.006": 0, + "m_iTeam.007": 0, + "m_iTeam.008": 0, + "m_iTeam.009": 0, + "m_iTeam.010": 0, + "m_iTeam.011": 0, + "m_iTeam.012": 0, + "m_iTeam.013": 0, + "m_iTeam.014": 0, + "m_iTeam.015": 0, + "m_iTeam.016": 0, + "m_iTeam.017": 0, + "m_iTeam.018": 0, + "m_iTeam.019": 0, + "m_iTeam.020": 0, + "m_iTeam.021": 0, + "m_iTeam.022": 0, + "m_iTeam.023": 0, + "m_iTeam.024": 0, + "m_iTeam.025": 0, + "m_iTeam.026": 0, + "m_iTeam.027": 0, + "m_iTeam.028": 0, + "m_iTeam.029": 0, + "m_iTeam.030": 0, + "m_iTeam.031": 0, + "m_iTeam.032": 0, + "m_iTeam.033": 0, + "m_iTotalScore.000": 0, + "m_iTotalScore.001": 0, + "m_iTotalScore.002": 0, + "m_iTotalScore.003": 0, + "m_iTotalScore.004": 0, + "m_iTotalScore.005": 0, + "m_iTotalScore.006": 0, + "m_iTotalScore.007": 0, + "m_iTotalScore.008": 0, + "m_iTotalScore.009": 0, + "m_iTotalScore.010": 0, + "m_iTotalScore.011": 0, + "m_iTotalScore.012": 0, + "m_iTotalScore.013": 0, + "m_iTotalScore.014": 0, + "m_iTotalScore.015": 0, + "m_iTotalScore.016": 0, + "m_iTotalScore.017": 0, + "m_iTotalScore.018": 0, + "m_iTotalScore.019": 0, + "m_iTotalScore.020": 0, + "m_iTotalScore.021": 0, + "m_iTotalScore.022": 0, + "m_iTotalScore.023": 0, + "m_iTotalScore.024": 0, + "m_iTotalScore.025": 0, + "m_iTotalScore.026": 0, + "m_iTotalScore.027": 0, + "m_iTotalScore.028": 0, + "m_iTotalScore.029": 0, + "m_iTotalScore.030": 0, + "m_iTotalScore.031": 0, + "m_iTotalScore.032": 0, + "m_iTotalScore.033": 0, + "m_iUpgradeRefundCredits.000": 0, + "m_iUpgradeRefundCredits.001": 0, + "m_iUpgradeRefundCredits.002": 0, + "m_iUpgradeRefundCredits.003": 0, + "m_iUpgradeRefundCredits.004": 0, + "m_iUpgradeRefundCredits.005": 0, + "m_iUpgradeRefundCredits.006": 0, + "m_iUpgradeRefundCredits.007": 0, + "m_iUpgradeRefundCredits.008": 0, + "m_iUpgradeRefundCredits.009": 0, + "m_iUpgradeRefundCredits.010": 0, + "m_iUpgradeRefundCredits.011": 0, + "m_iUpgradeRefundCredits.012": 0, + "m_iUpgradeRefundCredits.013": 0, + "m_iUpgradeRefundCredits.014": 0, + "m_iUpgradeRefundCredits.015": 0, + "m_iUpgradeRefundCredits.016": 0, + "m_iUpgradeRefundCredits.017": 0, + "m_iUpgradeRefundCredits.018": 0, + "m_iUpgradeRefundCredits.019": 0, + "m_iUpgradeRefundCredits.020": 0, + "m_iUpgradeRefundCredits.021": 0, + "m_iUpgradeRefundCredits.022": 0, + "m_iUpgradeRefundCredits.023": 0, + "m_iUpgradeRefundCredits.024": 0, + "m_iUpgradeRefundCredits.025": 0, + "m_iUpgradeRefundCredits.026": 0, + "m_iUpgradeRefundCredits.027": 0, + "m_iUpgradeRefundCredits.028": 0, + "m_iUpgradeRefundCredits.029": 0, + "m_iUpgradeRefundCredits.030": 0, + "m_iUpgradeRefundCredits.031": 0, + "m_iUpgradeRefundCredits.032": 0, + "m_iUpgradeRefundCredits.033": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFObjectiveResource", + "id": 31, + "props": { + "DT_BaseTeamObjectiveResource.m_bControlPointsReset": 0, + "DT_BaseTeamObjectiveResource.m_bPlayingMiniRounds": 0, + "DT_BaseTeamObjectiveResource.m_flCustomPositionX": -1.0, + "DT_BaseTeamObjectiveResource.m_flCustomPositionY": -1.0, + "DT_BaseTeamObjectiveResource.m_iNumControlPoints": 5, + "DT_BaseTeamObjectiveResource.m_iStopWatchTimer": 0, + "DT_BaseTeamObjectiveResource.m_iTimerToShowInHUD": 144, + "DT_BaseTeamObjectiveResource.m_iUpdateCapHudParity": 47, + "DT_BaseTeamObjectiveResource.m_iszWarnSound": [ + "ControlPoint.CaptureWarn", + "ControlPoint.CaptureWarn", + "ControlPoint.CaptureWarn", + "ControlPoint.CaptureWarn", + "ControlPoint.CaptureWarn", + "", + "", + "" + ], + "DT_BaseTeamObjectiveResource.m_pszCapLayoutInHUD": "", + "DT_BaseTeamObjectiveResource.m_vCPPositions": [ + { + "x": 4502.0, + "y": -1042.0, + "z": 163.75 + }, + { + "x": 1723.3125, + "y": -1893.0, + "z": 170.0 + }, + { + "x": 690.78125, + "y": -296.9375, + "z": 390.0 + }, + { + "x": -358.0, + "y": 1317.0, + "z": 170.0 + }, + { + "x": -3139.0, + "y": 454.3125, + "z": 162.0 + }, + { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + ], + "DT_TFObjectiveResource.m_bMannVsMachineBetweenWaves": 0, + "DT_TFObjectiveResource.m_flMannVsMachineNextWaveTime": 0.0, + "DT_TFObjectiveResource.m_flMvMBaseBombUpgradeTime": 0.0, + "DT_TFObjectiveResource.m_flMvMNextBombUpgradeTime": 0.0, + "DT_TFObjectiveResource.m_iChallengeIndex": -1, + "DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames2": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "DT_TFObjectiveResource.m_iszMvMPopfileName": "", + "DT_TFObjectiveResource.m_nFlagCarrierUpgradeLevel": 0, + "DT_TFObjectiveResource.m_nMannVsMachineMaxWaveCount": 0, + "DT_TFObjectiveResource.m_nMannVsMachineWaveCount": 0, + "DT_TFObjectiveResource.m_nMannVsMachineWaveEnemyCount": 0, + "DT_TFObjectiveResource.m_nMvMEventPopfileType": 0, + "DT_TFObjectiveResource.m_nMvMWorldMoney": 0, + "m_bBlocked.000": 0, + "m_bBlocked.001": 0, + "m_bBlocked.002": 0, + "m_bBlocked.003": 0, + "m_bBlocked.004": 0, + "m_bBlocked.005": 0, + "m_bBlocked.006": 0, + "m_bBlocked.007": 0, + "m_bCPCapRateScalesWithPlayers.000": 1, + "m_bCPCapRateScalesWithPlayers.001": 1, + "m_bCPCapRateScalesWithPlayers.002": 1, + "m_bCPCapRateScalesWithPlayers.003": 1, + "m_bCPCapRateScalesWithPlayers.004": 1, + "m_bCPCapRateScalesWithPlayers.005": 1, + "m_bCPCapRateScalesWithPlayers.006": 1, + "m_bCPCapRateScalesWithPlayers.007": 1, + "m_bCPIsVisible.000": 1, + "m_bCPIsVisible.001": 1, + "m_bCPIsVisible.002": 1, + "m_bCPIsVisible.003": 1, + "m_bCPIsVisible.004": 1, + "m_bCPIsVisible.005": 1, + "m_bCPIsVisible.006": 1, + "m_bCPIsVisible.007": 1, + "m_bCPLocked.000": 0, + "m_bCPLocked.001": 0, + "m_bCPLocked.002": 0, + "m_bCPLocked.003": 0, + "m_bCPLocked.004": 0, + "m_bCPLocked.005": 0, + "m_bCPLocked.006": 0, + "m_bCPLocked.007": 0, + "m_bHillIsDownhill.000": 0, + "m_bHillIsDownhill.001": 0, + "m_bHillIsDownhill.002": 0, + "m_bHillIsDownhill.003": 0, + "m_bHillIsDownhill.004": 0, + "m_bHillIsDownhill.005": 0, + "m_bHillIsDownhill.006": 0, + "m_bHillIsDownhill.007": 0, + "m_bHillIsDownhill.008": 0, + "m_bHillIsDownhill.009": 0, + "m_bHillIsDownhill.010": 0, + "m_bHillIsDownhill.011": 0, + "m_bHillIsDownhill.012": 0, + "m_bHillIsDownhill.013": 0, + "m_bHillIsDownhill.014": 0, + "m_bHillIsDownhill.015": 0, + "m_bHillIsDownhill.016": 0, + "m_bHillIsDownhill.017": 0, + "m_bHillIsDownhill.018": 0, + "m_bHillIsDownhill.019": 0, + "m_bInMiniRound.000": 1, + "m_bInMiniRound.001": 1, + "m_bInMiniRound.002": 1, + "m_bInMiniRound.003": 1, + "m_bInMiniRound.004": 1, + "m_bInMiniRound.005": 1, + "m_bInMiniRound.006": 1, + "m_bInMiniRound.007": 1, + "m_bMannVsMachineWaveClassActive.000": 0, + "m_bMannVsMachineWaveClassActive.001": 0, + "m_bMannVsMachineWaveClassActive.002": 0, + "m_bMannVsMachineWaveClassActive.003": 0, + "m_bMannVsMachineWaveClassActive.004": 0, + "m_bMannVsMachineWaveClassActive.005": 0, + "m_bMannVsMachineWaveClassActive.006": 0, + "m_bMannVsMachineWaveClassActive.007": 0, + "m_bMannVsMachineWaveClassActive.008": 0, + "m_bMannVsMachineWaveClassActive.009": 0, + "m_bMannVsMachineWaveClassActive.010": 0, + "m_bMannVsMachineWaveClassActive.011": 0, + "m_bMannVsMachineWaveClassActive2.000": 0, + "m_bMannVsMachineWaveClassActive2.001": 0, + "m_bMannVsMachineWaveClassActive2.002": 0, + "m_bMannVsMachineWaveClassActive2.003": 0, + "m_bMannVsMachineWaveClassActive2.004": 0, + "m_bMannVsMachineWaveClassActive2.005": 0, + "m_bMannVsMachineWaveClassActive2.006": 0, + "m_bMannVsMachineWaveClassActive2.007": 0, + "m_bMannVsMachineWaveClassActive2.008": 0, + "m_bMannVsMachineWaveClassActive2.009": 0, + "m_bMannVsMachineWaveClassActive2.010": 0, + "m_bMannVsMachineWaveClassActive2.011": 0, + "m_bTeamCanCap.000": 0, + "m_bTeamCanCap.001": 0, + "m_bTeamCanCap.002": 0, + "m_bTeamCanCap.003": 0, + "m_bTeamCanCap.004": 0, + "m_bTeamCanCap.005": 0, + "m_bTeamCanCap.006": 0, + "m_bTeamCanCap.007": 0, + "m_bTeamCanCap.008": 0, + "m_bTeamCanCap.009": 0, + "m_bTeamCanCap.010": 0, + "m_bTeamCanCap.011": 0, + "m_bTeamCanCap.012": 0, + "m_bTeamCanCap.013": 0, + "m_bTeamCanCap.014": 0, + "m_bTeamCanCap.015": 0, + "m_bTeamCanCap.016": 1, + "m_bTeamCanCap.017": 1, + "m_bTeamCanCap.018": 1, + "m_bTeamCanCap.019": 1, + "m_bTeamCanCap.020": 1, + "m_bTeamCanCap.021": 0, + "m_bTeamCanCap.022": 0, + "m_bTeamCanCap.023": 0, + "m_bTeamCanCap.024": 1, + "m_bTeamCanCap.025": 1, + "m_bTeamCanCap.026": 1, + "m_bTeamCanCap.027": 1, + "m_bTeamCanCap.028": 1, + "m_bTeamCanCap.029": 0, + "m_bTeamCanCap.030": 0, + "m_bTeamCanCap.031": 0, + "m_bTeamCanCap.032": 0, + "m_bTeamCanCap.033": 0, + "m_bTeamCanCap.034": 0, + "m_bTeamCanCap.035": 0, + "m_bTeamCanCap.036": 0, + "m_bTeamCanCap.037": 0, + "m_bTeamCanCap.038": 0, + "m_bTeamCanCap.039": 0, + "m_bTeamCanCap.040": 0, + "m_bTeamCanCap.041": 0, + "m_bTeamCanCap.042": 0, + "m_bTeamCanCap.043": 0, + "m_bTeamCanCap.044": 0, + "m_bTeamCanCap.045": 0, + "m_bTeamCanCap.046": 0, + "m_bTeamCanCap.047": 0, + "m_bTeamCanCap.048": 0, + "m_bTeamCanCap.049": 0, + "m_bTeamCanCap.050": 0, + "m_bTeamCanCap.051": 0, + "m_bTeamCanCap.052": 0, + "m_bTeamCanCap.053": 0, + "m_bTeamCanCap.054": 0, + "m_bTeamCanCap.055": 0, + "m_bTeamCanCap.056": 0, + "m_bTeamCanCap.057": 0, + "m_bTeamCanCap.058": 0, + "m_bTeamCanCap.059": 0, + "m_bTeamCanCap.060": 0, + "m_bTeamCanCap.061": 0, + "m_bTeamCanCap.062": 0, + "m_bTeamCanCap.063": 0, + "m_bTrackAlarm.000": 0, + "m_bTrackAlarm.001": 0, + "m_bTrackAlarm.002": 0, + "m_bTrackAlarm.003": 0, + "m_flCPTimerTimes.000": -1.0, + "m_flCPTimerTimes.001": -1.0, + "m_flCPTimerTimes.002": -1.0, + "m_flCPTimerTimes.003": -1.0, + "m_flCPTimerTimes.004": -1.0, + "m_flCPTimerTimes.005": -1.0, + "m_flCPTimerTimes.006": -1.0, + "m_flCPTimerTimes.007": -1.0, + "m_flLazyCapPerc.000": 0.0, + "m_flLazyCapPerc.001": 0.0, + "m_flLazyCapPerc.002": 0.0, + "m_flLazyCapPerc.003": 0.0, + "m_flLazyCapPerc.004": 0.0, + "m_flLazyCapPerc.005": 0.0, + "m_flLazyCapPerc.006": 0.0, + "m_flLazyCapPerc.007": 0.0, + "m_flNodeHillData.000": 0.0, + "m_flNodeHillData.001": 0.0, + "m_flNodeHillData.002": 0.0, + "m_flNodeHillData.003": 0.0, + "m_flNodeHillData.004": 0.0, + "m_flNodeHillData.005": 0.0, + "m_flNodeHillData.006": 0.0, + "m_flNodeHillData.007": 0.0, + "m_flNodeHillData.008": 0.0, + "m_flNodeHillData.009": 0.0, + "m_flNodeHillData.010": 0.0, + "m_flNodeHillData.011": 0.0, + "m_flNodeHillData.012": 0.0, + "m_flNodeHillData.013": 0.0, + "m_flNodeHillData.014": 0.0, + "m_flNodeHillData.015": 0.0, + "m_flNodeHillData.016": 0.0, + "m_flNodeHillData.017": 0.0, + "m_flNodeHillData.018": 0.0, + "m_flNodeHillData.019": 0.0, + "m_flNodeHillData.020": 0.0, + "m_flNodeHillData.021": 0.0, + "m_flNodeHillData.022": 0.0, + "m_flNodeHillData.023": 0.0, + "m_flNodeHillData.024": 0.0, + "m_flNodeHillData.025": 0.0, + "m_flNodeHillData.026": 0.0, + "m_flNodeHillData.027": 0.0, + "m_flNodeHillData.028": 0.0, + "m_flNodeHillData.029": 0.0, + "m_flNodeHillData.030": 0.0, + "m_flNodeHillData.031": 0.0, + "m_flNodeHillData.032": 0.0, + "m_flNodeHillData.033": 0.0, + "m_flNodeHillData.034": 0.0, + "m_flNodeHillData.035": 0.0, + "m_flNodeHillData.036": 0.0, + "m_flNodeHillData.037": 0.0, + "m_flNodeHillData.038": 0.0, + "m_flNodeHillData.039": 0.0, + "m_flPathDistance.000": 0.0, + "m_flPathDistance.001": 0.0, + "m_flPathDistance.002": 0.0, + "m_flPathDistance.003": 0.0, + "m_flPathDistance.004": 0.0, + "m_flPathDistance.005": 0.0, + "m_flPathDistance.006": 0.0, + "m_flPathDistance.007": 0.0, + "m_flTeamCapTime.000": 0.0, + "m_flTeamCapTime.001": 0.0, + "m_flTeamCapTime.002": 0.0, + "m_flTeamCapTime.003": 0.0, + "m_flTeamCapTime.004": 0.0, + "m_flTeamCapTime.005": 0.0, + "m_flTeamCapTime.006": 0.0, + "m_flTeamCapTime.007": 0.0, + "m_flTeamCapTime.008": 0.0, + "m_flTeamCapTime.009": 0.0, + "m_flTeamCapTime.010": 0.0, + "m_flTeamCapTime.011": 0.0, + "m_flTeamCapTime.012": 0.0, + "m_flTeamCapTime.013": 0.0, + "m_flTeamCapTime.014": 0.0, + "m_flTeamCapTime.015": 0.0, + "m_flTeamCapTime.016": 3.8, + "m_flTeamCapTime.017": 17.4, + "m_flTeamCapTime.018": 22.0, + "m_flTeamCapTime.019": 17.4, + "m_flTeamCapTime.020": 3.8, + "m_flTeamCapTime.021": 0.0, + "m_flTeamCapTime.022": 0.0, + "m_flTeamCapTime.023": 0.0, + "m_flTeamCapTime.024": 3.8, + "m_flTeamCapTime.025": 17.4, + "m_flTeamCapTime.026": 22.0, + "m_flTeamCapTime.027": 17.4, + "m_flTeamCapTime.028": 3.8, + "m_flTeamCapTime.029": 0.0, + "m_flTeamCapTime.030": 0.0, + "m_flTeamCapTime.031": 0.0, + "m_flTeamCapTime.032": 0.0, + "m_flTeamCapTime.033": 0.0, + "m_flTeamCapTime.034": 0.0, + "m_flTeamCapTime.035": 0.0, + "m_flTeamCapTime.036": 0.0, + "m_flTeamCapTime.037": 0.0, + "m_flTeamCapTime.038": 0.0, + "m_flTeamCapTime.039": 0.0, + "m_flTeamCapTime.040": 0.0, + "m_flTeamCapTime.041": 0.0, + "m_flTeamCapTime.042": 0.0, + "m_flTeamCapTime.043": 0.0, + "m_flTeamCapTime.044": 0.0, + "m_flTeamCapTime.045": 0.0, + "m_flTeamCapTime.046": 0.0, + "m_flTeamCapTime.047": 0.0, + "m_flTeamCapTime.048": 0.0, + "m_flTeamCapTime.049": 0.0, + "m_flTeamCapTime.050": 0.0, + "m_flTeamCapTime.051": 0.0, + "m_flTeamCapTime.052": 0.0, + "m_flTeamCapTime.053": 0.0, + "m_flTeamCapTime.054": 0.0, + "m_flTeamCapTime.055": 0.0, + "m_flTeamCapTime.056": 0.0, + "m_flTeamCapTime.057": 0.0, + "m_flTeamCapTime.058": 0.0, + "m_flTeamCapTime.059": 0.0, + "m_flTeamCapTime.060": 0.0, + "m_flTeamCapTime.061": 0.0, + "m_flTeamCapTime.062": 0.0, + "m_flTeamCapTime.063": 0.0, + "m_flUnlockTimes.000": 0.0, + "m_flUnlockTimes.001": 0.0, + "m_flUnlockTimes.002": 0.0, + "m_flUnlockTimes.003": 0.0, + "m_flUnlockTimes.004": 0.0, + "m_flUnlockTimes.005": 0.0, + "m_flUnlockTimes.006": 0.0, + "m_flUnlockTimes.007": 0.0, + "m_iBaseControlPoints.000": -1, + "m_iBaseControlPoints.001": -1, + "m_iBaseControlPoints.002": 4, + "m_iBaseControlPoints.003": 0, + "m_iBaseControlPoints.004": -1, + "m_iBaseControlPoints.005": -1, + "m_iBaseControlPoints.006": -1, + "m_iBaseControlPoints.007": -1, + "m_iBaseControlPoints.008": -1, + "m_iBaseControlPoints.009": -1, + "m_iBaseControlPoints.010": -1, + "m_iBaseControlPoints.011": -1, + "m_iBaseControlPoints.012": -1, + "m_iBaseControlPoints.013": -1, + "m_iBaseControlPoints.014": -1, + "m_iBaseControlPoints.015": -1, + "m_iBaseControlPoints.016": -1, + "m_iBaseControlPoints.017": -1, + "m_iBaseControlPoints.018": -1, + "m_iBaseControlPoints.019": -1, + "m_iBaseControlPoints.020": -1, + "m_iBaseControlPoints.021": -1, + "m_iBaseControlPoints.022": -1, + "m_iBaseControlPoints.023": -1, + "m_iBaseControlPoints.024": -1, + "m_iBaseControlPoints.025": -1, + "m_iBaseControlPoints.026": -1, + "m_iBaseControlPoints.027": -1, + "m_iBaseControlPoints.028": -1, + "m_iBaseControlPoints.029": -1, + "m_iBaseControlPoints.030": -1, + "m_iBaseControlPoints.031": -1, + "m_iCPGroup.000": 0, + "m_iCPGroup.001": 0, + "m_iCPGroup.002": 0, + "m_iCPGroup.003": 0, + "m_iCPGroup.004": 0, + "m_iCPGroup.005": -1, + "m_iCPGroup.006": -1, + "m_iCPGroup.007": -1, + "m_iCappingTeam.000": 0, + "m_iCappingTeam.001": 0, + "m_iCappingTeam.002": 0, + "m_iCappingTeam.003": 0, + "m_iCappingTeam.004": 0, + "m_iCappingTeam.005": 0, + "m_iCappingTeam.006": 0, + "m_iCappingTeam.007": 0, + "m_iNumTeamMembers.000": 0, + "m_iNumTeamMembers.001": 0, + "m_iNumTeamMembers.002": 0, + "m_iNumTeamMembers.003": 0, + "m_iNumTeamMembers.004": 0, + "m_iNumTeamMembers.005": 0, + "m_iNumTeamMembers.006": 0, + "m_iNumTeamMembers.007": 0, + "m_iNumTeamMembers.008": 0, + "m_iNumTeamMembers.009": 0, + "m_iNumTeamMembers.010": 0, + "m_iNumTeamMembers.011": 0, + "m_iNumTeamMembers.012": 0, + "m_iNumTeamMembers.013": 0, + "m_iNumTeamMembers.014": 0, + "m_iNumTeamMembers.015": 0, + "m_iNumTeamMembers.016": 0, + "m_iNumTeamMembers.017": 0, + "m_iNumTeamMembers.018": 0, + "m_iNumTeamMembers.019": 0, + "m_iNumTeamMembers.020": 0, + "m_iNumTeamMembers.021": 0, + "m_iNumTeamMembers.022": 0, + "m_iNumTeamMembers.023": 0, + "m_iNumTeamMembers.024": 0, + "m_iNumTeamMembers.025": 0, + "m_iNumTeamMembers.026": 0, + "m_iNumTeamMembers.027": 0, + "m_iNumTeamMembers.028": 0, + "m_iNumTeamMembers.029": 0, + "m_iNumTeamMembers.030": 0, + "m_iNumTeamMembers.031": 0, + "m_iNumTeamMembers.032": 0, + "m_iNumTeamMembers.033": 0, + "m_iNumTeamMembers.034": 0, + "m_iNumTeamMembers.035": 0, + "m_iNumTeamMembers.036": 0, + "m_iNumTeamMembers.037": 0, + "m_iNumTeamMembers.038": 0, + "m_iNumTeamMembers.039": 0, + "m_iNumTeamMembers.040": 0, + "m_iNumTeamMembers.041": 0, + "m_iNumTeamMembers.042": 0, + "m_iNumTeamMembers.043": 0, + "m_iNumTeamMembers.044": 0, + "m_iNumTeamMembers.045": 0, + "m_iNumTeamMembers.046": 0, + "m_iNumTeamMembers.047": 0, + "m_iNumTeamMembers.048": 0, + "m_iNumTeamMembers.049": 0, + "m_iNumTeamMembers.050": 0, + "m_iNumTeamMembers.051": 0, + "m_iNumTeamMembers.052": 0, + "m_iNumTeamMembers.053": 0, + "m_iNumTeamMembers.054": 0, + "m_iNumTeamMembers.055": 0, + "m_iNumTeamMembers.056": 0, + "m_iNumTeamMembers.057": 0, + "m_iNumTeamMembers.058": 0, + "m_iNumTeamMembers.059": 0, + "m_iNumTeamMembers.060": 0, + "m_iNumTeamMembers.061": 0, + "m_iNumTeamMembers.062": 0, + "m_iNumTeamMembers.063": 0, + "m_iOwner.000": 3, + "m_iOwner.001": 3, + "m_iOwner.002": 0, + "m_iOwner.003": 2, + "m_iOwner.004": 2, + "m_iOwner.005": 0, + "m_iOwner.006": 0, + "m_iOwner.007": 0, + "m_iPreviousPoints.000": -1, + "m_iPreviousPoints.001": -1, + "m_iPreviousPoints.002": -1, + "m_iPreviousPoints.003": -1, + "m_iPreviousPoints.004": -1, + "m_iPreviousPoints.005": -1, + "m_iPreviousPoints.006": -1, + "m_iPreviousPoints.007": -1, + "m_iPreviousPoints.008": -1, + "m_iPreviousPoints.009": -1, + "m_iPreviousPoints.010": -1, + "m_iPreviousPoints.011": -1, + "m_iPreviousPoints.012": -1, + "m_iPreviousPoints.013": -1, + "m_iPreviousPoints.014": -1, + "m_iPreviousPoints.015": -1, + "m_iPreviousPoints.016": -1, + "m_iPreviousPoints.017": -1, + "m_iPreviousPoints.018": -1, + "m_iPreviousPoints.019": -1, + "m_iPreviousPoints.020": -1, + "m_iPreviousPoints.021": -1, + "m_iPreviousPoints.022": -1, + "m_iPreviousPoints.023": -1, + "m_iPreviousPoints.024": -1, + "m_iPreviousPoints.025": -1, + "m_iPreviousPoints.026": -1, + "m_iPreviousPoints.027": -1, + "m_iPreviousPoints.028": -1, + "m_iPreviousPoints.029": -1, + "m_iPreviousPoints.030": -1, + "m_iPreviousPoints.031": -1, + "m_iPreviousPoints.032": -1, + "m_iPreviousPoints.033": -1, + "m_iPreviousPoints.034": -1, + "m_iPreviousPoints.035": -1, + "m_iPreviousPoints.036": -1, + "m_iPreviousPoints.037": -1, + "m_iPreviousPoints.038": -1, + "m_iPreviousPoints.039": -1, + "m_iPreviousPoints.040": -1, + "m_iPreviousPoints.041": -1, + "m_iPreviousPoints.042": -1, + "m_iPreviousPoints.043": -1, + "m_iPreviousPoints.044": -1, + "m_iPreviousPoints.045": -1, + "m_iPreviousPoints.046": -1, + "m_iPreviousPoints.047": -1, + "m_iPreviousPoints.048": -1, + "m_iPreviousPoints.049": -1, + "m_iPreviousPoints.050": -1, + "m_iPreviousPoints.051": -1, + "m_iPreviousPoints.052": -1, + "m_iPreviousPoints.053": -1, + "m_iPreviousPoints.054": -1, + "m_iPreviousPoints.055": -1, + "m_iPreviousPoints.056": -1, + "m_iPreviousPoints.057": -1, + "m_iPreviousPoints.058": -1, + "m_iPreviousPoints.059": -1, + "m_iPreviousPoints.060": -1, + "m_iPreviousPoints.061": -1, + "m_iPreviousPoints.062": -1, + "m_iPreviousPoints.063": -1, + "m_iPreviousPoints.064": -1, + "m_iPreviousPoints.065": -1, + "m_iPreviousPoints.066": -1, + "m_iPreviousPoints.067": -1, + "m_iPreviousPoints.068": -1, + "m_iPreviousPoints.069": -1, + "m_iPreviousPoints.070": -1, + "m_iPreviousPoints.071": -1, + "m_iPreviousPoints.072": -1, + "m_iPreviousPoints.073": -1, + "m_iPreviousPoints.074": -1, + "m_iPreviousPoints.075": -1, + "m_iPreviousPoints.076": -1, + "m_iPreviousPoints.077": -1, + "m_iPreviousPoints.078": -1, + "m_iPreviousPoints.079": -1, + "m_iPreviousPoints.080": -1, + "m_iPreviousPoints.081": -1, + "m_iPreviousPoints.082": -1, + "m_iPreviousPoints.083": -1, + "m_iPreviousPoints.084": -1, + "m_iPreviousPoints.085": -1, + "m_iPreviousPoints.086": -1, + "m_iPreviousPoints.087": -1, + "m_iPreviousPoints.088": -1, + "m_iPreviousPoints.089": -1, + "m_iPreviousPoints.090": -1, + "m_iPreviousPoints.091": -1, + "m_iPreviousPoints.092": -1, + "m_iPreviousPoints.093": -1, + "m_iPreviousPoints.094": -1, + "m_iPreviousPoints.095": -1, + "m_iPreviousPoints.096": -1, + "m_iPreviousPoints.097": -1, + "m_iPreviousPoints.098": -1, + "m_iPreviousPoints.099": -1, + "m_iPreviousPoints.100": -1, + "m_iPreviousPoints.101": -1, + "m_iPreviousPoints.102": -1, + "m_iPreviousPoints.103": -1, + "m_iPreviousPoints.104": -1, + "m_iPreviousPoints.105": -1, + "m_iPreviousPoints.106": -1, + "m_iPreviousPoints.107": -1, + "m_iPreviousPoints.108": -1, + "m_iPreviousPoints.109": -1, + "m_iPreviousPoints.110": -1, + "m_iPreviousPoints.111": -1, + "m_iPreviousPoints.112": -1, + "m_iPreviousPoints.113": -1, + "m_iPreviousPoints.114": -1, + "m_iPreviousPoints.115": -1, + "m_iPreviousPoints.116": -1, + "m_iPreviousPoints.117": -1, + "m_iPreviousPoints.118": -1, + "m_iPreviousPoints.119": -1, + "m_iPreviousPoints.120": -1, + "m_iPreviousPoints.121": -1, + "m_iPreviousPoints.122": -1, + "m_iPreviousPoints.123": -1, + "m_iPreviousPoints.124": -1, + "m_iPreviousPoints.125": -1, + "m_iPreviousPoints.126": -1, + "m_iPreviousPoints.127": -1, + "m_iPreviousPoints.128": -1, + "m_iPreviousPoints.129": -1, + "m_iPreviousPoints.130": -1, + "m_iPreviousPoints.131": -1, + "m_iPreviousPoints.132": -1, + "m_iPreviousPoints.133": -1, + "m_iPreviousPoints.134": -1, + "m_iPreviousPoints.135": -1, + "m_iPreviousPoints.136": -1, + "m_iPreviousPoints.137": -1, + "m_iPreviousPoints.138": -1, + "m_iPreviousPoints.139": -1, + "m_iPreviousPoints.140": -1, + "m_iPreviousPoints.141": -1, + "m_iPreviousPoints.142": -1, + "m_iPreviousPoints.143": -1, + "m_iPreviousPoints.144": -1, + "m_iPreviousPoints.145": -1, + "m_iPreviousPoints.146": -1, + "m_iPreviousPoints.147": -1, + "m_iPreviousPoints.148": -1, + "m_iPreviousPoints.149": -1, + "m_iPreviousPoints.150": -1, + "m_iPreviousPoints.151": -1, + "m_iPreviousPoints.152": -1, + "m_iPreviousPoints.153": -1, + "m_iPreviousPoints.154": -1, + "m_iPreviousPoints.155": -1, + "m_iPreviousPoints.156": -1, + "m_iPreviousPoints.157": -1, + "m_iPreviousPoints.158": -1, + "m_iPreviousPoints.159": -1, + "m_iPreviousPoints.160": -1, + "m_iPreviousPoints.161": -1, + "m_iPreviousPoints.162": -1, + "m_iPreviousPoints.163": -1, + "m_iPreviousPoints.164": -1, + "m_iPreviousPoints.165": -1, + "m_iPreviousPoints.166": -1, + "m_iPreviousPoints.167": -1, + "m_iPreviousPoints.168": -1, + "m_iPreviousPoints.169": -1, + "m_iPreviousPoints.170": -1, + "m_iPreviousPoints.171": -1, + "m_iPreviousPoints.172": -1, + "m_iPreviousPoints.173": -1, + "m_iPreviousPoints.174": -1, + "m_iPreviousPoints.175": -1, + "m_iPreviousPoints.176": -1, + "m_iPreviousPoints.177": -1, + "m_iPreviousPoints.178": -1, + "m_iPreviousPoints.179": -1, + "m_iPreviousPoints.180": -1, + "m_iPreviousPoints.181": -1, + "m_iPreviousPoints.182": -1, + "m_iPreviousPoints.183": -1, + "m_iPreviousPoints.184": -1, + "m_iPreviousPoints.185": -1, + "m_iPreviousPoints.186": -1, + "m_iPreviousPoints.187": -1, + "m_iPreviousPoints.188": -1, + "m_iPreviousPoints.189": -1, + "m_iPreviousPoints.190": -1, + "m_iPreviousPoints.191": -1, + "m_iTeamBaseIcons.000": 0, + "m_iTeamBaseIcons.001": 0, + "m_iTeamBaseIcons.002": 5, + "m_iTeamBaseIcons.003": 6, + "m_iTeamBaseIcons.004": 0, + "m_iTeamBaseIcons.005": 0, + "m_iTeamBaseIcons.006": 0, + "m_iTeamBaseIcons.007": 0, + "m_iTeamBaseIcons.008": 0, + "m_iTeamBaseIcons.009": 0, + "m_iTeamBaseIcons.010": 0, + "m_iTeamBaseIcons.011": 0, + "m_iTeamBaseIcons.012": 0, + "m_iTeamBaseIcons.013": 0, + "m_iTeamBaseIcons.014": 0, + "m_iTeamBaseIcons.015": 0, + "m_iTeamBaseIcons.016": 0, + "m_iTeamBaseIcons.017": 0, + "m_iTeamBaseIcons.018": 0, + "m_iTeamBaseIcons.019": 0, + "m_iTeamBaseIcons.020": 0, + "m_iTeamBaseIcons.021": 0, + "m_iTeamBaseIcons.022": 0, + "m_iTeamBaseIcons.023": 0, + "m_iTeamBaseIcons.024": 0, + "m_iTeamBaseIcons.025": 0, + "m_iTeamBaseIcons.026": 0, + "m_iTeamBaseIcons.027": 0, + "m_iTeamBaseIcons.028": 0, + "m_iTeamBaseIcons.029": 0, + "m_iTeamBaseIcons.030": 0, + "m_iTeamBaseIcons.031": 0, + "m_iTeamIcons.000": 2, + "m_iTeamIcons.001": 2, + "m_iTeamIcons.002": 2, + "m_iTeamIcons.003": 2, + "m_iTeamIcons.004": 2, + "m_iTeamIcons.005": 0, + "m_iTeamIcons.006": 0, + "m_iTeamIcons.007": 0, + "m_iTeamIcons.008": 0, + "m_iTeamIcons.009": 0, + "m_iTeamIcons.010": 0, + "m_iTeamIcons.011": 0, + "m_iTeamIcons.012": 0, + "m_iTeamIcons.013": 0, + "m_iTeamIcons.014": 0, + "m_iTeamIcons.015": 0, + "m_iTeamIcons.016": 3, + "m_iTeamIcons.017": 3, + "m_iTeamIcons.018": 3, + "m_iTeamIcons.019": 3, + "m_iTeamIcons.020": 3, + "m_iTeamIcons.021": 0, + "m_iTeamIcons.022": 0, + "m_iTeamIcons.023": 0, + "m_iTeamIcons.024": 4, + "m_iTeamIcons.025": 4, + "m_iTeamIcons.026": 4, + "m_iTeamIcons.027": 4, + "m_iTeamIcons.028": 4, + "m_iTeamIcons.029": 0, + "m_iTeamIcons.030": 0, + "m_iTeamIcons.031": 0, + "m_iTeamIcons.032": 0, + "m_iTeamIcons.033": 0, + "m_iTeamIcons.034": 0, + "m_iTeamIcons.035": 0, + "m_iTeamIcons.036": 0, + "m_iTeamIcons.037": 0, + "m_iTeamIcons.038": 0, + "m_iTeamIcons.039": 0, + "m_iTeamIcons.040": 0, + "m_iTeamIcons.041": 0, + "m_iTeamIcons.042": 0, + "m_iTeamIcons.043": 0, + "m_iTeamIcons.044": 0, + "m_iTeamIcons.045": 0, + "m_iTeamIcons.046": 0, + "m_iTeamIcons.047": 0, + "m_iTeamIcons.048": 0, + "m_iTeamIcons.049": 0, + "m_iTeamIcons.050": 0, + "m_iTeamIcons.051": 0, + "m_iTeamIcons.052": 0, + "m_iTeamIcons.053": 0, + "m_iTeamIcons.054": 0, + "m_iTeamIcons.055": 0, + "m_iTeamIcons.056": 0, + "m_iTeamIcons.057": 0, + "m_iTeamIcons.058": 0, + "m_iTeamIcons.059": 0, + "m_iTeamIcons.060": 0, + "m_iTeamIcons.061": 0, + "m_iTeamIcons.062": 0, + "m_iTeamIcons.063": 0, + "m_iTeamInZone.000": 0, + "m_iTeamInZone.001": 0, + "m_iTeamInZone.002": 0, + "m_iTeamInZone.003": 0, + "m_iTeamInZone.004": 0, + "m_iTeamInZone.005": 0, + "m_iTeamInZone.006": 0, + "m_iTeamInZone.007": 0, + "m_iTeamOverlays.000": 0, + "m_iTeamOverlays.001": 0, + "m_iTeamOverlays.002": 0, + "m_iTeamOverlays.003": 0, + "m_iTeamOverlays.004": 0, + "m_iTeamOverlays.005": 0, + "m_iTeamOverlays.006": 0, + "m_iTeamOverlays.007": 0, + "m_iTeamOverlays.008": 0, + "m_iTeamOverlays.009": 0, + "m_iTeamOverlays.010": 0, + "m_iTeamOverlays.011": 0, + "m_iTeamOverlays.012": 0, + "m_iTeamOverlays.013": 0, + "m_iTeamOverlays.014": 0, + "m_iTeamOverlays.015": 0, + "m_iTeamOverlays.016": 0, + "m_iTeamOverlays.017": 0, + "m_iTeamOverlays.018": 0, + "m_iTeamOverlays.019": 0, + "m_iTeamOverlays.020": 0, + "m_iTeamOverlays.021": 0, + "m_iTeamOverlays.022": 0, + "m_iTeamOverlays.023": 0, + "m_iTeamOverlays.024": 0, + "m_iTeamOverlays.025": 0, + "m_iTeamOverlays.026": 0, + "m_iTeamOverlays.027": 0, + "m_iTeamOverlays.028": 0, + "m_iTeamOverlays.029": 0, + "m_iTeamOverlays.030": 0, + "m_iTeamOverlays.031": 0, + "m_iTeamOverlays.032": 0, + "m_iTeamOverlays.033": 0, + "m_iTeamOverlays.034": 0, + "m_iTeamOverlays.035": 0, + "m_iTeamOverlays.036": 0, + "m_iTeamOverlays.037": 0, + "m_iTeamOverlays.038": 0, + "m_iTeamOverlays.039": 0, + "m_iTeamOverlays.040": 0, + "m_iTeamOverlays.041": 0, + "m_iTeamOverlays.042": 0, + "m_iTeamOverlays.043": 0, + "m_iTeamOverlays.044": 0, + "m_iTeamOverlays.045": 0, + "m_iTeamOverlays.046": 0, + "m_iTeamOverlays.047": 0, + "m_iTeamOverlays.048": 0, + "m_iTeamOverlays.049": 0, + "m_iTeamOverlays.050": 0, + "m_iTeamOverlays.051": 0, + "m_iTeamOverlays.052": 0, + "m_iTeamOverlays.053": 0, + "m_iTeamOverlays.054": 0, + "m_iTeamOverlays.055": 0, + "m_iTeamOverlays.056": 0, + "m_iTeamOverlays.057": 0, + "m_iTeamOverlays.058": 0, + "m_iTeamOverlays.059": 0, + "m_iTeamOverlays.060": 0, + "m_iTeamOverlays.061": 0, + "m_iTeamOverlays.062": 0, + "m_iTeamOverlays.063": 0, + "m_iTeamReqCappers.000": 0, + "m_iTeamReqCappers.001": 0, + "m_iTeamReqCappers.002": 0, + "m_iTeamReqCappers.003": 0, + "m_iTeamReqCappers.004": 0, + "m_iTeamReqCappers.005": 0, + "m_iTeamReqCappers.006": 0, + "m_iTeamReqCappers.007": 0, + "m_iTeamReqCappers.008": 0, + "m_iTeamReqCappers.009": 0, + "m_iTeamReqCappers.010": 0, + "m_iTeamReqCappers.011": 0, + "m_iTeamReqCappers.012": 0, + "m_iTeamReqCappers.013": 0, + "m_iTeamReqCappers.014": 0, + "m_iTeamReqCappers.015": 0, + "m_iTeamReqCappers.016": 1, + "m_iTeamReqCappers.017": 1, + "m_iTeamReqCappers.018": 1, + "m_iTeamReqCappers.019": 1, + "m_iTeamReqCappers.020": 1, + "m_iTeamReqCappers.021": 0, + "m_iTeamReqCappers.022": 0, + "m_iTeamReqCappers.023": 0, + "m_iTeamReqCappers.024": 1, + "m_iTeamReqCappers.025": 1, + "m_iTeamReqCappers.026": 1, + "m_iTeamReqCappers.027": 1, + "m_iTeamReqCappers.028": 1, + "m_iTeamReqCappers.029": 0, + "m_iTeamReqCappers.030": 0, + "m_iTeamReqCappers.031": 0, + "m_iTeamReqCappers.032": 0, + "m_iTeamReqCappers.033": 0, + "m_iTeamReqCappers.034": 0, + "m_iTeamReqCappers.035": 0, + "m_iTeamReqCappers.036": 0, + "m_iTeamReqCappers.037": 0, + "m_iTeamReqCappers.038": 0, + "m_iTeamReqCappers.039": 0, + "m_iTeamReqCappers.040": 0, + "m_iTeamReqCappers.041": 0, + "m_iTeamReqCappers.042": 0, + "m_iTeamReqCappers.043": 0, + "m_iTeamReqCappers.044": 0, + "m_iTeamReqCappers.045": 0, + "m_iTeamReqCappers.046": 0, + "m_iTeamReqCappers.047": 0, + "m_iTeamReqCappers.048": 0, + "m_iTeamReqCappers.049": 0, + "m_iTeamReqCappers.050": 0, + "m_iTeamReqCappers.051": 0, + "m_iTeamReqCappers.052": 0, + "m_iTeamReqCappers.053": 0, + "m_iTeamReqCappers.054": 0, + "m_iTeamReqCappers.055": 0, + "m_iTeamReqCappers.056": 0, + "m_iTeamReqCappers.057": 0, + "m_iTeamReqCappers.058": 0, + "m_iTeamReqCappers.059": 0, + "m_iTeamReqCappers.060": 0, + "m_iTeamReqCappers.061": 0, + "m_iTeamReqCappers.062": 0, + "m_iTeamReqCappers.063": 0, + "m_iWarnOnCap.000": 0, + "m_iWarnOnCap.001": 0, + "m_iWarnOnCap.002": 0, + "m_iWarnOnCap.003": 0, + "m_iWarnOnCap.004": 0, + "m_iWarnOnCap.005": 0, + "m_iWarnOnCap.006": 0, + "m_iWarnOnCap.007": 0, + "m_nMannVsMachineWaveClassCounts.000": 0, + "m_nMannVsMachineWaveClassCounts.001": 0, + "m_nMannVsMachineWaveClassCounts.002": 0, + "m_nMannVsMachineWaveClassCounts.003": 0, + "m_nMannVsMachineWaveClassCounts.004": 0, + "m_nMannVsMachineWaveClassCounts.005": 0, + "m_nMannVsMachineWaveClassCounts.006": 0, + "m_nMannVsMachineWaveClassCounts.007": 0, + "m_nMannVsMachineWaveClassCounts.008": 0, + "m_nMannVsMachineWaveClassCounts.009": 0, + "m_nMannVsMachineWaveClassCounts.010": 0, + "m_nMannVsMachineWaveClassCounts.011": 0, + "m_nMannVsMachineWaveClassCounts2.000": 0, + "m_nMannVsMachineWaveClassCounts2.001": 0, + "m_nMannVsMachineWaveClassCounts2.002": 0, + "m_nMannVsMachineWaveClassCounts2.003": 0, + "m_nMannVsMachineWaveClassCounts2.004": 0, + "m_nMannVsMachineWaveClassCounts2.005": 0, + "m_nMannVsMachineWaveClassCounts2.006": 0, + "m_nMannVsMachineWaveClassCounts2.007": 0, + "m_nMannVsMachineWaveClassCounts2.008": 0, + "m_nMannVsMachineWaveClassCounts2.009": 0, + "m_nMannVsMachineWaveClassCounts2.010": 0, + "m_nMannVsMachineWaveClassCounts2.011": 0, + "m_nMannVsMachineWaveClassFlags.000": 0, + "m_nMannVsMachineWaveClassFlags.001": 0, + "m_nMannVsMachineWaveClassFlags.002": 0, + "m_nMannVsMachineWaveClassFlags.003": 0, + "m_nMannVsMachineWaveClassFlags.004": 0, + "m_nMannVsMachineWaveClassFlags.005": 0, + "m_nMannVsMachineWaveClassFlags.006": 0, + "m_nMannVsMachineWaveClassFlags.007": 0, + "m_nMannVsMachineWaveClassFlags.008": 0, + "m_nMannVsMachineWaveClassFlags.009": 0, + "m_nMannVsMachineWaveClassFlags.010": 0, + "m_nMannVsMachineWaveClassFlags.011": 0, + "m_nMannVsMachineWaveClassFlags2.000": 0, + "m_nMannVsMachineWaveClassFlags2.001": 0, + "m_nMannVsMachineWaveClassFlags2.002": 0, + "m_nMannVsMachineWaveClassFlags2.003": 0, + "m_nMannVsMachineWaveClassFlags2.004": 0, + "m_nMannVsMachineWaveClassFlags2.005": 0, + "m_nMannVsMachineWaveClassFlags2.006": 0, + "m_nMannVsMachineWaveClassFlags2.007": 0, + "m_nMannVsMachineWaveClassFlags2.008": 0, + "m_nMannVsMachineWaveClassFlags2.009": 0, + "m_nMannVsMachineWaveClassFlags2.010": 0, + "m_nMannVsMachineWaveClassFlags2.011": 0, + "m_nNumNodeHillData.000": 0, + "m_nNumNodeHillData.001": 0, + "m_nNumNodeHillData.002": 0, + "m_nNumNodeHillData.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CMonsterResource", + "id": 32, + "props": { + "DT_MonsterResource.m_fSkillShotComboEndTime": 0.0, + "DT_MonsterResource.m_iBossHealthPercentageByte": 0, + "DT_MonsterResource.m_iBossState": 0, + "DT_MonsterResource.m_iBossStunPercentageByte": 0, + "DT_MonsterResource.m_iSkillShotCompleteCount": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CMannVsMachineStats", + "id": 33, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CMannVsMachineWaveStats.nBuyBacks": 0, + "DT_CMannVsMachineWaveStats.nCreditsAcquired": 0, + "DT_CMannVsMachineWaveStats.nCreditsBonus": 0, + "DT_CMannVsMachineWaveStats.nCreditsDropped": 0, + "DT_CMannVsMachineWaveStats.nPlayerDeaths": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_MannVsMachineStats.m_iCurrencyCollectedForRespec": 0, + "DT_MannVsMachineStats.m_iCurrentWaveIdx": 0, + "DT_MannVsMachineStats.m_iServerWaveID": 0, + "DT_MannVsMachineStats.m_nRespecsAwardedInWave": 0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CVoteController", + "id": 35, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_VoteController.m_bIsYesNoVote": 1, + "DT_VoteController.m_iActiveIssueIndex": -1, + "DT_VoteController.m_iOnlyTeamToVote": 0, + "DT_VoteController.m_nPotentialVotes": 0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0, + "m_nVoteOptionCount.000": 0, + "m_nVoteOptionCount.001": 0, + "m_nVoteOptionCount.002": 0, + "m_nVoteOptionCount.003": 0, + "m_nVoteOptionCount.004": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSprite", + "id": 38, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4287813886, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 745, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 9, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 2609.375, + "y": -462.53125, + "z": 174.8125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Sprite.m_bWorldSpaceScale": 0, + "DT_Sprite.m_flBrightnessTime": 0.0, + "DT_Sprite.m_flFrame": 0.0, + "DT_Sprite.m_flGlowProxySize": 4.0, + "DT_Sprite.m_flHDRColorScale": 1.0, + "DT_Sprite.m_flScaleTime": 0.0, + "DT_Sprite.m_flSpriteFramerate": 10.078125, + "DT_Sprite.m_flSpriteScale": 0.75, + "DT_Sprite.m_hAttachedToEntity": 2097151, + "DT_Sprite.m_nAttachment": 0, + "DT_Sprite.m_nBrightness": 255, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSprite", + "id": 40, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4287813886, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 745, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 9, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 3949.125, + "y": -309.375, + "z": 376.9375 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Sprite.m_bWorldSpaceScale": 0, + "DT_Sprite.m_flBrightnessTime": 0.0, + "DT_Sprite.m_flFrame": 0.0, + "DT_Sprite.m_flGlowProxySize": 4.0, + "DT_Sprite.m_flHDRColorScale": 1.0, + "DT_Sprite.m_flScaleTime": 0.0, + "DT_Sprite.m_flSpriteFramerate": 10.078125, + "DT_Sprite.m_flSpriteScale": 0.75, + "DT_Sprite.m_hAttachedToEntity": 2097151, + "DT_Sprite.m_nAttachment": 0, + "DT_Sprite.m_nBrightness": 255, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 54, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 3, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 3, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 4511.0, + "y": -711.34375, + "z": 352.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 5.0, + "y": 57.0, + "z": 56.98999 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 5.0, + "y": 57.0, + "z": 56.98999 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.0, + "y": -57.0, + "z": -57.01001 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.0, + "y": -57.0, + "z": -57.01001 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 57, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 3, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 6, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 4504.0, + "y": -1379.6563, + "z": 352.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 5.0, + "y": 57.0, + "z": 56.98999 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 5.0, + "y": 57.0, + "z": 56.98999 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.0, + "y": -57.01001, + "z": -57.01001 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.0, + "y": -57.01001, + "z": -57.01001 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 62, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 3, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 8, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 2298.0, + "y": -1850.9688, + "z": 215.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 5.0, + "y": 56.98999, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 5.0, + "y": 56.98999, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.0, + "y": -57.01001, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.0, + "y": -57.01001, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 73, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 1537.0, + "y": -1043.25, + "z": 366.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 75, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 269.989, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 2437.0, + "y": -2028.6563, + "z": 292.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 82, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -178.96875, + "y": 457.90625, + "z": 366.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 84, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -2310.4063, + "y": -197.78125, + "z": 651.0 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 85, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -1941.6563, + "y": -201.0625, + "z": 652.0 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseDoor", + "id": 90, + "props": { + "DT_BaseDoor.m_flWaveHeight": 0.03125, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 13, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 10, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3156.0, + "y": 115.3125, + "z": 221.5 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 6.01001, + "y": 99.0, + "z": 195.49 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 6.01001, + "y": 99.0, + "z": 195.49 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -3.9899902, + "y": -95.0, + "z": 73.490005 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -3.9899902, + "y": -95.0, + "z": 73.490005 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 91, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 14, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3173.625, + "y": 371.0, + "z": 213.75 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 16.629883, + "y": -197.0, + "z": 195.24 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 16.629883, + "y": -197.0, + "z": 195.24 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 9.629883, + "y": -311.0, + "z": 81.240005 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 9.629883, + "y": -311.0, + "z": 81.240005 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseDoor", + "id": 93, + "props": { + "DT_BaseDoor.m_flWaveHeight": 0.03125, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 16, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 10, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3139.0, + "y": 784.3125, + "z": 221.5 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 6.01001, + "y": 99.0, + "z": 195.49 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 6.01001, + "y": 99.0, + "z": 195.49 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -3.9899902, + "y": -95.0, + "z": 73.490005 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -3.9899902, + "y": -95.0, + "z": 73.490005 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 110, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 2, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 269.989, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 16, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 757, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3139.0, + "y": 454.3125, + "z": 162.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 37.788998, + "y": 37.919834, + "z": 192.86783 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 37.788998, + "y": 37.919834, + "z": 192.86783 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -37.789063, + "y": -37.919834, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -37.789063, + "y": -37.919834, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 111, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 1, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 16, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 758, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3139.0, + "y": 454.3125, + "z": 158.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 101.63659, + "y": 101.63655, + "z": 7.524944 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 101.63659, + "y": 101.63655, + "z": 7.524944 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -101.6366, + "y": -101.63659, + "z": -0.25000444 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -101.6366, + "y": -101.63659, + "z": -0.25000444 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 112, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 90.01099, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 16, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 778, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -26.96875, + "y": 2.0, + "z": 138.46875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 106586, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 92.00346, + "y": 0.0, + "z": 54.65977 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 92.00346, + "y": 0.0, + "z": 54.65977 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -92.0, + "y": -27.332224, + "z": -64.25001 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -92.0, + "y": -27.332224, + "z": -64.25001 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 113, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 90.01099, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 16, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 778, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -26.96875, + "y": 2.0, + "z": 138.46875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1265757, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 92.00346, + "y": 0.0, + "z": 54.65977 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 92.00346, + "y": 0.0, + "z": 54.65977 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -92.0, + "y": -27.332224, + "z": -64.25001 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -92.0, + "y": -27.332224, + "z": -64.25001 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 127, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 746, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3830.0, + "y": 604.3125, + "z": 296.15625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 19.40962, + "y": 32.25, + "z": 113.03188 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 19.40962, + "y": 32.25, + "z": 113.03188 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -16.250002, + "y": -32.25, + "z": -0.16006844 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -16.250002, + "y": -32.25, + "z": -0.16006844 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 128, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 746, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3822.0, + "y": 316.3125, + "z": 296.15625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 19.40962, + "y": 32.25, + "z": 113.03188 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 19.40962, + "y": 32.25, + "z": 113.03188 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -16.250002, + "y": -32.25, + "z": -0.16006844 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -16.250002, + "y": -32.25, + "z": -0.16006844 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 138, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 27, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3144.0, + "y": 792.0, + "z": 351.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 5.0, + "y": 57.0, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 5.0, + "y": 57.0, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.0, + "y": -57.0, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.0, + "y": -57.0, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTeamRoundTimer", + "id": 144, + "props": { + "DT_TeamRoundTimer.m_bAutoCountdown": 1, + "DT_TeamRoundTimer.m_bInCaptureWatchState": 0, + "DT_TeamRoundTimer.m_bIsDisabled": 0, + "DT_TeamRoundTimer.m_bShowInHUD": 1, + "DT_TeamRoundTimer.m_bShowTimeRemaining": 1, + "DT_TeamRoundTimer.m_bStartPaused": 0, + "DT_TeamRoundTimer.m_bStopWatchTimer": 0, + "DT_TeamRoundTimer.m_bTimerPaused": 0, + "DT_TeamRoundTimer.m_flTimeRemaining": 600.0, + "DT_TeamRoundTimer.m_flTimerEndTime": 668.33997, + "DT_TeamRoundTimer.m_flTotalTime": 0.0, + "DT_TeamRoundTimer.m_nSetupTimeLength": 0, + "DT_TeamRoundTimer.m_nState": 1, + "DT_TeamRoundTimer.m_nTimerInitialLength": 600, + "DT_TeamRoundTimer.m_nTimerLength": 600, + "DT_TeamRoundTimer.m_nTimerMaxLength": 600 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CEnvTonemapController", + "id": 146, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 998.46875, + "y": -1098.3125, + "z": 265.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_EnvTonemapController.m_bUseCustomAutoExposureMax": 1, + "DT_EnvTonemapController.m_bUseCustomAutoExposureMin": 1, + "DT_EnvTonemapController.m_bUseCustomBloomScale": 1, + "DT_EnvTonemapController.m_flCustomAutoExposureMax": 0.9, + "DT_EnvTonemapController.m_flCustomAutoExposureMin": 0.5, + "DT_EnvTonemapController.m_flCustomBloomScale": 0.6, + "DT_EnvTonemapController.m_flCustomBloomScaleMinimum": 0.6, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFViewModel", + "id": 147, + "props": { + "DT_BaseViewModel.m_fEffects": 0, + "DT_BaseViewModel.m_flPlaybackRate": 1.0, + "DT_BaseViewModel.m_flPoseParameter": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "DT_BaseViewModel.m_hOwner": 1972225, + "DT_BaseViewModel.m_hWeapon": 1606276, + "DT_BaseViewModel.m_nAnimationParity": 1, + "DT_BaseViewModel.m_nBody": 0, + "DT_BaseViewModel.m_nModelIndex": 494, + "DT_BaseViewModel.m_nMuzzleFlashParity": 1, + "DT_BaseViewModel.m_nNewSequenceParity": 1, + "DT_BaseViewModel.m_nResetEventsParity": 1, + "DT_BaseViewModel.m_nSequence": 25, + "DT_BaseViewModel.m_nSkin": 0, + "DT_BaseViewModel.m_nViewModelIndex": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFGameRulesProxy", + "id": 148, + "props": { + "DT_TFGameRules.m_bAllowTrainingAchievements": 0, + "DT_TFGameRules.m_bBountyModeEnabled": 0, + "DT_TFGameRules.m_bCompetitiveMode": 0, + "DT_TFGameRules.m_bHaveMinPlayersToEnableReady": 0, + "DT_TFGameRules.m_bHelltowerPlayersInHell": 0, + "DT_TFGameRules.m_bIsInItemTestingMode": 0, + "DT_TFGameRules.m_bIsInTraining": 0, + "DT_TFGameRules.m_bIsTrainingHUDVisible": 0, + "DT_TFGameRules.m_bIsUsingSpells": 0, + "DT_TFGameRules.m_bIsWaitingForTrainingContinue": 0, + "DT_TFGameRules.m_bMannVsMachineAlarmStatus": 0, + "DT_TFGameRules.m_bPlayingHybrid_CTF_CP": 0, + "DT_TFGameRules.m_bPlayingKoth": 0, + "DT_TFGameRules.m_bPlayingMannVsMachine": 0, + "DT_TFGameRules.m_bPlayingMedieval": 0, + "DT_TFGameRules.m_bPlayingRobotDestructionMode": 0, + "DT_TFGameRules.m_bPlayingSpecialDeliveryMode": 0, + "DT_TFGameRules.m_bPowerupMode": 0, + "DT_TFGameRules.m_fBossNormalizedTravelDistance": 0, + "DT_TFGameRules.m_fHalloweenEffectDuration": -1.0, + "DT_TFGameRules.m_fHalloweenEffectStartTime": -1.0, + "DT_TFGameRules.m_flCapturePointEnableTime": 0.0, + "DT_TFGameRules.m_hBirthdayPlayer": 2097151, + "DT_TFGameRules.m_hBlueKothTimer": 2097151, + "DT_TFGameRules.m_hBonusLogic": 2097151, + "DT_TFGameRules.m_hRedKothTimer": 2097151, + "DT_TFGameRules.m_halloweenScenario": 0, + "DT_TFGameRules.m_itHandle": 2097151, + "DT_TFGameRules.m_nBossHealth": 0, + "DT_TFGameRules.m_nGameType": 2, + "DT_TFGameRules.m_nHalloweenEffect": -1, + "DT_TFGameRules.m_nHudType": 0, + "DT_TFGameRules.m_nMapHolidayType": 0, + "DT_TFGameRules.m_nMaxBossHealth": 0, + "DT_TFGameRules.m_nStopWatchState": 0, + "DT_TFGameRules.m_pszCustomUpgradesFile": "", + "DT_TFGameRules.m_pszTeamGoalStringBlue": "", + "DT_TFGameRules.m_pszTeamGoalStringRed": "", + "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart": 0, + "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel": 0, + "DT_TeamplayRoundBasedRules.m_bInOvertime": 0, + "DT_TeamplayRoundBasedRules.m_bInSetup": 0, + "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers": 0, + "DT_TeamplayRoundBasedRules.m_bMultipleTrains": 0, + "DT_TeamplayRoundBasedRules.m_bStopWatch": 0, + "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound": 0, + "DT_TeamplayRoundBasedRules.m_flMapResetTime": 68.34, + "DT_TeamplayRoundBasedRules.m_flRestartRoundTime": -1.0, + "DT_TeamplayRoundBasedRules.m_iRoundState": 3, + "DT_TeamplayRoundBasedRules.m_iWinningTeam": 0, + "m_TeamRespawnWaveTimes.000": -1.0, + "m_TeamRespawnWaveTimes.001": -1.0, + "m_TeamRespawnWaveTimes.002": 8.5, + "m_TeamRespawnWaveTimes.003": 8.5, + "m_TeamRespawnWaveTimes.004": -1.0, + "m_TeamRespawnWaveTimes.005": -1.0, + "m_TeamRespawnWaveTimes.006": -1.0, + "m_TeamRespawnWaveTimes.007": -1.0, + "m_TeamRespawnWaveTimes.008": -1.0, + "m_TeamRespawnWaveTimes.009": -1.0, + "m_TeamRespawnWaveTimes.010": -1.0, + "m_TeamRespawnWaveTimes.011": -1.0, + "m_TeamRespawnWaveTimes.012": -1.0, + "m_TeamRespawnWaveTimes.013": -1.0, + "m_TeamRespawnWaveTimes.014": -1.0, + "m_TeamRespawnWaveTimes.015": -1.0, + "m_TeamRespawnWaveTimes.016": -1.0, + "m_TeamRespawnWaveTimes.017": -1.0, + "m_TeamRespawnWaveTimes.018": -1.0, + "m_TeamRespawnWaveTimes.019": -1.0, + "m_TeamRespawnWaveTimes.020": -1.0, + "m_TeamRespawnWaveTimes.021": -1.0, + "m_TeamRespawnWaveTimes.022": -1.0, + "m_TeamRespawnWaveTimes.023": -1.0, + "m_TeamRespawnWaveTimes.024": -1.0, + "m_TeamRespawnWaveTimes.025": -1.0, + "m_TeamRespawnWaveTimes.026": -1.0, + "m_TeamRespawnWaveTimes.027": -1.0, + "m_TeamRespawnWaveTimes.028": -1.0, + "m_TeamRespawnWaveTimes.029": -1.0, + "m_TeamRespawnWaveTimes.030": -1.0, + "m_TeamRespawnWaveTimes.031": -1.0, + "m_bPlayerReady.000": 0, + "m_bPlayerReady.001": 0, + "m_bPlayerReady.002": 0, + "m_bPlayerReady.003": 0, + "m_bPlayerReady.004": 0, + "m_bPlayerReady.005": 0, + "m_bPlayerReady.006": 0, + "m_bPlayerReady.007": 0, + "m_bPlayerReady.008": 0, + "m_bPlayerReady.009": 0, + "m_bPlayerReady.010": 0, + "m_bPlayerReady.011": 0, + "m_bPlayerReady.012": 0, + "m_bPlayerReady.013": 0, + "m_bPlayerReady.014": 0, + "m_bPlayerReady.015": 0, + "m_bPlayerReady.016": 0, + "m_bPlayerReady.017": 0, + "m_bPlayerReady.018": 0, + "m_bPlayerReady.019": 0, + "m_bPlayerReady.020": 0, + "m_bPlayerReady.021": 0, + "m_bPlayerReady.022": 0, + "m_bPlayerReady.023": 0, + "m_bPlayerReady.024": 0, + "m_bPlayerReady.025": 0, + "m_bPlayerReady.026": 0, + "m_bPlayerReady.027": 0, + "m_bPlayerReady.028": 0, + "m_bPlayerReady.029": 0, + "m_bPlayerReady.030": 0, + "m_bPlayerReady.031": 0, + "m_bPlayerReady.032": 0, + "m_bTeamReady.000": 0, + "m_bTeamReady.001": 0, + "m_bTeamReady.002": 0, + "m_bTeamReady.003": 0, + "m_bTeamReady.004": 0, + "m_bTeamReady.005": 0, + "m_bTeamReady.006": 0, + "m_bTeamReady.007": 0, + "m_bTeamReady.008": 0, + "m_bTeamReady.009": 0, + "m_bTeamReady.010": 0, + "m_bTeamReady.011": 0, + "m_bTeamReady.012": 0, + "m_bTeamReady.013": 0, + "m_bTeamReady.014": 0, + "m_bTeamReady.015": 0, + "m_bTeamReady.016": 0, + "m_bTeamReady.017": 0, + "m_bTeamReady.018": 0, + "m_bTeamReady.019": 0, + "m_bTeamReady.020": 0, + "m_bTeamReady.021": 0, + "m_bTeamReady.022": 0, + "m_bTeamReady.023": 0, + "m_bTeamReady.024": 0, + "m_bTeamReady.025": 0, + "m_bTeamReady.026": 0, + "m_bTeamReady.027": 0, + "m_bTeamReady.028": 0, + "m_bTeamReady.029": 0, + "m_bTeamReady.030": 0, + "m_bTeamReady.031": 0, + "m_flNextRespawnWave.000": 0.0, + "m_flNextRespawnWave.001": 0.0, + "m_flNextRespawnWave.002": 73.115, + "m_flNextRespawnWave.003": 73.115, + "m_flNextRespawnWave.004": 0.0, + "m_flNextRespawnWave.005": 0.0, + "m_flNextRespawnWave.006": 0.0, + "m_flNextRespawnWave.007": 0.0, + "m_flNextRespawnWave.008": 0.0, + "m_flNextRespawnWave.009": 0.0, + "m_flNextRespawnWave.010": 0.0, + "m_flNextRespawnWave.011": 0.0, + "m_flNextRespawnWave.012": 0.0, + "m_flNextRespawnWave.013": 0.0, + "m_flNextRespawnWave.014": 0.0, + "m_flNextRespawnWave.015": 0.0, + "m_flNextRespawnWave.016": 0.0, + "m_flNextRespawnWave.017": 0.0, + "m_flNextRespawnWave.018": 0.0, + "m_flNextRespawnWave.019": 0.0, + "m_flNextRespawnWave.020": 0.0, + "m_flNextRespawnWave.021": 0.0, + "m_flNextRespawnWave.022": 0.0, + "m_flNextRespawnWave.023": 0.0, + "m_flNextRespawnWave.024": 0.0, + "m_flNextRespawnWave.025": 0.0, + "m_flNextRespawnWave.026": 0.0, + "m_flNextRespawnWave.027": 0.0, + "m_flNextRespawnWave.028": 0.0, + "m_flNextRespawnWave.029": 0.0, + "m_flNextRespawnWave.030": 0.0, + "m_flNextRespawnWave.031": 0.0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 151, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 49.136856, + "y": 16.129898, + "z": 0.7471615 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 157.3125, + "y": -447.96875, + "z": 982.3125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 152, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 37.577827, + "y": 324.31204, + "z": 0.70321083 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -730.21875, + "y": 1738.1875, + "z": 1011.96875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 154, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 17.975826, + "y": 251.00232, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2410.0, + "y": 1057.3125, + "z": 541.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 155, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 37.577827, + "y": 144.29008, + "z": 0.70321083 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 2102.0, + "y": -2306.6563, + "z": 1011.96875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 156, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 17.975826, + "y": 70.98035, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 3815.0, + "y": -1624.6563, + "z": 541.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseDoor", + "id": 159, + "props": { + "DT_BaseDoor.m_flWaveHeight": 0.03125, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 29, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1799.0, + "y": 784.3125, + "z": 360.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": -4.0, + "y": 87.65997, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": -4.0, + "y": 87.65997, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -10.0, + "y": -82.34003, + "z": -62.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -10.0, + "y": -82.34003, + "z": -62.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 160, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 269.989, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 760, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1779.2188, + "y": 787.96875, + "z": 360.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 96.00001, + "y": 29.087898, + "z": 64.00001 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 96.00001, + "y": 29.087898, + "z": 64.00001 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -96.00001, + "y": -29.087898, + "z": -64.00001 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -96.00001, + "y": -29.087898, + "z": -64.00001 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 161, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 458, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2500.2813, + "y": 434.03125, + "z": -30.78125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 458, + "m_nModelIndexOverrides.001": 752, + "m_nModelIndexOverrides.002": 753, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 165, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 90.01099, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -1079.0, + "y": 1433.8125, + "z": 292.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CWaterLODControl", + "id": 170, + "props": { + "DT_WaterLODControl.m_flCheapWaterEndDistance": 2000.0, + "DT_WaterLODControl.m_flCheapWaterStartDistance": 1000.0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFunc_LOD", + "id": 171, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 34, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 1, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 479.0, + "y": 2240.0, + "z": 437.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 479.0, + "y": 2240.0, + "z": 437.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -435.679, + "y": 1515.33, + "z": 223.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -435.679, + "y": 1515.33, + "z": 223.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Func_LOD.m_fDisappearDist": 1782.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 179, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 38, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1661.5, + "y": 485.3125, + "z": 156.5 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 138.5, + "y": -0.32998657, + "z": -39.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 138.5, + "y": -0.32998657, + "z": -39.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -138.5, + "y": -10.329987, + "z": -52.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -138.5, + "y": -10.329987, + "z": -52.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 182, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 392.40625, + "y": 539.34375, + "z": 264.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 183, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 974.125, + "y": -1144.375, + "z": 264.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 184, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 4759.25, + "y": -1037.5625, + "z": 306.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 185, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3394.0625, + "y": 444.53125, + "z": 306.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CShadowControl", + "id": 186, + "props": { + "DT_ShadowControl.m_bDisableShadows": 0, + "DT_ShadowControl.m_flShadowMaxDist": 75.0, + "DT_ShadowControl.m_shadowColor": 7303023, + "DT_ShadowControl.m_shadowDirection": { + "x": -0.00000003348486, + "y": 0.000000028097146, + "z": -1.0 + } + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 189, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 458, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1895.6875, + "y": 448.25, + "z": 161.21875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 458, + "m_nModelIndexOverrides.001": 752, + "m_nModelIndexOverrides.002": 753, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 190, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 749, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1935.0, + "y": 448.96875, + "z": 161.25 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 749, + "m_nModelIndexOverrides.001": 747, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 191, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 3301.3125, + "y": -377.84375, + "z": 652.0 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 192, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 3670.0625, + "y": -381.125, + "z": 651.0 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 194, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 41, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 679.0, + "y": -293.15625, + "z": 205.46875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 1056.0, + "y": 1010.17004, + "z": 56.520004 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 1056.0, + "y": 1010.17004, + "z": 56.520004 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -1056.0, + "y": -1026.83, + "z": -56.526993 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -1056.0, + "y": -1026.83, + "z": -56.526993 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 195, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 22.502747 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 2552.1875, + "y": -622.34375, + "z": 579.65625 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 196, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 22.502747 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -1195.0, + "y": 37.59375, + "z": 579.90625 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFogController", + "id": 228, + "props": { + "DT_FogController.m_fog.blend": 0, + "DT_FogController.m_fog.colorPrimary": 9335665, + "DT_FogController.m_fog.colorPrimaryLerpTo": 9335665, + "DT_FogController.m_fog.colorSecondary": 16777215, + "DT_FogController.m_fog.colorSecondaryLerpTo": 16777215, + "DT_FogController.m_fog.dirPrimary": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "DT_FogController.m_fog.duration": 0.0, + "DT_FogController.m_fog.enable": 1, + "DT_FogController.m_fog.end": 6000.0, + "DT_FogController.m_fog.endLerpTo": 0.0, + "DT_FogController.m_fog.farz": -1.0, + "DT_FogController.m_fog.lerptime": 0.0, + "DT_FogController.m_fog.maxdensity": 1.0, + "DT_FogController.m_fog.start": 50.0, + "DT_FogController.m_fog.startLerpTo": 0.0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 236, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -1676.6563, + "y": 743.5, + "z": 501.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 252, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 3026.0, + "y": -1350.0, + "z": 501.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 254, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 3, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 49, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 834.96875, + "y": -809.0, + "z": 92.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 245.01001, + "y": 57.0, + "z": 59.989998 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 245.01001, + "y": 57.0, + "z": 59.989998 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 235.01001, + "y": -57.0, + "z": -54.010002 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 235.01001, + "y": -57.0, + "z": -54.010002 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 257, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 52, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 283.0, + "y": 217.96875, + "z": 94.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 4.989746, + "y": 57.0, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 4.989746, + "y": 57.0, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.010254, + "y": -57.0, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.010254, + "y": -57.0, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 265, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 58, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1480.1875, + "y": 465.34375, + "z": 269.5 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": -45.82007, + "y": 249.65, + "z": 11.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": -45.82007, + "y": 249.65, + "z": 11.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -512.18005, + "y": -15.0, + "z": 2.1380005 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -512.18005, + "y": -15.0, + "z": 2.1380005 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 266, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 749, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1531.7188, + "y": 93.90625, + "z": 321.25 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 749, + "m_nModelIndexOverrides.001": 747, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 267, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 59, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1500.125, + "y": 217.8125, + "z": 327.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 126.130005, + "y": 3.5039978, + "z": 12.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 126.130005, + "y": 3.5039978, + "z": 12.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -126.119995, + "y": -3.4960022, + "z": -12.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -126.119995, + "y": -3.4960022, + "z": -12.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSprite", + "id": 297, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4287813886, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 745, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 9, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1259.0, + "y": -135.0, + "z": 175.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Sprite.m_bWorldSpaceScale": 0, + "DT_Sprite.m_flBrightnessTime": 0.0, + "DT_Sprite.m_flFrame": 0.0, + "DT_Sprite.m_flGlowProxySize": 4.0, + "DT_Sprite.m_flHDRColorScale": 1.0, + "DT_Sprite.m_flScaleTime": 0.0, + "DT_Sprite.m_flSpriteFramerate": 10.078125, + "DT_Sprite.m_flSpriteScale": 0.75, + "DT_Sprite.m_hAttachedToEntity": 2097151, + "DT_Sprite.m_nAttachment": 0, + "DT_Sprite.m_nBrightness": 255, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 298, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 61, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 679.0, + "y": -296.8125, + "z": 353.5 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 3481.67, + "y": 170.17398, + "z": 210.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 3481.67, + "y": 170.17398, + "z": 210.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -3481.68, + "y": -170.17001, + "z": -210.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -3481.68, + "y": -170.17001, + "z": -210.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSceneEntity", + "id": 299, + "props": { + "DT_SceneEntity.m_bIsPlayingBack": 1, + "DT_SceneEntity.m_bMultiplayer": 1, + "DT_SceneEntity.m_bPaused": 0, + "DT_SceneEntity.m_flForceClientTime": 0.0, + "DT_SceneEntity.m_nSceneStringIndex": 109, + "_LPT_m_hActorList_16.lengthprop16": 1, + "_ST_m_hActorList_16.000": 1972225, + "_ST_m_hActorList_16.001": 0, + "_ST_m_hActorList_16.002": 0, + "_ST_m_hActorList_16.003": 0, + "_ST_m_hActorList_16.004": 0, + "_ST_m_hActorList_16.005": 0, + "_ST_m_hActorList_16.006": 0, + "_ST_m_hActorList_16.007": 0, + "_ST_m_hActorList_16.008": 0, + "_ST_m_hActorList_16.009": 0, + "_ST_m_hActorList_16.010": 0, + "_ST_m_hActorList_16.011": 0, + "_ST_m_hActorList_16.012": 0, + "_ST_m_hActorList_16.013": 0, + "_ST_m_hActorList_16.014": 0, + "_ST_m_hActorList_16.015": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CPhysicsPropMultiplayer", + "id": 310, + "props": { + "DT_AnimTimeMustBeFirst.m_flAnimTime": 0, + "DT_BaseAnimating.m_bClientSideAnimation": 0, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 0.5, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 1, + "DT_BaseEntity.m_angRotation": { + "x": 359.91208, + "y": 358.81332, + "z": 0.13185203 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 16, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 766, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2328.3125, + "y": 506.375, + "z": 162.40625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 6, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 16.25, + "y": 16.25, + "z": 41.25 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 16.25, + "y": 16.25, + "z": 41.25 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -16.25, + "y": -16.25, + "z": -0.250001 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -16.25, + "y": -16.25, + "z": -0.250001 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_PhysicsProp.m_bAwake": 0, + "DT_PhysicsPropMultiplayer.m_collisionMaxs": { + "x": 16.0, + "y": 16.0, + "z": 41.0 + }, + "DT_PhysicsPropMultiplayer.m_collisionMins": { + "x": -16.0, + "y": -16.0, + "z": -0.000001 + }, + "DT_PhysicsPropMultiplayer.m_fMass": 30.0, + "DT_PhysicsPropMultiplayer.m_iPhysicsMode": 1, + "DT_ServerAnimationData.m_flCycle": 0.0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 315, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 458, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2487.7813, + "y": 1155.3125, + "z": 296.21875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 458, + "m_nModelIndexOverrides.001": 752, + "m_nModelIndexOverrides.002": 753, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 316, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 749, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2581.9688, + "y": 1157.875, + "z": 296.25 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 749, + "m_nModelIndexOverrides.001": 747, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 319, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 749, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2251.1875, + "y": -393.4375, + "z": 376.25 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.482024, + "y": 9.49077, + "z": 14.928136 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -9.486649, + "y": -9.502421, + "z": -0.26128 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 749, + "m_nModelIndexOverrides.001": 747, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseAnimating", + "id": 321, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 1.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 1, + "DT_BaseAnimating.m_nResetEventsParity": 1, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 458, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2252.0, + "y": -338.0, + "z": 376.21875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 24, + "DT_CollisionProperty.m_usSolidFlags": 12, + "DT_CollisionProperty.m_vecMaxs": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 8.440302, + "y": 8.4599, + "z": 19.715792 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -8.481677, + "y": -8.441464, + "z": -0.235178 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 458, + "m_nModelIndexOverrides.001": 752, + "m_nModelIndexOverrides.002": 753, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 332, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": -206.625, + "y": 186.25, + "z": 356.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 333, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 1566.125, + "y": -808.0625, + "z": 362.3125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 334, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 178.00024, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -3379.0, + "y": -228.0, + "z": 151.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 335, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 215.00671, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 423, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -3333.9688, + "y": -305.0, + "z": 254.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 339, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 357.97827, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 4728.4063, + "y": -388.0, + "z": 145.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 340, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 63, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2017.0, + "y": -15.5, + "z": 352.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 29.0, + "y": 9.5, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 29.0, + "y": 9.5, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -29.0, + "y": -9.5, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -29.0, + "y": -9.5, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 341, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 64, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3262.0, + "y": 459.0, + "z": 222.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.0, + "y": 176.0, + "z": 67.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.0, + "y": 176.0, + "z": 67.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -9.0, + "y": -176.0, + "z": -67.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -9.0, + "y": -176.0, + "z": -67.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 348, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 304.53424, + "y": 176.46198, + "z": 2.9007447 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 513.375, + "y": -425.375, + "z": -439.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 349, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 304.53424, + "y": 126.97351, + "z": 2.9007447 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 530.65625, + "y": -241.84375, + "z": -439.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 350, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 304.53424, + "y": 356.48395, + "z": 2.9007447 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 833.3125, + "y": -231.8125, + "z": -439.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 351, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 304.53424, + "y": 306.95154, + "z": 2.9007447 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 841.6875, + "y": -395.4375, + "z": -439.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 352, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 289.5031, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 1865, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 10474.875, + "y": 565.34375, + "z": 5030.7813 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 353, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 289.5031, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 1865, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 10159.375, + "y": -806.78125, + "z": 5033.5 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 358, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 430, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -2907.875, + "y": 2.0, + "z": 296.6875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 360, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 428, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -2908.0, + "y": 2.34375, + "z": 590.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 361, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 430, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 4326.0938, + "y": -612.34375, + "z": 296.6875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 363, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 428, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 4326.0, + "y": -612.0, + "z": 590.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 367, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 1311087, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 954.0, + "y": 1008.65625, + "z": 760.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 368, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 73, + "DT_RopeKeyframe.m_RopeLength": 117, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1311087, + "DT_RopeKeyframe.m_hStartPoint": 1632624, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 442, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 954.0, + "y": 1009.65625, + "z": 877.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 369, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 90.9779, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 428, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 695.6875, + "y": -403.6875, + "z": 209.21875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 370, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 270.99988, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 428, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 702.71875, + "y": -65.96875, + "z": 124.90625 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 372, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 1231220, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 238.0, + "y": -897.0, + "z": 995.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 373, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 73, + "DT_RopeKeyframe.m_RopeLength": 160, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1231220, + "DT_RopeKeyframe.m_hStartPoint": 41333, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 442, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 237.0, + "y": -897.0, + "z": 1155.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 374, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 303478, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1103.0, + "y": 340.0, + "z": 839.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 375, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 73, + "DT_RopeKeyframe.m_RopeLength": 282, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 303478, + "DT_RopeKeyframe.m_hStartPoint": 1935735, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 442, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1105.0, + "y": 330.65625, + "z": 1121.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSprite", + "id": 377, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4287813886, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 745, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 9, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2582.0625, + "y": -283.78125, + "z": 397.40625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Sprite.m_bWorldSpaceScale": 0, + "DT_Sprite.m_flBrightnessTime": 0.0, + "DT_Sprite.m_flFrame": 0.0, + "DT_Sprite.m_flGlowProxySize": 4.0, + "DT_Sprite.m_flHDRColorScale": 1.0, + "DT_Sprite.m_flScaleTime": 0.0, + "DT_Sprite.m_flSpriteFramerate": 10.078125, + "DT_Sprite.m_flSpriteScale": 0.75, + "DT_Sprite.m_hAttachedToEntity": 2097151, + "DT_Sprite.m_nAttachment": 0, + "DT_Sprite.m_nBrightness": 255, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 381, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 357.97827, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 4725.0, + "y": -465.0, + "z": 145.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSprite", + "id": 382, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4284045823, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 745, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 9, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1336.9375, + "y": 1130.0, + "z": 487.1875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Sprite.m_bWorldSpaceScale": 0, + "DT_Sprite.m_flBrightnessTime": 0.0, + "DT_Sprite.m_flFrame": 0.0, + "DT_Sprite.m_flGlowProxySize": 4.0, + "DT_Sprite.m_flHDRColorScale": 1.0, + "DT_Sprite.m_flScaleTime": 0.0, + "DT_Sprite.m_flSpriteFramerate": 10.078125, + "DT_Sprite.m_flSpriteScale": 0.75, + "DT_Sprite.m_hAttachedToEntity": 2097151, + "DT_Sprite.m_nAttachment": 0, + "DT_Sprite.m_nBrightness": 255, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSprite", + "id": 383, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4284045823, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 745, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 9, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 2697.2813, + "y": -1724.0, + "z": 487.1875 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_Sprite.m_bWorldSpaceScale": 0, + "DT_Sprite.m_flBrightnessTime": 0.0, + "DT_Sprite.m_flFrame": 0.0, + "DT_Sprite.m_flGlowProxySize": 4.0, + "DT_Sprite.m_flHDRColorScale": 1.0, + "DT_Sprite.m_flScaleTime": 0.0, + "DT_Sprite.m_flSpriteFramerate": 10.078125, + "DT_Sprite.m_flSpriteScale": 0.75, + "DT_Sprite.m_hAttachedToEntity": 2097151, + "DT_Sprite.m_nAttachment": 0, + "DT_Sprite.m_nBrightness": 255, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 390, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 328, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1245575, + "DT_RopeKeyframe.m_hStartPoint": 1173894, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 4038.0, + "y": -1388.3125, + "z": 648.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 391, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 283, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 313736, + "DT_RopeKeyframe.m_hStartPoint": 1245575, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 4037.0, + "y": -1060.0, + "z": 648.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 392, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 281, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1098124, + "DT_RopeKeyframe.m_hStartPoint": 313736, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 4038.0, + "y": -777.0, + "z": 648.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 394, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 323, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1173894, + "DT_RopeKeyframe.m_hStartPoint": 1436042, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 4361.0, + "y": -1394.0, + "z": 648.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 395, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 196, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1436042, + "DT_RopeKeyframe.m_hStartPoint": 960907, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 4491.0, + "y": -1249.0, + "z": 623.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 396, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 255, + "DT_RopeKeyframe.m_Slack": 90, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1847693, + "DT_RopeKeyframe.m_hStartPoint": 1098124, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 3801.2813, + "y": -859.6875, + "z": 776.40625 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 397, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 228, + "DT_RopeKeyframe.m_Slack": 140, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1341840, + "DT_RopeKeyframe.m_hStartPoint": 1847693, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 3546.0, + "y": -864.0, + "z": 776.40625 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 400, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 562, + "DT_RopeKeyframe.m_Slack": 140, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 29073, + "DT_RopeKeyframe.m_hStartPoint": 1341840, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 3367.0, + "y": -805.0, + "z": 647.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 401, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 29073, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 3371.0, + "y": -1367.0, + "z": 647.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 402, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 328, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1405333, + "DT_RopeKeyframe.m_hStartPoint": 1831314, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2681.0, + "y": 796.3125, + "z": 647.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 403, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 323, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1831314, + "DT_RopeKeyframe.m_hStartPoint": 1884563, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -3004.0, + "y": 802.0, + "z": 647.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 404, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 196, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1884563, + "DT_RopeKeyframe.m_hStartPoint": 594324, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -3134.0, + "y": 657.0, + "z": 622.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 405, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 283, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1137046, + "DT_RopeKeyframe.m_hStartPoint": 1405333, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2680.0, + "y": 468.0, + "z": 647.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 406, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 294, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1261975, + "DT_RopeKeyframe.m_hStartPoint": 1137046, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2681.0, + "y": 185.0, + "z": 647.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 407, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 255, + "DT_RopeKeyframe.m_Slack": 90, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 18840, + "DT_RopeKeyframe.m_hStartPoint": 1261975, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2446.2813, + "y": 301.0, + "z": 782.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 408, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 243, + "DT_RopeKeyframe.m_Slack": 140, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1589657, + "DT_RopeKeyframe.m_hStartPoint": 18840, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2191.0, + "y": 305.28125, + "z": 782.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 409, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 562, + "DT_RopeKeyframe.m_Slack": 140, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1020314, + "DT_RopeKeyframe.m_hStartPoint": 1589657, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2010.0, + "y": 213.0, + "z": 646.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 410, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 1020314, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -2014.0, + "y": 775.0, + "z": 646.875 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 420, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 276, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1659301, + "DT_RopeKeyframe.m_hStartPoint": 1153444, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 2493.0, + "y": -397.0, + "z": 777.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 421, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 1659301, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 2768.0, + "y": -400.0, + "z": 750.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 422, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 276, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1704359, + "DT_RopeKeyframe.m_hStartPoint": 1132966, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -1134.0, + "y": -198.46875, + "z": 781.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 423, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 1704359, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -1409.0, + "y": -206.0, + "z": 750.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 426, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 67, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -465.875, + "y": -899.46875, + "z": 103.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1413553, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 156.28108, + "y": 65.01162, + "z": 88.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 156.28108, + "y": 65.01162, + "z": 88.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -156.29073, + "y": -65.01065, + "z": -88.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -156.29073, + "y": -65.01065, + "z": -88.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 427, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 68, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -499.1875, + "y": -910.90625, + "z": 103.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 633262, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 137.29176, + "y": 120.81177, + "z": 88.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 137.29176, + "y": 120.81177, + "z": 88.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -137.29152, + "y": -120.8077, + "z": -88.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -137.29152, + "y": -120.8077, + "z": -88.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBaseEntity", + "id": 428, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 69, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -439.09375, + "y": -910.90625, + "z": 50.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1018285, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 137.29185, + "y": 120.81177, + "z": 88.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 137.29185, + "y": 120.81177, + "z": 88.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -137.29152, + "y": -120.80752, + "z": -88.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -137.29152, + "y": -120.80752, + "z": -88.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRotating", + "id": 429, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 70, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": -406.5, + "y": -856.5, + "z": 15.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": -406.5, + "y": -856.5, + "z": 15.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -429.5, + "y": -879.5, + "z": -15.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -429.5, + "y": -879.5, + "z": -15.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_FuncRotating.m_angRotation[0]": 0.0, + "DT_FuncRotating.m_angRotation[1]": 0.0, + "DT_FuncRotating.m_angRotation[2]": 0.0, + "DT_FuncRotating.m_flSimulationTime": 0, + "DT_FuncRotating.m_vecOrigin": { + "x": 9967.5, + "y": 51.5, + "z": 5252.5 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRotating", + "id": 430, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 71, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": -406.5, + "y": -856.5, + "z": 15.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": -406.5, + "y": -856.5, + "z": 15.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -429.5, + "y": -879.5, + "z": -15.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -429.5, + "y": -879.5, + "z": -15.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_FuncRotating.m_angRotation[0]": 0.0, + "DT_FuncRotating.m_angRotation[1]": 0.0, + "DT_FuncRotating.m_angRotation[2]": 0.0, + "DT_FuncRotating.m_flSimulationTime": 0, + "DT_FuncRotating.m_vecOrigin": { + "x": 10027.5, + "y": 51.5, + "z": 5375.5 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 431, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 940463, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 401.0, + "y": -1601.0, + "z": 796.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 432, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 73, + "DT_RopeKeyframe.m_RopeLength": 117, + "DT_RopeKeyframe.m_Slack": 25, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 2.0, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 940463, + "DT_RopeKeyframe.m_hStartPoint": 1450416, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 442, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 10, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 401.0, + "y": -1600.0, + "z": 913.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRotating", + "id": 433, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 80, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 72, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": -406.5, + "y": -856.5, + "z": 15.5 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": -406.5, + "y": -856.5, + "z": 15.5 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -429.5, + "y": -879.5, + "z": -15.5 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -429.5, + "y": -879.5, + "z": -15.5 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_FuncRotating.m_angRotation[0]": 0.0, + "DT_FuncRotating.m_angRotation[1]": 0.0, + "DT_FuncRotating.m_angRotation[2]": 0.0, + "DT_FuncRotating.m_flSimulationTime": 0, + "DT_FuncRotating.m_vecOrigin": { + "x": 10271.5, + "y": -114.5, + "z": 5375.5 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CFuncRespawnRoomVisualizer", + "id": 434, + "props": { + "DT_BaseEntity.m_CollisionGroup": 25, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 73, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -933.0, + "y": 1259.0, + "z": 213.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 5.0, + "y": 57.0, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 5.0, + "y": 57.0, + "z": 57.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.0, + "y": -57.0, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.0, + "y": -57.0, + "z": -57.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 436, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 638, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 868789, + "DT_RopeKeyframe.m_hStartPoint": 336308, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 563.0, + "y": 354.0, + "z": 654.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 437, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 868789, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 80.0, + "y": -8.0, + "z": 862.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 438, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 609, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 430519, + "DT_RopeKeyframe.m_hStartPoint": 1497526, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1275.0, + "y": -598.09375, + "z": 800.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 439, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 430519, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 795.0, + "y": -945.0, + "z": 655.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CPhysicsPropMultiplayer", + "id": 450, + "props": { + "DT_AnimTimeMustBeFirst.m_flAnimTime": 0, + "DT_BaseAnimating.m_bClientSideAnimation": 0, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 355.25333, + "y": 69.04652, + "z": 358.54962 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 768, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1444.0938, + "y": 17.5, + "z": 288.15625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 6, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 6.901712, + "y": 1.171351, + "z": 43.40745 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 6.901712, + "y": 1.171351, + "z": 43.40745 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -7.382094, + "y": -8.01612, + "z": -0.000002104886 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -7.382094, + "y": -8.01612, + "z": -0.000002104886 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_PhysicsProp.m_bAwake": 0, + "DT_PhysicsPropMultiplayer.m_collisionMaxs": { + "x": 6.651712, + "y": 0.92135096, + "z": 43.15745 + }, + "DT_PhysicsPropMultiplayer.m_collisionMins": { + "x": -7.132094, + "y": -7.76612, + "z": 32.902924 + }, + "DT_PhysicsPropMultiplayer.m_fMass": 22.135685, + "DT_PhysicsPropMultiplayer.m_iPhysicsMode": 1, + "DT_ServerAnimationData.m_flCycle": 0.0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 493, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 155.98096, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -3378.5625, + "y": -188.0, + "z": 151.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 494, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 155.98096, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -3365.5625, + "y": -143.0, + "z": 151.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 496, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 130.0061, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -3342.0, + "y": -95.0, + "z": 151.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 497, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 325.98218, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 4703.0, + "y": -520.0, + "z": 145.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 503, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 771, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3825.0, + "y": 485.0, + "z": 322.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.267197, + "y": 5.1231256, + "z": 9.566104 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.267197, + "y": 5.1231256, + "z": 9.566104 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -4.950439, + "y": -4.468823, + "z": -1.1461483 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -4.950439, + "y": -4.468823, + "z": -1.1461483 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 505, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 17.008911, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 772, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1591.0, + "y": 575.0, + "z": 336.3125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 3, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 9.074974, + "y": 3.4371605, + "z": 83.84549 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 9.074974, + "y": 3.4371605, + "z": 83.84549 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -2.6904664, + "y": -3.6871595, + "z": 70.71379 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -2.6904664, + "y": -3.6871595, + "z": 70.71379 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CDynamicProp", + "id": 506, + "props": { + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": -1.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 773, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3549.5625, + "y": 148.0, + "z": 243.65625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 7, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 6.9017735, + "y": 5.46113, + "z": 87.5456 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 6.9017735, + "y": 5.46113, + "z": 87.5456 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -5.580966, + "y": -5.4634976, + "z": 76.17117 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -5.580966, + "y": -5.4634976, + "z": 76.17117 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_DynamicProp.m_bUseHitboxesForRenderBox": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CPhysicsPropMultiplayer", + "id": 509, + "props": { + "DT_AnimTimeMustBeFirst.m_flAnimTime": 0, + "DT_BaseAnimating.m_bClientSideAnimation": 0, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 1.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 355.42914, + "y": 215.79784, + "z": 358.6375 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2097151, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 768, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2519.1563, + "y": 604.34375, + "z": 701.125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 6, + "DT_CollisionProperty.m_nSolidType": 6, + "DT_CollisionProperty.m_nSurroundType": 4, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 6.901712, + "y": 1.171351, + "z": 43.40745 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 6.901712, + "y": 1.171351, + "z": 43.40745 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -7.382094, + "y": -8.01612, + "z": -0.000002104886 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -7.382094, + "y": -8.01612, + "z": -0.000002104886 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_PhysicsProp.m_bAwake": 0, + "DT_PhysicsPropMultiplayer.m_collisionMaxs": { + "x": 6.651712, + "y": 0.92135096, + "z": 43.15745 + }, + "DT_PhysicsPropMultiplayer.m_collisionMins": { + "x": -7.132094, + "y": -7.76612, + "z": 32.902924 + }, + "DT_PhysicsPropMultiplayer.m_fMass": 22.135685, + "DT_PhysicsPropMultiplayer.m_iPhysicsMode": 1, + "DT_ServerAnimationData.m_flCycle": 0.0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 521, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 428, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -492.0, + "y": 78.34375, + "z": 457.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 523, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 430, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": -492.1875, + "y": 78.0, + "z": 171.25 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 524, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 430, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 1850.0938, + "y": -498.53125, + "z": 172.1875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 526, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 206, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 877071, + "DT_RopeKeyframe.m_hStartPoint": 545294, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -179.0, + "y": 457.5, + "z": 422.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 527, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 208, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 686609, + "DT_RopeKeyframe.m_hStartPoint": 877071, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 5.0, + "y": 396.90625, + "z": 351.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 528, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 428, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 1850.25, + "y": -498.1875, + "z": 458.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 529, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 144, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1894930, + "DT_RopeKeyframe.m_hStartPoint": 686609, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 107.0, + "y": 552.5, + "z": 444.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 530, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 100, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 1894930, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 196.0, + "y": 438.125, + "z": 443.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 531, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 107.0, + "y": 550.59375, + "z": 411.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 532, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 143, + "DT_RopeKeyframe.m_Slack": 100, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 451093, + "DT_RopeKeyframe.m_hStartPoint": 1188372, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1161.0, + "y": -1030.9688, + "z": 443.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 533, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 213, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 43542, + "DT_RopeKeyframe.m_hStartPoint": 451093, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1248.0, + "y": -1145.0938, + "z": 444.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 534, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 207, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 1823255, + "DT_RopeKeyframe.m_hStartPoint": 43542, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1352.0, + "y": -984.40625, + "z": 350.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 535, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 238, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 786972, + "DT_RopeKeyframe.m_hStartPoint": 1823255, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1536.625, + "y": -1043.6563, + "z": 423.09375 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 536, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 304.53424, + "y": 0.9669149, + "z": 2.9007447 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 834.0, + "y": -310.0, + "z": -439.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CLightGlow", + "id": 537, + "props": { + "DT_LightGlow.HDRColorScale": 1.0, + "DT_LightGlow.m_angRotation": { + "x": 0.0, + "y": 180.02197, + "z": 0.0 + }, + "DT_LightGlow.m_clrRender": 2425393407, + "DT_LightGlow.m_flGlowProxySize": 8.0, + "DT_LightGlow.m_nHorizontalSize": 30, + "DT_LightGlow.m_nMaxDist": 256, + "DT_LightGlow.m_nMinDist": 16, + "DT_LightGlow.m_nOuterMaxDist": 800, + "DT_LightGlow.m_nVerticalSize": 30, + "DT_LightGlow.m_spawnflags": 0, + "DT_LightGlow.m_vecOrigin": { + "x": 1249.3125, + "y": -1143.9063, + "z": 411.8125 + }, + "DT_LightGlow.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 538, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 0.0, + "y": 50.01587, + "z": 0.0 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 4721.0, + "y": -323.0, + "z": 145.0 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 539, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 72, + "DT_RopeKeyframe.m_RopeLength": 271, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 545294, + "DT_RopeKeyframe.m_hStartPoint": 1499675, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": -207.0, + "y": 187.0, + "z": 421.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CRopeKeyframe", + "id": 540, + "props": { + "DT_RopeKeyframe.m_RopeFlags": 64, + "DT_RopeKeyframe.m_RopeLength": 0, + "DT_RopeKeyframe.m_Slack": 130, + "DT_RopeKeyframe.m_Subdiv": 2, + "DT_RopeKeyframe.m_TextureScale": 1.0, + "DT_RopeKeyframe.m_Width": 1.8, + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints": 0, + "DT_RopeKeyframe.m_fLockedPoints": 3, + "DT_RopeKeyframe.m_flScrollSpeed": 0.0, + "DT_RopeKeyframe.m_hEndPoint": 2097151, + "DT_RopeKeyframe.m_hStartPoint": 786972, + "DT_RopeKeyframe.m_iEndAttachment": 0, + "DT_RopeKeyframe.m_iParentAttachment": 0, + "DT_RopeKeyframe.m_iRopeMaterialModelIndex": 439, + "DT_RopeKeyframe.m_iStartAttachment": 0, + "DT_RopeKeyframe.m_nSegments": 5, + "DT_RopeKeyframe.m_vecOrigin": { + "x": 1566.0, + "y": -807.0, + "z": 425.0 + }, + "DT_RopeKeyframe.moveparent": 2097151 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CParticleSystem", + "id": 541, + "props": { + "DT_ParticleSystem.m_angRotation": { + "x": 304.53424, + "y": 204.98596, + "z": 2.9007447 + }, + "DT_ParticleSystem.m_bActive": 1, + "DT_ParticleSystem.m_bWeatherEffect": 0, + "DT_ParticleSystem.m_flStartTime": 68.34, + "DT_ParticleSystem.m_hOwnerEntity": 2097151, + "DT_ParticleSystem.m_iEffectIndex": 417, + "DT_ParticleSystem.m_iParentAttachment": 0, + "DT_ParticleSystem.m_vecOrigin": { + "x": 534.0, + "y": -313.0, + "z": -439.96875 + }, + "DT_ParticleSystem.moveparent": 2097151, + "m_hControlPointEnts.000": 2097151, + "m_hControlPointEnts.001": 2097151, + "m_hControlPointEnts.002": 2097151, + "m_hControlPointEnts.003": 2097151, + "m_hControlPointEnts.004": 2097151, + "m_hControlPointEnts.005": 2097151, + "m_hControlPointEnts.006": 2097151, + "m_hControlPointEnts.007": 2097151, + "m_hControlPointEnts.008": 2097151, + "m_hControlPointEnts.009": 2097151, + "m_hControlPointEnts.010": 2097151, + "m_hControlPointEnts.011": 2097151, + "m_hControlPointEnts.012": 2097151, + "m_hControlPointEnts.013": 2097151, + "m_hControlPointEnts.014": 2097151, + "m_hControlPointEnts.015": 2097151, + "m_hControlPointEnts.016": 2097151, + "m_hControlPointEnts.017": 2097151, + "m_hControlPointEnts.018": 2097151, + "m_hControlPointEnts.019": 2097151, + "m_hControlPointEnts.020": 2097151, + "m_hControlPointEnts.021": 2097151, + "m_hControlPointEnts.022": 2097151, + "m_hControlPointEnts.023": 2097151, + "m_hControlPointEnts.024": 2097151, + "m_hControlPointEnts.025": 2097151, + "m_hControlPointEnts.026": 2097151, + "m_hControlPointEnts.027": 2097151, + "m_hControlPointEnts.028": 2097151, + "m_hControlPointEnts.029": 2097151, + "m_hControlPointEnts.030": 2097151, + "m_hControlPointEnts.031": 2097151, + "m_hControlPointEnts.032": 2097151, + "m_hControlPointEnts.033": 2097151, + "m_hControlPointEnts.034": 2097151, + "m_hControlPointEnts.035": 2097151, + "m_hControlPointEnts.036": 2097151, + "m_hControlPointEnts.037": 2097151, + "m_hControlPointEnts.038": 2097151, + "m_hControlPointEnts.039": 2097151, + "m_hControlPointEnts.040": 2097151, + "m_hControlPointEnts.041": 2097151, + "m_hControlPointEnts.042": 2097151, + "m_hControlPointEnts.043": 2097151, + "m_hControlPointEnts.044": 2097151, + "m_hControlPointEnts.045": 2097151, + "m_hControlPointEnts.046": 2097151, + "m_hControlPointEnts.047": 2097151, + "m_hControlPointEnts.048": 2097151, + "m_hControlPointEnts.049": 2097151, + "m_hControlPointEnts.050": 2097151, + "m_hControlPointEnts.051": 2097151, + "m_hControlPointEnts.052": 2097151, + "m_hControlPointEnts.053": 2097151, + "m_hControlPointEnts.054": 2097151, + "m_hControlPointEnts.055": 2097151, + "m_hControlPointEnts.056": 2097151, + "m_hControlPointEnts.057": 2097151, + "m_hControlPointEnts.058": 2097151, + "m_hControlPointEnts.059": 2097151, + "m_hControlPointEnts.060": 2097151, + "m_hControlPointEnts.061": 2097151, + "m_hControlPointEnts.062": 2097151, + "m_iControlPointParents.000": 0, + "m_iControlPointParents.001": 0, + "m_iControlPointParents.002": 0, + "m_iControlPointParents.003": 0, + "m_iControlPointParents.004": 0, + "m_iControlPointParents.005": 0, + "m_iControlPointParents.006": 0, + "m_iControlPointParents.007": 0, + "m_iControlPointParents.008": 0, + "m_iControlPointParents.009": 0, + "m_iControlPointParents.010": 0, + "m_iControlPointParents.011": 0, + "m_iControlPointParents.012": 0, + "m_iControlPointParents.013": 0, + "m_iControlPointParents.014": 0, + "m_iControlPointParents.015": 0, + "m_iControlPointParents.016": 0, + "m_iControlPointParents.017": 0, + "m_iControlPointParents.018": 0, + "m_iControlPointParents.019": 0, + "m_iControlPointParents.020": 0, + "m_iControlPointParents.021": 0, + "m_iControlPointParents.022": 0, + "m_iControlPointParents.023": 0, + "m_iControlPointParents.024": 0, + "m_iControlPointParents.025": 0, + "m_iControlPointParents.026": 0, + "m_iControlPointParents.027": 0, + "m_iControlPointParents.028": 0, + "m_iControlPointParents.029": 0, + "m_iControlPointParents.030": 0, + "m_iControlPointParents.031": 0, + "m_iControlPointParents.032": 0, + "m_iControlPointParents.033": 0, + "m_iControlPointParents.034": 0, + "m_iControlPointParents.035": 0, + "m_iControlPointParents.036": 0, + "m_iControlPointParents.037": 0, + "m_iControlPointParents.038": 0, + "m_iControlPointParents.039": 0, + "m_iControlPointParents.040": 0, + "m_iControlPointParents.041": 0, + "m_iControlPointParents.042": 0, + "m_iControlPointParents.043": 0, + "m_iControlPointParents.044": 0, + "m_iControlPointParents.045": 0, + "m_iControlPointParents.046": 0, + "m_iControlPointParents.047": 0, + "m_iControlPointParents.048": 0, + "m_iControlPointParents.049": 0, + "m_iControlPointParents.050": 0, + "m_iControlPointParents.051": 0, + "m_iControlPointParents.052": 0, + "m_iControlPointParents.053": 0, + "m_iControlPointParents.054": 0, + "m_iControlPointParents.055": 0, + "m_iControlPointParents.056": 0, + "m_iControlPointParents.057": 0, + "m_iControlPointParents.058": 0, + "m_iControlPointParents.059": 0, + "m_iControlPointParents.060": 0, + "m_iControlPointParents.061": 0, + "m_iControlPointParents.062": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 560, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1593431, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -1522.1563, + "y": 125.78125, + "z": 321.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 561, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 32.468266, + "DT_Beam.m_fFadeLength": 180.30374, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -1522.1563, + "y": 125.78125, + "z": 321.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -1522.1592, + "y": 125.78125, + "z": 501.34375 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 564, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 10727164, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 368837, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3081.0313, + "y": 567.4375, + "z": 384.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 110.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 565, + "props": { + "DT_Beam.m_clrRender": 1084468988, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 60.04131, + "DT_Beam.m_fFadeLength": 110.0, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 29.970705, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3081.0313, + "y": 567.4375, + "z": 274.0 + }, + "DT_Beam.m_vecOrigin": { + "x": -3081.037, + "y": 567.4707, + "z": 164.03125 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 566, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 10727164, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 438470, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3209.6875, + "y": 567.375, + "z": 384.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 110.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 567, + "props": { + "DT_Beam.m_clrRender": 1084468988, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 60.04131, + "DT_Beam.m_fFadeLength": 110.0, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 29.970705, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3209.6875, + "y": 567.375, + "z": 274.0 + }, + "DT_Beam.m_vecOrigin": { + "x": -3209.7246, + "y": 567.4082, + "z": 164.03125 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 568, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 10727164, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1282247, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3209.0625, + "y": 343.375, + "z": 384.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 110.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 569, + "props": { + "DT_Beam.m_clrRender": 1084468988, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 60.04131, + "DT_Beam.m_fFadeLength": 110.0, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 29.970705, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3209.0625, + "y": 343.375, + "z": 274.0 + }, + "DT_Beam.m_vecOrigin": { + "x": -3209.0996, + "y": 343.40625, + "z": 164.03125 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 570, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 10727164, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1982664, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3080.4375, + "y": 343.28125, + "z": 384.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 110.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 571, + "props": { + "DT_Beam.m_clrRender": 1084468988, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 60.04131, + "DT_Beam.m_fFadeLength": 110.0, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 29.970705, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3080.4375, + "y": 343.28125, + "z": 274.0 + }, + "DT_Beam.m_vecOrigin": { + "x": -3080.4746, + "y": 343.28125, + "z": 164.03125 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 580, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 192728, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2290.7188, + "y": 718.40625, + "z": 162.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 581, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 76.22549, + "DT_Beam.m_fFadeLength": 423.63568, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -2290.7188, + "y": 718.40625, + "z": 162.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -2290.7227, + "y": 718.4082, + "z": 585.6582 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 608, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 10727164, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2031960, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3726.5313, + "y": -266.0, + "z": 605.53125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 110.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 609, + "props": { + "DT_Beam.m_clrRender": 1084468988, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 60.04131, + "DT_Beam.m_fFadeLength": 110.0, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 29.970705, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3726.5313, + "y": -266.0, + "z": 495.53125 + }, + "DT_Beam.m_vecOrigin": { + "x": -3726.538, + "y": -266.03223, + "z": 385.53125 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 610, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 27504380, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 921945, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3723.625, + "y": -74.78125, + "z": 475.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 110.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 611, + "props": { + "DT_Beam.m_clrRender": 1084468988, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 24.376173, + "DT_Beam.m_fFadeLength": 89.47351, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 29.970705, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3723.625, + "y": -74.78125, + "z": 475.0 + }, + "DT_Beam.m_vecOrigin": { + "x": -3723.663, + "y": -74.78125, + "z": 385.53125 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 622, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 2036123, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3008.2188, + "y": 132.8125, + "z": 296.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 623, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 52.448734, + "DT_Beam.m_fFadeLength": 291.30377, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3008.2188, + "y": 132.8125, + "z": 296.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -3008.2246, + "y": 132.84375, + "z": 587.3457 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 624, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 74144, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2680.75, + "y": 184.71875, + "z": 254.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 625, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 59.741604, + "DT_Beam.m_fFadeLength": 331.62476, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -2680.75, + "y": 184.71875, + "z": 254.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -2680.7236, + "y": 184.71875, + "z": 585.6582 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 626, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1601949, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2679.7813, + "y": 466.9375, + "z": 161.84375 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 627, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 76.32539, + "DT_Beam.m_fFadeLength": 423.80472, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -2679.7813, + "y": 466.9375, + "z": 161.84375 + }, + "DT_Beam.m_vecOrigin": { + "x": -2679.7861, + "y": 466.96875, + "z": 585.6582 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 628, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 258462, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2680.5938, + "y": 796.28125, + "z": 254.0625 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 629, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 59.6417, + "DT_Beam.m_fFadeLength": 331.57874, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -2680.5938, + "y": 796.28125, + "z": 254.0625 + }, + "DT_Beam.m_vecOrigin": { + "x": -2680.5986, + "y": 796.2832, + "z": 585.6582 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 630, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 27039, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -3003.6875, + "y": 799.1875, + "z": 296.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 631, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 52.448734, + "DT_Beam.m_fFadeLength": 291.30377, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -3003.6875, + "y": 799.1875, + "z": 296.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -3003.7246, + "y": 799.2207, + "z": 587.3457 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 632, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 768417, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2010.375, + "y": 212.3125, + "z": 297.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 633, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 51.949223, + "DT_Beam.m_fFadeLength": 288.63574, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -2010.375, + "y": 212.3125, + "z": 297.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -2010.4102, + "y": 212.34375, + "z": 585.6582 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CSpotlightEnd", + "id": 634, + "props": { + "DT_BaseEntity.m_CollisionGroup": 0, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 1, + "DT_BaseEntity.m_clrRender": 26251408, + "DT_BaseEntity.m_fEffects": 0, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1722792, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 0, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 0, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": -2015.0, + "y": 774.75, + "z": 296.03125 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 2097151, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 0, + "DT_CollisionProperty.m_vecMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_SpotlightEnd.m_Radius": 500.0, + "DT_SpotlightEnd.m_flLightScale": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CBeam", + "id": 635, + "props": { + "DT_Beam.m_clrRender": 1083216016, + "DT_Beam.m_fAmplitude": 0.0, + "DT_Beam.m_fEndWidth": 52.149025, + "DT_Beam.m_fFadeLength": 289.63574, + "DT_Beam.m_fHaloScale": 60.0, + "DT_Beam.m_fSpeed": 0.0, + "DT_Beam.m_fStartFrame": 0.0, + "DT_Beam.m_fWidth": 90.01202, + "DT_Beam.m_flFrame": 0.0, + "DT_Beam.m_flFrameRate": 0.0, + "DT_Beam.m_flHDRColorScale": 1.0, + "DT_Beam.m_nBeamFlags": 640, + "DT_Beam.m_nBeamType": 0, + "DT_Beam.m_nHaloIndex": 750, + "DT_Beam.m_nMinDXLevel": 0, + "DT_Beam.m_nModelIndex": 751, + "DT_Beam.m_nNumBeamEnts": 2, + "DT_Beam.m_nRenderFX": 0, + "DT_Beam.m_nRenderMode": 2, + "DT_Beam.m_vecEndPos": { + "x": -2015.0, + "y": 774.75, + "z": 296.03125 + }, + "DT_Beam.m_vecOrigin": { + "x": -2015.0352, + "y": 774.7832, + "z": 585.6582 + }, + "DT_Beam.moveparent": 2097151, + "m_hAttachEntity.000": 2097151, + "m_hAttachEntity.001": 2097151, + "m_hAttachEntity.002": 2097151, + "m_hAttachEntity.003": 2097151, + "m_hAttachEntity.004": 2097151, + "m_hAttachEntity.005": 2097151, + "m_hAttachEntity.006": 2097151, + "m_hAttachEntity.007": 2097151, + "m_hAttachEntity.008": 2097151, + "m_hAttachEntity.009": 2097151, + "m_nAttachIndex.000": 0, + "m_nAttachIndex.001": 0, + "m_nAttachIndex.002": 0, + "m_nAttachIndex.003": 0, + "m_nAttachIndex.004": 0, + "m_nAttachIndex.005": 0, + "m_nAttachIndex.006": 0, + "m_nAttachIndex.007": 0, + "m_nAttachIndex.008": 0, + "m_nAttachIndex.009": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFViewModel", + "id": 642, + "props": { + "DT_BaseViewModel.m_fEffects": 0, + "DT_BaseViewModel.m_flPlaybackRate": 1.0, + "DT_BaseViewModel.m_flPoseParameter": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "DT_BaseViewModel.m_hOwner": 1972225, + "DT_BaseViewModel.m_hWeapon": 2097151, + "DT_BaseViewModel.m_nAnimationParity": 0, + "DT_BaseViewModel.m_nBody": 0, + "DT_BaseViewModel.m_nModelIndex": 0, + "DT_BaseViewModel.m_nMuzzleFlashParity": 1, + "DT_BaseViewModel.m_nNewSequenceParity": 0, + "DT_BaseViewModel.m_nResetEventsParity": 0, + "DT_BaseViewModel.m_nSequence": 0, + "DT_BaseViewModel.m_nSkin": 0, + "DT_BaseViewModel.m_nViewModelIndex": 1 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFScatterGun", + "id": 644, + "props": { + "DT_AttributeContainer.m_ProviderType": 1, + "DT_AttributeContainer.m_hOuter": 1606276, + "DT_AttributeContainer.m_iReapplyProvisionParity": 3, + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 1, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 25, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseCombatWeapon.m_hOwner": 1972225, + "DT_BaseCombatWeapon.m_iState": 2, + "DT_BaseCombatWeapon.m_iViewModelIndex": 494, + "DT_BaseCombatWeapon.m_iWorldModelIndex": 121, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 129, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1972225, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 494, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1972225, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 2, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 36, + "DT_CollisionProperty.m_usSolidFlags": 132, + "DT_CollisionProperty.m_vecMaxs": { + "x": 2.894726, + "y": 16.616234, + "z": 69.15464 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 2.894726, + "y": 16.616234, + "z": 69.15464 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -12.161678, + "y": -18.363844, + "z": 26.586605 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -12.161678, + "y": -18.363844, + "z": 26.586605 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack": 69.009995, + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack": 69.009995, + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle": 69.34, + "DT_LocalActiveWeaponData.m_nNextThinkTick": 0, + "DT_LocalTFWeaponData.m_flEffectBarRegenTime": 0.0, + "DT_LocalTFWeaponData.m_flLastCritCheckTime": 0.0, + "DT_LocalTFWeaponData.m_flLastFireTime": 48.585, + "DT_LocalTFWeaponData.m_flObservedCritChance": 0.0, + "DT_LocalTFWeaponData.m_flReloadPriorNextFire": 49.415, + "DT_LocalWeaponData.m_bFlipViewModel": 0, + "DT_LocalWeaponData.m_iClip1": 7, + "DT_LocalWeaponData.m_iClip2": 0, + "DT_LocalWeaponData.m_iPrimaryAmmoType": 1, + "DT_LocalWeaponData.m_iSecondaryAmmoType": -1, + "DT_LocalWeaponData.m_nViewModelIndex": 0, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_ScriptCreatedItem.m_bInitialized": 1, + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes": 0, + "DT_ScriptCreatedItem.m_iAccountID": 64229260, + "DT_ScriptCreatedItem.m_iEntityLevel": 1, + "DT_ScriptCreatedItem.m_iEntityQuality": 11, + "DT_ScriptCreatedItem.m_iItemDefinitionIndex": 200, + "DT_ScriptCreatedItem.m_iItemIDHigh": 0, + "DT_ScriptCreatedItem.m_iItemIDLow": 2130260295, + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt": 0, + "DT_TFWeaponBase.m_bDisguiseWeapon": 0, + "DT_TFWeaponBase.m_bLowered": 0, + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent": 0, + "DT_TFWeaponBase.m_bResetParity": 0, + "DT_TFWeaponBase.m_flEnergy": 20.0, + "DT_TFWeaponBase.m_hExtraWearable": 2097151, + "DT_TFWeaponBase.m_hExtraWearableViewModel": 2097151, + "DT_TFWeaponBase.m_iReloadMode": 0, + "DT_TFWeaponBase.m_nKillComboClass": 0, + "DT_TFWeaponBase.m_nKillComboCount": 0, + "_LPT_m_Attributes_15.lengthprop15": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFJarMilk", + "id": 645, + "props": { + "DT_AttributeContainer.m_ProviderType": 1, + "DT_AttributeContainer.m_hOuter": 1587845, + "DT_AttributeContainer.m_iReapplyProvisionParity": 3, + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 31, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseCombatWeapon.m_hOwner": 1972225, + "DT_BaseCombatWeapon.m_iState": 1, + "DT_BaseCombatWeapon.m_iViewModelIndex": 494, + "DT_BaseCombatWeapon.m_iWorldModelIndex": 184, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 129, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1972225, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 494, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1972225, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 2, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 36, + "DT_CollisionProperty.m_usSolidFlags": 132, + "DT_CollisionProperty.m_vecMaxs": { + "x": 2.894726, + "y": 16.616234, + "z": 69.15464 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 2.894726, + "y": 16.616234, + "z": 69.15464 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -12.161678, + "y": -18.363844, + "z": 26.586605 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -12.161678, + "y": -18.363844, + "z": 26.586605 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack": 38.694996, + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack": 38.694996, + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle": 39.35833, + "DT_LocalActiveWeaponData.m_nNextThinkTick": 0, + "DT_LocalTFWeaponData.m_flEffectBarRegenTime": 0.0, + "DT_LocalTFWeaponData.m_flLastCritCheckTime": 0.0, + "DT_LocalTFWeaponData.m_flLastFireTime": 0.0, + "DT_LocalTFWeaponData.m_flObservedCritChance": 0.0, + "DT_LocalTFWeaponData.m_flReloadPriorNextFire": 0.0, + "DT_LocalWeaponData.m_bFlipViewModel": 0, + "DT_LocalWeaponData.m_iClip1": 0, + "DT_LocalWeaponData.m_iClip2": 0, + "DT_LocalWeaponData.m_iPrimaryAmmoType": 5, + "DT_LocalWeaponData.m_iSecondaryAmmoType": -1, + "DT_LocalWeaponData.m_nViewModelIndex": 0, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_ScriptCreatedItem.m_bInitialized": 1, + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes": 0, + "DT_ScriptCreatedItem.m_iAccountID": 64229260, + "DT_ScriptCreatedItem.m_iEntityLevel": 5, + "DT_ScriptCreatedItem.m_iEntityQuality": 11, + "DT_ScriptCreatedItem.m_iItemDefinitionIndex": 222, + "DT_ScriptCreatedItem.m_iItemIDHigh": 0, + "DT_ScriptCreatedItem.m_iItemIDLow": 694438999, + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt": 0, + "DT_TFWeaponBase.m_bDisguiseWeapon": 0, + "DT_TFWeaponBase.m_bLowered": 0, + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent": 0, + "DT_TFWeaponBase.m_bResetParity": 0, + "DT_TFWeaponBase.m_flEnergy": 20.0, + "DT_TFWeaponBase.m_hExtraWearable": 2097151, + "DT_TFWeaponBase.m_hExtraWearableViewModel": 2097151, + "DT_TFWeaponBase.m_iReloadMode": 0, + "DT_TFWeaponBase.m_nKillComboClass": 0, + "DT_TFWeaponBase.m_nKillComboCount": 0, + "_LPT_m_Attributes_15.lengthprop15": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFBat", + "id": 646, + "props": { + "DT_AttributeContainer.m_ProviderType": 1, + "DT_AttributeContainer.m_hOuter": 1211014, + "DT_AttributeContainer.m_iReapplyProvisionParity": 3, + "DT_BaseAnimating.m_bClientSideAnimation": 1, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseCombatWeapon.m_hOwner": 1972225, + "DT_BaseCombatWeapon.m_iState": 1, + "DT_BaseCombatWeapon.m_iViewModelIndex": 494, + "DT_BaseCombatWeapon.m_iWorldModelIndex": 217, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 161, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1972225, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": 494, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1972225, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 2, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 36, + "DT_CollisionProperty.m_usSolidFlags": 132, + "DT_CollisionProperty.m_vecMaxs": { + "x": 2.894726, + "y": 16.616234, + "z": 69.15464 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 2.894726, + "y": 16.616234, + "z": 69.15464 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -12.161678, + "y": -18.363844, + "z": 26.586605 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -12.161678, + "y": -18.363844, + "z": 26.586605 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack": 38.024998, + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack": 38.024998, + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle": 0.0, + "DT_LocalActiveWeaponData.m_nNextThinkTick": 0, + "DT_LocalTFWeaponData.m_flEffectBarRegenTime": 0.0, + "DT_LocalTFWeaponData.m_flLastCritCheckTime": 0.0, + "DT_LocalTFWeaponData.m_flLastFireTime": 0.0, + "DT_LocalTFWeaponData.m_flObservedCritChance": 0.0, + "DT_LocalTFWeaponData.m_flReloadPriorNextFire": 0.0, + "DT_LocalWeaponData.m_bFlipViewModel": 0, + "DT_LocalWeaponData.m_iClip1": 0, + "DT_LocalWeaponData.m_iClip2": 0, + "DT_LocalWeaponData.m_iPrimaryAmmoType": -1, + "DT_LocalWeaponData.m_iSecondaryAmmoType": -1, + "DT_LocalWeaponData.m_nViewModelIndex": 0, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_ScriptCreatedItem.m_bInitialized": 1, + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes": 0, + "DT_ScriptCreatedItem.m_iAccountID": 64229260, + "DT_ScriptCreatedItem.m_iEntityLevel": 5, + "DT_ScriptCreatedItem.m_iEntityQuality": 11, + "DT_ScriptCreatedItem.m_iItemDefinitionIndex": 355, + "DT_ScriptCreatedItem.m_iItemIDHigh": 0, + "DT_ScriptCreatedItem.m_iItemIDLow": 3543126689, + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt": 0, + "DT_TFWeaponBase.m_bDisguiseWeapon": 0, + "DT_TFWeaponBase.m_bLowered": 0, + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent": 0, + "DT_TFWeaponBase.m_bResetParity": 1, + "DT_TFWeaponBase.m_flEnergy": 20.0, + "DT_TFWeaponBase.m_hExtraWearable": 2097151, + "DT_TFWeaponBase.m_hExtraWearableViewModel": 2097151, + "DT_TFWeaponBase.m_iReloadMode": 0, + "DT_TFWeaponBase.m_nKillComboClass": 0, + "DT_TFWeaponBase.m_nKillComboCount": 0, + "_LPT_m_Attributes_15.lengthprop15": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFWearable", + "id": 647, + "props": { + "DT_AnimTimeMustBeFirst.m_flAnimTime": 0, + "DT_AttributeContainer.m_ProviderType": 1, + "DT_AttributeContainer.m_hOuter": 578183, + "DT_AttributeContainer.m_iReapplyProvisionParity": 3, + "DT_BaseAnimating.m_bClientSideAnimation": 0, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 129, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1972225, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": -2, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1972225, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 5.3979645, + "y": 4.1827116, + "z": 82.09894 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 5.3979645, + "y": 4.1827116, + "z": 82.09894 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -15.241737, + "y": -4.1827116, + "z": 56.75445 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -15.241737, + "y": -4.1827116, + "z": 56.75445 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_ScriptCreatedItem.m_bInitialized": 1, + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes": 0, + "DT_ScriptCreatedItem.m_iAccountID": 64229260, + "DT_ScriptCreatedItem.m_iEntityLevel": 58, + "DT_ScriptCreatedItem.m_iEntityQuality": 6, + "DT_ScriptCreatedItem.m_iItemDefinitionIndex": 30394, + "DT_ScriptCreatedItem.m_iItemIDHigh": 0, + "DT_ScriptCreatedItem.m_iItemIDLow": 2860606118, + "DT_ServerAnimationData.m_flCycle": 0.0, + "DT_TFWearable.m_bDisguiseWearable": 0, + "DT_TFWearable.m_hWeaponAssociatedWith": 2097151, + "_LPT_m_Attributes_15.lengthprop15": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFWearable", + "id": 648, + "props": { + "DT_AnimTimeMustBeFirst.m_flAnimTime": 0, + "DT_AttributeContainer.m_ProviderType": 1, + "DT_AttributeContainer.m_hOuter": 1645192, + "DT_AttributeContainer.m_iReapplyProvisionParity": 3, + "DT_BaseAnimating.m_bClientSideAnimation": 0, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 129, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1972225, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": -4, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1972225, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 8.594689, + "y": 13.705315, + "z": 72.51783 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 8.594689, + "y": 13.705315, + "z": 72.51783 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -11.094779, + "y": -15.3305855, + "z": 25.254677 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -11.094779, + "y": -15.3305855, + "z": 25.254677 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_ScriptCreatedItem.m_bInitialized": 1, + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes": 0, + "DT_ScriptCreatedItem.m_iAccountID": 64229260, + "DT_ScriptCreatedItem.m_iEntityLevel": 86, + "DT_ScriptCreatedItem.m_iEntityQuality": 6, + "DT_ScriptCreatedItem.m_iItemDefinitionIndex": 30395, + "DT_ScriptCreatedItem.m_iItemIDHigh": 0, + "DT_ScriptCreatedItem.m_iItemIDLow": 3564724039, + "DT_ServerAnimationData.m_flCycle": 0.0, + "DT_TFWearable.m_bDisguiseWearable": 0, + "DT_TFWearable.m_hWeaponAssociatedWith": 2097151, + "_LPT_m_Attributes_15.lengthprop15": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 0, + "serverClass": "CTFWearable", + "id": 649, + "props": { + "DT_AnimTimeMustBeFirst.m_flAnimTime": 0, + "DT_AttributeContainer.m_ProviderType": 1, + "DT_AttributeContainer.m_hOuter": 1688201, + "DT_AttributeContainer.m_iReapplyProvisionParity": 3, + "DT_BaseAnimating.m_bClientSideAnimation": 0, + "DT_BaseAnimating.m_bClientSideFrameReset": 0, + "DT_BaseAnimating.m_fadeMaxDist": 0.0, + "DT_BaseAnimating.m_fadeMinDist": 0.0, + "DT_BaseAnimating.m_flFadeScale": 0.0, + "DT_BaseAnimating.m_flModelScale": 1.0, + "DT_BaseAnimating.m_flPlaybackRate": 0.0, + "DT_BaseAnimating.m_hLightingOrigin": 2097151, + "DT_BaseAnimating.m_hLightingOriginRelative": 2097151, + "DT_BaseAnimating.m_nBody": 0, + "DT_BaseAnimating.m_nForceBone": 0, + "DT_BaseAnimating.m_nHitboxSet": 0, + "DT_BaseAnimating.m_nMuzzleFlashParity": 0, + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseAnimating.m_nSequence": 0, + "DT_BaseAnimating.m_nSkin": 0, + "DT_BaseAnimating.m_vecForce": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_CollisionGroup": 11, + "DT_BaseEntity.m_angRotation": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.m_bAlternateSorting": 0, + "DT_BaseEntity.m_bAnimatedEveryTick": 0, + "DT_BaseEntity.m_bSimulatedEveryTick": 0, + "DT_BaseEntity.m_clrRender": 4294967295, + "DT_BaseEntity.m_fEffects": 129, + "DT_BaseEntity.m_flElasticity": 1.0, + "DT_BaseEntity.m_flShadowCastDistance": 0.0, + "DT_BaseEntity.m_flSimulationTime": 0, + "DT_BaseEntity.m_hEffectEntity": 2097151, + "DT_BaseEntity.m_hOwnerEntity": 1972225, + "DT_BaseEntity.m_iParentAttachment": 0, + "DT_BaseEntity.m_iTeamNum": 2, + "DT_BaseEntity.m_iTextureFrameIndex": 0, + "DT_BaseEntity.m_nModelIndex": -6, + "DT_BaseEntity.m_nRenderFX": 0, + "DT_BaseEntity.m_nRenderMode": 0, + "DT_BaseEntity.m_ubInterpolationFrame": 0, + "DT_BaseEntity.m_vecOrigin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_BaseEntity.movecollide": 0, + "DT_BaseEntity.moveparent": 1972225, + "DT_BaseEntity.movetype": 0, + "DT_CollisionProperty.m_nSolidType": 0, + "DT_CollisionProperty.m_nSurroundType": 0, + "DT_CollisionProperty.m_triggerBloat": 0, + "DT_CollisionProperty.m_usSolidFlags": 4, + "DT_CollisionProperty.m_vecMaxs": { + "x": 6.2905054, + "y": 12.970368, + "z": 3.4577503 + }, + "DT_CollisionProperty.m_vecMaxsPreScaled": { + "x": 6.2905054, + "y": 12.970368, + "z": 3.4577503 + }, + "DT_CollisionProperty.m_vecMins": { + "x": -3.0455096, + "y": -0.00000020404508, + "z": -9.10891 + }, + "DT_CollisionProperty.m_vecMinsPreScaled": { + "x": -3.0455096, + "y": -0.00000020404508, + "z": -9.10891 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex": 0, + "DT_ScriptCreatedAttribute.m_iRawValue32": 0, + "DT_ScriptCreatedAttribute.m_nRefundableCurrency": 0, + "DT_ScriptCreatedItem.m_bInitialized": 1, + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes": 0, + "DT_ScriptCreatedItem.m_iAccountID": 64229260, + "DT_ScriptCreatedItem.m_iEntityLevel": 96, + "DT_ScriptCreatedItem.m_iEntityQuality": 6, + "DT_ScriptCreatedItem.m_iItemDefinitionIndex": 1011, + "DT_ScriptCreatedItem.m_iItemIDHigh": 0, + "DT_ScriptCreatedItem.m_iItemIDLow": 1462689349, + "DT_ServerAnimationData.m_flCycle": 0.0, + "DT_TFWearable.m_bDisguiseWearable": 0, + "DT_TFWearable.m_hWeaponAssociatedWith": 2097151, + "_LPT_m_Attributes_15.lengthprop15": 0, + "m_flEncodedController.000": 0.0, + "m_flEncodedController.001": 0.0, + "m_flEncodedController.002": 0.0, + "m_flEncodedController.003": 0.0, + "m_flPoseParameter.000": 0.0, + "m_flPoseParameter.001": 0.0, + "m_flPoseParameter.002": 0.0, + "m_flPoseParameter.003": 0.0, + "m_flPoseParameter.004": 0.0, + "m_flPoseParameter.005": 0.0, + "m_flPoseParameter.006": 0.0, + "m_flPoseParameter.007": 0.0, + "m_flPoseParameter.008": 0.0, + "m_flPoseParameter.009": 0.0, + "m_flPoseParameter.010": 0.0, + "m_flPoseParameter.011": 0.0, + "m_flPoseParameter.012": 0.0, + "m_flPoseParameter.013": 0.0, + "m_flPoseParameter.014": 0.0, + "m_flPoseParameter.015": 0.0, + "m_flPoseParameter.016": 0.0, + "m_flPoseParameter.017": 0.0, + "m_flPoseParameter.018": 0.0, + "m_flPoseParameter.019": 0.0, + "m_flPoseParameter.020": 0.0, + "m_flPoseParameter.021": 0.0, + "m_flPoseParameter.022": 0.0, + "m_flPoseParameter.023": 0.0, + "m_nModelIndexOverrides.000": 0, + "m_nModelIndexOverrides.001": 0, + "m_nModelIndexOverrides.002": 0, + "m_nModelIndexOverrides.003": 0 + }, + "pvs": 1 + }, + { + "tick": 4, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 67, + "DT_LocalPlayerExclusive.m_nTickBase": 4868 + }, + "pvs": 0 + }, + { + "tick": 4, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 68, + "DT_LocalPlayerExclusive.m_nTickBase": 4869 + }, + "pvs": 0 + }, + { + "tick": 5, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 69, + "DT_LocalPlayerExclusive.m_nTickBase": 4870 + }, + "pvs": 0 + }, + { + "tick": 6, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 70, + "DT_LocalPlayerExclusive.m_nTickBase": 4871 + }, + "pvs": 0 + }, + { + "tick": 7, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 71, + "DT_LocalPlayerExclusive.m_nTickBase": 4872 + }, + "pvs": 0 + }, + { + "tick": 8, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 72, + "DT_LocalPlayerExclusive.m_nTickBase": 4873 + }, + "pvs": 0 + }, + { + "tick": 9, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 73, + "DT_LocalPlayerExclusive.m_nTickBase": 4874 + }, + "pvs": 0 + }, + { + "tick": 10, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 74, + "DT_LocalPlayerExclusive.m_nTickBase": 4875 + }, + "pvs": 0 + }, + { + "tick": 11, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 75, + "DT_LocalPlayerExclusive.m_nTickBase": 4876 + }, + "pvs": 0 + }, + { + "tick": 12, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 76, + "DT_LocalPlayerExclusive.m_nTickBase": 4877 + }, + "pvs": 0 + }, + { + "tick": 14, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 77, + "DT_LocalPlayerExclusive.m_nTickBase": 4878 + }, + "pvs": 0 + }, + { + "tick": 14, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 78, + "DT_LocalPlayerExclusive.m_nTickBase": 4879 + }, + "pvs": 0 + }, + { + "tick": 15, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 79, + "DT_LocalPlayerExclusive.m_nTickBase": 4880 + }, + "pvs": 0 + }, + { + "tick": 15, + "serverClass": "CTFGameRulesProxy", + "id": 148, + "props": { + "m_flNextRespawnWave.002": 0.0, + "m_flNextRespawnWave.003": 0.0 + }, + "pvs": 0 + }, + { + "tick": 16, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 80, + "DT_LocalPlayerExclusive.m_nTickBase": 4881 + }, + "pvs": 0 + }, + { + "tick": 17, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 81, + "DT_LocalPlayerExclusive.m_nTickBase": 4882 + }, + "pvs": 0 + }, + { + "tick": 19, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 82, + "DT_LocalPlayerExclusive.m_nTickBase": 4883 + }, + "pvs": 0 + }, + { + "tick": 19, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 83, + "DT_LocalPlayerExclusive.m_nTickBase": 4884 + }, + "pvs": 0 + }, + { + "tick": 20, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 84, + "DT_LocalPlayerExclusive.m_nTickBase": 4885 + }, + "pvs": 0 + }, + { + "tick": 21, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 85, + "DT_LocalPlayerExclusive.m_nTickBase": 4886 + }, + "pvs": 0 + }, + { + "tick": 22, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 86, + "DT_LocalPlayerExclusive.m_nTickBase": 4887 + }, + "pvs": 0 + }, + { + "tick": 23, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 87, + "DT_LocalPlayerExclusive.m_nTickBase": 4888 + }, + "pvs": 0 + }, + { + "tick": 24, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 88, + "DT_LocalPlayerExclusive.m_nTickBase": 4889 + }, + "pvs": 0 + }, + { + "tick": 25, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 89, + "DT_LocalPlayerExclusive.m_nTickBase": 4890 + }, + "pvs": 0 + }, + { + "tick": 26, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 90, + "DT_LocalPlayerExclusive.m_nTickBase": 4891 + }, + "pvs": 0 + }, + { + "tick": 27, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 91, + "DT_LocalPlayerExclusive.m_nTickBase": 4892 + }, + "pvs": 0 + }, + { + "tick": 28, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 92, + "DT_LocalPlayerExclusive.m_nTickBase": 4893 + }, + "pvs": 0 + }, + { + "tick": 30, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 93, + "DT_LocalPlayerExclusive.m_nTickBase": 4894 + }, + "pvs": 0 + }, + { + "tick": 30, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 94, + "DT_BasePlayer.m_flMaxspeed": 400.0, + "DT_LocalPlayerExclusive.m_nTickBase": 4895 + }, + "pvs": 0 + }, + { + "tick": 30, + "serverClass": "CTFGameRulesProxy", + "id": 148, + "props": { + "DT_TeamplayRoundBasedRules.m_iRoundState": 4, + "m_flNextRespawnWave.002": 78.35, + "m_flNextRespawnWave.003": 78.35 + }, + "pvs": 0 + }, + { + "tick": 31, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 95, + "DT_LocalPlayerExclusive.m_nTickBase": 4896 + }, + "pvs": 0 + }, + { + "tick": 32, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 96, + "DT_LocalPlayerExclusive.m_nTickBase": 4897 + }, + "pvs": 0 + }, + { + "tick": 33, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 97, + "DT_LocalPlayerExclusive.m_nTickBase": 4898 + }, + "pvs": 0 + }, + { + "tick": 35, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 98, + "DT_LocalPlayerExclusive.m_nTickBase": 4899 + }, + "pvs": 0 + }, + { + "tick": 36, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseAnimating.m_nNewSequenceParity": 7, + "DT_BaseAnimating.m_nResetEventsParity": 7, + "DT_BaseEntity.m_flSimulationTime": 100, + "DT_LocalPlayerExclusive.m_nTickBase": 4901, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -87.749985, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3432.8225, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 37, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 101, + "DT_LocalPlayerExclusive.m_nTickBase": 4902, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -141.74994, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3434.9487, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 38, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 102, + "DT_LocalPlayerExclusive.m_nTickBase": 4903, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -193.2449, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3437.8474, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 39, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 103, + "DT_LocalPlayerExclusive.m_nTickBase": 4904, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -241.65015, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3441.4722, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 40, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 104, + "DT_LocalPlayerExclusive.m_nTickBase": 4905, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -287.15106, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3445.7795, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 41, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 5, + "DT_LocalPlayerExclusive.m_nTickBase": 4906, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -329.9219, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3450.7283, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 42, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 6, + "DT_LocalPlayerExclusive.m_nTickBase": 4907, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -360.0, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3456.1282, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 43, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 7, + "DT_LocalPlayerExclusive.m_nTickBase": 4908, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3461.528, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 44, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 8, + "DT_LocalPlayerExclusive.m_nTickBase": 4909, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3466.928, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 46, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 9, + "DT_LocalPlayerExclusive.m_nTickBase": 4910, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3472.328, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 46, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 10, + "DT_LocalPlayerExclusive.m_nTickBase": 4911, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3477.7278, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 47, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 11, + "DT_LocalPlayerExclusive.m_nTickBase": 4912, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3483.1277, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 48, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 12, + "DT_LocalPlayerExclusive.m_nTickBase": 4913, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3488.5276, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 49, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 13, + "DT_LocalPlayerExclusive.m_nTickBase": 4914, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3493.9275, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 50, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 14, + "DT_LocalPlayerExclusive.m_nTickBase": 4915, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3499.3274, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 51, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 15, + "DT_LocalPlayerExclusive.m_nTickBase": 4916, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3504.7273, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 52, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 16, + "DT_LocalPlayerExclusive.m_nTickBase": 4917, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3510.1272, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 53, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 17, + "DT_LocalPlayerExclusive.m_nTickBase": 4918, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3515.527, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 54, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 18, + "DT_LocalPlayerExclusive.m_nTickBase": 4919, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3520.927, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 55, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 19, + "DT_LocalPlayerExclusive.m_nTickBase": 4920, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3526.327, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 56, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 20, + "DT_LocalPlayerExclusive.m_nTickBase": 4921, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -338.39993, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3531.4028, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 57, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 21, + "DT_LocalPlayerExclusive.m_nTickBase": 4922, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -318.0959, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3536.1743, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 58, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 22, + "DT_LocalPlayerExclusive.m_nTickBase": 4923, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -299.01007, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3540.6594, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 59, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 23, + "DT_LocalPlayerExclusive.m_nTickBase": 4924, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -281.0694, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3544.8755, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 60, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 24, + "DT_LocalPlayerExclusive.m_nTickBase": 4925, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -264.20517, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3548.8386, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 62, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 25, + "DT_LocalPlayerExclusive.m_nTickBase": 4926, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -248.35283, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3552.564, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 62, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 26, + "DT_LocalPlayerExclusive.m_nTickBase": 4927, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -233.45163, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3556.0657, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 63, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 27, + "DT_LocalPlayerExclusive.m_nTickBase": 4928, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -219.4445, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3559.3574, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 64, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 28, + "DT_LocalPlayerExclusive.m_nTickBase": 4929, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -206.2778, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3562.4517, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 65, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 29, + "DT_LocalPlayerExclusive.m_nTickBase": 4930, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -193.90111, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3565.36, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 66, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 30, + "DT_LocalPlayerExclusive.m_nTickBase": 4931, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -182.26701, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3568.094, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 67, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 31, + "DT_LocalPlayerExclusive.m_nTickBase": 4932, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -171.33096, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3570.664, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 68, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 32, + "DT_LocalPlayerExclusive.m_nTickBase": 4933, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -161.05107, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3573.0798, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 69, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 33, + "DT_LocalPlayerExclusive.m_nTickBase": 4934, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -151.38797, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3575.3506, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 70, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 34, + "DT_LocalPlayerExclusive.m_nTickBase": 4935, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -142.30466, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3577.485, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 71, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 35, + "DT_LocalPlayerExclusive.m_nTickBase": 4936, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -133.76634, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3579.4917, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 73, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 36, + "DT_LocalPlayerExclusive.m_nTickBase": 4937, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -125.74035, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3581.3777, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 73, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 37, + "DT_LocalPlayerExclusive.m_nTickBase": 4938, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -118.195915, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3583.1506, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 74, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 38, + "DT_LocalPlayerExclusive.m_nTickBase": 4939, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -111.10414, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3584.8171, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 75, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 39, + "DT_LocalPlayerExclusive.m_nTickBase": 4940, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -104.43788, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3586.3838, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 76, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 40, + "DT_LocalPlayerExclusive.m_nTickBase": 4941, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -98.17161, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3587.8564, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 78, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 41, + "DT_LocalPlayerExclusive.m_nTickBase": 4942, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -92.17161, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3589.239, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 78, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 42, + "DT_LocalPlayerExclusive.m_nTickBase": 4943, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -86.17161, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3590.5315, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 79, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 43, + "DT_LocalPlayerExclusive.m_nTickBase": 4944, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -80.17161, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3591.7341, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 80, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 44, + "DT_LocalPlayerExclusive.m_nTickBase": 4945, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -74.17161, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3592.8467, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 81, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 45, + "DT_LocalPlayerExclusive.m_nTickBase": 4946, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -68.17161, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3593.8691, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 83, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 46, + "DT_LocalPlayerExclusive.m_nTickBase": 4947, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -62.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3594.8018, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 83, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 47, + "DT_LocalPlayerExclusive.m_nTickBase": 4948, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -56.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3595.6443, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 84, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 48, + "DT_LocalPlayerExclusive.m_nTickBase": 4949, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -50.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3596.397, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 85, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 49, + "DT_LocalPlayerExclusive.m_nTickBase": 4950, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -44.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3597.0596, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 86, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 50, + "DT_LocalPlayerExclusive.m_nTickBase": 4951, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -38.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3597.632, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 87, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 51, + "DT_LocalPlayerExclusive.m_nTickBase": 4952, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -32.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3598.1147, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 88, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 52, + "DT_LocalPlayerExclusive.m_nTickBase": 4953, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -26.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3598.5073, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 89, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 53, + "DT_LocalPlayerExclusive.m_nTickBase": 4954, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -20.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3598.8098, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 90, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 54, + "DT_LocalPlayerExclusive.m_nTickBase": 4955, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -14.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3599.0225, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 91, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 55, + "DT_LocalPlayerExclusive.m_nTickBase": 4956, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -8.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3599.145, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 92, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 56, + "DT_LocalPlayerExclusive.m_nTickBase": 4957, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": -2.171608, + "DT_TFLocalPlayerExclusive.m_vecOrigin": { + "x": -3599.1775, + "y": 421.331 + } + }, + "pvs": 0 + }, + { + "tick": 94, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseAnimating.m_nNewSequenceParity": 0, + "DT_BaseAnimating.m_nResetEventsParity": 0, + "DT_BaseEntity.m_flSimulationTime": 58, + "DT_LocalPlayerExclusive.m_nTickBase": 4959, + "DT_LocalPlayerExclusive.m_vecVelocity[0]": 0.0 + }, + "pvs": 0 + }, + { + "tick": 95, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 59, + "DT_LocalPlayerExclusive.m_nTickBase": 4960 + }, + "pvs": 0 + }, + { + "tick": 96, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 60, + "DT_LocalPlayerExclusive.m_nTickBase": 4961 + }, + "pvs": 0 + }, + { + "tick": 97, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 61, + "DT_LocalPlayerExclusive.m_nTickBase": 4962 + }, + "pvs": 0 + }, + { + "tick": 99, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 62, + "DT_LocalPlayerExclusive.m_nTickBase": 4963 + }, + "pvs": 0 + }, + { + "tick": 99, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 63, + "DT_LocalPlayerExclusive.m_nTickBase": 4964 + }, + "pvs": 0 + }, + { + "tick": 100, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 64, + "DT_LocalPlayerExclusive.m_nTickBase": 4965 + }, + "pvs": 0 + }, + { + "tick": 101, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 65, + "DT_LocalPlayerExclusive.m_nTickBase": 4966 + }, + "pvs": 0 + }, + { + "tick": 102, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 66, + "DT_LocalPlayerExclusive.m_nTickBase": 4967 + }, + "pvs": 0 + }, + { + "tick": 103, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 67, + "DT_LocalPlayerExclusive.m_nTickBase": 4968 + }, + "pvs": 0 + }, + { + "tick": 104, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 68, + "DT_LocalPlayerExclusive.m_nTickBase": 4969 + }, + "pvs": 0 + }, + { + "tick": 105, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 69, + "DT_LocalPlayerExclusive.m_nTickBase": 4970 + }, + "pvs": 0 + }, + { + "tick": 106, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 70, + "DT_LocalPlayerExclusive.m_nTickBase": 4971 + }, + "pvs": 0 + }, + { + "tick": 107, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 71, + "DT_LocalPlayerExclusive.m_nTickBase": 4972 + }, + "pvs": 0 + }, + { + "tick": 108, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 72, + "DT_LocalPlayerExclusive.m_nTickBase": 4973 + }, + "pvs": 0 + }, + { + "tick": 110, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 73, + "DT_LocalPlayerExclusive.m_nTickBase": 4974 + }, + "pvs": 0 + }, + { + "tick": 110, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 74, + "DT_LocalPlayerExclusive.m_nTickBase": 4975 + }, + "pvs": 0 + }, + { + "tick": 111, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 75, + "DT_LocalPlayerExclusive.m_nTickBase": 4976 + }, + "pvs": 0 + }, + { + "tick": 112, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 76, + "DT_LocalPlayerExclusive.m_nTickBase": 4977 + }, + "pvs": 0 + }, + { + "tick": 113, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 77, + "DT_LocalPlayerExclusive.m_nTickBase": 4978 + }, + "pvs": 0 + }, + { + "tick": 115, + "serverClass": "CTFPlayer", + "id": 1, + "props": { + "DT_BaseEntity.m_flSimulationTime": 78, + "DT_LocalPlayerExclusive.m_nTickBase": 4979 + }, + "pvs": 0 + } +] diff --git a/test_data/gully_props.json b/tests/snapshots/sendprops__flatten_test.snap similarity index 99% rename from test_data/gully_props.json rename to tests/snapshots/sendprops__flatten_test.snap index eacb56e..d1fff7d 100644 --- a/test_data/gully_props.json +++ b/tests/snapshots/sendprops__flatten_test.snap @@ -1,3 +1,7 @@ +--- +source: tests/sendprops.rs +expression: flat_props +--- { "DT_AI_BaseNPC": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", @@ -326,6 +330,226 @@ "DT_AI_BaseNPC.m_bImportanRagdoll", "DT_AI_BaseNPC.m_flTimePingEffect" ], + "DT_AmmoPack": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_AmmoPack.m_angRotation[0]", + "DT_AmmoPack.m_angRotation[1]", + "DT_AmmoPack.m_angRotation[2]", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_AmmoPack.m_vecInitialVelocity", + "DT_AmmoPack.m_nItemDef", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags" + ], + "DT_AnimTimeMustBeFirst": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime" + ], + "DT_Animationlayer": [ + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder" + ], + "DT_AttributeContainer": [ + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity" + ], + "DT_AttributeList": [ + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency" + ], + "DT_AttributeManager": [ + "DT_AttributeManager.m_hOuter", + "DT_AttributeManager.m_ProviderType", + "DT_AttributeManager.m_iReapplyProvisionParity" + ], + "DT_BCCLocalPlayerExclusive": [ + "DT_BCCLocalPlayerExclusive.m_flNextAttack" + ], "DT_BaseAnimating": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", @@ -789,6 +1013,23 @@ "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale" ], + "DT_BaseBeam": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags" + ], "DT_BaseCombatCharacter": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", @@ -4059,6 +4300,10 @@ "DT_Beam.moveparent", "DT_Beam.m_nMinDXLevel" ], + "DT_BeamPredictableId": [ + "DT_BeamPredictableId.m_PredictableID", + "DT_BeamPredictableId.m_bIsPlayerSimulated" + ], "DT_BoneFollower": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", @@ -4105,282 +4350,98 @@ "DT_BoneFollower.m_modelIndex", "DT_BoneFollower.m_solidIndex" ], - "DT_CBonusDuckPickup": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_CBonusDuckPickup.m_bSpecial" - ], - "DT_CBonusPack": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_CurrencyPack.m_bDistributed" - ], - "DT_BonusRoundLogic": [ - "_LPT_m_aBonusPlayerRoll_33.lengthprop33", - "_ST_m_aBonusPlayerRoll_33.000", - "_ST_m_aBonusPlayerRoll_33.001", - "_ST_m_aBonusPlayerRoll_33.002", - "_ST_m_aBonusPlayerRoll_33.003", - "_ST_m_aBonusPlayerRoll_33.004", - "_ST_m_aBonusPlayerRoll_33.005", - "_ST_m_aBonusPlayerRoll_33.006", - "_ST_m_aBonusPlayerRoll_33.007", - "_ST_m_aBonusPlayerRoll_33.008", - "_ST_m_aBonusPlayerRoll_33.009", - "_ST_m_aBonusPlayerRoll_33.010", - "_ST_m_aBonusPlayerRoll_33.011", - "_ST_m_aBonusPlayerRoll_33.012", - "_ST_m_aBonusPlayerRoll_33.013", - "_ST_m_aBonusPlayerRoll_33.014", - "_ST_m_aBonusPlayerRoll_33.015", - "_ST_m_aBonusPlayerRoll_33.016", - "_ST_m_aBonusPlayerRoll_33.017", - "_ST_m_aBonusPlayerRoll_33.018", - "_ST_m_aBonusPlayerRoll_33.019", - "_ST_m_aBonusPlayerRoll_33.020", - "_ST_m_aBonusPlayerRoll_33.021", - "_ST_m_aBonusPlayerRoll_33.022", - "_ST_m_aBonusPlayerRoll_33.023", - "_ST_m_aBonusPlayerRoll_33.024", - "_ST_m_aBonusPlayerRoll_33.025", - "_ST_m_aBonusPlayerRoll_33.026", - "_ST_m_aBonusPlayerRoll_33.027", - "_ST_m_aBonusPlayerRoll_33.028", - "_ST_m_aBonusPlayerRoll_33.029", - "_ST_m_aBonusPlayerRoll_33.030", - "_ST_m_aBonusPlayerRoll_33.031", - "_ST_m_aBonusPlayerRoll_33.032", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_BonusRoundLogic.m_hBonusWinner" - ], - "DT_BreakableProp": [ + "DT_BonusRoundLogic": [ + "_LPT_m_aBonusPlayerRoll_33.lengthprop33", + "_ST_m_aBonusPlayerRoll_33.000", + "_ST_m_aBonusPlayerRoll_33.001", + "_ST_m_aBonusPlayerRoll_33.002", + "_ST_m_aBonusPlayerRoll_33.003", + "_ST_m_aBonusPlayerRoll_33.004", + "_ST_m_aBonusPlayerRoll_33.005", + "_ST_m_aBonusPlayerRoll_33.006", + "_ST_m_aBonusPlayerRoll_33.007", + "_ST_m_aBonusPlayerRoll_33.008", + "_ST_m_aBonusPlayerRoll_33.009", + "_ST_m_aBonusPlayerRoll_33.010", + "_ST_m_aBonusPlayerRoll_33.011", + "_ST_m_aBonusPlayerRoll_33.012", + "_ST_m_aBonusPlayerRoll_33.013", + "_ST_m_aBonusPlayerRoll_33.014", + "_ST_m_aBonusPlayerRoll_33.015", + "_ST_m_aBonusPlayerRoll_33.016", + "_ST_m_aBonusPlayerRoll_33.017", + "_ST_m_aBonusPlayerRoll_33.018", + "_ST_m_aBonusPlayerRoll_33.019", + "_ST_m_aBonusPlayerRoll_33.020", + "_ST_m_aBonusPlayerRoll_33.021", + "_ST_m_aBonusPlayerRoll_33.022", + "_ST_m_aBonusPlayerRoll_33.023", + "_ST_m_aBonusPlayerRoll_33.024", + "_ST_m_aBonusPlayerRoll_33.025", + "_ST_m_aBonusPlayerRoll_33.026", + "_ST_m_aBonusPlayerRoll_33.027", + "_ST_m_aBonusPlayerRoll_33.028", + "_ST_m_aBonusPlayerRoll_33.029", + "_ST_m_aBonusPlayerRoll_33.030", + "_ST_m_aBonusPlayerRoll_33.031", + "_ST_m_aBonusPlayerRoll_33.032", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_BonusRoundLogic.m_hBonusWinner" + ], + "DT_BreakableProp": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -4779,7 +4840,15 @@ "DT_BreakableSurface.m_bIsBroken", "DT_BreakableSurface.m_nSurfaceType" ], - "DT_CaptureFlag": [ + "DT_BuilderLocalData": [ + "m_aBuildableObjectTypes.000", + "m_aBuildableObjectTypes.001", + "m_aBuildableObjectTypes.002", + "m_aBuildableObjectTypes.003", + "DT_BuilderLocalData.m_iObjectType", + "DT_BuilderLocalData.m_hObjectBeingBuilt" + ], + "DT_CBonusDuckPickup": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -4869,29 +4938,14 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_DynamicProp.m_bUseHitboxesForRenderBox", - "DT_CaptureFlag.m_bDisabled", - "DT_CaptureFlag.m_bVisibleWhenDisabled", - "DT_CaptureFlag.m_nType", - "DT_CaptureFlag.m_nFlagStatus", - "DT_CaptureFlag.m_flResetTime", - "DT_CaptureFlag.m_flNeutralTime", - "DT_CaptureFlag.m_flMaxResetTime", - "DT_CaptureFlag.m_hPrevOwner", - "DT_CaptureFlag.m_szModel", - "DT_CaptureFlag.m_szHudIcon", - "DT_CaptureFlag.m_szPaperEffect", - "DT_CaptureFlag.m_szTrailEffect", - "DT_CaptureFlag.m_nUseTrailEffect", - "DT_CaptureFlag.m_nPointValue", - "DT_CaptureFlag.m_flAutoCapTime" + "DT_CBonusDuckPickup.m_bSpecial" ], - "DT_CaptureFlagReturnIcon": [ + "DT_CBonusPack": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -4906,8 +4960,37 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -4924,18 +5007,47 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting" + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_CurrencyPack.m_bDistributed" ], - "DT_CaptureZone": [ + "DT_CFish": [ + "DT_CFish.m_poolOrigin", + "DT_CFish.m_angle", + "DT_CFish.m_x", + "DT_CFish.m_y", + "DT_CFish.m_z", + "DT_CFish.m_nModelIndex", + "DT_CFish.m_lifeState", + "DT_CFish.m_waterLevel" + ], + "DT_CHalloweenPickup": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -4950,8 +5062,37 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -4968,26 +5109,38 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_CaptureZone.m_bDisabled" - ], - "DT_ColorCorrection": [ - "DT_ColorCorrection.m_vecOrigin", - "DT_ColorCorrection.m_MinFalloff", - "DT_ColorCorrection.m_MaxFalloff", - "DT_ColorCorrection.m_flCurWeight", - "DT_ColorCorrection.m_netlookupFilename", - "DT_ColorCorrection.m_bEnabled" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale" ], - "DT_ColorCorrectionVolume": [ - "DT_ColorCorrectionVolume.m_Weight", - "DT_ColorCorrectionVolume.m_lookupFilename" + "DT_CMannVsMachineWaveStats": [ + "DT_CMannVsMachineWaveStats.nCreditsDropped", + "DT_CMannVsMachineWaveStats.nCreditsAcquired", + "DT_CMannVsMachineWaveStats.nCreditsBonus", + "DT_CMannVsMachineWaveStats.nPlayerDeaths", + "DT_CMannVsMachineWaveStats.nBuyBacks" ], - "DT_CurrencyPack": [ + "DT_CaptureFlag": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -5077,9 +5230,24 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_CurrencyPack.m_bDistributed" + "DT_DynamicProp.m_bUseHitboxesForRenderBox", + "DT_CaptureFlag.m_bDisabled", + "DT_CaptureFlag.m_bVisibleWhenDisabled", + "DT_CaptureFlag.m_nType", + "DT_CaptureFlag.m_nFlagStatus", + "DT_CaptureFlag.m_flResetTime", + "DT_CaptureFlag.m_flNeutralTime", + "DT_CaptureFlag.m_flMaxResetTime", + "DT_CaptureFlag.m_hPrevOwner", + "DT_CaptureFlag.m_szModel", + "DT_CaptureFlag.m_szHudIcon", + "DT_CaptureFlag.m_szPaperEffect", + "DT_CaptureFlag.m_szTrailEffect", + "DT_CaptureFlag.m_nUseTrailEffect", + "DT_CaptureFlag.m_nPointValue", + "DT_CaptureFlag.m_flAutoCapTime" ], - "DT_DynamicLight": [ + "DT_CaptureFlagReturnIcon": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -5121,21 +5289,14 @@ "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_DynamicLight.m_Flags", - "DT_DynamicLight.m_LightStyle", - "DT_DynamicLight.m_Radius", - "DT_DynamicLight.m_Exponent", - "DT_DynamicLight.m_InnerAngle", - "DT_DynamicLight.m_OuterAngle", - "DT_DynamicLight.m_SpotRadius" + "DT_BaseEntity.m_bAlternateSorting" ], - "DT_DynamicProp": [ + "DT_CaptureZone": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -5150,37 +5311,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -5197,33 +5329,40 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_DynamicProp.m_bUseHitboxesForRenderBox" + "DT_CaptureZone.m_bDisabled" ], - "DT_EconEntity": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_CollisionProperty": [ + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs" + ], + "DT_ColorCorrection": [ + "DT_ColorCorrection.m_vecOrigin", + "DT_ColorCorrection.m_MinFalloff", + "DT_ColorCorrection.m_MaxFalloff", + "DT_ColorCorrection.m_flCurWeight", + "DT_ColorCorrection.m_netlookupFilename", + "DT_ColorCorrection.m_bEnabled" + ], + "DT_ColorCorrectionVolume": [ + "DT_ColorCorrectionVolume.m_Weight", + "DT_ColorCorrectionVolume.m_lookupFilename" + ], + "DT_Crossbow": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -5328,6 +5467,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -5368,9 +5522,320 @@ "DT_BaseAnimating.m_hLightingOriginRelative", "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_WearableItem": [ + "DT_CurrencyPack": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_CurrencyPack.m_bDistributed" + ], + "DT_DetailController": [ + "DT_DetailController.m_flFadeStartDist", + "DT_DetailController.m_flFadeEndDist" + ], + "DT_DustTrail": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_DustTrail.m_SpawnRate", + "DT_DustTrail.m_Color", + "DT_DustTrail.m_ParticleLifetime", + "DT_DustTrail.m_StopEmitTime", + "DT_DustTrail.m_MinSpeed", + "DT_DustTrail.m_MaxSpeed", + "DT_DustTrail.m_MinDirectedSpeed", + "DT_DustTrail.m_MaxDirectedSpeed", + "DT_DustTrail.m_StartSize", + "DT_DustTrail.m_EndSize", + "DT_DustTrail.m_SpawnRadius", + "DT_DustTrail.m_bEmit", + "DT_DustTrail.m_Opacity" + ], + "DT_DynamicLight": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_DynamicLight.m_Flags", + "DT_DynamicLight.m_LightStyle", + "DT_DynamicLight.m_Radius", + "DT_DynamicLight.m_Exponent", + "DT_DynamicLight.m_InnerAngle", + "DT_DynamicLight.m_OuterAngle", + "DT_DynamicLight.m_SpotRadius" + ], + "DT_DynamicProp": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_DynamicProp.m_bUseHitboxesForRenderBox" + ], + "DT_EconEntity": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -5518,6 +5983,36 @@ "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale" ], + "DT_EffectData": [ + "DT_EffectData.m_vOrigin[0]", + "DT_EffectData.m_vOrigin[1]", + "DT_EffectData.m_vOrigin[2]", + "DT_EffectData.m_vStart[0]", + "DT_EffectData.m_vStart[1]", + "DT_EffectData.m_vStart[2]", + "DT_EffectData.m_vAngles", + "DT_EffectData.m_vNormal", + "DT_EffectData.m_fFlags", + "DT_EffectData.m_flMagnitude", + "DT_EffectData.m_flScale", + "DT_EffectData.m_nAttachmentIndex", + "DT_EffectData.m_nSurfaceProp", + "DT_EffectData.m_iEffectName", + "DT_EffectData.m_nMaterial", + "DT_EffectData.m_nDamageType", + "DT_EffectData.m_nHitBox", + "DT_EffectData.entindex", + "DT_EffectData.m_nColor", + "DT_EffectData.m_flRadius", + "DT_EffectData.m_bCustomColors", + "DT_EffectData.m_CustomColors.m_vecColor1", + "DT_EffectData.m_CustomColors.m_vecColor2", + "DT_EffectData.m_bControlPoint1", + "DT_EffectData.m_ControlPoint1.m_eParticleAttachment", + "DT_EffectData.m_ControlPoint1.m_vecOffset[0]", + "DT_EffectData.m_ControlPoint1.m_vecOffset[1]", + "DT_EffectData.m_ControlPoint1.m_vecOffset[2]" + ], "DT_Embers": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", @@ -5714,9 +6209,10 @@ "DT_EntityParticleTrail.m_iMaterialName", "DT_EntityParticleTrail.m_hConstraintEntity" ], - "DT_DetailController": [ - "DT_DetailController.m_flFadeStartDist", - "DT_DetailController.m_flFadeEndDist" + "DT_EntityParticleTrailInfo": [ + "DT_EntityParticleTrailInfo.m_flLifetime", + "DT_EntityParticleTrailInfo.m_flStartSize", + "DT_EntityParticleTrailInfo.m_flEndSize" ], "DT_EnvParticleScript": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", @@ -5868,54 +6364,6 @@ "DT_EnvProjectedTexture.m_flFarZ", "DT_EnvProjectedTexture.m_nShadowQuality" ], - "DT_QuadraticBeam": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_QuadraticBeam.m_targetPosition", - "DT_QuadraticBeam.m_controlPosition", - "DT_QuadraticBeam.m_scrollRate", - "DT_QuadraticBeam.m_flWidth" - ], "DT_EnvScreenEffect": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", @@ -6076,6 +6524,20 @@ "DT_EnvWindShared.m_flStartTime", "DT_EnvWindShared.m_flGustDuration" ], + "DT_EnvWindShared": [ + "DT_EnvWindShared.m_iMinWind", + "DT_EnvWindShared.m_iMaxWind", + "DT_EnvWindShared.m_iMinGust", + "DT_EnvWindShared.m_iMaxGust", + "DT_EnvWindShared.m_flMinGustDelay", + "DT_EnvWindShared.m_flMaxGustDelay", + "DT_EnvWindShared.m_iGustDirChange", + "DT_EnvWindShared.m_iWindSeed", + "DT_EnvWindShared.m_iInitialWindDir", + "DT_EnvWindShared.m_flInitialWindSpeed", + "DT_EnvWindShared.m_flStartTime", + "DT_EnvWindShared.m_flGustDuration" + ], "DT_EyeballBoss": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", @@ -6489,16 +6951,6 @@ "DT_FireTrail.m_nAttachment", "DT_FireTrail.m_flLifetime" ], - "DT_CFish": [ - "DT_CFish.m_poolOrigin", - "DT_CFish.m_angle", - "DT_CFish.m_x", - "DT_CFish.m_y", - "DT_CFish.m_z", - "DT_CFish.m_nModelIndex", - "DT_CFish.m_lifeState", - "DT_CFish.m_waterLevel" - ], "DT_FogController": [ "DT_FogController.m_fog.enable", "DT_FogController.m_fog.blend", @@ -6516,76 +6968,6 @@ "DT_FogController.m_fog.lerptime", "DT_FogController.m_fog.duration" ], - "DT_Func_Dust": [ - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_Func_Dust.m_Color", - "DT_Func_Dust.m_SpawnRate", - "DT_Func_Dust.m_SpeedMax", - "DT_Func_Dust.m_flSizeMin", - "DT_Func_Dust.m_flSizeMax", - "DT_Func_Dust.m_DistMax", - "DT_Func_Dust.m_LifetimeMin", - "DT_Func_Dust.m_LifetimeMax", - "DT_Func_Dust.m_DustFlags", - "DT_Func_Dust.m_nModelIndex", - "DT_Func_Dust.m_FallSpeed" - ], - "DT_Func_LOD": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_Func_LOD.m_fDisappearDist" - ], "DT_FuncAreaPortalWindow": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", @@ -7095,9 +7477,78 @@ "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting" ], - "DT_GameRulesProxy": [], - "DT_CHalloweenPickup": [ + "DT_Func_Dust": [ + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_Func_Dust.m_Color", + "DT_Func_Dust.m_SpawnRate", + "DT_Func_Dust.m_SpeedMax", + "DT_Func_Dust.m_flSizeMin", + "DT_Func_Dust.m_flSizeMax", + "DT_Func_Dust.m_DistMax", + "DT_Func_Dust.m_LifetimeMin", + "DT_Func_Dust.m_LifetimeMax", + "DT_Func_Dust.m_DustFlags", + "DT_Func_Dust.m_nModelIndex", + "DT_Func_Dust.m_FallSpeed" + ], + "DT_Func_LOD": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_Func_LOD.m_fDisappearDist" + ], + "DT_GameRulesProxy": [], + "DT_GrapplingHook": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -7145,6 +7596,78 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -7185,7 +7708,22 @@ "DT_BaseAnimating.m_hLightingOriginRelative", "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], "DT_HalloweenSoulPack": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", @@ -7845,177 +8383,452 @@ "DT_LightGlow.m_flGlowProxySize", "DT_LightGlow.HDRColorScale" ], - "DT_MannVsMachineStats": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CMannVsMachineWaveStats.nCreditsDropped", - "DT_CMannVsMachineWaveStats.nCreditsAcquired", - "DT_CMannVsMachineWaveStats.nCreditsBonus", - "DT_CMannVsMachineWaveStats.nPlayerDeaths", - "DT_CMannVsMachineWaveStats.nBuyBacks", - "DT_CMannVsMachineWaveStats.nCreditsDropped", - "DT_CMannVsMachineWaveStats.nCreditsAcquired", - "DT_CMannVsMachineWaveStats.nCreditsBonus", - "DT_CMannVsMachineWaveStats.nPlayerDeaths", - "DT_CMannVsMachineWaveStats.nBuyBacks", - "DT_CMannVsMachineWaveStats.nCreditsDropped", - "DT_CMannVsMachineWaveStats.nCreditsAcquired", - "DT_CMannVsMachineWaveStats.nCreditsBonus", - "DT_CMannVsMachineWaveStats.nPlayerDeaths", - "DT_CMannVsMachineWaveStats.nBuyBacks", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_MannVsMachineStats.m_iCurrentWaveIdx", - "DT_MannVsMachineStats.m_iServerWaveID", - "DT_MannVsMachineStats.m_iCurrencyCollectedForRespec", - "DT_MannVsMachineStats.m_nRespecsAwardedInWave" + "DT_Local": [ + "DT_Local.m_flDucktime", + "DT_Local.m_flFallVelocity", + "DT_Local.m_vecPunchAngle", + "m_chAreaBits.003", + "m_chAreaBits.004", + "m_chAreaBits.005", + "m_chAreaBits.006", + "m_chAreaBits.007", + "m_chAreaBits.008", + "m_chAreaBits.009", + "m_chAreaBits.010", + "m_chAreaBits.011", + "m_chAreaBits.012", + "m_chAreaBits.013", + "m_chAreaBits.014", + "m_chAreaBits.015", + "m_chAreaBits.016", + "m_chAreaBits.017", + "m_chAreaBits.018", + "m_chAreaBits.019", + "m_chAreaBits.020", + "m_chAreaBits.021", + "m_chAreaBits.022", + "m_chAreaBits.023", + "m_chAreaBits.024", + "m_chAreaBits.025", + "m_chAreaBits.026", + "m_chAreaBits.027", + "m_chAreaBits.028", + "m_chAreaBits.029", + "m_chAreaBits.030", + "m_chAreaBits.031", + "m_chAreaPortalBits.000", + "m_chAreaPortalBits.001", + "m_chAreaPortalBits.002", + "m_chAreaPortalBits.003", + "m_chAreaPortalBits.004", + "m_chAreaPortalBits.005", + "m_chAreaPortalBits.006", + "m_chAreaPortalBits.007", + "m_chAreaPortalBits.008", + "m_chAreaPortalBits.009", + "m_chAreaPortalBits.010", + "m_chAreaPortalBits.011", + "m_chAreaPortalBits.012", + "m_chAreaPortalBits.013", + "m_chAreaPortalBits.014", + "m_chAreaPortalBits.015", + "m_chAreaPortalBits.016", + "m_chAreaPortalBits.017", + "m_chAreaPortalBits.018", + "m_chAreaPortalBits.019", + "m_chAreaPortalBits.020", + "m_chAreaPortalBits.021", + "m_chAreaPortalBits.022", + "m_chAreaPortalBits.023", + "DT_Local.m_iHideHUD", + "DT_Local.m_flFOVRate", + "DT_Local.m_bDucked", + "DT_Local.m_bDucking", + "DT_Local.m_bInDuckJump", + "m_chAreaBits.000", + "DT_Local.m_flDuckJumpTime", + "DT_Local.m_flJumpTime", + "m_chAreaBits.001", + "m_chAreaBits.002", + "DT_Local.m_vecPunchAngleVel", + "DT_Local.m_bDrawViewmodel", + "DT_Local.m_bWearingSuit", + "DT_Local.m_bPoisoned", + "DT_Local.m_flStepSize", + "DT_Local.m_bAllowAutoMovement", + "DT_Local.m_skybox3d.scale", + "DT_Local.m_skybox3d.origin", + "DT_Local.m_skybox3d.area", + "DT_Local.m_skybox3d.fog.enable", + "DT_Local.m_skybox3d.fog.blend", + "DT_Local.m_skybox3d.fog.dirPrimary", + "DT_Local.m_skybox3d.fog.colorPrimary", + "DT_Local.m_skybox3d.fog.colorSecondary", + "DT_Local.m_skybox3d.fog.start", + "DT_Local.m_skybox3d.fog.end", + "DT_Local.m_skybox3d.fog.maxdensity", + "DT_Local.m_PlayerFog.m_hCtrl", + "DT_Local.m_audio.localSound[0]", + "DT_Local.m_audio.localSound[1]", + "DT_Local.m_audio.localSound[2]", + "DT_Local.m_audio.localSound[3]", + "DT_Local.m_audio.localSound[4]", + "DT_Local.m_audio.localSound[5]", + "DT_Local.m_audio.localSound[6]", + "DT_Local.m_audio.localSound[7]", + "DT_Local.m_audio.soundscapeIndex", + "DT_Local.m_audio.localBits", + "DT_Local.m_audio.ent" ], - "DT_MaterialModifyControl": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_MaterialModifyControl.m_szMaterialName", - "DT_MaterialModifyControl.m_szMaterialVar", - "DT_MaterialModifyControl.m_szMaterialVarValue", - "DT_MaterialModifyControl.m_iFrameStart", - "DT_MaterialModifyControl.m_iFrameEnd", - "DT_MaterialModifyControl.m_bWrap", - "DT_MaterialModifyControl.m_flFramerate", - "DT_MaterialModifyControl.m_bNewAnimCommandsSemaphore", - "DT_MaterialModifyControl.m_flFloatLerpStartValue", - "DT_MaterialModifyControl.m_flFloatLerpEndValue", - "DT_MaterialModifyControl.m_flFloatLerpTransitionTime", - "DT_MaterialModifyControl.m_nModifyMode" + "DT_LocalActiveWeaponData": [ + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle" ], - "DT_Merasmus": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", + "DT_LocalFlameThrower": [ + "DT_LocalFlameThrower.m_iActiveFlames", + "DT_LocalFlameThrower.m_iDamagingFlames" + ], + "DT_LocalPlayerExclusive": [ + "DT_Local.m_flDucktime", + "DT_Local.m_flFallVelocity", + "DT_Local.m_vecPunchAngle", + "DT_LocalPlayerExclusive.m_vecViewOffset[2]", + "DT_LocalPlayerExclusive.m_nTickBase", + "DT_LocalPlayerExclusive.m_hGroundEntity", + "DT_LocalPlayerExclusive.m_vecVelocity[0]", + "DT_LocalPlayerExclusive.m_vecVelocity[1]", + "DT_LocalPlayerExclusive.m_vecVelocity[2]", + "m_chAreaBits.009", + "m_chAreaBits.010", + "m_chAreaBits.011", + "m_chAreaBits.012", + "m_chAreaBits.013", + "m_chAreaBits.014", + "m_chAreaBits.015", + "m_chAreaBits.016", + "m_chAreaBits.017", + "m_chAreaBits.018", + "m_chAreaBits.019", + "m_chAreaBits.020", + "m_chAreaBits.021", + "m_chAreaBits.022", + "m_chAreaBits.023", + "m_chAreaBits.024", + "m_chAreaBits.025", + "m_chAreaBits.026", + "m_chAreaBits.027", + "m_chAreaBits.028", + "m_chAreaBits.029", + "m_chAreaBits.030", + "m_chAreaBits.031", + "m_chAreaPortalBits.000", + "m_chAreaPortalBits.001", + "m_chAreaPortalBits.002", + "m_chAreaPortalBits.003", + "m_chAreaPortalBits.004", + "m_chAreaPortalBits.005", + "m_chAreaPortalBits.006", + "m_chAreaPortalBits.007", + "m_chAreaPortalBits.008", + "m_chAreaPortalBits.009", + "m_chAreaPortalBits.010", + "m_chAreaPortalBits.011", + "m_chAreaPortalBits.012", + "m_chAreaPortalBits.013", + "m_chAreaPortalBits.014", + "m_chAreaPortalBits.015", + "m_chAreaPortalBits.016", + "m_chAreaPortalBits.017", + "m_chAreaPortalBits.018", + "m_chAreaPortalBits.019", + "m_chAreaPortalBits.020", + "m_chAreaPortalBits.021", + "m_chAreaPortalBits.022", + "m_chAreaPortalBits.023", + "DT_Local.m_iHideHUD", + "DT_Local.m_flFOVRate", + "DT_Local.m_bDucked", + "DT_Local.m_bDucking", + "DT_Local.m_bInDuckJump", + "m_chAreaBits.000", + "DT_Local.m_flDuckJumpTime", + "DT_Local.m_flJumpTime", + "m_chAreaBits.001", + "m_chAreaBits.002", + "DT_Local.m_vecPunchAngleVel", + "DT_Local.m_bDrawViewmodel", + "DT_Local.m_bWearingSuit", + "DT_Local.m_bPoisoned", + "DT_Local.m_flStepSize", + "DT_Local.m_bAllowAutoMovement", + "DT_Local.m_skybox3d.scale", + "DT_Local.m_skybox3d.origin", + "DT_Local.m_skybox3d.area", + "DT_Local.m_skybox3d.fog.enable", + "DT_Local.m_skybox3d.fog.blend", + "DT_Local.m_skybox3d.fog.dirPrimary", + "DT_Local.m_skybox3d.fog.colorPrimary", + "DT_Local.m_skybox3d.fog.colorSecondary", + "DT_Local.m_skybox3d.fog.start", + "DT_Local.m_skybox3d.fog.end", + "DT_Local.m_skybox3d.fog.maxdensity", + "DT_Local.m_PlayerFog.m_hCtrl", + "DT_Local.m_audio.localSound[0]", + "DT_Local.m_audio.localSound[1]", + "DT_Local.m_audio.localSound[2]", + "DT_Local.m_audio.localSound[3]", + "DT_Local.m_audio.localSound[4]", + "DT_Local.m_audio.localSound[5]", + "DT_Local.m_audio.localSound[6]", + "DT_Local.m_audio.localSound[7]", + "DT_Local.m_audio.soundscapeIndex", + "DT_Local.m_audio.localBits", + "DT_Local.m_audio.ent", + "m_iAmmo.000", + "m_iAmmo.001", + "m_iAmmo.002", + "m_iAmmo.003", + "m_iAmmo.004", + "m_iAmmo.005", + "m_iAmmo.006", + "m_iAmmo.007", + "m_iAmmo.008", + "m_iAmmo.009", + "m_iAmmo.010", + "m_iAmmo.011", + "m_iAmmo.012", + "m_iAmmo.013", + "m_iAmmo.014", + "m_iAmmo.015", + "m_iAmmo.016", + "m_iAmmo.017", + "m_iAmmo.018", + "m_iAmmo.019", + "m_iAmmo.020", + "m_iAmmo.021", + "m_iAmmo.022", + "m_iAmmo.023", + "m_iAmmo.024", + "m_iAmmo.025", + "m_iAmmo.026", + "m_iAmmo.027", + "m_iAmmo.028", + "m_iAmmo.029", + "m_iAmmo.030", + "m_iAmmo.031", + "DT_LocalPlayerExclusive.m_vecViewOffset[0]", + "DT_LocalPlayerExclusive.m_vecViewOffset[1]", + "m_chAreaBits.003", + "DT_LocalPlayerExclusive.m_flFriction", + "DT_LocalPlayerExclusive.m_fOnTarget", + "m_chAreaBits.004", + "DT_LocalPlayerExclusive.m_nNextThinkTick", + "DT_LocalPlayerExclusive.m_hLastWeapon", + "m_chAreaBits.005", + "m_chAreaBits.006", + "m_chAreaBits.007", + "m_chAreaBits.008", + "DT_LocalPlayerExclusive.m_vecBaseVelocity", + "DT_LocalPlayerExclusive.m_hConstraintEntity", + "DT_LocalPlayerExclusive.m_vecConstraintCenter", + "DT_LocalPlayerExclusive.m_flConstraintRadius", + "DT_LocalPlayerExclusive.m_flConstraintWidth", + "DT_LocalPlayerExclusive.m_flConstraintSpeedFactor", + "DT_LocalPlayerExclusive.m_flDeathTime", + "DT_LocalPlayerExclusive.m_nWaterLevel", + "DT_LocalPlayerExclusive.m_flLaggedMovementValue" + ], + "DT_LocalTFWeaponData": [ + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance" + ], + "DT_LocalTFWeaponMedigunData": [ + "DT_LocalTFWeaponMedigunData.m_flChargeLevel" + ], + "DT_LocalWeaponData": [ + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel" + ], + "DT_MannVsMachineStats": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CMannVsMachineWaveStats.nCreditsDropped", + "DT_CMannVsMachineWaveStats.nCreditsAcquired", + "DT_CMannVsMachineWaveStats.nCreditsBonus", + "DT_CMannVsMachineWaveStats.nPlayerDeaths", + "DT_CMannVsMachineWaveStats.nBuyBacks", + "DT_CMannVsMachineWaveStats.nCreditsDropped", + "DT_CMannVsMachineWaveStats.nCreditsAcquired", + "DT_CMannVsMachineWaveStats.nCreditsBonus", + "DT_CMannVsMachineWaveStats.nPlayerDeaths", + "DT_CMannVsMachineWaveStats.nBuyBacks", + "DT_CMannVsMachineWaveStats.nCreditsDropped", + "DT_CMannVsMachineWaveStats.nCreditsAcquired", + "DT_CMannVsMachineWaveStats.nCreditsBonus", + "DT_CMannVsMachineWaveStats.nPlayerDeaths", + "DT_CMannVsMachineWaveStats.nBuyBacks", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_MannVsMachineStats.m_iCurrentWaveIdx", + "DT_MannVsMachineStats.m_iServerWaveID", + "DT_MannVsMachineStats.m_iCurrencyCollectedForRespec", + "DT_MannVsMachineStats.m_nRespecsAwardedInWave" + ], + "DT_MaterialModifyControl": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_MaterialModifyControl.m_szMaterialName", + "DT_MaterialModifyControl.m_szMaterialVar", + "DT_MaterialModifyControl.m_szMaterialVarValue", + "DT_MaterialModifyControl.m_iFrameStart", + "DT_MaterialModifyControl.m_iFrameEnd", + "DT_MaterialModifyControl.m_bWrap", + "DT_MaterialModifyControl.m_flFramerate", + "DT_MaterialModifyControl.m_bNewAnimCommandsSemaphore", + "DT_MaterialModifyControl.m_flFloatLerpStartValue", + "DT_MaterialModifyControl.m_flFloatLerpEndValue", + "DT_MaterialModifyControl.m_flFloatLerpTransitionTime", + "DT_MaterialModifyControl.m_nModifyMode" + ], + "DT_Merasmus": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", "DT_Animationlayer.m_flPrevCycle", "DT_Animationlayer.m_flWeight", "DT_Animationlayer.m_nOrder", @@ -8381,7 +9194,51 @@ "DT_MonsterResource.m_fSkillShotComboEndTime", "DT_MonsterResource.m_iBossState" ], - "DT_ObjectCartDispenser": [ + "DT_MovieExplosion": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting" + ], + "DT_NextBot": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -8695,37 +9552,9 @@ "DT_BaseFlex.m_blinktoggle", "DT_BaseFlex.m_viewtarget", "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_BaseObject.m_iHealth", - "DT_BaseObject.m_iMaxHealth", - "DT_BaseObject.m_bHasSapper", - "DT_BaseObject.m_iObjectType", - "DT_BaseObject.m_bBuilding", - "DT_BaseObject.m_bPlacing", - "DT_BaseObject.m_bCarried", - "DT_BaseObject.m_bCarryDeploy", - "DT_BaseObject.m_bMiniBuilding", - "DT_BaseObject.m_flPercentageConstructed", - "DT_BaseObject.m_fObjectFlags", - "DT_BaseObject.m_hBuiltOnEntity", - "DT_BaseObject.m_bDisabled", - "DT_BaseObject.m_hBuilder", - "DT_BaseObject.m_vecBuildMaxs", - "DT_BaseObject.m_vecBuildMins", - "DT_BaseObject.m_iDesiredBuildRotations", - "DT_BaseObject.m_bServerOverridePlacement", - "DT_BaseObject.m_iUpgradeLevel", - "DT_BaseObject.m_iUpgradeMetal", - "DT_BaseObject.m_iUpgradeMetalRequired", - "DT_BaseObject.m_iHighestUpgradeLevel", - "DT_BaseObject.m_iObjectMode", - "DT_BaseObject.m_bDisposableBuilding", - "DT_ObjectDispenser.m_iState", - "DT_ObjectDispenser.m_iAmmoMetal", - "DT_ObjectDispenser.m_iMiniBombCounter", - "DT_ObjectDispenser.\"healing_array\"" + "DT_BaseCombatCharacter.m_hActiveWeapon" ], - "DT_ObjectDispenser": [ + "DT_ObjectCartDispenser": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -9069,7 +9898,7 @@ "DT_ObjectDispenser.m_iMiniBombCounter", "DT_ObjectDispenser.\"healing_array\"" ], - "DT_ObjectSapper": [ + "DT_ObjectDispenser": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -9407,18 +10236,22 @@ "DT_BaseObject.m_iUpgradeMetalRequired", "DT_BaseObject.m_iHighestUpgradeLevel", "DT_BaseObject.m_iObjectMode", - "DT_BaseObject.m_bDisposableBuilding" + "DT_BaseObject.m_bDisposableBuilding", + "DT_ObjectDispenser.m_iState", + "DT_ObjectDispenser.m_iAmmoMetal", + "DT_ObjectDispenser.m_iMiniBombCounter", + "DT_ObjectDispenser.\"healing_array\"" ], - "DT_ObjectSentrygun": [ + "DT_ObjectSapper": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", - "DT_SentrygunLocalData.m_iKills", - "DT_SentrygunLocalData.m_iAssists", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_ObjectSentrygun.m_iAmmoShells", - "DT_ObjectSentrygun.m_iAmmoRockets", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", @@ -9681,8 +10514,6 @@ "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -9699,7 +10530,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -9749,25 +10580,18 @@ "DT_BaseObject.m_iUpgradeMetalRequired", "DT_BaseObject.m_iHighestUpgradeLevel", "DT_BaseObject.m_iObjectMode", - "DT_BaseObject.m_bDisposableBuilding", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_ObjectSentrygun.m_iState", - "DT_ObjectSentrygun.m_bPlayerControlled", - "DT_ObjectSentrygun.m_nShieldLevel", - "DT_ObjectSentrygun.m_hEnemy", - "DT_ObjectSentrygun.m_hAutoAimTarget" + "DT_BaseObject.m_bDisposableBuilding" ], - "DT_ObjectTeleporter": [ + "DT_ObjectSentrygun": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", + "DT_SentrygunLocalData.m_iKills", + "DT_SentrygunLocalData.m_iAssists", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", + "DT_ObjectSentrygun.m_iAmmoShells", + "DT_ObjectSentrygun.m_iAmmoRockets", "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", @@ -10030,6 +10854,8 @@ "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -10046,7 +10872,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_usSolidFlags", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -10097,291 +10923,15 @@ "DT_BaseObject.m_iHighestUpgradeLevel", "DT_BaseObject.m_iObjectMode", "DT_BaseObject.m_bDisposableBuilding", - "DT_ObjectTeleporter.m_iState", - "DT_ObjectTeleporter.m_flRechargeTime", - "DT_ObjectTeleporter.m_flCurrentRechargeDuration", - "DT_ObjectTeleporter.m_iTimesUsed", - "DT_ObjectTeleporter.m_flYawToExit", - "DT_ObjectTeleporter.m_bMatchBuilding" - ], - "DT_ParticleFire": [ - "DT_ParticleFire.m_vOrigin", - "DT_ParticleFire.m_vDirection" - ], - "DT_ParticlePerformanceMonitor": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_ParticlePerformanceMonitor.m_bDisplayPerf", - "DT_ParticlePerformanceMonitor.m_bMeasurePerf" - ], - "DT_ParticleSystem": [ - "DT_ParticleSystem.m_vecOrigin", - "DT_ParticleSystem.m_angRotation", - "m_hControlPointEnts.002", - "m_hControlPointEnts.003", - "m_hControlPointEnts.004", - "m_hControlPointEnts.005", - "m_hControlPointEnts.006", - "m_hControlPointEnts.007", - "m_hControlPointEnts.008", - "m_hControlPointEnts.009", - "m_hControlPointEnts.010", - "m_hControlPointEnts.011", - "m_hControlPointEnts.012", - "m_hControlPointEnts.013", - "m_hControlPointEnts.014", - "m_hControlPointEnts.015", - "m_hControlPointEnts.016", - "m_hControlPointEnts.017", - "m_hControlPointEnts.018", - "m_hControlPointEnts.019", - "m_hControlPointEnts.020", - "m_hControlPointEnts.021", - "m_hControlPointEnts.022", - "m_hControlPointEnts.023", - "m_hControlPointEnts.024", - "m_hControlPointEnts.025", - "m_hControlPointEnts.026", - "m_hControlPointEnts.027", - "m_hControlPointEnts.028", - "m_hControlPointEnts.029", - "m_hControlPointEnts.030", - "m_hControlPointEnts.031", - "m_hControlPointEnts.032", - "m_hControlPointEnts.033", - "m_hControlPointEnts.034", - "m_hControlPointEnts.035", - "m_hControlPointEnts.036", - "m_hControlPointEnts.037", - "m_hControlPointEnts.038", - "m_hControlPointEnts.039", - "m_hControlPointEnts.040", - "m_hControlPointEnts.041", - "m_hControlPointEnts.042", - "m_hControlPointEnts.043", - "m_hControlPointEnts.044", - "m_hControlPointEnts.045", - "m_hControlPointEnts.046", - "m_hControlPointEnts.047", - "m_hControlPointEnts.048", - "m_hControlPointEnts.049", - "m_hControlPointEnts.050", - "m_hControlPointEnts.051", - "m_hControlPointEnts.052", - "m_hControlPointEnts.053", - "m_hControlPointEnts.054", - "m_hControlPointEnts.055", - "m_hControlPointEnts.056", - "m_hControlPointEnts.057", - "m_hControlPointEnts.058", - "m_hControlPointEnts.059", - "m_hControlPointEnts.060", - "m_hControlPointEnts.061", - "m_hControlPointEnts.062", - "m_iControlPointParents.000", - "m_iControlPointParents.001", - "m_iControlPointParents.002", - "m_iControlPointParents.003", - "m_iControlPointParents.004", - "m_iControlPointParents.005", - "m_iControlPointParents.006", - "m_iControlPointParents.007", - "m_iControlPointParents.008", - "m_iControlPointParents.009", - "m_iControlPointParents.010", - "m_iControlPointParents.011", - "m_iControlPointParents.012", - "m_iControlPointParents.013", - "m_iControlPointParents.014", - "m_iControlPointParents.015", - "m_iControlPointParents.016", - "m_iControlPointParents.017", - "m_iControlPointParents.018", - "m_iControlPointParents.019", - "m_iControlPointParents.020", - "m_iControlPointParents.021", - "m_iControlPointParents.022", - "m_iControlPointParents.023", - "m_iControlPointParents.024", - "m_iControlPointParents.025", - "m_iControlPointParents.026", - "m_iControlPointParents.027", - "m_iControlPointParents.028", - "m_iControlPointParents.029", - "m_iControlPointParents.030", - "m_iControlPointParents.031", - "m_iControlPointParents.032", - "m_iControlPointParents.033", - "m_iControlPointParents.034", - "m_iControlPointParents.035", - "m_iControlPointParents.036", - "m_iControlPointParents.037", - "m_iControlPointParents.038", - "m_iControlPointParents.039", - "m_iControlPointParents.040", - "m_iControlPointParents.041", - "m_iControlPointParents.042", - "m_iControlPointParents.043", - "m_iControlPointParents.044", - "m_iControlPointParents.045", - "m_iControlPointParents.046", - "m_iControlPointParents.047", - "m_iControlPointParents.048", - "m_iControlPointParents.049", - "m_iControlPointParents.050", - "m_iControlPointParents.051", - "m_iControlPointParents.052", - "m_iControlPointParents.053", - "m_iControlPointParents.054", - "m_iControlPointParents.055", - "m_iControlPointParents.056", - "m_iControlPointParents.057", - "m_iControlPointParents.058", - "m_iControlPointParents.059", - "m_iControlPointParents.060", - "m_iControlPointParents.061", - "m_iControlPointParents.062", - "m_hControlPointEnts.000", - "DT_ParticleSystem.m_hOwnerEntity", - "DT_ParticleSystem.moveparent", - "DT_ParticleSystem.m_iParentAttachment", - "m_hControlPointEnts.001", - "DT_ParticleSystem.m_iEffectIndex", - "DT_ParticleSystem.m_bActive", - "DT_ParticleSystem.m_flStartTime", - "DT_ParticleSystem.m_bWeatherEffect" - ], - "DT_PhysBox": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting" - ], - "DT_PhysBoxMultiplayer": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_PhysBoxMultiplayer.m_iPhysicsMode", - "DT_PhysBoxMultiplayer.m_fMass" + "DT_ObjectSentrygun.m_iState", + "DT_ObjectSentrygun.m_bPlayerControlled", + "DT_ObjectSentrygun.m_nShieldLevel", + "DT_ObjectSentrygun.m_hEnemy", + "DT_ObjectSentrygun.m_hAutoAimTarget" ], - "DT_PhysicsProp": [ + "DT_ObjectTeleporter": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -10430,6 +10980,227 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -10471,10 +11242,120 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_PhysicsProp.m_bAwake" + "DT_BaseFlex.m_blinktoggle", + "DT_BaseFlex.m_viewtarget", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_BaseObject.m_iHealth", + "DT_BaseObject.m_iMaxHealth", + "DT_BaseObject.m_bHasSapper", + "DT_BaseObject.m_iObjectType", + "DT_BaseObject.m_bBuilding", + "DT_BaseObject.m_bPlacing", + "DT_BaseObject.m_bCarried", + "DT_BaseObject.m_bCarryDeploy", + "DT_BaseObject.m_bMiniBuilding", + "DT_BaseObject.m_flPercentageConstructed", + "DT_BaseObject.m_fObjectFlags", + "DT_BaseObject.m_hBuiltOnEntity", + "DT_BaseObject.m_bDisabled", + "DT_BaseObject.m_hBuilder", + "DT_BaseObject.m_vecBuildMaxs", + "DT_BaseObject.m_vecBuildMins", + "DT_BaseObject.m_iDesiredBuildRotations", + "DT_BaseObject.m_bServerOverridePlacement", + "DT_BaseObject.m_iUpgradeLevel", + "DT_BaseObject.m_iUpgradeMetal", + "DT_BaseObject.m_iUpgradeMetalRequired", + "DT_BaseObject.m_iHighestUpgradeLevel", + "DT_BaseObject.m_iObjectMode", + "DT_BaseObject.m_bDisposableBuilding", + "DT_ObjectTeleporter.m_iState", + "DT_ObjectTeleporter.m_flRechargeTime", + "DT_ObjectTeleporter.m_flCurrentRechargeDuration", + "DT_ObjectTeleporter.m_iTimesUsed", + "DT_ObjectTeleporter.m_flYawToExit", + "DT_ObjectTeleporter.m_bMatchBuilding" ], - "DT_PhysicsPropMultiplayer": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_OverlayVars": [ + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder" + ], + "DT_ParticleCannon": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -10522,6 +11403,78 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -10563,18 +11516,34 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_PhysicsProp.m_bAwake", - "DT_PhysicsPropMultiplayer.m_iPhysicsMode", - "DT_PhysicsPropMultiplayer.m_fMass", - "DT_PhysicsPropMultiplayer.m_collisionMins", - "DT_PhysicsPropMultiplayer.m_collisionMaxs" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_ParticleCannon.m_flChargeBeginTime", + "DT_ParticleCannon.m_iChargeEffect" ], - "DT_PhysMagnet": [ + "DT_ParticleFire": [ + "DT_ParticleFire.m_vOrigin", + "DT_ParticleFire.m_vDirection" + ], + "DT_ParticlePerformanceMonitor": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -10589,37 +11558,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -10636,31 +11576,15 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" + "DT_ParticlePerformanceMonitor.m_bDisplayPerf", + "DT_ParticlePerformanceMonitor.m_bMeasurePerf" ], - "DT_Plasma": [ + "DT_ParticleSmokeGrenade": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -10703,254 +11627,193 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_Plasma.m_flScale", - "DT_Plasma.m_flScaleTime", - "DT_Plasma.m_nFlags", - "DT_Plasma.m_nPlasmaModelIndex", - "DT_Plasma.m_nPlasmaModelIndex2", - "DT_Plasma.m_nGlowModelIndex" + "DT_ParticleSmokeGrenade.m_flSpawnTime", + "DT_ParticleSmokeGrenade.m_FadeStartTime", + "DT_ParticleSmokeGrenade.m_FadeEndTime", + "DT_ParticleSmokeGrenade.m_CurrentStage" ], - "DT_PlayerResource": [ - "m_iPing.000", - "m_iPing.001", - "m_iPing.002", - "m_iPing.003", - "m_iPing.004", - "m_iPing.005", - "m_iPing.006", - "m_iPing.007", - "m_iPing.008", - "m_iPing.009", - "m_iPing.010", - "m_iPing.011", - "m_iPing.012", - "m_iPing.013", - "m_iPing.014", - "m_iPing.015", - "m_iPing.016", - "m_iPing.017", - "m_iPing.018", - "m_iPing.019", - "m_iPing.020", - "m_iPing.021", - "m_iPing.022", - "m_iPing.023", - "m_iPing.024", - "m_iPing.025", - "m_iPing.026", - "m_iPing.027", - "m_iPing.028", - "m_iPing.029", - "m_iPing.030", - "m_iPing.031", - "m_iPing.032", - "m_iPing.033", - "m_iScore.000", - "m_iScore.001", - "m_iScore.002", - "m_iScore.003", - "m_iScore.004", - "m_iScore.005", - "m_iScore.006", - "m_iScore.007", - "m_iScore.008", - "m_iScore.009", - "m_iScore.010", - "m_iScore.011", - "m_iScore.012", - "m_iScore.013", - "m_iScore.014", - "m_iScore.015", - "m_iScore.016", - "m_iScore.017", - "m_iScore.018", - "m_iScore.019", - "m_iScore.020", - "m_iScore.021", - "m_iScore.022", - "m_iScore.023", - "m_iScore.024", - "m_iScore.025", - "m_iScore.026", - "m_iScore.027", - "m_iScore.028", - "m_iScore.029", - "m_iScore.030", - "m_iScore.031", - "m_iScore.032", - "m_iScore.033", - "m_iDeaths.000", - "m_iDeaths.001", - "m_iDeaths.002", - "m_iDeaths.003", - "m_iDeaths.004", - "m_iDeaths.005", - "m_iDeaths.006", - "m_iDeaths.007", - "m_iDeaths.008", - "m_iDeaths.009", - "m_iDeaths.010", - "m_iDeaths.011", - "m_iDeaths.012", - "m_iDeaths.013", - "m_iDeaths.014", - "m_iDeaths.015", - "m_iDeaths.016", - "m_iDeaths.017", - "m_iDeaths.018", - "m_iDeaths.019", - "m_iDeaths.020", - "m_iDeaths.021", - "m_iDeaths.022", - "m_iDeaths.023", - "m_iDeaths.024", - "m_iDeaths.025", - "m_iDeaths.026", - "m_iDeaths.027", - "m_iDeaths.028", - "m_iDeaths.029", - "m_iDeaths.030", - "m_iDeaths.031", - "m_iDeaths.032", - "m_iDeaths.033", - "m_bConnected.000", - "m_bConnected.001", - "m_bConnected.002", - "m_bConnected.003", - "m_bConnected.004", - "m_bConnected.005", - "m_bConnected.006", - "m_bConnected.007", - "m_bConnected.008", - "m_bConnected.009", - "m_bConnected.010", - "m_bConnected.011", - "m_bConnected.012", - "m_bConnected.013", - "m_bConnected.014", - "m_bConnected.015", - "m_bConnected.016", - "m_bConnected.017", - "m_bConnected.018", - "m_bConnected.019", - "m_bConnected.020", - "m_bConnected.021", - "m_bConnected.022", - "m_bConnected.023", - "m_bConnected.024", - "m_bConnected.025", - "m_bConnected.026", - "m_bConnected.027", - "m_bConnected.028", - "m_bConnected.029", - "m_bConnected.030", - "m_bConnected.031", - "m_bConnected.032", - "m_bConnected.033", - "m_iTeam.000", - "m_iTeam.001", - "m_iTeam.002", - "m_iTeam.003", - "m_iTeam.004", - "m_iTeam.005", - "m_iTeam.006", - "m_iTeam.007", - "m_iTeam.008", - "m_iTeam.009", - "m_iTeam.010", - "m_iTeam.011", - "m_iTeam.012", - "m_iTeam.013", - "m_iTeam.014", - "m_iTeam.015", - "m_iTeam.016", - "m_iTeam.017", - "m_iTeam.018", - "m_iTeam.019", - "m_iTeam.020", - "m_iTeam.021", - "m_iTeam.022", - "m_iTeam.023", - "m_iTeam.024", - "m_iTeam.025", - "m_iTeam.026", - "m_iTeam.027", - "m_iTeam.028", - "m_iTeam.029", - "m_iTeam.030", - "m_iTeam.031", - "m_iTeam.032", - "m_iTeam.033", - "m_bAlive.000", - "m_bAlive.001", - "m_bAlive.002", - "m_bAlive.003", - "m_bAlive.004", - "m_bAlive.005", - "m_bAlive.006", - "m_bAlive.007", - "m_bAlive.008", - "m_bAlive.009", - "m_bAlive.010", - "m_bAlive.011", - "m_bAlive.012", - "m_bAlive.013", - "m_bAlive.014", - "m_bAlive.015", - "m_bAlive.016", - "m_bAlive.017", - "m_bAlive.018", - "m_bAlive.019", - "m_bAlive.020", - "m_bAlive.021", - "m_bAlive.022", - "m_bAlive.023", - "m_bAlive.024", - "m_bAlive.025", - "m_bAlive.026", - "m_bAlive.027", - "m_bAlive.028", - "m_bAlive.029", - "m_bAlive.030", - "m_bAlive.031", - "m_bAlive.032", - "m_bAlive.033", - "m_iHealth.000", - "m_iHealth.001", - "m_iHealth.002", - "m_iHealth.003", - "m_iHealth.004", - "m_iHealth.005", - "m_iHealth.006", - "m_iHealth.007", - "m_iHealth.008", - "m_iHealth.009", - "m_iHealth.010", - "m_iHealth.011", - "m_iHealth.012", - "m_iHealth.013", - "m_iHealth.014", - "m_iHealth.015", - "m_iHealth.016", - "m_iHealth.017", - "m_iHealth.018", - "m_iHealth.019", - "m_iHealth.020", - "m_iHealth.021", - "m_iHealth.022", - "m_iHealth.023", - "m_iHealth.024", - "m_iHealth.025", - "m_iHealth.026", - "m_iHealth.027", - "m_iHealth.028", - "m_iHealth.029", - "m_iHealth.030", - "m_iHealth.031", - "m_iHealth.032", - "m_iHealth.033" + "DT_ParticleSystem": [ + "DT_ParticleSystem.m_vecOrigin", + "DT_ParticleSystem.m_angRotation", + "m_hControlPointEnts.002", + "m_hControlPointEnts.003", + "m_hControlPointEnts.004", + "m_hControlPointEnts.005", + "m_hControlPointEnts.006", + "m_hControlPointEnts.007", + "m_hControlPointEnts.008", + "m_hControlPointEnts.009", + "m_hControlPointEnts.010", + "m_hControlPointEnts.011", + "m_hControlPointEnts.012", + "m_hControlPointEnts.013", + "m_hControlPointEnts.014", + "m_hControlPointEnts.015", + "m_hControlPointEnts.016", + "m_hControlPointEnts.017", + "m_hControlPointEnts.018", + "m_hControlPointEnts.019", + "m_hControlPointEnts.020", + "m_hControlPointEnts.021", + "m_hControlPointEnts.022", + "m_hControlPointEnts.023", + "m_hControlPointEnts.024", + "m_hControlPointEnts.025", + "m_hControlPointEnts.026", + "m_hControlPointEnts.027", + "m_hControlPointEnts.028", + "m_hControlPointEnts.029", + "m_hControlPointEnts.030", + "m_hControlPointEnts.031", + "m_hControlPointEnts.032", + "m_hControlPointEnts.033", + "m_hControlPointEnts.034", + "m_hControlPointEnts.035", + "m_hControlPointEnts.036", + "m_hControlPointEnts.037", + "m_hControlPointEnts.038", + "m_hControlPointEnts.039", + "m_hControlPointEnts.040", + "m_hControlPointEnts.041", + "m_hControlPointEnts.042", + "m_hControlPointEnts.043", + "m_hControlPointEnts.044", + "m_hControlPointEnts.045", + "m_hControlPointEnts.046", + "m_hControlPointEnts.047", + "m_hControlPointEnts.048", + "m_hControlPointEnts.049", + "m_hControlPointEnts.050", + "m_hControlPointEnts.051", + "m_hControlPointEnts.052", + "m_hControlPointEnts.053", + "m_hControlPointEnts.054", + "m_hControlPointEnts.055", + "m_hControlPointEnts.056", + "m_hControlPointEnts.057", + "m_hControlPointEnts.058", + "m_hControlPointEnts.059", + "m_hControlPointEnts.060", + "m_hControlPointEnts.061", + "m_hControlPointEnts.062", + "m_iControlPointParents.000", + "m_iControlPointParents.001", + "m_iControlPointParents.002", + "m_iControlPointParents.003", + "m_iControlPointParents.004", + "m_iControlPointParents.005", + "m_iControlPointParents.006", + "m_iControlPointParents.007", + "m_iControlPointParents.008", + "m_iControlPointParents.009", + "m_iControlPointParents.010", + "m_iControlPointParents.011", + "m_iControlPointParents.012", + "m_iControlPointParents.013", + "m_iControlPointParents.014", + "m_iControlPointParents.015", + "m_iControlPointParents.016", + "m_iControlPointParents.017", + "m_iControlPointParents.018", + "m_iControlPointParents.019", + "m_iControlPointParents.020", + "m_iControlPointParents.021", + "m_iControlPointParents.022", + "m_iControlPointParents.023", + "m_iControlPointParents.024", + "m_iControlPointParents.025", + "m_iControlPointParents.026", + "m_iControlPointParents.027", + "m_iControlPointParents.028", + "m_iControlPointParents.029", + "m_iControlPointParents.030", + "m_iControlPointParents.031", + "m_iControlPointParents.032", + "m_iControlPointParents.033", + "m_iControlPointParents.034", + "m_iControlPointParents.035", + "m_iControlPointParents.036", + "m_iControlPointParents.037", + "m_iControlPointParents.038", + "m_iControlPointParents.039", + "m_iControlPointParents.040", + "m_iControlPointParents.041", + "m_iControlPointParents.042", + "m_iControlPointParents.043", + "m_iControlPointParents.044", + "m_iControlPointParents.045", + "m_iControlPointParents.046", + "m_iControlPointParents.047", + "m_iControlPointParents.048", + "m_iControlPointParents.049", + "m_iControlPointParents.050", + "m_iControlPointParents.051", + "m_iControlPointParents.052", + "m_iControlPointParents.053", + "m_iControlPointParents.054", + "m_iControlPointParents.055", + "m_iControlPointParents.056", + "m_iControlPointParents.057", + "m_iControlPointParents.058", + "m_iControlPointParents.059", + "m_iControlPointParents.060", + "m_iControlPointParents.061", + "m_iControlPointParents.062", + "m_hControlPointEnts.000", + "DT_ParticleSystem.m_hOwnerEntity", + "DT_ParticleSystem.moveparent", + "DT_ParticleSystem.m_iParentAttachment", + "m_hControlPointEnts.001", + "DT_ParticleSystem.m_iEffectIndex", + "DT_ParticleSystem.m_bActive", + "DT_ParticleSystem.m_flStartTime", + "DT_ParticleSystem.m_bWeatherEffect" ], - "DT_PointCamera": [ + "DT_PhysBox": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting" + ], + "DT_PhysBoxMultiplayer": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -10993,17 +11856,10 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_PointCamera.m_FOV", - "DT_PointCamera.m_Resolution", - "DT_PointCamera.m_bFogEnable", - "DT_PointCamera.m_FogColor", - "DT_PointCamera.m_flFogStart", - "DT_PointCamera.m_flFogEnd", - "DT_PointCamera.m_flFogMaxDensity", - "DT_PointCamera.m_bActive", - "DT_PointCamera.m_bUseScreenAspectRatio" + "DT_PhysBoxMultiplayer.m_iPhysicsMode", + "DT_PhysBoxMultiplayer.m_fMass" ], - "DT_PointCommentaryNode": [ + "DT_PhysMagnet": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -11092,22 +11948,14 @@ "DT_BaseAnimating.m_hLightingOriginRelative", "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_PointCommentaryNode.m_bActive", - "DT_PointCommentaryNode.m_iszCommentaryFile", - "DT_PointCommentaryNode.m_iszCommentaryFileNoHDR", - "DT_PointCommentaryNode.m_flStartTime", - "DT_PointCommentaryNode.m_iszSpeakers", - "DT_PointCommentaryNode.m_iNodeNumber", - "DT_PointCommentaryNode.m_iNodeNumberMax", - "DT_PointCommentaryNode.m_hViewPosition" + "DT_BaseAnimating.m_flFadeScale" ], - "DT_PoseController": [ + "DT_PhysicsProp": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -11122,16 +11970,37 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_hProps.000", - "m_hProps.001", - "m_hProps.002", - "m_hProps.003", - "m_chPoseIndex.000", - "m_chPoseIndex.001", - "m_chPoseIndex.002", - "m_chPoseIndex.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -11148,69 +12017,34 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_PoseController.m_bPoseValueParity", - "DT_PoseController.m_fPoseValue", - "DT_PoseController.m_fInterpolationTime", - "DT_PoseController.m_bInterpolationWrap", - "DT_PoseController.m_fCycleFrequency", - "DT_PoseController.m_nFModType", - "DT_PoseController.m_fFModTimeOffset", - "DT_PoseController.m_fFModRate", - "DT_PoseController.m_fFModAmplitude" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_PhysicsProp.m_bAwake" ], - "DT_Precipitation": [ + "DT_PhysicsPropMultiplayer": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_Precipitation.m_nPrecipType" - ], - "DT_PropVehicleDriveable": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", @@ -11298,30 +12132,22 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_PropVehicleDriveable.m_hPlayer", - "DT_PropVehicleDriveable.m_nSpeed", - "DT_PropVehicleDriveable.m_nRPM", - "DT_PropVehicleDriveable.m_flThrottle", - "DT_PropVehicleDriveable.m_nBoostTimeLeft", - "DT_PropVehicleDriveable.m_nHasBoost", - "DT_PropVehicleDriveable.m_nScannerDisabledWeapons", - "DT_PropVehicleDriveable.m_nScannerDisabledVehicle", - "DT_PropVehicleDriveable.m_bEnterAnimOn", - "DT_PropVehicleDriveable.m_bExitAnimOn", - "DT_PropVehicleDriveable.m_bUnableToFire", - "DT_PropVehicleDriveable.m_vecEyeExitEndpoint", - "DT_PropVehicleDriveable.m_bHasGun", - "DT_PropVehicleDriveable.m_vecGunCrosshair" + "DT_PhysicsProp.m_bAwake", + "DT_PhysicsPropMultiplayer.m_iPhysicsMode", + "DT_PhysicsPropMultiplayer.m_fMass", + "DT_PhysicsPropMultiplayer.m_collisionMins", + "DT_PhysicsPropMultiplayer.m_collisionMaxs" ], - "DT_RagdollManager": [ - "DT_RagdollManager.m_iCurrentMaxRagdollCount" + "DT_PipebombLauncherLocalData": [ + "DT_PipebombLauncherLocalData.m_iPipebombCount", + "DT_PipebombLauncherLocalData.m_flChargeBeginTime" ], - "DT_Ragdoll": [ + "DT_Plasma": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -11336,37 +12162,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -11383,36 +12180,315 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_Plasma.m_flScale", + "DT_Plasma.m_flScaleTime", + "DT_Plasma.m_nFlags", + "DT_Plasma.m_nPlasmaModelIndex", + "DT_Plasma.m_nPlasmaModelIndex2", + "DT_Plasma.m_nGlowModelIndex" + ], + "DT_PlayerResource": [ + "m_iPing.000", + "m_iPing.001", + "m_iPing.002", + "m_iPing.003", + "m_iPing.004", + "m_iPing.005", + "m_iPing.006", + "m_iPing.007", + "m_iPing.008", + "m_iPing.009", + "m_iPing.010", + "m_iPing.011", + "m_iPing.012", + "m_iPing.013", + "m_iPing.014", + "m_iPing.015", + "m_iPing.016", + "m_iPing.017", + "m_iPing.018", + "m_iPing.019", + "m_iPing.020", + "m_iPing.021", + "m_iPing.022", + "m_iPing.023", + "m_iPing.024", + "m_iPing.025", + "m_iPing.026", + "m_iPing.027", + "m_iPing.028", + "m_iPing.029", + "m_iPing.030", + "m_iPing.031", + "m_iPing.032", + "m_iPing.033", + "m_iScore.000", + "m_iScore.001", + "m_iScore.002", + "m_iScore.003", + "m_iScore.004", + "m_iScore.005", + "m_iScore.006", + "m_iScore.007", + "m_iScore.008", + "m_iScore.009", + "m_iScore.010", + "m_iScore.011", + "m_iScore.012", + "m_iScore.013", + "m_iScore.014", + "m_iScore.015", + "m_iScore.016", + "m_iScore.017", + "m_iScore.018", + "m_iScore.019", + "m_iScore.020", + "m_iScore.021", + "m_iScore.022", + "m_iScore.023", + "m_iScore.024", + "m_iScore.025", + "m_iScore.026", + "m_iScore.027", + "m_iScore.028", + "m_iScore.029", + "m_iScore.030", + "m_iScore.031", + "m_iScore.032", + "m_iScore.033", + "m_iDeaths.000", + "m_iDeaths.001", + "m_iDeaths.002", + "m_iDeaths.003", + "m_iDeaths.004", + "m_iDeaths.005", + "m_iDeaths.006", + "m_iDeaths.007", + "m_iDeaths.008", + "m_iDeaths.009", + "m_iDeaths.010", + "m_iDeaths.011", + "m_iDeaths.012", + "m_iDeaths.013", + "m_iDeaths.014", + "m_iDeaths.015", + "m_iDeaths.016", + "m_iDeaths.017", + "m_iDeaths.018", + "m_iDeaths.019", + "m_iDeaths.020", + "m_iDeaths.021", + "m_iDeaths.022", + "m_iDeaths.023", + "m_iDeaths.024", + "m_iDeaths.025", + "m_iDeaths.026", + "m_iDeaths.027", + "m_iDeaths.028", + "m_iDeaths.029", + "m_iDeaths.030", + "m_iDeaths.031", + "m_iDeaths.032", + "m_iDeaths.033", + "m_bConnected.000", + "m_bConnected.001", + "m_bConnected.002", + "m_bConnected.003", + "m_bConnected.004", + "m_bConnected.005", + "m_bConnected.006", + "m_bConnected.007", + "m_bConnected.008", + "m_bConnected.009", + "m_bConnected.010", + "m_bConnected.011", + "m_bConnected.012", + "m_bConnected.013", + "m_bConnected.014", + "m_bConnected.015", + "m_bConnected.016", + "m_bConnected.017", + "m_bConnected.018", + "m_bConnected.019", + "m_bConnected.020", + "m_bConnected.021", + "m_bConnected.022", + "m_bConnected.023", + "m_bConnected.024", + "m_bConnected.025", + "m_bConnected.026", + "m_bConnected.027", + "m_bConnected.028", + "m_bConnected.029", + "m_bConnected.030", + "m_bConnected.031", + "m_bConnected.032", + "m_bConnected.033", + "m_iTeam.000", + "m_iTeam.001", + "m_iTeam.002", + "m_iTeam.003", + "m_iTeam.004", + "m_iTeam.005", + "m_iTeam.006", + "m_iTeam.007", + "m_iTeam.008", + "m_iTeam.009", + "m_iTeam.010", + "m_iTeam.011", + "m_iTeam.012", + "m_iTeam.013", + "m_iTeam.014", + "m_iTeam.015", + "m_iTeam.016", + "m_iTeam.017", + "m_iTeam.018", + "m_iTeam.019", + "m_iTeam.020", + "m_iTeam.021", + "m_iTeam.022", + "m_iTeam.023", + "m_iTeam.024", + "m_iTeam.025", + "m_iTeam.026", + "m_iTeam.027", + "m_iTeam.028", + "m_iTeam.029", + "m_iTeam.030", + "m_iTeam.031", + "m_iTeam.032", + "m_iTeam.033", + "m_bAlive.000", + "m_bAlive.001", + "m_bAlive.002", + "m_bAlive.003", + "m_bAlive.004", + "m_bAlive.005", + "m_bAlive.006", + "m_bAlive.007", + "m_bAlive.008", + "m_bAlive.009", + "m_bAlive.010", + "m_bAlive.011", + "m_bAlive.012", + "m_bAlive.013", + "m_bAlive.014", + "m_bAlive.015", + "m_bAlive.016", + "m_bAlive.017", + "m_bAlive.018", + "m_bAlive.019", + "m_bAlive.020", + "m_bAlive.021", + "m_bAlive.022", + "m_bAlive.023", + "m_bAlive.024", + "m_bAlive.025", + "m_bAlive.026", + "m_bAlive.027", + "m_bAlive.028", + "m_bAlive.029", + "m_bAlive.030", + "m_bAlive.031", + "m_bAlive.032", + "m_bAlive.033", + "m_iHealth.000", + "m_iHealth.001", + "m_iHealth.002", + "m_iHealth.003", + "m_iHealth.004", + "m_iHealth.005", + "m_iHealth.006", + "m_iHealth.007", + "m_iHealth.008", + "m_iHealth.009", + "m_iHealth.010", + "m_iHealth.011", + "m_iHealth.012", + "m_iHealth.013", + "m_iHealth.014", + "m_iHealth.015", + "m_iHealth.016", + "m_iHealth.017", + "m_iHealth.018", + "m_iHealth.019", + "m_iHealth.020", + "m_iHealth.021", + "m_iHealth.022", + "m_iHealth.023", + "m_iHealth.024", + "m_iHealth.025", + "m_iHealth.026", + "m_iHealth.027", + "m_iHealth.028", + "m_iHealth.029", + "m_iHealth.030", + "m_iHealth.031", + "m_iHealth.032", + "m_iHealth.033" + ], + "DT_PlayerState": [ + "DT_PlayerState.deadflag" + ], + "DT_PointCamera": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_Ragdoll.m_ragAngles", - "DT_Ragdoll.m_ragPos", - "DT_Ragdoll.m_hUnragdoll", - "DT_Ragdoll.m_flBlendWeight", - "DT_Ragdoll.m_nOverlaySequence" + "DT_PointCamera.m_FOV", + "DT_PointCamera.m_Resolution", + "DT_PointCamera.m_bFogEnable", + "DT_PointCamera.m_FogColor", + "DT_PointCamera.m_flFogStart", + "DT_PointCamera.m_flFogEnd", + "DT_PointCamera.m_flFogMaxDensity", + "DT_PointCamera.m_bActive", + "DT_PointCamera.m_bUseScreenAspectRatio" ], - "DT_Ragdoll_Attached": [ + "DT_PointCommentaryNode": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -11502,22 +12578,21 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_Ragdoll.m_ragAngles", - "DT_Ragdoll.m_ragPos", - "DT_Ragdoll.m_hUnragdoll", - "DT_Ragdoll.m_flBlendWeight", - "DT_Ragdoll.m_nOverlaySequence", - "DT_Ragdoll_Attached.m_boneIndexAttached", - "DT_Ragdoll_Attached.m_ragdollAttachedObjectIndex", - "DT_Ragdoll_Attached.m_attachmentPointBoneSpace", - "DT_Ragdoll_Attached.m_attachmentPointRagdollSpace" + "DT_PointCommentaryNode.m_bActive", + "DT_PointCommentaryNode.m_iszCommentaryFile", + "DT_PointCommentaryNode.m_iszCommentaryFileNoHDR", + "DT_PointCommentaryNode.m_flStartTime", + "DT_PointCommentaryNode.m_iszSpeakers", + "DT_PointCommentaryNode.m_iNodeNumber", + "DT_PointCommentaryNode.m_iNodeNumberMax", + "DT_PointCommentaryNode.m_hViewPosition" ], - "DT_RobotDispenser": [ + "DT_PoseController": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -11532,258 +12607,16 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", + "m_hProps.000", + "m_hProps.001", + "m_hProps.002", + "m_hProps.003", + "m_chPoseIndex.000", + "m_chPoseIndex.001", + "m_chPoseIndex.002", + "m_chPoseIndex.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -11800,113 +12633,22 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseFlex.m_blinktoggle", - "DT_BaseFlex.m_viewtarget", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_BaseObject.m_iHealth", - "DT_BaseObject.m_iMaxHealth", - "DT_BaseObject.m_bHasSapper", - "DT_BaseObject.m_iObjectType", - "DT_BaseObject.m_bBuilding", - "DT_BaseObject.m_bPlacing", - "DT_BaseObject.m_bCarried", - "DT_BaseObject.m_bCarryDeploy", - "DT_BaseObject.m_bMiniBuilding", - "DT_BaseObject.m_flPercentageConstructed", - "DT_BaseObject.m_fObjectFlags", - "DT_BaseObject.m_hBuiltOnEntity", - "DT_BaseObject.m_bDisabled", - "DT_BaseObject.m_hBuilder", - "DT_BaseObject.m_vecBuildMaxs", - "DT_BaseObject.m_vecBuildMins", - "DT_BaseObject.m_iDesiredBuildRotations", - "DT_BaseObject.m_bServerOverridePlacement", - "DT_BaseObject.m_iUpgradeLevel", - "DT_BaseObject.m_iUpgradeMetal", - "DT_BaseObject.m_iUpgradeMetalRequired", - "DT_BaseObject.m_iHighestUpgradeLevel", - "DT_BaseObject.m_iObjectMode", - "DT_BaseObject.m_bDisposableBuilding", - "DT_ObjectDispenser.m_iState", - "DT_ObjectDispenser.m_iAmmoMetal", - "DT_ObjectDispenser.m_iMiniBombCounter", - "DT_ObjectDispenser.\"healing_array\"" - ], - "DT_RopeKeyframe": [ - "DT_RopeKeyframe.m_hStartPoint", - "DT_RopeKeyframe.m_hEndPoint", - "DT_RopeKeyframe.m_iStartAttachment", - "DT_RopeKeyframe.m_iEndAttachment", - "DT_RopeKeyframe.m_Slack", - "DT_RopeKeyframe.m_RopeLength", - "DT_RopeKeyframe.m_fLockedPoints", - "DT_RopeKeyframe.m_RopeFlags", - "DT_RopeKeyframe.m_nSegments", - "DT_RopeKeyframe.m_bConstrainBetweenEndpoints", - "DT_RopeKeyframe.m_iRopeMaterialModelIndex", - "DT_RopeKeyframe.m_Subdiv", - "DT_RopeKeyframe.m_TextureScale", - "DT_RopeKeyframe.m_Width", - "DT_RopeKeyframe.m_flScrollSpeed", - "DT_RopeKeyframe.m_vecOrigin", - "DT_RopeKeyframe.moveparent", - "DT_RopeKeyframe.m_iParentAttachment" - ], - "DT_SceneEntity": [ - "_LPT_m_hActorList_16.lengthprop16", - "_ST_m_hActorList_16.000", - "_ST_m_hActorList_16.001", - "_ST_m_hActorList_16.002", - "_ST_m_hActorList_16.003", - "_ST_m_hActorList_16.004", - "_ST_m_hActorList_16.005", - "_ST_m_hActorList_16.006", - "_ST_m_hActorList_16.007", - "_ST_m_hActorList_16.008", - "_ST_m_hActorList_16.009", - "_ST_m_hActorList_16.010", - "_ST_m_hActorList_16.011", - "_ST_m_hActorList_16.012", - "_ST_m_hActorList_16.013", - "_ST_m_hActorList_16.014", - "_ST_m_hActorList_16.015", - "DT_SceneEntity.m_nSceneStringIndex", - "DT_SceneEntity.m_bIsPlayingBack", - "DT_SceneEntity.m_bPaused", - "DT_SceneEntity.m_bMultiplayer", - "DT_SceneEntity.m_flForceClientTime" - ], - "DT_ShadowControl": [ - "DT_ShadowControl.m_shadowDirection", - "DT_ShadowControl.m_shadowColor", - "DT_ShadowControl.m_flShadowMaxDist", - "DT_ShadowControl.m_bDisableShadows" + "DT_PoseController.m_bPoseValueParity", + "DT_PoseController.m_fPoseValue", + "DT_PoseController.m_fInterpolationTime", + "DT_PoseController.m_bInterpolationWrap", + "DT_PoseController.m_fCycleFrequency", + "DT_PoseController.m_nFModType", + "DT_PoseController.m_fFModTimeOffset", + "DT_PoseController.m_fFModRate", + "DT_PoseController.m_fFModAmplitude" ], - "DT_SlideshowDisplay": [ + "DT_Precipitation": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -11926,22 +12668,6 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_chCurrentSlideLists.000", - "m_chCurrentSlideLists.001", - "m_chCurrentSlideLists.002", - "m_chCurrentSlideLists.003", - "m_chCurrentSlideLists.004", - "m_chCurrentSlideLists.005", - "m_chCurrentSlideLists.006", - "m_chCurrentSlideLists.007", - "m_chCurrentSlideLists.008", - "m_chCurrentSlideLists.009", - "m_chCurrentSlideLists.010", - "m_chCurrentSlideLists.011", - "m_chCurrentSlideLists.012", - "m_chCurrentSlideLists.013", - "m_chCurrentSlideLists.014", - "m_chCurrentSlideLists.015", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", @@ -11965,20 +12691,18 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SlideshowDisplay.m_bEnabled", - "DT_SlideshowDisplay.m_szDisplayText", - "DT_SlideshowDisplay.m_szSlideshowDirectory", - "DT_SlideshowDisplay.m_fMinSlideTime", - "DT_SlideshowDisplay.m_fMaxSlideTime", - "DT_SlideshowDisplay.m_iCycleType", - "DT_SlideshowDisplay.m_bNoListRepeats" + "DT_Precipitation.m_nPrecipType" ], - "DT_SmokeStack": [ + "DT_PredictableId": [ + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated" + ], + "DT_PropVehicleDriveable": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -11993,8 +12717,37 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -12011,31 +12764,45 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SmokeStack.m_SpreadSpeed", - "DT_SmokeStack.m_Speed", - "DT_SmokeStack.m_StartSize", - "DT_SmokeStack.m_EndSize", - "DT_SmokeStack.m_Rate", - "DT_SmokeStack.m_JetLength", - "DT_SmokeStack.m_bEmit", - "DT_SmokeStack.m_flBaseSpread", - "DT_SmokeStack.m_flRollSpeed", - "DT_SmokeStack.m_DirLight.m_vPos", - "DT_SmokeStack.m_DirLight.m_vColor", - "DT_SmokeStack.m_DirLight.m_flIntensity", - "DT_SmokeStack.m_AmbientLight.m_vPos", - "DT_SmokeStack.m_AmbientLight.m_vColor", - "DT_SmokeStack.m_AmbientLight.m_flIntensity", - "DT_SmokeStack.m_vWind", - "DT_SmokeStack.m_flTwist", - "DT_SmokeStack.m_iMaterialModel" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_PropVehicleDriveable.m_hPlayer", + "DT_PropVehicleDriveable.m_nSpeed", + "DT_PropVehicleDriveable.m_nRPM", + "DT_PropVehicleDriveable.m_flThrottle", + "DT_PropVehicleDriveable.m_nBoostTimeLeft", + "DT_PropVehicleDriveable.m_nHasBoost", + "DT_PropVehicleDriveable.m_nScannerDisabledWeapons", + "DT_PropVehicleDriveable.m_nScannerDisabledVehicle", + "DT_PropVehicleDriveable.m_bEnterAnimOn", + "DT_PropVehicleDriveable.m_bExitAnimOn", + "DT_PropVehicleDriveable.m_bUnableToFire", + "DT_PropVehicleDriveable.m_vecEyeExitEndpoint", + "DT_PropVehicleDriveable.m_bHasGun", + "DT_PropVehicleDriveable.m_vecGunCrosshair" ], - "DT_SniperDot": [ + "DT_ProxyToggle": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -12055,6 +12822,7 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "DT_ProxyToggle_ProxiedData.m_WithProxy", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", @@ -12077,10 +12845,12 @@ "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_SniperDot.m_flChargeStartTime" + "DT_BaseEntity.m_bAlternateSorting" ], - "DT_SpotlightEnd": [ + "DT_ProxyToggle_ProxiedData": [ + "DT_ProxyToggle_ProxiedData.m_WithProxy" + ], + "DT_QuadraticBeam": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -12123,15 +12893,17 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SpotlightEnd.m_flLightScale", - "DT_SpotlightEnd.m_Radius" + "DT_QuadraticBeam.m_targetPosition", + "DT_QuadraticBeam.m_controlPosition", + "DT_QuadraticBeam.m_scrollRate", + "DT_QuadraticBeam.m_flWidth" ], - "DT_Sprite": [ + "DT_Ragdoll": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -12146,8 +12918,37 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -12164,29 +12965,44 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_Sprite.m_hAttachedToEntity", - "DT_Sprite.m_nAttachment", - "DT_Sprite.m_flScaleTime", - "DT_Sprite.m_flSpriteScale", - "DT_Sprite.m_flGlowProxySize", - "DT_Sprite.m_flHDRColorScale", - "DT_Sprite.m_flSpriteFramerate", - "DT_Sprite.m_flFrame", - "DT_Sprite.m_flBrightnessTime", - "DT_Sprite.m_nBrightness", - "DT_Sprite.m_bWorldSpaceScale" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_Ragdoll.m_ragAngles", + "DT_Ragdoll.m_ragPos", + "DT_Ragdoll.m_hUnragdoll", + "DT_Ragdoll.m_flBlendWeight", + "DT_Ragdoll.m_nOverlaySequence" ], - "DT_SpriteOriented": [ + "DT_RagdollManager": [ + "DT_RagdollManager.m_iCurrentMaxRagdollCount" + ], + "DT_Ragdoll_Attached": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -12201,8 +13017,37 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -12219,29 +13064,45 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_Sprite.m_hAttachedToEntity", - "DT_Sprite.m_nAttachment", - "DT_Sprite.m_flScaleTime", - "DT_Sprite.m_flSpriteScale", - "DT_Sprite.m_flGlowProxySize", - "DT_Sprite.m_flHDRColorScale", - "DT_Sprite.m_flSpriteFramerate", - "DT_Sprite.m_flFrame", - "DT_Sprite.m_flBrightnessTime", - "DT_Sprite.m_nBrightness", - "DT_Sprite.m_bWorldSpaceScale" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_Ragdoll.m_ragAngles", + "DT_Ragdoll.m_ragPos", + "DT_Ragdoll.m_hUnragdoll", + "DT_Ragdoll.m_flBlendWeight", + "DT_Ragdoll.m_nOverlaySequence", + "DT_Ragdoll_Attached.m_boneIndexAttached", + "DT_Ragdoll_Attached.m_ragdollAttachedObjectIndex", + "DT_Ragdoll_Attached.m_attachmentPointBoneSpace", + "DT_Ragdoll_Attached.m_attachmentPointRagdollSpace" ], - "DT_SpriteTrail": [ + "DT_RobotDispenser": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -12256,8 +13117,258 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -12274,32 +13385,63 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_Sprite.m_hAttachedToEntity", - "DT_Sprite.m_nAttachment", - "DT_Sprite.m_flScaleTime", - "DT_Sprite.m_flSpriteScale", - "DT_Sprite.m_flGlowProxySize", - "DT_Sprite.m_flHDRColorScale", - "DT_Sprite.m_flSpriteFramerate", - "DT_Sprite.m_flFrame", - "DT_Sprite.m_flBrightnessTime", - "DT_Sprite.m_nBrightness", - "DT_Sprite.m_bWorldSpaceScale", - "DT_SpriteTrail.m_flLifeTime", - "DT_SpriteTrail.m_flStartWidth", - "DT_SpriteTrail.m_flEndWidth", - "DT_SpriteTrail.m_flStartWidthVariance", - "DT_SpriteTrail.m_flTextureRes", - "DT_SpriteTrail.m_flMinFadeLength", - "DT_SpriteTrail.m_vecSkyboxOrigin", - "DT_SpriteTrail.m_flSkyboxScale" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseFlex.m_blinktoggle", + "DT_BaseFlex.m_viewtarget", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_BaseObject.m_iHealth", + "DT_BaseObject.m_iMaxHealth", + "DT_BaseObject.m_bHasSapper", + "DT_BaseObject.m_iObjectType", + "DT_BaseObject.m_bBuilding", + "DT_BaseObject.m_bPlacing", + "DT_BaseObject.m_bCarried", + "DT_BaseObject.m_bCarryDeploy", + "DT_BaseObject.m_bMiniBuilding", + "DT_BaseObject.m_flPercentageConstructed", + "DT_BaseObject.m_fObjectFlags", + "DT_BaseObject.m_hBuiltOnEntity", + "DT_BaseObject.m_bDisabled", + "DT_BaseObject.m_hBuilder", + "DT_BaseObject.m_vecBuildMaxs", + "DT_BaseObject.m_vecBuildMins", + "DT_BaseObject.m_iDesiredBuildRotations", + "DT_BaseObject.m_bServerOverridePlacement", + "DT_BaseObject.m_iUpgradeLevel", + "DT_BaseObject.m_iUpgradeMetal", + "DT_BaseObject.m_iUpgradeMetalRequired", + "DT_BaseObject.m_iHighestUpgradeLevel", + "DT_BaseObject.m_iObjectMode", + "DT_BaseObject.m_bDisposableBuilding", + "DT_ObjectDispenser.m_iState", + "DT_ObjectDispenser.m_iAmmoMetal", + "DT_ObjectDispenser.m_iMiniBombCounter", + "DT_ObjectDispenser.\"healing_array\"" ], - "DT_SteamJet": [ + "DT_RocketTrail": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -12342,198 +13484,141 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SteamJet.m_SpreadSpeed", - "DT_SteamJet.m_Speed", - "DT_SteamJet.m_StartSize", - "DT_SteamJet.m_EndSize", - "DT_SteamJet.m_Rate", - "DT_SteamJet.m_JetLength", - "DT_SteamJet.m_bEmit", - "DT_SteamJet.m_bFaceLeft", - "DT_SteamJet.m_nType", - "DT_SteamJet.m_spawnflags", - "DT_SteamJet.m_flRollSpeed" + "DT_RocketTrail.m_SpawnRate", + "DT_RocketTrail.m_StartColor", + "DT_RocketTrail.m_EndColor", + "DT_RocketTrail.m_ParticleLifetime", + "DT_RocketTrail.m_StopEmitTime", + "DT_RocketTrail.m_MinSpeed", + "DT_RocketTrail.m_MaxSpeed", + "DT_RocketTrail.m_StartSize", + "DT_RocketTrail.m_EndSize", + "DT_RocketTrail.m_SpawnRadius", + "DT_RocketTrail.m_bEmit", + "DT_RocketTrail.m_nAttachment", + "DT_RocketTrail.m_Opacity", + "DT_RocketTrail.m_bDamaged", + "DT_RocketTrail.m_flFlareScale" ], - "DT_Sun": [ - "DT_Sun.m_clrRender", - "DT_Sun.m_clrOverlay", - "DT_Sun.m_vDirection", - "DT_Sun.m_bOn", - "DT_Sun.m_nSize", - "DT_Sun.m_nOverlaySize", - "DT_Sun.m_nMaterial", - "DT_Sun.m_nOverlayMaterial", - "DT_Sun.HDRColorScale" + "DT_RopeKeyframe": [ + "DT_RopeKeyframe.m_hStartPoint", + "DT_RopeKeyframe.m_hEndPoint", + "DT_RopeKeyframe.m_iStartAttachment", + "DT_RopeKeyframe.m_iEndAttachment", + "DT_RopeKeyframe.m_Slack", + "DT_RopeKeyframe.m_RopeLength", + "DT_RopeKeyframe.m_fLockedPoints", + "DT_RopeKeyframe.m_RopeFlags", + "DT_RopeKeyframe.m_nSegments", + "DT_RopeKeyframe.m_bConstrainBetweenEndpoints", + "DT_RopeKeyframe.m_iRopeMaterialModelIndex", + "DT_RopeKeyframe.m_Subdiv", + "DT_RopeKeyframe.m_TextureScale", + "DT_RopeKeyframe.m_Width", + "DT_RopeKeyframe.m_flScrollSpeed", + "DT_RopeKeyframe.m_vecOrigin", + "DT_RopeKeyframe.moveparent", + "DT_RopeKeyframe.m_iParentAttachment" ], - "DT_Team": [ - "DT_Team.m_iTeamNum", - "DT_Team.m_iScore", - "DT_Team.m_iRoundsWon", - "DT_Team.m_szTeamname", - "DT_Team.\"player_array\"" + "DT_SceneEntity": [ + "_LPT_m_hActorList_16.lengthprop16", + "_ST_m_hActorList_16.000", + "_ST_m_hActorList_16.001", + "_ST_m_hActorList_16.002", + "_ST_m_hActorList_16.003", + "_ST_m_hActorList_16.004", + "_ST_m_hActorList_16.005", + "_ST_m_hActorList_16.006", + "_ST_m_hActorList_16.007", + "_ST_m_hActorList_16.008", + "_ST_m_hActorList_16.009", + "_ST_m_hActorList_16.010", + "_ST_m_hActorList_16.011", + "_ST_m_hActorList_16.012", + "_ST_m_hActorList_16.013", + "_ST_m_hActorList_16.014", + "_ST_m_hActorList_16.015", + "DT_SceneEntity.m_nSceneStringIndex", + "DT_SceneEntity.m_bIsPlayingBack", + "DT_SceneEntity.m_bPaused", + "DT_SceneEntity.m_bMultiplayer", + "DT_SceneEntity.m_flForceClientTime" ], - "DT_TeamplayRoundBasedRulesProxy": [ - "m_flNextRespawnWave.000", - "m_flNextRespawnWave.001", - "m_flNextRespawnWave.002", - "m_flNextRespawnWave.003", - "m_flNextRespawnWave.004", - "m_flNextRespawnWave.005", - "m_flNextRespawnWave.006", - "m_flNextRespawnWave.007", - "m_flNextRespawnWave.008", - "m_flNextRespawnWave.009", - "m_flNextRespawnWave.010", - "m_flNextRespawnWave.011", - "m_flNextRespawnWave.012", - "m_flNextRespawnWave.013", - "m_flNextRespawnWave.014", - "m_flNextRespawnWave.015", - "m_flNextRespawnWave.016", - "m_flNextRespawnWave.017", - "m_flNextRespawnWave.018", - "m_flNextRespawnWave.019", - "m_flNextRespawnWave.020", - "m_flNextRespawnWave.021", - "m_flNextRespawnWave.022", - "m_flNextRespawnWave.023", - "m_flNextRespawnWave.024", - "m_flNextRespawnWave.025", - "m_flNextRespawnWave.026", - "m_flNextRespawnWave.027", - "m_flNextRespawnWave.028", - "m_flNextRespawnWave.029", - "m_flNextRespawnWave.030", - "m_flNextRespawnWave.031", - "m_TeamRespawnWaveTimes.000", - "m_TeamRespawnWaveTimes.001", - "m_TeamRespawnWaveTimes.002", - "m_TeamRespawnWaveTimes.003", - "m_TeamRespawnWaveTimes.004", - "m_TeamRespawnWaveTimes.005", - "m_TeamRespawnWaveTimes.006", - "m_TeamRespawnWaveTimes.007", - "m_TeamRespawnWaveTimes.008", - "m_TeamRespawnWaveTimes.009", - "m_TeamRespawnWaveTimes.010", - "m_TeamRespawnWaveTimes.011", - "m_TeamRespawnWaveTimes.012", - "m_TeamRespawnWaveTimes.013", - "m_TeamRespawnWaveTimes.014", - "m_TeamRespawnWaveTimes.015", - "m_TeamRespawnWaveTimes.016", - "m_TeamRespawnWaveTimes.017", - "m_TeamRespawnWaveTimes.018", - "m_TeamRespawnWaveTimes.019", - "m_TeamRespawnWaveTimes.020", - "m_TeamRespawnWaveTimes.021", - "m_TeamRespawnWaveTimes.022", - "m_TeamRespawnWaveTimes.023", - "m_TeamRespawnWaveTimes.024", - "m_TeamRespawnWaveTimes.025", - "m_TeamRespawnWaveTimes.026", - "m_TeamRespawnWaveTimes.027", - "m_TeamRespawnWaveTimes.028", - "m_TeamRespawnWaveTimes.029", - "m_TeamRespawnWaveTimes.030", - "m_TeamRespawnWaveTimes.031", - "m_bTeamReady.000", - "m_bTeamReady.001", - "m_bTeamReady.002", - "m_bTeamReady.003", - "m_bTeamReady.004", - "m_bTeamReady.005", - "m_bTeamReady.006", - "m_bTeamReady.007", - "m_bTeamReady.008", - "m_bTeamReady.009", - "m_bTeamReady.010", - "m_bTeamReady.011", - "m_bTeamReady.012", - "m_bTeamReady.013", - "m_bTeamReady.014", - "m_bTeamReady.015", - "m_bTeamReady.016", - "m_bTeamReady.017", - "m_bTeamReady.018", - "m_bTeamReady.019", - "m_bTeamReady.020", - "m_bTeamReady.021", - "m_bTeamReady.022", - "m_bTeamReady.023", - "m_bTeamReady.024", - "m_bTeamReady.025", - "m_bTeamReady.026", - "m_bTeamReady.027", - "m_bTeamReady.028", - "m_bTeamReady.029", - "m_bTeamReady.030", - "m_bTeamReady.031", - "m_bPlayerReady.000", - "m_bPlayerReady.001", - "m_bPlayerReady.002", - "m_bPlayerReady.003", - "m_bPlayerReady.004", - "m_bPlayerReady.005", - "m_bPlayerReady.006", - "m_bPlayerReady.007", - "m_bPlayerReady.008", - "m_bPlayerReady.009", - "m_bPlayerReady.010", - "m_bPlayerReady.011", - "m_bPlayerReady.012", - "m_bPlayerReady.013", - "m_bPlayerReady.014", - "m_bPlayerReady.015", - "m_bPlayerReady.016", - "m_bPlayerReady.017", - "m_bPlayerReady.018", - "m_bPlayerReady.019", - "m_bPlayerReady.020", - "m_bPlayerReady.021", - "m_bPlayerReady.022", - "m_bPlayerReady.023", - "m_bPlayerReady.024", - "m_bPlayerReady.025", - "m_bPlayerReady.026", - "m_bPlayerReady.027", - "m_bPlayerReady.028", - "m_bPlayerReady.029", - "m_bPlayerReady.030", - "m_bPlayerReady.031", - "m_bPlayerReady.032", - "DT_TeamplayRoundBasedRules.m_iRoundState", - "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers", - "DT_TeamplayRoundBasedRules.m_iWinningTeam", - "DT_TeamplayRoundBasedRules.m_bInOvertime", - "DT_TeamplayRoundBasedRules.m_bInSetup", - "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound", - "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart", - "DT_TeamplayRoundBasedRules.m_flRestartRoundTime", - "DT_TeamplayRoundBasedRules.m_flMapResetTime", - "DT_TeamplayRoundBasedRules.m_bStopWatch", - "DT_TeamplayRoundBasedRules.m_bMultipleTrains", - "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel" + "DT_ScriptCreatedAttribute": [ + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency" ], - "DT_TeamRoundTimer": [ - "DT_TeamRoundTimer.m_bTimerPaused", - "DT_TeamRoundTimer.m_flTimeRemaining", - "DT_TeamRoundTimer.m_flTimerEndTime", - "DT_TeamRoundTimer.m_nTimerMaxLength", - "DT_TeamRoundTimer.m_bIsDisabled", - "DT_TeamRoundTimer.m_bShowInHUD", - "DT_TeamRoundTimer.m_nTimerLength", - "DT_TeamRoundTimer.m_nTimerInitialLength", - "DT_TeamRoundTimer.m_bAutoCountdown", - "DT_TeamRoundTimer.m_nSetupTimeLength", - "DT_TeamRoundTimer.m_nState", - "DT_TeamRoundTimer.m_bStartPaused", - "DT_TeamRoundTimer.m_bShowTimeRemaining", - "DT_TeamRoundTimer.m_bStopWatchTimer", - "DT_TeamRoundTimer.m_bInCaptureWatchState", - "DT_TeamRoundTimer.m_flTotalTime" + "DT_ScriptCreatedItem": [ + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes" ], - "DT_TeamTrainWatcher": [ + "DT_SentrygunLocalData": [ + "DT_SentrygunLocalData.m_iKills", + "DT_SentrygunLocalData.m_iAssists" + ], + "DT_ServerAnimationData": [ + "DT_ServerAnimationData.m_flCycle" + ], + "DT_ShadowControl": [ + "DT_ShadowControl.m_shadowDirection", + "DT_ShadowControl.m_shadowColor", + "DT_ShadowControl.m_flShadowMaxDist", + "DT_ShadowControl.m_bDisableShadows" + ], + "DT_SlideshowDisplay": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -12553,6 +13638,22 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_chCurrentSlideLists.000", + "m_chCurrentSlideLists.001", + "m_chCurrentSlideLists.002", + "m_chCurrentSlideLists.003", + "m_chCurrentSlideLists.004", + "m_chCurrentSlideLists.005", + "m_chCurrentSlideLists.006", + "m_chCurrentSlideLists.007", + "m_chCurrentSlideLists.008", + "m_chCurrentSlideLists.009", + "m_chCurrentSlideLists.010", + "m_chCurrentSlideLists.011", + "m_chCurrentSlideLists.012", + "m_chCurrentSlideLists.013", + "m_chCurrentSlideLists.014", + "m_chCurrentSlideLists.015", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", @@ -12576,368 +13677,190 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_TeamTrainWatcher.m_flTotalProgress", - "DT_TeamTrainWatcher.m_iTrainSpeedLevel", - "DT_TeamTrainWatcher.m_flRecedeTime", - "DT_TeamTrainWatcher.m_nNumCappers", - "DT_TeamTrainWatcher.m_hGlowEnt" - ], - "DT_TEArmorRicochet": [ - "DT_TEMetalSparks.m_vecPos", - "DT_TEMetalSparks.m_vecDir" - ], - "DT_BaseBeam": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags" - ], - "DT_TEBeamEntPoint": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamEntPoint.m_nStartEntity", - "DT_TEBeamEntPoint.m_nEndEntity", - "DT_TEBeamEntPoint.m_vecStartPoint", - "DT_TEBeamEntPoint.m_vecEndPoint" + "DT_SlideshowDisplay.m_bEnabled", + "DT_SlideshowDisplay.m_szDisplayText", + "DT_SlideshowDisplay.m_szSlideshowDirectory", + "DT_SlideshowDisplay.m_fMinSlideTime", + "DT_SlideshowDisplay.m_fMaxSlideTime", + "DT_SlideshowDisplay.m_iCycleType", + "DT_SlideshowDisplay.m_bNoListRepeats" ], - "DT_TEBeamEnts": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamEnts.m_nStartEntity", - "DT_TEBeamEnts.m_nEndEntity" + "DT_SmokeStack": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_SmokeStack.m_SpreadSpeed", + "DT_SmokeStack.m_Speed", + "DT_SmokeStack.m_StartSize", + "DT_SmokeStack.m_EndSize", + "DT_SmokeStack.m_Rate", + "DT_SmokeStack.m_JetLength", + "DT_SmokeStack.m_bEmit", + "DT_SmokeStack.m_flBaseSpread", + "DT_SmokeStack.m_flRollSpeed", + "DT_SmokeStack.m_DirLight.m_vPos", + "DT_SmokeStack.m_DirLight.m_vColor", + "DT_SmokeStack.m_DirLight.m_flIntensity", + "DT_SmokeStack.m_AmbientLight.m_vPos", + "DT_SmokeStack.m_AmbientLight.m_vColor", + "DT_SmokeStack.m_AmbientLight.m_flIntensity", + "DT_SmokeStack.m_vWind", + "DT_SmokeStack.m_flTwist", + "DT_SmokeStack.m_iMaterialModel" ], - "DT_TEBeamFollow": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamFollow.m_iEntIndex" + "DT_SmokeTrail": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_SmokeTrail.m_SpawnRate", + "DT_SmokeTrail.m_StartColor", + "DT_SmokeTrail.m_EndColor", + "DT_SmokeTrail.m_ParticleLifetime", + "DT_SmokeTrail.m_StopEmitTime", + "DT_SmokeTrail.m_MinSpeed", + "DT_SmokeTrail.m_MaxSpeed", + "DT_SmokeTrail.m_MinDirectedSpeed", + "DT_SmokeTrail.m_MaxDirectedSpeed", + "DT_SmokeTrail.m_StartSize", + "DT_SmokeTrail.m_EndSize", + "DT_SmokeTrail.m_SpawnRadius", + "DT_SmokeTrail.m_bEmit", + "DT_SmokeTrail.m_nAttachment", + "DT_SmokeTrail.m_Opacity" ], - "DT_TEBeamLaser": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamLaser.m_nStartEntity", - "DT_TEBeamLaser.m_nEndEntity" + "DT_SniperDot": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_SniperDot.m_flChargeStartTime" ], - "DT_TEBeamPoints": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamPoints.m_vecStartPoint", - "DT_TEBeamPoints.m_vecEndPoint" + "DT_SniperRifleLocalData": [ + "DT_SniperRifleLocalData.m_flChargedDamage" ], - "DT_TEBeamRing": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamRing.m_nStartEntity", - "DT_TEBeamRing.m_nEndEntity" - ], - "DT_TEBeamRingPoint": [ - "DT_BaseBeam.m_nModelIndex", - "DT_BaseBeam.m_nHaloIndex", - "DT_BaseBeam.m_nStartFrame", - "DT_BaseBeam.m_nFrameRate", - "DT_BaseBeam.m_fLife", - "DT_BaseBeam.m_fWidth", - "DT_BaseBeam.m_fEndWidth", - "DT_BaseBeam.m_nFadeLength", - "DT_BaseBeam.m_fAmplitude", - "DT_BaseBeam.m_nSpeed", - "DT_BaseBeam.r", - "DT_BaseBeam.g", - "DT_BaseBeam.b", - "DT_BaseBeam.a", - "DT_BaseBeam.m_nFlags", - "DT_TEBeamRingPoint.m_vecCenter", - "DT_TEBeamRingPoint.m_flStartRadius", - "DT_TEBeamRingPoint.m_flEndRadius" - ], - "DT_TEBeamSpline": [ - "DT_TEBeamSpline.m_nPoints", - "DT_TEBeamSpline.m_vecPoints" - ], - "DT_TEBloodSprite": [ - "DT_TEBloodSprite.m_vecOrigin", - "DT_TEBloodSprite.m_vecDirection", - "DT_TEBloodSprite.r", - "DT_TEBloodSprite.g", - "DT_TEBloodSprite.b", - "DT_TEBloodSprite.a", - "DT_TEBloodSprite.m_nSprayModel", - "DT_TEBloodSprite.m_nDropModel", - "DT_TEBloodSprite.m_nSize" - ], - "DT_TEBloodStream": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TEBloodStream.m_vecDirection", - "DT_TEBloodStream.r", - "DT_TEBloodStream.g", - "DT_TEBloodStream.b", - "DT_TEBloodStream.a", - "DT_TEBloodStream.m_nAmount" - ], - "DT_TEBreakModel": [ - "DT_TEBreakModel.m_vecOrigin", - "DT_TEBreakModel.m_angRotation[0]", - "DT_TEBreakModel.m_angRotation[1]", - "DT_TEBreakModel.m_angRotation[2]", - "DT_TEBreakModel.m_vecSize", - "DT_TEBreakModel.m_vecVelocity", - "DT_TEBreakModel.m_nModelIndex", - "DT_TEBreakModel.m_nRandomization", - "DT_TEBreakModel.m_nCount", - "DT_TEBreakModel.m_fTime", - "DT_TEBreakModel.m_nFlags" - ], - "DT_TEBSPDecal": [ - "DT_TEBSPDecal.m_vecOrigin", - "DT_TEBSPDecal.m_nEntity", - "DT_TEBSPDecal.m_nIndex" - ], - "DT_TEBubbles": [ - "DT_TEBubbles.m_vecMins", - "DT_TEBubbles.m_vecMaxs", - "DT_TEBubbles.m_nModelIndex", - "DT_TEBubbles.m_fHeight", - "DT_TEBubbles.m_nCount", - "DT_TEBubbles.m_fSpeed" - ], - "DT_TEBubbleTrail": [ - "DT_TEBubbleTrail.m_vecMins", - "DT_TEBubbleTrail.m_vecMaxs", - "DT_TEBubbleTrail.m_nModelIndex", - "DT_TEBubbleTrail.m_flWaterZ", - "DT_TEBubbleTrail.m_nCount", - "DT_TEBubbleTrail.m_fSpeed" - ], - "DT_TEClientProjectile": [ - "DT_TEClientProjectile.m_vecOrigin", - "DT_TEClientProjectile.m_vecVelocity", - "DT_TEClientProjectile.m_nModelIndex", - "DT_TEClientProjectile.m_nLifeTime", - "DT_TEClientProjectile.m_hOwner" - ], - "DT_TEDecal": [ - "DT_TEDecal.m_vecOrigin", - "DT_TEDecal.m_vecStart", - "DT_TEDecal.m_nEntity", - "DT_TEDecal.m_nHitbox", - "DT_TEDecal.m_nIndex" - ], - "DT_TEDust": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TEDust.m_flSize", - "DT_TEDust.m_flSpeed", - "DT_TEDust.m_vecDirection" - ], - "DT_TEDynamicLight": [ - "DT_TEDynamicLight.m_vecOrigin", - "DT_TEDynamicLight.r", - "DT_TEDynamicLight.g", - "DT_TEDynamicLight.b", - "DT_TEDynamicLight.exponent", - "DT_TEDynamicLight.m_fRadius", - "DT_TEDynamicLight.m_fTime", - "DT_TEDynamicLight.m_fDecay" - ], - "DT_TEEffectDispatch": [ - "DT_EffectData.m_vOrigin[0]", - "DT_EffectData.m_vOrigin[1]", - "DT_EffectData.m_vOrigin[2]", - "DT_EffectData.m_vStart[0]", - "DT_EffectData.m_vStart[1]", - "DT_EffectData.m_vStart[2]", - "DT_EffectData.m_vAngles", - "DT_EffectData.m_vNormal", - "DT_EffectData.m_fFlags", - "DT_EffectData.m_flMagnitude", - "DT_EffectData.m_flScale", - "DT_EffectData.m_nAttachmentIndex", - "DT_EffectData.m_nSurfaceProp", - "DT_EffectData.m_iEffectName", - "DT_EffectData.m_nMaterial", - "DT_EffectData.m_nDamageType", - "DT_EffectData.m_nHitBox", - "DT_EffectData.entindex", - "DT_EffectData.m_nColor", - "DT_EffectData.m_flRadius", - "DT_EffectData.m_bCustomColors", - "DT_EffectData.m_CustomColors.m_vecColor1", - "DT_EffectData.m_CustomColors.m_vecColor2", - "DT_EffectData.m_bControlPoint1", - "DT_EffectData.m_ControlPoint1.m_eParticleAttachment", - "DT_EffectData.m_ControlPoint1.m_vecOffset[0]", - "DT_EffectData.m_ControlPoint1.m_vecOffset[1]", - "DT_EffectData.m_ControlPoint1.m_vecOffset[2]" - ], - "DT_TEEnergySplash": [ - "DT_TEEnergySplash.m_vecPos", - "DT_TEEnergySplash.m_vecDir", - "DT_TEEnergySplash.m_bExplosive" - ], - "DT_TEExplosion": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TEExplosion.m_nModelIndex", - "DT_TEExplosion.m_fScale", - "DT_TEExplosion.m_nFrameRate", - "DT_TEExplosion.m_nFlags", - "DT_TEExplosion.m_vecNormal", - "DT_TEExplosion.m_chMaterialType", - "DT_TEExplosion.m_nRadius", - "DT_TEExplosion.m_nMagnitude" - ], - "DT_TEFireBullets": [ - "DT_TEFireBullets.m_vecOrigin", - "DT_TEFireBullets.m_vecAngles[0]", - "DT_TEFireBullets.m_vecAngles[1]", - "DT_TEFireBullets.m_iWeaponID", - "DT_TEFireBullets.m_iMode", - "DT_TEFireBullets.m_iSeed", - "DT_TEFireBullets.m_iPlayer", - "DT_TEFireBullets.m_flSpread", - "DT_TEFireBullets.m_bCritical" - ], - "DT_TEFizz": [ - "DT_TEFizz.m_nEntity", - "DT_TEFizz.m_nModelIndex", - "DT_TEFizz.m_nDensity", - "DT_TEFizz.m_nCurrent" - ], - "DT_TEFootprintDecal": [ - "DT_TEFootprintDecal.m_vecOrigin", - "DT_TEFootprintDecal.m_vecDirection", - "DT_TEFootprintDecal.m_nEntity", - "DT_TEFootprintDecal.m_nIndex", - "DT_TEFootprintDecal.m_chMaterialType" - ], - "DT_TEGaussExplosion": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TEGaussExplosion.m_nType", - "DT_TEGaussExplosion.m_vecDirection" - ], - "DT_TEGlowSprite": [ - "DT_TEGlowSprite.m_vecOrigin", - "DT_TEGlowSprite.m_nModelIndex", - "DT_TEGlowSprite.m_fScale", - "DT_TEGlowSprite.m_fLife", - "DT_TEGlowSprite.m_nBrightness" - ], - "DT_TEImpact": [ - "DT_TEImpact.m_vecOrigin", - "DT_TEImpact.m_vecNormal", - "DT_TEImpact.m_iType" - ], - "DT_TEKillPlayerAttachments": [ - "DT_TEKillPlayerAttachments.m_nPlayer" - ], - "DT_TELargeFunnel": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TELargeFunnel.m_nModelIndex", - "DT_TELargeFunnel.m_nReversed" - ], - "DT_TeleportVortex": [ + "DT_SporeExplosion": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_TeleportVortex.m_iState", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -12951,37 +13874,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -12998,96 +13892,20 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_CollisionProperty.m_nSolidType" - ], - "DT_TEMetalSparks": [ - "DT_TEMetalSparks.m_vecPos", - "DT_TEMetalSparks.m_vecDir" - ], - "DT_TEMuzzleFlash": [ - "DT_TEMuzzleFlash.m_vecOrigin", - "DT_TEMuzzleFlash.m_vecAngles", - "DT_TEMuzzleFlash.m_flScale", - "DT_TEMuzzleFlash.m_nType" - ], - "DT_TEParticleSystem": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]" - ], - "DT_TEPhysicsProp": [ - "DT_TEPhysicsProp.m_vecOrigin", - "DT_TEPhysicsProp.m_angRotation[0]", - "DT_TEPhysicsProp.m_angRotation[1]", - "DT_TEPhysicsProp.m_angRotation[2]", - "DT_TEPhysicsProp.m_vecVelocity", - "DT_TEPhysicsProp.m_nModelIndex", - "DT_TEPhysicsProp.m_nSkin", - "DT_TEPhysicsProp.m_nFlags", - "DT_TEPhysicsProp.m_nEffects" - ], - "DT_TEPlayerAnimEvent": [ - "DT_TEPlayerAnimEvent.m_iPlayerIndex", - "DT_TEPlayerAnimEvent.m_iEvent", - "DT_TEPlayerAnimEvent.m_nData" - ], - "DT_TEPlayerDecal": [ - "DT_TEPlayerDecal.m_vecOrigin", - "DT_TEPlayerDecal.m_nEntity", - "DT_TEPlayerDecal.m_nPlayer" - ], - "DT_TEProjectedDecal": [ - "DT_TEProjectedDecal.m_vecOrigin", - "DT_TEProjectedDecal.m_angRotation", - "DT_TEProjectedDecal.m_flDistance", - "DT_TEProjectedDecal.m_nIndex" - ], - "DT_TEShatterSurface": [ - "DT_TEShatterSurface.m_vecOrigin", - "DT_TEShatterSurface.m_vecAngles", - "DT_TEShatterSurface.m_vecForce", - "DT_TEShatterSurface.m_vecForcePos", - "DT_TEShatterSurface.m_flWidth", - "DT_TEShatterSurface.m_flHeight", - "DT_TEShatterSurface.m_flShardSize", - "DT_TEShatterSurface.m_nSurfaceType", - "DT_TEShatterSurface.m_uchFrontColor[0]", - "DT_TEShatterSurface.m_uchFrontColor[1]", - "DT_TEShatterSurface.m_uchFrontColor[2]", - "DT_TEShatterSurface.m_uchBackColor[0]", - "DT_TEShatterSurface.m_uchBackColor[1]", - "DT_TEShatterSurface.m_uchBackColor[2]" - ], - "DT_TEShowLine": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TEShowLine.m_vecEnd" + "DT_SporeExplosion.m_flSpawnRate", + "DT_SporeExplosion.m_flParticleLifetime", + "DT_SporeExplosion.m_flStartSize", + "DT_SporeExplosion.m_flEndSize", + "DT_SporeExplosion.m_flSpawnRadius", + "DT_SporeExplosion.m_bEmit", + "DT_SporeExplosion.m_bDontRemove" ], - "DT_Tesla": [ + "DT_SporeTrail": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -13130,38 +13948,15 @@ "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_Tesla.m_SoundName", - "DT_Tesla.m_iszSpriteName" - ], - "DT_TESmoke": [ - "DT_TESmoke.m_vecOrigin", - "DT_TESmoke.m_nModelIndex", - "DT_TESmoke.m_fScale", - "DT_TESmoke.m_nFrameRate" - ], - "DT_TESparks": [ - "DT_TEParticleSystem.m_vecOrigin[0]", - "DT_TEParticleSystem.m_vecOrigin[1]", - "DT_TEParticleSystem.m_vecOrigin[2]", - "DT_TESparks.m_nMagnitude", - "DT_TESparks.m_nTrailLength", - "DT_TESparks.m_vecDir" - ], - "DT_TESprite": [ - "DT_TESprite.m_vecOrigin", - "DT_TESprite.m_nModelIndex", - "DT_TESprite.m_fScale", - "DT_TESprite.m_nBrightness" - ], - "DT_TESpriteSpray": [ - "DT_TESpriteSpray.m_vecOrigin", - "DT_TESpriteSpray.m_vecDirection", - "DT_TESpriteSpray.m_nModelIndex", - "DT_TESpriteSpray.m_fNoise", - "DT_TESpriteSpray.m_nSpeed", - "DT_TESpriteSpray.m_nCount" + "DT_SporeTrail.m_flSpawnRate", + "DT_SporeTrail.m_vecEndColor", + "DT_SporeTrail.m_flParticleLifetime", + "DT_SporeTrail.m_flStartSize", + "DT_SporeTrail.m_flEndSize", + "DT_SporeTrail.m_flSpawnRadius", + "DT_SporeTrail.m_bEmit" ], - "DT_ProxyToggle": [ + "DT_SpotlightEnd": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -13181,7 +13976,6 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "DT_ProxyToggle_ProxiedData.m_WithProxy", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", @@ -13204,68 +13998,18 @@ "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting" - ], - "DT_TestTraceline": [ - "DT_TestTraceline.m_clrRender", - "DT_TestTraceline.m_vecOrigin", - "DT_TestTraceline.m_angRotation[0]", - "DT_TestTraceline.m_angRotation[1]", - "DT_TestTraceline.m_angRotation[2]", - "DT_TestTraceline.moveparent" - ], - "DT_TETFBlood": [ - "DT_TETFBlood.m_vecOrigin[0]", - "DT_TETFBlood.m_vecOrigin[1]", - "DT_TETFBlood.m_vecOrigin[2]", - "DT_TETFBlood.m_vecNormal", - "DT_TETFBlood.entindex" - ], - "DT_TETFExplosion": [ - "DT_TETFExplosion.m_vecOrigin[0]", - "DT_TETFExplosion.m_vecOrigin[1]", - "DT_TETFExplosion.m_vecOrigin[2]", - "DT_TETFExplosion.m_vecNormal", - "DT_TETFExplosion.m_iWeaponID", - "DT_TETFExplosion.entindex", - "DT_TETFExplosion.m_nDefID", - "DT_TETFExplosion.m_nSound", - "DT_TETFExplosion.m_iCustomParticleIndex" - ], - "DT_TETFParticleEffect": [ - "DT_TETFParticleEffect.m_vecOrigin[0]", - "DT_TETFParticleEffect.m_vecOrigin[1]", - "DT_TETFParticleEffect.m_vecOrigin[2]", - "DT_TETFParticleEffect.m_vecStart[0]", - "DT_TETFParticleEffect.m_vecStart[1]", - "DT_TETFParticleEffect.m_vecStart[2]", - "DT_TETFParticleEffect.m_vecAngles", - "DT_TETFParticleEffect.m_iParticleSystemIndex", - "DT_TETFParticleEffect.entindex", - "DT_TETFParticleEffect.m_iAttachType", - "DT_TETFParticleEffect.m_iAttachmentPointIndex", - "DT_TETFParticleEffect.m_bResetParticles", - "DT_TETFParticleEffect.m_bCustomColors", - "DT_TETFParticleEffect.m_CustomColors.m_vecColor1", - "DT_TETFParticleEffect.m_CustomColors.m_vecColor2", - "DT_TETFParticleEffect.m_bControlPoint1", - "DT_TETFParticleEffect.m_ControlPoint1.m_eParticleAttachment", - "DT_TETFParticleEffect.m_ControlPoint1.m_vecOffset[0]", - "DT_TETFParticleEffect.m_ControlPoint1.m_vecOffset[1]", - "DT_TETFParticleEffect.m_ControlPoint1.m_vecOffset[2]" - ], - "DT_TEWorldDecal": [ - "DT_TEWorldDecal.m_vecOrigin", - "DT_TEWorldDecal.m_nIndex" + "DT_BaseEntity.m_bAlternateSorting", + "DT_SpotlightEnd.m_flLightScale", + "DT_SpotlightEnd.m_Radius" ], - "DT_AmmoPack": [ + "DT_Sprite": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", - "DT_AmmoPack.m_angRotation[0]", - "DT_AmmoPack.m_angRotation[1]", - "DT_AmmoPack.m_angRotation[2]", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", @@ -13278,37 +14022,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -13325,40 +14040,29 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_AmmoPack.m_vecInitialVelocity", - "DT_AmmoPack.m_nItemDef", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags" + "DT_Sprite.m_hAttachedToEntity", + "DT_Sprite.m_nAttachment", + "DT_Sprite.m_flScaleTime", + "DT_Sprite.m_flSpriteScale", + "DT_Sprite.m_flGlowProxySize", + "DT_Sprite.m_flHDRColorScale", + "DT_Sprite.m_flSpriteFramerate", + "DT_Sprite.m_flFrame", + "DT_Sprite.m_flBrightnessTime", + "DT_Sprite.m_nBrightness", + "DT_Sprite.m_bWorldSpaceScale" ], - "DT_TFProjectileBall_Ornament": [ + "DT_SpriteOriented": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -13373,34 +14077,6 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", @@ -13419,52 +14095,29 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" + "DT_Sprite.m_hAttachedToEntity", + "DT_Sprite.m_nAttachment", + "DT_Sprite.m_flScaleTime", + "DT_Sprite.m_flSpriteScale", + "DT_Sprite.m_flGlowProxySize", + "DT_Sprite.m_flHDRColorScale", + "DT_Sprite.m_flSpriteFramerate", + "DT_Sprite.m_flFrame", + "DT_Sprite.m_flBrightnessTime", + "DT_Sprite.m_nBrightness", + "DT_Sprite.m_bWorldSpaceScale" ], - "DT_TFBaseBoss": [ + "DT_SpriteTrail": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -13479,258 +14132,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -13747,41 +14150,37 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseFlex.m_blinktoggle", - "DT_BaseFlex.m_viewtarget", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_TFBaseBoss.m_lastHealthPercentage" + "DT_Sprite.m_hAttachedToEntity", + "DT_Sprite.m_nAttachment", + "DT_Sprite.m_flScaleTime", + "DT_Sprite.m_flSpriteScale", + "DT_Sprite.m_flGlowProxySize", + "DT_Sprite.m_flHDRColorScale", + "DT_Sprite.m_flSpriteFramerate", + "DT_Sprite.m_flFrame", + "DT_Sprite.m_flBrightnessTime", + "DT_Sprite.m_nBrightness", + "DT_Sprite.m_bWorldSpaceScale", + "DT_SpriteTrail.m_flLifeTime", + "DT_SpriteTrail.m_flStartWidth", + "DT_SpriteTrail.m_flEndWidth", + "DT_SpriteTrail.m_flStartWidthVariance", + "DT_SpriteTrail.m_flTextureRes", + "DT_SpriteTrail.m_flMinFadeLength", + "DT_SpriteTrail.m_vecSkyboxOrigin", + "DT_SpriteTrail.m_flSkyboxScale" ], - "DT_TFBaseProjectile": [ + "DT_SteamJet": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -13796,37 +14195,8 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -13843,1059 +14213,504 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseProjectile.m_vInitialVelocity", - "DT_TFBaseProjectile.m_hLauncher" + "DT_SteamJet.m_SpreadSpeed", + "DT_SteamJet.m_Speed", + "DT_SteamJet.m_StartSize", + "DT_SteamJet.m_EndSize", + "DT_SteamJet.m_Rate", + "DT_SteamJet.m_JetLength", + "DT_SteamJet.m_bEmit", + "DT_SteamJet.m_bFaceLeft", + "DT_SteamJet.m_nType", + "DT_SteamJet.m_spawnflags", + "DT_SteamJet.m_flRollSpeed" ], - "DT_TFBaseRocket": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher" + "DT_Sun": [ + "DT_Sun.m_clrRender", + "DT_Sun.m_clrOverlay", + "DT_Sun.m_vDirection", + "DT_Sun.m_bOn", + "DT_Sun.m_nSize", + "DT_Sun.m_nOverlaySize", + "DT_Sun.m_nMaterial", + "DT_Sun.m_nOverlayMaterial", + "DT_Sun.HDRColorScale" ], - "DT_TFWeaponBat": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TEArmorRicochet": [ + "DT_TEMetalSparks.m_vecPos", + "DT_TEMetalSparks.m_vecDir" ], - "DT_TFWeaponBat_Fish": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TEBSPDecal": [ + "DT_TEBSPDecal.m_vecOrigin", + "DT_TEBSPDecal.m_nEntity", + "DT_TEBSPDecal.m_nIndex" ], - "DT_TFWeaponBat_Giftwrap": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TEBeamEntPoint": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamEntPoint.m_nStartEntity", + "DT_TEBeamEntPoint.m_nEndEntity", + "DT_TEBeamEntPoint.m_vecStartPoint", + "DT_TEBeamEntPoint.m_vecEndPoint" ], - "DT_TFWeaponBat_Wood": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TEBeamEnts": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamEnts.m_nStartEntity", + "DT_TEBeamEnts.m_nEndEntity" ], - "DT_TFWeaponBonesaw": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TEBeamFollow": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamFollow.m_iEntIndex" ], - "DT_TFBotHintEngineerNest": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_TFBotHintEngineerNest.m_bHasActiveTeleporter" + "DT_TEBeamLaser": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamLaser.m_nStartEntity", + "DT_TEBeamLaser.m_nEndEntity" ], - "DT_TFWeaponBottle": [ + "DT_TEBeamPoints": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamPoints.m_vecStartPoint", + "DT_TEBeamPoints.m_vecEndPoint" + ], + "DT_TEBeamRing": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamRing.m_nStartEntity", + "DT_TEBeamRing.m_nEndEntity" + ], + "DT_TEBeamRingPoint": [ + "DT_BaseBeam.m_nModelIndex", + "DT_BaseBeam.m_nHaloIndex", + "DT_BaseBeam.m_nStartFrame", + "DT_BaseBeam.m_nFrameRate", + "DT_BaseBeam.m_fLife", + "DT_BaseBeam.m_fWidth", + "DT_BaseBeam.m_fEndWidth", + "DT_BaseBeam.m_nFadeLength", + "DT_BaseBeam.m_fAmplitude", + "DT_BaseBeam.m_nSpeed", + "DT_BaseBeam.r", + "DT_BaseBeam.g", + "DT_BaseBeam.b", + "DT_BaseBeam.a", + "DT_BaseBeam.m_nFlags", + "DT_TEBeamRingPoint.m_vecCenter", + "DT_TEBeamRingPoint.m_flStartRadius", + "DT_TEBeamRingPoint.m_flEndRadius" + ], + "DT_TEBeamSpline": [ + "DT_TEBeamSpline.m_nPoints", + "DT_TEBeamSpline.m_vecPoints" + ], + "DT_TEBloodSprite": [ + "DT_TEBloodSprite.m_vecOrigin", + "DT_TEBloodSprite.m_vecDirection", + "DT_TEBloodSprite.r", + "DT_TEBloodSprite.g", + "DT_TEBloodSprite.b", + "DT_TEBloodSprite.a", + "DT_TEBloodSprite.m_nSprayModel", + "DT_TEBloodSprite.m_nDropModel", + "DT_TEBloodSprite.m_nSize" + ], + "DT_TEBloodStream": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TEBloodStream.m_vecDirection", + "DT_TEBloodStream.r", + "DT_TEBloodStream.g", + "DT_TEBloodStream.b", + "DT_TEBloodStream.a", + "DT_TEBloodStream.m_nAmount" + ], + "DT_TEBreakModel": [ + "DT_TEBreakModel.m_vecOrigin", + "DT_TEBreakModel.m_angRotation[0]", + "DT_TEBreakModel.m_angRotation[1]", + "DT_TEBreakModel.m_angRotation[2]", + "DT_TEBreakModel.m_vecSize", + "DT_TEBreakModel.m_vecVelocity", + "DT_TEBreakModel.m_nModelIndex", + "DT_TEBreakModel.m_nRandomization", + "DT_TEBreakModel.m_nCount", + "DT_TEBreakModel.m_fTime", + "DT_TEBreakModel.m_nFlags" + ], + "DT_TEBubbleTrail": [ + "DT_TEBubbleTrail.m_vecMins", + "DT_TEBubbleTrail.m_vecMaxs", + "DT_TEBubbleTrail.m_nModelIndex", + "DT_TEBubbleTrail.m_flWaterZ", + "DT_TEBubbleTrail.m_nCount", + "DT_TEBubbleTrail.m_fSpeed" + ], + "DT_TEBubbles": [ + "DT_TEBubbles.m_vecMins", + "DT_TEBubbles.m_vecMaxs", + "DT_TEBubbles.m_nModelIndex", + "DT_TEBubbles.m_fHeight", + "DT_TEBubbles.m_nCount", + "DT_TEBubbles.m_fSpeed" + ], + "DT_TEClientProjectile": [ + "DT_TEClientProjectile.m_vecOrigin", + "DT_TEClientProjectile.m_vecVelocity", + "DT_TEClientProjectile.m_nModelIndex", + "DT_TEClientProjectile.m_nLifeTime", + "DT_TEClientProjectile.m_hOwner" + ], + "DT_TEDecal": [ + "DT_TEDecal.m_vecOrigin", + "DT_TEDecal.m_vecStart", + "DT_TEDecal.m_nEntity", + "DT_TEDecal.m_nHitbox", + "DT_TEDecal.m_nIndex" + ], + "DT_TEDust": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TEDust.m_flSize", + "DT_TEDust.m_flSpeed", + "DT_TEDust.m_vecDirection" + ], + "DT_TEDynamicLight": [ + "DT_TEDynamicLight.m_vecOrigin", + "DT_TEDynamicLight.r", + "DT_TEDynamicLight.g", + "DT_TEDynamicLight.b", + "DT_TEDynamicLight.exponent", + "DT_TEDynamicLight.m_fRadius", + "DT_TEDynamicLight.m_fTime", + "DT_TEDynamicLight.m_fDecay" + ], + "DT_TEEffectDispatch": [ + "DT_EffectData.m_vOrigin[0]", + "DT_EffectData.m_vOrigin[1]", + "DT_EffectData.m_vOrigin[2]", + "DT_EffectData.m_vStart[0]", + "DT_EffectData.m_vStart[1]", + "DT_EffectData.m_vStart[2]", + "DT_EffectData.m_vAngles", + "DT_EffectData.m_vNormal", + "DT_EffectData.m_fFlags", + "DT_EffectData.m_flMagnitude", + "DT_EffectData.m_flScale", + "DT_EffectData.m_nAttachmentIndex", + "DT_EffectData.m_nSurfaceProp", + "DT_EffectData.m_iEffectName", + "DT_EffectData.m_nMaterial", + "DT_EffectData.m_nDamageType", + "DT_EffectData.m_nHitBox", + "DT_EffectData.entindex", + "DT_EffectData.m_nColor", + "DT_EffectData.m_flRadius", + "DT_EffectData.m_bCustomColors", + "DT_EffectData.m_CustomColors.m_vecColor1", + "DT_EffectData.m_CustomColors.m_vecColor2", + "DT_EffectData.m_bControlPoint1", + "DT_EffectData.m_ControlPoint1.m_eParticleAttachment", + "DT_EffectData.m_ControlPoint1.m_vecOffset[0]", + "DT_EffectData.m_ControlPoint1.m_vecOffset[1]", + "DT_EffectData.m_ControlPoint1.m_vecOffset[2]" + ], + "DT_TEEnergySplash": [ + "DT_TEEnergySplash.m_vecPos", + "DT_TEEnergySplash.m_vecDir", + "DT_TEEnergySplash.m_bExplosive" + ], + "DT_TEExplosion": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TEExplosion.m_nModelIndex", + "DT_TEExplosion.m_fScale", + "DT_TEExplosion.m_nFrameRate", + "DT_TEExplosion.m_nFlags", + "DT_TEExplosion.m_vecNormal", + "DT_TEExplosion.m_chMaterialType", + "DT_TEExplosion.m_nRadius", + "DT_TEExplosion.m_nMagnitude" + ], + "DT_TEFireBullets": [ + "DT_TEFireBullets.m_vecOrigin", + "DT_TEFireBullets.m_vecAngles[0]", + "DT_TEFireBullets.m_vecAngles[1]", + "DT_TEFireBullets.m_iWeaponID", + "DT_TEFireBullets.m_iMode", + "DT_TEFireBullets.m_iSeed", + "DT_TEFireBullets.m_iPlayer", + "DT_TEFireBullets.m_flSpread", + "DT_TEFireBullets.m_bCritical" + ], + "DT_TEFizz": [ + "DT_TEFizz.m_nEntity", + "DT_TEFizz.m_nModelIndex", + "DT_TEFizz.m_nDensity", + "DT_TEFizz.m_nCurrent" + ], + "DT_TEFootprintDecal": [ + "DT_TEFootprintDecal.m_vecOrigin", + "DT_TEFootprintDecal.m_vecDirection", + "DT_TEFootprintDecal.m_nEntity", + "DT_TEFootprintDecal.m_nIndex", + "DT_TEFootprintDecal.m_chMaterialType" + ], + "DT_TEGaussExplosion": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TEGaussExplosion.m_nType", + "DT_TEGaussExplosion.m_vecDirection" + ], + "DT_TEGlowSprite": [ + "DT_TEGlowSprite.m_vecOrigin", + "DT_TEGlowSprite.m_nModelIndex", + "DT_TEGlowSprite.m_fScale", + "DT_TEGlowSprite.m_fLife", + "DT_TEGlowSprite.m_nBrightness" + ], + "DT_TEImpact": [ + "DT_TEImpact.m_vecOrigin", + "DT_TEImpact.m_vecNormal", + "DT_TEImpact.m_iType" + ], + "DT_TEKillPlayerAttachments": [ + "DT_TEKillPlayerAttachments.m_nPlayer" + ], + "DT_TELargeFunnel": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TELargeFunnel.m_nModelIndex", + "DT_TELargeFunnel.m_nReversed" + ], + "DT_TEMetalSparks": [ + "DT_TEMetalSparks.m_vecPos", + "DT_TEMetalSparks.m_vecDir" + ], + "DT_TEMuzzleFlash": [ + "DT_TEMuzzleFlash.m_vecOrigin", + "DT_TEMuzzleFlash.m_vecAngles", + "DT_TEMuzzleFlash.m_flScale", + "DT_TEMuzzleFlash.m_nType" + ], + "DT_TEParticleSystem": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]" + ], + "DT_TEPhysicsProp": [ + "DT_TEPhysicsProp.m_vecOrigin", + "DT_TEPhysicsProp.m_angRotation[0]", + "DT_TEPhysicsProp.m_angRotation[1]", + "DT_TEPhysicsProp.m_angRotation[2]", + "DT_TEPhysicsProp.m_vecVelocity", + "DT_TEPhysicsProp.m_nModelIndex", + "DT_TEPhysicsProp.m_nSkin", + "DT_TEPhysicsProp.m_nFlags", + "DT_TEPhysicsProp.m_nEffects" + ], + "DT_TEPlayerAnimEvent": [ + "DT_TEPlayerAnimEvent.m_iPlayerIndex", + "DT_TEPlayerAnimEvent.m_iEvent", + "DT_TEPlayerAnimEvent.m_nData" + ], + "DT_TEPlayerDecal": [ + "DT_TEPlayerDecal.m_vecOrigin", + "DT_TEPlayerDecal.m_nEntity", + "DT_TEPlayerDecal.m_nPlayer" + ], + "DT_TEProjectedDecal": [ + "DT_TEProjectedDecal.m_vecOrigin", + "DT_TEProjectedDecal.m_angRotation", + "DT_TEProjectedDecal.m_flDistance", + "DT_TEProjectedDecal.m_nIndex" + ], + "DT_TEShatterSurface": [ + "DT_TEShatterSurface.m_vecOrigin", + "DT_TEShatterSurface.m_vecAngles", + "DT_TEShatterSurface.m_vecForce", + "DT_TEShatterSurface.m_vecForcePos", + "DT_TEShatterSurface.m_flWidth", + "DT_TEShatterSurface.m_flHeight", + "DT_TEShatterSurface.m_flShardSize", + "DT_TEShatterSurface.m_nSurfaceType", + "DT_TEShatterSurface.m_uchFrontColor[0]", + "DT_TEShatterSurface.m_uchFrontColor[1]", + "DT_TEShatterSurface.m_uchFrontColor[2]", + "DT_TEShatterSurface.m_uchBackColor[0]", + "DT_TEShatterSurface.m_uchBackColor[1]", + "DT_TEShatterSurface.m_uchBackColor[2]" + ], + "DT_TEShowLine": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TEShowLine.m_vecEnd" + ], + "DT_TESmoke": [ + "DT_TESmoke.m_vecOrigin", + "DT_TESmoke.m_nModelIndex", + "DT_TESmoke.m_fScale", + "DT_TESmoke.m_nFrameRate" + ], + "DT_TESparks": [ + "DT_TEParticleSystem.m_vecOrigin[0]", + "DT_TEParticleSystem.m_vecOrigin[1]", + "DT_TEParticleSystem.m_vecOrigin[2]", + "DT_TESparks.m_nMagnitude", + "DT_TESparks.m_nTrailLength", + "DT_TESparks.m_vecDir" + ], + "DT_TESprite": [ + "DT_TESprite.m_vecOrigin", + "DT_TESprite.m_nModelIndex", + "DT_TESprite.m_fScale", + "DT_TESprite.m_nBrightness" + ], + "DT_TESpriteSpray": [ + "DT_TESpriteSpray.m_vecOrigin", + "DT_TESpriteSpray.m_vecDirection", + "DT_TESpriteSpray.m_nModelIndex", + "DT_TESpriteSpray.m_fNoise", + "DT_TESpriteSpray.m_nSpeed", + "DT_TESpriteSpray.m_nCount" + ], + "DT_TETFBlood": [ + "DT_TETFBlood.m_vecOrigin[0]", + "DT_TETFBlood.m_vecOrigin[1]", + "DT_TETFBlood.m_vecOrigin[2]", + "DT_TETFBlood.m_vecNormal", + "DT_TETFBlood.entindex" + ], + "DT_TETFExplosion": [ + "DT_TETFExplosion.m_vecOrigin[0]", + "DT_TETFExplosion.m_vecOrigin[1]", + "DT_TETFExplosion.m_vecOrigin[2]", + "DT_TETFExplosion.m_vecNormal", + "DT_TETFExplosion.m_iWeaponID", + "DT_TETFExplosion.entindex", + "DT_TETFExplosion.m_nDefID", + "DT_TETFExplosion.m_nSound", + "DT_TETFExplosion.m_iCustomParticleIndex" + ], + "DT_TETFParticleEffect": [ + "DT_TETFParticleEffect.m_vecOrigin[0]", + "DT_TETFParticleEffect.m_vecOrigin[1]", + "DT_TETFParticleEffect.m_vecOrigin[2]", + "DT_TETFParticleEffect.m_vecStart[0]", + "DT_TETFParticleEffect.m_vecStart[1]", + "DT_TETFParticleEffect.m_vecStart[2]", + "DT_TETFParticleEffect.m_vecAngles", + "DT_TETFParticleEffect.m_iParticleSystemIndex", + "DT_TETFParticleEffect.entindex", + "DT_TETFParticleEffect.m_iAttachType", + "DT_TETFParticleEffect.m_iAttachmentPointIndex", + "DT_TETFParticleEffect.m_bResetParticles", + "DT_TETFParticleEffect.m_bCustomColors", + "DT_TETFParticleEffect.m_CustomColors.m_vecColor1", + "DT_TETFParticleEffect.m_CustomColors.m_vecColor2", + "DT_TETFParticleEffect.m_bControlPoint1", + "DT_TETFParticleEffect.m_ControlPoint1.m_eParticleAttachment", + "DT_TETFParticleEffect.m_ControlPoint1.m_vecOffset[0]", + "DT_TETFParticleEffect.m_ControlPoint1.m_vecOffset[1]", + "DT_TETFParticleEffect.m_ControlPoint1.m_vecOffset[2]" + ], + "DT_TEWorldDecal": [ + "DT_TEWorldDecal.m_vecOrigin", + "DT_TEWorldDecal.m_nIndex" + ], + "DT_TFBaseBoss": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -14943,99 +14758,248 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", "DT_BaseAnimating.m_nForceBone", @@ -15056,24 +15020,14 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponBottle.m_bBroken" + "DT_BaseFlex.m_blinktoggle", + "DT_BaseFlex.m_viewtarget", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_TFBaseBoss.m_lastHealthPercentage" ], - "DT_TFWeaponBuffItem": [ + "DT_TFBaseProjectile": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -15121,78 +15075,6 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -15234,27 +15116,16 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseProjectile.m_vInitialVelocity", + "DT_TFBaseProjectile.m_hLauncher" ], - "DT_TFCannon": [ + "DT_TFBaseRocket": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -15298,80 +15169,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -15388,7 +15186,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -15411,24 +15208,59 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponGrenadeLauncher.m_flDetonateTime" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher" ], - "DT_TFWeaponCleaver": [ + "DT_TFBotHintEngineerNest": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_TFBotHintEngineerNest.m_bHasActiveTeleporter" + ], + "DT_TFCannon": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -15603,13 +15435,15 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponGrenadeLauncher.m_flDetonateTime" ], - "DT_TFWeaponClub": [ + "DT_TFFlameRocket": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -15653,80 +15487,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -15743,7 +15504,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -15766,23 +15526,298 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher" ], - "DT_WeaponCompoundBow": [ + "DT_TFGameRules": [ + "DT_TFGameRules.m_nGameType", + "DT_TFGameRules.m_nStopWatchState", + "DT_TFGameRules.m_pszTeamGoalStringRed", + "DT_TFGameRules.m_pszTeamGoalStringBlue", + "DT_TFGameRules.m_flCapturePointEnableTime", + "DT_TFGameRules.m_nHudType", + "DT_TFGameRules.m_bIsInTraining", + "DT_TFGameRules.m_bAllowTrainingAchievements", + "DT_TFGameRules.m_bIsWaitingForTrainingContinue", + "DT_TFGameRules.m_bIsTrainingHUDVisible", + "DT_TFGameRules.m_bIsInItemTestingMode", + "DT_TFGameRules.m_hBonusLogic", + "DT_TFGameRules.m_bPlayingKoth", + "DT_TFGameRules.m_bPlayingMedieval", + "DT_TFGameRules.m_bPlayingHybrid_CTF_CP", + "DT_TFGameRules.m_bPlayingSpecialDeliveryMode", + "DT_TFGameRules.m_bPlayingRobotDestructionMode", + "DT_TFGameRules.m_hRedKothTimer", + "DT_TFGameRules.m_hBlueKothTimer", + "DT_TFGameRules.m_nMapHolidayType", + "DT_TFGameRules.m_itHandle", + "DT_TFGameRules.m_bPlayingMannVsMachine", + "DT_TFGameRules.m_hBirthdayPlayer", + "DT_TFGameRules.m_nBossHealth", + "DT_TFGameRules.m_nMaxBossHealth", + "DT_TFGameRules.m_fBossNormalizedTravelDistance", + "DT_TFGameRules.m_bMannVsMachineAlarmStatus", + "DT_TFGameRules.m_bHaveMinPlayersToEnableReady", + "DT_TFGameRules.m_bBountyModeEnabled", + "DT_TFGameRules.m_nHalloweenEffect", + "DT_TFGameRules.m_fHalloweenEffectStartTime", + "DT_TFGameRules.m_fHalloweenEffectDuration", + "DT_TFGameRules.m_halloweenScenario", + "DT_TFGameRules.m_bHelltowerPlayersInHell", + "DT_TFGameRules.m_bIsUsingSpells", + "DT_TFGameRules.m_bCompetitiveMode", + "DT_TFGameRules.m_bPowerupMode", + "DT_TFGameRules.m_pszCustomUpgradesFile" + ], + "DT_TFGameRulesProxy": [ + "m_flNextRespawnWave.000", + "m_flNextRespawnWave.001", + "m_flNextRespawnWave.002", + "m_flNextRespawnWave.003", + "m_flNextRespawnWave.004", + "m_flNextRespawnWave.005", + "m_flNextRespawnWave.006", + "m_flNextRespawnWave.007", + "m_flNextRespawnWave.008", + "m_flNextRespawnWave.009", + "m_flNextRespawnWave.010", + "m_flNextRespawnWave.011", + "m_flNextRespawnWave.012", + "m_flNextRespawnWave.013", + "m_flNextRespawnWave.014", + "m_flNextRespawnWave.015", + "m_flNextRespawnWave.016", + "m_flNextRespawnWave.017", + "m_flNextRespawnWave.018", + "m_flNextRespawnWave.019", + "m_flNextRespawnWave.020", + "m_flNextRespawnWave.021", + "m_flNextRespawnWave.022", + "m_flNextRespawnWave.023", + "m_flNextRespawnWave.024", + "m_flNextRespawnWave.025", + "m_flNextRespawnWave.026", + "m_flNextRespawnWave.027", + "m_flNextRespawnWave.028", + "m_flNextRespawnWave.029", + "m_flNextRespawnWave.030", + "m_flNextRespawnWave.031", + "m_TeamRespawnWaveTimes.000", + "m_TeamRespawnWaveTimes.001", + "m_TeamRespawnWaveTimes.002", + "m_TeamRespawnWaveTimes.003", + "m_TeamRespawnWaveTimes.004", + "m_TeamRespawnWaveTimes.005", + "m_TeamRespawnWaveTimes.006", + "m_TeamRespawnWaveTimes.007", + "m_TeamRespawnWaveTimes.008", + "m_TeamRespawnWaveTimes.009", + "m_TeamRespawnWaveTimes.010", + "m_TeamRespawnWaveTimes.011", + "m_TeamRespawnWaveTimes.012", + "m_TeamRespawnWaveTimes.013", + "m_TeamRespawnWaveTimes.014", + "m_TeamRespawnWaveTimes.015", + "m_TeamRespawnWaveTimes.016", + "m_TeamRespawnWaveTimes.017", + "m_TeamRespawnWaveTimes.018", + "m_TeamRespawnWaveTimes.019", + "m_TeamRespawnWaveTimes.020", + "m_TeamRespawnWaveTimes.021", + "m_TeamRespawnWaveTimes.022", + "m_TeamRespawnWaveTimes.023", + "m_TeamRespawnWaveTimes.024", + "m_TeamRespawnWaveTimes.025", + "m_TeamRespawnWaveTimes.026", + "m_TeamRespawnWaveTimes.027", + "m_TeamRespawnWaveTimes.028", + "m_TeamRespawnWaveTimes.029", + "m_TeamRespawnWaveTimes.030", + "m_TeamRespawnWaveTimes.031", + "m_bTeamReady.000", + "m_bTeamReady.001", + "m_bTeamReady.002", + "m_bTeamReady.003", + "m_bTeamReady.004", + "m_bTeamReady.005", + "m_bTeamReady.006", + "m_bTeamReady.007", + "m_bTeamReady.008", + "m_bTeamReady.009", + "m_bTeamReady.010", + "m_bTeamReady.011", + "m_bTeamReady.012", + "m_bTeamReady.013", + "m_bTeamReady.014", + "m_bTeamReady.015", + "m_bTeamReady.016", + "m_bTeamReady.017", + "m_bTeamReady.018", + "m_bTeamReady.019", + "m_bTeamReady.020", + "m_bTeamReady.021", + "m_bTeamReady.022", + "m_bTeamReady.023", + "m_bTeamReady.024", + "m_bTeamReady.025", + "m_bTeamReady.026", + "m_bTeamReady.027", + "m_bTeamReady.028", + "m_bTeamReady.029", + "m_bTeamReady.030", + "m_bTeamReady.031", + "m_bPlayerReady.000", + "m_bPlayerReady.001", + "m_bPlayerReady.002", + "m_bPlayerReady.003", + "m_bPlayerReady.004", + "m_bPlayerReady.005", + "m_bPlayerReady.006", + "m_bPlayerReady.007", + "m_bPlayerReady.008", + "m_bPlayerReady.009", + "m_bPlayerReady.010", + "m_bPlayerReady.011", + "m_bPlayerReady.012", + "m_bPlayerReady.013", + "m_bPlayerReady.014", + "m_bPlayerReady.015", + "m_bPlayerReady.016", + "m_bPlayerReady.017", + "m_bPlayerReady.018", + "m_bPlayerReady.019", + "m_bPlayerReady.020", + "m_bPlayerReady.021", + "m_bPlayerReady.022", + "m_bPlayerReady.023", + "m_bPlayerReady.024", + "m_bPlayerReady.025", + "m_bPlayerReady.026", + "m_bPlayerReady.027", + "m_bPlayerReady.028", + "m_bPlayerReady.029", + "m_bPlayerReady.030", + "m_bPlayerReady.031", + "m_bPlayerReady.032", + "DT_TeamplayRoundBasedRules.m_iRoundState", + "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers", + "DT_TeamplayRoundBasedRules.m_iWinningTeam", + "DT_TeamplayRoundBasedRules.m_bInOvertime", + "DT_TeamplayRoundBasedRules.m_bInSetup", + "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound", + "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart", + "DT_TeamplayRoundBasedRules.m_flRestartRoundTime", + "DT_TeamplayRoundBasedRules.m_flMapResetTime", + "DT_TeamplayRoundBasedRules.m_bStopWatch", + "DT_TeamplayRoundBasedRules.m_bMultipleTrains", + "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel", + "DT_TFGameRules.m_nGameType", + "DT_TFGameRules.m_nStopWatchState", + "DT_TFGameRules.m_pszTeamGoalStringRed", + "DT_TFGameRules.m_pszTeamGoalStringBlue", + "DT_TFGameRules.m_flCapturePointEnableTime", + "DT_TFGameRules.m_nHudType", + "DT_TFGameRules.m_bIsInTraining", + "DT_TFGameRules.m_bAllowTrainingAchievements", + "DT_TFGameRules.m_bIsWaitingForTrainingContinue", + "DT_TFGameRules.m_bIsTrainingHUDVisible", + "DT_TFGameRules.m_bIsInItemTestingMode", + "DT_TFGameRules.m_hBonusLogic", + "DT_TFGameRules.m_bPlayingKoth", + "DT_TFGameRules.m_bPlayingMedieval", + "DT_TFGameRules.m_bPlayingHybrid_CTF_CP", + "DT_TFGameRules.m_bPlayingSpecialDeliveryMode", + "DT_TFGameRules.m_bPlayingRobotDestructionMode", + "DT_TFGameRules.m_hRedKothTimer", + "DT_TFGameRules.m_hBlueKothTimer", + "DT_TFGameRules.m_nMapHolidayType", + "DT_TFGameRules.m_itHandle", + "DT_TFGameRules.m_bPlayingMannVsMachine", + "DT_TFGameRules.m_hBirthdayPlayer", + "DT_TFGameRules.m_nBossHealth", + "DT_TFGameRules.m_nMaxBossHealth", + "DT_TFGameRules.m_fBossNormalizedTravelDistance", + "DT_TFGameRules.m_bMannVsMachineAlarmStatus", + "DT_TFGameRules.m_bHaveMinPlayersToEnableReady", + "DT_TFGameRules.m_bBountyModeEnabled", + "DT_TFGameRules.m_nHalloweenEffect", + "DT_TFGameRules.m_fHalloweenEffectStartTime", + "DT_TFGameRules.m_fHalloweenEffectDuration", + "DT_TFGameRules.m_halloweenScenario", + "DT_TFGameRules.m_bHelltowerPlayersInHell", + "DT_TFGameRules.m_bIsUsingSpells", + "DT_TFGameRules.m_bCompetitiveMode", + "DT_TFGameRules.m_bPowerupMode", + "DT_TFGameRules.m_pszCustomUpgradesFile" + ], + "DT_TFHalloweenMinigame": [ + "m_nMinigameTeamScore.000", + "m_nMinigameTeamScore.001", + "m_nMinigameTeamScore.002", + "m_nMinigameTeamScore.003", + "DT_TFMinigame.m_nMaxScoreForMiniGame", + "DT_TFMinigame.m_pszHudResFile", + "DT_TFMinigame.m_eScoringType" + ], + "DT_TFHalloweenMinigame_FallingPlatforms": [ + "m_nMinigameTeamScore.000", + "m_nMinigameTeamScore.001", + "m_nMinigameTeamScore.002", + "m_nMinigameTeamScore.003", + "DT_TFMinigame.m_nMaxScoreForMiniGame", + "DT_TFMinigame.m_pszHudResFile", + "DT_TFMinigame.m_eScoringType" + ], + "DT_TFHellZap": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting" + ], + "DT_TFItem": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -15830,80 +15865,6 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_PipebombLauncherLocalData.m_iPipebombCount", - "DT_PipebombLauncherLocalData.m_flChargeBeginTime", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -15945,25 +15906,9 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponCompoundBow.m_bArrowAlight", - "DT_WeaponCompoundBow.m_bNoFire" + "DT_DynamicProp.m_bUseHitboxesForRenderBox" ], - "DT_Crossbow": [ + "DT_TFLaserPointer": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -16140,7 +16085,19 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_WeaponDRGPomson": [ + "DT_TFLocalPlayerExclusive": [ + "DT_TFLocalPlayerExclusive.m_vecOrigin", + "DT_TFLocalPlayerExclusive.m_vecOrigin[2]", + "DT_TFLocalPlayerExclusive.m_angEyeAngles[0]", + "DT_TFLocalPlayerExclusive.\"player_object_array\"", + "DT_TFLocalPlayerExclusive.m_bIsCoaching", + "DT_TFLocalPlayerExclusive.m_hCoach", + "DT_TFLocalPlayerExclusive.m_hStudent", + "DT_TFLocalPlayerExclusive.m_nCurrency", + "DT_TFLocalPlayerExclusive.m_nExperienceLevel", + "DT_TFLocalPlayerExclusive.m_nExperienceLevelProgress" + ], + "DT_TFLunchBox_Drink": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -16317,7 +16274,7 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponFireAxe": [ + "DT_TFMechanicalArm": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -16494,7 +16451,8 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponFists": [ + "DT_TFMedigunShield": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -16542,78 +16500,6 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -16654,9483 +16540,950 @@ "DT_BaseAnimating.m_hLightingOriginRelative", "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseAnimating.m_flFadeScale" ], - "DT_TFFlameRocket": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher" + "DT_TFMinigame": [ + "m_nMinigameTeamScore.000", + "m_nMinigameTeamScore.001", + "m_nMinigameTeamScore.002", + "m_nMinigameTeamScore.003", + "DT_TFMinigame.m_nMaxScoreForMiniGame", + "DT_TFMinigame.m_pszHudResFile", + "DT_TFMinigame.m_eScoringType" ], - "DT_WeaponFlameThrower": [ - "DT_ServerAnimationData.m_flCycle", - "DT_LocalFlameThrower.m_iActiveFlames", - "DT_LocalFlameThrower.m_iDamagingFlames", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_WeaponFlameThrower.m_iWeaponState", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_usSolidFlags", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_CollisionProperty.m_nSurroundType", - "DT_WeaponFlameThrower.m_bCritFire", - "DT_WeaponFlameThrower.m_bHitTarget", - "DT_WeaponFlameThrower.m_flChargeBeginTime" + "DT_TFMinigameLogic": [ + "DT_TFMinigameLogic.m_hActiveMinigame" ], - "DT_WeaponFlareGun": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponFlareGun.m_flChargeBeginTime" - ], - "DT_WeaponFlareGun_Revenge": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponFlareGun.m_flChargeBeginTime", - "DT_WeaponFlareGun_Revenge.m_fLastExtinguishTime" - ], - "DT_TFGameRulesProxy": [ - "m_flNextRespawnWave.000", - "m_flNextRespawnWave.001", - "m_flNextRespawnWave.002", - "m_flNextRespawnWave.003", - "m_flNextRespawnWave.004", - "m_flNextRespawnWave.005", - "m_flNextRespawnWave.006", - "m_flNextRespawnWave.007", - "m_flNextRespawnWave.008", - "m_flNextRespawnWave.009", - "m_flNextRespawnWave.010", - "m_flNextRespawnWave.011", - "m_flNextRespawnWave.012", - "m_flNextRespawnWave.013", - "m_flNextRespawnWave.014", - "m_flNextRespawnWave.015", - "m_flNextRespawnWave.016", - "m_flNextRespawnWave.017", - "m_flNextRespawnWave.018", - "m_flNextRespawnWave.019", - "m_flNextRespawnWave.020", - "m_flNextRespawnWave.021", - "m_flNextRespawnWave.022", - "m_flNextRespawnWave.023", - "m_flNextRespawnWave.024", - "m_flNextRespawnWave.025", - "m_flNextRespawnWave.026", - "m_flNextRespawnWave.027", - "m_flNextRespawnWave.028", - "m_flNextRespawnWave.029", - "m_flNextRespawnWave.030", - "m_flNextRespawnWave.031", - "m_TeamRespawnWaveTimes.000", - "m_TeamRespawnWaveTimes.001", - "m_TeamRespawnWaveTimes.002", - "m_TeamRespawnWaveTimes.003", - "m_TeamRespawnWaveTimes.004", - "m_TeamRespawnWaveTimes.005", - "m_TeamRespawnWaveTimes.006", - "m_TeamRespawnWaveTimes.007", - "m_TeamRespawnWaveTimes.008", - "m_TeamRespawnWaveTimes.009", - "m_TeamRespawnWaveTimes.010", - "m_TeamRespawnWaveTimes.011", - "m_TeamRespawnWaveTimes.012", - "m_TeamRespawnWaveTimes.013", - "m_TeamRespawnWaveTimes.014", - "m_TeamRespawnWaveTimes.015", - "m_TeamRespawnWaveTimes.016", - "m_TeamRespawnWaveTimes.017", - "m_TeamRespawnWaveTimes.018", - "m_TeamRespawnWaveTimes.019", - "m_TeamRespawnWaveTimes.020", - "m_TeamRespawnWaveTimes.021", - "m_TeamRespawnWaveTimes.022", - "m_TeamRespawnWaveTimes.023", - "m_TeamRespawnWaveTimes.024", - "m_TeamRespawnWaveTimes.025", - "m_TeamRespawnWaveTimes.026", - "m_TeamRespawnWaveTimes.027", - "m_TeamRespawnWaveTimes.028", - "m_TeamRespawnWaveTimes.029", - "m_TeamRespawnWaveTimes.030", - "m_TeamRespawnWaveTimes.031", - "m_bTeamReady.000", - "m_bTeamReady.001", - "m_bTeamReady.002", - "m_bTeamReady.003", - "m_bTeamReady.004", - "m_bTeamReady.005", - "m_bTeamReady.006", - "m_bTeamReady.007", - "m_bTeamReady.008", - "m_bTeamReady.009", - "m_bTeamReady.010", - "m_bTeamReady.011", - "m_bTeamReady.012", - "m_bTeamReady.013", - "m_bTeamReady.014", - "m_bTeamReady.015", - "m_bTeamReady.016", - "m_bTeamReady.017", - "m_bTeamReady.018", - "m_bTeamReady.019", - "m_bTeamReady.020", - "m_bTeamReady.021", - "m_bTeamReady.022", - "m_bTeamReady.023", - "m_bTeamReady.024", - "m_bTeamReady.025", - "m_bTeamReady.026", - "m_bTeamReady.027", - "m_bTeamReady.028", - "m_bTeamReady.029", - "m_bTeamReady.030", - "m_bTeamReady.031", - "m_bPlayerReady.000", - "m_bPlayerReady.001", - "m_bPlayerReady.002", - "m_bPlayerReady.003", - "m_bPlayerReady.004", - "m_bPlayerReady.005", - "m_bPlayerReady.006", - "m_bPlayerReady.007", - "m_bPlayerReady.008", - "m_bPlayerReady.009", - "m_bPlayerReady.010", - "m_bPlayerReady.011", - "m_bPlayerReady.012", - "m_bPlayerReady.013", - "m_bPlayerReady.014", - "m_bPlayerReady.015", - "m_bPlayerReady.016", - "m_bPlayerReady.017", - "m_bPlayerReady.018", - "m_bPlayerReady.019", - "m_bPlayerReady.020", - "m_bPlayerReady.021", - "m_bPlayerReady.022", - "m_bPlayerReady.023", - "m_bPlayerReady.024", - "m_bPlayerReady.025", - "m_bPlayerReady.026", - "m_bPlayerReady.027", - "m_bPlayerReady.028", - "m_bPlayerReady.029", - "m_bPlayerReady.030", - "m_bPlayerReady.031", - "m_bPlayerReady.032", - "DT_TeamplayRoundBasedRules.m_iRoundState", - "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers", - "DT_TeamplayRoundBasedRules.m_iWinningTeam", - "DT_TeamplayRoundBasedRules.m_bInOvertime", - "DT_TeamplayRoundBasedRules.m_bInSetup", - "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound", - "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart", - "DT_TeamplayRoundBasedRules.m_flRestartRoundTime", - "DT_TeamplayRoundBasedRules.m_flMapResetTime", - "DT_TeamplayRoundBasedRules.m_bStopWatch", - "DT_TeamplayRoundBasedRules.m_bMultipleTrains", - "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel", - "DT_TFGameRules.m_nGameType", - "DT_TFGameRules.m_nStopWatchState", - "DT_TFGameRules.m_pszTeamGoalStringRed", - "DT_TFGameRules.m_pszTeamGoalStringBlue", - "DT_TFGameRules.m_flCapturePointEnableTime", - "DT_TFGameRules.m_nHudType", - "DT_TFGameRules.m_bIsInTraining", - "DT_TFGameRules.m_bAllowTrainingAchievements", - "DT_TFGameRules.m_bIsWaitingForTrainingContinue", - "DT_TFGameRules.m_bIsTrainingHUDVisible", - "DT_TFGameRules.m_bIsInItemTestingMode", - "DT_TFGameRules.m_hBonusLogic", - "DT_TFGameRules.m_bPlayingKoth", - "DT_TFGameRules.m_bPlayingMedieval", - "DT_TFGameRules.m_bPlayingHybrid_CTF_CP", - "DT_TFGameRules.m_bPlayingSpecialDeliveryMode", - "DT_TFGameRules.m_bPlayingRobotDestructionMode", - "DT_TFGameRules.m_hRedKothTimer", - "DT_TFGameRules.m_hBlueKothTimer", - "DT_TFGameRules.m_nMapHolidayType", - "DT_TFGameRules.m_itHandle", - "DT_TFGameRules.m_bPlayingMannVsMachine", - "DT_TFGameRules.m_hBirthdayPlayer", - "DT_TFGameRules.m_nBossHealth", - "DT_TFGameRules.m_nMaxBossHealth", - "DT_TFGameRules.m_fBossNormalizedTravelDistance", - "DT_TFGameRules.m_bMannVsMachineAlarmStatus", - "DT_TFGameRules.m_bHaveMinPlayersToEnableReady", - "DT_TFGameRules.m_bBountyModeEnabled", - "DT_TFGameRules.m_nHalloweenEffect", - "DT_TFGameRules.m_fHalloweenEffectStartTime", - "DT_TFGameRules.m_fHalloweenEffectDuration", - "DT_TFGameRules.m_halloweenScenario", - "DT_TFGameRules.m_bHelltowerPlayersInHell", - "DT_TFGameRules.m_bIsUsingSpells", - "DT_TFGameRules.m_bCompetitiveMode", - "DT_TFGameRules.m_bPowerupMode", - "DT_TFGameRules.m_pszCustomUpgradesFile" + "DT_TFNonLocalPlayerExclusive": [ + "DT_TFNonLocalPlayerExclusive.m_vecOrigin", + "DT_TFNonLocalPlayerExclusive.m_vecOrigin[2]", + "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[0]", + "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[1]" ], - "DT_GrapplingHook": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponGrenadeLauncher": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponGrenadeLauncher.m_flDetonateTime" - ], - "DT_TFProjectile_Pipebomb": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFHalloweenMinigame": [ - "m_nMinigameTeamScore.000", - "m_nMinigameTeamScore.001", - "m_nMinigameTeamScore.002", - "m_nMinigameTeamScore.003", - "DT_TFMinigame.m_nMaxScoreForMiniGame", - "DT_TFMinigame.m_pszHudResFile", - "DT_TFMinigame.m_eScoringType" - ], - "DT_TFHalloweenMinigame_FallingPlatforms": [ - "m_nMinigameTeamScore.000", - "m_nMinigameTeamScore.001", - "m_nMinigameTeamScore.002", - "m_nMinigameTeamScore.003", - "DT_TFMinigame.m_nMaxScoreForMiniGame", - "DT_TFMinigame.m_pszHudResFile", - "DT_TFMinigame.m_eScoringType" - ], - "DT_TFHellZap": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting" - ], - "DT_TFItem": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_DynamicProp.m_bUseHitboxesForRenderBox" - ], - "DT_TFWeaponJar": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFWeaponJarMilk": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFWeaponKatana": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponKatana.m_bIsBloody" - ], - "DT_TFWeaponKnife": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponKnife.m_bReadyToBackstab", - "DT_TFWeaponKnife.m_bKnifeExists", - "DT_TFWeaponKnife.m_flKnifeRegenerateDuration", - "DT_TFWeaponKnife.m_flKnifeMeltTimestamp" - ], - "DT_TFLaserPointer": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponLunchBox": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFLunchBox_Drink": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFMechanicalArm": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFMedigunShield": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" - ], - "DT_TFMinigame": [ - "m_nMinigameTeamScore.000", - "m_nMinigameTeamScore.001", - "m_nMinigameTeamScore.002", - "m_nMinigameTeamScore.003", - "DT_TFMinigame.m_nMaxScoreForMiniGame", - "DT_TFMinigame.m_pszHudResFile", - "DT_TFMinigame.m_eScoringType" - ], - "DT_TFMinigameLogic": [ - "DT_TFMinigameLogic.m_hActiveMinigame" - ], - "DT_WeaponMinigun": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_WeaponMinigun.m_iWeaponState", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_CollisionProperty.m_nSolidType", - "DT_WeaponMinigun.m_bCritShot" - ], - "DT_TFObjectiveResource": [ - "m_bCPIsVisible.000", - "m_bCPIsVisible.001", - "m_bCPIsVisible.002", - "m_bCPIsVisible.003", - "m_bCPIsVisible.004", - "m_bCPIsVisible.005", - "m_bCPIsVisible.006", - "m_bCPIsVisible.007", - "m_flLazyCapPerc.000", - "m_flLazyCapPerc.001", - "m_flLazyCapPerc.002", - "m_flLazyCapPerc.003", - "m_flLazyCapPerc.004", - "m_flLazyCapPerc.005", - "m_flLazyCapPerc.006", - "m_flLazyCapPerc.007", - "m_iTeamIcons.000", - "m_iTeamIcons.001", - "m_iTeamIcons.002", - "m_iTeamIcons.003", - "m_iTeamIcons.004", - "m_iTeamIcons.005", - "m_iTeamIcons.006", - "m_iTeamIcons.007", - "m_iTeamIcons.008", - "m_iTeamIcons.009", - "m_iTeamIcons.010", - "m_iTeamIcons.011", - "m_iTeamIcons.012", - "m_iTeamIcons.013", - "m_iTeamIcons.014", - "m_iTeamIcons.015", - "m_iTeamIcons.016", - "m_iTeamIcons.017", - "m_iTeamIcons.018", - "m_iTeamIcons.019", - "m_iTeamIcons.020", - "m_iTeamIcons.021", - "m_iTeamIcons.022", - "m_iTeamIcons.023", - "m_iTeamIcons.024", - "m_iTeamIcons.025", - "m_iTeamIcons.026", - "m_iTeamIcons.027", - "m_iTeamIcons.028", - "m_iTeamIcons.029", - "m_iTeamIcons.030", - "m_iTeamIcons.031", - "m_iTeamIcons.032", - "m_iTeamIcons.033", - "m_iTeamIcons.034", - "m_iTeamIcons.035", - "m_iTeamIcons.036", - "m_iTeamIcons.037", - "m_iTeamIcons.038", - "m_iTeamIcons.039", - "m_iTeamIcons.040", - "m_iTeamIcons.041", - "m_iTeamIcons.042", - "m_iTeamIcons.043", - "m_iTeamIcons.044", - "m_iTeamIcons.045", - "m_iTeamIcons.046", - "m_iTeamIcons.047", - "m_iTeamIcons.048", - "m_iTeamIcons.049", - "m_iTeamIcons.050", - "m_iTeamIcons.051", - "m_iTeamIcons.052", - "m_iTeamIcons.053", - "m_iTeamIcons.054", - "m_iTeamIcons.055", - "m_iTeamIcons.056", - "m_iTeamIcons.057", - "m_iTeamIcons.058", - "m_iTeamIcons.059", - "m_iTeamIcons.060", - "m_iTeamIcons.061", - "m_iTeamIcons.062", - "m_iTeamIcons.063", - "m_iTeamOverlays.000", - "m_iTeamOverlays.001", - "m_iTeamOverlays.002", - "m_iTeamOverlays.003", - "m_iTeamOverlays.004", - "m_iTeamOverlays.005", - "m_iTeamOverlays.006", - "m_iTeamOverlays.007", - "m_iTeamOverlays.008", - "m_iTeamOverlays.009", - "m_iTeamOverlays.010", - "m_iTeamOverlays.011", - "m_iTeamOverlays.012", - "m_iTeamOverlays.013", - "m_iTeamOverlays.014", - "m_iTeamOverlays.015", - "m_iTeamOverlays.016", - "m_iTeamOverlays.017", - "m_iTeamOverlays.018", - "m_iTeamOverlays.019", - "m_iTeamOverlays.020", - "m_iTeamOverlays.021", - "m_iTeamOverlays.022", - "m_iTeamOverlays.023", - "m_iTeamOverlays.024", - "m_iTeamOverlays.025", - "m_iTeamOverlays.026", - "m_iTeamOverlays.027", - "m_iTeamOverlays.028", - "m_iTeamOverlays.029", - "m_iTeamOverlays.030", - "m_iTeamOverlays.031", - "m_iTeamOverlays.032", - "m_iTeamOverlays.033", - "m_iTeamOverlays.034", - "m_iTeamOverlays.035", - "m_iTeamOverlays.036", - "m_iTeamOverlays.037", - "m_iTeamOverlays.038", - "m_iTeamOverlays.039", - "m_iTeamOverlays.040", - "m_iTeamOverlays.041", - "m_iTeamOverlays.042", - "m_iTeamOverlays.043", - "m_iTeamOverlays.044", - "m_iTeamOverlays.045", - "m_iTeamOverlays.046", - "m_iTeamOverlays.047", - "m_iTeamOverlays.048", - "m_iTeamOverlays.049", - "m_iTeamOverlays.050", - "m_iTeamOverlays.051", - "m_iTeamOverlays.052", - "m_iTeamOverlays.053", - "m_iTeamOverlays.054", - "m_iTeamOverlays.055", - "m_iTeamOverlays.056", - "m_iTeamOverlays.057", - "m_iTeamOverlays.058", - "m_iTeamOverlays.059", - "m_iTeamOverlays.060", - "m_iTeamOverlays.061", - "m_iTeamOverlays.062", - "m_iTeamOverlays.063", - "m_iTeamReqCappers.000", - "m_iTeamReqCappers.001", - "m_iTeamReqCappers.002", - "m_iTeamReqCappers.003", - "m_iTeamReqCappers.004", - "m_iTeamReqCappers.005", - "m_iTeamReqCappers.006", - "m_iTeamReqCappers.007", - "m_iTeamReqCappers.008", - "m_iTeamReqCappers.009", - "m_iTeamReqCappers.010", - "m_iTeamReqCappers.011", - "m_iTeamReqCappers.012", - "m_iTeamReqCappers.013", - "m_iTeamReqCappers.014", - "m_iTeamReqCappers.015", - "m_iTeamReqCappers.016", - "m_iTeamReqCappers.017", - "m_iTeamReqCappers.018", - "m_iTeamReqCappers.019", - "m_iTeamReqCappers.020", - "m_iTeamReqCappers.021", - "m_iTeamReqCappers.022", - "m_iTeamReqCappers.023", - "m_iTeamReqCappers.024", - "m_iTeamReqCappers.025", - "m_iTeamReqCappers.026", - "m_iTeamReqCappers.027", - "m_iTeamReqCappers.028", - "m_iTeamReqCappers.029", - "m_iTeamReqCappers.030", - "m_iTeamReqCappers.031", - "m_iTeamReqCappers.032", - "m_iTeamReqCappers.033", - "m_iTeamReqCappers.034", - "m_iTeamReqCappers.035", - "m_iTeamReqCappers.036", - "m_iTeamReqCappers.037", - "m_iTeamReqCappers.038", - "m_iTeamReqCappers.039", - "m_iTeamReqCappers.040", - "m_iTeamReqCappers.041", - "m_iTeamReqCappers.042", - "m_iTeamReqCappers.043", - "m_iTeamReqCappers.044", - "m_iTeamReqCappers.045", - "m_iTeamReqCappers.046", - "m_iTeamReqCappers.047", - "m_iTeamReqCappers.048", - "m_iTeamReqCappers.049", - "m_iTeamReqCappers.050", - "m_iTeamReqCappers.051", - "m_iTeamReqCappers.052", - "m_iTeamReqCappers.053", - "m_iTeamReqCappers.054", - "m_iTeamReqCappers.055", - "m_iTeamReqCappers.056", - "m_iTeamReqCappers.057", - "m_iTeamReqCappers.058", - "m_iTeamReqCappers.059", - "m_iTeamReqCappers.060", - "m_iTeamReqCappers.061", - "m_iTeamReqCappers.062", - "m_iTeamReqCappers.063", - "m_flTeamCapTime.000", - "m_flTeamCapTime.001", - "m_flTeamCapTime.002", - "m_flTeamCapTime.003", - "m_flTeamCapTime.004", - "m_flTeamCapTime.005", - "m_flTeamCapTime.006", - "m_flTeamCapTime.007", - "m_flTeamCapTime.008", - "m_flTeamCapTime.009", - "m_flTeamCapTime.010", - "m_flTeamCapTime.011", - "m_flTeamCapTime.012", - "m_flTeamCapTime.013", - "m_flTeamCapTime.014", - "m_flTeamCapTime.015", - "m_flTeamCapTime.016", - "m_flTeamCapTime.017", - "m_flTeamCapTime.018", - "m_flTeamCapTime.019", - "m_flTeamCapTime.020", - "m_flTeamCapTime.021", - "m_flTeamCapTime.022", - "m_flTeamCapTime.023", - "m_flTeamCapTime.024", - "m_flTeamCapTime.025", - "m_flTeamCapTime.026", - "m_flTeamCapTime.027", - "m_flTeamCapTime.028", - "m_flTeamCapTime.029", - "m_flTeamCapTime.030", - "m_flTeamCapTime.031", - "m_flTeamCapTime.032", - "m_flTeamCapTime.033", - "m_flTeamCapTime.034", - "m_flTeamCapTime.035", - "m_flTeamCapTime.036", - "m_flTeamCapTime.037", - "m_flTeamCapTime.038", - "m_flTeamCapTime.039", - "m_flTeamCapTime.040", - "m_flTeamCapTime.041", - "m_flTeamCapTime.042", - "m_flTeamCapTime.043", - "m_flTeamCapTime.044", - "m_flTeamCapTime.045", - "m_flTeamCapTime.046", - "m_flTeamCapTime.047", - "m_flTeamCapTime.048", - "m_flTeamCapTime.049", - "m_flTeamCapTime.050", - "m_flTeamCapTime.051", - "m_flTeamCapTime.052", - "m_flTeamCapTime.053", - "m_flTeamCapTime.054", - "m_flTeamCapTime.055", - "m_flTeamCapTime.056", - "m_flTeamCapTime.057", - "m_flTeamCapTime.058", - "m_flTeamCapTime.059", - "m_flTeamCapTime.060", - "m_flTeamCapTime.061", - "m_flTeamCapTime.062", - "m_flTeamCapTime.063", - "m_iPreviousPoints.000", - "m_iPreviousPoints.001", - "m_iPreviousPoints.002", - "m_iPreviousPoints.003", - "m_iPreviousPoints.004", - "m_iPreviousPoints.005", - "m_iPreviousPoints.006", - "m_iPreviousPoints.007", - "m_iPreviousPoints.008", - "m_iPreviousPoints.009", - "m_iPreviousPoints.010", - "m_iPreviousPoints.011", - "m_iPreviousPoints.012", - "m_iPreviousPoints.013", - "m_iPreviousPoints.014", - "m_iPreviousPoints.015", - "m_iPreviousPoints.016", - "m_iPreviousPoints.017", - "m_iPreviousPoints.018", - "m_iPreviousPoints.019", - "m_iPreviousPoints.020", - "m_iPreviousPoints.021", - "m_iPreviousPoints.022", - "m_iPreviousPoints.023", - "m_iPreviousPoints.024", - "m_iPreviousPoints.025", - "m_iPreviousPoints.026", - "m_iPreviousPoints.027", - "m_iPreviousPoints.028", - "m_iPreviousPoints.029", - "m_iPreviousPoints.030", - "m_iPreviousPoints.031", - "m_iPreviousPoints.032", - "m_iPreviousPoints.033", - "m_iPreviousPoints.034", - "m_iPreviousPoints.035", - "m_iPreviousPoints.036", - "m_iPreviousPoints.037", - "m_iPreviousPoints.038", - "m_iPreviousPoints.039", - "m_iPreviousPoints.040", - "m_iPreviousPoints.041", - "m_iPreviousPoints.042", - "m_iPreviousPoints.043", - "m_iPreviousPoints.044", - "m_iPreviousPoints.045", - "m_iPreviousPoints.046", - "m_iPreviousPoints.047", - "m_iPreviousPoints.048", - "m_iPreviousPoints.049", - "m_iPreviousPoints.050", - "m_iPreviousPoints.051", - "m_iPreviousPoints.052", - "m_iPreviousPoints.053", - "m_iPreviousPoints.054", - "m_iPreviousPoints.055", - "m_iPreviousPoints.056", - "m_iPreviousPoints.057", - "m_iPreviousPoints.058", - "m_iPreviousPoints.059", - "m_iPreviousPoints.060", - "m_iPreviousPoints.061", - "m_iPreviousPoints.062", - "m_iPreviousPoints.063", - "m_iPreviousPoints.064", - "m_iPreviousPoints.065", - "m_iPreviousPoints.066", - "m_iPreviousPoints.067", - "m_iPreviousPoints.068", - "m_iPreviousPoints.069", - "m_iPreviousPoints.070", - "m_iPreviousPoints.071", - "m_iPreviousPoints.072", - "m_iPreviousPoints.073", - "m_iPreviousPoints.074", - "m_iPreviousPoints.075", - "m_iPreviousPoints.076", - "m_iPreviousPoints.077", - "m_iPreviousPoints.078", - "m_iPreviousPoints.079", - "m_iPreviousPoints.080", - "m_iPreviousPoints.081", - "m_iPreviousPoints.082", - "m_iPreviousPoints.083", - "m_iPreviousPoints.084", - "m_iPreviousPoints.085", - "m_iPreviousPoints.086", - "m_iPreviousPoints.087", - "m_iPreviousPoints.088", - "m_iPreviousPoints.089", - "m_iPreviousPoints.090", - "m_iPreviousPoints.091", - "m_iPreviousPoints.092", - "m_iPreviousPoints.093", - "m_iPreviousPoints.094", - "m_iPreviousPoints.095", - "m_iPreviousPoints.096", - "m_iPreviousPoints.097", - "m_iPreviousPoints.098", - "m_iPreviousPoints.099", - "m_iPreviousPoints.100", - "m_iPreviousPoints.101", - "m_iPreviousPoints.102", - "m_iPreviousPoints.103", - "m_iPreviousPoints.104", - "m_iPreviousPoints.105", - "m_iPreviousPoints.106", - "m_iPreviousPoints.107", - "m_iPreviousPoints.108", - "m_iPreviousPoints.109", - "m_iPreviousPoints.110", - "m_iPreviousPoints.111", - "m_iPreviousPoints.112", - "m_iPreviousPoints.113", - "m_iPreviousPoints.114", - "m_iPreviousPoints.115", - "m_iPreviousPoints.116", - "m_iPreviousPoints.117", - "m_iPreviousPoints.118", - "m_iPreviousPoints.119", - "m_iPreviousPoints.120", - "m_iPreviousPoints.121", - "m_iPreviousPoints.122", - "m_iPreviousPoints.123", - "m_iPreviousPoints.124", - "m_iPreviousPoints.125", - "m_iPreviousPoints.126", - "m_iPreviousPoints.127", - "m_iPreviousPoints.128", - "m_iPreviousPoints.129", - "m_iPreviousPoints.130", - "m_iPreviousPoints.131", - "m_iPreviousPoints.132", - "m_iPreviousPoints.133", - "m_iPreviousPoints.134", - "m_iPreviousPoints.135", - "m_iPreviousPoints.136", - "m_iPreviousPoints.137", - "m_iPreviousPoints.138", - "m_iPreviousPoints.139", - "m_iPreviousPoints.140", - "m_iPreviousPoints.141", - "m_iPreviousPoints.142", - "m_iPreviousPoints.143", - "m_iPreviousPoints.144", - "m_iPreviousPoints.145", - "m_iPreviousPoints.146", - "m_iPreviousPoints.147", - "m_iPreviousPoints.148", - "m_iPreviousPoints.149", - "m_iPreviousPoints.150", - "m_iPreviousPoints.151", - "m_iPreviousPoints.152", - "m_iPreviousPoints.153", - "m_iPreviousPoints.154", - "m_iPreviousPoints.155", - "m_iPreviousPoints.156", - "m_iPreviousPoints.157", - "m_iPreviousPoints.158", - "m_iPreviousPoints.159", - "m_iPreviousPoints.160", - "m_iPreviousPoints.161", - "m_iPreviousPoints.162", - "m_iPreviousPoints.163", - "m_iPreviousPoints.164", - "m_iPreviousPoints.165", - "m_iPreviousPoints.166", - "m_iPreviousPoints.167", - "m_iPreviousPoints.168", - "m_iPreviousPoints.169", - "m_iPreviousPoints.170", - "m_iPreviousPoints.171", - "m_iPreviousPoints.172", - "m_iPreviousPoints.173", - "m_iPreviousPoints.174", - "m_iPreviousPoints.175", - "m_iPreviousPoints.176", - "m_iPreviousPoints.177", - "m_iPreviousPoints.178", - "m_iPreviousPoints.179", - "m_iPreviousPoints.180", - "m_iPreviousPoints.181", - "m_iPreviousPoints.182", - "m_iPreviousPoints.183", - "m_iPreviousPoints.184", - "m_iPreviousPoints.185", - "m_iPreviousPoints.186", - "m_iPreviousPoints.187", - "m_iPreviousPoints.188", - "m_iPreviousPoints.189", - "m_iPreviousPoints.190", - "m_iPreviousPoints.191", - "m_bTeamCanCap.000", - "m_bTeamCanCap.001", - "m_bTeamCanCap.002", - "m_bTeamCanCap.003", - "m_bTeamCanCap.004", - "m_bTeamCanCap.005", - "m_bTeamCanCap.006", - "m_bTeamCanCap.007", - "m_bTeamCanCap.008", - "m_bTeamCanCap.009", - "m_bTeamCanCap.010", - "m_bTeamCanCap.011", - "m_bTeamCanCap.012", - "m_bTeamCanCap.013", - "m_bTeamCanCap.014", - "m_bTeamCanCap.015", - "m_bTeamCanCap.016", - "m_bTeamCanCap.017", - "m_bTeamCanCap.018", - "m_bTeamCanCap.019", - "m_bTeamCanCap.020", - "m_bTeamCanCap.021", - "m_bTeamCanCap.022", - "m_bTeamCanCap.023", - "m_bTeamCanCap.024", - "m_bTeamCanCap.025", - "m_bTeamCanCap.026", - "m_bTeamCanCap.027", - "m_bTeamCanCap.028", - "m_bTeamCanCap.029", - "m_bTeamCanCap.030", - "m_bTeamCanCap.031", - "m_bTeamCanCap.032", - "m_bTeamCanCap.033", - "m_bTeamCanCap.034", - "m_bTeamCanCap.035", - "m_bTeamCanCap.036", - "m_bTeamCanCap.037", - "m_bTeamCanCap.038", - "m_bTeamCanCap.039", - "m_bTeamCanCap.040", - "m_bTeamCanCap.041", - "m_bTeamCanCap.042", - "m_bTeamCanCap.043", - "m_bTeamCanCap.044", - "m_bTeamCanCap.045", - "m_bTeamCanCap.046", - "m_bTeamCanCap.047", - "m_bTeamCanCap.048", - "m_bTeamCanCap.049", - "m_bTeamCanCap.050", - "m_bTeamCanCap.051", - "m_bTeamCanCap.052", - "m_bTeamCanCap.053", - "m_bTeamCanCap.054", - "m_bTeamCanCap.055", - "m_bTeamCanCap.056", - "m_bTeamCanCap.057", - "m_bTeamCanCap.058", - "m_bTeamCanCap.059", - "m_bTeamCanCap.060", - "m_bTeamCanCap.061", - "m_bTeamCanCap.062", - "m_bTeamCanCap.063", - "m_iTeamBaseIcons.000", - "m_iTeamBaseIcons.001", - "m_iTeamBaseIcons.002", - "m_iTeamBaseIcons.003", - "m_iTeamBaseIcons.004", - "m_iTeamBaseIcons.005", - "m_iTeamBaseIcons.006", - "m_iTeamBaseIcons.007", - "m_iTeamBaseIcons.008", - "m_iTeamBaseIcons.009", - "m_iTeamBaseIcons.010", - "m_iTeamBaseIcons.011", - "m_iTeamBaseIcons.012", - "m_iTeamBaseIcons.013", - "m_iTeamBaseIcons.014", - "m_iTeamBaseIcons.015", - "m_iTeamBaseIcons.016", - "m_iTeamBaseIcons.017", - "m_iTeamBaseIcons.018", - "m_iTeamBaseIcons.019", - "m_iTeamBaseIcons.020", - "m_iTeamBaseIcons.021", - "m_iTeamBaseIcons.022", - "m_iTeamBaseIcons.023", - "m_iTeamBaseIcons.024", - "m_iTeamBaseIcons.025", - "m_iTeamBaseIcons.026", - "m_iTeamBaseIcons.027", - "m_iTeamBaseIcons.028", - "m_iTeamBaseIcons.029", - "m_iTeamBaseIcons.030", - "m_iTeamBaseIcons.031", - "m_iBaseControlPoints.000", - "m_iBaseControlPoints.001", - "m_iBaseControlPoints.002", - "m_iBaseControlPoints.003", - "m_iBaseControlPoints.004", - "m_iBaseControlPoints.005", - "m_iBaseControlPoints.006", - "m_iBaseControlPoints.007", - "m_iBaseControlPoints.008", - "m_iBaseControlPoints.009", - "m_iBaseControlPoints.010", - "m_iBaseControlPoints.011", - "m_iBaseControlPoints.012", - "m_iBaseControlPoints.013", - "m_iBaseControlPoints.014", - "m_iBaseControlPoints.015", - "m_iBaseControlPoints.016", - "m_iBaseControlPoints.017", - "m_iBaseControlPoints.018", - "m_iBaseControlPoints.019", - "m_iBaseControlPoints.020", - "m_iBaseControlPoints.021", - "m_iBaseControlPoints.022", - "m_iBaseControlPoints.023", - "m_iBaseControlPoints.024", - "m_iBaseControlPoints.025", - "m_iBaseControlPoints.026", - "m_iBaseControlPoints.027", - "m_iBaseControlPoints.028", - "m_iBaseControlPoints.029", - "m_iBaseControlPoints.030", - "m_iBaseControlPoints.031", - "m_bInMiniRound.000", - "m_bInMiniRound.001", - "m_bInMiniRound.002", - "m_bInMiniRound.003", - "m_bInMiniRound.004", - "m_bInMiniRound.005", - "m_bInMiniRound.006", - "m_bInMiniRound.007", - "m_iWarnOnCap.000", - "m_iWarnOnCap.001", - "m_iWarnOnCap.002", - "m_iWarnOnCap.003", - "m_iWarnOnCap.004", - "m_iWarnOnCap.005", - "m_iWarnOnCap.006", - "m_iWarnOnCap.007", - "m_flPathDistance.000", - "m_flPathDistance.001", - "m_flPathDistance.002", - "m_flPathDistance.003", - "m_flPathDistance.004", - "m_flPathDistance.005", - "m_flPathDistance.006", - "m_flPathDistance.007", - "m_iCPGroup.000", - "m_iCPGroup.001", - "m_iCPGroup.002", - "m_iCPGroup.003", - "m_iCPGroup.004", - "m_iCPGroup.005", - "m_iCPGroup.006", - "m_iCPGroup.007", - "m_bCPLocked.000", - "m_bCPLocked.001", - "m_bCPLocked.002", - "m_bCPLocked.003", - "m_bCPLocked.004", - "m_bCPLocked.005", - "m_bCPLocked.006", - "m_bCPLocked.007", - "m_nNumNodeHillData.000", - "m_nNumNodeHillData.001", - "m_nNumNodeHillData.002", - "m_nNumNodeHillData.003", - "m_flNodeHillData.000", - "m_flNodeHillData.001", - "m_flNodeHillData.002", - "m_flNodeHillData.003", - "m_flNodeHillData.004", - "m_flNodeHillData.005", - "m_flNodeHillData.006", - "m_flNodeHillData.007", - "m_flNodeHillData.008", - "m_flNodeHillData.009", - "m_flNodeHillData.010", - "m_flNodeHillData.011", - "m_flNodeHillData.012", - "m_flNodeHillData.013", - "m_flNodeHillData.014", - "m_flNodeHillData.015", - "m_flNodeHillData.016", - "m_flNodeHillData.017", - "m_flNodeHillData.018", - "m_flNodeHillData.019", - "m_flNodeHillData.020", - "m_flNodeHillData.021", - "m_flNodeHillData.022", - "m_flNodeHillData.023", - "m_flNodeHillData.024", - "m_flNodeHillData.025", - "m_flNodeHillData.026", - "m_flNodeHillData.027", - "m_flNodeHillData.028", - "m_flNodeHillData.029", - "m_flNodeHillData.030", - "m_flNodeHillData.031", - "m_flNodeHillData.032", - "m_flNodeHillData.033", - "m_flNodeHillData.034", - "m_flNodeHillData.035", - "m_flNodeHillData.036", - "m_flNodeHillData.037", - "m_flNodeHillData.038", - "m_flNodeHillData.039", - "m_bTrackAlarm.000", - "m_bTrackAlarm.001", - "m_bTrackAlarm.002", - "m_bTrackAlarm.003", - "m_flUnlockTimes.000", - "m_flUnlockTimes.001", - "m_flUnlockTimes.002", - "m_flUnlockTimes.003", - "m_flUnlockTimes.004", - "m_flUnlockTimes.005", - "m_flUnlockTimes.006", - "m_flUnlockTimes.007", - "m_bHillIsDownhill.000", - "m_bHillIsDownhill.001", - "m_bHillIsDownhill.002", - "m_bHillIsDownhill.003", - "m_bHillIsDownhill.004", - "m_bHillIsDownhill.005", - "m_bHillIsDownhill.006", - "m_bHillIsDownhill.007", - "m_bHillIsDownhill.008", - "m_bHillIsDownhill.009", - "m_bHillIsDownhill.010", - "m_bHillIsDownhill.011", - "m_bHillIsDownhill.012", - "m_bHillIsDownhill.013", - "m_bHillIsDownhill.014", - "m_bHillIsDownhill.015", - "m_bHillIsDownhill.016", - "m_bHillIsDownhill.017", - "m_bHillIsDownhill.018", - "m_bHillIsDownhill.019", - "m_flCPTimerTimes.000", - "m_flCPTimerTimes.001", - "m_flCPTimerTimes.002", - "m_flCPTimerTimes.003", - "m_flCPTimerTimes.004", - "m_flCPTimerTimes.005", - "m_flCPTimerTimes.006", - "m_flCPTimerTimes.007", - "m_iNumTeamMembers.000", - "m_iNumTeamMembers.001", - "m_iNumTeamMembers.002", - "m_iNumTeamMembers.003", - "m_iNumTeamMembers.004", - "m_iNumTeamMembers.005", - "m_iNumTeamMembers.006", - "m_iNumTeamMembers.007", - "m_iNumTeamMembers.008", - "m_iNumTeamMembers.009", - "m_iNumTeamMembers.010", - "m_iNumTeamMembers.011", - "m_iNumTeamMembers.012", - "m_iNumTeamMembers.013", - "m_iNumTeamMembers.014", - "m_iNumTeamMembers.015", - "m_iNumTeamMembers.016", - "m_iNumTeamMembers.017", - "m_iNumTeamMembers.018", - "m_iNumTeamMembers.019", - "m_iNumTeamMembers.020", - "m_iNumTeamMembers.021", - "m_iNumTeamMembers.022", - "m_iNumTeamMembers.023", - "m_iNumTeamMembers.024", - "m_iNumTeamMembers.025", - "m_iNumTeamMembers.026", - "m_iNumTeamMembers.027", - "m_iNumTeamMembers.028", - "m_iNumTeamMembers.029", - "m_iNumTeamMembers.030", - "m_iNumTeamMembers.031", - "m_iNumTeamMembers.032", - "m_iNumTeamMembers.033", - "m_iNumTeamMembers.034", - "m_iNumTeamMembers.035", - "m_iNumTeamMembers.036", - "m_iNumTeamMembers.037", - "m_iNumTeamMembers.038", - "m_iNumTeamMembers.039", - "m_iNumTeamMembers.040", - "m_iNumTeamMembers.041", - "m_iNumTeamMembers.042", - "m_iNumTeamMembers.043", - "m_iNumTeamMembers.044", - "m_iNumTeamMembers.045", - "m_iNumTeamMembers.046", - "m_iNumTeamMembers.047", - "m_iNumTeamMembers.048", - "m_iNumTeamMembers.049", - "m_iNumTeamMembers.050", - "m_iNumTeamMembers.051", - "m_iNumTeamMembers.052", - "m_iNumTeamMembers.053", - "m_iNumTeamMembers.054", - "m_iNumTeamMembers.055", - "m_iNumTeamMembers.056", - "m_iNumTeamMembers.057", - "m_iNumTeamMembers.058", - "m_iNumTeamMembers.059", - "m_iNumTeamMembers.060", - "m_iNumTeamMembers.061", - "m_iNumTeamMembers.062", - "m_iNumTeamMembers.063", - "m_iCappingTeam.000", - "m_iCappingTeam.001", - "m_iCappingTeam.002", - "m_iCappingTeam.003", - "m_iCappingTeam.004", - "m_iCappingTeam.005", - "m_iCappingTeam.006", - "m_iCappingTeam.007", - "m_iTeamInZone.000", - "m_iTeamInZone.001", - "m_iTeamInZone.002", - "m_iTeamInZone.003", - "m_iTeamInZone.004", - "m_iTeamInZone.005", - "m_iTeamInZone.006", - "m_iTeamInZone.007", - "m_bBlocked.000", - "m_bBlocked.001", - "m_bBlocked.002", - "m_bBlocked.003", - "m_bBlocked.004", - "m_bBlocked.005", - "m_bBlocked.006", - "m_bBlocked.007", - "m_iOwner.000", - "m_iOwner.001", - "m_iOwner.002", - "m_iOwner.003", - "m_iOwner.004", - "m_iOwner.005", - "m_iOwner.006", - "m_iOwner.007", - "m_bCPCapRateScalesWithPlayers.000", - "m_bCPCapRateScalesWithPlayers.001", - "m_bCPCapRateScalesWithPlayers.002", - "m_bCPCapRateScalesWithPlayers.003", - "m_bCPCapRateScalesWithPlayers.004", - "m_bCPCapRateScalesWithPlayers.005", - "m_bCPCapRateScalesWithPlayers.006", - "m_bCPCapRateScalesWithPlayers.007", - "m_nMannVsMachineWaveClassCounts.000", - "m_nMannVsMachineWaveClassCounts.001", - "m_nMannVsMachineWaveClassCounts.002", - "m_nMannVsMachineWaveClassCounts.003", - "m_nMannVsMachineWaveClassCounts.004", - "m_nMannVsMachineWaveClassCounts.005", - "m_nMannVsMachineWaveClassCounts.006", - "m_nMannVsMachineWaveClassCounts.007", - "m_nMannVsMachineWaveClassCounts.008", - "m_nMannVsMachineWaveClassCounts.009", - "m_nMannVsMachineWaveClassCounts.010", - "m_nMannVsMachineWaveClassCounts.011", - "m_nMannVsMachineWaveClassFlags.000", - "m_nMannVsMachineWaveClassFlags.001", - "m_nMannVsMachineWaveClassFlags.002", - "m_nMannVsMachineWaveClassFlags.003", - "m_nMannVsMachineWaveClassFlags.004", - "m_nMannVsMachineWaveClassFlags.005", - "m_nMannVsMachineWaveClassFlags.006", - "m_nMannVsMachineWaveClassFlags.007", - "m_nMannVsMachineWaveClassFlags.008", - "m_nMannVsMachineWaveClassFlags.009", - "m_nMannVsMachineWaveClassFlags.010", - "m_nMannVsMachineWaveClassFlags.011", - "m_nMannVsMachineWaveClassCounts2.000", - "m_nMannVsMachineWaveClassCounts2.001", - "m_nMannVsMachineWaveClassCounts2.002", - "m_nMannVsMachineWaveClassCounts2.003", - "m_nMannVsMachineWaveClassCounts2.004", - "m_nMannVsMachineWaveClassCounts2.005", - "m_nMannVsMachineWaveClassCounts2.006", - "m_nMannVsMachineWaveClassCounts2.007", - "m_nMannVsMachineWaveClassCounts2.008", - "m_nMannVsMachineWaveClassCounts2.009", - "m_nMannVsMachineWaveClassCounts2.010", - "m_nMannVsMachineWaveClassCounts2.011", - "m_nMannVsMachineWaveClassFlags2.000", - "m_nMannVsMachineWaveClassFlags2.001", - "m_nMannVsMachineWaveClassFlags2.002", - "m_nMannVsMachineWaveClassFlags2.003", - "m_nMannVsMachineWaveClassFlags2.004", - "m_nMannVsMachineWaveClassFlags2.005", - "m_nMannVsMachineWaveClassFlags2.006", - "m_nMannVsMachineWaveClassFlags2.007", - "m_nMannVsMachineWaveClassFlags2.008", - "m_nMannVsMachineWaveClassFlags2.009", - "m_nMannVsMachineWaveClassFlags2.010", - "m_nMannVsMachineWaveClassFlags2.011", - "m_bMannVsMachineWaveClassActive.000", - "m_bMannVsMachineWaveClassActive.001", - "m_bMannVsMachineWaveClassActive.002", - "m_bMannVsMachineWaveClassActive.003", - "m_bMannVsMachineWaveClassActive.004", - "m_bMannVsMachineWaveClassActive.005", - "m_bMannVsMachineWaveClassActive.006", - "m_bMannVsMachineWaveClassActive.007", - "m_bMannVsMachineWaveClassActive.008", - "m_bMannVsMachineWaveClassActive.009", - "m_bMannVsMachineWaveClassActive.010", - "m_bMannVsMachineWaveClassActive.011", - "m_bMannVsMachineWaveClassActive2.000", - "m_bMannVsMachineWaveClassActive2.001", - "m_bMannVsMachineWaveClassActive2.002", - "m_bMannVsMachineWaveClassActive2.003", - "m_bMannVsMachineWaveClassActive2.004", - "m_bMannVsMachineWaveClassActive2.005", - "m_bMannVsMachineWaveClassActive2.006", - "m_bMannVsMachineWaveClassActive2.007", - "m_bMannVsMachineWaveClassActive2.008", - "m_bMannVsMachineWaveClassActive2.009", - "m_bMannVsMachineWaveClassActive2.010", - "m_bMannVsMachineWaveClassActive2.011", - "DT_BaseTeamObjectiveResource.m_iTimerToShowInHUD", - "DT_BaseTeamObjectiveResource.m_iStopWatchTimer", - "DT_BaseTeamObjectiveResource.m_iNumControlPoints", - "DT_BaseTeamObjectiveResource.m_bPlayingMiniRounds", - "DT_BaseTeamObjectiveResource.m_bControlPointsReset", - "DT_BaseTeamObjectiveResource.m_iUpdateCapHudParity", - "DT_BaseTeamObjectiveResource.m_vCPPositions", - "DT_BaseTeamObjectiveResource.m_iszWarnSound", - "DT_BaseTeamObjectiveResource.m_pszCapLayoutInHUD", - "DT_BaseTeamObjectiveResource.m_flCustomPositionX", - "DT_BaseTeamObjectiveResource.m_flCustomPositionY", - "DT_TFObjectiveResource.m_nMannVsMachineMaxWaveCount", - "DT_TFObjectiveResource.m_nMannVsMachineWaveCount", - "DT_TFObjectiveResource.m_nMannVsMachineWaveEnemyCount", - "DT_TFObjectiveResource.m_nMvMWorldMoney", - "DT_TFObjectiveResource.m_flMannVsMachineNextWaveTime", - "DT_TFObjectiveResource.m_bMannVsMachineBetweenWaves", - "DT_TFObjectiveResource.m_nFlagCarrierUpgradeLevel", - "DT_TFObjectiveResource.m_flMvMBaseBombUpgradeTime", - "DT_TFObjectiveResource.m_flMvMNextBombUpgradeTime", - "DT_TFObjectiveResource.m_iszMvMPopfileName", - "DT_TFObjectiveResource.m_iChallengeIndex", - "DT_TFObjectiveResource.m_nMvMEventPopfileType", - "DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames", - "DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames2" - ], - "DT_TFParachute": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFParachute_Primary": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFParachute_Secondary": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_ParticleCannon": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_ParticleCannon.m_flChargeBeginTime", - "DT_ParticleCannon.m_iChargeEffect" - ], - "DT_TFPEPBrawlerBlaster": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponPipebombLauncher": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_PipebombLauncherLocalData.m_iPipebombCount", - "DT_PipebombLauncherLocalData.m_flChargeBeginTime", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponPistol": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponPistol_Scout": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponPistol_ScoutPrimary": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_WeaponPistol_ScoutSecondary": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_TFPlayer": [ - "DT_Local.m_flDucktime", - "DT_Local.m_flFallVelocity", - "DT_Local.m_vecPunchAngle", - "DT_LocalPlayerExclusive.m_vecViewOffset[2]", - "DT_LocalPlayerExclusive.m_nTickBase", - "DT_LocalPlayerExclusive.m_hGroundEntity", - "DT_LocalPlayerExclusive.m_vecVelocity[0]", - "DT_LocalPlayerExclusive.m_vecVelocity[1]", - "DT_LocalPlayerExclusive.m_vecVelocity[2]", - "DT_TFLocalPlayerExclusive.m_vecOrigin", - "DT_TFLocalPlayerExclusive.m_vecOrigin[2]", - "DT_TFLocalPlayerExclusive.m_angEyeAngles[0]", - "DT_TFNonLocalPlayerExclusive.m_vecOrigin", - "DT_TFNonLocalPlayerExclusive.m_vecOrigin[2]", - "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[0]", - "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[1]", - "DT_BaseEntity.m_flSimulationTime", - "DT_BasePlayer.m_iHealth", - "DT_BasePlayer.m_fFlags", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_PlayerState.deadflag", - "_LPT_m_hMyWearables_8.lengthprop8", - "_ST_m_hMyWearables_8.000", - "_ST_m_hMyWearables_8.001", - "_ST_m_hMyWearables_8.002", - "_ST_m_hMyWearables_8.003", - "_ST_m_hMyWearables_8.004", - "_ST_m_hMyWearables_8.005", - "_ST_m_hMyWearables_8.006", - "_ST_m_hMyWearables_8.007", - "m_chAreaBits.000", - "m_chAreaBits.001", - "m_chAreaBits.002", - "m_chAreaBits.003", - "m_chAreaBits.004", - "m_chAreaBits.005", - "m_chAreaBits.006", - "m_chAreaBits.007", - "m_chAreaBits.008", - "m_chAreaBits.009", - "m_chAreaBits.010", - "m_chAreaBits.011", - "m_chAreaBits.012", - "m_chAreaBits.013", - "m_chAreaBits.014", - "m_chAreaBits.015", - "m_chAreaBits.016", - "m_chAreaBits.017", - "m_chAreaBits.018", - "m_chAreaBits.019", - "m_chAreaBits.020", - "m_chAreaBits.021", - "m_chAreaBits.022", - "m_chAreaBits.023", - "m_chAreaBits.024", - "m_chAreaBits.025", - "m_chAreaBits.026", - "m_chAreaBits.027", - "m_chAreaBits.028", - "m_chAreaBits.029", - "m_chAreaBits.030", - "m_chAreaBits.031", - "m_chAreaPortalBits.000", - "m_chAreaPortalBits.001", - "m_chAreaPortalBits.002", - "m_chAreaPortalBits.003", - "m_chAreaPortalBits.004", - "m_chAreaPortalBits.005", - "m_chAreaPortalBits.006", - "m_chAreaPortalBits.007", - "m_chAreaPortalBits.008", - "m_chAreaPortalBits.009", - "m_chAreaPortalBits.010", - "m_chAreaPortalBits.011", - "m_chAreaPortalBits.012", - "m_chAreaPortalBits.013", - "m_chAreaPortalBits.014", - "m_chAreaPortalBits.015", - "m_chAreaPortalBits.016", - "m_chAreaPortalBits.017", - "m_chAreaPortalBits.018", - "m_chAreaPortalBits.019", - "m_chAreaPortalBits.020", - "m_chAreaPortalBits.021", - "m_chAreaPortalBits.022", - "m_chAreaPortalBits.023", - "DT_Local.m_iHideHUD", - "DT_Local.m_flFOVRate", - "DT_Local.m_bDucked", - "DT_Local.m_bDucking", - "DT_Local.m_bInDuckJump", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_Local.m_flDuckJumpTime", - "DT_Local.m_flJumpTime", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_Local.m_vecPunchAngleVel", - "DT_Local.m_bDrawViewmodel", - "DT_Local.m_bWearingSuit", - "DT_Local.m_bPoisoned", - "DT_Local.m_flStepSize", - "DT_Local.m_bAllowAutoMovement", - "DT_Local.m_skybox3d.scale", - "DT_Local.m_skybox3d.origin", - "DT_Local.m_skybox3d.area", - "DT_Local.m_skybox3d.fog.enable", - "DT_Local.m_skybox3d.fog.blend", - "DT_Local.m_skybox3d.fog.dirPrimary", - "DT_Local.m_skybox3d.fog.colorPrimary", - "DT_Local.m_skybox3d.fog.colorSecondary", - "DT_Local.m_skybox3d.fog.start", - "DT_Local.m_skybox3d.fog.end", - "DT_Local.m_skybox3d.fog.maxdensity", - "DT_Local.m_PlayerFog.m_hCtrl", - "DT_Local.m_audio.localSound[0]", - "DT_Local.m_audio.localSound[1]", - "DT_Local.m_audio.localSound[2]", - "DT_Local.m_audio.localSound[3]", - "DT_Local.m_audio.localSound[4]", - "DT_Local.m_audio.localSound[5]", - "DT_Local.m_audio.localSound[6]", - "DT_Local.m_audio.localSound[7]", - "DT_Local.m_audio.soundscapeIndex", - "DT_Local.m_audio.localBits", - "DT_Local.m_audio.ent", - "m_iAmmo.000", - "m_iAmmo.001", - "m_iAmmo.002", - "m_iAmmo.003", - "m_iAmmo.004", - "m_iAmmo.005", - "m_iAmmo.006", - "m_iAmmo.007", - "m_iAmmo.008", - "m_iAmmo.009", - "m_iAmmo.010", - "m_iAmmo.011", - "m_iAmmo.012", - "m_iAmmo.013", - "m_iAmmo.014", - "m_iAmmo.015", - "m_iAmmo.016", - "m_iAmmo.017", - "m_iAmmo.018", - "m_iAmmo.019", - "m_iAmmo.020", - "m_iAmmo.021", - "m_iAmmo.022", - "m_iAmmo.023", - "m_iAmmo.024", - "m_iAmmo.025", - "m_iAmmo.026", - "m_iAmmo.027", - "m_iAmmo.028", - "m_iAmmo.029", - "m_iAmmo.030", - "m_iAmmo.031", - "DT_LocalPlayerExclusive.m_vecViewOffset[0]", - "DT_LocalPlayerExclusive.m_vecViewOffset[1]", - "DT_CollisionProperty.m_vecMaxs", - "DT_LocalPlayerExclusive.m_flFriction", - "DT_LocalPlayerExclusive.m_fOnTarget", - "DT_CollisionProperty.m_nSolidType", - "DT_LocalPlayerExclusive.m_nNextThinkTick", - "DT_LocalPlayerExclusive.m_hLastWeapon", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_LocalPlayerExclusive.m_vecBaseVelocity", - "DT_LocalPlayerExclusive.m_hConstraintEntity", - "DT_LocalPlayerExclusive.m_vecConstraintCenter", - "DT_LocalPlayerExclusive.m_flConstraintRadius", - "DT_LocalPlayerExclusive.m_flConstraintWidth", - "DT_LocalPlayerExclusive.m_flConstraintSpeedFactor", - "DT_LocalPlayerExclusive.m_flDeathTime", - "DT_LocalPlayerExclusive.m_nWaterLevel", - "DT_LocalPlayerExclusive.m_flLaggedMovementValue", - "DT_TFPlayerClassShared.m_iClass", - "DT_TFPlayerClassShared.m_iszClassIcon", - "DT_TFPlayerClassShared.m_iszCustomModel", - "DT_TFPlayerClassShared.m_vecCustomModelOffset", - "DT_TFPlayerClassShared.m_angCustomModelRotation", - "DT_TFPlayerClassShared.m_bCustomModelRotates", - "DT_TFPlayerClassShared.m_bCustomModelRotationSet", - "DT_TFPlayerClassShared.m_bCustomModelVisibleToSelf", - "DT_TFPlayerClassShared.m_bUseClassAnimations", - "DT_TFPlayerClassShared.m_iClassModelParity", - "m_bPlayerDominated.000", - "m_bPlayerDominated.001", - "m_bPlayerDominated.002", - "m_bPlayerDominated.003", - "m_bPlayerDominated.004", - "m_bPlayerDominated.005", - "m_bPlayerDominated.006", - "m_bPlayerDominated.007", - "m_bPlayerDominated.008", - "m_bPlayerDominated.009", - "m_bPlayerDominated.010", - "m_bPlayerDominated.011", - "m_bPlayerDominated.012", - "m_bPlayerDominated.013", - "m_bPlayerDominated.014", - "m_bPlayerDominated.015", - "m_bPlayerDominated.016", - "m_bPlayerDominated.017", - "m_bPlayerDominated.018", - "m_bPlayerDominated.019", - "m_bPlayerDominated.020", - "m_bPlayerDominated.021", - "m_bPlayerDominated.022", - "m_bPlayerDominated.023", - "m_bPlayerDominated.024", - "m_bPlayerDominated.025", - "m_bPlayerDominated.026", - "m_bPlayerDominated.027", - "m_bPlayerDominated.028", - "m_bPlayerDominated.029", - "m_bPlayerDominated.030", - "m_bPlayerDominated.031", - "m_bPlayerDominated.032", - "m_bPlayerDominated.033", - "m_bPlayerDominatingMe.000", - "m_bPlayerDominatingMe.001", - "m_bPlayerDominatingMe.002", - "m_bPlayerDominatingMe.003", - "m_bPlayerDominatingMe.004", - "m_bPlayerDominatingMe.005", - "m_bPlayerDominatingMe.006", - "m_bPlayerDominatingMe.007", - "m_bPlayerDominatingMe.008", - "m_bPlayerDominatingMe.009", - "m_bPlayerDominatingMe.010", - "m_bPlayerDominatingMe.011", - "m_bPlayerDominatingMe.012", - "m_bPlayerDominatingMe.013", - "m_bPlayerDominatingMe.014", - "m_bPlayerDominatingMe.015", - "m_bPlayerDominatingMe.016", - "m_bPlayerDominatingMe.017", - "m_bPlayerDominatingMe.018", - "m_bPlayerDominatingMe.019", - "m_bPlayerDominatingMe.020", - "m_bPlayerDominatingMe.021", - "m_bPlayerDominatingMe.022", - "m_bPlayerDominatingMe.023", - "m_bPlayerDominatingMe.024", - "m_bPlayerDominatingMe.025", - "m_bPlayerDominatingMe.026", - "m_bPlayerDominatingMe.027", - "m_bPlayerDominatingMe.028", - "m_bPlayerDominatingMe.029", - "m_bPlayerDominatingMe.030", - "m_bPlayerDominatingMe.031", - "m_bPlayerDominatingMe.032", - "m_bPlayerDominatingMe.033", - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints", - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints", - "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam", - "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass", - "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam", - "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire", - "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime", - "DT_TFPlayerSharedLocal.m_flRageMeter", - "DT_TFPlayerSharedLocal.m_bRageDraining", - "DT_TFPlayerSharedLocal.m_flNextRageEarnTime", - "DT_TFPlayerSharedLocal.m_bInUpgradeZone", - "DT_TFPlayerConditionListExclusive._condition_bits", - "m_nStreaks.000", - "m_nStreaks.001", - "m_nStreaks.002", - "m_nStreaks.003", - "DT_TFPlayerShared.m_nPlayerCond", - "DT_TFPlayerShared.m_bJumping", - "DT_TFPlayerShared.m_nNumHealers", - "DT_TFPlayerShared.m_iCritMult", - "DT_TFPlayerShared.m_iAirDash", - "DT_TFPlayerShared.m_nAirDucked", - "DT_TFPlayerShared.m_flDuckTimer", - "DT_TFPlayerShared.m_nPlayerState", - "DT_TFPlayerShared.m_iDesiredPlayerClass", - "DT_TFPlayerShared.m_flMovementStunTime", - "DT_TFPlayerShared.m_iMovementStunAmount", - "DT_TFPlayerShared.m_iMovementStunParity", - "DT_TFPlayerShared.m_hStunner", - "DT_TFPlayerShared.m_iStunFlags", - "DT_TFPlayerShared.m_nArenaNumChanges", - "DT_TFPlayerShared.m_bArenaFirstBloodBoost", - "DT_TFPlayerShared.m_iWeaponKnockbackID", - "DT_TFPlayerShared.m_bLoadoutUnavailable", - "DT_TFPlayerShared.m_iItemFindBonus", - "DT_TFPlayerShared.m_bShieldEquipped", - "DT_TFPlayerShared.m_iNextMeleeCrit", - "DT_TFPlayerShared.m_iDecapitations", - "DT_TFPlayerShared.m_iRevengeCrits", - "DT_TFPlayerShared.m_iDisguiseBody", - "DT_TFPlayerShared.m_hCarriedObject", - "DT_TFPlayerShared.m_bCarryingObject", - "DT_TFPlayerShared.m_flNextNoiseMakerTime", - "DT_TFPlayerShared.m_iKillCountSinceLastDeploy", - "DT_TFPlayerShared.m_flFirstPrimaryAttack", - "DT_TFPlayerShared.m_flEnergyDrinkMeter", - "DT_TFPlayerShared.m_flHypeMeter", - "DT_TFPlayerShared.m_flChargeMeter", - "DT_TFPlayerShared.m_flInvisChangeCompleteTime", - "DT_TFPlayerShared.m_nDisguiseTeam", - "DT_TFPlayerShared.m_nDisguiseClass", - "DT_TFPlayerShared.m_nMaskClass", - "DT_TFPlayerShared.m_iDisguiseTargetIndex", - "DT_TFPlayerShared.m_iDisguiseHealth", - "DT_TFPlayerShared.m_bFeignDeathReady", - "DT_TFPlayerShared.m_hDisguiseWeapon", - "DT_TFPlayerShared.m_nTeamTeleporterUsed", - "DT_TFPlayerShared.m_flCloakMeter", - "DT_TFPlayerShared.m_flSpyTranqBuffDuration", - "DT_TFPlayerShared.m_iTauntIndex", - "DT_TFPlayerShared.m_iTauntConcept", - "DT_TFPlayerShared.m_nPlayerCondEx", - "DT_TFPlayerShared.m_iStunIndex", - "DT_TFPlayerShared.m_nHalloweenBombHeadStage", - "DT_TFPlayerShared.m_nPlayerCondEx2", - "DT_TFPlayerShared.m_nPlayerCondEx3", - "DT_TFPlayerShared.m_unTauntSourceItemID_Low", - "DT_TFPlayerShared.m_unTauntSourceItemID_High", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_TFLocalPlayerExclusive.\"player_object_array\"", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_TFLocalPlayerExclusive.m_bIsCoaching", - "DT_TFLocalPlayerExclusive.m_hCoach", - "DT_TFLocalPlayerExclusive.m_hStudent", - "DT_TFLocalPlayerExclusive.m_nCurrency", - "DT_TFLocalPlayerExclusive.m_nExperienceLevel", - "DT_TFLocalPlayerExclusive.m_nExperienceLevelProgress", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "DT_AttributeManager.m_hOuter", - "DT_AttributeManager.m_ProviderType", - "DT_AttributeManager.m_iReapplyProvisionParity", - "DT_TFSendHealersDataTable.m_nActiveWpnClip", - "m_nModelIndexOverrides.002", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_BasePlayer.m_hVehicle", - "DT_BasePlayer.m_hUseEntity", - "m_nModelIndexOverrides.003", - "DT_BasePlayer.m_lifeState", - "DT_BasePlayer.m_iBonusProgress", - "DT_BasePlayer.m_iBonusChallenge", - "DT_BasePlayer.m_flMaxspeed", - "m_flEncodedController.000", - "DT_BasePlayer.m_iObserverMode", - "DT_BasePlayer.m_hObserverTarget", - "DT_BasePlayer.m_iFOV", - "DT_BasePlayer.m_iFOVStart", - "DT_BasePlayer.m_flFOVTime", - "DT_BasePlayer.m_iDefaultFOV", - "DT_BasePlayer.m_hZoomOwner", - "DT_BasePlayer.m_hViewModel", - "DT_BasePlayer.m_szLastPlaceName", - "DT_TFPlayer.m_bSaveMeParity", - "DT_TFPlayer.m_bIsMiniBoss", - "DT_TFPlayer.m_bIsABot", - "DT_TFPlayer.m_nBotSkill", - "DT_TFPlayer.m_nWaterLevel", - "DT_TFPlayer.m_hRagdoll", - "DT_TFPlayer.m_hItem", - "DT_TFPlayer.m_bAllowMoveDuringTaunt", - "DT_TFPlayer.m_bIsReadyToHighFive", - "DT_TFPlayer.m_hHighFivePartner", - "DT_TFPlayer.m_nForceTauntCam", - "DT_TFPlayer.m_flTauntYaw", - "DT_TFPlayer.m_nActiveTauntSlot", - "DT_TFPlayer.m_iTauntItemDefIndex", - "DT_TFPlayer.m_flCurrentTauntMoveSpeed", - "DT_TFPlayer.m_flVehicleReverseTime", - "DT_TFPlayer.m_flLastDamageTime", - "DT_TFPlayer.m_bInPowerPlay", - "DT_TFPlayer.m_iSpawnCounter", - "DT_TFPlayer.m_bArenaSpectator", - "DT_TFPlayer.m_flHeadScale", - "DT_TFPlayer.m_flTorsoScale", - "DT_TFPlayer.m_flHandScale", - "DT_TFPlayer.m_bUseBossHealthBar", - "DT_TFPlayer.m_bUsingVRHeadset", - "DT_TFPlayer.m_bForcedSkin", - "DT_TFPlayer.m_nForcedSkin", - "DT_TFPlayer.m_flKartNextAvailableBoost", - "DT_TFPlayer.m_iKartHealth", - "DT_TFPlayer.m_iKartState", - "DT_TFPlayer.m_hGrapplingHookTarget", - "DT_TFPlayer.m_hSecondaryLastWeapon" - ], - "DT_TFPlayerResource": [ - "m_iPing.000", - "m_iPing.001", - "m_iPing.002", - "m_iPing.003", - "m_iPing.004", - "m_iPing.005", - "m_iPing.006", - "m_iPing.007", - "m_iPing.008", - "m_iPing.009", - "m_iPing.010", - "m_iPing.011", - "m_iPing.012", - "m_iPing.013", - "m_iPing.014", - "m_iPing.015", - "m_iPing.016", - "m_iPing.017", - "m_iPing.018", - "m_iPing.019", - "m_iPing.020", - "m_iPing.021", - "m_iPing.022", - "m_iPing.023", - "m_iPing.024", - "m_iPing.025", - "m_iPing.026", - "m_iPing.027", - "m_iPing.028", - "m_iPing.029", - "m_iPing.030", - "m_iPing.031", - "m_iPing.032", - "m_iPing.033", - "m_iScore.000", - "m_iScore.001", - "m_iScore.002", - "m_iScore.003", - "m_iScore.004", - "m_iScore.005", - "m_iScore.006", - "m_iScore.007", - "m_iScore.008", - "m_iScore.009", - "m_iScore.010", - "m_iScore.011", - "m_iScore.012", - "m_iScore.013", - "m_iScore.014", - "m_iScore.015", - "m_iScore.016", - "m_iScore.017", - "m_iScore.018", - "m_iScore.019", - "m_iScore.020", - "m_iScore.021", - "m_iScore.022", - "m_iScore.023", - "m_iScore.024", - "m_iScore.025", - "m_iScore.026", - "m_iScore.027", - "m_iScore.028", - "m_iScore.029", - "m_iScore.030", - "m_iScore.031", - "m_iScore.032", - "m_iScore.033", - "m_iDeaths.000", - "m_iDeaths.001", - "m_iDeaths.002", - "m_iDeaths.003", - "m_iDeaths.004", - "m_iDeaths.005", - "m_iDeaths.006", - "m_iDeaths.007", - "m_iDeaths.008", - "m_iDeaths.009", - "m_iDeaths.010", - "m_iDeaths.011", - "m_iDeaths.012", - "m_iDeaths.013", - "m_iDeaths.014", - "m_iDeaths.015", - "m_iDeaths.016", - "m_iDeaths.017", - "m_iDeaths.018", - "m_iDeaths.019", - "m_iDeaths.020", - "m_iDeaths.021", - "m_iDeaths.022", - "m_iDeaths.023", - "m_iDeaths.024", - "m_iDeaths.025", - "m_iDeaths.026", - "m_iDeaths.027", - "m_iDeaths.028", - "m_iDeaths.029", - "m_iDeaths.030", - "m_iDeaths.031", - "m_iDeaths.032", - "m_iDeaths.033", - "m_bConnected.000", - "m_bConnected.001", - "m_bConnected.002", - "m_bConnected.003", - "m_bConnected.004", - "m_bConnected.005", - "m_bConnected.006", - "m_bConnected.007", - "m_bConnected.008", - "m_bConnected.009", - "m_bConnected.010", - "m_bConnected.011", - "m_bConnected.012", - "m_bConnected.013", - "m_bConnected.014", - "m_bConnected.015", - "m_bConnected.016", - "m_bConnected.017", - "m_bConnected.018", - "m_bConnected.019", - "m_bConnected.020", - "m_bConnected.021", - "m_bConnected.022", - "m_bConnected.023", - "m_bConnected.024", - "m_bConnected.025", - "m_bConnected.026", - "m_bConnected.027", - "m_bConnected.028", - "m_bConnected.029", - "m_bConnected.030", - "m_bConnected.031", - "m_bConnected.032", - "m_bConnected.033", - "m_iTeam.000", - "m_iTeam.001", - "m_iTeam.002", - "m_iTeam.003", - "m_iTeam.004", - "m_iTeam.005", - "m_iTeam.006", - "m_iTeam.007", - "m_iTeam.008", - "m_iTeam.009", - "m_iTeam.010", - "m_iTeam.011", - "m_iTeam.012", - "m_iTeam.013", - "m_iTeam.014", - "m_iTeam.015", - "m_iTeam.016", - "m_iTeam.017", - "m_iTeam.018", - "m_iTeam.019", - "m_iTeam.020", - "m_iTeam.021", - "m_iTeam.022", - "m_iTeam.023", - "m_iTeam.024", - "m_iTeam.025", - "m_iTeam.026", - "m_iTeam.027", - "m_iTeam.028", - "m_iTeam.029", - "m_iTeam.030", - "m_iTeam.031", - "m_iTeam.032", - "m_iTeam.033", - "m_bAlive.000", - "m_bAlive.001", - "m_bAlive.002", - "m_bAlive.003", - "m_bAlive.004", - "m_bAlive.005", - "m_bAlive.006", - "m_bAlive.007", - "m_bAlive.008", - "m_bAlive.009", - "m_bAlive.010", - "m_bAlive.011", - "m_bAlive.012", - "m_bAlive.013", - "m_bAlive.014", - "m_bAlive.015", - "m_bAlive.016", - "m_bAlive.017", - "m_bAlive.018", - "m_bAlive.019", - "m_bAlive.020", - "m_bAlive.021", - "m_bAlive.022", - "m_bAlive.023", - "m_bAlive.024", - "m_bAlive.025", - "m_bAlive.026", - "m_bAlive.027", - "m_bAlive.028", - "m_bAlive.029", - "m_bAlive.030", - "m_bAlive.031", - "m_bAlive.032", - "m_bAlive.033", - "m_iHealth.000", - "m_iHealth.001", - "m_iHealth.002", - "m_iHealth.003", - "m_iHealth.004", - "m_iHealth.005", - "m_iHealth.006", - "m_iHealth.007", - "m_iHealth.008", - "m_iHealth.009", - "m_iHealth.010", - "m_iHealth.011", - "m_iHealth.012", - "m_iHealth.013", - "m_iHealth.014", - "m_iHealth.015", - "m_iHealth.016", - "m_iHealth.017", - "m_iHealth.018", - "m_iHealth.019", - "m_iHealth.020", - "m_iHealth.021", - "m_iHealth.022", - "m_iHealth.023", - "m_iHealth.024", - "m_iHealth.025", - "m_iHealth.026", - "m_iHealth.027", - "m_iHealth.028", - "m_iHealth.029", - "m_iHealth.030", - "m_iHealth.031", - "m_iHealth.032", - "m_iHealth.033", - "m_iTotalScore.000", - "m_iTotalScore.001", - "m_iTotalScore.002", - "m_iTotalScore.003", - "m_iTotalScore.004", - "m_iTotalScore.005", - "m_iTotalScore.006", - "m_iTotalScore.007", - "m_iTotalScore.008", - "m_iTotalScore.009", - "m_iTotalScore.010", - "m_iTotalScore.011", - "m_iTotalScore.012", - "m_iTotalScore.013", - "m_iTotalScore.014", - "m_iTotalScore.015", - "m_iTotalScore.016", - "m_iTotalScore.017", - "m_iTotalScore.018", - "m_iTotalScore.019", - "m_iTotalScore.020", - "m_iTotalScore.021", - "m_iTotalScore.022", - "m_iTotalScore.023", - "m_iTotalScore.024", - "m_iTotalScore.025", - "m_iTotalScore.026", - "m_iTotalScore.027", - "m_iTotalScore.028", - "m_iTotalScore.029", - "m_iTotalScore.030", - "m_iTotalScore.031", - "m_iTotalScore.032", - "m_iTotalScore.033", - "m_iMaxHealth.000", - "m_iMaxHealth.001", - "m_iMaxHealth.002", - "m_iMaxHealth.003", - "m_iMaxHealth.004", - "m_iMaxHealth.005", - "m_iMaxHealth.006", - "m_iMaxHealth.007", - "m_iMaxHealth.008", - "m_iMaxHealth.009", - "m_iMaxHealth.010", - "m_iMaxHealth.011", - "m_iMaxHealth.012", - "m_iMaxHealth.013", - "m_iMaxHealth.014", - "m_iMaxHealth.015", - "m_iMaxHealth.016", - "m_iMaxHealth.017", - "m_iMaxHealth.018", - "m_iMaxHealth.019", - "m_iMaxHealth.020", - "m_iMaxHealth.021", - "m_iMaxHealth.022", - "m_iMaxHealth.023", - "m_iMaxHealth.024", - "m_iMaxHealth.025", - "m_iMaxHealth.026", - "m_iMaxHealth.027", - "m_iMaxHealth.028", - "m_iMaxHealth.029", - "m_iMaxHealth.030", - "m_iMaxHealth.031", - "m_iMaxHealth.032", - "m_iMaxHealth.033", - "m_iMaxBuffedHealth.000", - "m_iMaxBuffedHealth.001", - "m_iMaxBuffedHealth.002", - "m_iMaxBuffedHealth.003", - "m_iMaxBuffedHealth.004", - "m_iMaxBuffedHealth.005", - "m_iMaxBuffedHealth.006", - "m_iMaxBuffedHealth.007", - "m_iMaxBuffedHealth.008", - "m_iMaxBuffedHealth.009", - "m_iMaxBuffedHealth.010", - "m_iMaxBuffedHealth.011", - "m_iMaxBuffedHealth.012", - "m_iMaxBuffedHealth.013", - "m_iMaxBuffedHealth.014", - "m_iMaxBuffedHealth.015", - "m_iMaxBuffedHealth.016", - "m_iMaxBuffedHealth.017", - "m_iMaxBuffedHealth.018", - "m_iMaxBuffedHealth.019", - "m_iMaxBuffedHealth.020", - "m_iMaxBuffedHealth.021", - "m_iMaxBuffedHealth.022", - "m_iMaxBuffedHealth.023", - "m_iMaxBuffedHealth.024", - "m_iMaxBuffedHealth.025", - "m_iMaxBuffedHealth.026", - "m_iMaxBuffedHealth.027", - "m_iMaxBuffedHealth.028", - "m_iMaxBuffedHealth.029", - "m_iMaxBuffedHealth.030", - "m_iMaxBuffedHealth.031", - "m_iMaxBuffedHealth.032", - "m_iMaxBuffedHealth.033", - "m_iPlayerClass.000", - "m_iPlayerClass.001", - "m_iPlayerClass.002", - "m_iPlayerClass.003", - "m_iPlayerClass.004", - "m_iPlayerClass.005", - "m_iPlayerClass.006", - "m_iPlayerClass.007", - "m_iPlayerClass.008", - "m_iPlayerClass.009", - "m_iPlayerClass.010", - "m_iPlayerClass.011", - "m_iPlayerClass.012", - "m_iPlayerClass.013", - "m_iPlayerClass.014", - "m_iPlayerClass.015", - "m_iPlayerClass.016", - "m_iPlayerClass.017", - "m_iPlayerClass.018", - "m_iPlayerClass.019", - "m_iPlayerClass.020", - "m_iPlayerClass.021", - "m_iPlayerClass.022", - "m_iPlayerClass.023", - "m_iPlayerClass.024", - "m_iPlayerClass.025", - "m_iPlayerClass.026", - "m_iPlayerClass.027", - "m_iPlayerClass.028", - "m_iPlayerClass.029", - "m_iPlayerClass.030", - "m_iPlayerClass.031", - "m_iPlayerClass.032", - "m_iPlayerClass.033", - "m_bArenaSpectator.000", - "m_bArenaSpectator.001", - "m_bArenaSpectator.002", - "m_bArenaSpectator.003", - "m_bArenaSpectator.004", - "m_bArenaSpectator.005", - "m_bArenaSpectator.006", - "m_bArenaSpectator.007", - "m_bArenaSpectator.008", - "m_bArenaSpectator.009", - "m_bArenaSpectator.010", - "m_bArenaSpectator.011", - "m_bArenaSpectator.012", - "m_bArenaSpectator.013", - "m_bArenaSpectator.014", - "m_bArenaSpectator.015", - "m_bArenaSpectator.016", - "m_bArenaSpectator.017", - "m_bArenaSpectator.018", - "m_bArenaSpectator.019", - "m_bArenaSpectator.020", - "m_bArenaSpectator.021", - "m_bArenaSpectator.022", - "m_bArenaSpectator.023", - "m_bArenaSpectator.024", - "m_bArenaSpectator.025", - "m_bArenaSpectator.026", - "m_bArenaSpectator.027", - "m_bArenaSpectator.028", - "m_bArenaSpectator.029", - "m_bArenaSpectator.030", - "m_bArenaSpectator.031", - "m_bArenaSpectator.032", - "m_bArenaSpectator.033", - "m_iActiveDominations.000", - "m_iActiveDominations.001", - "m_iActiveDominations.002", - "m_iActiveDominations.003", - "m_iActiveDominations.004", - "m_iActiveDominations.005", - "m_iActiveDominations.006", - "m_iActiveDominations.007", - "m_iActiveDominations.008", - "m_iActiveDominations.009", - "m_iActiveDominations.010", - "m_iActiveDominations.011", - "m_iActiveDominations.012", - "m_iActiveDominations.013", - "m_iActiveDominations.014", - "m_iActiveDominations.015", - "m_iActiveDominations.016", - "m_iActiveDominations.017", - "m_iActiveDominations.018", - "m_iActiveDominations.019", - "m_iActiveDominations.020", - "m_iActiveDominations.021", - "m_iActiveDominations.022", - "m_iActiveDominations.023", - "m_iActiveDominations.024", - "m_iActiveDominations.025", - "m_iActiveDominations.026", - "m_iActiveDominations.027", - "m_iActiveDominations.028", - "m_iActiveDominations.029", - "m_iActiveDominations.030", - "m_iActiveDominations.031", - "m_iActiveDominations.032", - "m_iActiveDominations.033", - "m_flNextRespawnTime.000", - "m_flNextRespawnTime.001", - "m_flNextRespawnTime.002", - "m_flNextRespawnTime.003", - "m_flNextRespawnTime.004", - "m_flNextRespawnTime.005", - "m_flNextRespawnTime.006", - "m_flNextRespawnTime.007", - "m_flNextRespawnTime.008", - "m_flNextRespawnTime.009", - "m_flNextRespawnTime.010", - "m_flNextRespawnTime.011", - "m_flNextRespawnTime.012", - "m_flNextRespawnTime.013", - "m_flNextRespawnTime.014", - "m_flNextRespawnTime.015", - "m_flNextRespawnTime.016", - "m_flNextRespawnTime.017", - "m_flNextRespawnTime.018", - "m_flNextRespawnTime.019", - "m_flNextRespawnTime.020", - "m_flNextRespawnTime.021", - "m_flNextRespawnTime.022", - "m_flNextRespawnTime.023", - "m_flNextRespawnTime.024", - "m_flNextRespawnTime.025", - "m_flNextRespawnTime.026", - "m_flNextRespawnTime.027", - "m_flNextRespawnTime.028", - "m_flNextRespawnTime.029", - "m_flNextRespawnTime.030", - "m_flNextRespawnTime.031", - "m_flNextRespawnTime.032", - "m_flNextRespawnTime.033", - "m_iChargeLevel.000", - "m_iChargeLevel.001", - "m_iChargeLevel.002", - "m_iChargeLevel.003", - "m_iChargeLevel.004", - "m_iChargeLevel.005", - "m_iChargeLevel.006", - "m_iChargeLevel.007", - "m_iChargeLevel.008", - "m_iChargeLevel.009", - "m_iChargeLevel.010", - "m_iChargeLevel.011", - "m_iChargeLevel.012", - "m_iChargeLevel.013", - "m_iChargeLevel.014", - "m_iChargeLevel.015", - "m_iChargeLevel.016", - "m_iChargeLevel.017", - "m_iChargeLevel.018", - "m_iChargeLevel.019", - "m_iChargeLevel.020", - "m_iChargeLevel.021", - "m_iChargeLevel.022", - "m_iChargeLevel.023", - "m_iChargeLevel.024", - "m_iChargeLevel.025", - "m_iChargeLevel.026", - "m_iChargeLevel.027", - "m_iChargeLevel.028", - "m_iChargeLevel.029", - "m_iChargeLevel.030", - "m_iChargeLevel.031", - "m_iChargeLevel.032", - "m_iChargeLevel.033", - "m_iDamage.000", - "m_iDamage.001", - "m_iDamage.002", - "m_iDamage.003", - "m_iDamage.004", - "m_iDamage.005", - "m_iDamage.006", - "m_iDamage.007", - "m_iDamage.008", - "m_iDamage.009", - "m_iDamage.010", - "m_iDamage.011", - "m_iDamage.012", - "m_iDamage.013", - "m_iDamage.014", - "m_iDamage.015", - "m_iDamage.016", - "m_iDamage.017", - "m_iDamage.018", - "m_iDamage.019", - "m_iDamage.020", - "m_iDamage.021", - "m_iDamage.022", - "m_iDamage.023", - "m_iDamage.024", - "m_iDamage.025", - "m_iDamage.026", - "m_iDamage.027", - "m_iDamage.028", - "m_iDamage.029", - "m_iDamage.030", - "m_iDamage.031", - "m_iDamage.032", - "m_iDamage.033", - "m_iDamageAssist.000", - "m_iDamageAssist.001", - "m_iDamageAssist.002", - "m_iDamageAssist.003", - "m_iDamageAssist.004", - "m_iDamageAssist.005", - "m_iDamageAssist.006", - "m_iDamageAssist.007", - "m_iDamageAssist.008", - "m_iDamageAssist.009", - "m_iDamageAssist.010", - "m_iDamageAssist.011", - "m_iDamageAssist.012", - "m_iDamageAssist.013", - "m_iDamageAssist.014", - "m_iDamageAssist.015", - "m_iDamageAssist.016", - "m_iDamageAssist.017", - "m_iDamageAssist.018", - "m_iDamageAssist.019", - "m_iDamageAssist.020", - "m_iDamageAssist.021", - "m_iDamageAssist.022", - "m_iDamageAssist.023", - "m_iDamageAssist.024", - "m_iDamageAssist.025", - "m_iDamageAssist.026", - "m_iDamageAssist.027", - "m_iDamageAssist.028", - "m_iDamageAssist.029", - "m_iDamageAssist.030", - "m_iDamageAssist.031", - "m_iDamageAssist.032", - "m_iDamageAssist.033", - "m_iDamageBoss.000", - "m_iDamageBoss.001", - "m_iDamageBoss.002", - "m_iDamageBoss.003", - "m_iDamageBoss.004", - "m_iDamageBoss.005", - "m_iDamageBoss.006", - "m_iDamageBoss.007", - "m_iDamageBoss.008", - "m_iDamageBoss.009", - "m_iDamageBoss.010", - "m_iDamageBoss.011", - "m_iDamageBoss.012", - "m_iDamageBoss.013", - "m_iDamageBoss.014", - "m_iDamageBoss.015", - "m_iDamageBoss.016", - "m_iDamageBoss.017", - "m_iDamageBoss.018", - "m_iDamageBoss.019", - "m_iDamageBoss.020", - "m_iDamageBoss.021", - "m_iDamageBoss.022", - "m_iDamageBoss.023", - "m_iDamageBoss.024", - "m_iDamageBoss.025", - "m_iDamageBoss.026", - "m_iDamageBoss.027", - "m_iDamageBoss.028", - "m_iDamageBoss.029", - "m_iDamageBoss.030", - "m_iDamageBoss.031", - "m_iDamageBoss.032", - "m_iDamageBoss.033", - "m_iHealing.000", - "m_iHealing.001", - "m_iHealing.002", - "m_iHealing.003", - "m_iHealing.004", - "m_iHealing.005", - "m_iHealing.006", - "m_iHealing.007", - "m_iHealing.008", - "m_iHealing.009", - "m_iHealing.010", - "m_iHealing.011", - "m_iHealing.012", - "m_iHealing.013", - "m_iHealing.014", - "m_iHealing.015", - "m_iHealing.016", - "m_iHealing.017", - "m_iHealing.018", - "m_iHealing.019", - "m_iHealing.020", - "m_iHealing.021", - "m_iHealing.022", - "m_iHealing.023", - "m_iHealing.024", - "m_iHealing.025", - "m_iHealing.026", - "m_iHealing.027", - "m_iHealing.028", - "m_iHealing.029", - "m_iHealing.030", - "m_iHealing.031", - "m_iHealing.032", - "m_iHealing.033", - "m_iHealingAssist.000", - "m_iHealingAssist.001", - "m_iHealingAssist.002", - "m_iHealingAssist.003", - "m_iHealingAssist.004", - "m_iHealingAssist.005", - "m_iHealingAssist.006", - "m_iHealingAssist.007", - "m_iHealingAssist.008", - "m_iHealingAssist.009", - "m_iHealingAssist.010", - "m_iHealingAssist.011", - "m_iHealingAssist.012", - "m_iHealingAssist.013", - "m_iHealingAssist.014", - "m_iHealingAssist.015", - "m_iHealingAssist.016", - "m_iHealingAssist.017", - "m_iHealingAssist.018", - "m_iHealingAssist.019", - "m_iHealingAssist.020", - "m_iHealingAssist.021", - "m_iHealingAssist.022", - "m_iHealingAssist.023", - "m_iHealingAssist.024", - "m_iHealingAssist.025", - "m_iHealingAssist.026", - "m_iHealingAssist.027", - "m_iHealingAssist.028", - "m_iHealingAssist.029", - "m_iHealingAssist.030", - "m_iHealingAssist.031", - "m_iHealingAssist.032", - "m_iHealingAssist.033", - "m_iDamageBlocked.000", - "m_iDamageBlocked.001", - "m_iDamageBlocked.002", - "m_iDamageBlocked.003", - "m_iDamageBlocked.004", - "m_iDamageBlocked.005", - "m_iDamageBlocked.006", - "m_iDamageBlocked.007", - "m_iDamageBlocked.008", - "m_iDamageBlocked.009", - "m_iDamageBlocked.010", - "m_iDamageBlocked.011", - "m_iDamageBlocked.012", - "m_iDamageBlocked.013", - "m_iDamageBlocked.014", - "m_iDamageBlocked.015", - "m_iDamageBlocked.016", - "m_iDamageBlocked.017", - "m_iDamageBlocked.018", - "m_iDamageBlocked.019", - "m_iDamageBlocked.020", - "m_iDamageBlocked.021", - "m_iDamageBlocked.022", - "m_iDamageBlocked.023", - "m_iDamageBlocked.024", - "m_iDamageBlocked.025", - "m_iDamageBlocked.026", - "m_iDamageBlocked.027", - "m_iDamageBlocked.028", - "m_iDamageBlocked.029", - "m_iDamageBlocked.030", - "m_iDamageBlocked.031", - "m_iDamageBlocked.032", - "m_iDamageBlocked.033", - "m_iCurrencyCollected.000", - "m_iCurrencyCollected.001", - "m_iCurrencyCollected.002", - "m_iCurrencyCollected.003", - "m_iCurrencyCollected.004", - "m_iCurrencyCollected.005", - "m_iCurrencyCollected.006", - "m_iCurrencyCollected.007", - "m_iCurrencyCollected.008", - "m_iCurrencyCollected.009", - "m_iCurrencyCollected.010", - "m_iCurrencyCollected.011", - "m_iCurrencyCollected.012", - "m_iCurrencyCollected.013", - "m_iCurrencyCollected.014", - "m_iCurrencyCollected.015", - "m_iCurrencyCollected.016", - "m_iCurrencyCollected.017", - "m_iCurrencyCollected.018", - "m_iCurrencyCollected.019", - "m_iCurrencyCollected.020", - "m_iCurrencyCollected.021", - "m_iCurrencyCollected.022", - "m_iCurrencyCollected.023", - "m_iCurrencyCollected.024", - "m_iCurrencyCollected.025", - "m_iCurrencyCollected.026", - "m_iCurrencyCollected.027", - "m_iCurrencyCollected.028", - "m_iCurrencyCollected.029", - "m_iCurrencyCollected.030", - "m_iCurrencyCollected.031", - "m_iCurrencyCollected.032", - "m_iCurrencyCollected.033", - "m_iBonusPoints.000", - "m_iBonusPoints.001", - "m_iBonusPoints.002", - "m_iBonusPoints.003", - "m_iBonusPoints.004", - "m_iBonusPoints.005", - "m_iBonusPoints.006", - "m_iBonusPoints.007", - "m_iBonusPoints.008", - "m_iBonusPoints.009", - "m_iBonusPoints.010", - "m_iBonusPoints.011", - "m_iBonusPoints.012", - "m_iBonusPoints.013", - "m_iBonusPoints.014", - "m_iBonusPoints.015", - "m_iBonusPoints.016", - "m_iBonusPoints.017", - "m_iBonusPoints.018", - "m_iBonusPoints.019", - "m_iBonusPoints.020", - "m_iBonusPoints.021", - "m_iBonusPoints.022", - "m_iBonusPoints.023", - "m_iBonusPoints.024", - "m_iBonusPoints.025", - "m_iBonusPoints.026", - "m_iBonusPoints.027", - "m_iBonusPoints.028", - "m_iBonusPoints.029", - "m_iBonusPoints.030", - "m_iBonusPoints.031", - "m_iBonusPoints.032", - "m_iBonusPoints.033", - "m_iPlayerLevel.000", - "m_iPlayerLevel.001", - "m_iPlayerLevel.002", - "m_iPlayerLevel.003", - "m_iPlayerLevel.004", - "m_iPlayerLevel.005", - "m_iPlayerLevel.006", - "m_iPlayerLevel.007", - "m_iPlayerLevel.008", - "m_iPlayerLevel.009", - "m_iPlayerLevel.010", - "m_iPlayerLevel.011", - "m_iPlayerLevel.012", - "m_iPlayerLevel.013", - "m_iPlayerLevel.014", - "m_iPlayerLevel.015", - "m_iPlayerLevel.016", - "m_iPlayerLevel.017", - "m_iPlayerLevel.018", - "m_iPlayerLevel.019", - "m_iPlayerLevel.020", - "m_iPlayerLevel.021", - "m_iPlayerLevel.022", - "m_iPlayerLevel.023", - "m_iPlayerLevel.024", - "m_iPlayerLevel.025", - "m_iPlayerLevel.026", - "m_iPlayerLevel.027", - "m_iPlayerLevel.028", - "m_iPlayerLevel.029", - "m_iPlayerLevel.030", - "m_iPlayerLevel.031", - "m_iPlayerLevel.032", - "m_iPlayerLevel.033", - "m_iStreaks.000", - "m_iStreaks.001", - "m_iStreaks.002", - "m_iStreaks.003", - "m_iStreaks.004", - "m_iStreaks.005", - "m_iStreaks.006", - "m_iStreaks.007", - "m_iStreaks.008", - "m_iStreaks.009", - "m_iStreaks.010", - "m_iStreaks.011", - "m_iStreaks.012", - "m_iStreaks.013", - "m_iStreaks.014", - "m_iStreaks.015", - "m_iStreaks.016", - "m_iStreaks.017", - "m_iStreaks.018", - "m_iStreaks.019", - "m_iStreaks.020", - "m_iStreaks.021", - "m_iStreaks.022", - "m_iStreaks.023", - "m_iStreaks.024", - "m_iStreaks.025", - "m_iStreaks.026", - "m_iStreaks.027", - "m_iStreaks.028", - "m_iStreaks.029", - "m_iStreaks.030", - "m_iStreaks.031", - "m_iStreaks.032", - "m_iStreaks.033", - "m_iStreaks.034", - "m_iStreaks.035", - "m_iStreaks.036", - "m_iStreaks.037", - "m_iStreaks.038", - "m_iStreaks.039", - "m_iStreaks.040", - "m_iStreaks.041", - "m_iStreaks.042", - "m_iStreaks.043", - "m_iStreaks.044", - "m_iStreaks.045", - "m_iStreaks.046", - "m_iStreaks.047", - "m_iStreaks.048", - "m_iStreaks.049", - "m_iStreaks.050", - "m_iStreaks.051", - "m_iStreaks.052", - "m_iStreaks.053", - "m_iStreaks.054", - "m_iStreaks.055", - "m_iStreaks.056", - "m_iStreaks.057", - "m_iStreaks.058", - "m_iStreaks.059", - "m_iStreaks.060", - "m_iStreaks.061", - "m_iStreaks.062", - "m_iStreaks.063", - "m_iStreaks.064", - "m_iStreaks.065", - "m_iStreaks.066", - "m_iStreaks.067", - "m_iStreaks.068", - "m_iStreaks.069", - "m_iStreaks.070", - "m_iStreaks.071", - "m_iStreaks.072", - "m_iStreaks.073", - "m_iStreaks.074", - "m_iStreaks.075", - "m_iStreaks.076", - "m_iStreaks.077", - "m_iStreaks.078", - "m_iStreaks.079", - "m_iStreaks.080", - "m_iStreaks.081", - "m_iStreaks.082", - "m_iStreaks.083", - "m_iStreaks.084", - "m_iStreaks.085", - "m_iStreaks.086", - "m_iStreaks.087", - "m_iStreaks.088", - "m_iStreaks.089", - "m_iStreaks.090", - "m_iStreaks.091", - "m_iStreaks.092", - "m_iStreaks.093", - "m_iStreaks.094", - "m_iStreaks.095", - "m_iStreaks.096", - "m_iStreaks.097", - "m_iStreaks.098", - "m_iStreaks.099", - "m_iStreaks.100", - "m_iStreaks.101", - "m_iStreaks.102", - "m_iStreaks.103", - "m_iStreaks.104", - "m_iStreaks.105", - "m_iStreaks.106", - "m_iStreaks.107", - "m_iStreaks.108", - "m_iStreaks.109", - "m_iStreaks.110", - "m_iStreaks.111", - "m_iStreaks.112", - "m_iStreaks.113", - "m_iStreaks.114", - "m_iStreaks.115", - "m_iStreaks.116", - "m_iStreaks.117", - "m_iStreaks.118", - "m_iStreaks.119", - "m_iStreaks.120", - "m_iStreaks.121", - "m_iStreaks.122", - "m_iStreaks.123", - "m_iStreaks.124", - "m_iStreaks.125", - "m_iStreaks.126", - "m_iStreaks.127", - "m_iStreaks.128", - "m_iStreaks.129", - "m_iStreaks.130", - "m_iStreaks.131", - "m_iStreaks.132", - "m_iStreaks.133", - "m_iStreaks.134", - "m_iStreaks.135", - "m_iUpgradeRefundCredits.000", - "m_iUpgradeRefundCredits.001", - "m_iUpgradeRefundCredits.002", - "m_iUpgradeRefundCredits.003", - "m_iUpgradeRefundCredits.004", - "m_iUpgradeRefundCredits.005", - "m_iUpgradeRefundCredits.006", - "m_iUpgradeRefundCredits.007", - "m_iUpgradeRefundCredits.008", - "m_iUpgradeRefundCredits.009", - "m_iUpgradeRefundCredits.010", - "m_iUpgradeRefundCredits.011", - "m_iUpgradeRefundCredits.012", - "m_iUpgradeRefundCredits.013", - "m_iUpgradeRefundCredits.014", - "m_iUpgradeRefundCredits.015", - "m_iUpgradeRefundCredits.016", - "m_iUpgradeRefundCredits.017", - "m_iUpgradeRefundCredits.018", - "m_iUpgradeRefundCredits.019", - "m_iUpgradeRefundCredits.020", - "m_iUpgradeRefundCredits.021", - "m_iUpgradeRefundCredits.022", - "m_iUpgradeRefundCredits.023", - "m_iUpgradeRefundCredits.024", - "m_iUpgradeRefundCredits.025", - "m_iUpgradeRefundCredits.026", - "m_iUpgradeRefundCredits.027", - "m_iUpgradeRefundCredits.028", - "m_iUpgradeRefundCredits.029", - "m_iUpgradeRefundCredits.030", - "m_iUpgradeRefundCredits.031", - "m_iUpgradeRefundCredits.032", - "m_iUpgradeRefundCredits.033" - ], - "DT_TFPowerupBottle": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith", - "DT_TFPowerupBottle.m_bActive", - "DT_TFPowerupBottle.m_usNumCharges" - ], - "DT_TFProjectile_Arrow": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Arrow.m_bArrowAlight", - "DT_TFProjectile_Arrow.m_bCritical", - "DT_TFProjectile_Arrow.m_iProjectileType" - ], - "DT_TFProjectile_Cleaver": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_EnergyBall": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_EnergyBall.m_bChargedShot", - "DT_TFProjectile_EnergyBall.m_vColor1", - "DT_TFProjectile_EnergyBall.m_vColor2" - ], - "DT_TFProjectile_Flare": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Flare.m_bCritical" - ], - "DT_TFProjectile_GrapplingHook": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Arrow.m_bArrowAlight", - "DT_TFProjectile_Arrow.m_bCritical", - "DT_TFProjectile_Arrow.m_iProjectileType" - ], - "DT_TFProjectile_HealingBolt": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Arrow.m_bArrowAlight", - "DT_TFProjectile_Arrow.m_bCritical", - "DT_TFProjectile_Arrow.m_iProjectileType" - ], - "DT_TFProjectile_Jar": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_JarMilk": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_Rocket": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Rocket.m_bCritical" - ], - "DT_TFProjectile_SentryRocket": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Rocket.m_bCritical" - ], - "DT_TFProjectile_SpellBats": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_SpellFireball": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Rocket.m_bCritical" - ], - "DT_TFProjectile_SpellKartBats": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_SpellKartOrb": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Rocket.m_bCritical" - ], - "DT_TFProjectile_SpellLightningOrb": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFBaseRocket.m_vecOrigin", - "DT_TFBaseRocket.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_TFBaseRocket.m_vInitialVelocity", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFBaseRocket.m_iDeflected", - "DT_TFBaseRocket.m_hLauncher", - "DT_TFProjectile_Rocket.m_bCritical" - ], - "DT_TFProjectile_SpellMeteorShower": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_SpellMirv": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_SpellPumpkin": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_SpellSpawnBoss": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" + "DT_TFObjectiveResource": [ + "m_bCPIsVisible.000", + "m_bCPIsVisible.001", + "m_bCPIsVisible.002", + "m_bCPIsVisible.003", + "m_bCPIsVisible.004", + "m_bCPIsVisible.005", + "m_bCPIsVisible.006", + "m_bCPIsVisible.007", + "m_flLazyCapPerc.000", + "m_flLazyCapPerc.001", + "m_flLazyCapPerc.002", + "m_flLazyCapPerc.003", + "m_flLazyCapPerc.004", + "m_flLazyCapPerc.005", + "m_flLazyCapPerc.006", + "m_flLazyCapPerc.007", + "m_iTeamIcons.000", + "m_iTeamIcons.001", + "m_iTeamIcons.002", + "m_iTeamIcons.003", + "m_iTeamIcons.004", + "m_iTeamIcons.005", + "m_iTeamIcons.006", + "m_iTeamIcons.007", + "m_iTeamIcons.008", + "m_iTeamIcons.009", + "m_iTeamIcons.010", + "m_iTeamIcons.011", + "m_iTeamIcons.012", + "m_iTeamIcons.013", + "m_iTeamIcons.014", + "m_iTeamIcons.015", + "m_iTeamIcons.016", + "m_iTeamIcons.017", + "m_iTeamIcons.018", + "m_iTeamIcons.019", + "m_iTeamIcons.020", + "m_iTeamIcons.021", + "m_iTeamIcons.022", + "m_iTeamIcons.023", + "m_iTeamIcons.024", + "m_iTeamIcons.025", + "m_iTeamIcons.026", + "m_iTeamIcons.027", + "m_iTeamIcons.028", + "m_iTeamIcons.029", + "m_iTeamIcons.030", + "m_iTeamIcons.031", + "m_iTeamIcons.032", + "m_iTeamIcons.033", + "m_iTeamIcons.034", + "m_iTeamIcons.035", + "m_iTeamIcons.036", + "m_iTeamIcons.037", + "m_iTeamIcons.038", + "m_iTeamIcons.039", + "m_iTeamIcons.040", + "m_iTeamIcons.041", + "m_iTeamIcons.042", + "m_iTeamIcons.043", + "m_iTeamIcons.044", + "m_iTeamIcons.045", + "m_iTeamIcons.046", + "m_iTeamIcons.047", + "m_iTeamIcons.048", + "m_iTeamIcons.049", + "m_iTeamIcons.050", + "m_iTeamIcons.051", + "m_iTeamIcons.052", + "m_iTeamIcons.053", + "m_iTeamIcons.054", + "m_iTeamIcons.055", + "m_iTeamIcons.056", + "m_iTeamIcons.057", + "m_iTeamIcons.058", + "m_iTeamIcons.059", + "m_iTeamIcons.060", + "m_iTeamIcons.061", + "m_iTeamIcons.062", + "m_iTeamIcons.063", + "m_iTeamOverlays.000", + "m_iTeamOverlays.001", + "m_iTeamOverlays.002", + "m_iTeamOverlays.003", + "m_iTeamOverlays.004", + "m_iTeamOverlays.005", + "m_iTeamOverlays.006", + "m_iTeamOverlays.007", + "m_iTeamOverlays.008", + "m_iTeamOverlays.009", + "m_iTeamOverlays.010", + "m_iTeamOverlays.011", + "m_iTeamOverlays.012", + "m_iTeamOverlays.013", + "m_iTeamOverlays.014", + "m_iTeamOverlays.015", + "m_iTeamOverlays.016", + "m_iTeamOverlays.017", + "m_iTeamOverlays.018", + "m_iTeamOverlays.019", + "m_iTeamOverlays.020", + "m_iTeamOverlays.021", + "m_iTeamOverlays.022", + "m_iTeamOverlays.023", + "m_iTeamOverlays.024", + "m_iTeamOverlays.025", + "m_iTeamOverlays.026", + "m_iTeamOverlays.027", + "m_iTeamOverlays.028", + "m_iTeamOverlays.029", + "m_iTeamOverlays.030", + "m_iTeamOverlays.031", + "m_iTeamOverlays.032", + "m_iTeamOverlays.033", + "m_iTeamOverlays.034", + "m_iTeamOverlays.035", + "m_iTeamOverlays.036", + "m_iTeamOverlays.037", + "m_iTeamOverlays.038", + "m_iTeamOverlays.039", + "m_iTeamOverlays.040", + "m_iTeamOverlays.041", + "m_iTeamOverlays.042", + "m_iTeamOverlays.043", + "m_iTeamOverlays.044", + "m_iTeamOverlays.045", + "m_iTeamOverlays.046", + "m_iTeamOverlays.047", + "m_iTeamOverlays.048", + "m_iTeamOverlays.049", + "m_iTeamOverlays.050", + "m_iTeamOverlays.051", + "m_iTeamOverlays.052", + "m_iTeamOverlays.053", + "m_iTeamOverlays.054", + "m_iTeamOverlays.055", + "m_iTeamOverlays.056", + "m_iTeamOverlays.057", + "m_iTeamOverlays.058", + "m_iTeamOverlays.059", + "m_iTeamOverlays.060", + "m_iTeamOverlays.061", + "m_iTeamOverlays.062", + "m_iTeamOverlays.063", + "m_iTeamReqCappers.000", + "m_iTeamReqCappers.001", + "m_iTeamReqCappers.002", + "m_iTeamReqCappers.003", + "m_iTeamReqCappers.004", + "m_iTeamReqCappers.005", + "m_iTeamReqCappers.006", + "m_iTeamReqCappers.007", + "m_iTeamReqCappers.008", + "m_iTeamReqCappers.009", + "m_iTeamReqCappers.010", + "m_iTeamReqCappers.011", + "m_iTeamReqCappers.012", + "m_iTeamReqCappers.013", + "m_iTeamReqCappers.014", + "m_iTeamReqCappers.015", + "m_iTeamReqCappers.016", + "m_iTeamReqCappers.017", + "m_iTeamReqCappers.018", + "m_iTeamReqCappers.019", + "m_iTeamReqCappers.020", + "m_iTeamReqCappers.021", + "m_iTeamReqCappers.022", + "m_iTeamReqCappers.023", + "m_iTeamReqCappers.024", + "m_iTeamReqCappers.025", + "m_iTeamReqCappers.026", + "m_iTeamReqCappers.027", + "m_iTeamReqCappers.028", + "m_iTeamReqCappers.029", + "m_iTeamReqCappers.030", + "m_iTeamReqCappers.031", + "m_iTeamReqCappers.032", + "m_iTeamReqCappers.033", + "m_iTeamReqCappers.034", + "m_iTeamReqCappers.035", + "m_iTeamReqCappers.036", + "m_iTeamReqCappers.037", + "m_iTeamReqCappers.038", + "m_iTeamReqCappers.039", + "m_iTeamReqCappers.040", + "m_iTeamReqCappers.041", + "m_iTeamReqCappers.042", + "m_iTeamReqCappers.043", + "m_iTeamReqCappers.044", + "m_iTeamReqCappers.045", + "m_iTeamReqCappers.046", + "m_iTeamReqCappers.047", + "m_iTeamReqCappers.048", + "m_iTeamReqCappers.049", + "m_iTeamReqCappers.050", + "m_iTeamReqCappers.051", + "m_iTeamReqCappers.052", + "m_iTeamReqCappers.053", + "m_iTeamReqCappers.054", + "m_iTeamReqCappers.055", + "m_iTeamReqCappers.056", + "m_iTeamReqCappers.057", + "m_iTeamReqCappers.058", + "m_iTeamReqCappers.059", + "m_iTeamReqCappers.060", + "m_iTeamReqCappers.061", + "m_iTeamReqCappers.062", + "m_iTeamReqCappers.063", + "m_flTeamCapTime.000", + "m_flTeamCapTime.001", + "m_flTeamCapTime.002", + "m_flTeamCapTime.003", + "m_flTeamCapTime.004", + "m_flTeamCapTime.005", + "m_flTeamCapTime.006", + "m_flTeamCapTime.007", + "m_flTeamCapTime.008", + "m_flTeamCapTime.009", + "m_flTeamCapTime.010", + "m_flTeamCapTime.011", + "m_flTeamCapTime.012", + "m_flTeamCapTime.013", + "m_flTeamCapTime.014", + "m_flTeamCapTime.015", + "m_flTeamCapTime.016", + "m_flTeamCapTime.017", + "m_flTeamCapTime.018", + "m_flTeamCapTime.019", + "m_flTeamCapTime.020", + "m_flTeamCapTime.021", + "m_flTeamCapTime.022", + "m_flTeamCapTime.023", + "m_flTeamCapTime.024", + "m_flTeamCapTime.025", + "m_flTeamCapTime.026", + "m_flTeamCapTime.027", + "m_flTeamCapTime.028", + "m_flTeamCapTime.029", + "m_flTeamCapTime.030", + "m_flTeamCapTime.031", + "m_flTeamCapTime.032", + "m_flTeamCapTime.033", + "m_flTeamCapTime.034", + "m_flTeamCapTime.035", + "m_flTeamCapTime.036", + "m_flTeamCapTime.037", + "m_flTeamCapTime.038", + "m_flTeamCapTime.039", + "m_flTeamCapTime.040", + "m_flTeamCapTime.041", + "m_flTeamCapTime.042", + "m_flTeamCapTime.043", + "m_flTeamCapTime.044", + "m_flTeamCapTime.045", + "m_flTeamCapTime.046", + "m_flTeamCapTime.047", + "m_flTeamCapTime.048", + "m_flTeamCapTime.049", + "m_flTeamCapTime.050", + "m_flTeamCapTime.051", + "m_flTeamCapTime.052", + "m_flTeamCapTime.053", + "m_flTeamCapTime.054", + "m_flTeamCapTime.055", + "m_flTeamCapTime.056", + "m_flTeamCapTime.057", + "m_flTeamCapTime.058", + "m_flTeamCapTime.059", + "m_flTeamCapTime.060", + "m_flTeamCapTime.061", + "m_flTeamCapTime.062", + "m_flTeamCapTime.063", + "m_iPreviousPoints.000", + "m_iPreviousPoints.001", + "m_iPreviousPoints.002", + "m_iPreviousPoints.003", + "m_iPreviousPoints.004", + "m_iPreviousPoints.005", + "m_iPreviousPoints.006", + "m_iPreviousPoints.007", + "m_iPreviousPoints.008", + "m_iPreviousPoints.009", + "m_iPreviousPoints.010", + "m_iPreviousPoints.011", + "m_iPreviousPoints.012", + "m_iPreviousPoints.013", + "m_iPreviousPoints.014", + "m_iPreviousPoints.015", + "m_iPreviousPoints.016", + "m_iPreviousPoints.017", + "m_iPreviousPoints.018", + "m_iPreviousPoints.019", + "m_iPreviousPoints.020", + "m_iPreviousPoints.021", + "m_iPreviousPoints.022", + "m_iPreviousPoints.023", + "m_iPreviousPoints.024", + "m_iPreviousPoints.025", + "m_iPreviousPoints.026", + "m_iPreviousPoints.027", + "m_iPreviousPoints.028", + "m_iPreviousPoints.029", + "m_iPreviousPoints.030", + "m_iPreviousPoints.031", + "m_iPreviousPoints.032", + "m_iPreviousPoints.033", + "m_iPreviousPoints.034", + "m_iPreviousPoints.035", + "m_iPreviousPoints.036", + "m_iPreviousPoints.037", + "m_iPreviousPoints.038", + "m_iPreviousPoints.039", + "m_iPreviousPoints.040", + "m_iPreviousPoints.041", + "m_iPreviousPoints.042", + "m_iPreviousPoints.043", + "m_iPreviousPoints.044", + "m_iPreviousPoints.045", + "m_iPreviousPoints.046", + "m_iPreviousPoints.047", + "m_iPreviousPoints.048", + "m_iPreviousPoints.049", + "m_iPreviousPoints.050", + "m_iPreviousPoints.051", + "m_iPreviousPoints.052", + "m_iPreviousPoints.053", + "m_iPreviousPoints.054", + "m_iPreviousPoints.055", + "m_iPreviousPoints.056", + "m_iPreviousPoints.057", + "m_iPreviousPoints.058", + "m_iPreviousPoints.059", + "m_iPreviousPoints.060", + "m_iPreviousPoints.061", + "m_iPreviousPoints.062", + "m_iPreviousPoints.063", + "m_iPreviousPoints.064", + "m_iPreviousPoints.065", + "m_iPreviousPoints.066", + "m_iPreviousPoints.067", + "m_iPreviousPoints.068", + "m_iPreviousPoints.069", + "m_iPreviousPoints.070", + "m_iPreviousPoints.071", + "m_iPreviousPoints.072", + "m_iPreviousPoints.073", + "m_iPreviousPoints.074", + "m_iPreviousPoints.075", + "m_iPreviousPoints.076", + "m_iPreviousPoints.077", + "m_iPreviousPoints.078", + "m_iPreviousPoints.079", + "m_iPreviousPoints.080", + "m_iPreviousPoints.081", + "m_iPreviousPoints.082", + "m_iPreviousPoints.083", + "m_iPreviousPoints.084", + "m_iPreviousPoints.085", + "m_iPreviousPoints.086", + "m_iPreviousPoints.087", + "m_iPreviousPoints.088", + "m_iPreviousPoints.089", + "m_iPreviousPoints.090", + "m_iPreviousPoints.091", + "m_iPreviousPoints.092", + "m_iPreviousPoints.093", + "m_iPreviousPoints.094", + "m_iPreviousPoints.095", + "m_iPreviousPoints.096", + "m_iPreviousPoints.097", + "m_iPreviousPoints.098", + "m_iPreviousPoints.099", + "m_iPreviousPoints.100", + "m_iPreviousPoints.101", + "m_iPreviousPoints.102", + "m_iPreviousPoints.103", + "m_iPreviousPoints.104", + "m_iPreviousPoints.105", + "m_iPreviousPoints.106", + "m_iPreviousPoints.107", + "m_iPreviousPoints.108", + "m_iPreviousPoints.109", + "m_iPreviousPoints.110", + "m_iPreviousPoints.111", + "m_iPreviousPoints.112", + "m_iPreviousPoints.113", + "m_iPreviousPoints.114", + "m_iPreviousPoints.115", + "m_iPreviousPoints.116", + "m_iPreviousPoints.117", + "m_iPreviousPoints.118", + "m_iPreviousPoints.119", + "m_iPreviousPoints.120", + "m_iPreviousPoints.121", + "m_iPreviousPoints.122", + "m_iPreviousPoints.123", + "m_iPreviousPoints.124", + "m_iPreviousPoints.125", + "m_iPreviousPoints.126", + "m_iPreviousPoints.127", + "m_iPreviousPoints.128", + "m_iPreviousPoints.129", + "m_iPreviousPoints.130", + "m_iPreviousPoints.131", + "m_iPreviousPoints.132", + "m_iPreviousPoints.133", + "m_iPreviousPoints.134", + "m_iPreviousPoints.135", + "m_iPreviousPoints.136", + "m_iPreviousPoints.137", + "m_iPreviousPoints.138", + "m_iPreviousPoints.139", + "m_iPreviousPoints.140", + "m_iPreviousPoints.141", + "m_iPreviousPoints.142", + "m_iPreviousPoints.143", + "m_iPreviousPoints.144", + "m_iPreviousPoints.145", + "m_iPreviousPoints.146", + "m_iPreviousPoints.147", + "m_iPreviousPoints.148", + "m_iPreviousPoints.149", + "m_iPreviousPoints.150", + "m_iPreviousPoints.151", + "m_iPreviousPoints.152", + "m_iPreviousPoints.153", + "m_iPreviousPoints.154", + "m_iPreviousPoints.155", + "m_iPreviousPoints.156", + "m_iPreviousPoints.157", + "m_iPreviousPoints.158", + "m_iPreviousPoints.159", + "m_iPreviousPoints.160", + "m_iPreviousPoints.161", + "m_iPreviousPoints.162", + "m_iPreviousPoints.163", + "m_iPreviousPoints.164", + "m_iPreviousPoints.165", + "m_iPreviousPoints.166", + "m_iPreviousPoints.167", + "m_iPreviousPoints.168", + "m_iPreviousPoints.169", + "m_iPreviousPoints.170", + "m_iPreviousPoints.171", + "m_iPreviousPoints.172", + "m_iPreviousPoints.173", + "m_iPreviousPoints.174", + "m_iPreviousPoints.175", + "m_iPreviousPoints.176", + "m_iPreviousPoints.177", + "m_iPreviousPoints.178", + "m_iPreviousPoints.179", + "m_iPreviousPoints.180", + "m_iPreviousPoints.181", + "m_iPreviousPoints.182", + "m_iPreviousPoints.183", + "m_iPreviousPoints.184", + "m_iPreviousPoints.185", + "m_iPreviousPoints.186", + "m_iPreviousPoints.187", + "m_iPreviousPoints.188", + "m_iPreviousPoints.189", + "m_iPreviousPoints.190", + "m_iPreviousPoints.191", + "m_bTeamCanCap.000", + "m_bTeamCanCap.001", + "m_bTeamCanCap.002", + "m_bTeamCanCap.003", + "m_bTeamCanCap.004", + "m_bTeamCanCap.005", + "m_bTeamCanCap.006", + "m_bTeamCanCap.007", + "m_bTeamCanCap.008", + "m_bTeamCanCap.009", + "m_bTeamCanCap.010", + "m_bTeamCanCap.011", + "m_bTeamCanCap.012", + "m_bTeamCanCap.013", + "m_bTeamCanCap.014", + "m_bTeamCanCap.015", + "m_bTeamCanCap.016", + "m_bTeamCanCap.017", + "m_bTeamCanCap.018", + "m_bTeamCanCap.019", + "m_bTeamCanCap.020", + "m_bTeamCanCap.021", + "m_bTeamCanCap.022", + "m_bTeamCanCap.023", + "m_bTeamCanCap.024", + "m_bTeamCanCap.025", + "m_bTeamCanCap.026", + "m_bTeamCanCap.027", + "m_bTeamCanCap.028", + "m_bTeamCanCap.029", + "m_bTeamCanCap.030", + "m_bTeamCanCap.031", + "m_bTeamCanCap.032", + "m_bTeamCanCap.033", + "m_bTeamCanCap.034", + "m_bTeamCanCap.035", + "m_bTeamCanCap.036", + "m_bTeamCanCap.037", + "m_bTeamCanCap.038", + "m_bTeamCanCap.039", + "m_bTeamCanCap.040", + "m_bTeamCanCap.041", + "m_bTeamCanCap.042", + "m_bTeamCanCap.043", + "m_bTeamCanCap.044", + "m_bTeamCanCap.045", + "m_bTeamCanCap.046", + "m_bTeamCanCap.047", + "m_bTeamCanCap.048", + "m_bTeamCanCap.049", + "m_bTeamCanCap.050", + "m_bTeamCanCap.051", + "m_bTeamCanCap.052", + "m_bTeamCanCap.053", + "m_bTeamCanCap.054", + "m_bTeamCanCap.055", + "m_bTeamCanCap.056", + "m_bTeamCanCap.057", + "m_bTeamCanCap.058", + "m_bTeamCanCap.059", + "m_bTeamCanCap.060", + "m_bTeamCanCap.061", + "m_bTeamCanCap.062", + "m_bTeamCanCap.063", + "m_iTeamBaseIcons.000", + "m_iTeamBaseIcons.001", + "m_iTeamBaseIcons.002", + "m_iTeamBaseIcons.003", + "m_iTeamBaseIcons.004", + "m_iTeamBaseIcons.005", + "m_iTeamBaseIcons.006", + "m_iTeamBaseIcons.007", + "m_iTeamBaseIcons.008", + "m_iTeamBaseIcons.009", + "m_iTeamBaseIcons.010", + "m_iTeamBaseIcons.011", + "m_iTeamBaseIcons.012", + "m_iTeamBaseIcons.013", + "m_iTeamBaseIcons.014", + "m_iTeamBaseIcons.015", + "m_iTeamBaseIcons.016", + "m_iTeamBaseIcons.017", + "m_iTeamBaseIcons.018", + "m_iTeamBaseIcons.019", + "m_iTeamBaseIcons.020", + "m_iTeamBaseIcons.021", + "m_iTeamBaseIcons.022", + "m_iTeamBaseIcons.023", + "m_iTeamBaseIcons.024", + "m_iTeamBaseIcons.025", + "m_iTeamBaseIcons.026", + "m_iTeamBaseIcons.027", + "m_iTeamBaseIcons.028", + "m_iTeamBaseIcons.029", + "m_iTeamBaseIcons.030", + "m_iTeamBaseIcons.031", + "m_iBaseControlPoints.000", + "m_iBaseControlPoints.001", + "m_iBaseControlPoints.002", + "m_iBaseControlPoints.003", + "m_iBaseControlPoints.004", + "m_iBaseControlPoints.005", + "m_iBaseControlPoints.006", + "m_iBaseControlPoints.007", + "m_iBaseControlPoints.008", + "m_iBaseControlPoints.009", + "m_iBaseControlPoints.010", + "m_iBaseControlPoints.011", + "m_iBaseControlPoints.012", + "m_iBaseControlPoints.013", + "m_iBaseControlPoints.014", + "m_iBaseControlPoints.015", + "m_iBaseControlPoints.016", + "m_iBaseControlPoints.017", + "m_iBaseControlPoints.018", + "m_iBaseControlPoints.019", + "m_iBaseControlPoints.020", + "m_iBaseControlPoints.021", + "m_iBaseControlPoints.022", + "m_iBaseControlPoints.023", + "m_iBaseControlPoints.024", + "m_iBaseControlPoints.025", + "m_iBaseControlPoints.026", + "m_iBaseControlPoints.027", + "m_iBaseControlPoints.028", + "m_iBaseControlPoints.029", + "m_iBaseControlPoints.030", + "m_iBaseControlPoints.031", + "m_bInMiniRound.000", + "m_bInMiniRound.001", + "m_bInMiniRound.002", + "m_bInMiniRound.003", + "m_bInMiniRound.004", + "m_bInMiniRound.005", + "m_bInMiniRound.006", + "m_bInMiniRound.007", + "m_iWarnOnCap.000", + "m_iWarnOnCap.001", + "m_iWarnOnCap.002", + "m_iWarnOnCap.003", + "m_iWarnOnCap.004", + "m_iWarnOnCap.005", + "m_iWarnOnCap.006", + "m_iWarnOnCap.007", + "m_flPathDistance.000", + "m_flPathDistance.001", + "m_flPathDistance.002", + "m_flPathDistance.003", + "m_flPathDistance.004", + "m_flPathDistance.005", + "m_flPathDistance.006", + "m_flPathDistance.007", + "m_iCPGroup.000", + "m_iCPGroup.001", + "m_iCPGroup.002", + "m_iCPGroup.003", + "m_iCPGroup.004", + "m_iCPGroup.005", + "m_iCPGroup.006", + "m_iCPGroup.007", + "m_bCPLocked.000", + "m_bCPLocked.001", + "m_bCPLocked.002", + "m_bCPLocked.003", + "m_bCPLocked.004", + "m_bCPLocked.005", + "m_bCPLocked.006", + "m_bCPLocked.007", + "m_nNumNodeHillData.000", + "m_nNumNodeHillData.001", + "m_nNumNodeHillData.002", + "m_nNumNodeHillData.003", + "m_flNodeHillData.000", + "m_flNodeHillData.001", + "m_flNodeHillData.002", + "m_flNodeHillData.003", + "m_flNodeHillData.004", + "m_flNodeHillData.005", + "m_flNodeHillData.006", + "m_flNodeHillData.007", + "m_flNodeHillData.008", + "m_flNodeHillData.009", + "m_flNodeHillData.010", + "m_flNodeHillData.011", + "m_flNodeHillData.012", + "m_flNodeHillData.013", + "m_flNodeHillData.014", + "m_flNodeHillData.015", + "m_flNodeHillData.016", + "m_flNodeHillData.017", + "m_flNodeHillData.018", + "m_flNodeHillData.019", + "m_flNodeHillData.020", + "m_flNodeHillData.021", + "m_flNodeHillData.022", + "m_flNodeHillData.023", + "m_flNodeHillData.024", + "m_flNodeHillData.025", + "m_flNodeHillData.026", + "m_flNodeHillData.027", + "m_flNodeHillData.028", + "m_flNodeHillData.029", + "m_flNodeHillData.030", + "m_flNodeHillData.031", + "m_flNodeHillData.032", + "m_flNodeHillData.033", + "m_flNodeHillData.034", + "m_flNodeHillData.035", + "m_flNodeHillData.036", + "m_flNodeHillData.037", + "m_flNodeHillData.038", + "m_flNodeHillData.039", + "m_bTrackAlarm.000", + "m_bTrackAlarm.001", + "m_bTrackAlarm.002", + "m_bTrackAlarm.003", + "m_flUnlockTimes.000", + "m_flUnlockTimes.001", + "m_flUnlockTimes.002", + "m_flUnlockTimes.003", + "m_flUnlockTimes.004", + "m_flUnlockTimes.005", + "m_flUnlockTimes.006", + "m_flUnlockTimes.007", + "m_bHillIsDownhill.000", + "m_bHillIsDownhill.001", + "m_bHillIsDownhill.002", + "m_bHillIsDownhill.003", + "m_bHillIsDownhill.004", + "m_bHillIsDownhill.005", + "m_bHillIsDownhill.006", + "m_bHillIsDownhill.007", + "m_bHillIsDownhill.008", + "m_bHillIsDownhill.009", + "m_bHillIsDownhill.010", + "m_bHillIsDownhill.011", + "m_bHillIsDownhill.012", + "m_bHillIsDownhill.013", + "m_bHillIsDownhill.014", + "m_bHillIsDownhill.015", + "m_bHillIsDownhill.016", + "m_bHillIsDownhill.017", + "m_bHillIsDownhill.018", + "m_bHillIsDownhill.019", + "m_flCPTimerTimes.000", + "m_flCPTimerTimes.001", + "m_flCPTimerTimes.002", + "m_flCPTimerTimes.003", + "m_flCPTimerTimes.004", + "m_flCPTimerTimes.005", + "m_flCPTimerTimes.006", + "m_flCPTimerTimes.007", + "m_iNumTeamMembers.000", + "m_iNumTeamMembers.001", + "m_iNumTeamMembers.002", + "m_iNumTeamMembers.003", + "m_iNumTeamMembers.004", + "m_iNumTeamMembers.005", + "m_iNumTeamMembers.006", + "m_iNumTeamMembers.007", + "m_iNumTeamMembers.008", + "m_iNumTeamMembers.009", + "m_iNumTeamMembers.010", + "m_iNumTeamMembers.011", + "m_iNumTeamMembers.012", + "m_iNumTeamMembers.013", + "m_iNumTeamMembers.014", + "m_iNumTeamMembers.015", + "m_iNumTeamMembers.016", + "m_iNumTeamMembers.017", + "m_iNumTeamMembers.018", + "m_iNumTeamMembers.019", + "m_iNumTeamMembers.020", + "m_iNumTeamMembers.021", + "m_iNumTeamMembers.022", + "m_iNumTeamMembers.023", + "m_iNumTeamMembers.024", + "m_iNumTeamMembers.025", + "m_iNumTeamMembers.026", + "m_iNumTeamMembers.027", + "m_iNumTeamMembers.028", + "m_iNumTeamMembers.029", + "m_iNumTeamMembers.030", + "m_iNumTeamMembers.031", + "m_iNumTeamMembers.032", + "m_iNumTeamMembers.033", + "m_iNumTeamMembers.034", + "m_iNumTeamMembers.035", + "m_iNumTeamMembers.036", + "m_iNumTeamMembers.037", + "m_iNumTeamMembers.038", + "m_iNumTeamMembers.039", + "m_iNumTeamMembers.040", + "m_iNumTeamMembers.041", + "m_iNumTeamMembers.042", + "m_iNumTeamMembers.043", + "m_iNumTeamMembers.044", + "m_iNumTeamMembers.045", + "m_iNumTeamMembers.046", + "m_iNumTeamMembers.047", + "m_iNumTeamMembers.048", + "m_iNumTeamMembers.049", + "m_iNumTeamMembers.050", + "m_iNumTeamMembers.051", + "m_iNumTeamMembers.052", + "m_iNumTeamMembers.053", + "m_iNumTeamMembers.054", + "m_iNumTeamMembers.055", + "m_iNumTeamMembers.056", + "m_iNumTeamMembers.057", + "m_iNumTeamMembers.058", + "m_iNumTeamMembers.059", + "m_iNumTeamMembers.060", + "m_iNumTeamMembers.061", + "m_iNumTeamMembers.062", + "m_iNumTeamMembers.063", + "m_iCappingTeam.000", + "m_iCappingTeam.001", + "m_iCappingTeam.002", + "m_iCappingTeam.003", + "m_iCappingTeam.004", + "m_iCappingTeam.005", + "m_iCappingTeam.006", + "m_iCappingTeam.007", + "m_iTeamInZone.000", + "m_iTeamInZone.001", + "m_iTeamInZone.002", + "m_iTeamInZone.003", + "m_iTeamInZone.004", + "m_iTeamInZone.005", + "m_iTeamInZone.006", + "m_iTeamInZone.007", + "m_bBlocked.000", + "m_bBlocked.001", + "m_bBlocked.002", + "m_bBlocked.003", + "m_bBlocked.004", + "m_bBlocked.005", + "m_bBlocked.006", + "m_bBlocked.007", + "m_iOwner.000", + "m_iOwner.001", + "m_iOwner.002", + "m_iOwner.003", + "m_iOwner.004", + "m_iOwner.005", + "m_iOwner.006", + "m_iOwner.007", + "m_bCPCapRateScalesWithPlayers.000", + "m_bCPCapRateScalesWithPlayers.001", + "m_bCPCapRateScalesWithPlayers.002", + "m_bCPCapRateScalesWithPlayers.003", + "m_bCPCapRateScalesWithPlayers.004", + "m_bCPCapRateScalesWithPlayers.005", + "m_bCPCapRateScalesWithPlayers.006", + "m_bCPCapRateScalesWithPlayers.007", + "m_nMannVsMachineWaveClassCounts.000", + "m_nMannVsMachineWaveClassCounts.001", + "m_nMannVsMachineWaveClassCounts.002", + "m_nMannVsMachineWaveClassCounts.003", + "m_nMannVsMachineWaveClassCounts.004", + "m_nMannVsMachineWaveClassCounts.005", + "m_nMannVsMachineWaveClassCounts.006", + "m_nMannVsMachineWaveClassCounts.007", + "m_nMannVsMachineWaveClassCounts.008", + "m_nMannVsMachineWaveClassCounts.009", + "m_nMannVsMachineWaveClassCounts.010", + "m_nMannVsMachineWaveClassCounts.011", + "m_nMannVsMachineWaveClassFlags.000", + "m_nMannVsMachineWaveClassFlags.001", + "m_nMannVsMachineWaveClassFlags.002", + "m_nMannVsMachineWaveClassFlags.003", + "m_nMannVsMachineWaveClassFlags.004", + "m_nMannVsMachineWaveClassFlags.005", + "m_nMannVsMachineWaveClassFlags.006", + "m_nMannVsMachineWaveClassFlags.007", + "m_nMannVsMachineWaveClassFlags.008", + "m_nMannVsMachineWaveClassFlags.009", + "m_nMannVsMachineWaveClassFlags.010", + "m_nMannVsMachineWaveClassFlags.011", + "m_nMannVsMachineWaveClassCounts2.000", + "m_nMannVsMachineWaveClassCounts2.001", + "m_nMannVsMachineWaveClassCounts2.002", + "m_nMannVsMachineWaveClassCounts2.003", + "m_nMannVsMachineWaveClassCounts2.004", + "m_nMannVsMachineWaveClassCounts2.005", + "m_nMannVsMachineWaveClassCounts2.006", + "m_nMannVsMachineWaveClassCounts2.007", + "m_nMannVsMachineWaveClassCounts2.008", + "m_nMannVsMachineWaveClassCounts2.009", + "m_nMannVsMachineWaveClassCounts2.010", + "m_nMannVsMachineWaveClassCounts2.011", + "m_nMannVsMachineWaveClassFlags2.000", + "m_nMannVsMachineWaveClassFlags2.001", + "m_nMannVsMachineWaveClassFlags2.002", + "m_nMannVsMachineWaveClassFlags2.003", + "m_nMannVsMachineWaveClassFlags2.004", + "m_nMannVsMachineWaveClassFlags2.005", + "m_nMannVsMachineWaveClassFlags2.006", + "m_nMannVsMachineWaveClassFlags2.007", + "m_nMannVsMachineWaveClassFlags2.008", + "m_nMannVsMachineWaveClassFlags2.009", + "m_nMannVsMachineWaveClassFlags2.010", + "m_nMannVsMachineWaveClassFlags2.011", + "m_bMannVsMachineWaveClassActive.000", + "m_bMannVsMachineWaveClassActive.001", + "m_bMannVsMachineWaveClassActive.002", + "m_bMannVsMachineWaveClassActive.003", + "m_bMannVsMachineWaveClassActive.004", + "m_bMannVsMachineWaveClassActive.005", + "m_bMannVsMachineWaveClassActive.006", + "m_bMannVsMachineWaveClassActive.007", + "m_bMannVsMachineWaveClassActive.008", + "m_bMannVsMachineWaveClassActive.009", + "m_bMannVsMachineWaveClassActive.010", + "m_bMannVsMachineWaveClassActive.011", + "m_bMannVsMachineWaveClassActive2.000", + "m_bMannVsMachineWaveClassActive2.001", + "m_bMannVsMachineWaveClassActive2.002", + "m_bMannVsMachineWaveClassActive2.003", + "m_bMannVsMachineWaveClassActive2.004", + "m_bMannVsMachineWaveClassActive2.005", + "m_bMannVsMachineWaveClassActive2.006", + "m_bMannVsMachineWaveClassActive2.007", + "m_bMannVsMachineWaveClassActive2.008", + "m_bMannVsMachineWaveClassActive2.009", + "m_bMannVsMachineWaveClassActive2.010", + "m_bMannVsMachineWaveClassActive2.011", + "DT_BaseTeamObjectiveResource.m_iTimerToShowInHUD", + "DT_BaseTeamObjectiveResource.m_iStopWatchTimer", + "DT_BaseTeamObjectiveResource.m_iNumControlPoints", + "DT_BaseTeamObjectiveResource.m_bPlayingMiniRounds", + "DT_BaseTeamObjectiveResource.m_bControlPointsReset", + "DT_BaseTeamObjectiveResource.m_iUpdateCapHudParity", + "DT_BaseTeamObjectiveResource.m_vCPPositions", + "DT_BaseTeamObjectiveResource.m_iszWarnSound", + "DT_BaseTeamObjectiveResource.m_pszCapLayoutInHUD", + "DT_BaseTeamObjectiveResource.m_flCustomPositionX", + "DT_BaseTeamObjectiveResource.m_flCustomPositionY", + "DT_TFObjectiveResource.m_nMannVsMachineMaxWaveCount", + "DT_TFObjectiveResource.m_nMannVsMachineWaveCount", + "DT_TFObjectiveResource.m_nMannVsMachineWaveEnemyCount", + "DT_TFObjectiveResource.m_nMvMWorldMoney", + "DT_TFObjectiveResource.m_flMannVsMachineNextWaveTime", + "DT_TFObjectiveResource.m_bMannVsMachineBetweenWaves", + "DT_TFObjectiveResource.m_nFlagCarrierUpgradeLevel", + "DT_TFObjectiveResource.m_flMvMBaseBombUpgradeTime", + "DT_TFObjectiveResource.m_flMvMNextBombUpgradeTime", + "DT_TFObjectiveResource.m_iszMvMPopfileName", + "DT_TFObjectiveResource.m_iChallengeIndex", + "DT_TFObjectiveResource.m_nMvMEventPopfileType", + "DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames", + "DT_TFObjectiveResource.m_iszMannVsMachineWaveClassNames2" ], - "DT_TFProjectile_SpellSpawnHorde": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFPEPBrawlerBlaster": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -26174,113 +17527,80 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_SpellSpawnZombie": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -26297,112 +17617,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "SpellTransposeTeleport": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -26425,30 +17640,27 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFProjectile_Throwable": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFParachute": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -26492,7 +17704,80 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -26509,6 +17794,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -26531,30 +17817,27 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFProjectile_ThrowableBreadMonster": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFParachute_Primary": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -26598,7 +17881,80 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -26615,6 +17971,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -26637,30 +17994,27 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFProjectile_ThrowableBrick": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFParachute_Secondary": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -26704,7 +18058,80 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -26721,6 +18148,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -26743,76 +18171,502 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" + ], + "DT_TFPlayer": [ + "DT_Local.m_flDucktime", + "DT_Local.m_flFallVelocity", + "DT_Local.m_vecPunchAngle", + "DT_LocalPlayerExclusive.m_vecViewOffset[2]", + "DT_LocalPlayerExclusive.m_nTickBase", + "DT_LocalPlayerExclusive.m_hGroundEntity", + "DT_LocalPlayerExclusive.m_vecVelocity[0]", + "DT_LocalPlayerExclusive.m_vecVelocity[1]", + "DT_LocalPlayerExclusive.m_vecVelocity[2]", + "DT_TFLocalPlayerExclusive.m_vecOrigin", + "DT_TFLocalPlayerExclusive.m_vecOrigin[2]", + "DT_TFLocalPlayerExclusive.m_angEyeAngles[0]", + "DT_TFNonLocalPlayerExclusive.m_vecOrigin", + "DT_TFNonLocalPlayerExclusive.m_vecOrigin[2]", + "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[0]", + "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[1]", + "DT_BaseEntity.m_flSimulationTime", + "DT_BasePlayer.m_iHealth", + "DT_BasePlayer.m_fFlags", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_PlayerState.deadflag", + "_LPT_m_hMyWearables_8.lengthprop8", + "_ST_m_hMyWearables_8.000", + "_ST_m_hMyWearables_8.001", + "_ST_m_hMyWearables_8.002", + "_ST_m_hMyWearables_8.003", + "_ST_m_hMyWearables_8.004", + "_ST_m_hMyWearables_8.005", + "_ST_m_hMyWearables_8.006", + "_ST_m_hMyWearables_8.007", + "m_chAreaBits.000", + "m_chAreaBits.001", + "m_chAreaBits.002", + "m_chAreaBits.003", + "m_chAreaBits.004", + "m_chAreaBits.005", + "m_chAreaBits.006", + "m_chAreaBits.007", + "m_chAreaBits.008", + "m_chAreaBits.009", + "m_chAreaBits.010", + "m_chAreaBits.011", + "m_chAreaBits.012", + "m_chAreaBits.013", + "m_chAreaBits.014", + "m_chAreaBits.015", + "m_chAreaBits.016", + "m_chAreaBits.017", + "m_chAreaBits.018", + "m_chAreaBits.019", + "m_chAreaBits.020", + "m_chAreaBits.021", + "m_chAreaBits.022", + "m_chAreaBits.023", + "m_chAreaBits.024", + "m_chAreaBits.025", + "m_chAreaBits.026", + "m_chAreaBits.027", + "m_chAreaBits.028", + "m_chAreaBits.029", + "m_chAreaBits.030", + "m_chAreaBits.031", + "m_chAreaPortalBits.000", + "m_chAreaPortalBits.001", + "m_chAreaPortalBits.002", + "m_chAreaPortalBits.003", + "m_chAreaPortalBits.004", + "m_chAreaPortalBits.005", + "m_chAreaPortalBits.006", + "m_chAreaPortalBits.007", + "m_chAreaPortalBits.008", + "m_chAreaPortalBits.009", + "m_chAreaPortalBits.010", + "m_chAreaPortalBits.011", + "m_chAreaPortalBits.012", + "m_chAreaPortalBits.013", + "m_chAreaPortalBits.014", + "m_chAreaPortalBits.015", + "m_chAreaPortalBits.016", + "m_chAreaPortalBits.017", + "m_chAreaPortalBits.018", + "m_chAreaPortalBits.019", + "m_chAreaPortalBits.020", + "m_chAreaPortalBits.021", + "m_chAreaPortalBits.022", + "m_chAreaPortalBits.023", + "DT_Local.m_iHideHUD", + "DT_Local.m_flFOVRate", + "DT_Local.m_bDucked", + "DT_Local.m_bDucking", + "DT_Local.m_bInDuckJump", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_Local.m_flDuckJumpTime", + "DT_Local.m_flJumpTime", + "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", + "DT_Local.m_vecPunchAngleVel", + "DT_Local.m_bDrawViewmodel", + "DT_Local.m_bWearingSuit", + "DT_Local.m_bPoisoned", + "DT_Local.m_flStepSize", + "DT_Local.m_bAllowAutoMovement", + "DT_Local.m_skybox3d.scale", + "DT_Local.m_skybox3d.origin", + "DT_Local.m_skybox3d.area", + "DT_Local.m_skybox3d.fog.enable", + "DT_Local.m_skybox3d.fog.blend", + "DT_Local.m_skybox3d.fog.dirPrimary", + "DT_Local.m_skybox3d.fog.colorPrimary", + "DT_Local.m_skybox3d.fog.colorSecondary", + "DT_Local.m_skybox3d.fog.start", + "DT_Local.m_skybox3d.fog.end", + "DT_Local.m_skybox3d.fog.maxdensity", + "DT_Local.m_PlayerFog.m_hCtrl", + "DT_Local.m_audio.localSound[0]", + "DT_Local.m_audio.localSound[1]", + "DT_Local.m_audio.localSound[2]", + "DT_Local.m_audio.localSound[3]", + "DT_Local.m_audio.localSound[4]", + "DT_Local.m_audio.localSound[5]", + "DT_Local.m_audio.localSound[6]", + "DT_Local.m_audio.localSound[7]", + "DT_Local.m_audio.soundscapeIndex", + "DT_Local.m_audio.localBits", + "DT_Local.m_audio.ent", + "m_iAmmo.000", + "m_iAmmo.001", + "m_iAmmo.002", + "m_iAmmo.003", + "m_iAmmo.004", + "m_iAmmo.005", + "m_iAmmo.006", + "m_iAmmo.007", + "m_iAmmo.008", + "m_iAmmo.009", + "m_iAmmo.010", + "m_iAmmo.011", + "m_iAmmo.012", + "m_iAmmo.013", + "m_iAmmo.014", + "m_iAmmo.015", + "m_iAmmo.016", + "m_iAmmo.017", + "m_iAmmo.018", + "m_iAmmo.019", + "m_iAmmo.020", + "m_iAmmo.021", + "m_iAmmo.022", + "m_iAmmo.023", + "m_iAmmo.024", + "m_iAmmo.025", + "m_iAmmo.026", + "m_iAmmo.027", + "m_iAmmo.028", + "m_iAmmo.029", + "m_iAmmo.030", + "m_iAmmo.031", + "DT_LocalPlayerExclusive.m_vecViewOffset[0]", + "DT_LocalPlayerExclusive.m_vecViewOffset[1]", "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFProjectile_ThrowableRepel": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_LocalPlayerExclusive.m_flFriction", + "DT_LocalPlayerExclusive.m_fOnTarget", "DT_CollisionProperty.m_nSolidType", + "DT_LocalPlayerExclusive.m_nNextThinkTick", + "DT_LocalPlayerExclusive.m_hLastWeapon", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_LocalPlayerExclusive.m_vecBaseVelocity", + "DT_LocalPlayerExclusive.m_hConstraintEntity", + "DT_LocalPlayerExclusive.m_vecConstraintCenter", + "DT_LocalPlayerExclusive.m_flConstraintRadius", + "DT_LocalPlayerExclusive.m_flConstraintWidth", + "DT_LocalPlayerExclusive.m_flConstraintSpeedFactor", + "DT_LocalPlayerExclusive.m_flDeathTime", + "DT_LocalPlayerExclusive.m_nWaterLevel", + "DT_LocalPlayerExclusive.m_flLaggedMovementValue", + "DT_TFPlayerClassShared.m_iClass", + "DT_TFPlayerClassShared.m_iszClassIcon", + "DT_TFPlayerClassShared.m_iszCustomModel", + "DT_TFPlayerClassShared.m_vecCustomModelOffset", + "DT_TFPlayerClassShared.m_angCustomModelRotation", + "DT_TFPlayerClassShared.m_bCustomModelRotates", + "DT_TFPlayerClassShared.m_bCustomModelRotationSet", + "DT_TFPlayerClassShared.m_bCustomModelVisibleToSelf", + "DT_TFPlayerClassShared.m_bUseClassAnimations", + "DT_TFPlayerClassShared.m_iClassModelParity", + "m_bPlayerDominated.000", + "m_bPlayerDominated.001", + "m_bPlayerDominated.002", + "m_bPlayerDominated.003", + "m_bPlayerDominated.004", + "m_bPlayerDominated.005", + "m_bPlayerDominated.006", + "m_bPlayerDominated.007", + "m_bPlayerDominated.008", + "m_bPlayerDominated.009", + "m_bPlayerDominated.010", + "m_bPlayerDominated.011", + "m_bPlayerDominated.012", + "m_bPlayerDominated.013", + "m_bPlayerDominated.014", + "m_bPlayerDominated.015", + "m_bPlayerDominated.016", + "m_bPlayerDominated.017", + "m_bPlayerDominated.018", + "m_bPlayerDominated.019", + "m_bPlayerDominated.020", + "m_bPlayerDominated.021", + "m_bPlayerDominated.022", + "m_bPlayerDominated.023", + "m_bPlayerDominated.024", + "m_bPlayerDominated.025", + "m_bPlayerDominated.026", + "m_bPlayerDominated.027", + "m_bPlayerDominated.028", + "m_bPlayerDominated.029", + "m_bPlayerDominated.030", + "m_bPlayerDominated.031", + "m_bPlayerDominated.032", + "m_bPlayerDominated.033", + "m_bPlayerDominatingMe.000", + "m_bPlayerDominatingMe.001", + "m_bPlayerDominatingMe.002", + "m_bPlayerDominatingMe.003", + "m_bPlayerDominatingMe.004", + "m_bPlayerDominatingMe.005", + "m_bPlayerDominatingMe.006", + "m_bPlayerDominatingMe.007", + "m_bPlayerDominatingMe.008", + "m_bPlayerDominatingMe.009", + "m_bPlayerDominatingMe.010", + "m_bPlayerDominatingMe.011", + "m_bPlayerDominatingMe.012", + "m_bPlayerDominatingMe.013", + "m_bPlayerDominatingMe.014", + "m_bPlayerDominatingMe.015", + "m_bPlayerDominatingMe.016", + "m_bPlayerDominatingMe.017", + "m_bPlayerDominatingMe.018", + "m_bPlayerDominatingMe.019", + "m_bPlayerDominatingMe.020", + "m_bPlayerDominatingMe.021", + "m_bPlayerDominatingMe.022", + "m_bPlayerDominatingMe.023", + "m_bPlayerDominatingMe.024", + "m_bPlayerDominatingMe.025", + "m_bPlayerDominatingMe.026", + "m_bPlayerDominatingMe.027", + "m_bPlayerDominatingMe.028", + "m_bPlayerDominatingMe.029", + "m_bPlayerDominatingMe.030", + "m_bPlayerDominatingMe.031", + "m_bPlayerDominatingMe.032", + "m_bPlayerDominatingMe.033", + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints", + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints", + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam", + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass", + "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam", + "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire", + "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime", + "DT_TFPlayerSharedLocal.m_flRageMeter", + "DT_TFPlayerSharedLocal.m_bRageDraining", + "DT_TFPlayerSharedLocal.m_flNextRageEarnTime", + "DT_TFPlayerSharedLocal.m_bInUpgradeZone", + "DT_TFPlayerConditionListExclusive._condition_bits", + "m_nStreaks.000", + "m_nStreaks.001", + "m_nStreaks.002", + "m_nStreaks.003", + "DT_TFPlayerShared.m_nPlayerCond", + "DT_TFPlayerShared.m_bJumping", + "DT_TFPlayerShared.m_nNumHealers", + "DT_TFPlayerShared.m_iCritMult", + "DT_TFPlayerShared.m_iAirDash", + "DT_TFPlayerShared.m_nAirDucked", + "DT_TFPlayerShared.m_flDuckTimer", + "DT_TFPlayerShared.m_nPlayerState", + "DT_TFPlayerShared.m_iDesiredPlayerClass", + "DT_TFPlayerShared.m_flMovementStunTime", + "DT_TFPlayerShared.m_iMovementStunAmount", + "DT_TFPlayerShared.m_iMovementStunParity", + "DT_TFPlayerShared.m_hStunner", + "DT_TFPlayerShared.m_iStunFlags", + "DT_TFPlayerShared.m_nArenaNumChanges", + "DT_TFPlayerShared.m_bArenaFirstBloodBoost", + "DT_TFPlayerShared.m_iWeaponKnockbackID", + "DT_TFPlayerShared.m_bLoadoutUnavailable", + "DT_TFPlayerShared.m_iItemFindBonus", + "DT_TFPlayerShared.m_bShieldEquipped", + "DT_TFPlayerShared.m_iNextMeleeCrit", + "DT_TFPlayerShared.m_iDecapitations", + "DT_TFPlayerShared.m_iRevengeCrits", + "DT_TFPlayerShared.m_iDisguiseBody", + "DT_TFPlayerShared.m_hCarriedObject", + "DT_TFPlayerShared.m_bCarryingObject", + "DT_TFPlayerShared.m_flNextNoiseMakerTime", + "DT_TFPlayerShared.m_iKillCountSinceLastDeploy", + "DT_TFPlayerShared.m_flFirstPrimaryAttack", + "DT_TFPlayerShared.m_flEnergyDrinkMeter", + "DT_TFPlayerShared.m_flHypeMeter", + "DT_TFPlayerShared.m_flChargeMeter", + "DT_TFPlayerShared.m_flInvisChangeCompleteTime", + "DT_TFPlayerShared.m_nDisguiseTeam", + "DT_TFPlayerShared.m_nDisguiseClass", + "DT_TFPlayerShared.m_nMaskClass", + "DT_TFPlayerShared.m_iDisguiseTargetIndex", + "DT_TFPlayerShared.m_iDisguiseHealth", + "DT_TFPlayerShared.m_bFeignDeathReady", + "DT_TFPlayerShared.m_hDisguiseWeapon", + "DT_TFPlayerShared.m_nTeamTeleporterUsed", + "DT_TFPlayerShared.m_flCloakMeter", + "DT_TFPlayerShared.m_flSpyTranqBuffDuration", + "DT_TFPlayerShared.m_iTauntIndex", + "DT_TFPlayerShared.m_iTauntConcept", + "DT_TFPlayerShared.m_nPlayerCondEx", + "DT_TFPlayerShared.m_iStunIndex", + "DT_TFPlayerShared.m_nHalloweenBombHeadStage", + "DT_TFPlayerShared.m_nPlayerCondEx2", + "DT_TFPlayerShared.m_nPlayerCondEx3", + "DT_TFPlayerShared.m_unTauntSourceItemID_Low", + "DT_TFPlayerShared.m_unTauntSourceItemID_High", "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_TFLocalPlayerExclusive.\"player_object_array\"", "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_TFLocalPlayerExclusive.m_bIsCoaching", + "DT_TFLocalPlayerExclusive.m_hCoach", + "DT_TFLocalPlayerExclusive.m_hStudent", + "DT_TFLocalPlayerExclusive.m_nCurrency", + "DT_TFLocalPlayerExclusive.m_nExperienceLevel", + "DT_TFLocalPlayerExclusive.m_nExperienceLevelProgress", "DT_PredictableId.m_PredictableID", "DT_PredictableId.m_bIsPlayerSimulated", "m_nModelIndexOverrides.000", "m_nModelIndexOverrides.001", + "DT_AttributeManager.m_hOuter", + "DT_AttributeManager.m_ProviderType", + "DT_AttributeManager.m_iReapplyProvisionParity", + "DT_TFSendHealersDataTable.m_nActiveWpnClip", "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", "DT_BaseEntity.m_nRenderMode", "DT_BaseEntity.m_fEffects", @@ -26834,11 +18688,8 @@ "DT_BaseAnimating.m_nForceBone", "DT_BaseAnimating.m_vecForce", "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", "DT_BaseAnimating.m_nHitboxSet", "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", "DT_BaseAnimating.m_bClientSideAnimation", "DT_BaseAnimating.m_bClientSideFrameReset", "DT_BaseAnimating.m_nNewSequenceParity", @@ -26849,421 +18700,1380 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", - "DT_TFProjectile_Pipebomb.m_bTouched", - "DT_TFProjectile_Pipebomb.m_iType", - "DT_TFProjectile_Pipebomb.m_hLauncher", - "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" - ], - "DT_TFPumpkinBomb": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_BasePlayer.m_hVehicle", + "DT_BasePlayer.m_hUseEntity", "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", + "DT_BasePlayer.m_lifeState", + "DT_BasePlayer.m_iBonusProgress", + "DT_BasePlayer.m_iBonusChallenge", + "DT_BasePlayer.m_flMaxspeed", "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" + "DT_BasePlayer.m_iObserverMode", + "DT_BasePlayer.m_hObserverTarget", + "DT_BasePlayer.m_iFOV", + "DT_BasePlayer.m_iFOVStart", + "DT_BasePlayer.m_flFOVTime", + "DT_BasePlayer.m_iDefaultFOV", + "DT_BasePlayer.m_hZoomOwner", + "DT_BasePlayer.m_hViewModel", + "DT_BasePlayer.m_szLastPlaceName", + "DT_TFPlayer.m_bSaveMeParity", + "DT_TFPlayer.m_bIsMiniBoss", + "DT_TFPlayer.m_bIsABot", + "DT_TFPlayer.m_nBotSkill", + "DT_TFPlayer.m_nWaterLevel", + "DT_TFPlayer.m_hRagdoll", + "DT_TFPlayer.m_hItem", + "DT_TFPlayer.m_bAllowMoveDuringTaunt", + "DT_TFPlayer.m_bIsReadyToHighFive", + "DT_TFPlayer.m_hHighFivePartner", + "DT_TFPlayer.m_nForceTauntCam", + "DT_TFPlayer.m_flTauntYaw", + "DT_TFPlayer.m_nActiveTauntSlot", + "DT_TFPlayer.m_iTauntItemDefIndex", + "DT_TFPlayer.m_flCurrentTauntMoveSpeed", + "DT_TFPlayer.m_flVehicleReverseTime", + "DT_TFPlayer.m_flLastDamageTime", + "DT_TFPlayer.m_bInPowerPlay", + "DT_TFPlayer.m_iSpawnCounter", + "DT_TFPlayer.m_bArenaSpectator", + "DT_TFPlayer.m_flHeadScale", + "DT_TFPlayer.m_flTorsoScale", + "DT_TFPlayer.m_flHandScale", + "DT_TFPlayer.m_bUseBossHealthBar", + "DT_TFPlayer.m_bUsingVRHeadset", + "DT_TFPlayer.m_bForcedSkin", + "DT_TFPlayer.m_nForcedSkin", + "DT_TFPlayer.m_flKartNextAvailableBoost", + "DT_TFPlayer.m_iKartHealth", + "DT_TFPlayer.m_iKartState", + "DT_TFPlayer.m_hGrapplingHookTarget", + "DT_TFPlayer.m_hSecondaryLastWeapon" + ], + "DT_TFPlayerClassShared": [ + "DT_TFPlayerClassShared.m_iClass", + "DT_TFPlayerClassShared.m_iszClassIcon", + "DT_TFPlayerClassShared.m_iszCustomModel", + "DT_TFPlayerClassShared.m_vecCustomModelOffset", + "DT_TFPlayerClassShared.m_angCustomModelRotation", + "DT_TFPlayerClassShared.m_bCustomModelRotates", + "DT_TFPlayerClassShared.m_bCustomModelRotationSet", + "DT_TFPlayerClassShared.m_bCustomModelVisibleToSelf", + "DT_TFPlayerClassShared.m_bUseClassAnimations", + "DT_TFPlayerClassShared.m_iClassModelParity" + ], + "DT_TFPlayerConditionListExclusive": [ + "DT_TFPlayerConditionListExclusive._condition_bits" + ], + "DT_TFPlayerResource": [ + "m_iPing.000", + "m_iPing.001", + "m_iPing.002", + "m_iPing.003", + "m_iPing.004", + "m_iPing.005", + "m_iPing.006", + "m_iPing.007", + "m_iPing.008", + "m_iPing.009", + "m_iPing.010", + "m_iPing.011", + "m_iPing.012", + "m_iPing.013", + "m_iPing.014", + "m_iPing.015", + "m_iPing.016", + "m_iPing.017", + "m_iPing.018", + "m_iPing.019", + "m_iPing.020", + "m_iPing.021", + "m_iPing.022", + "m_iPing.023", + "m_iPing.024", + "m_iPing.025", + "m_iPing.026", + "m_iPing.027", + "m_iPing.028", + "m_iPing.029", + "m_iPing.030", + "m_iPing.031", + "m_iPing.032", + "m_iPing.033", + "m_iScore.000", + "m_iScore.001", + "m_iScore.002", + "m_iScore.003", + "m_iScore.004", + "m_iScore.005", + "m_iScore.006", + "m_iScore.007", + "m_iScore.008", + "m_iScore.009", + "m_iScore.010", + "m_iScore.011", + "m_iScore.012", + "m_iScore.013", + "m_iScore.014", + "m_iScore.015", + "m_iScore.016", + "m_iScore.017", + "m_iScore.018", + "m_iScore.019", + "m_iScore.020", + "m_iScore.021", + "m_iScore.022", + "m_iScore.023", + "m_iScore.024", + "m_iScore.025", + "m_iScore.026", + "m_iScore.027", + "m_iScore.028", + "m_iScore.029", + "m_iScore.030", + "m_iScore.031", + "m_iScore.032", + "m_iScore.033", + "m_iDeaths.000", + "m_iDeaths.001", + "m_iDeaths.002", + "m_iDeaths.003", + "m_iDeaths.004", + "m_iDeaths.005", + "m_iDeaths.006", + "m_iDeaths.007", + "m_iDeaths.008", + "m_iDeaths.009", + "m_iDeaths.010", + "m_iDeaths.011", + "m_iDeaths.012", + "m_iDeaths.013", + "m_iDeaths.014", + "m_iDeaths.015", + "m_iDeaths.016", + "m_iDeaths.017", + "m_iDeaths.018", + "m_iDeaths.019", + "m_iDeaths.020", + "m_iDeaths.021", + "m_iDeaths.022", + "m_iDeaths.023", + "m_iDeaths.024", + "m_iDeaths.025", + "m_iDeaths.026", + "m_iDeaths.027", + "m_iDeaths.028", + "m_iDeaths.029", + "m_iDeaths.030", + "m_iDeaths.031", + "m_iDeaths.032", + "m_iDeaths.033", + "m_bConnected.000", + "m_bConnected.001", + "m_bConnected.002", + "m_bConnected.003", + "m_bConnected.004", + "m_bConnected.005", + "m_bConnected.006", + "m_bConnected.007", + "m_bConnected.008", + "m_bConnected.009", + "m_bConnected.010", + "m_bConnected.011", + "m_bConnected.012", + "m_bConnected.013", + "m_bConnected.014", + "m_bConnected.015", + "m_bConnected.016", + "m_bConnected.017", + "m_bConnected.018", + "m_bConnected.019", + "m_bConnected.020", + "m_bConnected.021", + "m_bConnected.022", + "m_bConnected.023", + "m_bConnected.024", + "m_bConnected.025", + "m_bConnected.026", + "m_bConnected.027", + "m_bConnected.028", + "m_bConnected.029", + "m_bConnected.030", + "m_bConnected.031", + "m_bConnected.032", + "m_bConnected.033", + "m_iTeam.000", + "m_iTeam.001", + "m_iTeam.002", + "m_iTeam.003", + "m_iTeam.004", + "m_iTeam.005", + "m_iTeam.006", + "m_iTeam.007", + "m_iTeam.008", + "m_iTeam.009", + "m_iTeam.010", + "m_iTeam.011", + "m_iTeam.012", + "m_iTeam.013", + "m_iTeam.014", + "m_iTeam.015", + "m_iTeam.016", + "m_iTeam.017", + "m_iTeam.018", + "m_iTeam.019", + "m_iTeam.020", + "m_iTeam.021", + "m_iTeam.022", + "m_iTeam.023", + "m_iTeam.024", + "m_iTeam.025", + "m_iTeam.026", + "m_iTeam.027", + "m_iTeam.028", + "m_iTeam.029", + "m_iTeam.030", + "m_iTeam.031", + "m_iTeam.032", + "m_iTeam.033", + "m_bAlive.000", + "m_bAlive.001", + "m_bAlive.002", + "m_bAlive.003", + "m_bAlive.004", + "m_bAlive.005", + "m_bAlive.006", + "m_bAlive.007", + "m_bAlive.008", + "m_bAlive.009", + "m_bAlive.010", + "m_bAlive.011", + "m_bAlive.012", + "m_bAlive.013", + "m_bAlive.014", + "m_bAlive.015", + "m_bAlive.016", + "m_bAlive.017", + "m_bAlive.018", + "m_bAlive.019", + "m_bAlive.020", + "m_bAlive.021", + "m_bAlive.022", + "m_bAlive.023", + "m_bAlive.024", + "m_bAlive.025", + "m_bAlive.026", + "m_bAlive.027", + "m_bAlive.028", + "m_bAlive.029", + "m_bAlive.030", + "m_bAlive.031", + "m_bAlive.032", + "m_bAlive.033", + "m_iHealth.000", + "m_iHealth.001", + "m_iHealth.002", + "m_iHealth.003", + "m_iHealth.004", + "m_iHealth.005", + "m_iHealth.006", + "m_iHealth.007", + "m_iHealth.008", + "m_iHealth.009", + "m_iHealth.010", + "m_iHealth.011", + "m_iHealth.012", + "m_iHealth.013", + "m_iHealth.014", + "m_iHealth.015", + "m_iHealth.016", + "m_iHealth.017", + "m_iHealth.018", + "m_iHealth.019", + "m_iHealth.020", + "m_iHealth.021", + "m_iHealth.022", + "m_iHealth.023", + "m_iHealth.024", + "m_iHealth.025", + "m_iHealth.026", + "m_iHealth.027", + "m_iHealth.028", + "m_iHealth.029", + "m_iHealth.030", + "m_iHealth.031", + "m_iHealth.032", + "m_iHealth.033", + "m_iTotalScore.000", + "m_iTotalScore.001", + "m_iTotalScore.002", + "m_iTotalScore.003", + "m_iTotalScore.004", + "m_iTotalScore.005", + "m_iTotalScore.006", + "m_iTotalScore.007", + "m_iTotalScore.008", + "m_iTotalScore.009", + "m_iTotalScore.010", + "m_iTotalScore.011", + "m_iTotalScore.012", + "m_iTotalScore.013", + "m_iTotalScore.014", + "m_iTotalScore.015", + "m_iTotalScore.016", + "m_iTotalScore.017", + "m_iTotalScore.018", + "m_iTotalScore.019", + "m_iTotalScore.020", + "m_iTotalScore.021", + "m_iTotalScore.022", + "m_iTotalScore.023", + "m_iTotalScore.024", + "m_iTotalScore.025", + "m_iTotalScore.026", + "m_iTotalScore.027", + "m_iTotalScore.028", + "m_iTotalScore.029", + "m_iTotalScore.030", + "m_iTotalScore.031", + "m_iTotalScore.032", + "m_iTotalScore.033", + "m_iMaxHealth.000", + "m_iMaxHealth.001", + "m_iMaxHealth.002", + "m_iMaxHealth.003", + "m_iMaxHealth.004", + "m_iMaxHealth.005", + "m_iMaxHealth.006", + "m_iMaxHealth.007", + "m_iMaxHealth.008", + "m_iMaxHealth.009", + "m_iMaxHealth.010", + "m_iMaxHealth.011", + "m_iMaxHealth.012", + "m_iMaxHealth.013", + "m_iMaxHealth.014", + "m_iMaxHealth.015", + "m_iMaxHealth.016", + "m_iMaxHealth.017", + "m_iMaxHealth.018", + "m_iMaxHealth.019", + "m_iMaxHealth.020", + "m_iMaxHealth.021", + "m_iMaxHealth.022", + "m_iMaxHealth.023", + "m_iMaxHealth.024", + "m_iMaxHealth.025", + "m_iMaxHealth.026", + "m_iMaxHealth.027", + "m_iMaxHealth.028", + "m_iMaxHealth.029", + "m_iMaxHealth.030", + "m_iMaxHealth.031", + "m_iMaxHealth.032", + "m_iMaxHealth.033", + "m_iMaxBuffedHealth.000", + "m_iMaxBuffedHealth.001", + "m_iMaxBuffedHealth.002", + "m_iMaxBuffedHealth.003", + "m_iMaxBuffedHealth.004", + "m_iMaxBuffedHealth.005", + "m_iMaxBuffedHealth.006", + "m_iMaxBuffedHealth.007", + "m_iMaxBuffedHealth.008", + "m_iMaxBuffedHealth.009", + "m_iMaxBuffedHealth.010", + "m_iMaxBuffedHealth.011", + "m_iMaxBuffedHealth.012", + "m_iMaxBuffedHealth.013", + "m_iMaxBuffedHealth.014", + "m_iMaxBuffedHealth.015", + "m_iMaxBuffedHealth.016", + "m_iMaxBuffedHealth.017", + "m_iMaxBuffedHealth.018", + "m_iMaxBuffedHealth.019", + "m_iMaxBuffedHealth.020", + "m_iMaxBuffedHealth.021", + "m_iMaxBuffedHealth.022", + "m_iMaxBuffedHealth.023", + "m_iMaxBuffedHealth.024", + "m_iMaxBuffedHealth.025", + "m_iMaxBuffedHealth.026", + "m_iMaxBuffedHealth.027", + "m_iMaxBuffedHealth.028", + "m_iMaxBuffedHealth.029", + "m_iMaxBuffedHealth.030", + "m_iMaxBuffedHealth.031", + "m_iMaxBuffedHealth.032", + "m_iMaxBuffedHealth.033", + "m_iPlayerClass.000", + "m_iPlayerClass.001", + "m_iPlayerClass.002", + "m_iPlayerClass.003", + "m_iPlayerClass.004", + "m_iPlayerClass.005", + "m_iPlayerClass.006", + "m_iPlayerClass.007", + "m_iPlayerClass.008", + "m_iPlayerClass.009", + "m_iPlayerClass.010", + "m_iPlayerClass.011", + "m_iPlayerClass.012", + "m_iPlayerClass.013", + "m_iPlayerClass.014", + "m_iPlayerClass.015", + "m_iPlayerClass.016", + "m_iPlayerClass.017", + "m_iPlayerClass.018", + "m_iPlayerClass.019", + "m_iPlayerClass.020", + "m_iPlayerClass.021", + "m_iPlayerClass.022", + "m_iPlayerClass.023", + "m_iPlayerClass.024", + "m_iPlayerClass.025", + "m_iPlayerClass.026", + "m_iPlayerClass.027", + "m_iPlayerClass.028", + "m_iPlayerClass.029", + "m_iPlayerClass.030", + "m_iPlayerClass.031", + "m_iPlayerClass.032", + "m_iPlayerClass.033", + "m_bArenaSpectator.000", + "m_bArenaSpectator.001", + "m_bArenaSpectator.002", + "m_bArenaSpectator.003", + "m_bArenaSpectator.004", + "m_bArenaSpectator.005", + "m_bArenaSpectator.006", + "m_bArenaSpectator.007", + "m_bArenaSpectator.008", + "m_bArenaSpectator.009", + "m_bArenaSpectator.010", + "m_bArenaSpectator.011", + "m_bArenaSpectator.012", + "m_bArenaSpectator.013", + "m_bArenaSpectator.014", + "m_bArenaSpectator.015", + "m_bArenaSpectator.016", + "m_bArenaSpectator.017", + "m_bArenaSpectator.018", + "m_bArenaSpectator.019", + "m_bArenaSpectator.020", + "m_bArenaSpectator.021", + "m_bArenaSpectator.022", + "m_bArenaSpectator.023", + "m_bArenaSpectator.024", + "m_bArenaSpectator.025", + "m_bArenaSpectator.026", + "m_bArenaSpectator.027", + "m_bArenaSpectator.028", + "m_bArenaSpectator.029", + "m_bArenaSpectator.030", + "m_bArenaSpectator.031", + "m_bArenaSpectator.032", + "m_bArenaSpectator.033", + "m_iActiveDominations.000", + "m_iActiveDominations.001", + "m_iActiveDominations.002", + "m_iActiveDominations.003", + "m_iActiveDominations.004", + "m_iActiveDominations.005", + "m_iActiveDominations.006", + "m_iActiveDominations.007", + "m_iActiveDominations.008", + "m_iActiveDominations.009", + "m_iActiveDominations.010", + "m_iActiveDominations.011", + "m_iActiveDominations.012", + "m_iActiveDominations.013", + "m_iActiveDominations.014", + "m_iActiveDominations.015", + "m_iActiveDominations.016", + "m_iActiveDominations.017", + "m_iActiveDominations.018", + "m_iActiveDominations.019", + "m_iActiveDominations.020", + "m_iActiveDominations.021", + "m_iActiveDominations.022", + "m_iActiveDominations.023", + "m_iActiveDominations.024", + "m_iActiveDominations.025", + "m_iActiveDominations.026", + "m_iActiveDominations.027", + "m_iActiveDominations.028", + "m_iActiveDominations.029", + "m_iActiveDominations.030", + "m_iActiveDominations.031", + "m_iActiveDominations.032", + "m_iActiveDominations.033", + "m_flNextRespawnTime.000", + "m_flNextRespawnTime.001", + "m_flNextRespawnTime.002", + "m_flNextRespawnTime.003", + "m_flNextRespawnTime.004", + "m_flNextRespawnTime.005", + "m_flNextRespawnTime.006", + "m_flNextRespawnTime.007", + "m_flNextRespawnTime.008", + "m_flNextRespawnTime.009", + "m_flNextRespawnTime.010", + "m_flNextRespawnTime.011", + "m_flNextRespawnTime.012", + "m_flNextRespawnTime.013", + "m_flNextRespawnTime.014", + "m_flNextRespawnTime.015", + "m_flNextRespawnTime.016", + "m_flNextRespawnTime.017", + "m_flNextRespawnTime.018", + "m_flNextRespawnTime.019", + "m_flNextRespawnTime.020", + "m_flNextRespawnTime.021", + "m_flNextRespawnTime.022", + "m_flNextRespawnTime.023", + "m_flNextRespawnTime.024", + "m_flNextRespawnTime.025", + "m_flNextRespawnTime.026", + "m_flNextRespawnTime.027", + "m_flNextRespawnTime.028", + "m_flNextRespawnTime.029", + "m_flNextRespawnTime.030", + "m_flNextRespawnTime.031", + "m_flNextRespawnTime.032", + "m_flNextRespawnTime.033", + "m_iChargeLevel.000", + "m_iChargeLevel.001", + "m_iChargeLevel.002", + "m_iChargeLevel.003", + "m_iChargeLevel.004", + "m_iChargeLevel.005", + "m_iChargeLevel.006", + "m_iChargeLevel.007", + "m_iChargeLevel.008", + "m_iChargeLevel.009", + "m_iChargeLevel.010", + "m_iChargeLevel.011", + "m_iChargeLevel.012", + "m_iChargeLevel.013", + "m_iChargeLevel.014", + "m_iChargeLevel.015", + "m_iChargeLevel.016", + "m_iChargeLevel.017", + "m_iChargeLevel.018", + "m_iChargeLevel.019", + "m_iChargeLevel.020", + "m_iChargeLevel.021", + "m_iChargeLevel.022", + "m_iChargeLevel.023", + "m_iChargeLevel.024", + "m_iChargeLevel.025", + "m_iChargeLevel.026", + "m_iChargeLevel.027", + "m_iChargeLevel.028", + "m_iChargeLevel.029", + "m_iChargeLevel.030", + "m_iChargeLevel.031", + "m_iChargeLevel.032", + "m_iChargeLevel.033", + "m_iDamage.000", + "m_iDamage.001", + "m_iDamage.002", + "m_iDamage.003", + "m_iDamage.004", + "m_iDamage.005", + "m_iDamage.006", + "m_iDamage.007", + "m_iDamage.008", + "m_iDamage.009", + "m_iDamage.010", + "m_iDamage.011", + "m_iDamage.012", + "m_iDamage.013", + "m_iDamage.014", + "m_iDamage.015", + "m_iDamage.016", + "m_iDamage.017", + "m_iDamage.018", + "m_iDamage.019", + "m_iDamage.020", + "m_iDamage.021", + "m_iDamage.022", + "m_iDamage.023", + "m_iDamage.024", + "m_iDamage.025", + "m_iDamage.026", + "m_iDamage.027", + "m_iDamage.028", + "m_iDamage.029", + "m_iDamage.030", + "m_iDamage.031", + "m_iDamage.032", + "m_iDamage.033", + "m_iDamageAssist.000", + "m_iDamageAssist.001", + "m_iDamageAssist.002", + "m_iDamageAssist.003", + "m_iDamageAssist.004", + "m_iDamageAssist.005", + "m_iDamageAssist.006", + "m_iDamageAssist.007", + "m_iDamageAssist.008", + "m_iDamageAssist.009", + "m_iDamageAssist.010", + "m_iDamageAssist.011", + "m_iDamageAssist.012", + "m_iDamageAssist.013", + "m_iDamageAssist.014", + "m_iDamageAssist.015", + "m_iDamageAssist.016", + "m_iDamageAssist.017", + "m_iDamageAssist.018", + "m_iDamageAssist.019", + "m_iDamageAssist.020", + "m_iDamageAssist.021", + "m_iDamageAssist.022", + "m_iDamageAssist.023", + "m_iDamageAssist.024", + "m_iDamageAssist.025", + "m_iDamageAssist.026", + "m_iDamageAssist.027", + "m_iDamageAssist.028", + "m_iDamageAssist.029", + "m_iDamageAssist.030", + "m_iDamageAssist.031", + "m_iDamageAssist.032", + "m_iDamageAssist.033", + "m_iDamageBoss.000", + "m_iDamageBoss.001", + "m_iDamageBoss.002", + "m_iDamageBoss.003", + "m_iDamageBoss.004", + "m_iDamageBoss.005", + "m_iDamageBoss.006", + "m_iDamageBoss.007", + "m_iDamageBoss.008", + "m_iDamageBoss.009", + "m_iDamageBoss.010", + "m_iDamageBoss.011", + "m_iDamageBoss.012", + "m_iDamageBoss.013", + "m_iDamageBoss.014", + "m_iDamageBoss.015", + "m_iDamageBoss.016", + "m_iDamageBoss.017", + "m_iDamageBoss.018", + "m_iDamageBoss.019", + "m_iDamageBoss.020", + "m_iDamageBoss.021", + "m_iDamageBoss.022", + "m_iDamageBoss.023", + "m_iDamageBoss.024", + "m_iDamageBoss.025", + "m_iDamageBoss.026", + "m_iDamageBoss.027", + "m_iDamageBoss.028", + "m_iDamageBoss.029", + "m_iDamageBoss.030", + "m_iDamageBoss.031", + "m_iDamageBoss.032", + "m_iDamageBoss.033", + "m_iHealing.000", + "m_iHealing.001", + "m_iHealing.002", + "m_iHealing.003", + "m_iHealing.004", + "m_iHealing.005", + "m_iHealing.006", + "m_iHealing.007", + "m_iHealing.008", + "m_iHealing.009", + "m_iHealing.010", + "m_iHealing.011", + "m_iHealing.012", + "m_iHealing.013", + "m_iHealing.014", + "m_iHealing.015", + "m_iHealing.016", + "m_iHealing.017", + "m_iHealing.018", + "m_iHealing.019", + "m_iHealing.020", + "m_iHealing.021", + "m_iHealing.022", + "m_iHealing.023", + "m_iHealing.024", + "m_iHealing.025", + "m_iHealing.026", + "m_iHealing.027", + "m_iHealing.028", + "m_iHealing.029", + "m_iHealing.030", + "m_iHealing.031", + "m_iHealing.032", + "m_iHealing.033", + "m_iHealingAssist.000", + "m_iHealingAssist.001", + "m_iHealingAssist.002", + "m_iHealingAssist.003", + "m_iHealingAssist.004", + "m_iHealingAssist.005", + "m_iHealingAssist.006", + "m_iHealingAssist.007", + "m_iHealingAssist.008", + "m_iHealingAssist.009", + "m_iHealingAssist.010", + "m_iHealingAssist.011", + "m_iHealingAssist.012", + "m_iHealingAssist.013", + "m_iHealingAssist.014", + "m_iHealingAssist.015", + "m_iHealingAssist.016", + "m_iHealingAssist.017", + "m_iHealingAssist.018", + "m_iHealingAssist.019", + "m_iHealingAssist.020", + "m_iHealingAssist.021", + "m_iHealingAssist.022", + "m_iHealingAssist.023", + "m_iHealingAssist.024", + "m_iHealingAssist.025", + "m_iHealingAssist.026", + "m_iHealingAssist.027", + "m_iHealingAssist.028", + "m_iHealingAssist.029", + "m_iHealingAssist.030", + "m_iHealingAssist.031", + "m_iHealingAssist.032", + "m_iHealingAssist.033", + "m_iDamageBlocked.000", + "m_iDamageBlocked.001", + "m_iDamageBlocked.002", + "m_iDamageBlocked.003", + "m_iDamageBlocked.004", + "m_iDamageBlocked.005", + "m_iDamageBlocked.006", + "m_iDamageBlocked.007", + "m_iDamageBlocked.008", + "m_iDamageBlocked.009", + "m_iDamageBlocked.010", + "m_iDamageBlocked.011", + "m_iDamageBlocked.012", + "m_iDamageBlocked.013", + "m_iDamageBlocked.014", + "m_iDamageBlocked.015", + "m_iDamageBlocked.016", + "m_iDamageBlocked.017", + "m_iDamageBlocked.018", + "m_iDamageBlocked.019", + "m_iDamageBlocked.020", + "m_iDamageBlocked.021", + "m_iDamageBlocked.022", + "m_iDamageBlocked.023", + "m_iDamageBlocked.024", + "m_iDamageBlocked.025", + "m_iDamageBlocked.026", + "m_iDamageBlocked.027", + "m_iDamageBlocked.028", + "m_iDamageBlocked.029", + "m_iDamageBlocked.030", + "m_iDamageBlocked.031", + "m_iDamageBlocked.032", + "m_iDamageBlocked.033", + "m_iCurrencyCollected.000", + "m_iCurrencyCollected.001", + "m_iCurrencyCollected.002", + "m_iCurrencyCollected.003", + "m_iCurrencyCollected.004", + "m_iCurrencyCollected.005", + "m_iCurrencyCollected.006", + "m_iCurrencyCollected.007", + "m_iCurrencyCollected.008", + "m_iCurrencyCollected.009", + "m_iCurrencyCollected.010", + "m_iCurrencyCollected.011", + "m_iCurrencyCollected.012", + "m_iCurrencyCollected.013", + "m_iCurrencyCollected.014", + "m_iCurrencyCollected.015", + "m_iCurrencyCollected.016", + "m_iCurrencyCollected.017", + "m_iCurrencyCollected.018", + "m_iCurrencyCollected.019", + "m_iCurrencyCollected.020", + "m_iCurrencyCollected.021", + "m_iCurrencyCollected.022", + "m_iCurrencyCollected.023", + "m_iCurrencyCollected.024", + "m_iCurrencyCollected.025", + "m_iCurrencyCollected.026", + "m_iCurrencyCollected.027", + "m_iCurrencyCollected.028", + "m_iCurrencyCollected.029", + "m_iCurrencyCollected.030", + "m_iCurrencyCollected.031", + "m_iCurrencyCollected.032", + "m_iCurrencyCollected.033", + "m_iBonusPoints.000", + "m_iBonusPoints.001", + "m_iBonusPoints.002", + "m_iBonusPoints.003", + "m_iBonusPoints.004", + "m_iBonusPoints.005", + "m_iBonusPoints.006", + "m_iBonusPoints.007", + "m_iBonusPoints.008", + "m_iBonusPoints.009", + "m_iBonusPoints.010", + "m_iBonusPoints.011", + "m_iBonusPoints.012", + "m_iBonusPoints.013", + "m_iBonusPoints.014", + "m_iBonusPoints.015", + "m_iBonusPoints.016", + "m_iBonusPoints.017", + "m_iBonusPoints.018", + "m_iBonusPoints.019", + "m_iBonusPoints.020", + "m_iBonusPoints.021", + "m_iBonusPoints.022", + "m_iBonusPoints.023", + "m_iBonusPoints.024", + "m_iBonusPoints.025", + "m_iBonusPoints.026", + "m_iBonusPoints.027", + "m_iBonusPoints.028", + "m_iBonusPoints.029", + "m_iBonusPoints.030", + "m_iBonusPoints.031", + "m_iBonusPoints.032", + "m_iBonusPoints.033", + "m_iPlayerLevel.000", + "m_iPlayerLevel.001", + "m_iPlayerLevel.002", + "m_iPlayerLevel.003", + "m_iPlayerLevel.004", + "m_iPlayerLevel.005", + "m_iPlayerLevel.006", + "m_iPlayerLevel.007", + "m_iPlayerLevel.008", + "m_iPlayerLevel.009", + "m_iPlayerLevel.010", + "m_iPlayerLevel.011", + "m_iPlayerLevel.012", + "m_iPlayerLevel.013", + "m_iPlayerLevel.014", + "m_iPlayerLevel.015", + "m_iPlayerLevel.016", + "m_iPlayerLevel.017", + "m_iPlayerLevel.018", + "m_iPlayerLevel.019", + "m_iPlayerLevel.020", + "m_iPlayerLevel.021", + "m_iPlayerLevel.022", + "m_iPlayerLevel.023", + "m_iPlayerLevel.024", + "m_iPlayerLevel.025", + "m_iPlayerLevel.026", + "m_iPlayerLevel.027", + "m_iPlayerLevel.028", + "m_iPlayerLevel.029", + "m_iPlayerLevel.030", + "m_iPlayerLevel.031", + "m_iPlayerLevel.032", + "m_iPlayerLevel.033", + "m_iStreaks.000", + "m_iStreaks.001", + "m_iStreaks.002", + "m_iStreaks.003", + "m_iStreaks.004", + "m_iStreaks.005", + "m_iStreaks.006", + "m_iStreaks.007", + "m_iStreaks.008", + "m_iStreaks.009", + "m_iStreaks.010", + "m_iStreaks.011", + "m_iStreaks.012", + "m_iStreaks.013", + "m_iStreaks.014", + "m_iStreaks.015", + "m_iStreaks.016", + "m_iStreaks.017", + "m_iStreaks.018", + "m_iStreaks.019", + "m_iStreaks.020", + "m_iStreaks.021", + "m_iStreaks.022", + "m_iStreaks.023", + "m_iStreaks.024", + "m_iStreaks.025", + "m_iStreaks.026", + "m_iStreaks.027", + "m_iStreaks.028", + "m_iStreaks.029", + "m_iStreaks.030", + "m_iStreaks.031", + "m_iStreaks.032", + "m_iStreaks.033", + "m_iStreaks.034", + "m_iStreaks.035", + "m_iStreaks.036", + "m_iStreaks.037", + "m_iStreaks.038", + "m_iStreaks.039", + "m_iStreaks.040", + "m_iStreaks.041", + "m_iStreaks.042", + "m_iStreaks.043", + "m_iStreaks.044", + "m_iStreaks.045", + "m_iStreaks.046", + "m_iStreaks.047", + "m_iStreaks.048", + "m_iStreaks.049", + "m_iStreaks.050", + "m_iStreaks.051", + "m_iStreaks.052", + "m_iStreaks.053", + "m_iStreaks.054", + "m_iStreaks.055", + "m_iStreaks.056", + "m_iStreaks.057", + "m_iStreaks.058", + "m_iStreaks.059", + "m_iStreaks.060", + "m_iStreaks.061", + "m_iStreaks.062", + "m_iStreaks.063", + "m_iStreaks.064", + "m_iStreaks.065", + "m_iStreaks.066", + "m_iStreaks.067", + "m_iStreaks.068", + "m_iStreaks.069", + "m_iStreaks.070", + "m_iStreaks.071", + "m_iStreaks.072", + "m_iStreaks.073", + "m_iStreaks.074", + "m_iStreaks.075", + "m_iStreaks.076", + "m_iStreaks.077", + "m_iStreaks.078", + "m_iStreaks.079", + "m_iStreaks.080", + "m_iStreaks.081", + "m_iStreaks.082", + "m_iStreaks.083", + "m_iStreaks.084", + "m_iStreaks.085", + "m_iStreaks.086", + "m_iStreaks.087", + "m_iStreaks.088", + "m_iStreaks.089", + "m_iStreaks.090", + "m_iStreaks.091", + "m_iStreaks.092", + "m_iStreaks.093", + "m_iStreaks.094", + "m_iStreaks.095", + "m_iStreaks.096", + "m_iStreaks.097", + "m_iStreaks.098", + "m_iStreaks.099", + "m_iStreaks.100", + "m_iStreaks.101", + "m_iStreaks.102", + "m_iStreaks.103", + "m_iStreaks.104", + "m_iStreaks.105", + "m_iStreaks.106", + "m_iStreaks.107", + "m_iStreaks.108", + "m_iStreaks.109", + "m_iStreaks.110", + "m_iStreaks.111", + "m_iStreaks.112", + "m_iStreaks.113", + "m_iStreaks.114", + "m_iStreaks.115", + "m_iStreaks.116", + "m_iStreaks.117", + "m_iStreaks.118", + "m_iStreaks.119", + "m_iStreaks.120", + "m_iStreaks.121", + "m_iStreaks.122", + "m_iStreaks.123", + "m_iStreaks.124", + "m_iStreaks.125", + "m_iStreaks.126", + "m_iStreaks.127", + "m_iStreaks.128", + "m_iStreaks.129", + "m_iStreaks.130", + "m_iStreaks.131", + "m_iStreaks.132", + "m_iStreaks.133", + "m_iStreaks.134", + "m_iStreaks.135", + "m_iUpgradeRefundCredits.000", + "m_iUpgradeRefundCredits.001", + "m_iUpgradeRefundCredits.002", + "m_iUpgradeRefundCredits.003", + "m_iUpgradeRefundCredits.004", + "m_iUpgradeRefundCredits.005", + "m_iUpgradeRefundCredits.006", + "m_iUpgradeRefundCredits.007", + "m_iUpgradeRefundCredits.008", + "m_iUpgradeRefundCredits.009", + "m_iUpgradeRefundCredits.010", + "m_iUpgradeRefundCredits.011", + "m_iUpgradeRefundCredits.012", + "m_iUpgradeRefundCredits.013", + "m_iUpgradeRefundCredits.014", + "m_iUpgradeRefundCredits.015", + "m_iUpgradeRefundCredits.016", + "m_iUpgradeRefundCredits.017", + "m_iUpgradeRefundCredits.018", + "m_iUpgradeRefundCredits.019", + "m_iUpgradeRefundCredits.020", + "m_iUpgradeRefundCredits.021", + "m_iUpgradeRefundCredits.022", + "m_iUpgradeRefundCredits.023", + "m_iUpgradeRefundCredits.024", + "m_iUpgradeRefundCredits.025", + "m_iUpgradeRefundCredits.026", + "m_iUpgradeRefundCredits.027", + "m_iUpgradeRefundCredits.028", + "m_iUpgradeRefundCredits.029", + "m_iUpgradeRefundCredits.030", + "m_iUpgradeRefundCredits.031", + "m_iUpgradeRefundCredits.032", + "m_iUpgradeRefundCredits.033" ], - "DT_TFRagdoll": [ - "_LPT_m_hRagWearables_8.lengthprop8", - "_ST_m_hRagWearables_8.000", - "_ST_m_hRagWearables_8.001", - "_ST_m_hRagWearables_8.002", - "_ST_m_hRagWearables_8.003", - "_ST_m_hRagWearables_8.004", - "_ST_m_hRagWearables_8.005", - "_ST_m_hRagWearables_8.006", - "_ST_m_hRagWearables_8.007", - "DT_TFRagdoll.m_vecRagdollOrigin", - "DT_TFRagdoll.m_iPlayerIndex", - "DT_TFRagdoll.m_vecForce", - "DT_TFRagdoll.m_vecRagdollVelocity", - "DT_TFRagdoll.m_nForceBone", - "DT_TFRagdoll.m_bGib", - "DT_TFRagdoll.m_bBurning", - "DT_TFRagdoll.m_bElectrocuted", - "DT_TFRagdoll.m_bFeignDeath", - "DT_TFRagdoll.m_bWasDisguised", - "DT_TFRagdoll.m_bBecomeAsh", - "DT_TFRagdoll.m_bOnGround", - "DT_TFRagdoll.m_bCloaked", - "DT_TFRagdoll.m_iDamageCustom", - "DT_TFRagdoll.m_iTeam", - "DT_TFRagdoll.m_iClass", - "DT_TFRagdoll.m_bGoldRagdoll", - "DT_TFRagdoll.m_bIceRagdoll", - "DT_TFRagdoll.m_bCritOnHardHit", - "DT_TFRagdoll.m_flHeadScale", - "DT_TFRagdoll.m_flTorsoScale", - "DT_TFRagdoll.m_flHandScale" + "DT_TFPlayerScoringDataExclusive": [ + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints" ], - "DT_WeaponRaygun": [ - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TFPlayerShared": [ + "m_bPlayerDominated.000", + "m_bPlayerDominated.001", + "m_bPlayerDominated.002", + "m_bPlayerDominated.003", + "m_bPlayerDominated.004", + "m_bPlayerDominated.005", + "m_bPlayerDominated.006", + "m_bPlayerDominated.007", + "m_bPlayerDominated.008", + "m_bPlayerDominated.009", + "m_bPlayerDominated.010", + "m_bPlayerDominated.011", + "m_bPlayerDominated.012", + "m_bPlayerDominated.013", + "m_bPlayerDominated.014", + "m_bPlayerDominated.015", + "m_bPlayerDominated.016", + "m_bPlayerDominated.017", + "m_bPlayerDominated.018", + "m_bPlayerDominated.019", + "m_bPlayerDominated.020", + "m_bPlayerDominated.021", + "m_bPlayerDominated.022", + "m_bPlayerDominated.023", + "m_bPlayerDominated.024", + "m_bPlayerDominated.025", + "m_bPlayerDominated.026", + "m_bPlayerDominated.027", + "m_bPlayerDominated.028", + "m_bPlayerDominated.029", + "m_bPlayerDominated.030", + "m_bPlayerDominated.031", + "m_bPlayerDominated.032", + "m_bPlayerDominated.033", + "m_bPlayerDominatingMe.000", + "m_bPlayerDominatingMe.001", + "m_bPlayerDominatingMe.002", + "m_bPlayerDominatingMe.003", + "m_bPlayerDominatingMe.004", + "m_bPlayerDominatingMe.005", + "m_bPlayerDominatingMe.006", + "m_bPlayerDominatingMe.007", + "m_bPlayerDominatingMe.008", + "m_bPlayerDominatingMe.009", + "m_bPlayerDominatingMe.010", + "m_bPlayerDominatingMe.011", + "m_bPlayerDominatingMe.012", + "m_bPlayerDominatingMe.013", + "m_bPlayerDominatingMe.014", + "m_bPlayerDominatingMe.015", + "m_bPlayerDominatingMe.016", + "m_bPlayerDominatingMe.017", + "m_bPlayerDominatingMe.018", + "m_bPlayerDominatingMe.019", + "m_bPlayerDominatingMe.020", + "m_bPlayerDominatingMe.021", + "m_bPlayerDominatingMe.022", + "m_bPlayerDominatingMe.023", + "m_bPlayerDominatingMe.024", + "m_bPlayerDominatingMe.025", + "m_bPlayerDominatingMe.026", + "m_bPlayerDominatingMe.027", + "m_bPlayerDominatingMe.028", + "m_bPlayerDominatingMe.029", + "m_bPlayerDominatingMe.030", + "m_bPlayerDominatingMe.031", + "m_bPlayerDominatingMe.032", + "m_bPlayerDominatingMe.033", + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints", + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints", + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam", + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass", + "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam", + "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire", + "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime", + "DT_TFPlayerSharedLocal.m_flRageMeter", + "DT_TFPlayerSharedLocal.m_bRageDraining", + "DT_TFPlayerSharedLocal.m_flNextRageEarnTime", + "DT_TFPlayerSharedLocal.m_bInUpgradeZone", + "DT_TFPlayerConditionListExclusive._condition_bits", + "m_nStreaks.000", + "m_nStreaks.001", + "m_nStreaks.002", + "m_nStreaks.003", + "DT_TFPlayerShared.m_nPlayerCond", + "DT_TFPlayerShared.m_bJumping", + "DT_TFPlayerShared.m_nNumHealers", + "DT_TFPlayerShared.m_iCritMult", + "DT_TFPlayerShared.m_iAirDash", + "DT_TFPlayerShared.m_nAirDucked", + "DT_TFPlayerShared.m_flDuckTimer", + "DT_TFPlayerShared.m_nPlayerState", + "DT_TFPlayerShared.m_iDesiredPlayerClass", + "DT_TFPlayerShared.m_flMovementStunTime", + "DT_TFPlayerShared.m_iMovementStunAmount", + "DT_TFPlayerShared.m_iMovementStunParity", + "DT_TFPlayerShared.m_hStunner", + "DT_TFPlayerShared.m_iStunFlags", + "DT_TFPlayerShared.m_nArenaNumChanges", + "DT_TFPlayerShared.m_bArenaFirstBloodBoost", + "DT_TFPlayerShared.m_iWeaponKnockbackID", + "DT_TFPlayerShared.m_bLoadoutUnavailable", + "DT_TFPlayerShared.m_iItemFindBonus", + "DT_TFPlayerShared.m_bShieldEquipped", + "DT_TFPlayerShared.m_iNextMeleeCrit", + "DT_TFPlayerShared.m_iDecapitations", + "DT_TFPlayerShared.m_iRevengeCrits", + "DT_TFPlayerShared.m_iDisguiseBody", + "DT_TFPlayerShared.m_hCarriedObject", + "DT_TFPlayerShared.m_bCarryingObject", + "DT_TFPlayerShared.m_flNextNoiseMakerTime", + "DT_TFPlayerShared.m_iKillCountSinceLastDeploy", + "DT_TFPlayerShared.m_flFirstPrimaryAttack", + "DT_TFPlayerShared.m_flEnergyDrinkMeter", + "DT_TFPlayerShared.m_flHypeMeter", + "DT_TFPlayerShared.m_flChargeMeter", + "DT_TFPlayerShared.m_flInvisChangeCompleteTime", + "DT_TFPlayerShared.m_nDisguiseTeam", + "DT_TFPlayerShared.m_nDisguiseClass", + "DT_TFPlayerShared.m_nMaskClass", + "DT_TFPlayerShared.m_iDisguiseTargetIndex", + "DT_TFPlayerShared.m_iDisguiseHealth", + "DT_TFPlayerShared.m_bFeignDeathReady", + "DT_TFPlayerShared.m_hDisguiseWeapon", + "DT_TFPlayerShared.m_nTeamTeleporterUsed", + "DT_TFPlayerShared.m_flCloakMeter", + "DT_TFPlayerShared.m_flSpyTranqBuffDuration", + "DT_TFPlayerShared.m_iTauntIndex", + "DT_TFPlayerShared.m_iTauntConcept", + "DT_TFPlayerShared.m_nPlayerCondEx", + "DT_TFPlayerShared.m_iStunIndex", + "DT_TFPlayerShared.m_nHalloweenBombHeadStage", + "DT_TFPlayerShared.m_nPlayerCondEx2", + "DT_TFPlayerShared.m_nPlayerCondEx3", + "DT_TFPlayerShared.m_unTauntSourceItemID_Low", + "DT_TFPlayerShared.m_unTauntSourceItemID_High" ], - "DT_TFReviveMarker": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_ServerAnimationData.m_flCycle", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_TFReviveMarker.m_iHealth", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_TFReviveMarker.m_hOwner", - "DT_CollisionProperty.m_nSolidType", - "DT_TFReviveMarker.m_iMaxHealth", - "DT_TFReviveMarker.m_nRevives" + "DT_TFPlayerSharedLocal": [ + "m_bPlayerDominated.000", + "m_bPlayerDominated.001", + "m_bPlayerDominated.002", + "m_bPlayerDominated.003", + "m_bPlayerDominated.004", + "m_bPlayerDominated.005", + "m_bPlayerDominated.006", + "m_bPlayerDominated.007", + "m_bPlayerDominated.008", + "m_bPlayerDominated.009", + "m_bPlayerDominated.010", + "m_bPlayerDominated.011", + "m_bPlayerDominated.012", + "m_bPlayerDominated.013", + "m_bPlayerDominated.014", + "m_bPlayerDominated.015", + "m_bPlayerDominated.016", + "m_bPlayerDominated.017", + "m_bPlayerDominated.018", + "m_bPlayerDominated.019", + "m_bPlayerDominated.020", + "m_bPlayerDominated.021", + "m_bPlayerDominated.022", + "m_bPlayerDominated.023", + "m_bPlayerDominated.024", + "m_bPlayerDominated.025", + "m_bPlayerDominated.026", + "m_bPlayerDominated.027", + "m_bPlayerDominated.028", + "m_bPlayerDominated.029", + "m_bPlayerDominated.030", + "m_bPlayerDominated.031", + "m_bPlayerDominated.032", + "m_bPlayerDominated.033", + "m_bPlayerDominatingMe.000", + "m_bPlayerDominatingMe.001", + "m_bPlayerDominatingMe.002", + "m_bPlayerDominatingMe.003", + "m_bPlayerDominatingMe.004", + "m_bPlayerDominatingMe.005", + "m_bPlayerDominatingMe.006", + "m_bPlayerDominatingMe.007", + "m_bPlayerDominatingMe.008", + "m_bPlayerDominatingMe.009", + "m_bPlayerDominatingMe.010", + "m_bPlayerDominatingMe.011", + "m_bPlayerDominatingMe.012", + "m_bPlayerDominatingMe.013", + "m_bPlayerDominatingMe.014", + "m_bPlayerDominatingMe.015", + "m_bPlayerDominatingMe.016", + "m_bPlayerDominatingMe.017", + "m_bPlayerDominatingMe.018", + "m_bPlayerDominatingMe.019", + "m_bPlayerDominatingMe.020", + "m_bPlayerDominatingMe.021", + "m_bPlayerDominatingMe.022", + "m_bPlayerDominatingMe.023", + "m_bPlayerDominatingMe.024", + "m_bPlayerDominatingMe.025", + "m_bPlayerDominatingMe.026", + "m_bPlayerDominatingMe.027", + "m_bPlayerDominatingMe.028", + "m_bPlayerDominatingMe.029", + "m_bPlayerDominatingMe.030", + "m_bPlayerDominatingMe.031", + "m_bPlayerDominatingMe.032", + "m_bPlayerDominatingMe.033", + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints", + "DT_TFPlayerScoringDataExclusive.m_iCaptures", + "DT_TFPlayerScoringDataExclusive.m_iDefenses", + "DT_TFPlayerScoringDataExclusive.m_iKills", + "DT_TFPlayerScoringDataExclusive.m_iDeaths", + "DT_TFPlayerScoringDataExclusive.m_iSuicides", + "DT_TFPlayerScoringDataExclusive.m_iDominations", + "DT_TFPlayerScoringDataExclusive.m_iRevenge", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", + "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", + "DT_TFPlayerScoringDataExclusive.m_iHeadshots", + "DT_TFPlayerScoringDataExclusive.m_iBackstabs", + "DT_TFPlayerScoringDataExclusive.m_iHealPoints", + "DT_TFPlayerScoringDataExclusive.m_iInvulns", + "DT_TFPlayerScoringDataExclusive.m_iTeleports", + "DT_TFPlayerScoringDataExclusive.m_iDamageDone", + "DT_TFPlayerScoringDataExclusive.m_iCrits", + "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", + "DT_TFPlayerScoringDataExclusive.m_iKillAssists", + "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", + "DT_TFPlayerScoringDataExclusive.m_iPoints", + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam", + "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass", + "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam", + "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire", + "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime", + "DT_TFPlayerSharedLocal.m_flRageMeter", + "DT_TFPlayerSharedLocal.m_bRageDraining", + "DT_TFPlayerSharedLocal.m_flNextRageEarnTime", + "DT_TFPlayerSharedLocal.m_bInUpgradeZone" ], - "DT_WeaponRevolver": [ + "DT_TFPowerupBottle": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -27368,21 +20178,6 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -27424,27 +20219,17 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith", + "DT_TFPowerupBottle.m_bActive", + "DT_TFPowerupBottle.m_usNumCharges" ], - "DT_TFWeaponRobotArm": [ + "DT_TFProjectileBall_Ornament": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -27488,80 +20273,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -27578,7 +20290,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -27601,29 +20312,128 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponRobotArm.m_hRobotArm" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFRobotDestruction_Robot": [ + "DT_TFProjectile_Arrow": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Arrow.m_bArrowAlight", + "DT_TFProjectile_Arrow.m_bCritical", + "DT_TFProjectile_Arrow.m_iProjectileType" + ], + "DT_TFProjectile_Cleaver": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -27667,229 +20477,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -27906,7 +20494,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -27929,45 +20516,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseFlex.m_blinktoggle", - "DT_BaseFlex.m_viewtarget", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_TFRobotDestruction_Robot.m_iHealth", - "DT_TFRobotDestruction_Robot.m_iMaxHealth", - "DT_TFRobotDestruction_Robot.m_eType" - ], - "DT_TFRobotDestruction_RobotGroup": [ - "DT_TFRobotDestruction_RobotGroup.m_pszHudIcon", - "DT_TFRobotDestruction_RobotGroup.m_iTeamNum", - "DT_TFRobotDestruction_RobotGroup.m_nGroupNumber", - "DT_TFRobotDestruction_RobotGroup.m_nState", - "DT_TFRobotDestruction_RobotGroup.m_flRespawnStartTime", - "DT_TFRobotDestruction_RobotGroup.m_flRespawnEndTime", - "DT_TFRobotDestruction_RobotGroup.m_flLastAttackedTime" - ], - "DT_TFRobotDestructionRobotSpawn": [], - "DT_TFRobotDestructionLogic": [ - "m_eWinningMethod.000", - "m_eWinningMethod.001", - "m_eWinningMethod.002", - "m_eWinningMethod.003", - "DT_TFRobotDestructionLogic.m_nMaxPoints", - "DT_TFRobotDestructionLogic.m_nBlueScore", - "DT_TFRobotDestructionLogic.m_nRedScore", - "DT_TFRobotDestructionLogic.m_nBlueTargetPoints", - "DT_TFRobotDestructionLogic.m_nRedTargetPoints", - "DT_TFRobotDestructionLogic.m_flBlueTeamRespawnScale", - "DT_TFRobotDestructionLogic.m_flRedTeamRespawnScale", - "DT_TFRobotDestructionLogic.m_flBlueFinaleEndTime", - "DT_TFRobotDestructionLogic.m_flRedFinaleEndTime", - "DT_TFRobotDestructionLogic.m_flFinaleLength" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_WeaponRocketLauncher": [ + "DT_TFProjectile_EnergyBall": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -28011,80 +20583,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -28101,7 +20600,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -28124,27 +20622,22 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_EnergyBall.m_bChargedShot", + "DT_TFProjectile_EnergyBall.m_vColor1", + "DT_TFProjectile_EnergyBall.m_vColor2" ], - "DT_WeaponRocketLauncher_AirStrike": [ + "DT_TFProjectile_Flare": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -28188,80 +20681,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -28278,7 +20698,102 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Flare.m_bCritical" + ], + "DT_TFProjectile_GrapplingHook": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -28301,27 +20816,120 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Arrow.m_bArrowAlight", + "DT_TFProjectile_Arrow.m_bCritical", + "DT_TFProjectile_Arrow.m_iProjectileType" ], - "DT_WeaponRocketLauncher_DirectHit": [ + "DT_TFProjectile_HealingBolt": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Arrow.m_bArrowAlight", + "DT_TFProjectile_Arrow.m_bCritical", + "DT_TFProjectile_Arrow.m_iProjectileType" + ], + "DT_TFProjectile_Jar": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -28365,80 +20973,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -28455,7 +20990,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -28478,27 +21012,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_WeaponRocketLauncher_Mortar": [ + "DT_TFProjectile_JarMilk": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -28542,80 +21079,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -28632,7 +21096,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -28655,27 +21118,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFScatterGun": [ + "DT_TFProjectile_Pipebomb": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -28719,80 +21185,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -28809,7 +21202,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -28832,27 +21224,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFShotgun": [ + "DT_TFProjectile_Rocket": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -28896,80 +21291,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -28986,7 +21308,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -29009,27 +21330,20 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Rocket.m_bCritical" ], - "DT_TFShotgun_HWG": [ + "DT_TFProjectile_SentryRocket": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -29052,101 +21366,28 @@ "m_flPoseParameter.005", "m_flPoseParameter.006", "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -29163,7 +21404,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -29186,27 +21426,20 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Rocket.m_bCritical" ], - "DT_TFShotgun_Pyro": [ + "DT_TFProjectile_SpellBats": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -29250,80 +21483,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -29340,7 +21500,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -29363,27 +21522,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFShotgun_Revenge": [ + "DT_TFProjectile_SpellFireball": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -29427,80 +21589,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -29517,7 +21606,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -29540,27 +21628,20 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Rocket.m_bCritical" ], - "DT_TFShotgun_Soldier": [ + "DT_TFProjectile_SpellKartBats": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -29604,80 +21685,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -29694,7 +21702,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -29717,27 +21724,126 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFShotgunBuildingRescue": [ + "DT_TFProjectile_SpellKartOrb": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Rocket.m_bCritical" + ], + "DT_TFProjectile_SpellLightningOrb": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_TFBaseRocket.m_vecOrigin", + "DT_TFBaseRocket.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -29781,80 +21887,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -29871,7 +21904,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -29894,27 +21926,20 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_TFBaseRocket.m_vInitialVelocity", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFBaseRocket.m_iDeflected", + "DT_TFBaseRocket.m_hLauncher", + "DT_TFProjectile_Rocket.m_bCritical" ], - "DT_TFWeaponShovel": [ + "DT_TFProjectile_SpellMeteorShower": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -29958,80 +21983,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -30048,7 +22000,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -30071,27 +22022,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFSMG": [ + "DT_TFProjectile_SpellMirv": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -30135,80 +22089,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -30225,7 +22106,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -30248,28 +22128,31 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFSniperRifle": [ + "DT_TFProjectile_SpellPumpkin": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", - "DT_SniperRifleLocalData.m_flChargedDamage", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -30312,81 +22195,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -30403,7 +22212,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -30426,28 +22234,31 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFSniperRifleClassic": [ + "DT_TFProjectile_SpellSpawnBoss": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", - "DT_SniperRifleLocalData.m_flChargedDamage", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -30462,109 +22273,35 @@ "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", "m_flPoseParameter.000", - "m_flPoseParameter.001", - "m_flPoseParameter.002", - "m_flPoseParameter.003", - "m_flPoseParameter.004", - "m_flPoseParameter.005", - "m_flPoseParameter.006", - "m_flPoseParameter.007", - "m_flPoseParameter.008", - "m_flPoseParameter.009", - "m_flPoseParameter.010", - "m_flPoseParameter.011", - "m_flPoseParameter.012", - "m_flPoseParameter.013", - "m_flPoseParameter.014", - "m_flPoseParameter.015", - "m_flPoseParameter.016", - "m_flPoseParameter.017", - "m_flPoseParameter.018", - "m_flPoseParameter.019", - "m_flPoseParameter.020", - "m_flPoseParameter.021", - "m_flPoseParameter.022", - "m_flPoseParameter.023", - "m_flEncodedController.000", - "m_flEncodedController.001", - "m_flEncodedController.002", - "m_flEncodedController.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -30581,7 +22318,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -30604,29 +22340,31 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFSniperRifleClassic.m_bCharging" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFSniperRifleDecap": [ + "DT_TFProjectile_SpellSpawnHorde": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", - "DT_SniperRifleLocalData.m_flChargedDamage", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -30669,81 +22407,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -30760,7 +22424,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -30783,27 +22446,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFSodaPopper": [ + "DT_TFProjectile_SpellSpawnZombie": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -30847,80 +22513,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -30937,7 +22530,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -30960,27 +22552,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFWeaponSpellBook": [ + "DT_TFProjectile_StunBall": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -31024,80 +22619,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -31114,7 +22636,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -31137,32 +22658,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponThrowable.m_flChargeBeginTime", - "DT_TFWeaponSpellBook.m_iSelectedSpellIndex", - "DT_TFWeaponSpellBook.m_iSpellCharges", - "DT_TFWeaponSpellBook.m_flTimeNextSpell", - "DT_TFWeaponSpellBook.m_bFiredAttack" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFWeaponStickBomb": [ + "DT_TFProjectile_Throwable": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -31206,80 +22725,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -31296,7 +22742,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -31316,28 +22761,28 @@ "DT_BaseAnimating.m_nMuzzleFlashParity", "DT_BaseAnimating.m_hLightingOrigin", "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponBottle.m_bBroken", - "DT_TFWeaponStickBomb.m_iDetonated" + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFProjectile_StunBall": [ + "DT_TFProjectile_ThrowableBreadMonster": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -31443,11 +22888,12 @@ "DT_TFProjectile_Pipebomb.m_hLauncher", "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFWeaponSword": [ + "DT_TFProjectile_ThrowableBrick": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -31491,80 +22937,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -31581,7 +22954,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -31604,27 +22976,30 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_WeaponSyringeGun": [ + "DT_TFProjectile_ThrowableRepel": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -31668,80 +23043,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -31758,7 +23060,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -31781,23 +23082,25 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "DT_TFTankBoss": [ + "DT_TFPumpkinBomb": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -31846,227 +23149,130 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale" + ], + "DT_TFRagdoll": [ + "_LPT_m_hRagWearables_8.lengthprop8", + "_ST_m_hRagWearables_8.000", + "_ST_m_hRagWearables_8.001", + "_ST_m_hRagWearables_8.002", + "_ST_m_hRagWearables_8.003", + "_ST_m_hRagWearables_8.004", + "_ST_m_hRagWearables_8.005", + "_ST_m_hRagWearables_8.006", + "_ST_m_hRagWearables_8.007", + "DT_TFRagdoll.m_vecRagdollOrigin", + "DT_TFRagdoll.m_iPlayerIndex", + "DT_TFRagdoll.m_vecForce", + "DT_TFRagdoll.m_vecRagdollVelocity", + "DT_TFRagdoll.m_nForceBone", + "DT_TFRagdoll.m_bGib", + "DT_TFRagdoll.m_bBurning", + "DT_TFRagdoll.m_bElectrocuted", + "DT_TFRagdoll.m_bFeignDeath", + "DT_TFRagdoll.m_bWasDisguised", + "DT_TFRagdoll.m_bBecomeAsh", + "DT_TFRagdoll.m_bOnGround", + "DT_TFRagdoll.m_bCloaked", + "DT_TFRagdoll.m_iDamageCustom", + "DT_TFRagdoll.m_iTeam", + "DT_TFRagdoll.m_iClass", + "DT_TFRagdoll.m_bGoldRagdoll", + "DT_TFRagdoll.m_bIceRagdoll", + "DT_TFRagdoll.m_bCritOnHardHit", + "DT_TFRagdoll.m_flHeadScale", + "DT_TFRagdoll.m_flTorsoScale", + "DT_TFRagdoll.m_flHandScale" + ], + "DT_TFReviveMarker": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_TFReviveMarker.m_iHealth", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -32108,13 +23314,29 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseFlex.m_blinktoggle", - "DT_BaseFlex.m_viewtarget", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_TFBaseBoss.m_lastHealthPercentage" + "DT_TFReviveMarker.m_hOwner", + "DT_CollisionProperty.m_nSolidType", + "DT_TFReviveMarker.m_iMaxHealth", + "DT_TFReviveMarker.m_nRevives" ], - "DT_TFTauntProp": [ + "DT_TFRobotDestructionLogic": [ + "m_eWinningMethod.000", + "m_eWinningMethod.001", + "m_eWinningMethod.002", + "m_eWinningMethod.003", + "DT_TFRobotDestructionLogic.m_nMaxPoints", + "DT_TFRobotDestructionLogic.m_nBlueScore", + "DT_TFRobotDestructionLogic.m_nRedScore", + "DT_TFRobotDestructionLogic.m_nBlueTargetPoints", + "DT_TFRobotDestructionLogic.m_nRedTargetPoints", + "DT_TFRobotDestructionLogic.m_flBlueTeamRespawnScale", + "DT_TFRobotDestructionLogic.m_flRedTeamRespawnScale", + "DT_TFRobotDestructionLogic.m_flBlueFinaleEndTime", + "DT_TFRobotDestructionLogic.m_flRedFinaleEndTime", + "DT_TFRobotDestructionLogic.m_flFinaleLength" + ], + "DT_TFRobotDestructionRobotSpawn": [], + "DT_TFRobotDestruction_Robot": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -32428,20 +23650,21 @@ "DT_BaseFlex.m_blinktoggle", "DT_BaseFlex.m_viewtarget", "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon" + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_TFRobotDestruction_Robot.m_iHealth", + "DT_TFRobotDestruction_Robot.m_iMaxHealth", + "DT_TFRobotDestruction_Robot.m_eType" ], - "DT_TFTeam": [ - "DT_Team.m_iTeamNum", - "DT_Team.m_iScore", - "DT_Team.m_iRoundsWon", - "DT_Team.m_szTeamname", - "DT_Team.\"player_array\"", - "DT_TFTeam.m_nFlagCaptures", - "DT_TFTeam.m_iRole", - "DT_TFTeam.\"team_object_array\"", - "DT_TFTeam.m_hLeader" + "DT_TFRobotDestruction_RobotGroup": [ + "DT_TFRobotDestruction_RobotGroup.m_pszHudIcon", + "DT_TFRobotDestruction_RobotGroup.m_iTeamNum", + "DT_TFRobotDestruction_RobotGroup.m_nGroupNumber", + "DT_TFRobotDestruction_RobotGroup.m_nState", + "DT_TFRobotDestruction_RobotGroup.m_flRespawnStartTime", + "DT_TFRobotDestruction_RobotGroup.m_flRespawnEndTime", + "DT_TFRobotDestruction_RobotGroup.m_flLastAttackedTime" ], - "DT_TFWeaponThrowable": [ + "DT_TFSMG": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -32616,26 +23839,366 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponThrowable.m_flChargeBeginTime" + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFViewModel": [ - "DT_BaseViewModel.m_nModelIndex", - "DT_BaseViewModel.m_nBody", - "DT_BaseViewModel.m_nSkin", - "DT_BaseViewModel.m_nSequence", - "DT_BaseViewModel.m_nViewModelIndex", - "DT_BaseViewModel.m_flPlaybackRate", - "DT_BaseViewModel.m_fEffects", - "DT_BaseViewModel.m_nAnimationParity", - "DT_BaseViewModel.m_hWeapon", - "DT_BaseViewModel.m_hOwner", - "DT_BaseViewModel.m_nNewSequenceParity", - "DT_BaseViewModel.m_nResetEventsParity", - "DT_BaseViewModel.m_nMuzzleFlashParity", - "DT_BaseViewModel.m_flPoseParameter" + "DT_TFScatterGun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponBase": [ + "DT_TFSendHealersDataTable": [ + "DT_TFSendHealersDataTable.m_nActiveWpnClip" + ], + "DT_TFShotgun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" + ], + "DT_TFShotgunBuildingRescue": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -32812,12 +24375,11 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponBaseGrenadeProj": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFShotgun_HWG": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", - "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -32861,7 +24423,80 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -32878,6 +24513,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -32900,21 +24536,200 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags", - "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", - "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" + ], + "DT_TFShotgun_Pyro": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", "DT_CollisionProperty.m_vecMaxs", - "DT_TFWeaponBaseGrenadeProj.m_iDeflected", - "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner" + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponBaseGun": [ + "DT_TFShotgun_Revenge": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -33091,7 +24906,7 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponBaseMelee": [ + "DT_TFShotgun_Soldier": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -33268,13 +25083,12 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponBaseMerasmusGrenade": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFSniperRifle": [ "DT_ServerAnimationData.m_flCycle", + "DT_SniperRifleLocalData.m_flChargedDamage", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -33317,8 +25131,81 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -33335,7 +25222,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -33358,20 +25245,28 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseProjectile.m_hOriginalLauncher", - "DT_BaseGrenade.m_flDamage", - "DT_BaseGrenade.m_DmgRadius", - "DT_BaseGrenade.m_bIsLive", - "DT_BaseGrenade.m_hThrower", - "DT_BaseGrenade.m_vecVelocity", - "DT_BaseGrenade.m_fFlags" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponBuilder": [ + "DT_TFSniperRifleClassic": [ "DT_ServerAnimationData.m_flCycle", + "DT_SniperRifleLocalData.m_flChargedDamage", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -33486,14 +25381,9 @@ "DT_LocalTFWeaponData.m_flLastFireTime", "DT_LocalTFWeaponData.m_flEffectBarRegenTime", "DT_LocalTFWeaponData.m_flObservedCritChance", - "m_aBuildableObjectTypes.000", - "m_aBuildableObjectTypes.001", - "m_aBuildableObjectTypes.002", - "m_aBuildableObjectTypes.003", - "DT_BuilderLocalData.m_iObjectType", - "DT_BuilderLocalData.m_hObjectBeingBuilt", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -33510,7 +25400,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -33548,16 +25438,14 @@ "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponBuilder.m_iBuildState", - "DT_TFWeaponBuilder.m_iObjectMode", - "DT_TFWeaponBuilder.m_flWheatleyTalkingUntil" + "DT_TFSniperRifleClassic.m_bCharging" ], - "DT_TFWeaponInvis": [ + "DT_TFSniperRifleDecap": [ "DT_ServerAnimationData.m_flCycle", + "DT_SniperRifleLocalData.m_flChargedDamage", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", @@ -33674,6 +25562,7 @@ "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -33690,7 +25579,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -33729,7 +25618,7 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponPDA": [ + "DT_TFSodaPopper": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -33906,7 +25795,8 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponPDA_Engineer_Build": [ + "DT_TFTankBoss": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -33954,78 +25844,227 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -34067,23 +26106,14 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseFlex.m_blinktoggle", + "DT_BaseFlex.m_viewtarget", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_TFBaseBoss.m_lastHealthPercentage" ], - "DT_TFWeaponPDA_Engineer_Destroy": [ + "DT_TFTauntProp": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -34131,78 +26161,227 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel", - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -34244,23 +26423,39 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseCombatWeapon.m_iViewModelIndex", - "DT_BaseCombatWeapon.m_iWorldModelIndex", - "DT_BaseCombatWeapon.m_iState", - "DT_BaseCombatWeapon.m_hOwner", - "DT_TFWeaponBase.m_bLowered", - "DT_TFWeaponBase.m_bResetParity", - "DT_TFWeaponBase.m_iReloadMode", - "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", - "DT_TFWeaponBase.m_bDisguiseWeapon", - "DT_TFWeaponBase.m_flEnergy", - "DT_TFWeaponBase.m_hExtraWearable", - "DT_TFWeaponBase.m_hExtraWearableViewModel", - "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", - "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_BaseFlex.m_blinktoggle", + "DT_BaseFlex.m_viewtarget", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon" ], - "DT_TFWeaponPDA_Spy": [ + "DT_TFTeam": [ + "DT_Team.m_iTeamNum", + "DT_Team.m_iScore", + "DT_Team.m_iRoundsWon", + "DT_Team.m_szTeamname", + "DT_Team.\"player_array\"", + "DT_TFTeam.m_nFlagCaptures", + "DT_TFTeam.m_iRole", + "DT_TFTeam.\"team_object_array\"", + "DT_TFTeam.m_hLeader" + ], + "DT_TFViewModel": [ + "DT_BaseViewModel.m_nModelIndex", + "DT_BaseViewModel.m_nBody", + "DT_BaseViewModel.m_nSkin", + "DT_BaseViewModel.m_nSequence", + "DT_BaseViewModel.m_nViewModelIndex", + "DT_BaseViewModel.m_flPlaybackRate", + "DT_BaseViewModel.m_fEffects", + "DT_BaseViewModel.m_nAnimationParity", + "DT_BaseViewModel.m_hWeapon", + "DT_BaseViewModel.m_hOwner", + "DT_BaseViewModel.m_nNewSequenceParity", + "DT_BaseViewModel.m_nResetEventsParity", + "DT_BaseViewModel.m_nMuzzleFlashParity", + "DT_BaseViewModel.m_flPoseParameter" + ], + "DT_TFWeaponBase": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -34437,12 +26632,12 @@ "DT_TFWeaponBase.m_nKillComboClass", "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponPDAExpansion_Dispenser": [ + "DT_TFWeaponBaseGrenadeProj": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -34486,65 +26681,7 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -34561,7 +26698,6 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -34584,11 +26720,21 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner" ], - "DT_TFWeaponPDAExpansion_Teleporter": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBaseGun": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -34693,6 +26839,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -34734,10 +26895,23 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponSapper": [ + "DT_TFWeaponBaseMelee": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -34857,12 +27031,6 @@ "DT_LocalTFWeaponData.m_flLastFireTime", "DT_LocalTFWeaponData.m_flEffectBarRegenTime", "DT_LocalTFWeaponData.m_flObservedCritChance", - "m_aBuildableObjectTypes.000", - "m_aBuildableObjectTypes.001", - "m_aBuildableObjectTypes.002", - "m_aBuildableObjectTypes.003", - "DT_BuilderLocalData.m_iObjectType", - "DT_BuilderLocalData.m_hObjectBeingBuilt", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -34918,13 +27086,9 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_TFWeaponBuilder.m_iBuildState", - "DT_TFWeaponBuilder.m_iObjectMode", - "DT_TFWeaponBuilder.m_flWheatleyTalkingUntil", - "DT_TFWeaponSapper.m_flChargeBeginTime" + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWearable": [ + "DT_TFWeaponBaseMerasmusGrenade": [ "DT_AnimTimeMustBeFirst.m_flAnimTime", "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", @@ -34973,63 +27137,6 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_Attributes_15.lengthprop15", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency", - "DT_ScriptCreatedItem.m_iItemDefinitionIndex", - "DT_ScriptCreatedItem.m_iEntityLevel", - "DT_ScriptCreatedItem.m_iItemIDHigh", - "DT_ScriptCreatedItem.m_iItemIDLow", - "DT_ScriptCreatedItem.m_iAccountID", - "DT_ScriptCreatedItem.m_iEntityQuality", - "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", - "DT_AttributeContainer.m_hOuter", - "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -35071,11 +27178,15 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith" + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags" ], - "DT_TFWearableDemoShield": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBat": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -35180,6 +27291,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -35221,11 +27347,23 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWearableItem": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBat_Fish": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -35330,6 +27468,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -35370,10 +27523,24 @@ "DT_BaseAnimating.m_hLightingOriginRelative", "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWearableLevelableItem": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBat_Giftwrap": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -35478,6 +27645,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -35519,12 +27701,23 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith", - "DT_TFWearableLevelableItem.m_unLevel" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWearableRobotArm": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBat_Wood": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -35629,6 +27822,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -35670,11 +27878,23 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWearableVM": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBonesaw": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -35779,6 +27999,21 @@ "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -35820,10 +28055,23 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_TFWearable.m_bDisguiseWearable", - "DT_TFWearable.m_hWeaponAssociatedWith" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TFWeaponWrench": [ + "DT_TFWeaponBottle": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -35998,114 +28246,10 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" - ], - "DT_VGuiScreen": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_VGuiScreen.m_flWidth", - "DT_VGuiScreen.m_flHeight", - "DT_VGuiScreen.m_nAttachmentIndex", - "DT_VGuiScreen.m_nPanelName", - "DT_VGuiScreen.m_fScreenFlags", - "DT_VGuiScreen.m_nOverlayMaterial", - "DT_VGuiScreen.m_hPlayerOwner" - ], - "DT_VoteController": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "m_nVoteOptionCount.000", - "m_nVoteOptionCount.001", - "m_nVoteOptionCount.002", - "m_nVoteOptionCount.003", - "m_nVoteOptionCount.004", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_VoteController.m_iActiveIssueIndex", - "DT_VoteController.m_iOnlyTeamToVote", - "DT_VoteController.m_nPotentialVotes", - "DT_VoteController.m_bIsYesNoVote" + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponBottle.m_bBroken" ], - "DT_WaterBullet": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponBuffItem": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -36153,6 +28297,78 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -36193,13 +28409,24 @@ "DT_BaseAnimating.m_hLightingOriginRelative", "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale" - ], - "DT_WaterLODControl": [ - "DT_WaterLODControl.m_flCheapWaterStartDistance", - "DT_WaterLODControl.m_flCheapWaterEndDistance" + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_WeaponIFMBase": [ + "DT_TFWeaponBuilder": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -36319,6 +28546,12 @@ "DT_LocalTFWeaponData.m_flLastFireTime", "DT_LocalTFWeaponData.m_flEffectBarRegenTime", "DT_LocalTFWeaponData.m_flObservedCritChance", + "m_aBuildableObjectTypes.000", + "m_aBuildableObjectTypes.001", + "m_aBuildableObjectTypes.002", + "m_aBuildableObjectTypes.003", + "DT_BuilderLocalData.m_iObjectType", + "DT_BuilderLocalData.m_hObjectBeingBuilt", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -36374,9 +28607,12 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount" + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponBuilder.m_iBuildState", + "DT_TFWeaponBuilder.m_iObjectMode", + "DT_TFWeaponBuilder.m_flWheatleyTalkingUntil" ], - "DT_WeaponIFMBaseCamera": [ + "DT_TFWeaponCleaver": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -36551,14 +28787,9 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponIFMBaseCamera.m_flRenderAspectRatio", - "DT_WeaponIFMBaseCamera.m_flRenderFOV", - "DT_WeaponIFMBaseCamera.m_flRenderArmLength", - "DT_WeaponIFMBaseCamera.m_vecRenderPosition", - "DT_WeaponIFMBaseCamera.m_angRenderAngles" + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_WeaponIFMSteadyCam": [ + "DT_TFWeaponClub": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -36733,20 +28964,16 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponIFMBaseCamera.m_flRenderAspectRatio", - "DT_WeaponIFMBaseCamera.m_flRenderFOV", - "DT_WeaponIFMBaseCamera.m_flRenderArmLength", - "DT_WeaponIFMBaseCamera.m_vecRenderPosition", - "DT_WeaponIFMBaseCamera.m_angRenderAngles" + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_WeaponMedigun": [ + "DT_TFWeaponDataNonLocal": [], + "DT_TFWeaponFireAxe": [ "DT_ServerAnimationData.m_flCycle", - "DT_LocalTFWeaponMedigunData.m_flChargeLevel", - "DT_TFWeaponMedigunDataNonLocal.m_flChargeLevel", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", "DT_CollisionProperty.m_triggerBloat", "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", @@ -36862,8 +29089,6 @@ "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -36880,7 +29105,7 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", @@ -36917,70 +29142,9 @@ "DT_TFWeaponBase.m_hExtraWearableViewModel", "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", "DT_TFWeaponBase.m_nKillComboClass", - "DT_TFWeaponBase.m_nKillComboCount", - "DT_WeaponMedigun.m_hHealingTarget", - "DT_WeaponMedigun.m_bHealing", - "DT_WeaponMedigun.m_bAttacking", - "DT_WeaponMedigun.m_bChargeRelease", - "DT_WeaponMedigun.m_bHolstered", - "DT_WeaponMedigun.m_nChargeResistType" - ], - "DT_WORLD": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_WORLD.m_flWaveHeight", - "DT_WORLD.m_WorldMins", - "DT_WORLD.m_WorldMaxs", - "DT_WORLD.m_bStartDark", - "DT_WORLD.m_flMaxOccludeeArea", - "DT_WORLD.m_flMinOccluderArea", - "DT_WORLD.m_flMaxPropScreenSpaceWidth", - "DT_WORLD.m_flMinPropScreenSpaceWidth", - "DT_WORLD.m_iszDetailSpriteMaterial", - "DT_WORLD.m_bColdWorld" + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_Zombie": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponFists": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -37028,353 +29192,80 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMaxs", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_BaseAnimating.m_nForceBone", - "DT_BaseAnimating.m_vecForce", - "DT_BaseAnimating.m_nSkin", - "DT_BaseAnimating.m_nBody", - "DT_BaseAnimating.m_nHitboxSet", - "DT_BaseAnimating.m_flModelScale", - "DT_BaseAnimating.m_nSequence", - "DT_BaseAnimating.m_flPlaybackRate", - "DT_BaseAnimating.m_bClientSideAnimation", - "DT_BaseAnimating.m_bClientSideFrameReset", - "DT_BaseAnimating.m_nNewSequenceParity", - "DT_BaseAnimating.m_nResetEventsParity", - "DT_BaseAnimating.m_nMuzzleFlashParity", - "DT_BaseAnimating.m_hLightingOrigin", - "DT_BaseAnimating.m_hLightingOriginRelative", - "DT_BaseAnimating.m_fadeMinDist", - "DT_BaseAnimating.m_fadeMaxDist", - "DT_BaseAnimating.m_flFadeScale", - "DT_BaseFlex.m_blinktoggle", - "DT_BaseFlex.m_viewtarget", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon", - "DT_Zombie.m_flHeadScale" - ], - "DT_DustTrail": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_DustTrail.m_SpawnRate", - "DT_DustTrail.m_Color", - "DT_DustTrail.m_ParticleLifetime", - "DT_DustTrail.m_StopEmitTime", - "DT_DustTrail.m_MinSpeed", - "DT_DustTrail.m_MaxSpeed", - "DT_DustTrail.m_MinDirectedSpeed", - "DT_DustTrail.m_MaxDirectedSpeed", - "DT_DustTrail.m_StartSize", - "DT_DustTrail.m_EndSize", - "DT_DustTrail.m_SpawnRadius", - "DT_DustTrail.m_bEmit", - "DT_DustTrail.m_Opacity" - ], - "DT_MovieExplosion": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -37391,14 +29282,46 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting" + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_NextBot": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponInvis": [ "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", @@ -37446,227 +29369,78 @@ "m_flEncodedController.002", "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095", - "DT_BCCLocalPlayerExclusive.m_flNextAttack", - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", @@ -37708,65 +29482,27 @@ "DT_BaseAnimating.m_fadeMinDist", "DT_BaseAnimating.m_fadeMaxDist", "DT_BaseAnimating.m_flFadeScale", - "DT_BaseFlex.m_blinktoggle", - "DT_BaseFlex.m_viewtarget", - "DT_BaseCombatCharacter.m_bGlowEnabled", - "DT_BaseCombatCharacter.m_hActiveWeapon" - ], - "DT_ParticleSmokeGrenade": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", - "DT_BaseEntity.m_flSimulationTime", - "DT_BaseEntity.m_vecOrigin", - "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", - "DT_CollisionProperty.m_nSolidType", - "DT_CollisionProperty.m_usSolidFlags", - "DT_CollisionProperty.m_nSurroundType", - "DT_CollisionProperty.m_triggerBloat", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", - "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated", - "m_nModelIndexOverrides.000", - "m_nModelIndexOverrides.001", - "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003", - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_BaseEntity.m_ubInterpolationFrame", - "DT_BaseEntity.m_nModelIndex", - "DT_BaseEntity.m_nRenderFX", - "DT_BaseEntity.m_nRenderMode", - "DT_BaseEntity.m_fEffects", - "DT_BaseEntity.m_clrRender", - "DT_BaseEntity.m_iTeamNum", - "DT_BaseEntity.m_CollisionGroup", - "DT_BaseEntity.m_flElasticity", - "DT_BaseEntity.m_flShadowCastDistance", - "DT_BaseEntity.m_hOwnerEntity", - "DT_BaseEntity.m_hEffectEntity", - "DT_BaseEntity.moveparent", - "DT_BaseEntity.m_iParentAttachment", - "DT_BaseEntity.movetype", - "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", - "DT_BaseEntity.m_iTextureFrameIndex", - "DT_BaseEntity.m_bSimulatedEveryTick", - "DT_BaseEntity.m_bAnimatedEveryTick", - "DT_BaseEntity.m_bAlternateSorting", - "DT_ParticleSmokeGrenade.m_flSpawnTime", - "DT_ParticleSmokeGrenade.m_FadeStartTime", - "DT_ParticleSmokeGrenade.m_FadeEndTime", - "DT_ParticleSmokeGrenade.m_CurrentStage" + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_RocketTrail": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponJar": [ + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -37781,8 +29517,109 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -37799,33 +29636,50 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_RocketTrail.m_SpawnRate", - "DT_RocketTrail.m_StartColor", - "DT_RocketTrail.m_EndColor", - "DT_RocketTrail.m_ParticleLifetime", - "DT_RocketTrail.m_StopEmitTime", - "DT_RocketTrail.m_MinSpeed", - "DT_RocketTrail.m_MaxSpeed", - "DT_RocketTrail.m_StartSize", - "DT_RocketTrail.m_EndSize", - "DT_RocketTrail.m_SpawnRadius", - "DT_RocketTrail.m_bEmit", - "DT_RocketTrail.m_nAttachment", - "DT_RocketTrail.m_Opacity", - "DT_RocketTrail.m_bDamaged", - "DT_RocketTrail.m_flFlareScale" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_SmokeTrail": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponJarMilk": [ + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -37840,8 +29694,109 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -37858,33 +29813,50 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SmokeTrail.m_SpawnRate", - "DT_SmokeTrail.m_StartColor", - "DT_SmokeTrail.m_EndColor", - "DT_SmokeTrail.m_ParticleLifetime", - "DT_SmokeTrail.m_StopEmitTime", - "DT_SmokeTrail.m_MinSpeed", - "DT_SmokeTrail.m_MaxSpeed", - "DT_SmokeTrail.m_MinDirectedSpeed", - "DT_SmokeTrail.m_MaxDirectedSpeed", - "DT_SmokeTrail.m_StartSize", - "DT_SmokeTrail.m_EndSize", - "DT_SmokeTrail.m_SpawnRadius", - "DT_SmokeTrail.m_bEmit", - "DT_SmokeTrail.m_nAttachment", - "DT_SmokeTrail.m_Opacity" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_SporeExplosion": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponKatana": [ + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -37899,8 +29871,109 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -37917,25 +29990,51 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SporeExplosion.m_flSpawnRate", - "DT_SporeExplosion.m_flParticleLifetime", - "DT_SporeExplosion.m_flStartSize", - "DT_SporeExplosion.m_flEndSize", - "DT_SporeExplosion.m_flSpawnRadius", - "DT_SporeExplosion.m_bEmit", - "DT_SporeExplosion.m_bDontRemove" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponKatana.m_bIsBloody" ], - "DT_SporeTrail": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_TFWeaponKnife": [ + "DT_ServerAnimationData.m_flCycle", "DT_BaseEntity.m_flSimulationTime", "DT_BaseEntity.m_vecOrigin", "DT_BaseEntity.m_angRotation", - "DT_CollisionProperty.m_vecMaxs", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -37950,8 +30049,109 @@ "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", "DT_BaseEntity.m_ubInterpolationFrame", "DT_BaseEntity.m_nModelIndex", "DT_BaseEntity.m_nRenderFX", @@ -37968,27 +30168,57 @@ "DT_BaseEntity.m_iParentAttachment", "DT_BaseEntity.movetype", "DT_BaseEntity.movecollide", - "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", "DT_BaseEntity.m_iTextureFrameIndex", "DT_BaseEntity.m_bSimulatedEveryTick", "DT_BaseEntity.m_bAnimatedEveryTick", "DT_BaseEntity.m_bAlternateSorting", - "DT_SporeTrail.m_flSpawnRate", - "DT_SporeTrail.m_vecEndColor", - "DT_SporeTrail.m_flParticleLifetime", - "DT_SporeTrail.m_flStartSize", - "DT_SporeTrail.m_flEndSize", - "DT_SporeTrail.m_flSpawnRadius", - "DT_SporeTrail.m_bEmit" + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponKnife.m_bReadyToBackstab", + "DT_TFWeaponKnife.m_bKnifeExists", + "DT_TFWeaponKnife.m_flKnifeRegenerateDuration", + "DT_TFWeaponKnife.m_flKnifeMeltTimestamp" ], - "DT_AnimTimeMustBeFirst": [ - "DT_AnimTimeMustBeFirst.m_flAnimTime" + "DT_TFWeaponMedigunDataNonLocal": [ + "DT_TFWeaponMedigunDataNonLocal.m_flChargeLevel" ], - "DT_CollisionProperty": [ - "DT_CollisionProperty.m_vecMinsPreScaled", - "DT_CollisionProperty.m_vecMaxsPreScaled", - "DT_CollisionProperty.m_vecMins", - "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponPDA": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", "DT_CollisionProperty.m_nSolidType", "DT_CollisionProperty.m_usSolidFlags", "DT_CollisionProperty.m_nSurroundType", @@ -37996,19 +30226,13 @@ "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", - "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs" - ], - "DT_PredictableId": [ + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", "DT_PredictableId.m_PredictableID", - "DT_PredictableId.m_bIsPlayerSimulated" - ], - "m_nModelIndexOverrides": [ + "DT_PredictableId.m_bIsPlayerSimulated", "m_nModelIndexOverrides.000", "m_nModelIndexOverrides.001", "m_nModelIndexOverrides.002", - "m_nModelIndexOverrides.003" - ], - "m_flPoseParameter": [ + "m_nModelIndexOverrides.003", "m_flPoseParameter.000", "m_flPoseParameter.001", "m_flPoseParameter.002", @@ -38032,335 +30256,340 @@ "m_flPoseParameter.020", "m_flPoseParameter.021", "m_flPoseParameter.022", - "m_flPoseParameter.023" - ], - "m_flEncodedController": [ + "m_flPoseParameter.023", "m_flEncodedController.000", "m_flEncodedController.001", "m_flEncodedController.002", - "m_flEncodedController.003" - ], - "DT_ServerAnimationData": [ - "DT_ServerAnimationData.m_flCycle" - ], - "DT_OverlayVars": [ - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder" - ], - "_ST_m_AnimOverlay_15": [ - "_LPT_m_AnimOverlay_15.lengthprop15", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder", - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder" - ], - "_LPT_m_AnimOverlay_15": [ - "_LPT_m_AnimOverlay_15.lengthprop15" - ], - "DT_Animationlayer": [ - "DT_Animationlayer.m_nSequence", - "DT_Animationlayer.m_flCycle", - "DT_Animationlayer.m_flPrevCycle", - "DT_Animationlayer.m_flWeight", - "DT_Animationlayer.m_nOrder" - ], - "m_flexWeight": [ - "m_flexWeight.000", - "m_flexWeight.001", - "m_flexWeight.002", - "m_flexWeight.003", - "m_flexWeight.004", - "m_flexWeight.005", - "m_flexWeight.006", - "m_flexWeight.007", - "m_flexWeight.008", - "m_flexWeight.009", - "m_flexWeight.010", - "m_flexWeight.011", - "m_flexWeight.012", - "m_flexWeight.013", - "m_flexWeight.014", - "m_flexWeight.015", - "m_flexWeight.016", - "m_flexWeight.017", - "m_flexWeight.018", - "m_flexWeight.019", - "m_flexWeight.020", - "m_flexWeight.021", - "m_flexWeight.022", - "m_flexWeight.023", - "m_flexWeight.024", - "m_flexWeight.025", - "m_flexWeight.026", - "m_flexWeight.027", - "m_flexWeight.028", - "m_flexWeight.029", - "m_flexWeight.030", - "m_flexWeight.031", - "m_flexWeight.032", - "m_flexWeight.033", - "m_flexWeight.034", - "m_flexWeight.035", - "m_flexWeight.036", - "m_flexWeight.037", - "m_flexWeight.038", - "m_flexWeight.039", - "m_flexWeight.040", - "m_flexWeight.041", - "m_flexWeight.042", - "m_flexWeight.043", - "m_flexWeight.044", - "m_flexWeight.045", - "m_flexWeight.046", - "m_flexWeight.047", - "m_flexWeight.048", - "m_flexWeight.049", - "m_flexWeight.050", - "m_flexWeight.051", - "m_flexWeight.052", - "m_flexWeight.053", - "m_flexWeight.054", - "m_flexWeight.055", - "m_flexWeight.056", - "m_flexWeight.057", - "m_flexWeight.058", - "m_flexWeight.059", - "m_flexWeight.060", - "m_flexWeight.061", - "m_flexWeight.062", - "m_flexWeight.063", - "m_flexWeight.064", - "m_flexWeight.065", - "m_flexWeight.066", - "m_flexWeight.067", - "m_flexWeight.068", - "m_flexWeight.069", - "m_flexWeight.070", - "m_flexWeight.071", - "m_flexWeight.072", - "m_flexWeight.073", - "m_flexWeight.074", - "m_flexWeight.075", - "m_flexWeight.076", - "m_flexWeight.077", - "m_flexWeight.078", - "m_flexWeight.079", - "m_flexWeight.080", - "m_flexWeight.081", - "m_flexWeight.082", - "m_flexWeight.083", - "m_flexWeight.084", - "m_flexWeight.085", - "m_flexWeight.086", - "m_flexWeight.087", - "m_flexWeight.088", - "m_flexWeight.089", - "m_flexWeight.090", - "m_flexWeight.091", - "m_flexWeight.092", - "m_flexWeight.093", - "m_flexWeight.094", - "m_flexWeight.095" - ], - "DT_BCCLocalPlayerExclusive": [ - "DT_BCCLocalPlayerExclusive.m_flNextAttack" + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_hMyWeapons": [ - "m_hMyWeapons.000", - "m_hMyWeapons.001", - "m_hMyWeapons.002", - "m_hMyWeapons.003", - "m_hMyWeapons.004", - "m_hMyWeapons.005", - "m_hMyWeapons.006", - "m_hMyWeapons.007", - "m_hMyWeapons.008", - "m_hMyWeapons.009", - "m_hMyWeapons.010", - "m_hMyWeapons.011", - "m_hMyWeapons.012", - "m_hMyWeapons.013", - "m_hMyWeapons.014", - "m_hMyWeapons.015", - "m_hMyWeapons.016", - "m_hMyWeapons.017", - "m_hMyWeapons.018", - "m_hMyWeapons.019", - "m_hMyWeapons.020", - "m_hMyWeapons.021", - "m_hMyWeapons.022", - "m_hMyWeapons.023", - "m_hMyWeapons.024", - "m_hMyWeapons.025", - "m_hMyWeapons.026", - "m_hMyWeapons.027", - "m_hMyWeapons.028", - "m_hMyWeapons.029", - "m_hMyWeapons.030", - "m_hMyWeapons.031", - "m_hMyWeapons.032", - "m_hMyWeapons.033", - "m_hMyWeapons.034", - "m_hMyWeapons.035", - "m_hMyWeapons.036", - "m_hMyWeapons.037", - "m_hMyWeapons.038", - "m_hMyWeapons.039", - "m_hMyWeapons.040", - "m_hMyWeapons.041", - "m_hMyWeapons.042", - "m_hMyWeapons.043", - "m_hMyWeapons.044", - "m_hMyWeapons.045", - "m_hMyWeapons.046", - "m_hMyWeapons.047" + "DT_TFWeaponPDAExpansion_Dispenser": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith" ], - "DT_AttributeContainer": [ + "DT_TFWeaponPDAExpansion_Teleporter": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "_LPT_m_Attributes_15.lengthprop15", "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", "DT_ScriptCreatedAttribute.m_iRawValue32", @@ -38417,9 +30646,99 @@ "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", "DT_AttributeContainer.m_hOuter", "DT_AttributeContainer.m_ProviderType", - "DT_AttributeContainer.m_iReapplyProvisionParity" + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith" ], - "DT_ScriptCreatedItem": [ + "DT_TFWeaponPDA_Engineer_Build": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "_LPT_m_Attributes_15.lengthprop15", "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", "DT_ScriptCreatedAttribute.m_iRawValue32", @@ -38473,9 +30792,130 @@ "DT_ScriptCreatedItem.m_iAccountID", "DT_ScriptCreatedItem.m_iEntityQuality", "DT_ScriptCreatedItem.m_bInitialized", - "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes" + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_AttributeList": [ + "DT_TFWeaponPDA_Engineer_Destroy": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "_LPT_m_Attributes_15.lengthprop15", "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", "DT_ScriptCreatedAttribute.m_iRawValue32", @@ -38521,9 +30961,138 @@ "DT_ScriptCreatedAttribute.m_nRefundableCurrency", "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency" + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "_ST_m_Attributes_15": [ + "DT_TFWeaponPDA_Spy": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", "_LPT_m_Attributes_15.lengthprop15", "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", "DT_ScriptCreatedAttribute.m_iRawValue32", @@ -38569,2816 +31138,8764 @@ "DT_ScriptCreatedAttribute.m_nRefundableCurrency", "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency" - ], - "_LPT_m_Attributes_15": [ - "_LPT_m_Attributes_15.lengthprop15" - ], - "DT_ScriptCreatedAttribute": [ - "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", - "DT_ScriptCreatedAttribute.m_iRawValue32", - "DT_ScriptCreatedAttribute.m_nRefundableCurrency" - ], - "DT_LocalWeaponData": [ - "DT_LocalWeaponData.m_iClip1", - "DT_LocalWeaponData.m_iClip2", - "DT_LocalWeaponData.m_iPrimaryAmmoType", - "DT_LocalWeaponData.m_iSecondaryAmmoType", - "DT_LocalWeaponData.m_nViewModelIndex", - "DT_LocalWeaponData.m_bFlipViewModel" - ], - "DT_LocalActiveWeaponData": [ - "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", - "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", - "DT_LocalActiveWeaponData.m_nNextThinkTick", - "DT_LocalActiveWeaponData.m_flTimeWeaponIdle" - ], - "DT_PlayerState": [ - "DT_PlayerState.deadflag" - ], - "_ST_m_hMyWearables_8": [ - "_LPT_m_hMyWearables_8.lengthprop8", - "_ST_m_hMyWearables_8.000", - "_ST_m_hMyWearables_8.001", - "_ST_m_hMyWearables_8.002", - "_ST_m_hMyWearables_8.003", - "_ST_m_hMyWearables_8.004", - "_ST_m_hMyWearables_8.005", - "_ST_m_hMyWearables_8.006", - "_ST_m_hMyWearables_8.007" - ], - "_LPT_m_hMyWearables_8": [ - "_LPT_m_hMyWearables_8.lengthprop8" - ], - "DT_LocalPlayerExclusive": [ - "DT_Local.m_flDucktime", - "DT_Local.m_flFallVelocity", - "DT_Local.m_vecPunchAngle", - "DT_LocalPlayerExclusive.m_vecViewOffset[2]", - "DT_LocalPlayerExclusive.m_nTickBase", - "DT_LocalPlayerExclusive.m_hGroundEntity", - "DT_LocalPlayerExclusive.m_vecVelocity[0]", - "DT_LocalPlayerExclusive.m_vecVelocity[1]", - "DT_LocalPlayerExclusive.m_vecVelocity[2]", - "m_chAreaBits.009", - "m_chAreaBits.010", - "m_chAreaBits.011", - "m_chAreaBits.012", - "m_chAreaBits.013", - "m_chAreaBits.014", - "m_chAreaBits.015", - "m_chAreaBits.016", - "m_chAreaBits.017", - "m_chAreaBits.018", - "m_chAreaBits.019", - "m_chAreaBits.020", - "m_chAreaBits.021", - "m_chAreaBits.022", - "m_chAreaBits.023", - "m_chAreaBits.024", - "m_chAreaBits.025", - "m_chAreaBits.026", - "m_chAreaBits.027", - "m_chAreaBits.028", - "m_chAreaBits.029", - "m_chAreaBits.030", - "m_chAreaBits.031", - "m_chAreaPortalBits.000", - "m_chAreaPortalBits.001", - "m_chAreaPortalBits.002", - "m_chAreaPortalBits.003", - "m_chAreaPortalBits.004", - "m_chAreaPortalBits.005", - "m_chAreaPortalBits.006", - "m_chAreaPortalBits.007", - "m_chAreaPortalBits.008", - "m_chAreaPortalBits.009", - "m_chAreaPortalBits.010", - "m_chAreaPortalBits.011", - "m_chAreaPortalBits.012", - "m_chAreaPortalBits.013", - "m_chAreaPortalBits.014", - "m_chAreaPortalBits.015", - "m_chAreaPortalBits.016", - "m_chAreaPortalBits.017", - "m_chAreaPortalBits.018", - "m_chAreaPortalBits.019", - "m_chAreaPortalBits.020", - "m_chAreaPortalBits.021", - "m_chAreaPortalBits.022", - "m_chAreaPortalBits.023", - "DT_Local.m_iHideHUD", - "DT_Local.m_flFOVRate", - "DT_Local.m_bDucked", - "DT_Local.m_bDucking", - "DT_Local.m_bInDuckJump", - "m_chAreaBits.000", - "DT_Local.m_flDuckJumpTime", - "DT_Local.m_flJumpTime", - "m_chAreaBits.001", - "m_chAreaBits.002", - "DT_Local.m_vecPunchAngleVel", - "DT_Local.m_bDrawViewmodel", - "DT_Local.m_bWearingSuit", - "DT_Local.m_bPoisoned", - "DT_Local.m_flStepSize", - "DT_Local.m_bAllowAutoMovement", - "DT_Local.m_skybox3d.scale", - "DT_Local.m_skybox3d.origin", - "DT_Local.m_skybox3d.area", - "DT_Local.m_skybox3d.fog.enable", - "DT_Local.m_skybox3d.fog.blend", - "DT_Local.m_skybox3d.fog.dirPrimary", - "DT_Local.m_skybox3d.fog.colorPrimary", - "DT_Local.m_skybox3d.fog.colorSecondary", - "DT_Local.m_skybox3d.fog.start", - "DT_Local.m_skybox3d.fog.end", - "DT_Local.m_skybox3d.fog.maxdensity", - "DT_Local.m_PlayerFog.m_hCtrl", - "DT_Local.m_audio.localSound[0]", - "DT_Local.m_audio.localSound[1]", - "DT_Local.m_audio.localSound[2]", - "DT_Local.m_audio.localSound[3]", - "DT_Local.m_audio.localSound[4]", - "DT_Local.m_audio.localSound[5]", - "DT_Local.m_audio.localSound[6]", - "DT_Local.m_audio.localSound[7]", - "DT_Local.m_audio.soundscapeIndex", - "DT_Local.m_audio.localBits", - "DT_Local.m_audio.ent", - "m_iAmmo.000", - "m_iAmmo.001", - "m_iAmmo.002", - "m_iAmmo.003", - "m_iAmmo.004", - "m_iAmmo.005", - "m_iAmmo.006", - "m_iAmmo.007", - "m_iAmmo.008", - "m_iAmmo.009", - "m_iAmmo.010", - "m_iAmmo.011", - "m_iAmmo.012", - "m_iAmmo.013", - "m_iAmmo.014", - "m_iAmmo.015", - "m_iAmmo.016", - "m_iAmmo.017", - "m_iAmmo.018", - "m_iAmmo.019", - "m_iAmmo.020", - "m_iAmmo.021", - "m_iAmmo.022", - "m_iAmmo.023", - "m_iAmmo.024", - "m_iAmmo.025", - "m_iAmmo.026", - "m_iAmmo.027", - "m_iAmmo.028", - "m_iAmmo.029", - "m_iAmmo.030", - "m_iAmmo.031", - "DT_LocalPlayerExclusive.m_vecViewOffset[0]", - "DT_LocalPlayerExclusive.m_vecViewOffset[1]", - "m_chAreaBits.003", - "DT_LocalPlayerExclusive.m_flFriction", - "DT_LocalPlayerExclusive.m_fOnTarget", - "m_chAreaBits.004", - "DT_LocalPlayerExclusive.m_nNextThinkTick", - "DT_LocalPlayerExclusive.m_hLastWeapon", - "m_chAreaBits.005", - "m_chAreaBits.006", - "m_chAreaBits.007", - "m_chAreaBits.008", - "DT_LocalPlayerExclusive.m_vecBaseVelocity", - "DT_LocalPlayerExclusive.m_hConstraintEntity", - "DT_LocalPlayerExclusive.m_vecConstraintCenter", - "DT_LocalPlayerExclusive.m_flConstraintRadius", - "DT_LocalPlayerExclusive.m_flConstraintWidth", - "DT_LocalPlayerExclusive.m_flConstraintSpeedFactor", - "DT_LocalPlayerExclusive.m_flDeathTime", - "DT_LocalPlayerExclusive.m_nWaterLevel", - "DT_LocalPlayerExclusive.m_flLaggedMovementValue" - ], - "DT_Local": [ - "DT_Local.m_flDucktime", - "DT_Local.m_flFallVelocity", - "DT_Local.m_vecPunchAngle", - "m_chAreaBits.003", - "m_chAreaBits.004", - "m_chAreaBits.005", - "m_chAreaBits.006", - "m_chAreaBits.007", - "m_chAreaBits.008", - "m_chAreaBits.009", - "m_chAreaBits.010", - "m_chAreaBits.011", - "m_chAreaBits.012", - "m_chAreaBits.013", - "m_chAreaBits.014", - "m_chAreaBits.015", - "m_chAreaBits.016", - "m_chAreaBits.017", - "m_chAreaBits.018", - "m_chAreaBits.019", - "m_chAreaBits.020", - "m_chAreaBits.021", - "m_chAreaBits.022", - "m_chAreaBits.023", - "m_chAreaBits.024", - "m_chAreaBits.025", - "m_chAreaBits.026", - "m_chAreaBits.027", - "m_chAreaBits.028", - "m_chAreaBits.029", - "m_chAreaBits.030", - "m_chAreaBits.031", - "m_chAreaPortalBits.000", - "m_chAreaPortalBits.001", - "m_chAreaPortalBits.002", - "m_chAreaPortalBits.003", - "m_chAreaPortalBits.004", - "m_chAreaPortalBits.005", - "m_chAreaPortalBits.006", - "m_chAreaPortalBits.007", - "m_chAreaPortalBits.008", - "m_chAreaPortalBits.009", - "m_chAreaPortalBits.010", - "m_chAreaPortalBits.011", - "m_chAreaPortalBits.012", - "m_chAreaPortalBits.013", - "m_chAreaPortalBits.014", - "m_chAreaPortalBits.015", - "m_chAreaPortalBits.016", - "m_chAreaPortalBits.017", - "m_chAreaPortalBits.018", - "m_chAreaPortalBits.019", - "m_chAreaPortalBits.020", - "m_chAreaPortalBits.021", - "m_chAreaPortalBits.022", - "m_chAreaPortalBits.023", - "DT_Local.m_iHideHUD", - "DT_Local.m_flFOVRate", - "DT_Local.m_bDucked", - "DT_Local.m_bDucking", - "DT_Local.m_bInDuckJump", - "m_chAreaBits.000", - "DT_Local.m_flDuckJumpTime", - "DT_Local.m_flJumpTime", - "m_chAreaBits.001", - "m_chAreaBits.002", - "DT_Local.m_vecPunchAngleVel", - "DT_Local.m_bDrawViewmodel", - "DT_Local.m_bWearingSuit", - "DT_Local.m_bPoisoned", - "DT_Local.m_flStepSize", - "DT_Local.m_bAllowAutoMovement", - "DT_Local.m_skybox3d.scale", - "DT_Local.m_skybox3d.origin", - "DT_Local.m_skybox3d.area", - "DT_Local.m_skybox3d.fog.enable", - "DT_Local.m_skybox3d.fog.blend", - "DT_Local.m_skybox3d.fog.dirPrimary", - "DT_Local.m_skybox3d.fog.colorPrimary", - "DT_Local.m_skybox3d.fog.colorSecondary", - "DT_Local.m_skybox3d.fog.start", - "DT_Local.m_skybox3d.fog.end", - "DT_Local.m_skybox3d.fog.maxdensity", - "DT_Local.m_PlayerFog.m_hCtrl", - "DT_Local.m_audio.localSound[0]", - "DT_Local.m_audio.localSound[1]", - "DT_Local.m_audio.localSound[2]", - "DT_Local.m_audio.localSound[3]", - "DT_Local.m_audio.localSound[4]", - "DT_Local.m_audio.localSound[5]", - "DT_Local.m_audio.localSound[6]", - "DT_Local.m_audio.localSound[7]", - "DT_Local.m_audio.soundscapeIndex", - "DT_Local.m_audio.localBits", - "DT_Local.m_audio.ent" - ], - "m_chAreaBits": [ - "m_chAreaBits.000", - "m_chAreaBits.001", - "m_chAreaBits.002", - "m_chAreaBits.003", - "m_chAreaBits.004", - "m_chAreaBits.005", - "m_chAreaBits.006", - "m_chAreaBits.007", - "m_chAreaBits.008", - "m_chAreaBits.009", - "m_chAreaBits.010", - "m_chAreaBits.011", - "m_chAreaBits.012", - "m_chAreaBits.013", - "m_chAreaBits.014", - "m_chAreaBits.015", - "m_chAreaBits.016", - "m_chAreaBits.017", - "m_chAreaBits.018", - "m_chAreaBits.019", - "m_chAreaBits.020", - "m_chAreaBits.021", - "m_chAreaBits.022", - "m_chAreaBits.023", - "m_chAreaBits.024", - "m_chAreaBits.025", - "m_chAreaBits.026", - "m_chAreaBits.027", - "m_chAreaBits.028", - "m_chAreaBits.029", - "m_chAreaBits.030", - "m_chAreaBits.031" - ], - "m_chAreaPortalBits": [ - "m_chAreaPortalBits.000", - "m_chAreaPortalBits.001", - "m_chAreaPortalBits.002", - "m_chAreaPortalBits.003", - "m_chAreaPortalBits.004", - "m_chAreaPortalBits.005", - "m_chAreaPortalBits.006", - "m_chAreaPortalBits.007", - "m_chAreaPortalBits.008", - "m_chAreaPortalBits.009", - "m_chAreaPortalBits.010", - "m_chAreaPortalBits.011", - "m_chAreaPortalBits.012", - "m_chAreaPortalBits.013", - "m_chAreaPortalBits.014", - "m_chAreaPortalBits.015", - "m_chAreaPortalBits.016", - "m_chAreaPortalBits.017", - "m_chAreaPortalBits.018", - "m_chAreaPortalBits.019", - "m_chAreaPortalBits.020", - "m_chAreaPortalBits.021", - "m_chAreaPortalBits.022", - "m_chAreaPortalBits.023" - ], - "m_iAmmo": [ - "m_iAmmo.000", - "m_iAmmo.001", - "m_iAmmo.002", - "m_iAmmo.003", - "m_iAmmo.004", - "m_iAmmo.005", - "m_iAmmo.006", - "m_iAmmo.007", - "m_iAmmo.008", - "m_iAmmo.009", - "m_iAmmo.010", - "m_iAmmo.011", - "m_iAmmo.012", - "m_iAmmo.013", - "m_iAmmo.014", - "m_iAmmo.015", - "m_iAmmo.016", - "m_iAmmo.017", - "m_iAmmo.018", - "m_iAmmo.019", - "m_iAmmo.020", - "m_iAmmo.021", - "m_iAmmo.022", - "m_iAmmo.023", - "m_iAmmo.024", - "m_iAmmo.025", - "m_iAmmo.026", - "m_iAmmo.027", - "m_iAmmo.028", - "m_iAmmo.029", - "m_iAmmo.030", - "m_iAmmo.031" - ], - "m_bCPIsVisible": [ - "m_bCPIsVisible.000", - "m_bCPIsVisible.001", - "m_bCPIsVisible.002", - "m_bCPIsVisible.003", - "m_bCPIsVisible.004", - "m_bCPIsVisible.005", - "m_bCPIsVisible.006", - "m_bCPIsVisible.007" - ], - "m_flLazyCapPerc": [ - "m_flLazyCapPerc.000", - "m_flLazyCapPerc.001", - "m_flLazyCapPerc.002", - "m_flLazyCapPerc.003", - "m_flLazyCapPerc.004", - "m_flLazyCapPerc.005", - "m_flLazyCapPerc.006", - "m_flLazyCapPerc.007" - ], - "m_iTeamIcons": [ - "m_iTeamIcons.000", - "m_iTeamIcons.001", - "m_iTeamIcons.002", - "m_iTeamIcons.003", - "m_iTeamIcons.004", - "m_iTeamIcons.005", - "m_iTeamIcons.006", - "m_iTeamIcons.007", - "m_iTeamIcons.008", - "m_iTeamIcons.009", - "m_iTeamIcons.010", - "m_iTeamIcons.011", - "m_iTeamIcons.012", - "m_iTeamIcons.013", - "m_iTeamIcons.014", - "m_iTeamIcons.015", - "m_iTeamIcons.016", - "m_iTeamIcons.017", - "m_iTeamIcons.018", - "m_iTeamIcons.019", - "m_iTeamIcons.020", - "m_iTeamIcons.021", - "m_iTeamIcons.022", - "m_iTeamIcons.023", - "m_iTeamIcons.024", - "m_iTeamIcons.025", - "m_iTeamIcons.026", - "m_iTeamIcons.027", - "m_iTeamIcons.028", - "m_iTeamIcons.029", - "m_iTeamIcons.030", - "m_iTeamIcons.031", - "m_iTeamIcons.032", - "m_iTeamIcons.033", - "m_iTeamIcons.034", - "m_iTeamIcons.035", - "m_iTeamIcons.036", - "m_iTeamIcons.037", - "m_iTeamIcons.038", - "m_iTeamIcons.039", - "m_iTeamIcons.040", - "m_iTeamIcons.041", - "m_iTeamIcons.042", - "m_iTeamIcons.043", - "m_iTeamIcons.044", - "m_iTeamIcons.045", - "m_iTeamIcons.046", - "m_iTeamIcons.047", - "m_iTeamIcons.048", - "m_iTeamIcons.049", - "m_iTeamIcons.050", - "m_iTeamIcons.051", - "m_iTeamIcons.052", - "m_iTeamIcons.053", - "m_iTeamIcons.054", - "m_iTeamIcons.055", - "m_iTeamIcons.056", - "m_iTeamIcons.057", - "m_iTeamIcons.058", - "m_iTeamIcons.059", - "m_iTeamIcons.060", - "m_iTeamIcons.061", - "m_iTeamIcons.062", - "m_iTeamIcons.063" + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iTeamOverlays": [ - "m_iTeamOverlays.000", - "m_iTeamOverlays.001", - "m_iTeamOverlays.002", - "m_iTeamOverlays.003", - "m_iTeamOverlays.004", - "m_iTeamOverlays.005", - "m_iTeamOverlays.006", - "m_iTeamOverlays.007", - "m_iTeamOverlays.008", - "m_iTeamOverlays.009", - "m_iTeamOverlays.010", - "m_iTeamOverlays.011", - "m_iTeamOverlays.012", - "m_iTeamOverlays.013", - "m_iTeamOverlays.014", - "m_iTeamOverlays.015", - "m_iTeamOverlays.016", - "m_iTeamOverlays.017", - "m_iTeamOverlays.018", - "m_iTeamOverlays.019", - "m_iTeamOverlays.020", - "m_iTeamOverlays.021", - "m_iTeamOverlays.022", - "m_iTeamOverlays.023", - "m_iTeamOverlays.024", - "m_iTeamOverlays.025", - "m_iTeamOverlays.026", - "m_iTeamOverlays.027", - "m_iTeamOverlays.028", - "m_iTeamOverlays.029", - "m_iTeamOverlays.030", - "m_iTeamOverlays.031", - "m_iTeamOverlays.032", - "m_iTeamOverlays.033", - "m_iTeamOverlays.034", - "m_iTeamOverlays.035", - "m_iTeamOverlays.036", - "m_iTeamOverlays.037", - "m_iTeamOverlays.038", - "m_iTeamOverlays.039", - "m_iTeamOverlays.040", - "m_iTeamOverlays.041", - "m_iTeamOverlays.042", - "m_iTeamOverlays.043", - "m_iTeamOverlays.044", - "m_iTeamOverlays.045", - "m_iTeamOverlays.046", - "m_iTeamOverlays.047", - "m_iTeamOverlays.048", - "m_iTeamOverlays.049", - "m_iTeamOverlays.050", - "m_iTeamOverlays.051", - "m_iTeamOverlays.052", - "m_iTeamOverlays.053", - "m_iTeamOverlays.054", - "m_iTeamOverlays.055", - "m_iTeamOverlays.056", - "m_iTeamOverlays.057", - "m_iTeamOverlays.058", - "m_iTeamOverlays.059", - "m_iTeamOverlays.060", - "m_iTeamOverlays.061", - "m_iTeamOverlays.062", - "m_iTeamOverlays.063" + "DT_TFWeaponRobotArm": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponRobotArm.m_hRobotArm" ], - "m_iTeamReqCappers": [ - "m_iTeamReqCappers.000", - "m_iTeamReqCappers.001", - "m_iTeamReqCappers.002", - "m_iTeamReqCappers.003", - "m_iTeamReqCappers.004", - "m_iTeamReqCappers.005", - "m_iTeamReqCappers.006", - "m_iTeamReqCappers.007", - "m_iTeamReqCappers.008", - "m_iTeamReqCappers.009", - "m_iTeamReqCappers.010", - "m_iTeamReqCappers.011", - "m_iTeamReqCappers.012", - "m_iTeamReqCappers.013", - "m_iTeamReqCappers.014", - "m_iTeamReqCappers.015", - "m_iTeamReqCappers.016", - "m_iTeamReqCappers.017", - "m_iTeamReqCappers.018", - "m_iTeamReqCappers.019", - "m_iTeamReqCappers.020", - "m_iTeamReqCappers.021", - "m_iTeamReqCappers.022", - "m_iTeamReqCappers.023", - "m_iTeamReqCappers.024", - "m_iTeamReqCappers.025", - "m_iTeamReqCappers.026", - "m_iTeamReqCappers.027", - "m_iTeamReqCappers.028", - "m_iTeamReqCappers.029", - "m_iTeamReqCappers.030", - "m_iTeamReqCappers.031", - "m_iTeamReqCappers.032", - "m_iTeamReqCappers.033", - "m_iTeamReqCappers.034", - "m_iTeamReqCappers.035", - "m_iTeamReqCappers.036", - "m_iTeamReqCappers.037", - "m_iTeamReqCappers.038", - "m_iTeamReqCappers.039", - "m_iTeamReqCappers.040", - "m_iTeamReqCappers.041", - "m_iTeamReqCappers.042", - "m_iTeamReqCappers.043", - "m_iTeamReqCappers.044", - "m_iTeamReqCappers.045", - "m_iTeamReqCappers.046", - "m_iTeamReqCappers.047", - "m_iTeamReqCappers.048", - "m_iTeamReqCappers.049", - "m_iTeamReqCappers.050", - "m_iTeamReqCappers.051", - "m_iTeamReqCappers.052", - "m_iTeamReqCappers.053", - "m_iTeamReqCappers.054", - "m_iTeamReqCappers.055", - "m_iTeamReqCappers.056", - "m_iTeamReqCappers.057", - "m_iTeamReqCappers.058", - "m_iTeamReqCappers.059", - "m_iTeamReqCappers.060", - "m_iTeamReqCappers.061", - "m_iTeamReqCappers.062", - "m_iTeamReqCappers.063" + "DT_TFWeaponSapper": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "m_aBuildableObjectTypes.000", + "m_aBuildableObjectTypes.001", + "m_aBuildableObjectTypes.002", + "m_aBuildableObjectTypes.003", + "DT_BuilderLocalData.m_iObjectType", + "DT_BuilderLocalData.m_hObjectBeingBuilt", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponBuilder.m_iBuildState", + "DT_TFWeaponBuilder.m_iObjectMode", + "DT_TFWeaponBuilder.m_flWheatleyTalkingUntil", + "DT_TFWeaponSapper.m_flChargeBeginTime" ], - "m_flTeamCapTime": [ - "m_flTeamCapTime.000", - "m_flTeamCapTime.001", - "m_flTeamCapTime.002", - "m_flTeamCapTime.003", - "m_flTeamCapTime.004", - "m_flTeamCapTime.005", - "m_flTeamCapTime.006", - "m_flTeamCapTime.007", - "m_flTeamCapTime.008", - "m_flTeamCapTime.009", - "m_flTeamCapTime.010", - "m_flTeamCapTime.011", - "m_flTeamCapTime.012", - "m_flTeamCapTime.013", - "m_flTeamCapTime.014", - "m_flTeamCapTime.015", - "m_flTeamCapTime.016", - "m_flTeamCapTime.017", - "m_flTeamCapTime.018", - "m_flTeamCapTime.019", - "m_flTeamCapTime.020", - "m_flTeamCapTime.021", - "m_flTeamCapTime.022", - "m_flTeamCapTime.023", - "m_flTeamCapTime.024", - "m_flTeamCapTime.025", - "m_flTeamCapTime.026", - "m_flTeamCapTime.027", - "m_flTeamCapTime.028", - "m_flTeamCapTime.029", - "m_flTeamCapTime.030", - "m_flTeamCapTime.031", - "m_flTeamCapTime.032", - "m_flTeamCapTime.033", - "m_flTeamCapTime.034", - "m_flTeamCapTime.035", - "m_flTeamCapTime.036", - "m_flTeamCapTime.037", - "m_flTeamCapTime.038", - "m_flTeamCapTime.039", - "m_flTeamCapTime.040", - "m_flTeamCapTime.041", - "m_flTeamCapTime.042", - "m_flTeamCapTime.043", - "m_flTeamCapTime.044", - "m_flTeamCapTime.045", - "m_flTeamCapTime.046", - "m_flTeamCapTime.047", - "m_flTeamCapTime.048", - "m_flTeamCapTime.049", - "m_flTeamCapTime.050", - "m_flTeamCapTime.051", - "m_flTeamCapTime.052", - "m_flTeamCapTime.053", - "m_flTeamCapTime.054", - "m_flTeamCapTime.055", - "m_flTeamCapTime.056", - "m_flTeamCapTime.057", - "m_flTeamCapTime.058", - "m_flTeamCapTime.059", - "m_flTeamCapTime.060", - "m_flTeamCapTime.061", - "m_flTeamCapTime.062", - "m_flTeamCapTime.063" + "DT_TFWeaponShovel": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iPreviousPoints": [ - "m_iPreviousPoints.000", - "m_iPreviousPoints.001", - "m_iPreviousPoints.002", - "m_iPreviousPoints.003", - "m_iPreviousPoints.004", - "m_iPreviousPoints.005", - "m_iPreviousPoints.006", - "m_iPreviousPoints.007", - "m_iPreviousPoints.008", - "m_iPreviousPoints.009", - "m_iPreviousPoints.010", - "m_iPreviousPoints.011", - "m_iPreviousPoints.012", - "m_iPreviousPoints.013", - "m_iPreviousPoints.014", - "m_iPreviousPoints.015", - "m_iPreviousPoints.016", - "m_iPreviousPoints.017", - "m_iPreviousPoints.018", - "m_iPreviousPoints.019", - "m_iPreviousPoints.020", - "m_iPreviousPoints.021", - "m_iPreviousPoints.022", - "m_iPreviousPoints.023", - "m_iPreviousPoints.024", - "m_iPreviousPoints.025", - "m_iPreviousPoints.026", - "m_iPreviousPoints.027", - "m_iPreviousPoints.028", - "m_iPreviousPoints.029", - "m_iPreviousPoints.030", - "m_iPreviousPoints.031", - "m_iPreviousPoints.032", - "m_iPreviousPoints.033", - "m_iPreviousPoints.034", - "m_iPreviousPoints.035", - "m_iPreviousPoints.036", - "m_iPreviousPoints.037", - "m_iPreviousPoints.038", - "m_iPreviousPoints.039", - "m_iPreviousPoints.040", - "m_iPreviousPoints.041", - "m_iPreviousPoints.042", - "m_iPreviousPoints.043", - "m_iPreviousPoints.044", - "m_iPreviousPoints.045", - "m_iPreviousPoints.046", - "m_iPreviousPoints.047", - "m_iPreviousPoints.048", - "m_iPreviousPoints.049", - "m_iPreviousPoints.050", - "m_iPreviousPoints.051", - "m_iPreviousPoints.052", - "m_iPreviousPoints.053", - "m_iPreviousPoints.054", - "m_iPreviousPoints.055", - "m_iPreviousPoints.056", - "m_iPreviousPoints.057", - "m_iPreviousPoints.058", - "m_iPreviousPoints.059", - "m_iPreviousPoints.060", - "m_iPreviousPoints.061", - "m_iPreviousPoints.062", - "m_iPreviousPoints.063", - "m_iPreviousPoints.064", - "m_iPreviousPoints.065", - "m_iPreviousPoints.066", - "m_iPreviousPoints.067", - "m_iPreviousPoints.068", - "m_iPreviousPoints.069", - "m_iPreviousPoints.070", - "m_iPreviousPoints.071", - "m_iPreviousPoints.072", - "m_iPreviousPoints.073", - "m_iPreviousPoints.074", - "m_iPreviousPoints.075", - "m_iPreviousPoints.076", - "m_iPreviousPoints.077", - "m_iPreviousPoints.078", - "m_iPreviousPoints.079", - "m_iPreviousPoints.080", - "m_iPreviousPoints.081", - "m_iPreviousPoints.082", - "m_iPreviousPoints.083", - "m_iPreviousPoints.084", - "m_iPreviousPoints.085", - "m_iPreviousPoints.086", - "m_iPreviousPoints.087", - "m_iPreviousPoints.088", - "m_iPreviousPoints.089", - "m_iPreviousPoints.090", - "m_iPreviousPoints.091", - "m_iPreviousPoints.092", - "m_iPreviousPoints.093", - "m_iPreviousPoints.094", - "m_iPreviousPoints.095", - "m_iPreviousPoints.096", - "m_iPreviousPoints.097", - "m_iPreviousPoints.098", - "m_iPreviousPoints.099", - "m_iPreviousPoints.100", - "m_iPreviousPoints.101", - "m_iPreviousPoints.102", - "m_iPreviousPoints.103", - "m_iPreviousPoints.104", - "m_iPreviousPoints.105", - "m_iPreviousPoints.106", - "m_iPreviousPoints.107", - "m_iPreviousPoints.108", - "m_iPreviousPoints.109", - "m_iPreviousPoints.110", - "m_iPreviousPoints.111", - "m_iPreviousPoints.112", - "m_iPreviousPoints.113", - "m_iPreviousPoints.114", - "m_iPreviousPoints.115", - "m_iPreviousPoints.116", - "m_iPreviousPoints.117", - "m_iPreviousPoints.118", - "m_iPreviousPoints.119", - "m_iPreviousPoints.120", - "m_iPreviousPoints.121", - "m_iPreviousPoints.122", - "m_iPreviousPoints.123", - "m_iPreviousPoints.124", - "m_iPreviousPoints.125", - "m_iPreviousPoints.126", - "m_iPreviousPoints.127", - "m_iPreviousPoints.128", - "m_iPreviousPoints.129", - "m_iPreviousPoints.130", - "m_iPreviousPoints.131", - "m_iPreviousPoints.132", - "m_iPreviousPoints.133", - "m_iPreviousPoints.134", - "m_iPreviousPoints.135", - "m_iPreviousPoints.136", - "m_iPreviousPoints.137", - "m_iPreviousPoints.138", - "m_iPreviousPoints.139", - "m_iPreviousPoints.140", - "m_iPreviousPoints.141", - "m_iPreviousPoints.142", - "m_iPreviousPoints.143", - "m_iPreviousPoints.144", - "m_iPreviousPoints.145", - "m_iPreviousPoints.146", - "m_iPreviousPoints.147", - "m_iPreviousPoints.148", - "m_iPreviousPoints.149", - "m_iPreviousPoints.150", - "m_iPreviousPoints.151", - "m_iPreviousPoints.152", - "m_iPreviousPoints.153", - "m_iPreviousPoints.154", - "m_iPreviousPoints.155", - "m_iPreviousPoints.156", - "m_iPreviousPoints.157", - "m_iPreviousPoints.158", - "m_iPreviousPoints.159", - "m_iPreviousPoints.160", - "m_iPreviousPoints.161", - "m_iPreviousPoints.162", - "m_iPreviousPoints.163", - "m_iPreviousPoints.164", - "m_iPreviousPoints.165", - "m_iPreviousPoints.166", - "m_iPreviousPoints.167", - "m_iPreviousPoints.168", - "m_iPreviousPoints.169", - "m_iPreviousPoints.170", - "m_iPreviousPoints.171", - "m_iPreviousPoints.172", - "m_iPreviousPoints.173", - "m_iPreviousPoints.174", - "m_iPreviousPoints.175", - "m_iPreviousPoints.176", - "m_iPreviousPoints.177", - "m_iPreviousPoints.178", - "m_iPreviousPoints.179", - "m_iPreviousPoints.180", - "m_iPreviousPoints.181", - "m_iPreviousPoints.182", - "m_iPreviousPoints.183", - "m_iPreviousPoints.184", - "m_iPreviousPoints.185", - "m_iPreviousPoints.186", - "m_iPreviousPoints.187", - "m_iPreviousPoints.188", - "m_iPreviousPoints.189", - "m_iPreviousPoints.190", - "m_iPreviousPoints.191" + "DT_TFWeaponSpellBook": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponThrowable.m_flChargeBeginTime", + "DT_TFWeaponSpellBook.m_iSelectedSpellIndex", + "DT_TFWeaponSpellBook.m_iSpellCharges", + "DT_TFWeaponSpellBook.m_flTimeNextSpell", + "DT_TFWeaponSpellBook.m_bFiredAttack" ], - "m_bTeamCanCap": [ - "m_bTeamCanCap.000", - "m_bTeamCanCap.001", - "m_bTeamCanCap.002", - "m_bTeamCanCap.003", - "m_bTeamCanCap.004", - "m_bTeamCanCap.005", - "m_bTeamCanCap.006", - "m_bTeamCanCap.007", - "m_bTeamCanCap.008", - "m_bTeamCanCap.009", - "m_bTeamCanCap.010", - "m_bTeamCanCap.011", - "m_bTeamCanCap.012", - "m_bTeamCanCap.013", - "m_bTeamCanCap.014", - "m_bTeamCanCap.015", - "m_bTeamCanCap.016", - "m_bTeamCanCap.017", - "m_bTeamCanCap.018", - "m_bTeamCanCap.019", - "m_bTeamCanCap.020", - "m_bTeamCanCap.021", - "m_bTeamCanCap.022", - "m_bTeamCanCap.023", - "m_bTeamCanCap.024", - "m_bTeamCanCap.025", - "m_bTeamCanCap.026", - "m_bTeamCanCap.027", - "m_bTeamCanCap.028", - "m_bTeamCanCap.029", - "m_bTeamCanCap.030", - "m_bTeamCanCap.031", - "m_bTeamCanCap.032", - "m_bTeamCanCap.033", - "m_bTeamCanCap.034", - "m_bTeamCanCap.035", - "m_bTeamCanCap.036", - "m_bTeamCanCap.037", - "m_bTeamCanCap.038", - "m_bTeamCanCap.039", - "m_bTeamCanCap.040", - "m_bTeamCanCap.041", - "m_bTeamCanCap.042", - "m_bTeamCanCap.043", - "m_bTeamCanCap.044", - "m_bTeamCanCap.045", - "m_bTeamCanCap.046", - "m_bTeamCanCap.047", - "m_bTeamCanCap.048", - "m_bTeamCanCap.049", - "m_bTeamCanCap.050", - "m_bTeamCanCap.051", - "m_bTeamCanCap.052", - "m_bTeamCanCap.053", - "m_bTeamCanCap.054", - "m_bTeamCanCap.055", - "m_bTeamCanCap.056", - "m_bTeamCanCap.057", - "m_bTeamCanCap.058", - "m_bTeamCanCap.059", - "m_bTeamCanCap.060", - "m_bTeamCanCap.061", - "m_bTeamCanCap.062", - "m_bTeamCanCap.063" + "DT_TFWeaponStickBomb": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponBottle.m_bBroken", + "DT_TFWeaponStickBomb.m_iDetonated" ], - "m_iTeamBaseIcons": [ - "m_iTeamBaseIcons.000", - "m_iTeamBaseIcons.001", - "m_iTeamBaseIcons.002", - "m_iTeamBaseIcons.003", - "m_iTeamBaseIcons.004", - "m_iTeamBaseIcons.005", - "m_iTeamBaseIcons.006", - "m_iTeamBaseIcons.007", - "m_iTeamBaseIcons.008", - "m_iTeamBaseIcons.009", - "m_iTeamBaseIcons.010", - "m_iTeamBaseIcons.011", - "m_iTeamBaseIcons.012", - "m_iTeamBaseIcons.013", - "m_iTeamBaseIcons.014", - "m_iTeamBaseIcons.015", - "m_iTeamBaseIcons.016", - "m_iTeamBaseIcons.017", - "m_iTeamBaseIcons.018", - "m_iTeamBaseIcons.019", - "m_iTeamBaseIcons.020", - "m_iTeamBaseIcons.021", - "m_iTeamBaseIcons.022", - "m_iTeamBaseIcons.023", - "m_iTeamBaseIcons.024", - "m_iTeamBaseIcons.025", - "m_iTeamBaseIcons.026", - "m_iTeamBaseIcons.027", - "m_iTeamBaseIcons.028", - "m_iTeamBaseIcons.029", - "m_iTeamBaseIcons.030", - "m_iTeamBaseIcons.031" + "DT_TFWeaponSword": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iBaseControlPoints": [ - "m_iBaseControlPoints.000", - "m_iBaseControlPoints.001", - "m_iBaseControlPoints.002", - "m_iBaseControlPoints.003", - "m_iBaseControlPoints.004", - "m_iBaseControlPoints.005", - "m_iBaseControlPoints.006", - "m_iBaseControlPoints.007", - "m_iBaseControlPoints.008", - "m_iBaseControlPoints.009", - "m_iBaseControlPoints.010", - "m_iBaseControlPoints.011", - "m_iBaseControlPoints.012", - "m_iBaseControlPoints.013", - "m_iBaseControlPoints.014", - "m_iBaseControlPoints.015", - "m_iBaseControlPoints.016", - "m_iBaseControlPoints.017", - "m_iBaseControlPoints.018", - "m_iBaseControlPoints.019", - "m_iBaseControlPoints.020", - "m_iBaseControlPoints.021", - "m_iBaseControlPoints.022", - "m_iBaseControlPoints.023", - "m_iBaseControlPoints.024", - "m_iBaseControlPoints.025", - "m_iBaseControlPoints.026", - "m_iBaseControlPoints.027", - "m_iBaseControlPoints.028", - "m_iBaseControlPoints.029", - "m_iBaseControlPoints.030", - "m_iBaseControlPoints.031" + "DT_TFWeaponThrowable": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_TFWeaponThrowable.m_flChargeBeginTime" ], - "m_bInMiniRound": [ - "m_bInMiniRound.000", - "m_bInMiniRound.001", - "m_bInMiniRound.002", - "m_bInMiniRound.003", - "m_bInMiniRound.004", - "m_bInMiniRound.005", - "m_bInMiniRound.006", - "m_bInMiniRound.007" + "DT_TFWeaponWrench": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iWarnOnCap": [ - "m_iWarnOnCap.000", - "m_iWarnOnCap.001", - "m_iWarnOnCap.002", - "m_iWarnOnCap.003", - "m_iWarnOnCap.004", - "m_iWarnOnCap.005", - "m_iWarnOnCap.006", - "m_iWarnOnCap.007" + "DT_TFWearable": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith" ], - "m_flPathDistance": [ - "m_flPathDistance.000", - "m_flPathDistance.001", - "m_flPathDistance.002", - "m_flPathDistance.003", - "m_flPathDistance.004", - "m_flPathDistance.005", - "m_flPathDistance.006", - "m_flPathDistance.007" + "DT_TFWearableDemoShield": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith" ], - "m_iCPGroup": [ - "m_iCPGroup.000", - "m_iCPGroup.001", - "m_iCPGroup.002", - "m_iCPGroup.003", - "m_iCPGroup.004", - "m_iCPGroup.005", - "m_iCPGroup.006", - "m_iCPGroup.007" + "DT_TFWearableItem": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale" ], - "m_bCPLocked": [ - "m_bCPLocked.000", - "m_bCPLocked.001", - "m_bCPLocked.002", - "m_bCPLocked.003", - "m_bCPLocked.004", - "m_bCPLocked.005", - "m_bCPLocked.006", - "m_bCPLocked.007" + "DT_TFWearableLevelableItem": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith", + "DT_TFWearableLevelableItem.m_unLevel" ], - "m_nNumNodeHillData": [ - "m_nNumNodeHillData.000", - "m_nNumNodeHillData.001", - "m_nNumNodeHillData.002", - "m_nNumNodeHillData.003" + "DT_TFWearableRobotArm": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith" ], - "m_flNodeHillData": [ - "m_flNodeHillData.000", - "m_flNodeHillData.001", - "m_flNodeHillData.002", - "m_flNodeHillData.003", - "m_flNodeHillData.004", - "m_flNodeHillData.005", - "m_flNodeHillData.006", - "m_flNodeHillData.007", - "m_flNodeHillData.008", - "m_flNodeHillData.009", - "m_flNodeHillData.010", - "m_flNodeHillData.011", - "m_flNodeHillData.012", - "m_flNodeHillData.013", - "m_flNodeHillData.014", - "m_flNodeHillData.015", - "m_flNodeHillData.016", - "m_flNodeHillData.017", - "m_flNodeHillData.018", - "m_flNodeHillData.019", - "m_flNodeHillData.020", - "m_flNodeHillData.021", - "m_flNodeHillData.022", - "m_flNodeHillData.023", - "m_flNodeHillData.024", - "m_flNodeHillData.025", - "m_flNodeHillData.026", - "m_flNodeHillData.027", - "m_flNodeHillData.028", - "m_flNodeHillData.029", - "m_flNodeHillData.030", - "m_flNodeHillData.031", - "m_flNodeHillData.032", - "m_flNodeHillData.033", - "m_flNodeHillData.034", - "m_flNodeHillData.035", - "m_flNodeHillData.036", - "m_flNodeHillData.037", - "m_flNodeHillData.038", - "m_flNodeHillData.039" + "DT_TFWearableVM": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_TFWearable.m_bDisguiseWearable", + "DT_TFWearable.m_hWeaponAssociatedWith" ], - "m_bTrackAlarm": [ - "m_bTrackAlarm.000", - "m_bTrackAlarm.001", - "m_bTrackAlarm.002", - "m_bTrackAlarm.003" + "DT_Team": [ + "DT_Team.m_iTeamNum", + "DT_Team.m_iScore", + "DT_Team.m_iRoundsWon", + "DT_Team.m_szTeamname", + "DT_Team.\"player_array\"" ], - "m_flUnlockTimes": [ - "m_flUnlockTimes.000", - "m_flUnlockTimes.001", - "m_flUnlockTimes.002", - "m_flUnlockTimes.003", - "m_flUnlockTimes.004", - "m_flUnlockTimes.005", - "m_flUnlockTimes.006", - "m_flUnlockTimes.007" + "DT_TeamRoundTimer": [ + "DT_TeamRoundTimer.m_bTimerPaused", + "DT_TeamRoundTimer.m_flTimeRemaining", + "DT_TeamRoundTimer.m_flTimerEndTime", + "DT_TeamRoundTimer.m_nTimerMaxLength", + "DT_TeamRoundTimer.m_bIsDisabled", + "DT_TeamRoundTimer.m_bShowInHUD", + "DT_TeamRoundTimer.m_nTimerLength", + "DT_TeamRoundTimer.m_nTimerInitialLength", + "DT_TeamRoundTimer.m_bAutoCountdown", + "DT_TeamRoundTimer.m_nSetupTimeLength", + "DT_TeamRoundTimer.m_nState", + "DT_TeamRoundTimer.m_bStartPaused", + "DT_TeamRoundTimer.m_bShowTimeRemaining", + "DT_TeamRoundTimer.m_bStopWatchTimer", + "DT_TeamRoundTimer.m_bInCaptureWatchState", + "DT_TeamRoundTimer.m_flTotalTime" ], - "m_bHillIsDownhill": [ - "m_bHillIsDownhill.000", - "m_bHillIsDownhill.001", - "m_bHillIsDownhill.002", - "m_bHillIsDownhill.003", - "m_bHillIsDownhill.004", - "m_bHillIsDownhill.005", - "m_bHillIsDownhill.006", - "m_bHillIsDownhill.007", - "m_bHillIsDownhill.008", - "m_bHillIsDownhill.009", - "m_bHillIsDownhill.010", - "m_bHillIsDownhill.011", - "m_bHillIsDownhill.012", - "m_bHillIsDownhill.013", - "m_bHillIsDownhill.014", - "m_bHillIsDownhill.015", - "m_bHillIsDownhill.016", - "m_bHillIsDownhill.017", - "m_bHillIsDownhill.018", - "m_bHillIsDownhill.019" + "DT_TeamTrainWatcher": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_TeamTrainWatcher.m_flTotalProgress", + "DT_TeamTrainWatcher.m_iTrainSpeedLevel", + "DT_TeamTrainWatcher.m_flRecedeTime", + "DT_TeamTrainWatcher.m_nNumCappers", + "DT_TeamTrainWatcher.m_hGlowEnt" ], - "m_flCPTimerTimes": [ - "m_flCPTimerTimes.000", - "m_flCPTimerTimes.001", - "m_flCPTimerTimes.002", - "m_flCPTimerTimes.003", - "m_flCPTimerTimes.004", - "m_flCPTimerTimes.005", - "m_flCPTimerTimes.006", - "m_flCPTimerTimes.007" + "DT_TeamplayRoundBasedRules": [ + "m_flNextRespawnWave.000", + "m_flNextRespawnWave.001", + "m_flNextRespawnWave.002", + "m_flNextRespawnWave.003", + "m_flNextRespawnWave.004", + "m_flNextRespawnWave.005", + "m_flNextRespawnWave.006", + "m_flNextRespawnWave.007", + "m_flNextRespawnWave.008", + "m_flNextRespawnWave.009", + "m_flNextRespawnWave.010", + "m_flNextRespawnWave.011", + "m_flNextRespawnWave.012", + "m_flNextRespawnWave.013", + "m_flNextRespawnWave.014", + "m_flNextRespawnWave.015", + "m_flNextRespawnWave.016", + "m_flNextRespawnWave.017", + "m_flNextRespawnWave.018", + "m_flNextRespawnWave.019", + "m_flNextRespawnWave.020", + "m_flNextRespawnWave.021", + "m_flNextRespawnWave.022", + "m_flNextRespawnWave.023", + "m_flNextRespawnWave.024", + "m_flNextRespawnWave.025", + "m_flNextRespawnWave.026", + "m_flNextRespawnWave.027", + "m_flNextRespawnWave.028", + "m_flNextRespawnWave.029", + "m_flNextRespawnWave.030", + "m_flNextRespawnWave.031", + "m_TeamRespawnWaveTimes.000", + "m_TeamRespawnWaveTimes.001", + "m_TeamRespawnWaveTimes.002", + "m_TeamRespawnWaveTimes.003", + "m_TeamRespawnWaveTimes.004", + "m_TeamRespawnWaveTimes.005", + "m_TeamRespawnWaveTimes.006", + "m_TeamRespawnWaveTimes.007", + "m_TeamRespawnWaveTimes.008", + "m_TeamRespawnWaveTimes.009", + "m_TeamRespawnWaveTimes.010", + "m_TeamRespawnWaveTimes.011", + "m_TeamRespawnWaveTimes.012", + "m_TeamRespawnWaveTimes.013", + "m_TeamRespawnWaveTimes.014", + "m_TeamRespawnWaveTimes.015", + "m_TeamRespawnWaveTimes.016", + "m_TeamRespawnWaveTimes.017", + "m_TeamRespawnWaveTimes.018", + "m_TeamRespawnWaveTimes.019", + "m_TeamRespawnWaveTimes.020", + "m_TeamRespawnWaveTimes.021", + "m_TeamRespawnWaveTimes.022", + "m_TeamRespawnWaveTimes.023", + "m_TeamRespawnWaveTimes.024", + "m_TeamRespawnWaveTimes.025", + "m_TeamRespawnWaveTimes.026", + "m_TeamRespawnWaveTimes.027", + "m_TeamRespawnWaveTimes.028", + "m_TeamRespawnWaveTimes.029", + "m_TeamRespawnWaveTimes.030", + "m_TeamRespawnWaveTimes.031", + "m_bTeamReady.000", + "m_bTeamReady.001", + "m_bTeamReady.002", + "m_bTeamReady.003", + "m_bTeamReady.004", + "m_bTeamReady.005", + "m_bTeamReady.006", + "m_bTeamReady.007", + "m_bTeamReady.008", + "m_bTeamReady.009", + "m_bTeamReady.010", + "m_bTeamReady.011", + "m_bTeamReady.012", + "m_bTeamReady.013", + "m_bTeamReady.014", + "m_bTeamReady.015", + "m_bTeamReady.016", + "m_bTeamReady.017", + "m_bTeamReady.018", + "m_bTeamReady.019", + "m_bTeamReady.020", + "m_bTeamReady.021", + "m_bTeamReady.022", + "m_bTeamReady.023", + "m_bTeamReady.024", + "m_bTeamReady.025", + "m_bTeamReady.026", + "m_bTeamReady.027", + "m_bTeamReady.028", + "m_bTeamReady.029", + "m_bTeamReady.030", + "m_bTeamReady.031", + "m_bPlayerReady.000", + "m_bPlayerReady.001", + "m_bPlayerReady.002", + "m_bPlayerReady.003", + "m_bPlayerReady.004", + "m_bPlayerReady.005", + "m_bPlayerReady.006", + "m_bPlayerReady.007", + "m_bPlayerReady.008", + "m_bPlayerReady.009", + "m_bPlayerReady.010", + "m_bPlayerReady.011", + "m_bPlayerReady.012", + "m_bPlayerReady.013", + "m_bPlayerReady.014", + "m_bPlayerReady.015", + "m_bPlayerReady.016", + "m_bPlayerReady.017", + "m_bPlayerReady.018", + "m_bPlayerReady.019", + "m_bPlayerReady.020", + "m_bPlayerReady.021", + "m_bPlayerReady.022", + "m_bPlayerReady.023", + "m_bPlayerReady.024", + "m_bPlayerReady.025", + "m_bPlayerReady.026", + "m_bPlayerReady.027", + "m_bPlayerReady.028", + "m_bPlayerReady.029", + "m_bPlayerReady.030", + "m_bPlayerReady.031", + "m_bPlayerReady.032", + "DT_TeamplayRoundBasedRules.m_iRoundState", + "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers", + "DT_TeamplayRoundBasedRules.m_iWinningTeam", + "DT_TeamplayRoundBasedRules.m_bInOvertime", + "DT_TeamplayRoundBasedRules.m_bInSetup", + "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound", + "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart", + "DT_TeamplayRoundBasedRules.m_flRestartRoundTime", + "DT_TeamplayRoundBasedRules.m_flMapResetTime", + "DT_TeamplayRoundBasedRules.m_bStopWatch", + "DT_TeamplayRoundBasedRules.m_bMultipleTrains", + "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel" ], - "m_iNumTeamMembers": [ - "m_iNumTeamMembers.000", - "m_iNumTeamMembers.001", - "m_iNumTeamMembers.002", - "m_iNumTeamMembers.003", - "m_iNumTeamMembers.004", - "m_iNumTeamMembers.005", - "m_iNumTeamMembers.006", - "m_iNumTeamMembers.007", - "m_iNumTeamMembers.008", - "m_iNumTeamMembers.009", - "m_iNumTeamMembers.010", - "m_iNumTeamMembers.011", - "m_iNumTeamMembers.012", - "m_iNumTeamMembers.013", - "m_iNumTeamMembers.014", - "m_iNumTeamMembers.015", - "m_iNumTeamMembers.016", - "m_iNumTeamMembers.017", - "m_iNumTeamMembers.018", - "m_iNumTeamMembers.019", - "m_iNumTeamMembers.020", - "m_iNumTeamMembers.021", - "m_iNumTeamMembers.022", - "m_iNumTeamMembers.023", - "m_iNumTeamMembers.024", - "m_iNumTeamMembers.025", - "m_iNumTeamMembers.026", - "m_iNumTeamMembers.027", - "m_iNumTeamMembers.028", - "m_iNumTeamMembers.029", - "m_iNumTeamMembers.030", - "m_iNumTeamMembers.031", - "m_iNumTeamMembers.032", - "m_iNumTeamMembers.033", - "m_iNumTeamMembers.034", - "m_iNumTeamMembers.035", - "m_iNumTeamMembers.036", - "m_iNumTeamMembers.037", - "m_iNumTeamMembers.038", - "m_iNumTeamMembers.039", - "m_iNumTeamMembers.040", - "m_iNumTeamMembers.041", - "m_iNumTeamMembers.042", - "m_iNumTeamMembers.043", - "m_iNumTeamMembers.044", - "m_iNumTeamMembers.045", - "m_iNumTeamMembers.046", - "m_iNumTeamMembers.047", - "m_iNumTeamMembers.048", - "m_iNumTeamMembers.049", - "m_iNumTeamMembers.050", - "m_iNumTeamMembers.051", - "m_iNumTeamMembers.052", - "m_iNumTeamMembers.053", - "m_iNumTeamMembers.054", - "m_iNumTeamMembers.055", - "m_iNumTeamMembers.056", - "m_iNumTeamMembers.057", - "m_iNumTeamMembers.058", - "m_iNumTeamMembers.059", - "m_iNumTeamMembers.060", - "m_iNumTeamMembers.061", - "m_iNumTeamMembers.062", - "m_iNumTeamMembers.063" + "DT_TeamplayRoundBasedRulesProxy": [ + "m_flNextRespawnWave.000", + "m_flNextRespawnWave.001", + "m_flNextRespawnWave.002", + "m_flNextRespawnWave.003", + "m_flNextRespawnWave.004", + "m_flNextRespawnWave.005", + "m_flNextRespawnWave.006", + "m_flNextRespawnWave.007", + "m_flNextRespawnWave.008", + "m_flNextRespawnWave.009", + "m_flNextRespawnWave.010", + "m_flNextRespawnWave.011", + "m_flNextRespawnWave.012", + "m_flNextRespawnWave.013", + "m_flNextRespawnWave.014", + "m_flNextRespawnWave.015", + "m_flNextRespawnWave.016", + "m_flNextRespawnWave.017", + "m_flNextRespawnWave.018", + "m_flNextRespawnWave.019", + "m_flNextRespawnWave.020", + "m_flNextRespawnWave.021", + "m_flNextRespawnWave.022", + "m_flNextRespawnWave.023", + "m_flNextRespawnWave.024", + "m_flNextRespawnWave.025", + "m_flNextRespawnWave.026", + "m_flNextRespawnWave.027", + "m_flNextRespawnWave.028", + "m_flNextRespawnWave.029", + "m_flNextRespawnWave.030", + "m_flNextRespawnWave.031", + "m_TeamRespawnWaveTimes.000", + "m_TeamRespawnWaveTimes.001", + "m_TeamRespawnWaveTimes.002", + "m_TeamRespawnWaveTimes.003", + "m_TeamRespawnWaveTimes.004", + "m_TeamRespawnWaveTimes.005", + "m_TeamRespawnWaveTimes.006", + "m_TeamRespawnWaveTimes.007", + "m_TeamRespawnWaveTimes.008", + "m_TeamRespawnWaveTimes.009", + "m_TeamRespawnWaveTimes.010", + "m_TeamRespawnWaveTimes.011", + "m_TeamRespawnWaveTimes.012", + "m_TeamRespawnWaveTimes.013", + "m_TeamRespawnWaveTimes.014", + "m_TeamRespawnWaveTimes.015", + "m_TeamRespawnWaveTimes.016", + "m_TeamRespawnWaveTimes.017", + "m_TeamRespawnWaveTimes.018", + "m_TeamRespawnWaveTimes.019", + "m_TeamRespawnWaveTimes.020", + "m_TeamRespawnWaveTimes.021", + "m_TeamRespawnWaveTimes.022", + "m_TeamRespawnWaveTimes.023", + "m_TeamRespawnWaveTimes.024", + "m_TeamRespawnWaveTimes.025", + "m_TeamRespawnWaveTimes.026", + "m_TeamRespawnWaveTimes.027", + "m_TeamRespawnWaveTimes.028", + "m_TeamRespawnWaveTimes.029", + "m_TeamRespawnWaveTimes.030", + "m_TeamRespawnWaveTimes.031", + "m_bTeamReady.000", + "m_bTeamReady.001", + "m_bTeamReady.002", + "m_bTeamReady.003", + "m_bTeamReady.004", + "m_bTeamReady.005", + "m_bTeamReady.006", + "m_bTeamReady.007", + "m_bTeamReady.008", + "m_bTeamReady.009", + "m_bTeamReady.010", + "m_bTeamReady.011", + "m_bTeamReady.012", + "m_bTeamReady.013", + "m_bTeamReady.014", + "m_bTeamReady.015", + "m_bTeamReady.016", + "m_bTeamReady.017", + "m_bTeamReady.018", + "m_bTeamReady.019", + "m_bTeamReady.020", + "m_bTeamReady.021", + "m_bTeamReady.022", + "m_bTeamReady.023", + "m_bTeamReady.024", + "m_bTeamReady.025", + "m_bTeamReady.026", + "m_bTeamReady.027", + "m_bTeamReady.028", + "m_bTeamReady.029", + "m_bTeamReady.030", + "m_bTeamReady.031", + "m_bPlayerReady.000", + "m_bPlayerReady.001", + "m_bPlayerReady.002", + "m_bPlayerReady.003", + "m_bPlayerReady.004", + "m_bPlayerReady.005", + "m_bPlayerReady.006", + "m_bPlayerReady.007", + "m_bPlayerReady.008", + "m_bPlayerReady.009", + "m_bPlayerReady.010", + "m_bPlayerReady.011", + "m_bPlayerReady.012", + "m_bPlayerReady.013", + "m_bPlayerReady.014", + "m_bPlayerReady.015", + "m_bPlayerReady.016", + "m_bPlayerReady.017", + "m_bPlayerReady.018", + "m_bPlayerReady.019", + "m_bPlayerReady.020", + "m_bPlayerReady.021", + "m_bPlayerReady.022", + "m_bPlayerReady.023", + "m_bPlayerReady.024", + "m_bPlayerReady.025", + "m_bPlayerReady.026", + "m_bPlayerReady.027", + "m_bPlayerReady.028", + "m_bPlayerReady.029", + "m_bPlayerReady.030", + "m_bPlayerReady.031", + "m_bPlayerReady.032", + "DT_TeamplayRoundBasedRules.m_iRoundState", + "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers", + "DT_TeamplayRoundBasedRules.m_iWinningTeam", + "DT_TeamplayRoundBasedRules.m_bInOvertime", + "DT_TeamplayRoundBasedRules.m_bInSetup", + "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound", + "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart", + "DT_TeamplayRoundBasedRules.m_flRestartRoundTime", + "DT_TeamplayRoundBasedRules.m_flMapResetTime", + "DT_TeamplayRoundBasedRules.m_bStopWatch", + "DT_TeamplayRoundBasedRules.m_bMultipleTrains", + "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel" ], - "m_iCappingTeam": [ - "m_iCappingTeam.000", - "m_iCappingTeam.001", - "m_iCappingTeam.002", - "m_iCappingTeam.003", - "m_iCappingTeam.004", - "m_iCappingTeam.005", - "m_iCappingTeam.006", - "m_iCappingTeam.007" + "DT_TeleportVortex": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_TeleportVortex.m_iState", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_CollisionProperty.m_nSolidType" ], - "m_iTeamInZone": [ - "m_iTeamInZone.000", - "m_iTeamInZone.001", - "m_iTeamInZone.002", - "m_iTeamInZone.003", - "m_iTeamInZone.004", - "m_iTeamInZone.005", - "m_iTeamInZone.006", - "m_iTeamInZone.007" + "DT_Tesla": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_Tesla.m_SoundName", + "DT_Tesla.m_iszSpriteName" ], - "m_bBlocked": [ - "m_bBlocked.000", - "m_bBlocked.001", - "m_bBlocked.002", - "m_bBlocked.003", - "m_bBlocked.004", - "m_bBlocked.005", - "m_bBlocked.006", - "m_bBlocked.007" + "DT_TestTraceline": [ + "DT_TestTraceline.m_clrRender", + "DT_TestTraceline.m_vecOrigin", + "DT_TestTraceline.m_angRotation[0]", + "DT_TestTraceline.m_angRotation[1]", + "DT_TestTraceline.m_angRotation[2]", + "DT_TestTraceline.moveparent" ], - "m_iOwner": [ - "m_iOwner.000", - "m_iOwner.001", - "m_iOwner.002", - "m_iOwner.003", - "m_iOwner.004", - "m_iOwner.005", - "m_iOwner.006", - "m_iOwner.007" + "DT_VGuiScreen": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_VGuiScreen.m_flWidth", + "DT_VGuiScreen.m_flHeight", + "DT_VGuiScreen.m_nAttachmentIndex", + "DT_VGuiScreen.m_nPanelName", + "DT_VGuiScreen.m_fScreenFlags", + "DT_VGuiScreen.m_nOverlayMaterial", + "DT_VGuiScreen.m_hPlayerOwner" ], - "m_bCPCapRateScalesWithPlayers": [ - "m_bCPCapRateScalesWithPlayers.000", - "m_bCPCapRateScalesWithPlayers.001", - "m_bCPCapRateScalesWithPlayers.002", - "m_bCPCapRateScalesWithPlayers.003", - "m_bCPCapRateScalesWithPlayers.004", - "m_bCPCapRateScalesWithPlayers.005", - "m_bCPCapRateScalesWithPlayers.006", - "m_bCPCapRateScalesWithPlayers.007" + "DT_VoteController": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_nVoteOptionCount.000", + "m_nVoteOptionCount.001", + "m_nVoteOptionCount.002", + "m_nVoteOptionCount.003", + "m_nVoteOptionCount.004", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_VoteController.m_iActiveIssueIndex", + "DT_VoteController.m_iOnlyTeamToVote", + "DT_VoteController.m_nPotentialVotes", + "DT_VoteController.m_bIsYesNoVote" ], - "m_hAttachEntity": [ - "m_hAttachEntity.000", - "m_hAttachEntity.001", - "m_hAttachEntity.002", - "m_hAttachEntity.003", - "m_hAttachEntity.004", - "m_hAttachEntity.005", - "m_hAttachEntity.006", - "m_hAttachEntity.007", - "m_hAttachEntity.008", - "m_hAttachEntity.009" + "DT_WORLD": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_WORLD.m_flWaveHeight", + "DT_WORLD.m_WorldMins", + "DT_WORLD.m_WorldMaxs", + "DT_WORLD.m_bStartDark", + "DT_WORLD.m_flMaxOccludeeArea", + "DT_WORLD.m_flMinOccluderArea", + "DT_WORLD.m_flMaxPropScreenSpaceWidth", + "DT_WORLD.m_flMinPropScreenSpaceWidth", + "DT_WORLD.m_iszDetailSpriteMaterial", + "DT_WORLD.m_bColdWorld" ], - "m_nAttachIndex": [ - "m_nAttachIndex.000", - "m_nAttachIndex.001", - "m_nAttachIndex.002", - "m_nAttachIndex.003", - "m_nAttachIndex.004", - "m_nAttachIndex.005", - "m_nAttachIndex.006", - "m_nAttachIndex.007", - "m_nAttachIndex.008", - "m_nAttachIndex.009" + "DT_WaterBullet": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale" ], - "DT_BeamPredictableId": [ - "DT_BeamPredictableId.m_PredictableID", - "DT_BeamPredictableId.m_bIsPlayerSimulated" + "DT_WaterLODControl": [ + "DT_WaterLODControl.m_flCheapWaterStartDistance", + "DT_WaterLODControl.m_flCheapWaterEndDistance" ], - "_ST_m_aBonusPlayerRoll_33": [ - "_LPT_m_aBonusPlayerRoll_33.lengthprop33", - "_ST_m_aBonusPlayerRoll_33.000", - "_ST_m_aBonusPlayerRoll_33.001", - "_ST_m_aBonusPlayerRoll_33.002", - "_ST_m_aBonusPlayerRoll_33.003", - "_ST_m_aBonusPlayerRoll_33.004", - "_ST_m_aBonusPlayerRoll_33.005", - "_ST_m_aBonusPlayerRoll_33.006", - "_ST_m_aBonusPlayerRoll_33.007", - "_ST_m_aBonusPlayerRoll_33.008", - "_ST_m_aBonusPlayerRoll_33.009", - "_ST_m_aBonusPlayerRoll_33.010", - "_ST_m_aBonusPlayerRoll_33.011", - "_ST_m_aBonusPlayerRoll_33.012", - "_ST_m_aBonusPlayerRoll_33.013", - "_ST_m_aBonusPlayerRoll_33.014", - "_ST_m_aBonusPlayerRoll_33.015", - "_ST_m_aBonusPlayerRoll_33.016", - "_ST_m_aBonusPlayerRoll_33.017", - "_ST_m_aBonusPlayerRoll_33.018", - "_ST_m_aBonusPlayerRoll_33.019", - "_ST_m_aBonusPlayerRoll_33.020", - "_ST_m_aBonusPlayerRoll_33.021", - "_ST_m_aBonusPlayerRoll_33.022", - "_ST_m_aBonusPlayerRoll_33.023", - "_ST_m_aBonusPlayerRoll_33.024", - "_ST_m_aBonusPlayerRoll_33.025", - "_ST_m_aBonusPlayerRoll_33.026", - "_ST_m_aBonusPlayerRoll_33.027", - "_ST_m_aBonusPlayerRoll_33.028", - "_ST_m_aBonusPlayerRoll_33.029", - "_ST_m_aBonusPlayerRoll_33.030", - "_ST_m_aBonusPlayerRoll_33.031", - "_ST_m_aBonusPlayerRoll_33.032" + "DT_WeaponCompoundBow": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_PipebombLauncherLocalData.m_iPipebombCount", + "DT_PipebombLauncherLocalData.m_flChargeBeginTime", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponCompoundBow.m_bArrowAlight", + "DT_WeaponCompoundBow.m_bNoFire" ], - "_LPT_m_aBonusPlayerRoll_33": [ - "_LPT_m_aBonusPlayerRoll_33.lengthprop33" + "DT_WeaponDRGPomson": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_RawPanelBitVec": [ - "m_RawPanelBitVec.000", - "m_RawPanelBitVec.001", - "m_RawPanelBitVec.002", - "m_RawPanelBitVec.003", - "m_RawPanelBitVec.004", - "m_RawPanelBitVec.005", - "m_RawPanelBitVec.006", - "m_RawPanelBitVec.007", - "m_RawPanelBitVec.008", - "m_RawPanelBitVec.009", - "m_RawPanelBitVec.010", - "m_RawPanelBitVec.011", - "m_RawPanelBitVec.012", - "m_RawPanelBitVec.013", - "m_RawPanelBitVec.014", - "m_RawPanelBitVec.015", - "m_RawPanelBitVec.016", - "m_RawPanelBitVec.017", - "m_RawPanelBitVec.018", - "m_RawPanelBitVec.019", - "m_RawPanelBitVec.020", - "m_RawPanelBitVec.021", - "m_RawPanelBitVec.022", - "m_RawPanelBitVec.023", - "m_RawPanelBitVec.024", - "m_RawPanelBitVec.025", - "m_RawPanelBitVec.026", - "m_RawPanelBitVec.027", - "m_RawPanelBitVec.028", - "m_RawPanelBitVec.029", - "m_RawPanelBitVec.030", - "m_RawPanelBitVec.031", - "m_RawPanelBitVec.032", - "m_RawPanelBitVec.033", - "m_RawPanelBitVec.034", - "m_RawPanelBitVec.035", - "m_RawPanelBitVec.036", - "m_RawPanelBitVec.037", - "m_RawPanelBitVec.038", - "m_RawPanelBitVec.039", - "m_RawPanelBitVec.040", - "m_RawPanelBitVec.041", - "m_RawPanelBitVec.042", - "m_RawPanelBitVec.043", - "m_RawPanelBitVec.044", - "m_RawPanelBitVec.045", - "m_RawPanelBitVec.046", - "m_RawPanelBitVec.047", - "m_RawPanelBitVec.048", - "m_RawPanelBitVec.049", - "m_RawPanelBitVec.050", - "m_RawPanelBitVec.051", - "m_RawPanelBitVec.052", - "m_RawPanelBitVec.053", - "m_RawPanelBitVec.054", - "m_RawPanelBitVec.055", - "m_RawPanelBitVec.056", - "m_RawPanelBitVec.057", - "m_RawPanelBitVec.058", - "m_RawPanelBitVec.059", - "m_RawPanelBitVec.060", - "m_RawPanelBitVec.061", - "m_RawPanelBitVec.062", - "m_RawPanelBitVec.063", - "m_RawPanelBitVec.064", - "m_RawPanelBitVec.065", - "m_RawPanelBitVec.066", - "m_RawPanelBitVec.067", - "m_RawPanelBitVec.068", - "m_RawPanelBitVec.069", - "m_RawPanelBitVec.070", - "m_RawPanelBitVec.071", - "m_RawPanelBitVec.072", - "m_RawPanelBitVec.073", - "m_RawPanelBitVec.074", - "m_RawPanelBitVec.075", - "m_RawPanelBitVec.076", - "m_RawPanelBitVec.077", - "m_RawPanelBitVec.078", - "m_RawPanelBitVec.079", - "m_RawPanelBitVec.080", - "m_RawPanelBitVec.081", - "m_RawPanelBitVec.082", - "m_RawPanelBitVec.083", - "m_RawPanelBitVec.084", - "m_RawPanelBitVec.085", - "m_RawPanelBitVec.086", - "m_RawPanelBitVec.087", - "m_RawPanelBitVec.088", - "m_RawPanelBitVec.089", - "m_RawPanelBitVec.090", - "m_RawPanelBitVec.091", - "m_RawPanelBitVec.092", - "m_RawPanelBitVec.093", - "m_RawPanelBitVec.094", - "m_RawPanelBitVec.095", - "m_RawPanelBitVec.096", - "m_RawPanelBitVec.097", - "m_RawPanelBitVec.098", - "m_RawPanelBitVec.099", - "m_RawPanelBitVec.100", - "m_RawPanelBitVec.101", - "m_RawPanelBitVec.102", - "m_RawPanelBitVec.103", - "m_RawPanelBitVec.104", - "m_RawPanelBitVec.105", - "m_RawPanelBitVec.106", - "m_RawPanelBitVec.107", - "m_RawPanelBitVec.108", - "m_RawPanelBitVec.109", - "m_RawPanelBitVec.110", - "m_RawPanelBitVec.111", - "m_RawPanelBitVec.112", - "m_RawPanelBitVec.113", - "m_RawPanelBitVec.114", - "m_RawPanelBitVec.115", - "m_RawPanelBitVec.116", - "m_RawPanelBitVec.117", - "m_RawPanelBitVec.118", - "m_RawPanelBitVec.119", - "m_RawPanelBitVec.120", - "m_RawPanelBitVec.121", - "m_RawPanelBitVec.122", - "m_RawPanelBitVec.123", - "m_RawPanelBitVec.124", - "m_RawPanelBitVec.125", - "m_RawPanelBitVec.126", - "m_RawPanelBitVec.127", - "m_RawPanelBitVec.128", - "m_RawPanelBitVec.129", - "m_RawPanelBitVec.130", - "m_RawPanelBitVec.131", - "m_RawPanelBitVec.132", - "m_RawPanelBitVec.133", - "m_RawPanelBitVec.134", - "m_RawPanelBitVec.135", - "m_RawPanelBitVec.136", - "m_RawPanelBitVec.137", - "m_RawPanelBitVec.138", - "m_RawPanelBitVec.139", - "m_RawPanelBitVec.140", - "m_RawPanelBitVec.141", - "m_RawPanelBitVec.142", - "m_RawPanelBitVec.143", - "m_RawPanelBitVec.144", - "m_RawPanelBitVec.145", - "m_RawPanelBitVec.146", - "m_RawPanelBitVec.147", - "m_RawPanelBitVec.148", - "m_RawPanelBitVec.149", - "m_RawPanelBitVec.150", - "m_RawPanelBitVec.151", - "m_RawPanelBitVec.152", - "m_RawPanelBitVec.153", - "m_RawPanelBitVec.154", - "m_RawPanelBitVec.155", - "m_RawPanelBitVec.156", - "m_RawPanelBitVec.157", - "m_RawPanelBitVec.158", - "m_RawPanelBitVec.159", - "m_RawPanelBitVec.160", - "m_RawPanelBitVec.161", - "m_RawPanelBitVec.162", - "m_RawPanelBitVec.163", - "m_RawPanelBitVec.164", - "m_RawPanelBitVec.165", - "m_RawPanelBitVec.166", - "m_RawPanelBitVec.167", - "m_RawPanelBitVec.168", - "m_RawPanelBitVec.169", - "m_RawPanelBitVec.170", - "m_RawPanelBitVec.171", - "m_RawPanelBitVec.172", - "m_RawPanelBitVec.173", - "m_RawPanelBitVec.174", - "m_RawPanelBitVec.175", - "m_RawPanelBitVec.176", - "m_RawPanelBitVec.177", - "m_RawPanelBitVec.178", - "m_RawPanelBitVec.179", - "m_RawPanelBitVec.180", - "m_RawPanelBitVec.181", - "m_RawPanelBitVec.182", - "m_RawPanelBitVec.183", - "m_RawPanelBitVec.184", - "m_RawPanelBitVec.185", - "m_RawPanelBitVec.186", - "m_RawPanelBitVec.187", - "m_RawPanelBitVec.188", - "m_RawPanelBitVec.189", - "m_RawPanelBitVec.190", - "m_RawPanelBitVec.191", - "m_RawPanelBitVec.192", - "m_RawPanelBitVec.193", - "m_RawPanelBitVec.194", - "m_RawPanelBitVec.195", - "m_RawPanelBitVec.196", - "m_RawPanelBitVec.197", - "m_RawPanelBitVec.198", - "m_RawPanelBitVec.199", - "m_RawPanelBitVec.200", - "m_RawPanelBitVec.201", - "m_RawPanelBitVec.202", - "m_RawPanelBitVec.203", - "m_RawPanelBitVec.204", - "m_RawPanelBitVec.205", - "m_RawPanelBitVec.206", - "m_RawPanelBitVec.207", - "m_RawPanelBitVec.208", - "m_RawPanelBitVec.209", - "m_RawPanelBitVec.210", - "m_RawPanelBitVec.211", - "m_RawPanelBitVec.212", - "m_RawPanelBitVec.213", - "m_RawPanelBitVec.214", - "m_RawPanelBitVec.215", - "m_RawPanelBitVec.216", - "m_RawPanelBitVec.217", - "m_RawPanelBitVec.218", - "m_RawPanelBitVec.219", - "m_RawPanelBitVec.220", - "m_RawPanelBitVec.221", - "m_RawPanelBitVec.222", - "m_RawPanelBitVec.223", - "m_RawPanelBitVec.224", - "m_RawPanelBitVec.225", - "m_RawPanelBitVec.226", - "m_RawPanelBitVec.227", - "m_RawPanelBitVec.228", - "m_RawPanelBitVec.229", - "m_RawPanelBitVec.230", - "m_RawPanelBitVec.231", - "m_RawPanelBitVec.232", - "m_RawPanelBitVec.233", - "m_RawPanelBitVec.234", - "m_RawPanelBitVec.235", - "m_RawPanelBitVec.236", - "m_RawPanelBitVec.237", - "m_RawPanelBitVec.238", - "m_RawPanelBitVec.239", - "m_RawPanelBitVec.240", - "m_RawPanelBitVec.241", - "m_RawPanelBitVec.242", - "m_RawPanelBitVec.243", - "m_RawPanelBitVec.244", - "m_RawPanelBitVec.245", - "m_RawPanelBitVec.246", - "m_RawPanelBitVec.247", - "m_RawPanelBitVec.248", - "m_RawPanelBitVec.249", - "m_RawPanelBitVec.250", - "m_RawPanelBitVec.251", - "m_RawPanelBitVec.252", - "m_RawPanelBitVec.253", - "m_RawPanelBitVec.254", - "m_RawPanelBitVec.255" + "DT_WeaponFlameThrower": [ + "DT_ServerAnimationData.m_flCycle", + "DT_LocalFlameThrower.m_iActiveFlames", + "DT_LocalFlameThrower.m_iDamagingFlames", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_WeaponFlameThrower.m_iWeaponState", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_usSolidFlags", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_CollisionProperty.m_nSurroundType", + "DT_WeaponFlameThrower.m_bCritFire", + "DT_WeaponFlameThrower.m_bHitTarget", + "DT_WeaponFlameThrower.m_flChargeBeginTime" ], - "DT_EntityParticleTrailInfo": [ - "DT_EntityParticleTrailInfo.m_flLifetime", - "DT_EntityParticleTrailInfo.m_flStartSize", - "DT_EntityParticleTrailInfo.m_flEndSize" + "DT_WeaponFlareGun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponFlareGun.m_flChargeBeginTime" ], - "DT_EnvWindShared": [ - "DT_EnvWindShared.m_iMinWind", - "DT_EnvWindShared.m_iMaxWind", - "DT_EnvWindShared.m_iMinGust", - "DT_EnvWindShared.m_iMaxGust", - "DT_EnvWindShared.m_flMinGustDelay", - "DT_EnvWindShared.m_flMaxGustDelay", - "DT_EnvWindShared.m_iGustDirChange", - "DT_EnvWindShared.m_iWindSeed", - "DT_EnvWindShared.m_iInitialWindDir", - "DT_EnvWindShared.m_flInitialWindSpeed", - "DT_EnvWindShared.m_flStartTime", - "DT_EnvWindShared.m_flGustDuration" + "DT_WeaponFlareGun_Revenge": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponFlareGun.m_flChargeBeginTime", + "DT_WeaponFlareGun_Revenge.m_fLastExtinguishTime" ], - "DT_CMannVsMachineWaveStats": [ - "DT_CMannVsMachineWaveStats.nCreditsDropped", - "DT_CMannVsMachineWaveStats.nCreditsAcquired", - "DT_CMannVsMachineWaveStats.nCreditsBonus", - "DT_CMannVsMachineWaveStats.nPlayerDeaths", - "DT_CMannVsMachineWaveStats.nBuyBacks" + "DT_WeaponGrenadeLauncher": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponGrenadeLauncher.m_flDetonateTime" ], - "DT_SentrygunLocalData": [ - "DT_SentrygunLocalData.m_iKills", - "DT_SentrygunLocalData.m_iAssists" + "DT_WeaponIFMBase": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" + ], + "DT_WeaponIFMBaseCamera": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponIFMBaseCamera.m_flRenderAspectRatio", + "DT_WeaponIFMBaseCamera.m_flRenderFOV", + "DT_WeaponIFMBaseCamera.m_flRenderArmLength", + "DT_WeaponIFMBaseCamera.m_vecRenderPosition", + "DT_WeaponIFMBaseCamera.m_angRenderAngles" ], - "m_hControlPointEnts": [ - "m_hControlPointEnts.000", - "m_hControlPointEnts.001", - "m_hControlPointEnts.002", - "m_hControlPointEnts.003", - "m_hControlPointEnts.004", - "m_hControlPointEnts.005", - "m_hControlPointEnts.006", - "m_hControlPointEnts.007", - "m_hControlPointEnts.008", - "m_hControlPointEnts.009", - "m_hControlPointEnts.010", - "m_hControlPointEnts.011", - "m_hControlPointEnts.012", - "m_hControlPointEnts.013", - "m_hControlPointEnts.014", - "m_hControlPointEnts.015", - "m_hControlPointEnts.016", - "m_hControlPointEnts.017", - "m_hControlPointEnts.018", - "m_hControlPointEnts.019", - "m_hControlPointEnts.020", - "m_hControlPointEnts.021", - "m_hControlPointEnts.022", - "m_hControlPointEnts.023", - "m_hControlPointEnts.024", - "m_hControlPointEnts.025", - "m_hControlPointEnts.026", - "m_hControlPointEnts.027", - "m_hControlPointEnts.028", - "m_hControlPointEnts.029", - "m_hControlPointEnts.030", - "m_hControlPointEnts.031", - "m_hControlPointEnts.032", - "m_hControlPointEnts.033", - "m_hControlPointEnts.034", - "m_hControlPointEnts.035", - "m_hControlPointEnts.036", - "m_hControlPointEnts.037", - "m_hControlPointEnts.038", - "m_hControlPointEnts.039", - "m_hControlPointEnts.040", - "m_hControlPointEnts.041", - "m_hControlPointEnts.042", - "m_hControlPointEnts.043", - "m_hControlPointEnts.044", - "m_hControlPointEnts.045", - "m_hControlPointEnts.046", - "m_hControlPointEnts.047", - "m_hControlPointEnts.048", - "m_hControlPointEnts.049", - "m_hControlPointEnts.050", - "m_hControlPointEnts.051", - "m_hControlPointEnts.052", - "m_hControlPointEnts.053", - "m_hControlPointEnts.054", - "m_hControlPointEnts.055", - "m_hControlPointEnts.056", - "m_hControlPointEnts.057", - "m_hControlPointEnts.058", - "m_hControlPointEnts.059", - "m_hControlPointEnts.060", - "m_hControlPointEnts.061", - "m_hControlPointEnts.062" + "DT_WeaponIFMSteadyCam": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponIFMBaseCamera.m_flRenderAspectRatio", + "DT_WeaponIFMBaseCamera.m_flRenderFOV", + "DT_WeaponIFMBaseCamera.m_flRenderArmLength", + "DT_WeaponIFMBaseCamera.m_vecRenderPosition", + "DT_WeaponIFMBaseCamera.m_angRenderAngles" ], - "m_iControlPointParents": [ - "m_iControlPointParents.000", - "m_iControlPointParents.001", - "m_iControlPointParents.002", - "m_iControlPointParents.003", - "m_iControlPointParents.004", - "m_iControlPointParents.005", - "m_iControlPointParents.006", - "m_iControlPointParents.007", - "m_iControlPointParents.008", - "m_iControlPointParents.009", - "m_iControlPointParents.010", - "m_iControlPointParents.011", - "m_iControlPointParents.012", - "m_iControlPointParents.013", - "m_iControlPointParents.014", - "m_iControlPointParents.015", - "m_iControlPointParents.016", - "m_iControlPointParents.017", - "m_iControlPointParents.018", - "m_iControlPointParents.019", - "m_iControlPointParents.020", - "m_iControlPointParents.021", - "m_iControlPointParents.022", - "m_iControlPointParents.023", - "m_iControlPointParents.024", - "m_iControlPointParents.025", - "m_iControlPointParents.026", - "m_iControlPointParents.027", - "m_iControlPointParents.028", - "m_iControlPointParents.029", - "m_iControlPointParents.030", - "m_iControlPointParents.031", - "m_iControlPointParents.032", - "m_iControlPointParents.033", - "m_iControlPointParents.034", - "m_iControlPointParents.035", - "m_iControlPointParents.036", - "m_iControlPointParents.037", - "m_iControlPointParents.038", - "m_iControlPointParents.039", - "m_iControlPointParents.040", - "m_iControlPointParents.041", - "m_iControlPointParents.042", - "m_iControlPointParents.043", - "m_iControlPointParents.044", - "m_iControlPointParents.045", - "m_iControlPointParents.046", - "m_iControlPointParents.047", - "m_iControlPointParents.048", - "m_iControlPointParents.049", - "m_iControlPointParents.050", - "m_iControlPointParents.051", - "m_iControlPointParents.052", - "m_iControlPointParents.053", - "m_iControlPointParents.054", - "m_iControlPointParents.055", - "m_iControlPointParents.056", - "m_iControlPointParents.057", - "m_iControlPointParents.058", - "m_iControlPointParents.059", - "m_iControlPointParents.060", - "m_iControlPointParents.061", - "m_iControlPointParents.062" + "DT_WeaponLunchBox": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iPing": [ - "m_iPing.000", - "m_iPing.001", - "m_iPing.002", - "m_iPing.003", - "m_iPing.004", - "m_iPing.005", - "m_iPing.006", - "m_iPing.007", - "m_iPing.008", - "m_iPing.009", - "m_iPing.010", - "m_iPing.011", - "m_iPing.012", - "m_iPing.013", - "m_iPing.014", - "m_iPing.015", - "m_iPing.016", - "m_iPing.017", - "m_iPing.018", - "m_iPing.019", - "m_iPing.020", - "m_iPing.021", - "m_iPing.022", - "m_iPing.023", - "m_iPing.024", - "m_iPing.025", - "m_iPing.026", - "m_iPing.027", - "m_iPing.028", - "m_iPing.029", - "m_iPing.030", - "m_iPing.031", - "m_iPing.032", - "m_iPing.033" + "DT_WeaponMedigun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_LocalTFWeaponMedigunData.m_flChargeLevel", + "DT_TFWeaponMedigunDataNonLocal.m_flChargeLevel", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_CollisionProperty.m_nSolidType", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_usSolidFlags", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_WeaponMedigun.m_hHealingTarget", + "DT_WeaponMedigun.m_bHealing", + "DT_WeaponMedigun.m_bAttacking", + "DT_WeaponMedigun.m_bChargeRelease", + "DT_WeaponMedigun.m_bHolstered", + "DT_WeaponMedigun.m_nChargeResistType" ], - "m_iScore": [ - "m_iScore.000", - "m_iScore.001", - "m_iScore.002", - "m_iScore.003", - "m_iScore.004", - "m_iScore.005", - "m_iScore.006", - "m_iScore.007", - "m_iScore.008", - "m_iScore.009", - "m_iScore.010", - "m_iScore.011", - "m_iScore.012", - "m_iScore.013", - "m_iScore.014", - "m_iScore.015", - "m_iScore.016", - "m_iScore.017", - "m_iScore.018", - "m_iScore.019", - "m_iScore.020", - "m_iScore.021", - "m_iScore.022", - "m_iScore.023", - "m_iScore.024", - "m_iScore.025", - "m_iScore.026", - "m_iScore.027", - "m_iScore.028", - "m_iScore.029", - "m_iScore.030", - "m_iScore.031", - "m_iScore.032", - "m_iScore.033" + "DT_WeaponMinigun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_WeaponMinigun.m_iWeaponState", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount", + "DT_CollisionProperty.m_nSolidType", + "DT_WeaponMinigun.m_bCritShot" ], - "m_iDeaths": [ - "m_iDeaths.000", - "m_iDeaths.001", - "m_iDeaths.002", - "m_iDeaths.003", - "m_iDeaths.004", - "m_iDeaths.005", - "m_iDeaths.006", - "m_iDeaths.007", - "m_iDeaths.008", - "m_iDeaths.009", - "m_iDeaths.010", - "m_iDeaths.011", - "m_iDeaths.012", - "m_iDeaths.013", - "m_iDeaths.014", - "m_iDeaths.015", - "m_iDeaths.016", - "m_iDeaths.017", - "m_iDeaths.018", - "m_iDeaths.019", - "m_iDeaths.020", - "m_iDeaths.021", - "m_iDeaths.022", - "m_iDeaths.023", - "m_iDeaths.024", - "m_iDeaths.025", - "m_iDeaths.026", - "m_iDeaths.027", - "m_iDeaths.028", - "m_iDeaths.029", - "m_iDeaths.030", - "m_iDeaths.031", - "m_iDeaths.032", - "m_iDeaths.033" + "DT_WeaponPipebombLauncher": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_PipebombLauncherLocalData.m_iPipebombCount", + "DT_PipebombLauncherLocalData.m_flChargeBeginTime", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_bConnected": [ - "m_bConnected.000", - "m_bConnected.001", - "m_bConnected.002", - "m_bConnected.003", - "m_bConnected.004", - "m_bConnected.005", - "m_bConnected.006", - "m_bConnected.007", - "m_bConnected.008", - "m_bConnected.009", - "m_bConnected.010", - "m_bConnected.011", - "m_bConnected.012", - "m_bConnected.013", - "m_bConnected.014", - "m_bConnected.015", - "m_bConnected.016", - "m_bConnected.017", - "m_bConnected.018", - "m_bConnected.019", - "m_bConnected.020", - "m_bConnected.021", - "m_bConnected.022", - "m_bConnected.023", - "m_bConnected.024", - "m_bConnected.025", - "m_bConnected.026", - "m_bConnected.027", - "m_bConnected.028", - "m_bConnected.029", - "m_bConnected.030", - "m_bConnected.031", - "m_bConnected.032", - "m_bConnected.033" + "DT_WeaponPistol": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iTeam": [ - "m_iTeam.000", - "m_iTeam.001", - "m_iTeam.002", - "m_iTeam.003", - "m_iTeam.004", - "m_iTeam.005", - "m_iTeam.006", - "m_iTeam.007", - "m_iTeam.008", - "m_iTeam.009", - "m_iTeam.010", - "m_iTeam.011", - "m_iTeam.012", - "m_iTeam.013", - "m_iTeam.014", - "m_iTeam.015", - "m_iTeam.016", - "m_iTeam.017", - "m_iTeam.018", - "m_iTeam.019", - "m_iTeam.020", - "m_iTeam.021", - "m_iTeam.022", - "m_iTeam.023", - "m_iTeam.024", - "m_iTeam.025", - "m_iTeam.026", - "m_iTeam.027", - "m_iTeam.028", - "m_iTeam.029", - "m_iTeam.030", - "m_iTeam.031", - "m_iTeam.032", - "m_iTeam.033" + "DT_WeaponPistol_Scout": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_bAlive": [ - "m_bAlive.000", - "m_bAlive.001", - "m_bAlive.002", - "m_bAlive.003", - "m_bAlive.004", - "m_bAlive.005", - "m_bAlive.006", - "m_bAlive.007", - "m_bAlive.008", - "m_bAlive.009", - "m_bAlive.010", - "m_bAlive.011", - "m_bAlive.012", - "m_bAlive.013", - "m_bAlive.014", - "m_bAlive.015", - "m_bAlive.016", - "m_bAlive.017", - "m_bAlive.018", - "m_bAlive.019", - "m_bAlive.020", - "m_bAlive.021", - "m_bAlive.022", - "m_bAlive.023", - "m_bAlive.024", - "m_bAlive.025", - "m_bAlive.026", - "m_bAlive.027", - "m_bAlive.028", - "m_bAlive.029", - "m_bAlive.030", - "m_bAlive.031", - "m_bAlive.032", - "m_bAlive.033" + "DT_WeaponPistol_ScoutPrimary": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_iHealth": [ - "m_iHealth.000", - "m_iHealth.001", - "m_iHealth.002", - "m_iHealth.003", - "m_iHealth.004", - "m_iHealth.005", - "m_iHealth.006", - "m_iHealth.007", - "m_iHealth.008", - "m_iHealth.009", - "m_iHealth.010", - "m_iHealth.011", - "m_iHealth.012", - "m_iHealth.013", - "m_iHealth.014", - "m_iHealth.015", - "m_iHealth.016", - "m_iHealth.017", - "m_iHealth.018", - "m_iHealth.019", - "m_iHealth.020", - "m_iHealth.021", - "m_iHealth.022", - "m_iHealth.023", - "m_iHealth.024", - "m_iHealth.025", - "m_iHealth.026", - "m_iHealth.027", - "m_iHealth.028", - "m_iHealth.029", - "m_iHealth.030", - "m_iHealth.031", - "m_iHealth.032", - "m_iHealth.033" + "DT_WeaponPistol_ScoutSecondary": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_hProps": [ - "m_hProps.000", - "m_hProps.001", - "m_hProps.002", - "m_hProps.003" + "DT_WeaponRaygun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_chPoseIndex": [ - "m_chPoseIndex.000", - "m_chPoseIndex.001", - "m_chPoseIndex.002", - "m_chPoseIndex.003" + "DT_WeaponRevolver": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "_ST_m_hActorList_16": [ - "_LPT_m_hActorList_16.lengthprop16", - "_ST_m_hActorList_16.000", - "_ST_m_hActorList_16.001", - "_ST_m_hActorList_16.002", - "_ST_m_hActorList_16.003", - "_ST_m_hActorList_16.004", - "_ST_m_hActorList_16.005", - "_ST_m_hActorList_16.006", - "_ST_m_hActorList_16.007", - "_ST_m_hActorList_16.008", - "_ST_m_hActorList_16.009", - "_ST_m_hActorList_16.010", - "_ST_m_hActorList_16.011", - "_ST_m_hActorList_16.012", - "_ST_m_hActorList_16.013", - "_ST_m_hActorList_16.014", - "_ST_m_hActorList_16.015" + "DT_WeaponRocketLauncher": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "_LPT_m_hActorList_16": [ - "_LPT_m_hActorList_16.lengthprop16" + "DT_WeaponRocketLauncher_AirStrike": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_chCurrentSlideLists": [ - "m_chCurrentSlideLists.000", - "m_chCurrentSlideLists.001", - "m_chCurrentSlideLists.002", - "m_chCurrentSlideLists.003", - "m_chCurrentSlideLists.004", - "m_chCurrentSlideLists.005", - "m_chCurrentSlideLists.006", - "m_chCurrentSlideLists.007", - "m_chCurrentSlideLists.008", - "m_chCurrentSlideLists.009", - "m_chCurrentSlideLists.010", - "m_chCurrentSlideLists.011", - "m_chCurrentSlideLists.012", - "m_chCurrentSlideLists.013", - "m_chCurrentSlideLists.014", - "m_chCurrentSlideLists.015" + "DT_WeaponRocketLauncher_DirectHit": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" + ], + "DT_WeaponRocketLauncher_Mortar": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "DT_TeamplayRoundBasedRules": [ - "m_flNextRespawnWave.000", - "m_flNextRespawnWave.001", - "m_flNextRespawnWave.002", - "m_flNextRespawnWave.003", - "m_flNextRespawnWave.004", - "m_flNextRespawnWave.005", - "m_flNextRespawnWave.006", - "m_flNextRespawnWave.007", - "m_flNextRespawnWave.008", - "m_flNextRespawnWave.009", - "m_flNextRespawnWave.010", - "m_flNextRespawnWave.011", - "m_flNextRespawnWave.012", - "m_flNextRespawnWave.013", - "m_flNextRespawnWave.014", - "m_flNextRespawnWave.015", - "m_flNextRespawnWave.016", - "m_flNextRespawnWave.017", - "m_flNextRespawnWave.018", - "m_flNextRespawnWave.019", - "m_flNextRespawnWave.020", - "m_flNextRespawnWave.021", - "m_flNextRespawnWave.022", - "m_flNextRespawnWave.023", - "m_flNextRespawnWave.024", - "m_flNextRespawnWave.025", - "m_flNextRespawnWave.026", - "m_flNextRespawnWave.027", - "m_flNextRespawnWave.028", - "m_flNextRespawnWave.029", - "m_flNextRespawnWave.030", - "m_flNextRespawnWave.031", - "m_TeamRespawnWaveTimes.000", - "m_TeamRespawnWaveTimes.001", - "m_TeamRespawnWaveTimes.002", - "m_TeamRespawnWaveTimes.003", - "m_TeamRespawnWaveTimes.004", - "m_TeamRespawnWaveTimes.005", - "m_TeamRespawnWaveTimes.006", - "m_TeamRespawnWaveTimes.007", - "m_TeamRespawnWaveTimes.008", - "m_TeamRespawnWaveTimes.009", - "m_TeamRespawnWaveTimes.010", - "m_TeamRespawnWaveTimes.011", - "m_TeamRespawnWaveTimes.012", - "m_TeamRespawnWaveTimes.013", - "m_TeamRespawnWaveTimes.014", - "m_TeamRespawnWaveTimes.015", - "m_TeamRespawnWaveTimes.016", - "m_TeamRespawnWaveTimes.017", - "m_TeamRespawnWaveTimes.018", - "m_TeamRespawnWaveTimes.019", - "m_TeamRespawnWaveTimes.020", - "m_TeamRespawnWaveTimes.021", - "m_TeamRespawnWaveTimes.022", - "m_TeamRespawnWaveTimes.023", - "m_TeamRespawnWaveTimes.024", - "m_TeamRespawnWaveTimes.025", - "m_TeamRespawnWaveTimes.026", - "m_TeamRespawnWaveTimes.027", - "m_TeamRespawnWaveTimes.028", - "m_TeamRespawnWaveTimes.029", - "m_TeamRespawnWaveTimes.030", - "m_TeamRespawnWaveTimes.031", - "m_bTeamReady.000", - "m_bTeamReady.001", - "m_bTeamReady.002", - "m_bTeamReady.003", - "m_bTeamReady.004", - "m_bTeamReady.005", - "m_bTeamReady.006", - "m_bTeamReady.007", - "m_bTeamReady.008", - "m_bTeamReady.009", - "m_bTeamReady.010", - "m_bTeamReady.011", - "m_bTeamReady.012", - "m_bTeamReady.013", - "m_bTeamReady.014", - "m_bTeamReady.015", - "m_bTeamReady.016", - "m_bTeamReady.017", - "m_bTeamReady.018", - "m_bTeamReady.019", - "m_bTeamReady.020", - "m_bTeamReady.021", - "m_bTeamReady.022", - "m_bTeamReady.023", - "m_bTeamReady.024", - "m_bTeamReady.025", - "m_bTeamReady.026", - "m_bTeamReady.027", - "m_bTeamReady.028", - "m_bTeamReady.029", - "m_bTeamReady.030", - "m_bTeamReady.031", - "m_bPlayerReady.000", - "m_bPlayerReady.001", - "m_bPlayerReady.002", - "m_bPlayerReady.003", - "m_bPlayerReady.004", - "m_bPlayerReady.005", - "m_bPlayerReady.006", - "m_bPlayerReady.007", - "m_bPlayerReady.008", - "m_bPlayerReady.009", - "m_bPlayerReady.010", - "m_bPlayerReady.011", - "m_bPlayerReady.012", - "m_bPlayerReady.013", - "m_bPlayerReady.014", - "m_bPlayerReady.015", - "m_bPlayerReady.016", - "m_bPlayerReady.017", - "m_bPlayerReady.018", - "m_bPlayerReady.019", - "m_bPlayerReady.020", - "m_bPlayerReady.021", - "m_bPlayerReady.022", - "m_bPlayerReady.023", - "m_bPlayerReady.024", - "m_bPlayerReady.025", - "m_bPlayerReady.026", - "m_bPlayerReady.027", - "m_bPlayerReady.028", - "m_bPlayerReady.029", - "m_bPlayerReady.030", - "m_bPlayerReady.031", - "m_bPlayerReady.032", - "DT_TeamplayRoundBasedRules.m_iRoundState", - "DT_TeamplayRoundBasedRules.m_bInWaitingForPlayers", - "DT_TeamplayRoundBasedRules.m_iWinningTeam", - "DT_TeamplayRoundBasedRules.m_bInOvertime", - "DT_TeamplayRoundBasedRules.m_bInSetup", - "DT_TeamplayRoundBasedRules.m_bSwitchedTeamsThisRound", - "DT_TeamplayRoundBasedRules.m_bAwaitingReadyRestart", - "DT_TeamplayRoundBasedRules.m_flRestartRoundTime", - "DT_TeamplayRoundBasedRules.m_flMapResetTime", - "DT_TeamplayRoundBasedRules.m_bStopWatch", - "DT_TeamplayRoundBasedRules.m_bMultipleTrains", - "DT_TeamplayRoundBasedRules.m_bCheatsEnabledDuringLevel" + "DT_WeaponSyringeGun": [ + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_LocalWeaponData.m_iClip1", + "DT_LocalWeaponData.m_iClip2", + "DT_LocalWeaponData.m_iPrimaryAmmoType", + "DT_LocalWeaponData.m_iSecondaryAmmoType", + "DT_LocalWeaponData.m_nViewModelIndex", + "DT_LocalWeaponData.m_bFlipViewModel", + "DT_LocalActiveWeaponData.m_flNextPrimaryAttack", + "DT_LocalActiveWeaponData.m_flNextSecondaryAttack", + "DT_LocalActiveWeaponData.m_nNextThinkTick", + "DT_LocalActiveWeaponData.m_flTimeWeaponIdle", + "DT_LocalTFWeaponData.m_flLastCritCheckTime", + "DT_LocalTFWeaponData.m_flReloadPriorNextFire", + "DT_LocalTFWeaponData.m_flLastFireTime", + "DT_LocalTFWeaponData.m_flEffectBarRegenTime", + "DT_LocalTFWeaponData.m_flObservedCritChance", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseCombatWeapon.m_iViewModelIndex", + "DT_BaseCombatWeapon.m_iWorldModelIndex", + "DT_BaseCombatWeapon.m_iState", + "DT_BaseCombatWeapon.m_hOwner", + "DT_TFWeaponBase.m_bLowered", + "DT_TFWeaponBase.m_bResetParity", + "DT_TFWeaponBase.m_iReloadMode", + "DT_TFWeaponBase.m_bReloadedThroughAnimEvent", + "DT_TFWeaponBase.m_bDisguiseWeapon", + "DT_TFWeaponBase.m_flEnergy", + "DT_TFWeaponBase.m_hExtraWearable", + "DT_TFWeaponBase.m_hExtraWearableViewModel", + "DT_TFWeaponBase.m_bBeingRepurposedForTaunt", + "DT_TFWeaponBase.m_nKillComboClass", + "DT_TFWeaponBase.m_nKillComboCount" ], - "m_flNextRespawnWave": [ - "m_flNextRespawnWave.000", - "m_flNextRespawnWave.001", - "m_flNextRespawnWave.002", - "m_flNextRespawnWave.003", - "m_flNextRespawnWave.004", - "m_flNextRespawnWave.005", - "m_flNextRespawnWave.006", - "m_flNextRespawnWave.007", - "m_flNextRespawnWave.008", - "m_flNextRespawnWave.009", - "m_flNextRespawnWave.010", - "m_flNextRespawnWave.011", - "m_flNextRespawnWave.012", - "m_flNextRespawnWave.013", - "m_flNextRespawnWave.014", - "m_flNextRespawnWave.015", - "m_flNextRespawnWave.016", - "m_flNextRespawnWave.017", - "m_flNextRespawnWave.018", - "m_flNextRespawnWave.019", - "m_flNextRespawnWave.020", - "m_flNextRespawnWave.021", - "m_flNextRespawnWave.022", - "m_flNextRespawnWave.023", - "m_flNextRespawnWave.024", - "m_flNextRespawnWave.025", - "m_flNextRespawnWave.026", - "m_flNextRespawnWave.027", - "m_flNextRespawnWave.028", - "m_flNextRespawnWave.029", - "m_flNextRespawnWave.030", - "m_flNextRespawnWave.031" + "DT_WearableItem": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedItem.m_iItemDefinitionIndex", + "DT_ScriptCreatedItem.m_iEntityLevel", + "DT_ScriptCreatedItem.m_iItemIDHigh", + "DT_ScriptCreatedItem.m_iItemIDLow", + "DT_ScriptCreatedItem.m_iAccountID", + "DT_ScriptCreatedItem.m_iEntityQuality", + "DT_ScriptCreatedItem.m_bInitialized", + "DT_ScriptCreatedItem.m_bOnlyIterateItemViewAttributes", + "DT_AttributeContainer.m_hOuter", + "DT_AttributeContainer.m_ProviderType", + "DT_AttributeContainer.m_iReapplyProvisionParity", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale" ], - "m_TeamRespawnWaveTimes": [ - "m_TeamRespawnWaveTimes.000", - "m_TeamRespawnWaveTimes.001", - "m_TeamRespawnWaveTimes.002", - "m_TeamRespawnWaveTimes.003", - "m_TeamRespawnWaveTimes.004", - "m_TeamRespawnWaveTimes.005", - "m_TeamRespawnWaveTimes.006", - "m_TeamRespawnWaveTimes.007", - "m_TeamRespawnWaveTimes.008", - "m_TeamRespawnWaveTimes.009", - "m_TeamRespawnWaveTimes.010", - "m_TeamRespawnWaveTimes.011", - "m_TeamRespawnWaveTimes.012", - "m_TeamRespawnWaveTimes.013", - "m_TeamRespawnWaveTimes.014", - "m_TeamRespawnWaveTimes.015", - "m_TeamRespawnWaveTimes.016", - "m_TeamRespawnWaveTimes.017", - "m_TeamRespawnWaveTimes.018", - "m_TeamRespawnWaveTimes.019", - "m_TeamRespawnWaveTimes.020", - "m_TeamRespawnWaveTimes.021", - "m_TeamRespawnWaveTimes.022", - "m_TeamRespawnWaveTimes.023", - "m_TeamRespawnWaveTimes.024", - "m_TeamRespawnWaveTimes.025", - "m_TeamRespawnWaveTimes.026", - "m_TeamRespawnWaveTimes.027", - "m_TeamRespawnWaveTimes.028", - "m_TeamRespawnWaveTimes.029", - "m_TeamRespawnWaveTimes.030", - "m_TeamRespawnWaveTimes.031" + "DT_Zombie": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_BaseEntity.m_vecOrigin", + "DT_BaseEntity.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095", + "DT_BCCLocalPlayerExclusive.m_flNextAttack", + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_CollisionProperty.m_vecMins", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_CollisionProperty.m_vecMaxs", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseFlex.m_blinktoggle", + "DT_BaseFlex.m_viewtarget", + "DT_BaseCombatCharacter.m_bGlowEnabled", + "DT_BaseCombatCharacter.m_hActiveWeapon", + "DT_Zombie.m_flHeadScale" ], - "m_bTeamReady": [ - "m_bTeamReady.000", - "m_bTeamReady.001", - "m_bTeamReady.002", - "m_bTeamReady.003", - "m_bTeamReady.004", - "m_bTeamReady.005", - "m_bTeamReady.006", - "m_bTeamReady.007", - "m_bTeamReady.008", - "m_bTeamReady.009", - "m_bTeamReady.010", - "m_bTeamReady.011", - "m_bTeamReady.012", - "m_bTeamReady.013", - "m_bTeamReady.014", - "m_bTeamReady.015", - "m_bTeamReady.016", - "m_bTeamReady.017", - "m_bTeamReady.018", - "m_bTeamReady.019", - "m_bTeamReady.020", - "m_bTeamReady.021", - "m_bTeamReady.022", - "m_bTeamReady.023", - "m_bTeamReady.024", - "m_bTeamReady.025", - "m_bTeamReady.026", - "m_bTeamReady.027", - "m_bTeamReady.028", - "m_bTeamReady.029", - "m_bTeamReady.030", - "m_bTeamReady.031" + "SpellTransposeTeleport": [ + "DT_AnimTimeMustBeFirst.m_flAnimTime", + "DT_ServerAnimationData.m_flCycle", + "DT_BaseEntity.m_flSimulationTime", + "DT_TFWeaponBaseGrenadeProj.m_vecOrigin", + "DT_TFWeaponBaseGrenadeProj.m_angRotation", + "DT_CollisionProperty.m_nSolidType", + "DT_CollisionProperty.m_usSolidFlags", + "DT_CollisionProperty.m_nSurroundType", + "DT_CollisionProperty.m_triggerBloat", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMinsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxsPreScaled", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMins", + "DT_CollisionProperty.m_vecSpecifiedSurroundingMaxs", + "DT_PredictableId.m_PredictableID", + "DT_PredictableId.m_bIsPlayerSimulated", + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003", + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023", + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003", + "DT_CollisionProperty.m_vecMinsPreScaled", + "DT_CollisionProperty.m_vecMaxsPreScaled", + "DT_BaseEntity.m_ubInterpolationFrame", + "DT_BaseEntity.m_nModelIndex", + "DT_BaseEntity.m_nRenderFX", + "DT_BaseEntity.m_nRenderMode", + "DT_BaseEntity.m_fEffects", + "DT_BaseEntity.m_clrRender", + "DT_BaseEntity.m_iTeamNum", + "DT_BaseEntity.m_CollisionGroup", + "DT_BaseEntity.m_flElasticity", + "DT_BaseEntity.m_flShadowCastDistance", + "DT_BaseEntity.m_hOwnerEntity", + "DT_BaseEntity.m_hEffectEntity", + "DT_BaseEntity.moveparent", + "DT_BaseEntity.m_iParentAttachment", + "DT_BaseEntity.movetype", + "DT_BaseEntity.movecollide", + "DT_BaseEntity.m_iTextureFrameIndex", + "DT_BaseEntity.m_bSimulatedEveryTick", + "DT_BaseEntity.m_bAnimatedEveryTick", + "DT_BaseEntity.m_bAlternateSorting", + "DT_BaseAnimating.m_nForceBone", + "DT_BaseAnimating.m_vecForce", + "DT_BaseAnimating.m_nSkin", + "DT_BaseAnimating.m_nBody", + "DT_BaseAnimating.m_nHitboxSet", + "DT_BaseAnimating.m_flModelScale", + "DT_BaseAnimating.m_nSequence", + "DT_BaseAnimating.m_flPlaybackRate", + "DT_BaseAnimating.m_bClientSideAnimation", + "DT_BaseAnimating.m_bClientSideFrameReset", + "DT_BaseAnimating.m_nNewSequenceParity", + "DT_BaseAnimating.m_nResetEventsParity", + "DT_BaseAnimating.m_nMuzzleFlashParity", + "DT_BaseAnimating.m_hLightingOrigin", + "DT_BaseAnimating.m_hLightingOriginRelative", + "DT_BaseAnimating.m_fadeMinDist", + "DT_BaseAnimating.m_fadeMaxDist", + "DT_BaseAnimating.m_flFadeScale", + "DT_BaseProjectile.m_hOriginalLauncher", + "DT_BaseGrenade.m_flDamage", + "DT_BaseGrenade.m_DmgRadius", + "DT_BaseGrenade.m_bIsLive", + "DT_BaseGrenade.m_hThrower", + "DT_BaseGrenade.m_vecVelocity", + "DT_BaseGrenade.m_fFlags", + "DT_TFWeaponBaseGrenadeProj.m_vInitialVelocity", + "DT_TFWeaponBaseGrenadeProj.m_bCritical", + "DT_CollisionProperty.m_vecMins", + "DT_CollisionProperty.m_vecMaxs", + "DT_TFWeaponBaseGrenadeProj.m_iDeflected", + "DT_TFWeaponBaseGrenadeProj.m_hDeflectOwner", + "DT_TFProjectile_Pipebomb.m_bTouched", + "DT_TFProjectile_Pipebomb.m_iType", + "DT_TFProjectile_Pipebomb.m_hLauncher", + "DT_TFProjectile_Pipebomb.m_bDefensiveBomb" ], - "m_bPlayerReady": [ - "m_bPlayerReady.000", - "m_bPlayerReady.001", - "m_bPlayerReady.002", - "m_bPlayerReady.003", - "m_bPlayerReady.004", - "m_bPlayerReady.005", - "m_bPlayerReady.006", - "m_bPlayerReady.007", - "m_bPlayerReady.008", - "m_bPlayerReady.009", - "m_bPlayerReady.010", - "m_bPlayerReady.011", - "m_bPlayerReady.012", - "m_bPlayerReady.013", - "m_bPlayerReady.014", - "m_bPlayerReady.015", - "m_bPlayerReady.016", - "m_bPlayerReady.017", - "m_bPlayerReady.018", - "m_bPlayerReady.019", - "m_bPlayerReady.020", - "m_bPlayerReady.021", - "m_bPlayerReady.022", - "m_bPlayerReady.023", - "m_bPlayerReady.024", - "m_bPlayerReady.025", - "m_bPlayerReady.026", - "m_bPlayerReady.027", - "m_bPlayerReady.028", - "m_bPlayerReady.029", - "m_bPlayerReady.030", - "m_bPlayerReady.031", - "m_bPlayerReady.032" + "_LPT_m_AnimOverlay_15": [ + "_LPT_m_AnimOverlay_15.lengthprop15" ], - "DT_EffectData": [ - "DT_EffectData.m_vOrigin[0]", - "DT_EffectData.m_vOrigin[1]", - "DT_EffectData.m_vOrigin[2]", - "DT_EffectData.m_vStart[0]", - "DT_EffectData.m_vStart[1]", - "DT_EffectData.m_vStart[2]", - "DT_EffectData.m_vAngles", - "DT_EffectData.m_vNormal", - "DT_EffectData.m_fFlags", - "DT_EffectData.m_flMagnitude", - "DT_EffectData.m_flScale", - "DT_EffectData.m_nAttachmentIndex", - "DT_EffectData.m_nSurfaceProp", - "DT_EffectData.m_iEffectName", - "DT_EffectData.m_nMaterial", - "DT_EffectData.m_nDamageType", - "DT_EffectData.m_nHitBox", - "DT_EffectData.entindex", - "DT_EffectData.m_nColor", - "DT_EffectData.m_flRadius", - "DT_EffectData.m_bCustomColors", - "DT_EffectData.m_CustomColors.m_vecColor1", - "DT_EffectData.m_CustomColors.m_vecColor2", - "DT_EffectData.m_bControlPoint1", - "DT_EffectData.m_ControlPoint1.m_eParticleAttachment", - "DT_EffectData.m_ControlPoint1.m_vecOffset[0]", - "DT_EffectData.m_ControlPoint1.m_vecOffset[1]", - "DT_EffectData.m_ControlPoint1.m_vecOffset[2]" + "_LPT_m_Attributes_15": [ + "_LPT_m_Attributes_15.lengthprop15" ], - "DT_ProxyToggle_ProxiedData": [ - "DT_ProxyToggle_ProxiedData.m_WithProxy" + "_LPT_m_aBonusPlayerRoll_33": [ + "_LPT_m_aBonusPlayerRoll_33.lengthprop33" ], - "DT_LocalTFWeaponData": [ - "DT_LocalTFWeaponData.m_flLastCritCheckTime", - "DT_LocalTFWeaponData.m_flReloadPriorNextFire", - "DT_LocalTFWeaponData.m_flLastFireTime", - "DT_LocalTFWeaponData.m_flEffectBarRegenTime", - "DT_LocalTFWeaponData.m_flObservedCritChance" + "_LPT_m_hActorList_16": [ + "_LPT_m_hActorList_16.lengthprop16" ], - "DT_TFWeaponDataNonLocal": [], - "DT_PipebombLauncherLocalData": [ - "DT_PipebombLauncherLocalData.m_iPipebombCount", - "DT_PipebombLauncherLocalData.m_flChargeBeginTime" + "_LPT_m_hMyWearables_8": [ + "_LPT_m_hMyWearables_8.lengthprop8" ], - "DT_LocalFlameThrower": [ - "DT_LocalFlameThrower.m_iActiveFlames", - "DT_LocalFlameThrower.m_iDamagingFlames" + "_LPT_m_hRagWearables_8": [ + "_LPT_m_hRagWearables_8.lengthprop8" ], - "DT_TFGameRules": [ - "DT_TFGameRules.m_nGameType", - "DT_TFGameRules.m_nStopWatchState", - "DT_TFGameRules.m_pszTeamGoalStringRed", - "DT_TFGameRules.m_pszTeamGoalStringBlue", - "DT_TFGameRules.m_flCapturePointEnableTime", - "DT_TFGameRules.m_nHudType", - "DT_TFGameRules.m_bIsInTraining", - "DT_TFGameRules.m_bAllowTrainingAchievements", - "DT_TFGameRules.m_bIsWaitingForTrainingContinue", - "DT_TFGameRules.m_bIsTrainingHUDVisible", - "DT_TFGameRules.m_bIsInItemTestingMode", - "DT_TFGameRules.m_hBonusLogic", - "DT_TFGameRules.m_bPlayingKoth", - "DT_TFGameRules.m_bPlayingMedieval", - "DT_TFGameRules.m_bPlayingHybrid_CTF_CP", - "DT_TFGameRules.m_bPlayingSpecialDeliveryMode", - "DT_TFGameRules.m_bPlayingRobotDestructionMode", - "DT_TFGameRules.m_hRedKothTimer", - "DT_TFGameRules.m_hBlueKothTimer", - "DT_TFGameRules.m_nMapHolidayType", - "DT_TFGameRules.m_itHandle", - "DT_TFGameRules.m_bPlayingMannVsMachine", - "DT_TFGameRules.m_hBirthdayPlayer", - "DT_TFGameRules.m_nBossHealth", - "DT_TFGameRules.m_nMaxBossHealth", - "DT_TFGameRules.m_fBossNormalizedTravelDistance", - "DT_TFGameRules.m_bMannVsMachineAlarmStatus", - "DT_TFGameRules.m_bHaveMinPlayersToEnableReady", - "DT_TFGameRules.m_bBountyModeEnabled", - "DT_TFGameRules.m_nHalloweenEffect", - "DT_TFGameRules.m_fHalloweenEffectStartTime", - "DT_TFGameRules.m_fHalloweenEffectDuration", - "DT_TFGameRules.m_halloweenScenario", - "DT_TFGameRules.m_bHelltowerPlayersInHell", - "DT_TFGameRules.m_bIsUsingSpells", - "DT_TFGameRules.m_bCompetitiveMode", - "DT_TFGameRules.m_bPowerupMode", - "DT_TFGameRules.m_pszCustomUpgradesFile" + "_ST_m_AnimOverlay_15": [ + "_LPT_m_AnimOverlay_15.lengthprop15", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder", + "DT_Animationlayer.m_nSequence", + "DT_Animationlayer.m_flCycle", + "DT_Animationlayer.m_flPrevCycle", + "DT_Animationlayer.m_flWeight", + "DT_Animationlayer.m_nOrder" + ], + "_ST_m_Attributes_15": [ + "_LPT_m_Attributes_15.lengthprop15", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency", + "DT_ScriptCreatedAttribute.m_iAttributeDefinitionIndex", + "DT_ScriptCreatedAttribute.m_iRawValue32", + "DT_ScriptCreatedAttribute.m_nRefundableCurrency" + ], + "_ST_m_aBonusPlayerRoll_33": [ + "_LPT_m_aBonusPlayerRoll_33.lengthprop33", + "_ST_m_aBonusPlayerRoll_33.000", + "_ST_m_aBonusPlayerRoll_33.001", + "_ST_m_aBonusPlayerRoll_33.002", + "_ST_m_aBonusPlayerRoll_33.003", + "_ST_m_aBonusPlayerRoll_33.004", + "_ST_m_aBonusPlayerRoll_33.005", + "_ST_m_aBonusPlayerRoll_33.006", + "_ST_m_aBonusPlayerRoll_33.007", + "_ST_m_aBonusPlayerRoll_33.008", + "_ST_m_aBonusPlayerRoll_33.009", + "_ST_m_aBonusPlayerRoll_33.010", + "_ST_m_aBonusPlayerRoll_33.011", + "_ST_m_aBonusPlayerRoll_33.012", + "_ST_m_aBonusPlayerRoll_33.013", + "_ST_m_aBonusPlayerRoll_33.014", + "_ST_m_aBonusPlayerRoll_33.015", + "_ST_m_aBonusPlayerRoll_33.016", + "_ST_m_aBonusPlayerRoll_33.017", + "_ST_m_aBonusPlayerRoll_33.018", + "_ST_m_aBonusPlayerRoll_33.019", + "_ST_m_aBonusPlayerRoll_33.020", + "_ST_m_aBonusPlayerRoll_33.021", + "_ST_m_aBonusPlayerRoll_33.022", + "_ST_m_aBonusPlayerRoll_33.023", + "_ST_m_aBonusPlayerRoll_33.024", + "_ST_m_aBonusPlayerRoll_33.025", + "_ST_m_aBonusPlayerRoll_33.026", + "_ST_m_aBonusPlayerRoll_33.027", + "_ST_m_aBonusPlayerRoll_33.028", + "_ST_m_aBonusPlayerRoll_33.029", + "_ST_m_aBonusPlayerRoll_33.030", + "_ST_m_aBonusPlayerRoll_33.031", + "_ST_m_aBonusPlayerRoll_33.032" + ], + "_ST_m_hActorList_16": [ + "_LPT_m_hActorList_16.lengthprop16", + "_ST_m_hActorList_16.000", + "_ST_m_hActorList_16.001", + "_ST_m_hActorList_16.002", + "_ST_m_hActorList_16.003", + "_ST_m_hActorList_16.004", + "_ST_m_hActorList_16.005", + "_ST_m_hActorList_16.006", + "_ST_m_hActorList_16.007", + "_ST_m_hActorList_16.008", + "_ST_m_hActorList_16.009", + "_ST_m_hActorList_16.010", + "_ST_m_hActorList_16.011", + "_ST_m_hActorList_16.012", + "_ST_m_hActorList_16.013", + "_ST_m_hActorList_16.014", + "_ST_m_hActorList_16.015" + ], + "_ST_m_hMyWearables_8": [ + "_LPT_m_hMyWearables_8.lengthprop8", + "_ST_m_hMyWearables_8.000", + "_ST_m_hMyWearables_8.001", + "_ST_m_hMyWearables_8.002", + "_ST_m_hMyWearables_8.003", + "_ST_m_hMyWearables_8.004", + "_ST_m_hMyWearables_8.005", + "_ST_m_hMyWearables_8.006", + "_ST_m_hMyWearables_8.007" + ], + "_ST_m_hRagWearables_8": [ + "_LPT_m_hRagWearables_8.lengthprop8", + "_ST_m_hRagWearables_8.000", + "_ST_m_hRagWearables_8.001", + "_ST_m_hRagWearables_8.002", + "_ST_m_hRagWearables_8.003", + "_ST_m_hRagWearables_8.004", + "_ST_m_hRagWearables_8.005", + "_ST_m_hRagWearables_8.006", + "_ST_m_hRagWearables_8.007" + ], + "m_RawPanelBitVec": [ + "m_RawPanelBitVec.000", + "m_RawPanelBitVec.001", + "m_RawPanelBitVec.002", + "m_RawPanelBitVec.003", + "m_RawPanelBitVec.004", + "m_RawPanelBitVec.005", + "m_RawPanelBitVec.006", + "m_RawPanelBitVec.007", + "m_RawPanelBitVec.008", + "m_RawPanelBitVec.009", + "m_RawPanelBitVec.010", + "m_RawPanelBitVec.011", + "m_RawPanelBitVec.012", + "m_RawPanelBitVec.013", + "m_RawPanelBitVec.014", + "m_RawPanelBitVec.015", + "m_RawPanelBitVec.016", + "m_RawPanelBitVec.017", + "m_RawPanelBitVec.018", + "m_RawPanelBitVec.019", + "m_RawPanelBitVec.020", + "m_RawPanelBitVec.021", + "m_RawPanelBitVec.022", + "m_RawPanelBitVec.023", + "m_RawPanelBitVec.024", + "m_RawPanelBitVec.025", + "m_RawPanelBitVec.026", + "m_RawPanelBitVec.027", + "m_RawPanelBitVec.028", + "m_RawPanelBitVec.029", + "m_RawPanelBitVec.030", + "m_RawPanelBitVec.031", + "m_RawPanelBitVec.032", + "m_RawPanelBitVec.033", + "m_RawPanelBitVec.034", + "m_RawPanelBitVec.035", + "m_RawPanelBitVec.036", + "m_RawPanelBitVec.037", + "m_RawPanelBitVec.038", + "m_RawPanelBitVec.039", + "m_RawPanelBitVec.040", + "m_RawPanelBitVec.041", + "m_RawPanelBitVec.042", + "m_RawPanelBitVec.043", + "m_RawPanelBitVec.044", + "m_RawPanelBitVec.045", + "m_RawPanelBitVec.046", + "m_RawPanelBitVec.047", + "m_RawPanelBitVec.048", + "m_RawPanelBitVec.049", + "m_RawPanelBitVec.050", + "m_RawPanelBitVec.051", + "m_RawPanelBitVec.052", + "m_RawPanelBitVec.053", + "m_RawPanelBitVec.054", + "m_RawPanelBitVec.055", + "m_RawPanelBitVec.056", + "m_RawPanelBitVec.057", + "m_RawPanelBitVec.058", + "m_RawPanelBitVec.059", + "m_RawPanelBitVec.060", + "m_RawPanelBitVec.061", + "m_RawPanelBitVec.062", + "m_RawPanelBitVec.063", + "m_RawPanelBitVec.064", + "m_RawPanelBitVec.065", + "m_RawPanelBitVec.066", + "m_RawPanelBitVec.067", + "m_RawPanelBitVec.068", + "m_RawPanelBitVec.069", + "m_RawPanelBitVec.070", + "m_RawPanelBitVec.071", + "m_RawPanelBitVec.072", + "m_RawPanelBitVec.073", + "m_RawPanelBitVec.074", + "m_RawPanelBitVec.075", + "m_RawPanelBitVec.076", + "m_RawPanelBitVec.077", + "m_RawPanelBitVec.078", + "m_RawPanelBitVec.079", + "m_RawPanelBitVec.080", + "m_RawPanelBitVec.081", + "m_RawPanelBitVec.082", + "m_RawPanelBitVec.083", + "m_RawPanelBitVec.084", + "m_RawPanelBitVec.085", + "m_RawPanelBitVec.086", + "m_RawPanelBitVec.087", + "m_RawPanelBitVec.088", + "m_RawPanelBitVec.089", + "m_RawPanelBitVec.090", + "m_RawPanelBitVec.091", + "m_RawPanelBitVec.092", + "m_RawPanelBitVec.093", + "m_RawPanelBitVec.094", + "m_RawPanelBitVec.095", + "m_RawPanelBitVec.096", + "m_RawPanelBitVec.097", + "m_RawPanelBitVec.098", + "m_RawPanelBitVec.099", + "m_RawPanelBitVec.100", + "m_RawPanelBitVec.101", + "m_RawPanelBitVec.102", + "m_RawPanelBitVec.103", + "m_RawPanelBitVec.104", + "m_RawPanelBitVec.105", + "m_RawPanelBitVec.106", + "m_RawPanelBitVec.107", + "m_RawPanelBitVec.108", + "m_RawPanelBitVec.109", + "m_RawPanelBitVec.110", + "m_RawPanelBitVec.111", + "m_RawPanelBitVec.112", + "m_RawPanelBitVec.113", + "m_RawPanelBitVec.114", + "m_RawPanelBitVec.115", + "m_RawPanelBitVec.116", + "m_RawPanelBitVec.117", + "m_RawPanelBitVec.118", + "m_RawPanelBitVec.119", + "m_RawPanelBitVec.120", + "m_RawPanelBitVec.121", + "m_RawPanelBitVec.122", + "m_RawPanelBitVec.123", + "m_RawPanelBitVec.124", + "m_RawPanelBitVec.125", + "m_RawPanelBitVec.126", + "m_RawPanelBitVec.127", + "m_RawPanelBitVec.128", + "m_RawPanelBitVec.129", + "m_RawPanelBitVec.130", + "m_RawPanelBitVec.131", + "m_RawPanelBitVec.132", + "m_RawPanelBitVec.133", + "m_RawPanelBitVec.134", + "m_RawPanelBitVec.135", + "m_RawPanelBitVec.136", + "m_RawPanelBitVec.137", + "m_RawPanelBitVec.138", + "m_RawPanelBitVec.139", + "m_RawPanelBitVec.140", + "m_RawPanelBitVec.141", + "m_RawPanelBitVec.142", + "m_RawPanelBitVec.143", + "m_RawPanelBitVec.144", + "m_RawPanelBitVec.145", + "m_RawPanelBitVec.146", + "m_RawPanelBitVec.147", + "m_RawPanelBitVec.148", + "m_RawPanelBitVec.149", + "m_RawPanelBitVec.150", + "m_RawPanelBitVec.151", + "m_RawPanelBitVec.152", + "m_RawPanelBitVec.153", + "m_RawPanelBitVec.154", + "m_RawPanelBitVec.155", + "m_RawPanelBitVec.156", + "m_RawPanelBitVec.157", + "m_RawPanelBitVec.158", + "m_RawPanelBitVec.159", + "m_RawPanelBitVec.160", + "m_RawPanelBitVec.161", + "m_RawPanelBitVec.162", + "m_RawPanelBitVec.163", + "m_RawPanelBitVec.164", + "m_RawPanelBitVec.165", + "m_RawPanelBitVec.166", + "m_RawPanelBitVec.167", + "m_RawPanelBitVec.168", + "m_RawPanelBitVec.169", + "m_RawPanelBitVec.170", + "m_RawPanelBitVec.171", + "m_RawPanelBitVec.172", + "m_RawPanelBitVec.173", + "m_RawPanelBitVec.174", + "m_RawPanelBitVec.175", + "m_RawPanelBitVec.176", + "m_RawPanelBitVec.177", + "m_RawPanelBitVec.178", + "m_RawPanelBitVec.179", + "m_RawPanelBitVec.180", + "m_RawPanelBitVec.181", + "m_RawPanelBitVec.182", + "m_RawPanelBitVec.183", + "m_RawPanelBitVec.184", + "m_RawPanelBitVec.185", + "m_RawPanelBitVec.186", + "m_RawPanelBitVec.187", + "m_RawPanelBitVec.188", + "m_RawPanelBitVec.189", + "m_RawPanelBitVec.190", + "m_RawPanelBitVec.191", + "m_RawPanelBitVec.192", + "m_RawPanelBitVec.193", + "m_RawPanelBitVec.194", + "m_RawPanelBitVec.195", + "m_RawPanelBitVec.196", + "m_RawPanelBitVec.197", + "m_RawPanelBitVec.198", + "m_RawPanelBitVec.199", + "m_RawPanelBitVec.200", + "m_RawPanelBitVec.201", + "m_RawPanelBitVec.202", + "m_RawPanelBitVec.203", + "m_RawPanelBitVec.204", + "m_RawPanelBitVec.205", + "m_RawPanelBitVec.206", + "m_RawPanelBitVec.207", + "m_RawPanelBitVec.208", + "m_RawPanelBitVec.209", + "m_RawPanelBitVec.210", + "m_RawPanelBitVec.211", + "m_RawPanelBitVec.212", + "m_RawPanelBitVec.213", + "m_RawPanelBitVec.214", + "m_RawPanelBitVec.215", + "m_RawPanelBitVec.216", + "m_RawPanelBitVec.217", + "m_RawPanelBitVec.218", + "m_RawPanelBitVec.219", + "m_RawPanelBitVec.220", + "m_RawPanelBitVec.221", + "m_RawPanelBitVec.222", + "m_RawPanelBitVec.223", + "m_RawPanelBitVec.224", + "m_RawPanelBitVec.225", + "m_RawPanelBitVec.226", + "m_RawPanelBitVec.227", + "m_RawPanelBitVec.228", + "m_RawPanelBitVec.229", + "m_RawPanelBitVec.230", + "m_RawPanelBitVec.231", + "m_RawPanelBitVec.232", + "m_RawPanelBitVec.233", + "m_RawPanelBitVec.234", + "m_RawPanelBitVec.235", + "m_RawPanelBitVec.236", + "m_RawPanelBitVec.237", + "m_RawPanelBitVec.238", + "m_RawPanelBitVec.239", + "m_RawPanelBitVec.240", + "m_RawPanelBitVec.241", + "m_RawPanelBitVec.242", + "m_RawPanelBitVec.243", + "m_RawPanelBitVec.244", + "m_RawPanelBitVec.245", + "m_RawPanelBitVec.246", + "m_RawPanelBitVec.247", + "m_RawPanelBitVec.248", + "m_RawPanelBitVec.249", + "m_RawPanelBitVec.250", + "m_RawPanelBitVec.251", + "m_RawPanelBitVec.252", + "m_RawPanelBitVec.253", + "m_RawPanelBitVec.254", + "m_RawPanelBitVec.255" ], - "m_nMinigameTeamScore": [ - "m_nMinigameTeamScore.000", - "m_nMinigameTeamScore.001", - "m_nMinigameTeamScore.002", - "m_nMinigameTeamScore.003" + "m_TeamRespawnWaveTimes": [ + "m_TeamRespawnWaveTimes.000", + "m_TeamRespawnWaveTimes.001", + "m_TeamRespawnWaveTimes.002", + "m_TeamRespawnWaveTimes.003", + "m_TeamRespawnWaveTimes.004", + "m_TeamRespawnWaveTimes.005", + "m_TeamRespawnWaveTimes.006", + "m_TeamRespawnWaveTimes.007", + "m_TeamRespawnWaveTimes.008", + "m_TeamRespawnWaveTimes.009", + "m_TeamRespawnWaveTimes.010", + "m_TeamRespawnWaveTimes.011", + "m_TeamRespawnWaveTimes.012", + "m_TeamRespawnWaveTimes.013", + "m_TeamRespawnWaveTimes.014", + "m_TeamRespawnWaveTimes.015", + "m_TeamRespawnWaveTimes.016", + "m_TeamRespawnWaveTimes.017", + "m_TeamRespawnWaveTimes.018", + "m_TeamRespawnWaveTimes.019", + "m_TeamRespawnWaveTimes.020", + "m_TeamRespawnWaveTimes.021", + "m_TeamRespawnWaveTimes.022", + "m_TeamRespawnWaveTimes.023", + "m_TeamRespawnWaveTimes.024", + "m_TeamRespawnWaveTimes.025", + "m_TeamRespawnWaveTimes.026", + "m_TeamRespawnWaveTimes.027", + "m_TeamRespawnWaveTimes.028", + "m_TeamRespawnWaveTimes.029", + "m_TeamRespawnWaveTimes.030", + "m_TeamRespawnWaveTimes.031" ], - "m_nMannVsMachineWaveClassCounts": [ - "m_nMannVsMachineWaveClassCounts.000", - "m_nMannVsMachineWaveClassCounts.001", - "m_nMannVsMachineWaveClassCounts.002", - "m_nMannVsMachineWaveClassCounts.003", - "m_nMannVsMachineWaveClassCounts.004", - "m_nMannVsMachineWaveClassCounts.005", - "m_nMannVsMachineWaveClassCounts.006", - "m_nMannVsMachineWaveClassCounts.007", - "m_nMannVsMachineWaveClassCounts.008", - "m_nMannVsMachineWaveClassCounts.009", - "m_nMannVsMachineWaveClassCounts.010", - "m_nMannVsMachineWaveClassCounts.011" + "m_aBuildableObjectTypes": [ + "m_aBuildableObjectTypes.000", + "m_aBuildableObjectTypes.001", + "m_aBuildableObjectTypes.002", + "m_aBuildableObjectTypes.003" ], - "m_nMannVsMachineWaveClassFlags": [ - "m_nMannVsMachineWaveClassFlags.000", - "m_nMannVsMachineWaveClassFlags.001", - "m_nMannVsMachineWaveClassFlags.002", - "m_nMannVsMachineWaveClassFlags.003", - "m_nMannVsMachineWaveClassFlags.004", - "m_nMannVsMachineWaveClassFlags.005", - "m_nMannVsMachineWaveClassFlags.006", - "m_nMannVsMachineWaveClassFlags.007", - "m_nMannVsMachineWaveClassFlags.008", - "m_nMannVsMachineWaveClassFlags.009", - "m_nMannVsMachineWaveClassFlags.010", - "m_nMannVsMachineWaveClassFlags.011" + "m_bAlive": [ + "m_bAlive.000", + "m_bAlive.001", + "m_bAlive.002", + "m_bAlive.003", + "m_bAlive.004", + "m_bAlive.005", + "m_bAlive.006", + "m_bAlive.007", + "m_bAlive.008", + "m_bAlive.009", + "m_bAlive.010", + "m_bAlive.011", + "m_bAlive.012", + "m_bAlive.013", + "m_bAlive.014", + "m_bAlive.015", + "m_bAlive.016", + "m_bAlive.017", + "m_bAlive.018", + "m_bAlive.019", + "m_bAlive.020", + "m_bAlive.021", + "m_bAlive.022", + "m_bAlive.023", + "m_bAlive.024", + "m_bAlive.025", + "m_bAlive.026", + "m_bAlive.027", + "m_bAlive.028", + "m_bAlive.029", + "m_bAlive.030", + "m_bAlive.031", + "m_bAlive.032", + "m_bAlive.033" ], - "m_nMannVsMachineWaveClassCounts2": [ - "m_nMannVsMachineWaveClassCounts2.000", - "m_nMannVsMachineWaveClassCounts2.001", - "m_nMannVsMachineWaveClassCounts2.002", - "m_nMannVsMachineWaveClassCounts2.003", - "m_nMannVsMachineWaveClassCounts2.004", - "m_nMannVsMachineWaveClassCounts2.005", - "m_nMannVsMachineWaveClassCounts2.006", - "m_nMannVsMachineWaveClassCounts2.007", - "m_nMannVsMachineWaveClassCounts2.008", - "m_nMannVsMachineWaveClassCounts2.009", - "m_nMannVsMachineWaveClassCounts2.010", - "m_nMannVsMachineWaveClassCounts2.011" + "m_bArenaSpectator": [ + "m_bArenaSpectator.000", + "m_bArenaSpectator.001", + "m_bArenaSpectator.002", + "m_bArenaSpectator.003", + "m_bArenaSpectator.004", + "m_bArenaSpectator.005", + "m_bArenaSpectator.006", + "m_bArenaSpectator.007", + "m_bArenaSpectator.008", + "m_bArenaSpectator.009", + "m_bArenaSpectator.010", + "m_bArenaSpectator.011", + "m_bArenaSpectator.012", + "m_bArenaSpectator.013", + "m_bArenaSpectator.014", + "m_bArenaSpectator.015", + "m_bArenaSpectator.016", + "m_bArenaSpectator.017", + "m_bArenaSpectator.018", + "m_bArenaSpectator.019", + "m_bArenaSpectator.020", + "m_bArenaSpectator.021", + "m_bArenaSpectator.022", + "m_bArenaSpectator.023", + "m_bArenaSpectator.024", + "m_bArenaSpectator.025", + "m_bArenaSpectator.026", + "m_bArenaSpectator.027", + "m_bArenaSpectator.028", + "m_bArenaSpectator.029", + "m_bArenaSpectator.030", + "m_bArenaSpectator.031", + "m_bArenaSpectator.032", + "m_bArenaSpectator.033" ], - "m_nMannVsMachineWaveClassFlags2": [ - "m_nMannVsMachineWaveClassFlags2.000", - "m_nMannVsMachineWaveClassFlags2.001", - "m_nMannVsMachineWaveClassFlags2.002", - "m_nMannVsMachineWaveClassFlags2.003", - "m_nMannVsMachineWaveClassFlags2.004", - "m_nMannVsMachineWaveClassFlags2.005", - "m_nMannVsMachineWaveClassFlags2.006", - "m_nMannVsMachineWaveClassFlags2.007", - "m_nMannVsMachineWaveClassFlags2.008", - "m_nMannVsMachineWaveClassFlags2.009", - "m_nMannVsMachineWaveClassFlags2.010", - "m_nMannVsMachineWaveClassFlags2.011" + "m_bBlocked": [ + "m_bBlocked.000", + "m_bBlocked.001", + "m_bBlocked.002", + "m_bBlocked.003", + "m_bBlocked.004", + "m_bBlocked.005", + "m_bBlocked.006", + "m_bBlocked.007" ], - "m_bMannVsMachineWaveClassActive": [ - "m_bMannVsMachineWaveClassActive.000", - "m_bMannVsMachineWaveClassActive.001", - "m_bMannVsMachineWaveClassActive.002", - "m_bMannVsMachineWaveClassActive.003", - "m_bMannVsMachineWaveClassActive.004", - "m_bMannVsMachineWaveClassActive.005", - "m_bMannVsMachineWaveClassActive.006", - "m_bMannVsMachineWaveClassActive.007", - "m_bMannVsMachineWaveClassActive.008", - "m_bMannVsMachineWaveClassActive.009", - "m_bMannVsMachineWaveClassActive.010", - "m_bMannVsMachineWaveClassActive.011" + "m_bCPCapRateScalesWithPlayers": [ + "m_bCPCapRateScalesWithPlayers.000", + "m_bCPCapRateScalesWithPlayers.001", + "m_bCPCapRateScalesWithPlayers.002", + "m_bCPCapRateScalesWithPlayers.003", + "m_bCPCapRateScalesWithPlayers.004", + "m_bCPCapRateScalesWithPlayers.005", + "m_bCPCapRateScalesWithPlayers.006", + "m_bCPCapRateScalesWithPlayers.007" ], - "m_bMannVsMachineWaveClassActive2": [ - "m_bMannVsMachineWaveClassActive2.000", - "m_bMannVsMachineWaveClassActive2.001", - "m_bMannVsMachineWaveClassActive2.002", - "m_bMannVsMachineWaveClassActive2.003", - "m_bMannVsMachineWaveClassActive2.004", - "m_bMannVsMachineWaveClassActive2.005", - "m_bMannVsMachineWaveClassActive2.006", - "m_bMannVsMachineWaveClassActive2.007", - "m_bMannVsMachineWaveClassActive2.008", - "m_bMannVsMachineWaveClassActive2.009", - "m_bMannVsMachineWaveClassActive2.010", - "m_bMannVsMachineWaveClassActive2.011" + "m_bCPIsVisible": [ + "m_bCPIsVisible.000", + "m_bCPIsVisible.001", + "m_bCPIsVisible.002", + "m_bCPIsVisible.003", + "m_bCPIsVisible.004", + "m_bCPIsVisible.005", + "m_bCPIsVisible.006", + "m_bCPIsVisible.007" ], - "DT_TFPlayerClassShared": [ - "DT_TFPlayerClassShared.m_iClass", - "DT_TFPlayerClassShared.m_iszClassIcon", - "DT_TFPlayerClassShared.m_iszCustomModel", - "DT_TFPlayerClassShared.m_vecCustomModelOffset", - "DT_TFPlayerClassShared.m_angCustomModelRotation", - "DT_TFPlayerClassShared.m_bCustomModelRotates", - "DT_TFPlayerClassShared.m_bCustomModelRotationSet", - "DT_TFPlayerClassShared.m_bCustomModelVisibleToSelf", - "DT_TFPlayerClassShared.m_bUseClassAnimations", - "DT_TFPlayerClassShared.m_iClassModelParity" + "m_bCPLocked": [ + "m_bCPLocked.000", + "m_bCPLocked.001", + "m_bCPLocked.002", + "m_bCPLocked.003", + "m_bCPLocked.004", + "m_bCPLocked.005", + "m_bCPLocked.006", + "m_bCPLocked.007" ], - "DT_TFPlayerShared": [ - "m_bPlayerDominated.000", - "m_bPlayerDominated.001", - "m_bPlayerDominated.002", - "m_bPlayerDominated.003", - "m_bPlayerDominated.004", - "m_bPlayerDominated.005", - "m_bPlayerDominated.006", - "m_bPlayerDominated.007", - "m_bPlayerDominated.008", - "m_bPlayerDominated.009", - "m_bPlayerDominated.010", - "m_bPlayerDominated.011", - "m_bPlayerDominated.012", - "m_bPlayerDominated.013", - "m_bPlayerDominated.014", - "m_bPlayerDominated.015", - "m_bPlayerDominated.016", - "m_bPlayerDominated.017", - "m_bPlayerDominated.018", - "m_bPlayerDominated.019", - "m_bPlayerDominated.020", - "m_bPlayerDominated.021", - "m_bPlayerDominated.022", - "m_bPlayerDominated.023", - "m_bPlayerDominated.024", - "m_bPlayerDominated.025", - "m_bPlayerDominated.026", - "m_bPlayerDominated.027", - "m_bPlayerDominated.028", - "m_bPlayerDominated.029", - "m_bPlayerDominated.030", - "m_bPlayerDominated.031", - "m_bPlayerDominated.032", - "m_bPlayerDominated.033", - "m_bPlayerDominatingMe.000", - "m_bPlayerDominatingMe.001", - "m_bPlayerDominatingMe.002", - "m_bPlayerDominatingMe.003", - "m_bPlayerDominatingMe.004", - "m_bPlayerDominatingMe.005", - "m_bPlayerDominatingMe.006", - "m_bPlayerDominatingMe.007", - "m_bPlayerDominatingMe.008", - "m_bPlayerDominatingMe.009", - "m_bPlayerDominatingMe.010", - "m_bPlayerDominatingMe.011", - "m_bPlayerDominatingMe.012", - "m_bPlayerDominatingMe.013", - "m_bPlayerDominatingMe.014", - "m_bPlayerDominatingMe.015", - "m_bPlayerDominatingMe.016", - "m_bPlayerDominatingMe.017", - "m_bPlayerDominatingMe.018", - "m_bPlayerDominatingMe.019", - "m_bPlayerDominatingMe.020", - "m_bPlayerDominatingMe.021", - "m_bPlayerDominatingMe.022", - "m_bPlayerDominatingMe.023", - "m_bPlayerDominatingMe.024", - "m_bPlayerDominatingMe.025", - "m_bPlayerDominatingMe.026", - "m_bPlayerDominatingMe.027", - "m_bPlayerDominatingMe.028", - "m_bPlayerDominatingMe.029", - "m_bPlayerDominatingMe.030", - "m_bPlayerDominatingMe.031", - "m_bPlayerDominatingMe.032", - "m_bPlayerDominatingMe.033", - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints", - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints", - "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam", - "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass", - "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam", - "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire", - "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime", - "DT_TFPlayerSharedLocal.m_flRageMeter", - "DT_TFPlayerSharedLocal.m_bRageDraining", - "DT_TFPlayerSharedLocal.m_flNextRageEarnTime", - "DT_TFPlayerSharedLocal.m_bInUpgradeZone", - "DT_TFPlayerConditionListExclusive._condition_bits", - "m_nStreaks.000", - "m_nStreaks.001", - "m_nStreaks.002", - "m_nStreaks.003", - "DT_TFPlayerShared.m_nPlayerCond", - "DT_TFPlayerShared.m_bJumping", - "DT_TFPlayerShared.m_nNumHealers", - "DT_TFPlayerShared.m_iCritMult", - "DT_TFPlayerShared.m_iAirDash", - "DT_TFPlayerShared.m_nAirDucked", - "DT_TFPlayerShared.m_flDuckTimer", - "DT_TFPlayerShared.m_nPlayerState", - "DT_TFPlayerShared.m_iDesiredPlayerClass", - "DT_TFPlayerShared.m_flMovementStunTime", - "DT_TFPlayerShared.m_iMovementStunAmount", - "DT_TFPlayerShared.m_iMovementStunParity", - "DT_TFPlayerShared.m_hStunner", - "DT_TFPlayerShared.m_iStunFlags", - "DT_TFPlayerShared.m_nArenaNumChanges", - "DT_TFPlayerShared.m_bArenaFirstBloodBoost", - "DT_TFPlayerShared.m_iWeaponKnockbackID", - "DT_TFPlayerShared.m_bLoadoutUnavailable", - "DT_TFPlayerShared.m_iItemFindBonus", - "DT_TFPlayerShared.m_bShieldEquipped", - "DT_TFPlayerShared.m_iNextMeleeCrit", - "DT_TFPlayerShared.m_iDecapitations", - "DT_TFPlayerShared.m_iRevengeCrits", - "DT_TFPlayerShared.m_iDisguiseBody", - "DT_TFPlayerShared.m_hCarriedObject", - "DT_TFPlayerShared.m_bCarryingObject", - "DT_TFPlayerShared.m_flNextNoiseMakerTime", - "DT_TFPlayerShared.m_iKillCountSinceLastDeploy", - "DT_TFPlayerShared.m_flFirstPrimaryAttack", - "DT_TFPlayerShared.m_flEnergyDrinkMeter", - "DT_TFPlayerShared.m_flHypeMeter", - "DT_TFPlayerShared.m_flChargeMeter", - "DT_TFPlayerShared.m_flInvisChangeCompleteTime", - "DT_TFPlayerShared.m_nDisguiseTeam", - "DT_TFPlayerShared.m_nDisguiseClass", - "DT_TFPlayerShared.m_nMaskClass", - "DT_TFPlayerShared.m_iDisguiseTargetIndex", - "DT_TFPlayerShared.m_iDisguiseHealth", - "DT_TFPlayerShared.m_bFeignDeathReady", - "DT_TFPlayerShared.m_hDisguiseWeapon", - "DT_TFPlayerShared.m_nTeamTeleporterUsed", - "DT_TFPlayerShared.m_flCloakMeter", - "DT_TFPlayerShared.m_flSpyTranqBuffDuration", - "DT_TFPlayerShared.m_iTauntIndex", - "DT_TFPlayerShared.m_iTauntConcept", - "DT_TFPlayerShared.m_nPlayerCondEx", - "DT_TFPlayerShared.m_iStunIndex", - "DT_TFPlayerShared.m_nHalloweenBombHeadStage", - "DT_TFPlayerShared.m_nPlayerCondEx2", - "DT_TFPlayerShared.m_nPlayerCondEx3", - "DT_TFPlayerShared.m_unTauntSourceItemID_Low", - "DT_TFPlayerShared.m_unTauntSourceItemID_High" + "m_bConnected": [ + "m_bConnected.000", + "m_bConnected.001", + "m_bConnected.002", + "m_bConnected.003", + "m_bConnected.004", + "m_bConnected.005", + "m_bConnected.006", + "m_bConnected.007", + "m_bConnected.008", + "m_bConnected.009", + "m_bConnected.010", + "m_bConnected.011", + "m_bConnected.012", + "m_bConnected.013", + "m_bConnected.014", + "m_bConnected.015", + "m_bConnected.016", + "m_bConnected.017", + "m_bConnected.018", + "m_bConnected.019", + "m_bConnected.020", + "m_bConnected.021", + "m_bConnected.022", + "m_bConnected.023", + "m_bConnected.024", + "m_bConnected.025", + "m_bConnected.026", + "m_bConnected.027", + "m_bConnected.028", + "m_bConnected.029", + "m_bConnected.030", + "m_bConnected.031", + "m_bConnected.032", + "m_bConnected.033" ], - "DT_TFPlayerSharedLocal": [ - "m_bPlayerDominated.000", - "m_bPlayerDominated.001", - "m_bPlayerDominated.002", - "m_bPlayerDominated.003", - "m_bPlayerDominated.004", - "m_bPlayerDominated.005", - "m_bPlayerDominated.006", - "m_bPlayerDominated.007", - "m_bPlayerDominated.008", - "m_bPlayerDominated.009", - "m_bPlayerDominated.010", - "m_bPlayerDominated.011", - "m_bPlayerDominated.012", - "m_bPlayerDominated.013", - "m_bPlayerDominated.014", - "m_bPlayerDominated.015", - "m_bPlayerDominated.016", - "m_bPlayerDominated.017", - "m_bPlayerDominated.018", - "m_bPlayerDominated.019", - "m_bPlayerDominated.020", - "m_bPlayerDominated.021", - "m_bPlayerDominated.022", - "m_bPlayerDominated.023", - "m_bPlayerDominated.024", - "m_bPlayerDominated.025", - "m_bPlayerDominated.026", - "m_bPlayerDominated.027", - "m_bPlayerDominated.028", - "m_bPlayerDominated.029", - "m_bPlayerDominated.030", - "m_bPlayerDominated.031", - "m_bPlayerDominated.032", - "m_bPlayerDominated.033", - "m_bPlayerDominatingMe.000", - "m_bPlayerDominatingMe.001", - "m_bPlayerDominatingMe.002", - "m_bPlayerDominatingMe.003", - "m_bPlayerDominatingMe.004", - "m_bPlayerDominatingMe.005", - "m_bPlayerDominatingMe.006", - "m_bPlayerDominatingMe.007", - "m_bPlayerDominatingMe.008", - "m_bPlayerDominatingMe.009", - "m_bPlayerDominatingMe.010", - "m_bPlayerDominatingMe.011", - "m_bPlayerDominatingMe.012", - "m_bPlayerDominatingMe.013", - "m_bPlayerDominatingMe.014", - "m_bPlayerDominatingMe.015", - "m_bPlayerDominatingMe.016", - "m_bPlayerDominatingMe.017", - "m_bPlayerDominatingMe.018", - "m_bPlayerDominatingMe.019", - "m_bPlayerDominatingMe.020", - "m_bPlayerDominatingMe.021", - "m_bPlayerDominatingMe.022", - "m_bPlayerDominatingMe.023", - "m_bPlayerDominatingMe.024", - "m_bPlayerDominatingMe.025", - "m_bPlayerDominatingMe.026", - "m_bPlayerDominatingMe.027", - "m_bPlayerDominatingMe.028", - "m_bPlayerDominatingMe.029", - "m_bPlayerDominatingMe.030", - "m_bPlayerDominatingMe.031", - "m_bPlayerDominatingMe.032", - "m_bPlayerDominatingMe.033", - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints", - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints", - "DT_TFPlayerSharedLocal.m_nDesiredDisguiseTeam", - "DT_TFPlayerSharedLocal.m_nDesiredDisguiseClass", - "DT_TFPlayerSharedLocal.m_bLastDisguisedAsOwnTeam", - "DT_TFPlayerSharedLocal.m_flStealthNoAttackExpire", - "DT_TFPlayerSharedLocal.m_flStealthNextChangeTime", - "DT_TFPlayerSharedLocal.m_flRageMeter", - "DT_TFPlayerSharedLocal.m_bRageDraining", - "DT_TFPlayerSharedLocal.m_flNextRageEarnTime", - "DT_TFPlayerSharedLocal.m_bInUpgradeZone" + "m_bHillIsDownhill": [ + "m_bHillIsDownhill.000", + "m_bHillIsDownhill.001", + "m_bHillIsDownhill.002", + "m_bHillIsDownhill.003", + "m_bHillIsDownhill.004", + "m_bHillIsDownhill.005", + "m_bHillIsDownhill.006", + "m_bHillIsDownhill.007", + "m_bHillIsDownhill.008", + "m_bHillIsDownhill.009", + "m_bHillIsDownhill.010", + "m_bHillIsDownhill.011", + "m_bHillIsDownhill.012", + "m_bHillIsDownhill.013", + "m_bHillIsDownhill.014", + "m_bHillIsDownhill.015", + "m_bHillIsDownhill.016", + "m_bHillIsDownhill.017", + "m_bHillIsDownhill.018", + "m_bHillIsDownhill.019" + ], + "m_bInMiniRound": [ + "m_bInMiniRound.000", + "m_bInMiniRound.001", + "m_bInMiniRound.002", + "m_bInMiniRound.003", + "m_bInMiniRound.004", + "m_bInMiniRound.005", + "m_bInMiniRound.006", + "m_bInMiniRound.007" + ], + "m_bMannVsMachineWaveClassActive": [ + "m_bMannVsMachineWaveClassActive.000", + "m_bMannVsMachineWaveClassActive.001", + "m_bMannVsMachineWaveClassActive.002", + "m_bMannVsMachineWaveClassActive.003", + "m_bMannVsMachineWaveClassActive.004", + "m_bMannVsMachineWaveClassActive.005", + "m_bMannVsMachineWaveClassActive.006", + "m_bMannVsMachineWaveClassActive.007", + "m_bMannVsMachineWaveClassActive.008", + "m_bMannVsMachineWaveClassActive.009", + "m_bMannVsMachineWaveClassActive.010", + "m_bMannVsMachineWaveClassActive.011" + ], + "m_bMannVsMachineWaveClassActive2": [ + "m_bMannVsMachineWaveClassActive2.000", + "m_bMannVsMachineWaveClassActive2.001", + "m_bMannVsMachineWaveClassActive2.002", + "m_bMannVsMachineWaveClassActive2.003", + "m_bMannVsMachineWaveClassActive2.004", + "m_bMannVsMachineWaveClassActive2.005", + "m_bMannVsMachineWaveClassActive2.006", + "m_bMannVsMachineWaveClassActive2.007", + "m_bMannVsMachineWaveClassActive2.008", + "m_bMannVsMachineWaveClassActive2.009", + "m_bMannVsMachineWaveClassActive2.010", + "m_bMannVsMachineWaveClassActive2.011" ], "m_bPlayerDominated": [ "m_bPlayerDominated.000", @@ -41452,242 +39969,717 @@ "m_bPlayerDominatingMe.032", "m_bPlayerDominatingMe.033" ], - "DT_TFPlayerScoringDataExclusive": [ - "DT_TFPlayerScoringDataExclusive.m_iCaptures", - "DT_TFPlayerScoringDataExclusive.m_iDefenses", - "DT_TFPlayerScoringDataExclusive.m_iKills", - "DT_TFPlayerScoringDataExclusive.m_iDeaths", - "DT_TFPlayerScoringDataExclusive.m_iSuicides", - "DT_TFPlayerScoringDataExclusive.m_iDominations", - "DT_TFPlayerScoringDataExclusive.m_iRevenge", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsBuilt", - "DT_TFPlayerScoringDataExclusive.m_iBuildingsDestroyed", - "DT_TFPlayerScoringDataExclusive.m_iHeadshots", - "DT_TFPlayerScoringDataExclusive.m_iBackstabs", - "DT_TFPlayerScoringDataExclusive.m_iHealPoints", - "DT_TFPlayerScoringDataExclusive.m_iInvulns", - "DT_TFPlayerScoringDataExclusive.m_iTeleports", - "DT_TFPlayerScoringDataExclusive.m_iDamageDone", - "DT_TFPlayerScoringDataExclusive.m_iCrits", - "DT_TFPlayerScoringDataExclusive.m_iResupplyPoints", - "DT_TFPlayerScoringDataExclusive.m_iKillAssists", - "DT_TFPlayerScoringDataExclusive.m_iBonusPoints", - "DT_TFPlayerScoringDataExclusive.m_iPoints" + "m_bPlayerReady": [ + "m_bPlayerReady.000", + "m_bPlayerReady.001", + "m_bPlayerReady.002", + "m_bPlayerReady.003", + "m_bPlayerReady.004", + "m_bPlayerReady.005", + "m_bPlayerReady.006", + "m_bPlayerReady.007", + "m_bPlayerReady.008", + "m_bPlayerReady.009", + "m_bPlayerReady.010", + "m_bPlayerReady.011", + "m_bPlayerReady.012", + "m_bPlayerReady.013", + "m_bPlayerReady.014", + "m_bPlayerReady.015", + "m_bPlayerReady.016", + "m_bPlayerReady.017", + "m_bPlayerReady.018", + "m_bPlayerReady.019", + "m_bPlayerReady.020", + "m_bPlayerReady.021", + "m_bPlayerReady.022", + "m_bPlayerReady.023", + "m_bPlayerReady.024", + "m_bPlayerReady.025", + "m_bPlayerReady.026", + "m_bPlayerReady.027", + "m_bPlayerReady.028", + "m_bPlayerReady.029", + "m_bPlayerReady.030", + "m_bPlayerReady.031", + "m_bPlayerReady.032" ], - "DT_TFPlayerConditionListExclusive": [ - "DT_TFPlayerConditionListExclusive._condition_bits" + "m_bTeamCanCap": [ + "m_bTeamCanCap.000", + "m_bTeamCanCap.001", + "m_bTeamCanCap.002", + "m_bTeamCanCap.003", + "m_bTeamCanCap.004", + "m_bTeamCanCap.005", + "m_bTeamCanCap.006", + "m_bTeamCanCap.007", + "m_bTeamCanCap.008", + "m_bTeamCanCap.009", + "m_bTeamCanCap.010", + "m_bTeamCanCap.011", + "m_bTeamCanCap.012", + "m_bTeamCanCap.013", + "m_bTeamCanCap.014", + "m_bTeamCanCap.015", + "m_bTeamCanCap.016", + "m_bTeamCanCap.017", + "m_bTeamCanCap.018", + "m_bTeamCanCap.019", + "m_bTeamCanCap.020", + "m_bTeamCanCap.021", + "m_bTeamCanCap.022", + "m_bTeamCanCap.023", + "m_bTeamCanCap.024", + "m_bTeamCanCap.025", + "m_bTeamCanCap.026", + "m_bTeamCanCap.027", + "m_bTeamCanCap.028", + "m_bTeamCanCap.029", + "m_bTeamCanCap.030", + "m_bTeamCanCap.031", + "m_bTeamCanCap.032", + "m_bTeamCanCap.033", + "m_bTeamCanCap.034", + "m_bTeamCanCap.035", + "m_bTeamCanCap.036", + "m_bTeamCanCap.037", + "m_bTeamCanCap.038", + "m_bTeamCanCap.039", + "m_bTeamCanCap.040", + "m_bTeamCanCap.041", + "m_bTeamCanCap.042", + "m_bTeamCanCap.043", + "m_bTeamCanCap.044", + "m_bTeamCanCap.045", + "m_bTeamCanCap.046", + "m_bTeamCanCap.047", + "m_bTeamCanCap.048", + "m_bTeamCanCap.049", + "m_bTeamCanCap.050", + "m_bTeamCanCap.051", + "m_bTeamCanCap.052", + "m_bTeamCanCap.053", + "m_bTeamCanCap.054", + "m_bTeamCanCap.055", + "m_bTeamCanCap.056", + "m_bTeamCanCap.057", + "m_bTeamCanCap.058", + "m_bTeamCanCap.059", + "m_bTeamCanCap.060", + "m_bTeamCanCap.061", + "m_bTeamCanCap.062", + "m_bTeamCanCap.063" + ], + "m_bTeamReady": [ + "m_bTeamReady.000", + "m_bTeamReady.001", + "m_bTeamReady.002", + "m_bTeamReady.003", + "m_bTeamReady.004", + "m_bTeamReady.005", + "m_bTeamReady.006", + "m_bTeamReady.007", + "m_bTeamReady.008", + "m_bTeamReady.009", + "m_bTeamReady.010", + "m_bTeamReady.011", + "m_bTeamReady.012", + "m_bTeamReady.013", + "m_bTeamReady.014", + "m_bTeamReady.015", + "m_bTeamReady.016", + "m_bTeamReady.017", + "m_bTeamReady.018", + "m_bTeamReady.019", + "m_bTeamReady.020", + "m_bTeamReady.021", + "m_bTeamReady.022", + "m_bTeamReady.023", + "m_bTeamReady.024", + "m_bTeamReady.025", + "m_bTeamReady.026", + "m_bTeamReady.027", + "m_bTeamReady.028", + "m_bTeamReady.029", + "m_bTeamReady.030", + "m_bTeamReady.031" + ], + "m_bTrackAlarm": [ + "m_bTrackAlarm.000", + "m_bTrackAlarm.001", + "m_bTrackAlarm.002", + "m_bTrackAlarm.003" + ], + "m_chAreaBits": [ + "m_chAreaBits.000", + "m_chAreaBits.001", + "m_chAreaBits.002", + "m_chAreaBits.003", + "m_chAreaBits.004", + "m_chAreaBits.005", + "m_chAreaBits.006", + "m_chAreaBits.007", + "m_chAreaBits.008", + "m_chAreaBits.009", + "m_chAreaBits.010", + "m_chAreaBits.011", + "m_chAreaBits.012", + "m_chAreaBits.013", + "m_chAreaBits.014", + "m_chAreaBits.015", + "m_chAreaBits.016", + "m_chAreaBits.017", + "m_chAreaBits.018", + "m_chAreaBits.019", + "m_chAreaBits.020", + "m_chAreaBits.021", + "m_chAreaBits.022", + "m_chAreaBits.023", + "m_chAreaBits.024", + "m_chAreaBits.025", + "m_chAreaBits.026", + "m_chAreaBits.027", + "m_chAreaBits.028", + "m_chAreaBits.029", + "m_chAreaBits.030", + "m_chAreaBits.031" + ], + "m_chAreaPortalBits": [ + "m_chAreaPortalBits.000", + "m_chAreaPortalBits.001", + "m_chAreaPortalBits.002", + "m_chAreaPortalBits.003", + "m_chAreaPortalBits.004", + "m_chAreaPortalBits.005", + "m_chAreaPortalBits.006", + "m_chAreaPortalBits.007", + "m_chAreaPortalBits.008", + "m_chAreaPortalBits.009", + "m_chAreaPortalBits.010", + "m_chAreaPortalBits.011", + "m_chAreaPortalBits.012", + "m_chAreaPortalBits.013", + "m_chAreaPortalBits.014", + "m_chAreaPortalBits.015", + "m_chAreaPortalBits.016", + "m_chAreaPortalBits.017", + "m_chAreaPortalBits.018", + "m_chAreaPortalBits.019", + "m_chAreaPortalBits.020", + "m_chAreaPortalBits.021", + "m_chAreaPortalBits.022", + "m_chAreaPortalBits.023" + ], + "m_chCurrentSlideLists": [ + "m_chCurrentSlideLists.000", + "m_chCurrentSlideLists.001", + "m_chCurrentSlideLists.002", + "m_chCurrentSlideLists.003", + "m_chCurrentSlideLists.004", + "m_chCurrentSlideLists.005", + "m_chCurrentSlideLists.006", + "m_chCurrentSlideLists.007", + "m_chCurrentSlideLists.008", + "m_chCurrentSlideLists.009", + "m_chCurrentSlideLists.010", + "m_chCurrentSlideLists.011", + "m_chCurrentSlideLists.012", + "m_chCurrentSlideLists.013", + "m_chCurrentSlideLists.014", + "m_chCurrentSlideLists.015" + ], + "m_chPoseIndex": [ + "m_chPoseIndex.000", + "m_chPoseIndex.001", + "m_chPoseIndex.002", + "m_chPoseIndex.003" + ], + "m_eWinningMethod": [ + "m_eWinningMethod.000", + "m_eWinningMethod.001", + "m_eWinningMethod.002", + "m_eWinningMethod.003" + ], + "m_flCPTimerTimes": [ + "m_flCPTimerTimes.000", + "m_flCPTimerTimes.001", + "m_flCPTimerTimes.002", + "m_flCPTimerTimes.003", + "m_flCPTimerTimes.004", + "m_flCPTimerTimes.005", + "m_flCPTimerTimes.006", + "m_flCPTimerTimes.007" + ], + "m_flEncodedController": [ + "m_flEncodedController.000", + "m_flEncodedController.001", + "m_flEncodedController.002", + "m_flEncodedController.003" + ], + "m_flLazyCapPerc": [ + "m_flLazyCapPerc.000", + "m_flLazyCapPerc.001", + "m_flLazyCapPerc.002", + "m_flLazyCapPerc.003", + "m_flLazyCapPerc.004", + "m_flLazyCapPerc.005", + "m_flLazyCapPerc.006", + "m_flLazyCapPerc.007" + ], + "m_flNextRespawnTime": [ + "m_flNextRespawnTime.000", + "m_flNextRespawnTime.001", + "m_flNextRespawnTime.002", + "m_flNextRespawnTime.003", + "m_flNextRespawnTime.004", + "m_flNextRespawnTime.005", + "m_flNextRespawnTime.006", + "m_flNextRespawnTime.007", + "m_flNextRespawnTime.008", + "m_flNextRespawnTime.009", + "m_flNextRespawnTime.010", + "m_flNextRespawnTime.011", + "m_flNextRespawnTime.012", + "m_flNextRespawnTime.013", + "m_flNextRespawnTime.014", + "m_flNextRespawnTime.015", + "m_flNextRespawnTime.016", + "m_flNextRespawnTime.017", + "m_flNextRespawnTime.018", + "m_flNextRespawnTime.019", + "m_flNextRespawnTime.020", + "m_flNextRespawnTime.021", + "m_flNextRespawnTime.022", + "m_flNextRespawnTime.023", + "m_flNextRespawnTime.024", + "m_flNextRespawnTime.025", + "m_flNextRespawnTime.026", + "m_flNextRespawnTime.027", + "m_flNextRespawnTime.028", + "m_flNextRespawnTime.029", + "m_flNextRespawnTime.030", + "m_flNextRespawnTime.031", + "m_flNextRespawnTime.032", + "m_flNextRespawnTime.033" ], - "m_nStreaks": [ - "m_nStreaks.000", - "m_nStreaks.001", - "m_nStreaks.002", - "m_nStreaks.003" + "m_flNextRespawnWave": [ + "m_flNextRespawnWave.000", + "m_flNextRespawnWave.001", + "m_flNextRespawnWave.002", + "m_flNextRespawnWave.003", + "m_flNextRespawnWave.004", + "m_flNextRespawnWave.005", + "m_flNextRespawnWave.006", + "m_flNextRespawnWave.007", + "m_flNextRespawnWave.008", + "m_flNextRespawnWave.009", + "m_flNextRespawnWave.010", + "m_flNextRespawnWave.011", + "m_flNextRespawnWave.012", + "m_flNextRespawnWave.013", + "m_flNextRespawnWave.014", + "m_flNextRespawnWave.015", + "m_flNextRespawnWave.016", + "m_flNextRespawnWave.017", + "m_flNextRespawnWave.018", + "m_flNextRespawnWave.019", + "m_flNextRespawnWave.020", + "m_flNextRespawnWave.021", + "m_flNextRespawnWave.022", + "m_flNextRespawnWave.023", + "m_flNextRespawnWave.024", + "m_flNextRespawnWave.025", + "m_flNextRespawnWave.026", + "m_flNextRespawnWave.027", + "m_flNextRespawnWave.028", + "m_flNextRespawnWave.029", + "m_flNextRespawnWave.030", + "m_flNextRespawnWave.031" ], - "DT_TFLocalPlayerExclusive": [ - "DT_TFLocalPlayerExclusive.m_vecOrigin", - "DT_TFLocalPlayerExclusive.m_vecOrigin[2]", - "DT_TFLocalPlayerExclusive.m_angEyeAngles[0]", - "DT_TFLocalPlayerExclusive.\"player_object_array\"", - "DT_TFLocalPlayerExclusive.m_bIsCoaching", - "DT_TFLocalPlayerExclusive.m_hCoach", - "DT_TFLocalPlayerExclusive.m_hStudent", - "DT_TFLocalPlayerExclusive.m_nCurrency", - "DT_TFLocalPlayerExclusive.m_nExperienceLevel", - "DT_TFLocalPlayerExclusive.m_nExperienceLevelProgress" + "m_flNodeHillData": [ + "m_flNodeHillData.000", + "m_flNodeHillData.001", + "m_flNodeHillData.002", + "m_flNodeHillData.003", + "m_flNodeHillData.004", + "m_flNodeHillData.005", + "m_flNodeHillData.006", + "m_flNodeHillData.007", + "m_flNodeHillData.008", + "m_flNodeHillData.009", + "m_flNodeHillData.010", + "m_flNodeHillData.011", + "m_flNodeHillData.012", + "m_flNodeHillData.013", + "m_flNodeHillData.014", + "m_flNodeHillData.015", + "m_flNodeHillData.016", + "m_flNodeHillData.017", + "m_flNodeHillData.018", + "m_flNodeHillData.019", + "m_flNodeHillData.020", + "m_flNodeHillData.021", + "m_flNodeHillData.022", + "m_flNodeHillData.023", + "m_flNodeHillData.024", + "m_flNodeHillData.025", + "m_flNodeHillData.026", + "m_flNodeHillData.027", + "m_flNodeHillData.028", + "m_flNodeHillData.029", + "m_flNodeHillData.030", + "m_flNodeHillData.031", + "m_flNodeHillData.032", + "m_flNodeHillData.033", + "m_flNodeHillData.034", + "m_flNodeHillData.035", + "m_flNodeHillData.036", + "m_flNodeHillData.037", + "m_flNodeHillData.038", + "m_flNodeHillData.039" ], - "DT_TFNonLocalPlayerExclusive": [ - "DT_TFNonLocalPlayerExclusive.m_vecOrigin", - "DT_TFNonLocalPlayerExclusive.m_vecOrigin[2]", - "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[0]", - "DT_TFNonLocalPlayerExclusive.m_angEyeAngles[1]" + "m_flPathDistance": [ + "m_flPathDistance.000", + "m_flPathDistance.001", + "m_flPathDistance.002", + "m_flPathDistance.003", + "m_flPathDistance.004", + "m_flPathDistance.005", + "m_flPathDistance.006", + "m_flPathDistance.007" ], - "DT_AttributeManager": [ - "DT_AttributeManager.m_hOuter", - "DT_AttributeManager.m_ProviderType", - "DT_AttributeManager.m_iReapplyProvisionParity" + "m_flPoseParameter": [ + "m_flPoseParameter.000", + "m_flPoseParameter.001", + "m_flPoseParameter.002", + "m_flPoseParameter.003", + "m_flPoseParameter.004", + "m_flPoseParameter.005", + "m_flPoseParameter.006", + "m_flPoseParameter.007", + "m_flPoseParameter.008", + "m_flPoseParameter.009", + "m_flPoseParameter.010", + "m_flPoseParameter.011", + "m_flPoseParameter.012", + "m_flPoseParameter.013", + "m_flPoseParameter.014", + "m_flPoseParameter.015", + "m_flPoseParameter.016", + "m_flPoseParameter.017", + "m_flPoseParameter.018", + "m_flPoseParameter.019", + "m_flPoseParameter.020", + "m_flPoseParameter.021", + "m_flPoseParameter.022", + "m_flPoseParameter.023" ], - "DT_TFSendHealersDataTable": [ - "DT_TFSendHealersDataTable.m_nActiveWpnClip" + "m_flTeamCapTime": [ + "m_flTeamCapTime.000", + "m_flTeamCapTime.001", + "m_flTeamCapTime.002", + "m_flTeamCapTime.003", + "m_flTeamCapTime.004", + "m_flTeamCapTime.005", + "m_flTeamCapTime.006", + "m_flTeamCapTime.007", + "m_flTeamCapTime.008", + "m_flTeamCapTime.009", + "m_flTeamCapTime.010", + "m_flTeamCapTime.011", + "m_flTeamCapTime.012", + "m_flTeamCapTime.013", + "m_flTeamCapTime.014", + "m_flTeamCapTime.015", + "m_flTeamCapTime.016", + "m_flTeamCapTime.017", + "m_flTeamCapTime.018", + "m_flTeamCapTime.019", + "m_flTeamCapTime.020", + "m_flTeamCapTime.021", + "m_flTeamCapTime.022", + "m_flTeamCapTime.023", + "m_flTeamCapTime.024", + "m_flTeamCapTime.025", + "m_flTeamCapTime.026", + "m_flTeamCapTime.027", + "m_flTeamCapTime.028", + "m_flTeamCapTime.029", + "m_flTeamCapTime.030", + "m_flTeamCapTime.031", + "m_flTeamCapTime.032", + "m_flTeamCapTime.033", + "m_flTeamCapTime.034", + "m_flTeamCapTime.035", + "m_flTeamCapTime.036", + "m_flTeamCapTime.037", + "m_flTeamCapTime.038", + "m_flTeamCapTime.039", + "m_flTeamCapTime.040", + "m_flTeamCapTime.041", + "m_flTeamCapTime.042", + "m_flTeamCapTime.043", + "m_flTeamCapTime.044", + "m_flTeamCapTime.045", + "m_flTeamCapTime.046", + "m_flTeamCapTime.047", + "m_flTeamCapTime.048", + "m_flTeamCapTime.049", + "m_flTeamCapTime.050", + "m_flTeamCapTime.051", + "m_flTeamCapTime.052", + "m_flTeamCapTime.053", + "m_flTeamCapTime.054", + "m_flTeamCapTime.055", + "m_flTeamCapTime.056", + "m_flTeamCapTime.057", + "m_flTeamCapTime.058", + "m_flTeamCapTime.059", + "m_flTeamCapTime.060", + "m_flTeamCapTime.061", + "m_flTeamCapTime.062", + "m_flTeamCapTime.063" ], - "m_iTotalScore": [ - "m_iTotalScore.000", - "m_iTotalScore.001", - "m_iTotalScore.002", - "m_iTotalScore.003", - "m_iTotalScore.004", - "m_iTotalScore.005", - "m_iTotalScore.006", - "m_iTotalScore.007", - "m_iTotalScore.008", - "m_iTotalScore.009", - "m_iTotalScore.010", - "m_iTotalScore.011", - "m_iTotalScore.012", - "m_iTotalScore.013", - "m_iTotalScore.014", - "m_iTotalScore.015", - "m_iTotalScore.016", - "m_iTotalScore.017", - "m_iTotalScore.018", - "m_iTotalScore.019", - "m_iTotalScore.020", - "m_iTotalScore.021", - "m_iTotalScore.022", - "m_iTotalScore.023", - "m_iTotalScore.024", - "m_iTotalScore.025", - "m_iTotalScore.026", - "m_iTotalScore.027", - "m_iTotalScore.028", - "m_iTotalScore.029", - "m_iTotalScore.030", - "m_iTotalScore.031", - "m_iTotalScore.032", - "m_iTotalScore.033" + "m_flUnlockTimes": [ + "m_flUnlockTimes.000", + "m_flUnlockTimes.001", + "m_flUnlockTimes.002", + "m_flUnlockTimes.003", + "m_flUnlockTimes.004", + "m_flUnlockTimes.005", + "m_flUnlockTimes.006", + "m_flUnlockTimes.007" ], - "m_iMaxHealth": [ - "m_iMaxHealth.000", - "m_iMaxHealth.001", - "m_iMaxHealth.002", - "m_iMaxHealth.003", - "m_iMaxHealth.004", - "m_iMaxHealth.005", - "m_iMaxHealth.006", - "m_iMaxHealth.007", - "m_iMaxHealth.008", - "m_iMaxHealth.009", - "m_iMaxHealth.010", - "m_iMaxHealth.011", - "m_iMaxHealth.012", - "m_iMaxHealth.013", - "m_iMaxHealth.014", - "m_iMaxHealth.015", - "m_iMaxHealth.016", - "m_iMaxHealth.017", - "m_iMaxHealth.018", - "m_iMaxHealth.019", - "m_iMaxHealth.020", - "m_iMaxHealth.021", - "m_iMaxHealth.022", - "m_iMaxHealth.023", - "m_iMaxHealth.024", - "m_iMaxHealth.025", - "m_iMaxHealth.026", - "m_iMaxHealth.027", - "m_iMaxHealth.028", - "m_iMaxHealth.029", - "m_iMaxHealth.030", - "m_iMaxHealth.031", - "m_iMaxHealth.032", - "m_iMaxHealth.033" + "m_flexWeight": [ + "m_flexWeight.000", + "m_flexWeight.001", + "m_flexWeight.002", + "m_flexWeight.003", + "m_flexWeight.004", + "m_flexWeight.005", + "m_flexWeight.006", + "m_flexWeight.007", + "m_flexWeight.008", + "m_flexWeight.009", + "m_flexWeight.010", + "m_flexWeight.011", + "m_flexWeight.012", + "m_flexWeight.013", + "m_flexWeight.014", + "m_flexWeight.015", + "m_flexWeight.016", + "m_flexWeight.017", + "m_flexWeight.018", + "m_flexWeight.019", + "m_flexWeight.020", + "m_flexWeight.021", + "m_flexWeight.022", + "m_flexWeight.023", + "m_flexWeight.024", + "m_flexWeight.025", + "m_flexWeight.026", + "m_flexWeight.027", + "m_flexWeight.028", + "m_flexWeight.029", + "m_flexWeight.030", + "m_flexWeight.031", + "m_flexWeight.032", + "m_flexWeight.033", + "m_flexWeight.034", + "m_flexWeight.035", + "m_flexWeight.036", + "m_flexWeight.037", + "m_flexWeight.038", + "m_flexWeight.039", + "m_flexWeight.040", + "m_flexWeight.041", + "m_flexWeight.042", + "m_flexWeight.043", + "m_flexWeight.044", + "m_flexWeight.045", + "m_flexWeight.046", + "m_flexWeight.047", + "m_flexWeight.048", + "m_flexWeight.049", + "m_flexWeight.050", + "m_flexWeight.051", + "m_flexWeight.052", + "m_flexWeight.053", + "m_flexWeight.054", + "m_flexWeight.055", + "m_flexWeight.056", + "m_flexWeight.057", + "m_flexWeight.058", + "m_flexWeight.059", + "m_flexWeight.060", + "m_flexWeight.061", + "m_flexWeight.062", + "m_flexWeight.063", + "m_flexWeight.064", + "m_flexWeight.065", + "m_flexWeight.066", + "m_flexWeight.067", + "m_flexWeight.068", + "m_flexWeight.069", + "m_flexWeight.070", + "m_flexWeight.071", + "m_flexWeight.072", + "m_flexWeight.073", + "m_flexWeight.074", + "m_flexWeight.075", + "m_flexWeight.076", + "m_flexWeight.077", + "m_flexWeight.078", + "m_flexWeight.079", + "m_flexWeight.080", + "m_flexWeight.081", + "m_flexWeight.082", + "m_flexWeight.083", + "m_flexWeight.084", + "m_flexWeight.085", + "m_flexWeight.086", + "m_flexWeight.087", + "m_flexWeight.088", + "m_flexWeight.089", + "m_flexWeight.090", + "m_flexWeight.091", + "m_flexWeight.092", + "m_flexWeight.093", + "m_flexWeight.094", + "m_flexWeight.095" ], - "m_iMaxBuffedHealth": [ - "m_iMaxBuffedHealth.000", - "m_iMaxBuffedHealth.001", - "m_iMaxBuffedHealth.002", - "m_iMaxBuffedHealth.003", - "m_iMaxBuffedHealth.004", - "m_iMaxBuffedHealth.005", - "m_iMaxBuffedHealth.006", - "m_iMaxBuffedHealth.007", - "m_iMaxBuffedHealth.008", - "m_iMaxBuffedHealth.009", - "m_iMaxBuffedHealth.010", - "m_iMaxBuffedHealth.011", - "m_iMaxBuffedHealth.012", - "m_iMaxBuffedHealth.013", - "m_iMaxBuffedHealth.014", - "m_iMaxBuffedHealth.015", - "m_iMaxBuffedHealth.016", - "m_iMaxBuffedHealth.017", - "m_iMaxBuffedHealth.018", - "m_iMaxBuffedHealth.019", - "m_iMaxBuffedHealth.020", - "m_iMaxBuffedHealth.021", - "m_iMaxBuffedHealth.022", - "m_iMaxBuffedHealth.023", - "m_iMaxBuffedHealth.024", - "m_iMaxBuffedHealth.025", - "m_iMaxBuffedHealth.026", - "m_iMaxBuffedHealth.027", - "m_iMaxBuffedHealth.028", - "m_iMaxBuffedHealth.029", - "m_iMaxBuffedHealth.030", - "m_iMaxBuffedHealth.031", - "m_iMaxBuffedHealth.032", - "m_iMaxBuffedHealth.033" + "m_hAttachEntity": [ + "m_hAttachEntity.000", + "m_hAttachEntity.001", + "m_hAttachEntity.002", + "m_hAttachEntity.003", + "m_hAttachEntity.004", + "m_hAttachEntity.005", + "m_hAttachEntity.006", + "m_hAttachEntity.007", + "m_hAttachEntity.008", + "m_hAttachEntity.009" ], - "m_iPlayerClass": [ - "m_iPlayerClass.000", - "m_iPlayerClass.001", - "m_iPlayerClass.002", - "m_iPlayerClass.003", - "m_iPlayerClass.004", - "m_iPlayerClass.005", - "m_iPlayerClass.006", - "m_iPlayerClass.007", - "m_iPlayerClass.008", - "m_iPlayerClass.009", - "m_iPlayerClass.010", - "m_iPlayerClass.011", - "m_iPlayerClass.012", - "m_iPlayerClass.013", - "m_iPlayerClass.014", - "m_iPlayerClass.015", - "m_iPlayerClass.016", - "m_iPlayerClass.017", - "m_iPlayerClass.018", - "m_iPlayerClass.019", - "m_iPlayerClass.020", - "m_iPlayerClass.021", - "m_iPlayerClass.022", - "m_iPlayerClass.023", - "m_iPlayerClass.024", - "m_iPlayerClass.025", - "m_iPlayerClass.026", - "m_iPlayerClass.027", - "m_iPlayerClass.028", - "m_iPlayerClass.029", - "m_iPlayerClass.030", - "m_iPlayerClass.031", - "m_iPlayerClass.032", - "m_iPlayerClass.033" + "m_hControlPointEnts": [ + "m_hControlPointEnts.000", + "m_hControlPointEnts.001", + "m_hControlPointEnts.002", + "m_hControlPointEnts.003", + "m_hControlPointEnts.004", + "m_hControlPointEnts.005", + "m_hControlPointEnts.006", + "m_hControlPointEnts.007", + "m_hControlPointEnts.008", + "m_hControlPointEnts.009", + "m_hControlPointEnts.010", + "m_hControlPointEnts.011", + "m_hControlPointEnts.012", + "m_hControlPointEnts.013", + "m_hControlPointEnts.014", + "m_hControlPointEnts.015", + "m_hControlPointEnts.016", + "m_hControlPointEnts.017", + "m_hControlPointEnts.018", + "m_hControlPointEnts.019", + "m_hControlPointEnts.020", + "m_hControlPointEnts.021", + "m_hControlPointEnts.022", + "m_hControlPointEnts.023", + "m_hControlPointEnts.024", + "m_hControlPointEnts.025", + "m_hControlPointEnts.026", + "m_hControlPointEnts.027", + "m_hControlPointEnts.028", + "m_hControlPointEnts.029", + "m_hControlPointEnts.030", + "m_hControlPointEnts.031", + "m_hControlPointEnts.032", + "m_hControlPointEnts.033", + "m_hControlPointEnts.034", + "m_hControlPointEnts.035", + "m_hControlPointEnts.036", + "m_hControlPointEnts.037", + "m_hControlPointEnts.038", + "m_hControlPointEnts.039", + "m_hControlPointEnts.040", + "m_hControlPointEnts.041", + "m_hControlPointEnts.042", + "m_hControlPointEnts.043", + "m_hControlPointEnts.044", + "m_hControlPointEnts.045", + "m_hControlPointEnts.046", + "m_hControlPointEnts.047", + "m_hControlPointEnts.048", + "m_hControlPointEnts.049", + "m_hControlPointEnts.050", + "m_hControlPointEnts.051", + "m_hControlPointEnts.052", + "m_hControlPointEnts.053", + "m_hControlPointEnts.054", + "m_hControlPointEnts.055", + "m_hControlPointEnts.056", + "m_hControlPointEnts.057", + "m_hControlPointEnts.058", + "m_hControlPointEnts.059", + "m_hControlPointEnts.060", + "m_hControlPointEnts.061", + "m_hControlPointEnts.062" ], - "m_bArenaSpectator": [ - "m_bArenaSpectator.000", - "m_bArenaSpectator.001", - "m_bArenaSpectator.002", - "m_bArenaSpectator.003", - "m_bArenaSpectator.004", - "m_bArenaSpectator.005", - "m_bArenaSpectator.006", - "m_bArenaSpectator.007", - "m_bArenaSpectator.008", - "m_bArenaSpectator.009", - "m_bArenaSpectator.010", - "m_bArenaSpectator.011", - "m_bArenaSpectator.012", - "m_bArenaSpectator.013", - "m_bArenaSpectator.014", - "m_bArenaSpectator.015", - "m_bArenaSpectator.016", - "m_bArenaSpectator.017", - "m_bArenaSpectator.018", - "m_bArenaSpectator.019", - "m_bArenaSpectator.020", - "m_bArenaSpectator.021", - "m_bArenaSpectator.022", - "m_bArenaSpectator.023", - "m_bArenaSpectator.024", - "m_bArenaSpectator.025", - "m_bArenaSpectator.026", - "m_bArenaSpectator.027", - "m_bArenaSpectator.028", - "m_bArenaSpectator.029", - "m_bArenaSpectator.030", - "m_bArenaSpectator.031", - "m_bArenaSpectator.032", - "m_bArenaSpectator.033" + "m_hMyWeapons": [ + "m_hMyWeapons.000", + "m_hMyWeapons.001", + "m_hMyWeapons.002", + "m_hMyWeapons.003", + "m_hMyWeapons.004", + "m_hMyWeapons.005", + "m_hMyWeapons.006", + "m_hMyWeapons.007", + "m_hMyWeapons.008", + "m_hMyWeapons.009", + "m_hMyWeapons.010", + "m_hMyWeapons.011", + "m_hMyWeapons.012", + "m_hMyWeapons.013", + "m_hMyWeapons.014", + "m_hMyWeapons.015", + "m_hMyWeapons.016", + "m_hMyWeapons.017", + "m_hMyWeapons.018", + "m_hMyWeapons.019", + "m_hMyWeapons.020", + "m_hMyWeapons.021", + "m_hMyWeapons.022", + "m_hMyWeapons.023", + "m_hMyWeapons.024", + "m_hMyWeapons.025", + "m_hMyWeapons.026", + "m_hMyWeapons.027", + "m_hMyWeapons.028", + "m_hMyWeapons.029", + "m_hMyWeapons.030", + "m_hMyWeapons.031", + "m_hMyWeapons.032", + "m_hMyWeapons.033", + "m_hMyWeapons.034", + "m_hMyWeapons.035", + "m_hMyWeapons.036", + "m_hMyWeapons.037", + "m_hMyWeapons.038", + "m_hMyWeapons.039", + "m_hMyWeapons.040", + "m_hMyWeapons.041", + "m_hMyWeapons.042", + "m_hMyWeapons.043", + "m_hMyWeapons.044", + "m_hMyWeapons.045", + "m_hMyWeapons.046", + "m_hMyWeapons.047" + ], + "m_hProps": [ + "m_hProps.000", + "m_hProps.001", + "m_hProps.002", + "m_hProps.003" ], "m_iActiveDominations": [ "m_iActiveDominations.000", @@ -41725,41 +40717,129 @@ "m_iActiveDominations.032", "m_iActiveDominations.033" ], - "m_flNextRespawnTime": [ - "m_flNextRespawnTime.000", - "m_flNextRespawnTime.001", - "m_flNextRespawnTime.002", - "m_flNextRespawnTime.003", - "m_flNextRespawnTime.004", - "m_flNextRespawnTime.005", - "m_flNextRespawnTime.006", - "m_flNextRespawnTime.007", - "m_flNextRespawnTime.008", - "m_flNextRespawnTime.009", - "m_flNextRespawnTime.010", - "m_flNextRespawnTime.011", - "m_flNextRespawnTime.012", - "m_flNextRespawnTime.013", - "m_flNextRespawnTime.014", - "m_flNextRespawnTime.015", - "m_flNextRespawnTime.016", - "m_flNextRespawnTime.017", - "m_flNextRespawnTime.018", - "m_flNextRespawnTime.019", - "m_flNextRespawnTime.020", - "m_flNextRespawnTime.021", - "m_flNextRespawnTime.022", - "m_flNextRespawnTime.023", - "m_flNextRespawnTime.024", - "m_flNextRespawnTime.025", - "m_flNextRespawnTime.026", - "m_flNextRespawnTime.027", - "m_flNextRespawnTime.028", - "m_flNextRespawnTime.029", - "m_flNextRespawnTime.030", - "m_flNextRespawnTime.031", - "m_flNextRespawnTime.032", - "m_flNextRespawnTime.033" + "m_iAmmo": [ + "m_iAmmo.000", + "m_iAmmo.001", + "m_iAmmo.002", + "m_iAmmo.003", + "m_iAmmo.004", + "m_iAmmo.005", + "m_iAmmo.006", + "m_iAmmo.007", + "m_iAmmo.008", + "m_iAmmo.009", + "m_iAmmo.010", + "m_iAmmo.011", + "m_iAmmo.012", + "m_iAmmo.013", + "m_iAmmo.014", + "m_iAmmo.015", + "m_iAmmo.016", + "m_iAmmo.017", + "m_iAmmo.018", + "m_iAmmo.019", + "m_iAmmo.020", + "m_iAmmo.021", + "m_iAmmo.022", + "m_iAmmo.023", + "m_iAmmo.024", + "m_iAmmo.025", + "m_iAmmo.026", + "m_iAmmo.027", + "m_iAmmo.028", + "m_iAmmo.029", + "m_iAmmo.030", + "m_iAmmo.031" + ], + "m_iBaseControlPoints": [ + "m_iBaseControlPoints.000", + "m_iBaseControlPoints.001", + "m_iBaseControlPoints.002", + "m_iBaseControlPoints.003", + "m_iBaseControlPoints.004", + "m_iBaseControlPoints.005", + "m_iBaseControlPoints.006", + "m_iBaseControlPoints.007", + "m_iBaseControlPoints.008", + "m_iBaseControlPoints.009", + "m_iBaseControlPoints.010", + "m_iBaseControlPoints.011", + "m_iBaseControlPoints.012", + "m_iBaseControlPoints.013", + "m_iBaseControlPoints.014", + "m_iBaseControlPoints.015", + "m_iBaseControlPoints.016", + "m_iBaseControlPoints.017", + "m_iBaseControlPoints.018", + "m_iBaseControlPoints.019", + "m_iBaseControlPoints.020", + "m_iBaseControlPoints.021", + "m_iBaseControlPoints.022", + "m_iBaseControlPoints.023", + "m_iBaseControlPoints.024", + "m_iBaseControlPoints.025", + "m_iBaseControlPoints.026", + "m_iBaseControlPoints.027", + "m_iBaseControlPoints.028", + "m_iBaseControlPoints.029", + "m_iBaseControlPoints.030", + "m_iBaseControlPoints.031" + ], + "m_iBonusPoints": [ + "m_iBonusPoints.000", + "m_iBonusPoints.001", + "m_iBonusPoints.002", + "m_iBonusPoints.003", + "m_iBonusPoints.004", + "m_iBonusPoints.005", + "m_iBonusPoints.006", + "m_iBonusPoints.007", + "m_iBonusPoints.008", + "m_iBonusPoints.009", + "m_iBonusPoints.010", + "m_iBonusPoints.011", + "m_iBonusPoints.012", + "m_iBonusPoints.013", + "m_iBonusPoints.014", + "m_iBonusPoints.015", + "m_iBonusPoints.016", + "m_iBonusPoints.017", + "m_iBonusPoints.018", + "m_iBonusPoints.019", + "m_iBonusPoints.020", + "m_iBonusPoints.021", + "m_iBonusPoints.022", + "m_iBonusPoints.023", + "m_iBonusPoints.024", + "m_iBonusPoints.025", + "m_iBonusPoints.026", + "m_iBonusPoints.027", + "m_iBonusPoints.028", + "m_iBonusPoints.029", + "m_iBonusPoints.030", + "m_iBonusPoints.031", + "m_iBonusPoints.032", + "m_iBonusPoints.033" + ], + "m_iCPGroup": [ + "m_iCPGroup.000", + "m_iCPGroup.001", + "m_iCPGroup.002", + "m_iCPGroup.003", + "m_iCPGroup.004", + "m_iCPGroup.005", + "m_iCPGroup.006", + "m_iCPGroup.007" + ], + "m_iCappingTeam": [ + "m_iCappingTeam.000", + "m_iCappingTeam.001", + "m_iCappingTeam.002", + "m_iCappingTeam.003", + "m_iCappingTeam.004", + "m_iCappingTeam.005", + "m_iCappingTeam.006", + "m_iCappingTeam.007" ], "m_iChargeLevel": [ "m_iChargeLevel.000", @@ -41797,6 +40877,107 @@ "m_iChargeLevel.032", "m_iChargeLevel.033" ], + "m_iControlPointParents": [ + "m_iControlPointParents.000", + "m_iControlPointParents.001", + "m_iControlPointParents.002", + "m_iControlPointParents.003", + "m_iControlPointParents.004", + "m_iControlPointParents.005", + "m_iControlPointParents.006", + "m_iControlPointParents.007", + "m_iControlPointParents.008", + "m_iControlPointParents.009", + "m_iControlPointParents.010", + "m_iControlPointParents.011", + "m_iControlPointParents.012", + "m_iControlPointParents.013", + "m_iControlPointParents.014", + "m_iControlPointParents.015", + "m_iControlPointParents.016", + "m_iControlPointParents.017", + "m_iControlPointParents.018", + "m_iControlPointParents.019", + "m_iControlPointParents.020", + "m_iControlPointParents.021", + "m_iControlPointParents.022", + "m_iControlPointParents.023", + "m_iControlPointParents.024", + "m_iControlPointParents.025", + "m_iControlPointParents.026", + "m_iControlPointParents.027", + "m_iControlPointParents.028", + "m_iControlPointParents.029", + "m_iControlPointParents.030", + "m_iControlPointParents.031", + "m_iControlPointParents.032", + "m_iControlPointParents.033", + "m_iControlPointParents.034", + "m_iControlPointParents.035", + "m_iControlPointParents.036", + "m_iControlPointParents.037", + "m_iControlPointParents.038", + "m_iControlPointParents.039", + "m_iControlPointParents.040", + "m_iControlPointParents.041", + "m_iControlPointParents.042", + "m_iControlPointParents.043", + "m_iControlPointParents.044", + "m_iControlPointParents.045", + "m_iControlPointParents.046", + "m_iControlPointParents.047", + "m_iControlPointParents.048", + "m_iControlPointParents.049", + "m_iControlPointParents.050", + "m_iControlPointParents.051", + "m_iControlPointParents.052", + "m_iControlPointParents.053", + "m_iControlPointParents.054", + "m_iControlPointParents.055", + "m_iControlPointParents.056", + "m_iControlPointParents.057", + "m_iControlPointParents.058", + "m_iControlPointParents.059", + "m_iControlPointParents.060", + "m_iControlPointParents.061", + "m_iControlPointParents.062" + ], + "m_iCurrencyCollected": [ + "m_iCurrencyCollected.000", + "m_iCurrencyCollected.001", + "m_iCurrencyCollected.002", + "m_iCurrencyCollected.003", + "m_iCurrencyCollected.004", + "m_iCurrencyCollected.005", + "m_iCurrencyCollected.006", + "m_iCurrencyCollected.007", + "m_iCurrencyCollected.008", + "m_iCurrencyCollected.009", + "m_iCurrencyCollected.010", + "m_iCurrencyCollected.011", + "m_iCurrencyCollected.012", + "m_iCurrencyCollected.013", + "m_iCurrencyCollected.014", + "m_iCurrencyCollected.015", + "m_iCurrencyCollected.016", + "m_iCurrencyCollected.017", + "m_iCurrencyCollected.018", + "m_iCurrencyCollected.019", + "m_iCurrencyCollected.020", + "m_iCurrencyCollected.021", + "m_iCurrencyCollected.022", + "m_iCurrencyCollected.023", + "m_iCurrencyCollected.024", + "m_iCurrencyCollected.025", + "m_iCurrencyCollected.026", + "m_iCurrencyCollected.027", + "m_iCurrencyCollected.028", + "m_iCurrencyCollected.029", + "m_iCurrencyCollected.030", + "m_iCurrencyCollected.031", + "m_iCurrencyCollected.032", + "m_iCurrencyCollected.033" + ], "m_iDamage": [ "m_iDamage.000", "m_iDamage.001", @@ -41869,6 +41050,42 @@ "m_iDamageAssist.032", "m_iDamageAssist.033" ], + "m_iDamageBlocked": [ + "m_iDamageBlocked.000", + "m_iDamageBlocked.001", + "m_iDamageBlocked.002", + "m_iDamageBlocked.003", + "m_iDamageBlocked.004", + "m_iDamageBlocked.005", + "m_iDamageBlocked.006", + "m_iDamageBlocked.007", + "m_iDamageBlocked.008", + "m_iDamageBlocked.009", + "m_iDamageBlocked.010", + "m_iDamageBlocked.011", + "m_iDamageBlocked.012", + "m_iDamageBlocked.013", + "m_iDamageBlocked.014", + "m_iDamageBlocked.015", + "m_iDamageBlocked.016", + "m_iDamageBlocked.017", + "m_iDamageBlocked.018", + "m_iDamageBlocked.019", + "m_iDamageBlocked.020", + "m_iDamageBlocked.021", + "m_iDamageBlocked.022", + "m_iDamageBlocked.023", + "m_iDamageBlocked.024", + "m_iDamageBlocked.025", + "m_iDamageBlocked.026", + "m_iDamageBlocked.027", + "m_iDamageBlocked.028", + "m_iDamageBlocked.029", + "m_iDamageBlocked.030", + "m_iDamageBlocked.031", + "m_iDamageBlocked.032", + "m_iDamageBlocked.033" + ], "m_iDamageBoss": [ "m_iDamageBoss.000", "m_iDamageBoss.001", @@ -41905,6 +41122,42 @@ "m_iDamageBoss.032", "m_iDamageBoss.033" ], + "m_iDeaths": [ + "m_iDeaths.000", + "m_iDeaths.001", + "m_iDeaths.002", + "m_iDeaths.003", + "m_iDeaths.004", + "m_iDeaths.005", + "m_iDeaths.006", + "m_iDeaths.007", + "m_iDeaths.008", + "m_iDeaths.009", + "m_iDeaths.010", + "m_iDeaths.011", + "m_iDeaths.012", + "m_iDeaths.013", + "m_iDeaths.014", + "m_iDeaths.015", + "m_iDeaths.016", + "m_iDeaths.017", + "m_iDeaths.018", + "m_iDeaths.019", + "m_iDeaths.020", + "m_iDeaths.021", + "m_iDeaths.022", + "m_iDeaths.023", + "m_iDeaths.024", + "m_iDeaths.025", + "m_iDeaths.026", + "m_iDeaths.027", + "m_iDeaths.028", + "m_iDeaths.029", + "m_iDeaths.030", + "m_iDeaths.031", + "m_iDeaths.032", + "m_iDeaths.033" + ], "m_iHealing": [ "m_iHealing.000", "m_iHealing.001", @@ -41941,149 +41194,297 @@ "m_iHealing.032", "m_iHealing.033" ], - "m_iHealingAssist": [ - "m_iHealingAssist.000", - "m_iHealingAssist.001", - "m_iHealingAssist.002", - "m_iHealingAssist.003", - "m_iHealingAssist.004", - "m_iHealingAssist.005", - "m_iHealingAssist.006", - "m_iHealingAssist.007", - "m_iHealingAssist.008", - "m_iHealingAssist.009", - "m_iHealingAssist.010", - "m_iHealingAssist.011", - "m_iHealingAssist.012", - "m_iHealingAssist.013", - "m_iHealingAssist.014", - "m_iHealingAssist.015", - "m_iHealingAssist.016", - "m_iHealingAssist.017", - "m_iHealingAssist.018", - "m_iHealingAssist.019", - "m_iHealingAssist.020", - "m_iHealingAssist.021", - "m_iHealingAssist.022", - "m_iHealingAssist.023", - "m_iHealingAssist.024", - "m_iHealingAssist.025", - "m_iHealingAssist.026", - "m_iHealingAssist.027", - "m_iHealingAssist.028", - "m_iHealingAssist.029", - "m_iHealingAssist.030", - "m_iHealingAssist.031", - "m_iHealingAssist.032", - "m_iHealingAssist.033" + "m_iHealingAssist": [ + "m_iHealingAssist.000", + "m_iHealingAssist.001", + "m_iHealingAssist.002", + "m_iHealingAssist.003", + "m_iHealingAssist.004", + "m_iHealingAssist.005", + "m_iHealingAssist.006", + "m_iHealingAssist.007", + "m_iHealingAssist.008", + "m_iHealingAssist.009", + "m_iHealingAssist.010", + "m_iHealingAssist.011", + "m_iHealingAssist.012", + "m_iHealingAssist.013", + "m_iHealingAssist.014", + "m_iHealingAssist.015", + "m_iHealingAssist.016", + "m_iHealingAssist.017", + "m_iHealingAssist.018", + "m_iHealingAssist.019", + "m_iHealingAssist.020", + "m_iHealingAssist.021", + "m_iHealingAssist.022", + "m_iHealingAssist.023", + "m_iHealingAssist.024", + "m_iHealingAssist.025", + "m_iHealingAssist.026", + "m_iHealingAssist.027", + "m_iHealingAssist.028", + "m_iHealingAssist.029", + "m_iHealingAssist.030", + "m_iHealingAssist.031", + "m_iHealingAssist.032", + "m_iHealingAssist.033" + ], + "m_iHealth": [ + "m_iHealth.000", + "m_iHealth.001", + "m_iHealth.002", + "m_iHealth.003", + "m_iHealth.004", + "m_iHealth.005", + "m_iHealth.006", + "m_iHealth.007", + "m_iHealth.008", + "m_iHealth.009", + "m_iHealth.010", + "m_iHealth.011", + "m_iHealth.012", + "m_iHealth.013", + "m_iHealth.014", + "m_iHealth.015", + "m_iHealth.016", + "m_iHealth.017", + "m_iHealth.018", + "m_iHealth.019", + "m_iHealth.020", + "m_iHealth.021", + "m_iHealth.022", + "m_iHealth.023", + "m_iHealth.024", + "m_iHealth.025", + "m_iHealth.026", + "m_iHealth.027", + "m_iHealth.028", + "m_iHealth.029", + "m_iHealth.030", + "m_iHealth.031", + "m_iHealth.032", + "m_iHealth.033" + ], + "m_iMaxBuffedHealth": [ + "m_iMaxBuffedHealth.000", + "m_iMaxBuffedHealth.001", + "m_iMaxBuffedHealth.002", + "m_iMaxBuffedHealth.003", + "m_iMaxBuffedHealth.004", + "m_iMaxBuffedHealth.005", + "m_iMaxBuffedHealth.006", + "m_iMaxBuffedHealth.007", + "m_iMaxBuffedHealth.008", + "m_iMaxBuffedHealth.009", + "m_iMaxBuffedHealth.010", + "m_iMaxBuffedHealth.011", + "m_iMaxBuffedHealth.012", + "m_iMaxBuffedHealth.013", + "m_iMaxBuffedHealth.014", + "m_iMaxBuffedHealth.015", + "m_iMaxBuffedHealth.016", + "m_iMaxBuffedHealth.017", + "m_iMaxBuffedHealth.018", + "m_iMaxBuffedHealth.019", + "m_iMaxBuffedHealth.020", + "m_iMaxBuffedHealth.021", + "m_iMaxBuffedHealth.022", + "m_iMaxBuffedHealth.023", + "m_iMaxBuffedHealth.024", + "m_iMaxBuffedHealth.025", + "m_iMaxBuffedHealth.026", + "m_iMaxBuffedHealth.027", + "m_iMaxBuffedHealth.028", + "m_iMaxBuffedHealth.029", + "m_iMaxBuffedHealth.030", + "m_iMaxBuffedHealth.031", + "m_iMaxBuffedHealth.032", + "m_iMaxBuffedHealth.033" + ], + "m_iMaxHealth": [ + "m_iMaxHealth.000", + "m_iMaxHealth.001", + "m_iMaxHealth.002", + "m_iMaxHealth.003", + "m_iMaxHealth.004", + "m_iMaxHealth.005", + "m_iMaxHealth.006", + "m_iMaxHealth.007", + "m_iMaxHealth.008", + "m_iMaxHealth.009", + "m_iMaxHealth.010", + "m_iMaxHealth.011", + "m_iMaxHealth.012", + "m_iMaxHealth.013", + "m_iMaxHealth.014", + "m_iMaxHealth.015", + "m_iMaxHealth.016", + "m_iMaxHealth.017", + "m_iMaxHealth.018", + "m_iMaxHealth.019", + "m_iMaxHealth.020", + "m_iMaxHealth.021", + "m_iMaxHealth.022", + "m_iMaxHealth.023", + "m_iMaxHealth.024", + "m_iMaxHealth.025", + "m_iMaxHealth.026", + "m_iMaxHealth.027", + "m_iMaxHealth.028", + "m_iMaxHealth.029", + "m_iMaxHealth.030", + "m_iMaxHealth.031", + "m_iMaxHealth.032", + "m_iMaxHealth.033" ], - "m_iDamageBlocked": [ - "m_iDamageBlocked.000", - "m_iDamageBlocked.001", - "m_iDamageBlocked.002", - "m_iDamageBlocked.003", - "m_iDamageBlocked.004", - "m_iDamageBlocked.005", - "m_iDamageBlocked.006", - "m_iDamageBlocked.007", - "m_iDamageBlocked.008", - "m_iDamageBlocked.009", - "m_iDamageBlocked.010", - "m_iDamageBlocked.011", - "m_iDamageBlocked.012", - "m_iDamageBlocked.013", - "m_iDamageBlocked.014", - "m_iDamageBlocked.015", - "m_iDamageBlocked.016", - "m_iDamageBlocked.017", - "m_iDamageBlocked.018", - "m_iDamageBlocked.019", - "m_iDamageBlocked.020", - "m_iDamageBlocked.021", - "m_iDamageBlocked.022", - "m_iDamageBlocked.023", - "m_iDamageBlocked.024", - "m_iDamageBlocked.025", - "m_iDamageBlocked.026", - "m_iDamageBlocked.027", - "m_iDamageBlocked.028", - "m_iDamageBlocked.029", - "m_iDamageBlocked.030", - "m_iDamageBlocked.031", - "m_iDamageBlocked.032", - "m_iDamageBlocked.033" + "m_iNumTeamMembers": [ + "m_iNumTeamMembers.000", + "m_iNumTeamMembers.001", + "m_iNumTeamMembers.002", + "m_iNumTeamMembers.003", + "m_iNumTeamMembers.004", + "m_iNumTeamMembers.005", + "m_iNumTeamMembers.006", + "m_iNumTeamMembers.007", + "m_iNumTeamMembers.008", + "m_iNumTeamMembers.009", + "m_iNumTeamMembers.010", + "m_iNumTeamMembers.011", + "m_iNumTeamMembers.012", + "m_iNumTeamMembers.013", + "m_iNumTeamMembers.014", + "m_iNumTeamMembers.015", + "m_iNumTeamMembers.016", + "m_iNumTeamMembers.017", + "m_iNumTeamMembers.018", + "m_iNumTeamMembers.019", + "m_iNumTeamMembers.020", + "m_iNumTeamMembers.021", + "m_iNumTeamMembers.022", + "m_iNumTeamMembers.023", + "m_iNumTeamMembers.024", + "m_iNumTeamMembers.025", + "m_iNumTeamMembers.026", + "m_iNumTeamMembers.027", + "m_iNumTeamMembers.028", + "m_iNumTeamMembers.029", + "m_iNumTeamMembers.030", + "m_iNumTeamMembers.031", + "m_iNumTeamMembers.032", + "m_iNumTeamMembers.033", + "m_iNumTeamMembers.034", + "m_iNumTeamMembers.035", + "m_iNumTeamMembers.036", + "m_iNumTeamMembers.037", + "m_iNumTeamMembers.038", + "m_iNumTeamMembers.039", + "m_iNumTeamMembers.040", + "m_iNumTeamMembers.041", + "m_iNumTeamMembers.042", + "m_iNumTeamMembers.043", + "m_iNumTeamMembers.044", + "m_iNumTeamMembers.045", + "m_iNumTeamMembers.046", + "m_iNumTeamMembers.047", + "m_iNumTeamMembers.048", + "m_iNumTeamMembers.049", + "m_iNumTeamMembers.050", + "m_iNumTeamMembers.051", + "m_iNumTeamMembers.052", + "m_iNumTeamMembers.053", + "m_iNumTeamMembers.054", + "m_iNumTeamMembers.055", + "m_iNumTeamMembers.056", + "m_iNumTeamMembers.057", + "m_iNumTeamMembers.058", + "m_iNumTeamMembers.059", + "m_iNumTeamMembers.060", + "m_iNumTeamMembers.061", + "m_iNumTeamMembers.062", + "m_iNumTeamMembers.063" ], - "m_iCurrencyCollected": [ - "m_iCurrencyCollected.000", - "m_iCurrencyCollected.001", - "m_iCurrencyCollected.002", - "m_iCurrencyCollected.003", - "m_iCurrencyCollected.004", - "m_iCurrencyCollected.005", - "m_iCurrencyCollected.006", - "m_iCurrencyCollected.007", - "m_iCurrencyCollected.008", - "m_iCurrencyCollected.009", - "m_iCurrencyCollected.010", - "m_iCurrencyCollected.011", - "m_iCurrencyCollected.012", - "m_iCurrencyCollected.013", - "m_iCurrencyCollected.014", - "m_iCurrencyCollected.015", - "m_iCurrencyCollected.016", - "m_iCurrencyCollected.017", - "m_iCurrencyCollected.018", - "m_iCurrencyCollected.019", - "m_iCurrencyCollected.020", - "m_iCurrencyCollected.021", - "m_iCurrencyCollected.022", - "m_iCurrencyCollected.023", - "m_iCurrencyCollected.024", - "m_iCurrencyCollected.025", - "m_iCurrencyCollected.026", - "m_iCurrencyCollected.027", - "m_iCurrencyCollected.028", - "m_iCurrencyCollected.029", - "m_iCurrencyCollected.030", - "m_iCurrencyCollected.031", - "m_iCurrencyCollected.032", - "m_iCurrencyCollected.033" + "m_iOwner": [ + "m_iOwner.000", + "m_iOwner.001", + "m_iOwner.002", + "m_iOwner.003", + "m_iOwner.004", + "m_iOwner.005", + "m_iOwner.006", + "m_iOwner.007" ], - "m_iBonusPoints": [ - "m_iBonusPoints.000", - "m_iBonusPoints.001", - "m_iBonusPoints.002", - "m_iBonusPoints.003", - "m_iBonusPoints.004", - "m_iBonusPoints.005", - "m_iBonusPoints.006", - "m_iBonusPoints.007", - "m_iBonusPoints.008", - "m_iBonusPoints.009", - "m_iBonusPoints.010", - "m_iBonusPoints.011", - "m_iBonusPoints.012", - "m_iBonusPoints.013", - "m_iBonusPoints.014", - "m_iBonusPoints.015", - "m_iBonusPoints.016", - "m_iBonusPoints.017", - "m_iBonusPoints.018", - "m_iBonusPoints.019", - "m_iBonusPoints.020", - "m_iBonusPoints.021", - "m_iBonusPoints.022", - "m_iBonusPoints.023", - "m_iBonusPoints.024", - "m_iBonusPoints.025", - "m_iBonusPoints.026", - "m_iBonusPoints.027", - "m_iBonusPoints.028", - "m_iBonusPoints.029", - "m_iBonusPoints.030", - "m_iBonusPoints.031", - "m_iBonusPoints.032", - "m_iBonusPoints.033" + "m_iPing": [ + "m_iPing.000", + "m_iPing.001", + "m_iPing.002", + "m_iPing.003", + "m_iPing.004", + "m_iPing.005", + "m_iPing.006", + "m_iPing.007", + "m_iPing.008", + "m_iPing.009", + "m_iPing.010", + "m_iPing.011", + "m_iPing.012", + "m_iPing.013", + "m_iPing.014", + "m_iPing.015", + "m_iPing.016", + "m_iPing.017", + "m_iPing.018", + "m_iPing.019", + "m_iPing.020", + "m_iPing.021", + "m_iPing.022", + "m_iPing.023", + "m_iPing.024", + "m_iPing.025", + "m_iPing.026", + "m_iPing.027", + "m_iPing.028", + "m_iPing.029", + "m_iPing.030", + "m_iPing.031", + "m_iPing.032", + "m_iPing.033" + ], + "m_iPlayerClass": [ + "m_iPlayerClass.000", + "m_iPlayerClass.001", + "m_iPlayerClass.002", + "m_iPlayerClass.003", + "m_iPlayerClass.004", + "m_iPlayerClass.005", + "m_iPlayerClass.006", + "m_iPlayerClass.007", + "m_iPlayerClass.008", + "m_iPlayerClass.009", + "m_iPlayerClass.010", + "m_iPlayerClass.011", + "m_iPlayerClass.012", + "m_iPlayerClass.013", + "m_iPlayerClass.014", + "m_iPlayerClass.015", + "m_iPlayerClass.016", + "m_iPlayerClass.017", + "m_iPlayerClass.018", + "m_iPlayerClass.019", + "m_iPlayerClass.020", + "m_iPlayerClass.021", + "m_iPlayerClass.022", + "m_iPlayerClass.023", + "m_iPlayerClass.024", + "m_iPlayerClass.025", + "m_iPlayerClass.026", + "m_iPlayerClass.027", + "m_iPlayerClass.028", + "m_iPlayerClass.029", + "m_iPlayerClass.030", + "m_iPlayerClass.031", + "m_iPlayerClass.032", + "m_iPlayerClass.033" ], "m_iPlayerLevel": [ "m_iPlayerLevel.000", @@ -42121,6 +41522,236 @@ "m_iPlayerLevel.032", "m_iPlayerLevel.033" ], + "m_iPreviousPoints": [ + "m_iPreviousPoints.000", + "m_iPreviousPoints.001", + "m_iPreviousPoints.002", + "m_iPreviousPoints.003", + "m_iPreviousPoints.004", + "m_iPreviousPoints.005", + "m_iPreviousPoints.006", + "m_iPreviousPoints.007", + "m_iPreviousPoints.008", + "m_iPreviousPoints.009", + "m_iPreviousPoints.010", + "m_iPreviousPoints.011", + "m_iPreviousPoints.012", + "m_iPreviousPoints.013", + "m_iPreviousPoints.014", + "m_iPreviousPoints.015", + "m_iPreviousPoints.016", + "m_iPreviousPoints.017", + "m_iPreviousPoints.018", + "m_iPreviousPoints.019", + "m_iPreviousPoints.020", + "m_iPreviousPoints.021", + "m_iPreviousPoints.022", + "m_iPreviousPoints.023", + "m_iPreviousPoints.024", + "m_iPreviousPoints.025", + "m_iPreviousPoints.026", + "m_iPreviousPoints.027", + "m_iPreviousPoints.028", + "m_iPreviousPoints.029", + "m_iPreviousPoints.030", + "m_iPreviousPoints.031", + "m_iPreviousPoints.032", + "m_iPreviousPoints.033", + "m_iPreviousPoints.034", + "m_iPreviousPoints.035", + "m_iPreviousPoints.036", + "m_iPreviousPoints.037", + "m_iPreviousPoints.038", + "m_iPreviousPoints.039", + "m_iPreviousPoints.040", + "m_iPreviousPoints.041", + "m_iPreviousPoints.042", + "m_iPreviousPoints.043", + "m_iPreviousPoints.044", + "m_iPreviousPoints.045", + "m_iPreviousPoints.046", + "m_iPreviousPoints.047", + "m_iPreviousPoints.048", + "m_iPreviousPoints.049", + "m_iPreviousPoints.050", + "m_iPreviousPoints.051", + "m_iPreviousPoints.052", + "m_iPreviousPoints.053", + "m_iPreviousPoints.054", + "m_iPreviousPoints.055", + "m_iPreviousPoints.056", + "m_iPreviousPoints.057", + "m_iPreviousPoints.058", + "m_iPreviousPoints.059", + "m_iPreviousPoints.060", + "m_iPreviousPoints.061", + "m_iPreviousPoints.062", + "m_iPreviousPoints.063", + "m_iPreviousPoints.064", + "m_iPreviousPoints.065", + "m_iPreviousPoints.066", + "m_iPreviousPoints.067", + "m_iPreviousPoints.068", + "m_iPreviousPoints.069", + "m_iPreviousPoints.070", + "m_iPreviousPoints.071", + "m_iPreviousPoints.072", + "m_iPreviousPoints.073", + "m_iPreviousPoints.074", + "m_iPreviousPoints.075", + "m_iPreviousPoints.076", + "m_iPreviousPoints.077", + "m_iPreviousPoints.078", + "m_iPreviousPoints.079", + "m_iPreviousPoints.080", + "m_iPreviousPoints.081", + "m_iPreviousPoints.082", + "m_iPreviousPoints.083", + "m_iPreviousPoints.084", + "m_iPreviousPoints.085", + "m_iPreviousPoints.086", + "m_iPreviousPoints.087", + "m_iPreviousPoints.088", + "m_iPreviousPoints.089", + "m_iPreviousPoints.090", + "m_iPreviousPoints.091", + "m_iPreviousPoints.092", + "m_iPreviousPoints.093", + "m_iPreviousPoints.094", + "m_iPreviousPoints.095", + "m_iPreviousPoints.096", + "m_iPreviousPoints.097", + "m_iPreviousPoints.098", + "m_iPreviousPoints.099", + "m_iPreviousPoints.100", + "m_iPreviousPoints.101", + "m_iPreviousPoints.102", + "m_iPreviousPoints.103", + "m_iPreviousPoints.104", + "m_iPreviousPoints.105", + "m_iPreviousPoints.106", + "m_iPreviousPoints.107", + "m_iPreviousPoints.108", + "m_iPreviousPoints.109", + "m_iPreviousPoints.110", + "m_iPreviousPoints.111", + "m_iPreviousPoints.112", + "m_iPreviousPoints.113", + "m_iPreviousPoints.114", + "m_iPreviousPoints.115", + "m_iPreviousPoints.116", + "m_iPreviousPoints.117", + "m_iPreviousPoints.118", + "m_iPreviousPoints.119", + "m_iPreviousPoints.120", + "m_iPreviousPoints.121", + "m_iPreviousPoints.122", + "m_iPreviousPoints.123", + "m_iPreviousPoints.124", + "m_iPreviousPoints.125", + "m_iPreviousPoints.126", + "m_iPreviousPoints.127", + "m_iPreviousPoints.128", + "m_iPreviousPoints.129", + "m_iPreviousPoints.130", + "m_iPreviousPoints.131", + "m_iPreviousPoints.132", + "m_iPreviousPoints.133", + "m_iPreviousPoints.134", + "m_iPreviousPoints.135", + "m_iPreviousPoints.136", + "m_iPreviousPoints.137", + "m_iPreviousPoints.138", + "m_iPreviousPoints.139", + "m_iPreviousPoints.140", + "m_iPreviousPoints.141", + "m_iPreviousPoints.142", + "m_iPreviousPoints.143", + "m_iPreviousPoints.144", + "m_iPreviousPoints.145", + "m_iPreviousPoints.146", + "m_iPreviousPoints.147", + "m_iPreviousPoints.148", + "m_iPreviousPoints.149", + "m_iPreviousPoints.150", + "m_iPreviousPoints.151", + "m_iPreviousPoints.152", + "m_iPreviousPoints.153", + "m_iPreviousPoints.154", + "m_iPreviousPoints.155", + "m_iPreviousPoints.156", + "m_iPreviousPoints.157", + "m_iPreviousPoints.158", + "m_iPreviousPoints.159", + "m_iPreviousPoints.160", + "m_iPreviousPoints.161", + "m_iPreviousPoints.162", + "m_iPreviousPoints.163", + "m_iPreviousPoints.164", + "m_iPreviousPoints.165", + "m_iPreviousPoints.166", + "m_iPreviousPoints.167", + "m_iPreviousPoints.168", + "m_iPreviousPoints.169", + "m_iPreviousPoints.170", + "m_iPreviousPoints.171", + "m_iPreviousPoints.172", + "m_iPreviousPoints.173", + "m_iPreviousPoints.174", + "m_iPreviousPoints.175", + "m_iPreviousPoints.176", + "m_iPreviousPoints.177", + "m_iPreviousPoints.178", + "m_iPreviousPoints.179", + "m_iPreviousPoints.180", + "m_iPreviousPoints.181", + "m_iPreviousPoints.182", + "m_iPreviousPoints.183", + "m_iPreviousPoints.184", + "m_iPreviousPoints.185", + "m_iPreviousPoints.186", + "m_iPreviousPoints.187", + "m_iPreviousPoints.188", + "m_iPreviousPoints.189", + "m_iPreviousPoints.190", + "m_iPreviousPoints.191" + ], + "m_iScore": [ + "m_iScore.000", + "m_iScore.001", + "m_iScore.002", + "m_iScore.003", + "m_iScore.004", + "m_iScore.005", + "m_iScore.006", + "m_iScore.007", + "m_iScore.008", + "m_iScore.009", + "m_iScore.010", + "m_iScore.011", + "m_iScore.012", + "m_iScore.013", + "m_iScore.014", + "m_iScore.015", + "m_iScore.016", + "m_iScore.017", + "m_iScore.018", + "m_iScore.019", + "m_iScore.020", + "m_iScore.021", + "m_iScore.022", + "m_iScore.023", + "m_iScore.024", + "m_iScore.025", + "m_iScore.026", + "m_iScore.027", + "m_iScore.028", + "m_iScore.029", + "m_iScore.030", + "m_iScore.031", + "m_iScore.032", + "m_iScore.033" + ], "m_iStreaks": [ "m_iStreaks.000", "m_iStreaks.001", @@ -42259,6 +41890,320 @@ "m_iStreaks.134", "m_iStreaks.135" ], + "m_iTeam": [ + "m_iTeam.000", + "m_iTeam.001", + "m_iTeam.002", + "m_iTeam.003", + "m_iTeam.004", + "m_iTeam.005", + "m_iTeam.006", + "m_iTeam.007", + "m_iTeam.008", + "m_iTeam.009", + "m_iTeam.010", + "m_iTeam.011", + "m_iTeam.012", + "m_iTeam.013", + "m_iTeam.014", + "m_iTeam.015", + "m_iTeam.016", + "m_iTeam.017", + "m_iTeam.018", + "m_iTeam.019", + "m_iTeam.020", + "m_iTeam.021", + "m_iTeam.022", + "m_iTeam.023", + "m_iTeam.024", + "m_iTeam.025", + "m_iTeam.026", + "m_iTeam.027", + "m_iTeam.028", + "m_iTeam.029", + "m_iTeam.030", + "m_iTeam.031", + "m_iTeam.032", + "m_iTeam.033" + ], + "m_iTeamBaseIcons": [ + "m_iTeamBaseIcons.000", + "m_iTeamBaseIcons.001", + "m_iTeamBaseIcons.002", + "m_iTeamBaseIcons.003", + "m_iTeamBaseIcons.004", + "m_iTeamBaseIcons.005", + "m_iTeamBaseIcons.006", + "m_iTeamBaseIcons.007", + "m_iTeamBaseIcons.008", + "m_iTeamBaseIcons.009", + "m_iTeamBaseIcons.010", + "m_iTeamBaseIcons.011", + "m_iTeamBaseIcons.012", + "m_iTeamBaseIcons.013", + "m_iTeamBaseIcons.014", + "m_iTeamBaseIcons.015", + "m_iTeamBaseIcons.016", + "m_iTeamBaseIcons.017", + "m_iTeamBaseIcons.018", + "m_iTeamBaseIcons.019", + "m_iTeamBaseIcons.020", + "m_iTeamBaseIcons.021", + "m_iTeamBaseIcons.022", + "m_iTeamBaseIcons.023", + "m_iTeamBaseIcons.024", + "m_iTeamBaseIcons.025", + "m_iTeamBaseIcons.026", + "m_iTeamBaseIcons.027", + "m_iTeamBaseIcons.028", + "m_iTeamBaseIcons.029", + "m_iTeamBaseIcons.030", + "m_iTeamBaseIcons.031" + ], + "m_iTeamIcons": [ + "m_iTeamIcons.000", + "m_iTeamIcons.001", + "m_iTeamIcons.002", + "m_iTeamIcons.003", + "m_iTeamIcons.004", + "m_iTeamIcons.005", + "m_iTeamIcons.006", + "m_iTeamIcons.007", + "m_iTeamIcons.008", + "m_iTeamIcons.009", + "m_iTeamIcons.010", + "m_iTeamIcons.011", + "m_iTeamIcons.012", + "m_iTeamIcons.013", + "m_iTeamIcons.014", + "m_iTeamIcons.015", + "m_iTeamIcons.016", + "m_iTeamIcons.017", + "m_iTeamIcons.018", + "m_iTeamIcons.019", + "m_iTeamIcons.020", + "m_iTeamIcons.021", + "m_iTeamIcons.022", + "m_iTeamIcons.023", + "m_iTeamIcons.024", + "m_iTeamIcons.025", + "m_iTeamIcons.026", + "m_iTeamIcons.027", + "m_iTeamIcons.028", + "m_iTeamIcons.029", + "m_iTeamIcons.030", + "m_iTeamIcons.031", + "m_iTeamIcons.032", + "m_iTeamIcons.033", + "m_iTeamIcons.034", + "m_iTeamIcons.035", + "m_iTeamIcons.036", + "m_iTeamIcons.037", + "m_iTeamIcons.038", + "m_iTeamIcons.039", + "m_iTeamIcons.040", + "m_iTeamIcons.041", + "m_iTeamIcons.042", + "m_iTeamIcons.043", + "m_iTeamIcons.044", + "m_iTeamIcons.045", + "m_iTeamIcons.046", + "m_iTeamIcons.047", + "m_iTeamIcons.048", + "m_iTeamIcons.049", + "m_iTeamIcons.050", + "m_iTeamIcons.051", + "m_iTeamIcons.052", + "m_iTeamIcons.053", + "m_iTeamIcons.054", + "m_iTeamIcons.055", + "m_iTeamIcons.056", + "m_iTeamIcons.057", + "m_iTeamIcons.058", + "m_iTeamIcons.059", + "m_iTeamIcons.060", + "m_iTeamIcons.061", + "m_iTeamIcons.062", + "m_iTeamIcons.063" + ], + "m_iTeamInZone": [ + "m_iTeamInZone.000", + "m_iTeamInZone.001", + "m_iTeamInZone.002", + "m_iTeamInZone.003", + "m_iTeamInZone.004", + "m_iTeamInZone.005", + "m_iTeamInZone.006", + "m_iTeamInZone.007" + ], + "m_iTeamOverlays": [ + "m_iTeamOverlays.000", + "m_iTeamOverlays.001", + "m_iTeamOverlays.002", + "m_iTeamOverlays.003", + "m_iTeamOverlays.004", + "m_iTeamOverlays.005", + "m_iTeamOverlays.006", + "m_iTeamOverlays.007", + "m_iTeamOverlays.008", + "m_iTeamOverlays.009", + "m_iTeamOverlays.010", + "m_iTeamOverlays.011", + "m_iTeamOverlays.012", + "m_iTeamOverlays.013", + "m_iTeamOverlays.014", + "m_iTeamOverlays.015", + "m_iTeamOverlays.016", + "m_iTeamOverlays.017", + "m_iTeamOverlays.018", + "m_iTeamOverlays.019", + "m_iTeamOverlays.020", + "m_iTeamOverlays.021", + "m_iTeamOverlays.022", + "m_iTeamOverlays.023", + "m_iTeamOverlays.024", + "m_iTeamOverlays.025", + "m_iTeamOverlays.026", + "m_iTeamOverlays.027", + "m_iTeamOverlays.028", + "m_iTeamOverlays.029", + "m_iTeamOverlays.030", + "m_iTeamOverlays.031", + "m_iTeamOverlays.032", + "m_iTeamOverlays.033", + "m_iTeamOverlays.034", + "m_iTeamOverlays.035", + "m_iTeamOverlays.036", + "m_iTeamOverlays.037", + "m_iTeamOverlays.038", + "m_iTeamOverlays.039", + "m_iTeamOverlays.040", + "m_iTeamOverlays.041", + "m_iTeamOverlays.042", + "m_iTeamOverlays.043", + "m_iTeamOverlays.044", + "m_iTeamOverlays.045", + "m_iTeamOverlays.046", + "m_iTeamOverlays.047", + "m_iTeamOverlays.048", + "m_iTeamOverlays.049", + "m_iTeamOverlays.050", + "m_iTeamOverlays.051", + "m_iTeamOverlays.052", + "m_iTeamOverlays.053", + "m_iTeamOverlays.054", + "m_iTeamOverlays.055", + "m_iTeamOverlays.056", + "m_iTeamOverlays.057", + "m_iTeamOverlays.058", + "m_iTeamOverlays.059", + "m_iTeamOverlays.060", + "m_iTeamOverlays.061", + "m_iTeamOverlays.062", + "m_iTeamOverlays.063" + ], + "m_iTeamReqCappers": [ + "m_iTeamReqCappers.000", + "m_iTeamReqCappers.001", + "m_iTeamReqCappers.002", + "m_iTeamReqCappers.003", + "m_iTeamReqCappers.004", + "m_iTeamReqCappers.005", + "m_iTeamReqCappers.006", + "m_iTeamReqCappers.007", + "m_iTeamReqCappers.008", + "m_iTeamReqCappers.009", + "m_iTeamReqCappers.010", + "m_iTeamReqCappers.011", + "m_iTeamReqCappers.012", + "m_iTeamReqCappers.013", + "m_iTeamReqCappers.014", + "m_iTeamReqCappers.015", + "m_iTeamReqCappers.016", + "m_iTeamReqCappers.017", + "m_iTeamReqCappers.018", + "m_iTeamReqCappers.019", + "m_iTeamReqCappers.020", + "m_iTeamReqCappers.021", + "m_iTeamReqCappers.022", + "m_iTeamReqCappers.023", + "m_iTeamReqCappers.024", + "m_iTeamReqCappers.025", + "m_iTeamReqCappers.026", + "m_iTeamReqCappers.027", + "m_iTeamReqCappers.028", + "m_iTeamReqCappers.029", + "m_iTeamReqCappers.030", + "m_iTeamReqCappers.031", + "m_iTeamReqCappers.032", + "m_iTeamReqCappers.033", + "m_iTeamReqCappers.034", + "m_iTeamReqCappers.035", + "m_iTeamReqCappers.036", + "m_iTeamReqCappers.037", + "m_iTeamReqCappers.038", + "m_iTeamReqCappers.039", + "m_iTeamReqCappers.040", + "m_iTeamReqCappers.041", + "m_iTeamReqCappers.042", + "m_iTeamReqCappers.043", + "m_iTeamReqCappers.044", + "m_iTeamReqCappers.045", + "m_iTeamReqCappers.046", + "m_iTeamReqCappers.047", + "m_iTeamReqCappers.048", + "m_iTeamReqCappers.049", + "m_iTeamReqCappers.050", + "m_iTeamReqCappers.051", + "m_iTeamReqCappers.052", + "m_iTeamReqCappers.053", + "m_iTeamReqCappers.054", + "m_iTeamReqCappers.055", + "m_iTeamReqCappers.056", + "m_iTeamReqCappers.057", + "m_iTeamReqCappers.058", + "m_iTeamReqCappers.059", + "m_iTeamReqCappers.060", + "m_iTeamReqCappers.061", + "m_iTeamReqCappers.062", + "m_iTeamReqCappers.063" + ], + "m_iTotalScore": [ + "m_iTotalScore.000", + "m_iTotalScore.001", + "m_iTotalScore.002", + "m_iTotalScore.003", + "m_iTotalScore.004", + "m_iTotalScore.005", + "m_iTotalScore.006", + "m_iTotalScore.007", + "m_iTotalScore.008", + "m_iTotalScore.009", + "m_iTotalScore.010", + "m_iTotalScore.011", + "m_iTotalScore.012", + "m_iTotalScore.013", + "m_iTotalScore.014", + "m_iTotalScore.015", + "m_iTotalScore.016", + "m_iTotalScore.017", + "m_iTotalScore.018", + "m_iTotalScore.019", + "m_iTotalScore.020", + "m_iTotalScore.021", + "m_iTotalScore.022", + "m_iTotalScore.023", + "m_iTotalScore.024", + "m_iTotalScore.025", + "m_iTotalScore.026", + "m_iTotalScore.027", + "m_iTotalScore.028", + "m_iTotalScore.029", + "m_iTotalScore.030", + "m_iTotalScore.031", + "m_iTotalScore.032", + "m_iTotalScore.033" + ], "m_iUpgradeRefundCredits": [ "m_iUpgradeRefundCredits.000", "m_iUpgradeRefundCredits.001", @@ -42295,42 +42240,107 @@ "m_iUpgradeRefundCredits.032", "m_iUpgradeRefundCredits.033" ], - "_ST_m_hRagWearables_8": [ - "_LPT_m_hRagWearables_8.lengthprop8", - "_ST_m_hRagWearables_8.000", - "_ST_m_hRagWearables_8.001", - "_ST_m_hRagWearables_8.002", - "_ST_m_hRagWearables_8.003", - "_ST_m_hRagWearables_8.004", - "_ST_m_hRagWearables_8.005", - "_ST_m_hRagWearables_8.006", - "_ST_m_hRagWearables_8.007" + "m_iWarnOnCap": [ + "m_iWarnOnCap.000", + "m_iWarnOnCap.001", + "m_iWarnOnCap.002", + "m_iWarnOnCap.003", + "m_iWarnOnCap.004", + "m_iWarnOnCap.005", + "m_iWarnOnCap.006", + "m_iWarnOnCap.007" ], - "_LPT_m_hRagWearables_8": [ - "_LPT_m_hRagWearables_8.lengthprop8" + "m_nAttachIndex": [ + "m_nAttachIndex.000", + "m_nAttachIndex.001", + "m_nAttachIndex.002", + "m_nAttachIndex.003", + "m_nAttachIndex.004", + "m_nAttachIndex.005", + "m_nAttachIndex.006", + "m_nAttachIndex.007", + "m_nAttachIndex.008", + "m_nAttachIndex.009" ], - "m_eWinningMethod": [ - "m_eWinningMethod.000", - "m_eWinningMethod.001", - "m_eWinningMethod.002", - "m_eWinningMethod.003" + "m_nMannVsMachineWaveClassCounts": [ + "m_nMannVsMachineWaveClassCounts.000", + "m_nMannVsMachineWaveClassCounts.001", + "m_nMannVsMachineWaveClassCounts.002", + "m_nMannVsMachineWaveClassCounts.003", + "m_nMannVsMachineWaveClassCounts.004", + "m_nMannVsMachineWaveClassCounts.005", + "m_nMannVsMachineWaveClassCounts.006", + "m_nMannVsMachineWaveClassCounts.007", + "m_nMannVsMachineWaveClassCounts.008", + "m_nMannVsMachineWaveClassCounts.009", + "m_nMannVsMachineWaveClassCounts.010", + "m_nMannVsMachineWaveClassCounts.011" ], - "DT_SniperRifleLocalData": [ - "DT_SniperRifleLocalData.m_flChargedDamage" + "m_nMannVsMachineWaveClassCounts2": [ + "m_nMannVsMachineWaveClassCounts2.000", + "m_nMannVsMachineWaveClassCounts2.001", + "m_nMannVsMachineWaveClassCounts2.002", + "m_nMannVsMachineWaveClassCounts2.003", + "m_nMannVsMachineWaveClassCounts2.004", + "m_nMannVsMachineWaveClassCounts2.005", + "m_nMannVsMachineWaveClassCounts2.006", + "m_nMannVsMachineWaveClassCounts2.007", + "m_nMannVsMachineWaveClassCounts2.008", + "m_nMannVsMachineWaveClassCounts2.009", + "m_nMannVsMachineWaveClassCounts2.010", + "m_nMannVsMachineWaveClassCounts2.011" ], - "DT_BuilderLocalData": [ - "m_aBuildableObjectTypes.000", - "m_aBuildableObjectTypes.001", - "m_aBuildableObjectTypes.002", - "m_aBuildableObjectTypes.003", - "DT_BuilderLocalData.m_iObjectType", - "DT_BuilderLocalData.m_hObjectBeingBuilt" + "m_nMannVsMachineWaveClassFlags": [ + "m_nMannVsMachineWaveClassFlags.000", + "m_nMannVsMachineWaveClassFlags.001", + "m_nMannVsMachineWaveClassFlags.002", + "m_nMannVsMachineWaveClassFlags.003", + "m_nMannVsMachineWaveClassFlags.004", + "m_nMannVsMachineWaveClassFlags.005", + "m_nMannVsMachineWaveClassFlags.006", + "m_nMannVsMachineWaveClassFlags.007", + "m_nMannVsMachineWaveClassFlags.008", + "m_nMannVsMachineWaveClassFlags.009", + "m_nMannVsMachineWaveClassFlags.010", + "m_nMannVsMachineWaveClassFlags.011" ], - "m_aBuildableObjectTypes": [ - "m_aBuildableObjectTypes.000", - "m_aBuildableObjectTypes.001", - "m_aBuildableObjectTypes.002", - "m_aBuildableObjectTypes.003" + "m_nMannVsMachineWaveClassFlags2": [ + "m_nMannVsMachineWaveClassFlags2.000", + "m_nMannVsMachineWaveClassFlags2.001", + "m_nMannVsMachineWaveClassFlags2.002", + "m_nMannVsMachineWaveClassFlags2.003", + "m_nMannVsMachineWaveClassFlags2.004", + "m_nMannVsMachineWaveClassFlags2.005", + "m_nMannVsMachineWaveClassFlags2.006", + "m_nMannVsMachineWaveClassFlags2.007", + "m_nMannVsMachineWaveClassFlags2.008", + "m_nMannVsMachineWaveClassFlags2.009", + "m_nMannVsMachineWaveClassFlags2.010", + "m_nMannVsMachineWaveClassFlags2.011" + ], + "m_nMinigameTeamScore": [ + "m_nMinigameTeamScore.000", + "m_nMinigameTeamScore.001", + "m_nMinigameTeamScore.002", + "m_nMinigameTeamScore.003" + ], + "m_nModelIndexOverrides": [ + "m_nModelIndexOverrides.000", + "m_nModelIndexOverrides.001", + "m_nModelIndexOverrides.002", + "m_nModelIndexOverrides.003" + ], + "m_nNumNodeHillData": [ + "m_nNumNodeHillData.000", + "m_nNumNodeHillData.001", + "m_nNumNodeHillData.002", + "m_nNumNodeHillData.003" + ], + "m_nStreaks": [ + "m_nStreaks.000", + "m_nStreaks.001", + "m_nStreaks.002", + "m_nStreaks.003" ], "m_nVoteOptionCount": [ "m_nVoteOptionCount.000", @@ -42338,11 +42348,5 @@ "m_nVoteOptionCount.002", "m_nVoteOptionCount.003", "m_nVoteOptionCount.004" - ], - "DT_LocalTFWeaponMedigunData": [ - "DT_LocalTFWeaponMedigunData.m_flChargeLevel" - ], - "DT_TFWeaponMedigunDataNonLocal": [ - "DT_TFWeaponMedigunDataNonLocal.m_flChargeLevel" ] } diff --git a/test_data/comp.json b/tests/snapshots/tests__comp.dem_minimal.snap similarity index 99% rename from test_data/comp.json rename to tests/snapshots/tests__comp.dem_minimal.snap index 28a2a46..98ac7ca 100644 --- a/test_data/comp.json +++ b/tests/snapshots/tests__comp.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -2121,5 +2125,6 @@ } ], "startTick": 27136, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/decal.json b/tests/snapshots/tests__decal.dem_minimal.snap similarity index 99% rename from test_data/decal.json rename to tests/snapshots/tests__decal.dem_minimal.snap index 84f49cc..c084b57 100644 --- a/test_data/decal.json +++ b/tests/snapshots/tests__decal.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -1897,5 +1901,15 @@ } ], "startTick": 7233, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [ + { + "from": 60409, + "to": 63698 + }, + { + "from": 79213, + "to": 80377 + } + ] +} diff --git a/test_data/emptysaytext.json b/tests/snapshots/tests__emptysaytext.dem_minimal.snap similarity index 99% rename from test_data/emptysaytext.json rename to tests/snapshots/tests__emptysaytext.dem_minimal.snap index f16b73c..450e26e 100644 --- a/test_data/emptysaytext.json +++ b/tests/snapshots/tests__emptysaytext.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -1298,5 +1302,11 @@ } ], "startTick": 11793, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [ + { + "from": 14081, + "to": 16714 + } + ] +} diff --git a/test_data/gully_game_state.json b/tests/snapshots/tests__gully.dem.snap similarity index 99% rename from test_data/gully_game_state.json rename to tests/snapshots/tests__gully.dem.snap index cc7ddd4..d1c9512 100644 --- a/test_data/gully_game_state.json +++ b/tests/snapshots/tests__gully.dem.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "players": [ { @@ -1862,4 +1866,4 @@ } ], "tick": 105351 -} \ No newline at end of file +} diff --git a/test_data/gully.json b/tests/snapshots/tests__gully.dem_minimal.snap similarity index 99% rename from test_data/gully.json rename to tests/snapshots/tests__gully.dem_minimal.snap index fd6968b..9002c05 100644 --- a/test_data/gully.json +++ b/tests/snapshots/tests__gully.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -2505,5 +2509,6 @@ } ], "startTick": 348, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/malformed_cvar.json b/tests/snapshots/tests__malformed_cvar.dem_minimal.snap similarity index 99% rename from test_data/malformed_cvar.json rename to tests/snapshots/tests__malformed_cvar.dem_minimal.snap index d06d8c7..49c1ada 100644 --- a/test_data/malformed_cvar.json +++ b/tests/snapshots/tests__malformed_cvar.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -1474,5 +1478,6 @@ } ], "startTick": 10587, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/nousers.json b/tests/snapshots/tests__nousers.dem_minimal.snap similarity index 99% rename from test_data/nousers.json rename to tests/snapshots/tests__nousers.dem_minimal.snap index e3fe84b..6c99412 100644 --- a/test_data/nousers.json +++ b/tests/snapshots/tests__nousers.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -2509,5 +2513,6 @@ } ], "startTick": 67, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/protocol23.json b/tests/snapshots/tests__protocol23.dem_minimal.snap similarity index 99% rename from test_data/protocol23.json rename to tests/snapshots/tests__protocol23.dem_minimal.snap index a2b82c0..e48d518 100644 --- a/test_data/protocol23.json +++ b/tests/snapshots/tests__protocol23.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -2570,5 +2574,6 @@ } ], "startTick": 77, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/saytext2.json b/tests/snapshots/tests__saytext2.dem_minimal.snap similarity index 99% rename from test_data/saytext2.json rename to tests/snapshots/tests__saytext2.dem_minimal.snap index 0b6c156..320809d 100644 --- a/test_data/saytext2.json +++ b/tests/snapshots/tests__saytext2.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -1672,5 +1676,6 @@ } ], "startTick": 173463, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/small_game_state.json b/tests/snapshots/tests__small.dem.snap similarity index 94% rename from test_data/small_game_state.json rename to tests/snapshots/tests__small.dem.snap index 2f32891..cab4178 100644 --- a/test_data/small_game_state.json +++ b/tests/snapshots/tests__small.dem.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "players": [ { @@ -42,4 +46,4 @@ }, "kills": [], "tick": 115 -} \ No newline at end of file +} diff --git a/test_data/small.json b/tests/snapshots/tests__small.dem_minimal.snap similarity index 71% rename from test_data/small.json rename to tests/snapshots/tests__small.dem_minimal.snap index b9e3b36..0c86d11 100644 --- a/test_data/small.json +++ b/tests/snapshots/tests__small.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [], "users": { @@ -12,5 +16,6 @@ "deaths": [], "rounds": [], "startTick": 68, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/test_data/unicode-saytext.json b/tests/snapshots/tests__unicode-saytext.dem_minimal.snap similarity index 99% rename from test_data/unicode-saytext.json rename to tests/snapshots/tests__unicode-saytext.dem_minimal.snap index a913561..5dd702b 100644 --- a/test_data/unicode-saytext.json +++ b/tests/snapshots/tests__unicode-saytext.dem_minimal.snap @@ -1,3 +1,7 @@ +--- +source: tests/tests.rs +expression: state +--- { "chat": [ { @@ -1608,5 +1612,6 @@ } ], "startTick": 24964, - "intervalPerTick": 0.015 -} \ No newline at end of file + "intervalPerTick": 0.015, + "pauses": [] +} diff --git a/tests/tests.rs b/tests/tests.rs index 527cdaf..40c180e 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -1,63 +1,38 @@ use std::fs; use test_case::test_case; -use tf_demo_parser::demo::parser::gamestateanalyser::{GameState, GameStateAnalyser}; -use tf_demo_parser::{Demo, DemoParser, MatchState}; +use tf_demo_parser::demo::parser::gamestateanalyser::GameStateAnalyser; +use tf_demo_parser::{Demo, DemoParser}; -#[test_case("small.dem", "small.json"; "small.dem")] -#[test_case("gully.dem", "gully.json"; "gully.dem")] -#[test_case("comp.dem", "comp.json"; "comp.dem")] -#[test_case("malformed_cvar.dem", "malformed_cvar.json"; "malformed_cvar.dem")] -#[test_case("unicode-saytext.dem", "unicode-saytext.json"; "unicode-saytext.dem")] -#[test_case("nousers.dem", "nousers.json"; "nousers.dem")] -#[test_case("decal.dem", "decal.json"; "decal.dem")] -#[test_case("saytext2.dem", "saytext2.json"; "saytext2.dem")] -#[test_case("emptysaytext.dem", "emptysaytext.json"; "emptysaytext.dem")] -#[test_case("protocol23.dem", "protocol23.json"; "protocol23.dem")] -fn snapshot_test(input_file: &str, snapshot_file: &str) { +#[test_case("small.dem")] +#[test_case("gully.dem")] +#[test_case("comp.dem")] +#[test_case("malformed_cvar.dem")] +#[test_case("unicode-saytext.dem")] +#[test_case("nousers.dem")] +#[test_case("decal.dem")] +#[test_case("saytext2.dem")] +#[test_case("emptysaytext.dem")] +#[test_case("protocol23.dem")] +fn snapshot_test(input_file: &str) { let file = fs::read(format!("test_data/{}", input_file)).expect("Unable to read file"); let demo = Demo::new(&file); let (_, state) = DemoParser::new(demo.get_stream()).parse().unwrap(); - // - // fs::write( - // format!("test_data/{}", snapshot_file), - // serde_json::to_string_pretty(&state).unwrap(), - // ) - // .unwrap(); - let expected: MatchState = serde_json::from_slice( - fs::read(format!("test_data/{}", snapshot_file)) - .expect("Unable to read file") - .as_slice(), - ) - .unwrap(); - pretty_assertions::assert_eq!(expected, state); + insta::assert_json_snapshot!(format!("{input_file}_minimal"), state); let (_, state) = DemoParser::new_all(demo.get_stream()).parse().unwrap(); - pretty_assertions::assert_eq!(expected, state); + insta::assert_json_snapshot!(format!("{input_file}_minimal"), state); } -#[test_case("small.dem", "small_game_state.json"; "small.dem")] -#[test_case("gully.dem", "gully_game_state.json"; "gully.dem")] -fn game_state_test(input_file: &str, snapshot_file: &str) { +#[test_case("small.dem")] +#[test_case("gully.dem")] +fn game_state_test(input_file: &str) { let file = fs::read(format!("test_data/{}", input_file)).expect("Unable to read file"); let demo = Demo::new(&file); let (_, state) = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::new()) .parse() .unwrap(); - // fs::write( - // format!("test_data/{}", snapshot_file), - // serde_json::to_string_pretty(&state).unwrap(), - // ) - // .unwrap(); - - let expected: GameState = serde_json::from_slice( - fs::read(format!("test_data/{}", snapshot_file)) - .expect("Unable to read file") - .as_slice(), - ) - .unwrap(); - pretty_assertions::assert_eq!(expected.players, state.players); - pretty_assertions::assert_eq!(expected, state); + insta::assert_json_snapshot!(input_file, state); } From e8e76e90469e5719f765a2d8c882b2af320bfab4 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 22 Dec 2023 16:21:37 +0100 Subject: [PATCH 06/45] 0.5.0 --- Cargo.lock | 2 +- Cargo.toml | 2 +- flake.nix | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 59cb66d..393ecc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1128,7 +1128,7 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "tf-demo-parser" -version = "0.4.0" +version = "0.5.0" dependencies = [ "better-panic", "bitbuffer", diff --git a/Cargo.toml b/Cargo.toml index 2a9de5f..5c46c01 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tf-demo-parser" description = "parser for tf2 demo files" -version = "0.4.0" +version = "0.5.0" authors = ["Robin Appelman "] edition = "2021" license = "MIT OR Apache-2.0" diff --git a/flake.nix b/flake.nix index cbcf519..b417bd0 100644 --- a/flake.nix +++ b/flake.nix @@ -93,7 +93,7 @@ }; devShells.default = pkgs.mkShell { - nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind cargo-insta]; + nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind cargo-insta cargo-semver-checks]; }; }); } From ecc268b40a5adedc5048bc10732b9bd9f782d7f8 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 23 Dec 2023 15:26:31 +0100 Subject: [PATCH 07/45] update deps --- Cargo.lock | 529 +++++++++++++++++++++++++++-------------------------- 1 file changed, 272 insertions(+), 257 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 393ecc0..78a5f24 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -38,7 +38,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi 0.1.19", + "hermit-abi", "libc", "winapi", ] @@ -51,9 +51,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -83,7 +83,7 @@ dependencies = [ "bitbuffer_derive", "err-derive", "memchr", - "num-traits 0.2.15", + "num-traits 0.2.17", "schemars", "serde", ] @@ -96,7 +96,7 @@ checksum = "052a5a614540ae9bb7de25c2c86a94b6de7374cb7e3230f3128955bdaea62c3f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "syn_util", ] @@ -108,9 +108,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "cast" @@ -120,9 +120,12 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.78" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -132,9 +135,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "ciborium" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" dependencies = [ "ciborium-io", "ciborium-ll", @@ -143,15 +146,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" [[package]] name = "ciborium-ll" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" dependencies = [ "ciborium-io", "half", @@ -159,13 +162,13 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.23" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "bitflags", "clap_lex", - "indexmap", + "indexmap 1.9.3", "textwrap", ] @@ -180,9 +183,9 @@ dependencies = [ [[package]] name = "console" -version = "0.15.4" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b6515d269224923b26b5febea2ed42b2d5f2ce37284a4dd670fedd6cb8347a" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" dependencies = [ "encode_unicode", "lazy_static", @@ -204,7 +207,7 @@ dependencies = [ "criterion-plot", "itertools", "lazy_static", - "num-traits 0.2.15", + "num-traits 0.2.17", "oorandom", "plotters", "rayon", @@ -226,16 +229,6 @@ dependencies = [ "itertools", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.4" @@ -268,16 +261,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.107", -] - [[package]] name = "diff" version = "0.1.13" @@ -286,15 +269,15 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "dyn-clone" -version = "1.0.10" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" [[package]] name = "either" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encode_unicode" @@ -313,9 +296,9 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.5" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" +checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" dependencies = [ "enumflags2_derive", "serde", @@ -323,15 +306,21 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.4" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" +checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "err-derive" version = "0.3.1" @@ -342,7 +331,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 1.0.107", + "syn 1.0.109", "synstructure", ] @@ -352,17 +341,11 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "fs_extra" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - [[package]] name = "gimli" -version = "0.27.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "half" @@ -377,19 +360,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "hashbrown" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -402,12 +382,22 @@ checksum = "71a816c97c42258aa5834d07590b718b4c9a598944cd39a52dc25b351185d678" [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", ] [[package]] @@ -435,26 +425,25 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jemalloc-sys" -version = "0.5.2+5.3.0-patched" +version = "0.5.4+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134163979b6eed9564c98637b710b40979939ba351f59952708234ea11b5f3f8" +checksum = "ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2" dependencies = [ "cc", - "fs_extra", "libc", ] [[package]] name = "jemallocator" -version = "0.5.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c2514137880c52b0b4822b563fadd38257c1f380858addb74a400889696ea6" +checksum = "a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc" dependencies = [ "jemalloc-sys", "libc", @@ -462,9 +451,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -505,7 +494,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -525,22 +514,22 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] [[package]] name = "no-panic" -version = "0.1.17" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "288807bc867d10bf77d74614d8287230394b3afc49c2716f09d1ff11bb6a3741" +checksum = "bf98081e1af7145ec0f77baf9ec845903ccb6ae4a8b1e881265d5487f37f90a2" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] @@ -564,7 +553,7 @@ dependencies = [ "num-integer", "num-iter", "num-rational", - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] @@ -575,7 +564,7 @@ checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] @@ -584,7 +573,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" dependencies = [ - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] @@ -594,7 +583,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] @@ -605,7 +594,7 @@ checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] @@ -617,7 +606,7 @@ dependencies = [ "autocfg", "num-bigint", "num-integer", - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] @@ -626,63 +615,53 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.15", + "num-traits 0.2.17", ] [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - [[package]] name = "num_enum" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "object" -version = "0.30.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d864c91689fdc196779b98dba0aceac6118594c2df6ee5d943eb6a8df4d107a" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "oorandom" @@ -692,18 +671,9 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "os_str_bytes" -version = "6.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" - -[[package]] -name = "output_vt100" -version = "0.1.3" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" -dependencies = [ - "winapi", -] +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" [[package]] name = "overload" @@ -713,9 +683,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parse-display" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f96cc033d72896bb9a2c239a14e1141c3e2eae6d649e7c10ef4e598d66bc86c" +checksum = "c6509d08722b53e8dafe97f2027b22ccbe3a5db83cb352931e9716b0aa44bc5c" dependencies = [ "once_cell", "parse-display-derive", @@ -724,32 +694,32 @@ dependencies = [ [[package]] name = "parse-display-derive" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5587062be441f3d868f7c4c9d13c67f286b03aa679d7f8176ef80bf2ee79e5d" +checksum = "68517892c8daf78da08c0db777fcc17e07f2f63ef70041718f8a7630ad84f341" dependencies = [ "once_cell", "proc-macro2", "quote", "regex", - "regex-syntax", + "regex-syntax 0.7.5", "structmeta", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "plotters" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ - "num-traits 0.2.15", + "num-traits 0.2.17", "plotters-backend", "plotters-svg", "wasm-bindgen", @@ -758,40 +728,37 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] [[package]] name = "pretty_assertions" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ - "ctor", "diff", - "output_vt100", "yansi", ] [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "thiserror", - "toml", + "toml_edit", ] [[package]] @@ -803,7 +770,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "version_check", ] @@ -838,9 +805,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -848,25 +815,24 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] name = "regex" -version = "1.7.0" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -875,32 +841,55 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", ] [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "same-file" @@ -913,9 +902,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.11" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "schemars_derive", @@ -925,14 +914,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.11" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -963,14 +952,14 @@ checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -979,20 +968,20 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.10" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -1005,15 +994,15 @@ checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" [[package]] name = "smallvec" -version = "1.10.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "snap" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "steamid-ng" @@ -1032,32 +1021,32 @@ dependencies = [ [[package]] name = "structmeta" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd9c2155aa89fb2c2cb87d99a610c689e7c47099b3e9f1c8a8f53faf4e3d2e3" +checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d" dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] name = "structmeta-derive" -version = "0.1.5" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafede0d0a2f21910f36d47b1558caae3076ed80f6f3ad0fc85a91e6ba7e5938" +checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -1083,7 +1072,7 @@ checksum = "6754c4559b79657554e9d8a0d56e65e490c76d382b9c23108364ec4125dea23c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -1094,7 +1083,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "unicode-xid", ] @@ -1117,7 +1106,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -1142,7 +1131,7 @@ dependencies = [ "jemallocator", "main_error", "no-panic", - "num-traits 0.2.15", + "num-traits 0.2.17", "num_enum", "parse-display", "pretty_assertions", @@ -1159,30 +1148,31 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] @@ -1197,21 +1187,28 @@ dependencies = [ ] [[package]] -name = "toml" -version = "0.5.10" +name = "toml_datetime" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "serde", + "indexmap 2.1.0", + "toml_datetime", + "winnow", ] [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1219,20 +1216,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -1240,20 +1237,20 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -1269,9 +1266,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-xid" @@ -1303,9 +1300,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1313,24 +1310,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1338,28 +1335,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.42", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -1383,9 +1380,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -1398,9 +1395,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -1413,45 +1419,54 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "winnow" +version = "0.5.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +dependencies = [ + "memchr", +] [[package]] name = "yaml-rust" From 3df547111c6f147a99ebfaa172dd22428bd123e3 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 23 Dec 2023 17:25:25 +0100 Subject: [PATCH 08/45] flake updates --- flake.lock | 45 +++++++++++----------- flake.nix | 107 ++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 100 insertions(+), 52 deletions(-) diff --git a/flake.lock b/flake.lock index 581cf41..5dbaf26 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ ] }, "locked": { - "lastModified": 1687811683, - "narHash": "sha256-j0+0y2CBlwrbVkVEZajjAy9gdzHRNCq8hQTRe+QXTAQ=", + "lastModified": 1689107909, + "narHash": "sha256-fb+zxf7AWesECHx1foXOM3NcKHLrdeXzGb6s2AhT6pE=", "owner": "icewind1991", "repo": "cross-naersk", - "rev": "5e987fcf0521602914773016b173403d0fa873f9", + "rev": "51de54599de569e6faa2ee33dd659c5c028d9911", "type": "github" }, "original": { @@ -28,11 +28,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -46,26 +46,25 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1686242667, - "narHash": "sha256-I7Kwp06WX/9E+rEND1i1wjdKQQm3XiDxYOyNK9fuJu0=", - "owner": "icewind1991", + "lastModified": 1698420672, + "narHash": "sha256-/TdeHMPRjjdJub7p7+w55vyABrsJlt5QkznPYy55vKA=", + "owner": "nix-community", "repo": "naersk", - "rev": "6d245a3bbb2ee31ec726bb57b9a8b206302e7110", + "rev": "aeb58d5e8faead8980a807c840232697982d47b9", "type": "github" }, "original": { - "owner": "icewind1991", + "owner": "nix-community", "repo": "naersk", - "rev": "6d245a3bbb2ee31ec726bb57b9a8b206302e7110", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1685620773, - "narHash": "sha256-iQ+LmporQNdLz8uMJdP62TaAWeLUwl43/MYUBtWqulM=", - "path": "/nix/store/ipbqg8zvymxjlw96pl2mvgpigzc3wm7p-source", - "rev": "f0ba8235153dd2e25cf06cbf70d43efdd4443592", + "lastModified": 1702645756, + "narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=", + "path": "/nix/store/7ix7lj4h8q5jl740bkwvpi611safrq0v-source", + "rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0", "type": "path" }, "original": { @@ -75,16 +74,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1685789966, - "narHash": "sha256-pyqctu5Cq1jwymO3Os0/RNj5Nm3q5kmRCT24p7gtG70=", + "lastModified": 1703345962, + "narHash": "sha256-hfdT9SYVQD5C99+R8WK3IAe4i7hnE0t/LVpZdkva7w0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4eaa9e3eb36386de0c6a268ba5da72cafc959619", + "rev": "22c37d3a97260e831dc3295fafac83178d52565e", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "release-23.05", + "ref": "release-23.11", "type": "indirect" } }, @@ -107,11 +106,11 @@ ] }, "locked": { - "lastModified": 1685759304, - "narHash": "sha256-I3YBH6MS3G5kGzNuc1G0f9uYfTcNY9NYoRc3QsykLk4=", + "lastModified": 1703297543, + "narHash": "sha256-d4QlzcoSNzb/iZheWtjOyRxoBSaLETSpViENGEkxv9g=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c535b4f3327910c96dcf21851bbdd074d0760290", + "rev": "fc77c8b416b1537522d30c710baaaaebf769f816", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b417bd0..06fd149 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,8 @@ { inputs = { - nixpkgs.url = "nixpkgs/release-23.05"; + nixpkgs.url = "nixpkgs/release-23.11"; flake-utils.url = "github:numtide/flake-utils"; - naersk.url = "github:icewind1991/naersk?rev=6d245a3bbb2ee31ec726bb57b9a8b206302e7110"; + naersk.url = "github:nix-community/naersk"; rust-overlay.url = "github:oxalica/rust-overlay"; rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; rust-overlay.inputs.flake-utils.follows = "flake-utils"; @@ -19,9 +19,11 @@ nixpkgs, rust-overlay, ... - }: - flake-utils.lib.eachDefaultSystem (system: let - overlays = [ (import rust-overlay) ]; + }: let + inherit (flake-utils.lib) eachDefaultSystem eachSystem; + in + (eachDefaultSystem (system: let + overlays = [(import rust-overlay)]; pkgs = (import nixpkgs) { inherit system overlays; }; @@ -50,34 +52,60 @@ }; buildMatrix = targets: { - include = builtins.map (target: { - inherit target; - artifact_name = artifactForTarget target; - asset_name = assetNameForTarget target; - }) targets; + include = + builtins.map (target: { + inherit target; + artifact_name = artifactForTarget target; + asset_name = assetNameForTarget target; + }) + targets; }; hostNaersk = cross-naersk'.hostNaersk; - in rec { - packages = lib.attrsets.genAttrs targets (target: (cross-naersk'.buildPackage target) (nearskOpt // { - overrideMain = args: args // { - preConfigure = '' - cargo_build_options="$cargo_build_options --bin parse_demo" - ''; + + mkHydraJobs = system: { + parser = derivation { + name = "parser"; + builder = "mybuilder"; + inherit system; + }; + nested = { + attribute = derivation { + name = "nested-attribute"; + builder = "mybuilder"; + inherit system; + }; }; - })) // rec { - tf-demo-parser = packages.${hostTarget}; - check = hostNaersk.buildPackage (nearskOpt // { - mode = "check"; - }); - clippy = hostNaersk.buildPackage (nearskOpt // { - mode = "clippy"; - }); - test = hostNaersk.buildPackage (nearskOpt // { - release = false; - mode = "test"; - }); - default = tf-demo-parser; }; + in rec { + packages = + lib.attrsets.genAttrs targets (target: + (cross-naersk'.buildPackage target) (nearskOpt + // { + overrideMain = args: + args + // { + preConfigure = '' + cargo_build_options="$cargo_build_options --bin parse_demo" + ''; + }; + })) + // rec { + tf-demo-parser = packages.${hostTarget}; + check = hostNaersk.buildPackage (nearskOpt + // { + mode = "check"; + }); + clippy = hostNaersk.buildPackage (nearskOpt + // { + mode = "clippy"; + }); + test = hostNaersk.buildPackage (nearskOpt + // { + release = false; + mode = "test"; + }); + default = tf-demo-parser; + }; inherit targets; inherit releaseTargets; @@ -92,8 +120,29 @@ default = tf-demo-parser; }; + checks = { + fmt-check = pkgs.stdenvNoCC.mkDerivation { + name = "fmt-check"; + src = ./.; + doCheck = true; + dontBuild = true; + nativeBuildInputs = with pkgs; [alejandra shellcheck shfmt]; + checkPhase = '' + alejandra -c . + ''; + installPhase = '' + mkdir $out + ''; + }; + }; + devShells.default = pkgs.mkShell { nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind cargo-insta cargo-semver-checks]; }; + }) + // { + hydraJobs = eachSystem ["x86_64-linux" "aarch64-linux"] (system: { + parser = self.packages.${system}.tf-demo-parser; + }); }); } From cf4caa069dd2566f380e27e9ca4034abaa4d3cfe Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 24 Dec 2023 20:40:44 +0100 Subject: [PATCH 09/45] clippy fix --- src/demo/gamevent.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/demo/gamevent.rs b/src/demo/gamevent.rs index a4cbdf4..2cca1ae 100644 --- a/src/demo/gamevent.rs +++ b/src/demo/gamevent.rs @@ -25,7 +25,7 @@ impl Eq for GameEventDefinition {} impl PartialOrd for GameEventDefinition { fn partial_cmp(&self, other: &Self) -> Option { - self.id.partial_cmp(&other.id) + Some(self.id.cmp(&other.id)) } } From 7ed264cae43e405b02e0c1d895b54bc20702b5da Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 4 Jan 2024 17:13:13 +0100 Subject: [PATCH 10/45] fmt + cargo update --- Cargo.lock | 96 +- src/demo/data/mod.rs | 2 +- src/demo/gameevent_gen.rs | 5274 +++++++++++++------------- src/demo/parser/gamestateanalyser.rs | 4 +- src/demo/sendprop_gen.rs | 952 ++--- src/demo/vector.rs | 2 +- 6 files changed, 2850 insertions(+), 3480 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 78a5f24..514aa75 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -242,21 +242,20 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.16" +version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset", ] [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -312,7 +311,7 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -499,18 +498,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "miniz_oxide" @@ -523,13 +513,13 @@ dependencies = [ [[package]] name = "no-panic" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf98081e1af7145ec0f77baf9ec845903ccb6ae4a8b1e881265d5487f37f90a2" +checksum = "fc56831a2ae584dc43a8b0b33f496e71fb4d43cf8c1c0a3fd932e6340bea1f81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -650,9 +640,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -704,7 +694,7 @@ dependencies = [ "regex", "regex-syntax 0.7.5", "structmeta", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -787,18 +777,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -926,22 +916,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -957,9 +947,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" dependencies = [ "itoa", "ryu", @@ -968,13 +958,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -988,9 +978,9 @@ dependencies = [ [[package]] name = "similar" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597" +checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" [[package]] name = "smallvec" @@ -1028,7 +1018,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -1039,7 +1029,7 @@ checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -1055,9 +1045,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.42" +version = "2.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" +checksum = "1726efe18f42ae774cc644f330953a5e7b3c3003d3edcecf18850fe9d4dd9afb" dependencies = [ "proc-macro2", "quote", @@ -1148,22 +1138,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -1222,7 +1212,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", ] [[package]] @@ -1319,7 +1309,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", "wasm-bindgen-shared", ] @@ -1341,7 +1331,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.47", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1461,9 +1451,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "winnow" -version = "0.5.30" +version = "0.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5" +checksum = "8434aeec7b290e8da5c3f0d628cb0eac6cabcb31d14bb74f779a08109a5914d6" dependencies = [ "memchr", ] diff --git a/src/demo/data/mod.rs b/src/demo/data/mod.rs index d2d2372..35a31f4 100644 --- a/src/demo/data/mod.rs +++ b/src/demo/data/mod.rs @@ -1,11 +1,11 @@ pub mod userinfo; use bitbuffer::{BitRead, BitReadStream, BitWrite, BitWriteStream, Endianness}; +use parse_display::Display; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::cmp::Ordering; use std::fmt::{Debug, Display, Formatter}; use std::ops::{Add, Sub}; -use parse_display::Display; pub use userinfo::UserInfo; diff --git a/src/demo/gameevent_gen.rs b/src/demo/gameevent_gen.rs index 2798161..5785254 100644 --- a/src/demo/gameevent_gen.rs +++ b/src/demo/gameevent_gen.rs @@ -1,9 +1,9 @@ use super::gamevent::{EventValue, GameEventDefinition, GameEventEntry, RawGameEvent}; +use crate::demo::data::MaybeUtf8String; use crate::demo::Stream; use crate::{ParseError, Result}; -use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; +use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian}; use serde::{Deserialize, Serialize}; -use crate::demo::data::MaybeUtf8String; fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>( stream: &mut Stream<'a>, entry: Option<&GameEventEntry>, @@ -132,9 +132,7 @@ impl ServerAddBanEvent { Ok(ServerAddBanEvent { name: read_value::(stream, iter.next(), "name")?, user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "network_id")?, + network_id: read_value::(stream, iter.next(), "network_id")?, ip: read_value::(stream, iter.next(), "ip")?, duration: read_value::(stream, iter.next(), "duration")?, by: read_value::(stream, iter.next(), "by")?, @@ -154,9 +152,7 @@ impl ServerRemoveBanEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(ServerRemoveBanEvent { - network_id: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "network_id")?, + network_id: read_value::(stream, iter.next(), "network_id")?, ip: read_value::(stream, iter.next(), "ip")?, by: read_value::(stream, iter.next(), "by")?, }) @@ -180,9 +176,7 @@ impl PlayerConnectEvent { name: read_value::(stream, iter.next(), "name")?, index: read_value::(stream, iter.next(), "index")?, user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "network_id")?, + network_id: read_value::(stream, iter.next(), "network_id")?, address: read_value::(stream, iter.next(), "address")?, bot: read_value::(stream, iter.next(), "bot")?, }) @@ -205,9 +199,7 @@ impl PlayerConnectClientEvent { name: read_value::(stream, iter.next(), "name")?, index: read_value::(stream, iter.next(), "index")?, user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "network_id")?, + network_id: read_value::(stream, iter.next(), "network_id")?, bot: read_value::(stream, iter.next(), "bot")?, }) } @@ -229,9 +221,7 @@ impl PlayerInfoEvent { name: read_value::(stream, iter.next(), "name")?, index: read_value::(stream, iter.next(), "index")?, user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "network_id")?, + network_id: read_value::(stream, iter.next(), "network_id")?, bot: read_value::(stream, iter.next(), "bot")?, }) } @@ -253,9 +243,7 @@ impl PlayerDisconnectEvent { user_id: read_value::(stream, iter.next(), "user_id")?, reason: read_value::(stream, iter.next(), "reason")?, name: read_value::(stream, iter.next(), "name")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "network_id")?, + network_id: read_value::(stream, iter.next(), "network_id")?, bot: read_value::(stream, iter.next(), "bot")?, }) } @@ -497,54 +485,42 @@ impl PlayerDeathEvent { let mut iter = definition.entries.iter(); Ok(PlayerDeathEvent { user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >(stream, iter.next(), "inflictor_ent_index")?, + victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, attacker: read_value::(stream, iter.next(), "attacker")?, weapon: read_value::(stream, iter.next(), "weapon")?, weapon_id: read_value::(stream, iter.next(), "weapon_id")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, custom_kill: read_value::(stream, iter.next(), "custom_kill")?, assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "weapon_log_class_name")?, + weapon_log_class_name: read_value::( + stream, + iter.next(), + "weapon_log_class_name", + )?, stun_flags: read_value::(stream, iter.next(), "stun_flags")?, death_flags: read_value::(stream, iter.next(), "death_flags")?, silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - player_penetrate_count: read_value::< - u16, - >(stream, iter.next(), "player_penetrate_count")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "assister_fallback")?, - kill_streak_total: read_value::< - u16, - >(stream, iter.next(), "kill_streak_total")?, + player_penetrate_count: read_value::( + stream, + iter.next(), + "player_penetrate_count", + )?, + assister_fallback: read_value::( + stream, + iter.next(), + "assister_fallback", + )?, + kill_streak_total: read_value::(stream, iter.next(), "kill_streak_total")?, kill_streak_wep: read_value::(stream, iter.next(), "kill_streak_wep")?, - kill_streak_assist: read_value::< - u16, - >(stream, iter.next(), "kill_streak_assist")?, - kill_streak_victim: read_value::< - u16, - >(stream, iter.next(), "kill_streak_victim")?, + kill_streak_assist: read_value::(stream, iter.next(), "kill_streak_assist")?, + kill_streak_victim: read_value::(stream, iter.next(), "kill_streak_victim")?, ducks_streaked: read_value::(stream, iter.next(), "ducks_streaked")?, - duck_streak_total: read_value::< - u16, - >(stream, iter.next(), "duck_streak_total")?, - duck_streak_assist: read_value::< - u16, - >(stream, iter.next(), "duck_streak_assist")?, - duck_streak_victim: read_value::< - u16, - >(stream, iter.next(), "duck_streak_victim")?, + duck_streak_total: read_value::(stream, iter.next(), "duck_streak_total")?, + duck_streak_assist: read_value::(stream, iter.next(), "duck_streak_assist")?, + duck_streak_victim: read_value::(stream, iter.next(), "duck_streak_victim")?, rocket_jump: read_value::(stream, iter.next(), "rocket_jump")?, - weapon_def_index: read_value::< - u32, - >(stream, iter.next(), "weapon_def_index")?, + weapon_def_index: read_value::(stream, iter.next(), "weapon_def_index")?, crit_type: read_value::(stream, iter.next(), "crit_type")?, }) } @@ -574,9 +550,7 @@ impl PlayerHurtEvent { attacker: read_value::(stream, iter.next(), "attacker")?, damage_amount: read_value::(stream, iter.next(), "damage_amount")?, custom: read_value::(stream, iter.next(), "custom")?, - show_disguised_crit: read_value::< - bool, - >(stream, iter.next(), "show_disguised_crit")?, + show_disguised_crit: read_value::(stream, iter.next(), "show_disguised_crit")?, crit: read_value::(stream, iter.next(), "crit")?, mini_crit: read_value::(stream, iter.next(), "mini_crit")?, all_see_crit: read_value::(stream, iter.next(), "all_see_crit")?, @@ -703,9 +677,7 @@ impl PlayerHintMessageEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(PlayerHintMessageEvent { - hint_message: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "hint_message")?, + hint_message: read_value::(stream, iter.next(), "hint_message")?, }) } } @@ -879,15 +851,9 @@ impl EntityKilledEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(EntityKilledEvent { - ent_index_killed: read_value::< - u32, - >(stream, iter.next(), "ent_index_killed")?, - ent_index_attacker: read_value::< - u32, - >(stream, iter.next(), "ent_index_attacker")?, - ent_index_inflictor: read_value::< - u32, - >(stream, iter.next(), "ent_index_inflictor")?, + ent_index_killed: read_value::(stream, iter.next(), "ent_index_killed")?, + ent_index_attacker: read_value::(stream, iter.next(), "ent_index_attacker")?, + ent_index_inflictor: read_value::(stream, iter.next(), "ent_index_inflictor")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, }) } @@ -924,9 +890,11 @@ impl AchievementEventEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(AchievementEventEvent { - achievement_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "achievement_name")?, + achievement_name: read_value::( + stream, + iter.next(), + "achievement_name", + )?, cur_val: read_value::(stream, iter.next(), "cur_val")?, max_val: read_value::(stream, iter.next(), "max_val")?, }) @@ -1365,9 +1333,7 @@ impl CtfFlagCapturedEvent { let mut iter = definition.entries.iter(); Ok(CtfFlagCapturedEvent { capping_team: read_value::(stream, iter.next(), "capping_team")?, - capping_team_score: read_value::< - u16, - >(stream, iter.next(), "capping_team_score")?, + capping_team_score: read_value::(stream, iter.next(), "capping_team_score")?, }) } } @@ -1645,9 +1611,7 @@ impl TeamPlayRoundWinEvent { flag_cap_limit: read_value::(stream, iter.next(), "flag_cap_limit")?, full_round: read_value::(stream, iter.next(), "full_round")?, round_time: read_value::(stream, iter.next(), "round_time")?, - losing_team_num_caps: read_value::< - u16, - >(stream, iter.next(), "losing_team_num_caps")?, + losing_team_num_caps: read_value::(stream, iter.next(), "losing_team_num_caps")?, was_sudden_death: read_value::(stream, iter.next(), "was_sudden_death")?, }) } @@ -1948,21 +1912,19 @@ impl TeamPlayWinPanelEvent { blue_score_prev: read_value::(stream, iter.next(), "blue_score_prev")?, red_score_prev: read_value::(stream, iter.next(), "red_score_prev")?, round_complete: read_value::(stream, iter.next(), "round_complete")?, - rounds_remaining: read_value::< - u16, - >(stream, iter.next(), "rounds_remaining")?, + rounds_remaining: read_value::(stream, iter.next(), "rounds_remaining")?, player_1: read_value::(stream, iter.next(), "player_1")?, player_1_points: read_value::(stream, iter.next(), "player_1_points")?, player_2: read_value::(stream, iter.next(), "player_2")?, player_2_points: read_value::(stream, iter.next(), "player_2_points")?, player_3: read_value::(stream, iter.next(), "player_3")?, player_3_points: read_value::(stream, iter.next(), "player_3_points")?, - kill_stream_player_1: read_value::< - u16, - >(stream, iter.next(), "kill_stream_player_1")?, - kill_stream_player_1_count: read_value::< - u16, - >(stream, iter.next(), "kill_stream_player_1_count")?, + kill_stream_player_1: read_value::(stream, iter.next(), "kill_stream_player_1")?, + kill_stream_player_1_count: read_value::( + stream, + iter.next(), + "kill_stream_player_1_count", + )?, game_over: read_value::(stream, iter.next(), "game_over")?, }) } @@ -2488,9 +2450,7 @@ impl PlayerExtinguishedEvent { Ok(PlayerExtinguishedEvent { victim: read_value::(stream, iter.next(), "victim")?, healer: read_value::(stream, iter.next(), "healer")?, - item_definition_index: read_value::< - u16, - >(stream, iter.next(), "item_definition_index")?, + item_definition_index: read_value::(stream, iter.next(), "item_definition_index")?, }) } } @@ -2826,57 +2786,33 @@ impl ArenaWinPanelEvent { round_complete: read_value::(stream, iter.next(), "round_complete")?, player_1: read_value::(stream, iter.next(), "player_1")?, player_1_damage: read_value::(stream, iter.next(), "player_1_damage")?, - player_1_healing: read_value::< - u16, - >(stream, iter.next(), "player_1_healing")?, - player_1_lifetime: read_value::< - u16, - >(stream, iter.next(), "player_1_lifetime")?, + player_1_healing: read_value::(stream, iter.next(), "player_1_healing")?, + player_1_lifetime: read_value::(stream, iter.next(), "player_1_lifetime")?, player_1_kills: read_value::(stream, iter.next(), "player_1_kills")?, player_2: read_value::(stream, iter.next(), "player_2")?, player_2_damage: read_value::(stream, iter.next(), "player_2_damage")?, - player_2_healing: read_value::< - u16, - >(stream, iter.next(), "player_2_healing")?, - player_2_lifetime: read_value::< - u16, - >(stream, iter.next(), "player_2_lifetime")?, + player_2_healing: read_value::(stream, iter.next(), "player_2_healing")?, + player_2_lifetime: read_value::(stream, iter.next(), "player_2_lifetime")?, player_2_kills: read_value::(stream, iter.next(), "player_2_kills")?, player_3: read_value::(stream, iter.next(), "player_3")?, player_3_damage: read_value::(stream, iter.next(), "player_3_damage")?, - player_3_healing: read_value::< - u16, - >(stream, iter.next(), "player_3_healing")?, - player_3_lifetime: read_value::< - u16, - >(stream, iter.next(), "player_3_lifetime")?, + player_3_healing: read_value::(stream, iter.next(), "player_3_healing")?, + player_3_lifetime: read_value::(stream, iter.next(), "player_3_lifetime")?, player_3_kills: read_value::(stream, iter.next(), "player_3_kills")?, player_4: read_value::(stream, iter.next(), "player_4")?, player_4_damage: read_value::(stream, iter.next(), "player_4_damage")?, - player_4_healing: read_value::< - u16, - >(stream, iter.next(), "player_4_healing")?, - player_4_lifetime: read_value::< - u16, - >(stream, iter.next(), "player_4_lifetime")?, + player_4_healing: read_value::(stream, iter.next(), "player_4_healing")?, + player_4_lifetime: read_value::(stream, iter.next(), "player_4_lifetime")?, player_4_kills: read_value::(stream, iter.next(), "player_4_kills")?, player_5: read_value::(stream, iter.next(), "player_5")?, player_5_damage: read_value::(stream, iter.next(), "player_5_damage")?, - player_5_healing: read_value::< - u16, - >(stream, iter.next(), "player_5_healing")?, - player_5_lifetime: read_value::< - u16, - >(stream, iter.next(), "player_5_lifetime")?, + player_5_healing: read_value::(stream, iter.next(), "player_5_healing")?, + player_5_lifetime: read_value::(stream, iter.next(), "player_5_lifetime")?, player_5_kills: read_value::(stream, iter.next(), "player_5_kills")?, player_6: read_value::(stream, iter.next(), "player_6")?, player_6_damage: read_value::(stream, iter.next(), "player_6_damage")?, - player_6_healing: read_value::< - u16, - >(stream, iter.next(), "player_6_healing")?, - player_6_lifetime: read_value::< - u16, - >(stream, iter.next(), "player_6_lifetime")?, + player_6_healing: read_value::(stream, iter.next(), "player_6_healing")?, + player_6_lifetime: read_value::(stream, iter.next(), "player_6_lifetime")?, player_6_kills: read_value::(stream, iter.next(), "player_6_kills")?, }) } @@ -3019,9 +2955,7 @@ impl ArrowImpactEvent { Ok(ArrowImpactEvent { attached_entity: read_value::(stream, iter.next(), "attached_entity")?, shooter: read_value::(stream, iter.next(), "shooter")?, - bone_index_attached: read_value::< - u16, - >(stream, iter.next(), "bone_index_attached")?, + bone_index_attached: read_value::(stream, iter.next(), "bone_index_attached")?, bone_position_x: read_value::(stream, iter.next(), "bone_position_x")?, bone_position_y: read_value::(stream, iter.next(), "bone_position_y")?, bone_position_z: read_value::(stream, iter.next(), "bone_position_z")?, @@ -3044,9 +2978,7 @@ impl PlayerJaratedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(PlayerJaratedEvent { - thrower_ent_index: read_value::< - u8, - >(stream, iter.next(), "thrower_ent_index")?, + thrower_ent_index: read_value::(stream, iter.next(), "thrower_ent_index")?, victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, }) } @@ -3062,9 +2994,7 @@ impl PlayerJaratedFadeEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(PlayerJaratedFadeEvent { - thrower_ent_index: read_value::< - u8, - >(stream, iter.next(), "thrower_ent_index")?, + thrower_ent_index: read_value::(stream, iter.next(), "thrower_ent_index")?, victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, }) } @@ -3080,12 +3010,8 @@ impl PlayerShieldBlockedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(PlayerShieldBlockedEvent { - attacker_ent_index: read_value::< - u8, - >(stream, iter.next(), "attacker_ent_index")?, - blocker_ent_index: read_value::< - u8, - >(stream, iter.next(), "blocker_ent_index")?, + attacker_ent_index: read_value::(stream, iter.next(), "attacker_ent_index")?, + blocker_ent_index: read_value::(stream, iter.next(), "blocker_ent_index")?, }) } } @@ -3195,16 +3121,10 @@ impl ShowAnnotationEvent { id: read_value::(stream, iter.next(), "id")?, text: read_value::(stream, iter.next(), "text")?, lifetime: read_value::(stream, iter.next(), "lifetime")?, - visibility_bit_field: read_value::< - u32, - >(stream, iter.next(), "visibility_bit_field")?, - follow_ent_index: read_value::< - u32, - >(stream, iter.next(), "follow_ent_index")?, + visibility_bit_field: read_value::(stream, iter.next(), "visibility_bit_field")?, + follow_ent_index: read_value::(stream, iter.next(), "follow_ent_index")?, show_distance: read_value::(stream, iter.next(), "show_distance")?, - play_sound: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "play_sound")?, + play_sound: read_value::(stream, iter.next(), "play_sound")?, show_effect: read_value::(stream, iter.next(), "show_effect")?, }) } @@ -3611,8 +3531,7 @@ pub struct ScoreStatsAccumulatedUpdateEvent {} impl ScoreStatsAccumulatedUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - Ok(ScoreStatsAccumulatedUpdateEvent { - }) + Ok(ScoreStatsAccumulatedUpdateEvent {}) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] @@ -3738,27 +3657,27 @@ impl FishNoticeEvent { let mut iter = definition.entries.iter(); Ok(FishNoticeEvent { user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >(stream, iter.next(), "inflictor_ent_index")?, + victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, attacker: read_value::(stream, iter.next(), "attacker")?, weapon: read_value::(stream, iter.next(), "weapon")?, weapon_id: read_value::(stream, iter.next(), "weapon_id")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, custom_kill: read_value::(stream, iter.next(), "custom_kill")?, assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "weapon_log_class_name")?, + weapon_log_class_name: read_value::( + stream, + iter.next(), + "weapon_log_class_name", + )?, stun_flags: read_value::(stream, iter.next(), "stun_flags")?, death_flags: read_value::(stream, iter.next(), "death_flags")?, silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "assister_fallback")?, + assister_fallback: read_value::( + stream, + iter.next(), + "assister_fallback", + )?, }) } } @@ -3786,27 +3705,27 @@ impl FishNoticeArmEvent { let mut iter = definition.entries.iter(); Ok(FishNoticeArmEvent { user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >(stream, iter.next(), "inflictor_ent_index")?, + victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, attacker: read_value::(stream, iter.next(), "attacker")?, weapon: read_value::(stream, iter.next(), "weapon")?, weapon_id: read_value::(stream, iter.next(), "weapon_id")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, custom_kill: read_value::(stream, iter.next(), "custom_kill")?, assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "weapon_log_class_name")?, + weapon_log_class_name: read_value::( + stream, + iter.next(), + "weapon_log_class_name", + )?, stun_flags: read_value::(stream, iter.next(), "stun_flags")?, death_flags: read_value::(stream, iter.next(), "death_flags")?, silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "assister_fallback")?, + assister_fallback: read_value::( + stream, + iter.next(), + "assister_fallback", + )?, }) } } @@ -3834,27 +3753,27 @@ impl SlapNoticeEvent { let mut iter = definition.entries.iter(); Ok(SlapNoticeEvent { user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >(stream, iter.next(), "inflictor_ent_index")?, + victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, attacker: read_value::(stream, iter.next(), "attacker")?, weapon: read_value::(stream, iter.next(), "weapon")?, weapon_id: read_value::(stream, iter.next(), "weapon_id")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, custom_kill: read_value::(stream, iter.next(), "custom_kill")?, assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "weapon_log_class_name")?, + weapon_log_class_name: read_value::( + stream, + iter.next(), + "weapon_log_class_name", + )?, stun_flags: read_value::(stream, iter.next(), "stun_flags")?, death_flags: read_value::(stream, iter.next(), "death_flags")?, silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "assister_fallback")?, + assister_fallback: read_value::( + stream, + iter.next(), + "assister_fallback", + )?, }) } } @@ -3883,27 +3802,27 @@ impl ThrowableHitEvent { let mut iter = definition.entries.iter(); Ok(ThrowableHitEvent { user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >(stream, iter.next(), "inflictor_ent_index")?, + victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, attacker: read_value::(stream, iter.next(), "attacker")?, weapon: read_value::(stream, iter.next(), "weapon")?, weapon_id: read_value::(stream, iter.next(), "weapon_id")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, custom_kill: read_value::(stream, iter.next(), "custom_kill")?, assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "weapon_log_class_name")?, + weapon_log_class_name: read_value::( + stream, + iter.next(), + "weapon_log_class_name", + )?, stun_flags: read_value::(stream, iter.next(), "stun_flags")?, death_flags: read_value::(stream, iter.next(), "death_flags")?, silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "assister_fallback")?, + assister_fallback: read_value::( + stream, + iter.next(), + "assister_fallback", + )?, total_hits: read_value::(stream, iter.next(), "total_hits")?, }) } @@ -4155,12 +4074,8 @@ impl PlayerHighFiveSuccessEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(PlayerHighFiveSuccessEvent { - initiator_ent_index: read_value::< - u8, - >(stream, iter.next(), "initiator_ent_index")?, - partner_ent_index: read_value::< - u8, - >(stream, iter.next(), "partner_ent_index")?, + initiator_ent_index: read_value::(stream, iter.next(), "initiator_ent_index")?, + partner_ent_index: read_value::(stream, iter.next(), "partner_ent_index")?, }) } } @@ -4177,9 +4092,7 @@ impl PlayerBonusPointsEvent { let mut iter = definition.entries.iter(); Ok(PlayerBonusPointsEvent { points: read_value::(stream, iter.next(), "points")?, - player_ent_index: read_value::< - u16, - >(stream, iter.next(), "player_ent_index")?, + player_ent_index: read_value::(stream, iter.next(), "player_ent_index")?, source_ent_index: read_value::(stream, iter.next(), "source_ent_index")?, }) } @@ -4918,20 +4831,18 @@ impl RdRobotKilledEvent { let mut iter = definition.entries.iter(); Ok(RdRobotKilledEvent { user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >(stream, iter.next(), "inflictor_ent_index")?, + victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, attacker: read_value::(stream, iter.next(), "attacker")?, weapon: read_value::(stream, iter.next(), "weapon")?, weapon_id: read_value::(stream, iter.next(), "weapon_id")?, damage_bits: read_value::(stream, iter.next(), "damage_bits")?, custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >(stream, iter.next(), "weapon_log_class_name")?, + weapon_log_class_name: read_value::( + stream, + iter.next(), + "weapon_log_class_name", + )?, }) } } @@ -5208,15 +5119,9 @@ impl QuestObjectiveCompletedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { let mut iter = definition.entries.iter(); Ok(QuestObjectiveCompletedEvent { - quest_item_id_low: read_value::< - u32, - >(stream, iter.next(), "quest_item_id_low")?, - quest_item_id_hi: read_value::< - u32, - >(stream, iter.next(), "quest_item_id_hi")?, - quest_objective_id: read_value::< - u32, - >(stream, iter.next(), "quest_objective_id")?, + quest_item_id_low: read_value::(stream, iter.next(), "quest_item_id_low")?, + quest_item_id_hi: read_value::(stream, iter.next(), "quest_item_id_hi")?, + quest_objective_id: read_value::(stream, iter.next(), "quest_objective_id")?, scorer_user_id: read_value::(stream, iter.next(), "scorer_user_id")?, }) } @@ -5630,9 +5535,7 @@ impl HalloweenSoulCollectedEvent { let mut iter = definition.entries.iter(); Ok(HalloweenSoulCollectedEvent { intended_target: read_value::(stream, iter.next(), "intended_target")?, - collecting_player: read_value::< - u8, - >(stream, iter.next(), "collecting_player")?, + collecting_player: read_value::(stream, iter.next(), "collecting_player")?, soul_count: read_value::(stream, iter.next(), "soul_count")?, }) } @@ -5696,9 +5599,7 @@ impl DamageMitigatedEvent { mitigator: read_value::(stream, iter.next(), "mitigator")?, damaged: read_value::(stream, iter.next(), "damaged")?, amount: read_value::(stream, iter.next(), "amount")?, - item_definition_index: read_value::< - u16, - >(stream, iter.next(), "item_definition_index")?, + item_definition_index: read_value::(stream, iter.next(), "item_definition_index")?, }) } } @@ -5971,9 +5872,7 @@ impl ProtoDefChangedEvent { let mut iter = definition.entries.iter(); Ok(ProtoDefChangedEvent { kind: read_value::(stream, iter.next(), "kind")?, - definition_index: read_value::< - u32, - >(stream, iter.next(), "definition_index")?, + definition_index: read_value::(stream, iter.next(), "definition_index")?, created: read_value::(stream, iter.next(), "created")?, deleted: read_value::(stream, iter.next(), "deleted")?, erase_history: read_value::(stream, iter.next(), "erase_history")?, @@ -6066,9 +5965,11 @@ impl QuestProgressEvent { scorer: read_value::(stream, iter.next(), "scorer")?, kind: read_value::(stream, iter.next(), "kind")?, completed: read_value::(stream, iter.next(), "completed")?, - quest_definition_index: read_value::< - u32, - >(stream, iter.next(), "quest_definition_index")?, + quest_definition_index: read_value::( + stream, + iter.next(), + "quest_definition_index", + )?, }) } } @@ -6086,9 +5987,7 @@ impl ProjectileRemovedEvent { let mut iter = definition.entries.iter(); Ok(ProjectileRemovedEvent { attacker: read_value::(stream, iter.next(), "attacker")?, - weapon_def_index: read_value::< - u32, - >(stream, iter.next(), "weapon_def_index")?, + weapon_def_index: read_value::(stream, iter.next(), "weapon_def_index")?, num_hit: read_value::(stream, iter.next(), "num_hit")?, num_direct_hit: read_value::(stream, iter.next(), "num_direct_hit")?, }) @@ -7307,9 +7206,7 @@ impl GameEventType { "controlpoint_endtouch" => GameEventType::ControlPointEndTouch, "controlpoint_pulse_element" => GameEventType::ControlPointPulseElement, "controlpoint_fake_capture" => GameEventType::ControlPointFakeCapture, - "controlpoint_fake_capture_mult" => { - GameEventType::ControlPointFakeCaptureMultiplier - } + "controlpoint_fake_capture_mult" => GameEventType::ControlPointFakeCaptureMultiplier, "teamplay_round_selected" => GameEventType::TeamPlayRoundSelected, "teamplay_round_start" => GameEventType::TeamPlayRoundStart, "teamplay_round_active" => GameEventType::TeamPlayRoundActive, @@ -7318,9 +7215,7 @@ impl GameEventType { "teamplay_waiting_abouttoend" => GameEventType::TeamPlayWaitingAboutToEnd, "teamplay_restart_round" => GameEventType::TeamPlayRestartRound, "teamplay_ready_restart" => GameEventType::TeamPlayReadyRestart, - "teamplay_round_restart_seconds" => { - GameEventType::TeamPlayRoundRestartSeconds - } + "teamplay_round_restart_seconds" => GameEventType::TeamPlayRoundRestartSeconds, "teamplay_team_ready" => GameEventType::TeamPlayTeamReady, "teamplay_round_win" => GameEventType::TeamPlayRoundWin, "teamplay_update_timer" => GameEventType::TeamPlayUpdateTimer, @@ -7474,9 +7369,7 @@ impl GameEventType { "player_buyback" => GameEventType::PlayerBuyback, "player_used_powerup_bottle" => GameEventType::PlayerUsedPowerUpBottle, "christmas_gift_grab" => GameEventType::ChristmasGiftGrab, - "player_killed_achievement_zone" => { - GameEventType::PlayerKilledAchievementZone - } + "player_killed_achievement_zone" => GameEventType::PlayerKilledAchievementZone, "party_updated" => GameEventType::PartyUpdated, "party_pref_changed" => GameEventType::PartyPrefChanged, "party_criteria_changed" => GameEventType::PartyCriteriaChanged, @@ -7508,9 +7401,7 @@ impl GameEventType { "mvm_mission_complete" => GameEventType::MvmMissionComplete, "mvm_bomb_reset_by_player" => GameEventType::MvmBombResetByPlayer, "mvm_bomb_alarm_triggered" => GameEventType::MvmBombAlarmTriggered, - "mvm_bomb_deploy_reset_by_player" => { - GameEventType::MvmBombDeployResetByPlayer - } + "mvm_bomb_deploy_reset_by_player" => GameEventType::MvmBombDeployResetByPlayer, "mvm_wave_failed" => GameEventType::MvmWaveFailed, "mvm_reset_stats" => GameEventType::MvmResetStats, "damage_resisted" => GameEventType::DamageResisted, @@ -7721,9 +7612,7 @@ impl GameEventType { GameEventType::ControlPointEndTouch => "controlpoint_endtouch", GameEventType::ControlPointPulseElement => "controlpoint_pulse_element", GameEventType::ControlPointFakeCapture => "controlpoint_fake_capture", - GameEventType::ControlPointFakeCaptureMultiplier => { - "controlpoint_fake_capture_mult" - } + GameEventType::ControlPointFakeCaptureMultiplier => "controlpoint_fake_capture_mult", GameEventType::TeamPlayRoundSelected => "teamplay_round_selected", GameEventType::TeamPlayRoundStart => "teamplay_round_start", GameEventType::TeamPlayRoundActive => "teamplay_round_active", @@ -7732,9 +7621,7 @@ impl GameEventType { GameEventType::TeamPlayWaitingAboutToEnd => "teamplay_waiting_abouttoend", GameEventType::TeamPlayRestartRound => "teamplay_restart_round", GameEventType::TeamPlayReadyRestart => "teamplay_ready_restart", - GameEventType::TeamPlayRoundRestartSeconds => { - "teamplay_round_restart_seconds" - } + GameEventType::TeamPlayRoundRestartSeconds => "teamplay_round_restart_seconds", GameEventType::TeamPlayTeamReady => "teamplay_team_ready", GameEventType::TeamPlayRoundWin => "teamplay_round_win", GameEventType::TeamPlayUpdateTimer => "teamplay_update_timer", @@ -7888,9 +7775,7 @@ impl GameEventType { GameEventType::PlayerBuyback => "player_buyback", GameEventType::PlayerUsedPowerUpBottle => "player_used_powerup_bottle", GameEventType::ChristmasGiftGrab => "christmas_gift_grab", - GameEventType::PlayerKilledAchievementZone => { - "player_killed_achievement_zone" - } + GameEventType::PlayerKilledAchievementZone => "player_killed_achievement_zone", GameEventType::PartyUpdated => "party_updated", GameEventType::PartyPrefChanged => "party_pref_changed", GameEventType::PartyCriteriaChanged => "party_criteria_changed", @@ -7922,9 +7807,7 @@ impl GameEventType { GameEventType::MvmMissionComplete => "mvm_mission_complete", GameEventType::MvmBombResetByPlayer => "mvm_bomb_reset_by_player", GameEventType::MvmBombAlarmTriggered => "mvm_bomb_alarm_triggered", - GameEventType::MvmBombDeployResetByPlayer => { - "mvm_bomb_deploy_reset_by_player" - } + GameEventType::MvmBombDeployResetByPlayer => "mvm_bomb_deploy_reset_by_player", GameEventType::MvmWaveFailed => "mvm_wave_failed", GameEventType::MvmResetStats => "mvm_reset_stats", GameEventType::DamageResisted => "damage_resisted", @@ -8050,2090 +7933,1447 @@ impl GameEventType { } impl GameEvent { pub fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - Ok( - match definition.event_type { - GameEventType::ServerSpawn => { - GameEvent::ServerSpawn( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ServerChangeLevelFailed => { - GameEvent::ServerChangeLevelFailed( - ServerChangeLevelFailedEvent::read(stream, definition)?, - ) - } - GameEventType::ServerShutdown => { - GameEvent::ServerShutdown( - ServerShutdownEvent::read(stream, definition)?, - ) - } - GameEventType::ServerCvar => { - GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?) - } - GameEventType::ServerMessage => { - GameEvent::ServerMessage( - ServerMessageEvent::read(stream, definition)?, - ) - } - GameEventType::ServerAddBan => { - GameEvent::ServerAddBan( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ServerRemoveBan => { - GameEvent::ServerRemoveBan( - ServerRemoveBanEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerConnect => { - GameEvent::PlayerConnect( - PlayerConnectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerConnectClient => { - GameEvent::PlayerConnectClient( - PlayerConnectClientEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerInfo => { - GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?) - } - GameEventType::PlayerDisconnect => { - GameEvent::PlayerDisconnect( - PlayerDisconnectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerActivate => { - GameEvent::PlayerActivate( - PlayerActivateEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerSay => { - GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?) - } - GameEventType::ClientDisconnect => { - GameEvent::ClientDisconnect( - ClientDisconnectEvent::read(stream, definition)?, - ) - } - GameEventType::ClientBeginConnect => { - GameEvent::ClientBeginConnect( - ClientBeginConnectEvent::read(stream, definition)?, - ) - } - GameEventType::ClientConnected => { - GameEvent::ClientConnected( - ClientConnectedEvent::read(stream, definition)?, - ) - } - GameEventType::ClientFullConnect => { - GameEvent::ClientFullConnect( - ClientFullConnectEvent::read(stream, definition)?, - ) - } - GameEventType::HostQuit => { - GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?) - } - GameEventType::TeamInfo => { - GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?) - } - GameEventType::TeamScore => { - GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?) - } - GameEventType::TeamPlayBroadcastAudio => { - GameEvent::TeamPlayBroadcastAudio( - TeamPlayBroadcastAudioEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerTeam => { - GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?) - } - GameEventType::PlayerClass => { - GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?) - } - GameEventType::PlayerDeath => { - GameEvent::PlayerDeath( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::PlayerHurt => { - GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?) - } - GameEventType::PlayerChat => { - GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?) - } - GameEventType::PlayerScore => { - GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?) - } - GameEventType::PlayerSpawn => { - GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?) - } - GameEventType::PlayerShoot => { - GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?) - } - GameEventType::PlayerUse => { - GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?) - } - GameEventType::PlayerChangeName => { - GameEvent::PlayerChangeName( - PlayerChangeNameEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHintMessage => { - GameEvent::PlayerHintMessage( - PlayerHintMessageEvent::read(stream, definition)?, - ) - } - GameEventType::BasePlayerTeleported => { - GameEvent::BasePlayerTeleported( - BasePlayerTeleportedEvent::read(stream, definition)?, - ) - } - GameEventType::GameInit => { - GameEvent::GameInit(GameInitEvent::read(stream, definition)?) - } - GameEventType::GameNewMap => { - GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?) - } - GameEventType::GameStart => { - GameEvent::GameStart(GameStartEvent::read(stream, definition)?) - } - GameEventType::GameEnd => { - GameEvent::GameEnd(GameEndEvent::read(stream, definition)?) - } - GameEventType::RoundStart => { - GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?) - } - GameEventType::RoundEnd => { - GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?) - } - GameEventType::GameMessage => { - GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?) - } - GameEventType::BreakBreakable => { - GameEvent::BreakBreakable( - BreakBreakableEvent::read(stream, definition)?, - ) - } - GameEventType::BreakProp => { - GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?) - } - GameEventType::EntityKilled => { - GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?) - } - GameEventType::BonusUpdated => { - GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?) - } - GameEventType::AchievementEvent => { - GameEvent::AchievementEvent( - AchievementEventEvent::read(stream, definition)?, - ) - } - GameEventType::AchievementIncrement => { - GameEvent::AchievementIncrement( - AchievementIncrementEvent::read(stream, definition)?, - ) - } - GameEventType::PhysgunPickup => { - GameEvent::PhysgunPickup( - PhysgunPickupEvent::read(stream, definition)?, - ) - } - GameEventType::FlareIgniteNpc => { - GameEvent::FlareIgniteNpc( - FlareIgniteNpcEvent::read(stream, definition)?, - ) - } - GameEventType::HelicopterGrenadePuntMiss => { - GameEvent::HelicopterGrenadePuntMiss( - HelicopterGrenadePuntMissEvent::read(stream, definition)?, - ) - } - GameEventType::UserDataDownloaded => { - GameEvent::UserDataDownloaded( - UserDataDownloadedEvent::read(stream, definition)?, - ) - } - GameEventType::RagdollDissolved => { - GameEvent::RagdollDissolved( - RagdollDissolvedEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVChangedMode => { - GameEvent::HLTVChangedMode( - HLTVChangedModeEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVChangedTarget => { - GameEvent::HLTVChangedTarget( - HLTVChangedTargetEvent::read(stream, definition)?, - ) - } - GameEventType::VoteEnded => { - GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?) - } - GameEventType::VoteStarted => { - GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?) - } - GameEventType::VoteChanged => { - GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?) - } - GameEventType::VotePassed => { - GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?) - } - GameEventType::VoteFailed => { - GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?) - } - GameEventType::VoteCast => { - GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?) - } - GameEventType::VoteOptions => { - GameEvent::VoteOptions( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ReplaySaved => { - GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?) - } - GameEventType::EnteredPerformanceMode => { - GameEvent::EnteredPerformanceMode( - EnteredPerformanceModeEvent::read(stream, definition)?, - ) - } - GameEventType::BrowseReplays => { - GameEvent::BrowseReplays( - BrowseReplaysEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayYoutubeStats => { - GameEvent::ReplayYoutubeStats( - ReplayYoutubeStatsEvent::read(stream, definition)?, - ) - } - GameEventType::InventoryUpdated => { - GameEvent::InventoryUpdated( - InventoryUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::CartUpdated => { - GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?) - } - GameEventType::StorePriceSheetUpdated => { - GameEvent::StorePriceSheetUpdated( - StorePriceSheetUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::EconInventoryConnected => { - GameEvent::EconInventoryConnected( - EconInventoryConnectedEvent::read(stream, definition)?, - ) - } - GameEventType::ItemSchemaInitialized => { - GameEvent::ItemSchemaInitialized( - ItemSchemaInitializedEvent::read(stream, definition)?, - ) - } - GameEventType::GcNewSession => { - GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?) - } - GameEventType::GcLostSession => { - GameEvent::GcLostSession( - GcLostSessionEvent::read(stream, definition)?, - ) - } - GameEventType::IntroFinish => { - GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?) - } - GameEventType::IntroNextCamera => { - GameEvent::IntroNextCamera( - IntroNextCameraEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerChangeClass => { - GameEvent::PlayerChangeClass( - PlayerChangeClassEvent::read(stream, definition)?, - ) - } - GameEventType::TfMapTimeRemaining => { - GameEvent::TfMapTimeRemaining( - TfMapTimeRemainingEvent::read(stream, definition)?, - ) - } - GameEventType::TfGameOver => { - GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?) - } - GameEventType::CtfFlagCaptured => { - GameEvent::CtfFlagCaptured( - CtfFlagCapturedEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointInitialized => { - GameEvent::ControlPointInitialized( - ControlPointInitializedEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateImages => { - GameEvent::ControlPointUpdateImages( - ControlPointUpdateImagesEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateLayout => { - GameEvent::ControlPointUpdateLayout( - ControlPointUpdateLayoutEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateCapping => { - GameEvent::ControlPointUpdateCapping( - ControlPointUpdateCappingEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateOwner => { - GameEvent::ControlPointUpdateOwner( - ControlPointUpdateOwnerEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointStartTouch => { - GameEvent::ControlPointStartTouch( - ControlPointStartTouchEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointEndTouch => { - GameEvent::ControlPointEndTouch( - ControlPointEndTouchEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointPulseElement => { - GameEvent::ControlPointPulseElement( - ControlPointPulseElementEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointFakeCapture => { - GameEvent::ControlPointFakeCapture( - ControlPointFakeCaptureEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointFakeCaptureMultiplier => { - GameEvent::ControlPointFakeCaptureMultiplier( - ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundSelected => { - GameEvent::TeamPlayRoundSelected( - TeamPlayRoundSelectedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundStart => { - GameEvent::TeamPlayRoundStart( - TeamPlayRoundStartEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundActive => { - GameEvent::TeamPlayRoundActive( - TeamPlayRoundActiveEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWaitingBegins => { - GameEvent::TeamPlayWaitingBegins( - TeamPlayWaitingBeginsEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWaitingEnds => { - GameEvent::TeamPlayWaitingEnds( - TeamPlayWaitingEndsEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWaitingAboutToEnd => { - GameEvent::TeamPlayWaitingAboutToEnd( - TeamPlayWaitingAboutToEndEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRestartRound => { - GameEvent::TeamPlayRestartRound( - TeamPlayRestartRoundEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayReadyRestart => { - GameEvent::TeamPlayReadyRestart( - TeamPlayReadyRestartEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundRestartSeconds => { - GameEvent::TeamPlayRoundRestartSeconds( - TeamPlayRoundRestartSecondsEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTeamReady => { - GameEvent::TeamPlayTeamReady( - TeamPlayTeamReadyEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundWin => { - GameEvent::TeamPlayRoundWin( - TeamPlayRoundWinEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayUpdateTimer => { - GameEvent::TeamPlayUpdateTimer( - TeamPlayUpdateTimerEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundStalemate => { - GameEvent::TeamPlayRoundStalemate( - TeamPlayRoundStalemateEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayOvertimeBegin => { - GameEvent::TeamPlayOvertimeBegin( - TeamPlayOvertimeBeginEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayOvertimeEnd => { - GameEvent::TeamPlayOvertimeEnd( - TeamPlayOvertimeEndEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlaySuddenDeathBegin => { - GameEvent::TeamPlaySuddenDeathBegin( - TeamPlaySuddenDeathBeginEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlaySuddenDeathEnd => { - GameEvent::TeamPlaySuddenDeathEnd( - TeamPlaySuddenDeathEndEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayGameOver => { - GameEvent::TeamPlayGameOver( - TeamPlayGameOverEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayMapTimeRemaining => { - GameEvent::TeamPlayMapTimeRemaining( - TeamPlayMapTimeRemainingEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTimerFlash => { - GameEvent::TeamPlayTimerFlash( - TeamPlayTimerFlashEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTimerTimeAdded => { - GameEvent::TeamPlayTimerTimeAdded( - TeamPlayTimerTimeAddedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointStartCapture => { - GameEvent::TeamPlayPointStartCapture( - TeamPlayPointStartCaptureEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointCaptured => { - GameEvent::TeamPlayPointCaptured( - TeamPlayPointCapturedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointLocked => { - GameEvent::TeamPlayPointLocked( - TeamPlayPointLockedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointUnlocked => { - GameEvent::TeamPlayPointUnlocked( - TeamPlayPointUnlockedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayCaptureBroken => { - GameEvent::TeamPlayCaptureBroken( - TeamPlayCaptureBrokenEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayCaptureBlocked => { - GameEvent::TeamPlayCaptureBlocked( - TeamPlayCaptureBlockedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayFlagEvent => { - GameEvent::TeamPlayFlagEvent( - TeamPlayFlagEventEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWinPanel => { - GameEvent::TeamPlayWinPanel( - TeamPlayWinPanelEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTeamBalancedPlayer => { - GameEvent::TeamPlayTeamBalancedPlayer( - TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlaySetupFinished => { - GameEvent::TeamPlaySetupFinished( - TeamPlaySetupFinishedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayAlert => { - GameEvent::TeamPlayAlert( - TeamPlayAlertEvent::read(stream, definition)?, - ) - } - GameEventType::TrainingComplete => { - GameEvent::TrainingComplete( - TrainingCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::ShowFreezePanel => { - GameEvent::ShowFreezePanel( - ShowFreezePanelEvent::read(stream, definition)?, - ) - } - GameEventType::HideFreezePanel => { - GameEvent::HideFreezePanel( - HideFreezePanelEvent::read(stream, definition)?, - ) - } - GameEventType::FreezeCamStarted => { - GameEvent::FreezeCamStarted( - FreezeCamStartedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChangeTeam => { - GameEvent::LocalPlayerChangeTeam( - LocalPlayerChangeTeamEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerScoreChanged => { - GameEvent::LocalPlayerScoreChanged( - LocalPlayerScoreChangedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChangeClass => { - GameEvent::LocalPlayerChangeClass( - LocalPlayerChangeClassEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerRespawn => { - GameEvent::LocalPlayerRespawn( - LocalPlayerRespawnEvent::read(stream, definition)?, - ) - } - GameEventType::BuildingInfoChanged => { - GameEvent::BuildingInfoChanged( - BuildingInfoChangedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChangeDisguise => { - GameEvent::LocalPlayerChangeDisguise( - LocalPlayerChangeDisguiseEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerAccountChanged => { - GameEvent::PlayerAccountChanged( - PlayerAccountChangedEvent::read(stream, definition)?, - ) - } - GameEventType::SpyPdaReset => { - GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?) - } - GameEventType::FlagStatusUpdate => { - GameEvent::FlagStatusUpdate( - FlagStatusUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerStatsUpdated => { - GameEvent::PlayerStatsUpdated( - PlayerStatsUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayingCommentary => { - GameEvent::PlayingCommentary( - PlayingCommentaryEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerChargeDeployed => { - GameEvent::PlayerChargeDeployed( - PlayerChargeDeployedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBuiltObject => { - GameEvent::PlayerBuiltObject( - PlayerBuiltObjectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerUpgradedObject => { - GameEvent::PlayerUpgradedObject( - PlayerUpgradedObjectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerCarryObject => { - GameEvent::PlayerCarryObject( - PlayerCarryObjectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDropObject => { - GameEvent::PlayerDropObject( - PlayerDropObjectEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectRemoved => { - GameEvent::ObjectRemoved( - ObjectRemovedEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectDestroyed => { - GameEvent::ObjectDestroyed( - ObjectDestroyedEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectDetonated => { - GameEvent::ObjectDetonated( - ObjectDetonatedEvent::read(stream, definition)?, - ) - } - GameEventType::AchievementEarned => { - GameEvent::AchievementEarned( - AchievementEarnedEvent::read(stream, definition)?, - ) - } - GameEventType::SpecTargetUpdated => { - GameEvent::SpecTargetUpdated( - SpecTargetUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::TournamentStateUpdate => { - GameEvent::TournamentStateUpdate( - TournamentStateUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::TournamentEnableCountdown => { - GameEvent::TournamentEnableCountdown( - TournamentEnableCountdownEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerCalledForMedic => { - GameEvent::PlayerCalledForMedic( - PlayerCalledForMedicEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerAskedForBall => { - GameEvent::PlayerAskedForBall( - PlayerAskedForBallEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerBecameObserver => { - GameEvent::LocalPlayerBecameObserver( - LocalPlayerBecameObserverEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerIgnitedInv => { - GameEvent::PlayerIgnitedInv( - PlayerIgnitedInvEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerIgnited => { - GameEvent::PlayerIgnited( - PlayerIgnitedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerExtinguished => { - GameEvent::PlayerExtinguished( - PlayerExtinguishedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerTeleported => { - GameEvent::PlayerTeleported( - PlayerTeleportedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHealedMedicCall => { - GameEvent::PlayerHealedMedicCall( - PlayerHealedMedicCallEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChargeReady => { - GameEvent::LocalPlayerChargeReady( - LocalPlayerChargeReadyEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerWindDown => { - GameEvent::LocalPlayerWindDown( - LocalPlayerWindDownEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerInvulned => { - GameEvent::PlayerInvulned( - PlayerInvulnedEvent::read(stream, definition)?, - ) - } - GameEventType::EscortSpeed => { - GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?) - } - GameEventType::EscortProgress => { - GameEvent::EscortProgress( - EscortProgressEvent::read(stream, definition)?, - ) - } - GameEventType::EscortRecede => { - GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?) - } - GameEventType::GameUIActivated => { - GameEvent::GameUIActivated( - GameUIActivatedEvent::read(stream, definition)?, - ) - } - GameEventType::GameUIHidden => { - GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?) - } - GameEventType::PlayerEscortScore => { - GameEvent::PlayerEscortScore( - PlayerEscortScoreEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHealOnHit => { - GameEvent::PlayerHealOnHit( - PlayerHealOnHitEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerStealSandvich => { - GameEvent::PlayerStealSandvich( - PlayerStealSandvichEvent::read(stream, definition)?, - ) - } - GameEventType::ShowClassLayout => { - GameEvent::ShowClassLayout( - ShowClassLayoutEvent::read(stream, definition)?, - ) - } - GameEventType::ShowVsPanel => { - GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?) - } - GameEventType::PlayerDamaged => { - GameEvent::PlayerDamaged( - PlayerDamagedEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaPlayerNotification => { - GameEvent::ArenaPlayerNotification( - ArenaPlayerNotificationEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaMatchMaxStreak => { - GameEvent::ArenaMatchMaxStreak( - ArenaMatchMaxStreakEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaRoundStart => { - GameEvent::ArenaRoundStart( - ArenaRoundStartEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaWinPanel => { - GameEvent::ArenaWinPanel( - ArenaWinPanelEvent::read(stream, definition)?, - ) - } - GameEventType::PveWinPanel => { - GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?) - } - GameEventType::AirDash => { - GameEvent::AirDash(AirDashEvent::read(stream, definition)?) - } - GameEventType::Landed => { - GameEvent::Landed(LandedEvent::read(stream, definition)?) - } - GameEventType::PlayerDamageDodged => { - GameEvent::PlayerDamageDodged( - PlayerDamageDodgedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerStunned => { - GameEvent::PlayerStunned( - PlayerStunnedEvent::read(stream, definition)?, - ) - } - GameEventType::ScoutGrandSlam => { - GameEvent::ScoutGrandSlam( - ScoutGrandSlamEvent::read(stream, definition)?, - ) - } - GameEventType::ScoutSlamdollLanded => { - GameEvent::ScoutSlamdollLanded( - ScoutSlamdollLandedEvent::read(stream, definition)?, - ) - } - GameEventType::ArrowImpact => { - GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?) - } - GameEventType::PlayerJarated => { - GameEvent::PlayerJarated( - PlayerJaratedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerJaratedFade => { - GameEvent::PlayerJaratedFade( - PlayerJaratedFadeEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerShieldBlocked => { - GameEvent::PlayerShieldBlocked( - PlayerShieldBlockedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerPinned => { - GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?) - } - GameEventType::PlayerHealedByMedic => { - GameEvent::PlayerHealedByMedic( - PlayerHealedByMedicEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerSappedObject => { - GameEvent::PlayerSappedObject( - PlayerSappedObjectEvent::read(stream, definition)?, - ) - } - GameEventType::ItemFound => { - GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?) - } - GameEventType::ShowAnnotation => { - GameEvent::ShowAnnotation( - ShowAnnotationEvent::read(stream, definition)?, - ) - } - GameEventType::HideAnnotation => { - GameEvent::HideAnnotation( - HideAnnotationEvent::read(stream, definition)?, - ) - } - GameEventType::PostInventoryApplication => { - GameEvent::PostInventoryApplication( - PostInventoryApplicationEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUnlockUpdated => { - GameEvent::ControlPointUnlockUpdated( - ControlPointUnlockUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::DeployBuffBanner => { - GameEvent::DeployBuffBanner( - DeployBuffBannerEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBuff => { - GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?) - } - GameEventType::MedicDeath => { - GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?) - } - GameEventType::OvertimeNag => { - GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?) - } - GameEventType::TeamsChanged => { - GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?) - } - GameEventType::HalloweenPumpkinGrab => { - GameEvent::HalloweenPumpkinGrab( - HalloweenPumpkinGrabEvent::read(stream, definition)?, - ) - } - GameEventType::RocketJump => { - GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?) - } - GameEventType::RocketJumpLanded => { - GameEvent::RocketJumpLanded( - RocketJumpLandedEvent::read(stream, definition)?, - ) - } - GameEventType::StickyJump => { - GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?) - } - GameEventType::StickyJumpLanded => { - GameEvent::StickyJumpLanded( - StickyJumpLandedEvent::read(stream, definition)?, - ) - } - GameEventType::RocketPackLaunch => { - GameEvent::RocketPackLaunch( - RocketPackLaunchEvent::read(stream, definition)?, - ) - } - GameEventType::RocketPackLanded => { - GameEvent::RocketPackLanded( - RocketPackLandedEvent::read(stream, definition)?, - ) - } - GameEventType::MedicDefended => { - GameEvent::MedicDefended( - MedicDefendedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerHealed => { - GameEvent::LocalPlayerHealed( - LocalPlayerHealedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDestroyedPipeBomb => { - GameEvent::PlayerDestroyedPipeBomb( - PlayerDestroyedPipeBombEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectDeflected => { - GameEvent::ObjectDeflected( - ObjectDeflectedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerMvp => { - GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?) - } - GameEventType::RaidSpawnMob => { - GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?) - } - GameEventType::RaidSpawnSquad => { - GameEvent::RaidSpawnSquad( - RaidSpawnSquadEvent::read(stream, definition)?, - ) - } - GameEventType::NavBlocked => { - GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?) - } - GameEventType::PathTrackPassed => { - GameEvent::PathTrackPassed( - PathTrackPassedEvent::read(stream, definition)?, - ) - } - GameEventType::NumCappersChanged => { - GameEvent::NumCappersChanged( - NumCappersChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerRegenerate => { - GameEvent::PlayerRegenerate( - PlayerRegenerateEvent::read(stream, definition)?, - ) - } - GameEventType::UpdateStatusItem => { - GameEvent::UpdateStatusItem( - UpdateStatusItemEvent::read(stream, definition)?, - ) - } - GameEventType::StatsResetRound => { - GameEvent::StatsResetRound( - StatsResetRoundEvent::read(stream, definition)?, - ) - } - GameEventType::ScoreStatsAccumulatedUpdate => { - GameEvent::ScoreStatsAccumulatedUpdate( - ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::ScoreStatsAccumulatedReset => { - GameEvent::ScoreStatsAccumulatedReset( - ScoreStatsAccumulatedResetEvent::read(stream, definition)?, - ) - } - GameEventType::AchievementEarnedLocal => { - GameEvent::AchievementEarnedLocal( - AchievementEarnedLocalEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHealed => { - GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?) - } - GameEventType::BuildingHealed => { - GameEvent::BuildingHealed( - BuildingHealedEvent::read(stream, definition)?, - ) - } - GameEventType::ItemPickup => { - GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?) - } - GameEventType::DuelStatus => { - GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?) - } - GameEventType::FishNotice => { - GameEvent::FishNotice( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::FishNoticeArm => { - GameEvent::FishNoticeArm( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::SlapNotice => { - GameEvent::SlapNotice( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ThrowableHit => { - GameEvent::ThrowableHit( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::PumpkinLordSummoned => { - GameEvent::PumpkinLordSummoned( - PumpkinLordSummonedEvent::read(stream, definition)?, - ) - } - GameEventType::PumpkinLordKilled => { - GameEvent::PumpkinLordKilled( - PumpkinLordKilledEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusSummoned => { - GameEvent::MerasmusSummoned( - MerasmusSummonedEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusKilled => { - GameEvent::MerasmusKilled( - MerasmusKilledEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusEscapeWarning => { - GameEvent::MerasmusEscapeWarning( - MerasmusEscapeWarningEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusEscaped => { - GameEvent::MerasmusEscaped( - MerasmusEscapedEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossSummoned => { - GameEvent::EyeballBossSummoned( - EyeballBossSummonedEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossStunned => { - GameEvent::EyeballBossStunned( - EyeballBossStunnedEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossKilled => { - GameEvent::EyeballBossKilled( - EyeballBossKilledEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossKiller => { - GameEvent::EyeballBossKiller( - EyeballBossKillerEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossEscapeImminent => { - GameEvent::EyeballBossEscapeImminent( - EyeballBossEscapeImminentEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossEscaped => { - GameEvent::EyeballBossEscaped( - EyeballBossEscapedEvent::read(stream, definition)?, - ) - } - GameEventType::NpcHurt => { - GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?) - } - GameEventType::ControlPointTimerUpdated => { - GameEvent::ControlPointTimerUpdated( - ControlPointTimerUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHighFiveStart => { - GameEvent::PlayerHighFiveStart( - PlayerHighFiveStartEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHighFiveCancel => { - GameEvent::PlayerHighFiveCancel( - PlayerHighFiveCancelEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHighFiveSuccess => { - GameEvent::PlayerHighFiveSuccess( - PlayerHighFiveSuccessEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBonusPoints => { - GameEvent::PlayerBonusPoints( - PlayerBonusPointsEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerUpgraded => { - GameEvent::PlayerUpgraded( - PlayerUpgradedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBuyback => { - GameEvent::PlayerBuyback( - PlayerBuybackEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerUsedPowerUpBottle => { - GameEvent::PlayerUsedPowerUpBottle( - PlayerUsedPowerUpBottleEvent::read(stream, definition)?, - ) - } - GameEventType::ChristmasGiftGrab => { - GameEvent::ChristmasGiftGrab( - ChristmasGiftGrabEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerKilledAchievementZone => { - GameEvent::PlayerKilledAchievementZone( - PlayerKilledAchievementZoneEvent::read(stream, definition)?, - ) - } - GameEventType::PartyUpdated => { - GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?) - } - GameEventType::PartyPrefChanged => { - GameEvent::PartyPrefChanged( - PartyPrefChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyCriteriaChanged => { - GameEvent::PartyCriteriaChanged( - PartyCriteriaChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyInvitesChanged => { - GameEvent::PartyInvitesChanged( - PartyInvitesChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyQueueStateChanged => { - GameEvent::PartyQueueStateChanged( - PartyQueueStateChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyChat => { - GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?) - } - GameEventType::PartyMemberJoin => { - GameEvent::PartyMemberJoin( - PartyMemberJoinEvent::read(stream, definition)?, - ) - } - GameEventType::PartyMemberLeave => { - GameEvent::PartyMemberLeave( - PartyMemberLeaveEvent::read(stream, definition)?, - ) - } - GameEventType::MatchInvitesUpdated => { - GameEvent::MatchInvitesUpdated( - MatchInvitesUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::LobbyUpdated => { - GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?) - } - GameEventType::MvmMissionUpdate => { - GameEvent::MvmMissionUpdate( - MvmMissionUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::RecalculateHolidays => { - GameEvent::RecalculateHolidays( - RecalculateHolidaysEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerCurrencyChanged => { - GameEvent::PlayerCurrencyChanged( - PlayerCurrencyChangedEvent::read(stream, definition)?, - ) - } - GameEventType::DoomsdayRocketOpen => { - GameEvent::DoomsdayRocketOpen( - DoomsdayRocketOpenEvent::read(stream, definition)?, - ) - } - GameEventType::RemoveNemesisRelationships => { - GameEvent::RemoveNemesisRelationships( - RemoveNemesisRelationshipsEvent::read(stream, definition)?, - ) - } - GameEventType::MvmCreditBonusWave => { - GameEvent::MvmCreditBonusWave( - MvmCreditBonusWaveEvent::read(stream, definition)?, - ) - } - GameEventType::MvmCreditBonusAll => { - GameEvent::MvmCreditBonusAll( - MvmCreditBonusAllEvent::read(stream, definition)?, - ) - } - GameEventType::MvmCreditBonusAllAdvanced => { - GameEvent::MvmCreditBonusAllAdvanced( - MvmCreditBonusAllAdvancedEvent::read(stream, definition)?, - ) - } - GameEventType::MvmQuickSentryUpgrade => { - GameEvent::MvmQuickSentryUpgrade( - MvmQuickSentryUpgradeEvent::read(stream, definition)?, - ) - } - GameEventType::MvmTankDestroyedByPlayers => { - GameEvent::MvmTankDestroyedByPlayers( - MvmTankDestroyedByPlayersEvent::read(stream, definition)?, - ) - } - GameEventType::MvmKillRobotDeliveringBomb => { - GameEvent::MvmKillRobotDeliveringBomb( - MvmKillRobotDeliveringBombEvent::read(stream, definition)?, - ) - } - GameEventType::MvmPickupCurrency => { - GameEvent::MvmPickupCurrency( - MvmPickupCurrencyEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombCarrierKilled => { - GameEvent::MvmBombCarrierKilled( - MvmBombCarrierKilledEvent::read(stream, definition)?, - ) - } - GameEventType::MvmSentryBusterDetonate => { - GameEvent::MvmSentryBusterDetonate( - MvmSentryBusterDetonateEvent::read(stream, definition)?, - ) - } - GameEventType::MvmScoutMarkedForDeath => { - GameEvent::MvmScoutMarkedForDeath( - MvmScoutMarkedForDeathEvent::read(stream, definition)?, - ) - } - GameEventType::MvmMedicPowerUpShared => { - GameEvent::MvmMedicPowerUpShared( - MvmMedicPowerUpSharedEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBeginWave => { - GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?) - } - GameEventType::MvmWaveComplete => { - GameEvent::MvmWaveComplete( - MvmWaveCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::MvmMissionComplete => { - GameEvent::MvmMissionComplete( - MvmMissionCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombResetByPlayer => { - GameEvent::MvmBombResetByPlayer( - MvmBombResetByPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombAlarmTriggered => { - GameEvent::MvmBombAlarmTriggered( - MvmBombAlarmTriggeredEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombDeployResetByPlayer => { - GameEvent::MvmBombDeployResetByPlayer( - MvmBombDeployResetByPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::MvmWaveFailed => { - GameEvent::MvmWaveFailed( - MvmWaveFailedEvent::read(stream, definition)?, - ) - } - GameEventType::MvmResetStats => { - GameEvent::MvmResetStats( - MvmResetStatsEvent::read(stream, definition)?, - ) - } - GameEventType::DamageResisted => { - GameEvent::DamageResisted( - DamageResistedEvent::read(stream, definition)?, - ) - } - GameEventType::RevivePlayerNotify => { - GameEvent::RevivePlayerNotify( - RevivePlayerNotifyEvent::read(stream, definition)?, - ) - } - GameEventType::RevivePlayerStopped => { - GameEvent::RevivePlayerStopped( - RevivePlayerStoppedEvent::read(stream, definition)?, - ) - } - GameEventType::RevivePlayerComplete => { - GameEvent::RevivePlayerComplete( - RevivePlayerCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerTurnedToGhost => { - GameEvent::PlayerTurnedToGhost( - PlayerTurnedToGhostEvent::read(stream, definition)?, - ) - } - GameEventType::MedigunShieldBlockedDamage => { - GameEvent::MedigunShieldBlockedDamage( - MedigunShieldBlockedDamageEvent::read(stream, definition)?, - ) - } - GameEventType::MvmAdvWaveCompleteNoGates => { - GameEvent::MvmAdvWaveCompleteNoGates( - MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?, - ) - } - GameEventType::MvmSniperHeadshotCurrency => { - GameEvent::MvmSniperHeadshotCurrency( - MvmSniperHeadshotCurrencyEvent::read(stream, definition)?, - ) - } - GameEventType::MvmMannhattanPit => { - GameEvent::MvmMannhattanPit( - MvmMannhattanPitEvent::read(stream, definition)?, - ) - } - GameEventType::FlagCarriedInDetectionZone => { - GameEvent::FlagCarriedInDetectionZone( - FlagCarriedInDetectionZoneEvent::read(stream, definition)?, - ) - } - GameEventType::MvmAdvWaveKilledStunRadio => { - GameEvent::MvmAdvWaveKilledStunRadio( - MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDirectHitStun => { - GameEvent::PlayerDirectHitStun( - PlayerDirectHitStunEvent::read(stream, definition)?, - ) - } - GameEventType::MvmSentryBusterKilled => { - GameEvent::MvmSentryBusterKilled( - MvmSentryBusterKilledEvent::read(stream, definition)?, - ) - } - GameEventType::UpgradesFileChanged => { - GameEvent::UpgradesFileChanged( - UpgradesFileChangedEvent::read(stream, definition)?, - ) - } - GameEventType::RdTeamPointsChanged => { - GameEvent::RdTeamPointsChanged( - RdTeamPointsChangedEvent::read(stream, definition)?, - ) - } - GameEventType::RdRulesStateChanged => { - GameEvent::RdRulesStateChanged( - RdRulesStateChangedEvent::read(stream, definition)?, - ) - } - GameEventType::RdRobotKilled => { - GameEvent::RdRobotKilled( - RdRobotKilledEvent::read(stream, definition)?, - ) - } - GameEventType::RdRobotImpact => { - GameEvent::RdRobotImpact( - RdRobotImpactEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPreRoundTimeLeft => { - GameEvent::TeamPlayPreRoundTimeLeft( - TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?, - ) - } - GameEventType::ParachuteDeploy => { - GameEvent::ParachuteDeploy( - ParachuteDeployEvent::read(stream, definition)?, - ) - } - GameEventType::ParachuteHolster => { - GameEvent::ParachuteHolster( - ParachuteHolsterEvent::read(stream, definition)?, - ) - } - GameEventType::KillRefillsMeter => { - GameEvent::KillRefillsMeter( - KillRefillsMeterEvent::read(stream, definition)?, - ) - } - GameEventType::RpsTauntEvent => { - GameEvent::RpsTauntEvent( - RpsTauntEventEvent::read(stream, definition)?, - ) - } - GameEventType::CongaKill => { - GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?) - } - GameEventType::PlayerInitialSpawn => { - GameEvent::PlayerInitialSpawn( - PlayerInitialSpawnEvent::read(stream, definition)?, - ) - } - GameEventType::CompetitiveVictory => { - GameEvent::CompetitiveVictory( - CompetitiveVictoryEvent::read(stream, definition)?, - ) - } - GameEventType::CompetitiveStatsUpdate => { - GameEvent::CompetitiveStatsUpdate( - CompetitiveStatsUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::MiniGameWin => { - GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?) - } - GameEventType::SentryOnGoActive => { - GameEvent::SentryOnGoActive( - SentryOnGoActiveEvent::read(stream, definition)?, - ) - } - GameEventType::DuckXpLevelUp => { - GameEvent::DuckXpLevelUp( - DuckXpLevelUpEvent::read(stream, definition)?, - ) - } - GameEventType::QuestLogOpened => { - GameEvent::QuestLogOpened( - QuestLogOpenedEvent::read(stream, definition)?, - ) - } - GameEventType::SchemaUpdated => { - GameEvent::SchemaUpdated( - SchemaUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerPickupWeapon => { - GameEvent::LocalPlayerPickupWeapon( - LocalPlayerPickupWeaponEvent::read(stream, definition)?, - ) - } - GameEventType::RdPlayerScorePoints => { - GameEvent::RdPlayerScorePoints( - RdPlayerScorePointsEvent::read(stream, definition)?, - ) - } - GameEventType::DemomanDetStickies => { - GameEvent::DemomanDetStickies( - DemomanDetStickiesEvent::read(stream, definition)?, - ) - } - GameEventType::QuestObjectiveCompleted => { - GameEvent::QuestObjectiveCompleted( - QuestObjectiveCompletedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerScoreChanged => { - GameEvent::PlayerScoreChanged( - PlayerScoreChangedEvent::read(stream, definition)?, - ) - } - GameEventType::KilledCappingPlayer => { - GameEvent::KilledCappingPlayer( - KilledCappingPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::EnvironmentalDeath => { - GameEvent::EnvironmentalDeath( - EnvironmentalDeathEvent::read(stream, definition)?, - ) - } - GameEventType::ProjectileDirectHit => { - GameEvent::ProjectileDirectHit( - ProjectileDirectHitEvent::read(stream, definition)?, - ) - } - GameEventType::PassGet => { - GameEvent::PassGet(PassGetEvent::read(stream, definition)?) - } - GameEventType::PassScore => { - GameEvent::PassScore(PassScoreEvent::read(stream, definition)?) - } - GameEventType::PassFree => { - GameEvent::PassFree(PassFreeEvent::read(stream, definition)?) - } - GameEventType::PassPassCaught => { - GameEvent::PassPassCaught( - PassPassCaughtEvent::read(stream, definition)?, - ) - } - GameEventType::PassBallStolen => { - GameEvent::PassBallStolen( - PassBallStolenEvent::read(stream, definition)?, - ) - } - GameEventType::PassBallBlocked => { - GameEvent::PassBallBlocked( - PassBallBlockedEvent::read(stream, definition)?, - ) - } - GameEventType::DamagePrevented => { - GameEvent::DamagePrevented( - DamagePreventedEvent::read(stream, definition)?, - ) - } - GameEventType::HalloweenBossKilled => { - GameEvent::HalloweenBossKilled( - HalloweenBossKilledEvent::read(stream, definition)?, - ) - } - GameEventType::EscapedLootIsland => { - GameEvent::EscapedLootIsland( - EscapedLootIslandEvent::read(stream, definition)?, - ) - } - GameEventType::TaggedPlayerAsIt => { - GameEvent::TaggedPlayerAsIt( - TaggedPlayerAsItEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusStunned => { - GameEvent::MerasmusStunned( - MerasmusStunnedEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusPropFound => { - GameEvent::MerasmusPropFound( - MerasmusPropFoundEvent::read(stream, definition)?, - ) - } - GameEventType::HalloweenSkeletonKilled => { - GameEvent::HalloweenSkeletonKilled( - HalloweenSkeletonKilledEvent::read(stream, definition)?, - ) - } - GameEventType::EscapeHell => { - GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) - } - GameEventType::CrossSpectralBridge => { - GameEvent::CrossSpectralBridge( - CrossSpectralBridgeEvent::read(stream, definition)?, - ) - } - GameEventType::MiniGameWon => { - GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?) - } - GameEventType::RespawnGhost => { - GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?) - } - GameEventType::KillInHell => { - GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?) - } - GameEventType::HalloweenDuckCollected => { - GameEvent::HalloweenDuckCollected( - HalloweenDuckCollectedEvent::read(stream, definition)?, - ) - } - GameEventType::SpecialScore => { - GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?) - } - GameEventType::TeamLeaderKilled => { - GameEvent::TeamLeaderKilled( - TeamLeaderKilledEvent::read(stream, definition)?, - ) - } - GameEventType::HalloweenSoulCollected => { - GameEvent::HalloweenSoulCollected( - HalloweenSoulCollectedEvent::read(stream, definition)?, - ) - } - GameEventType::RecalculateTruce => { - GameEvent::RecalculateTruce( - RecalculateTruceEvent::read(stream, definition)?, - ) - } - GameEventType::DeadRingerCheatDeath => { - GameEvent::DeadRingerCheatDeath( - DeadRingerCheatDeathEvent::read(stream, definition)?, - ) - } - GameEventType::CrossbowHeal => { - GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?) - } - GameEventType::DamageMitigated => { - GameEvent::DamageMitigated( - DamageMitigatedEvent::read(stream, definition)?, - ) - } - GameEventType::PayloadPushed => { - GameEvent::PayloadPushed( - PayloadPushedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerAbandonedMatch => { - GameEvent::PlayerAbandonedMatch( - PlayerAbandonedMatchEvent::read(stream, definition)?, - ) - } - GameEventType::ClDrawline => { - GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?) - } - GameEventType::RestartTimerTime => { - GameEvent::RestartTimerTime( - RestartTimerTimeEvent::read(stream, definition)?, - ) - } - GameEventType::WinLimitChanged => { - GameEvent::WinLimitChanged( - WinLimitChangedEvent::read(stream, definition)?, - ) - } - GameEventType::WinPanelShowScores => { - GameEvent::WinPanelShowScores( - WinPanelShowScoresEvent::read(stream, definition)?, - ) - } - GameEventType::TopStreamsRequestFinished => { - GameEvent::TopStreamsRequestFinished( - TopStreamsRequestFinishedEvent::read(stream, definition)?, - ) - } - GameEventType::CompetitiveStateChanged => { - GameEvent::CompetitiveStateChanged( - CompetitiveStateChangedEvent::read(stream, definition)?, - ) - } - GameEventType::GlobalWarDataUpdated => { - GameEvent::GlobalWarDataUpdated( - GlobalWarDataUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::StopWatchChanged => { - GameEvent::StopWatchChanged( - StopWatchChangedEvent::read(stream, definition)?, - ) - } - GameEventType::DsStop => { - GameEvent::DsStop(DsStopEvent::read(stream, definition)?) - } - GameEventType::DsScreenshot => { - GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?) - } - GameEventType::ShowMatchSummary => { - GameEvent::ShowMatchSummary( - ShowMatchSummaryEvent::read(stream, definition)?, - ) - } - GameEventType::ExperienceChanged => { - GameEvent::ExperienceChanged( - ExperienceChangedEvent::read(stream, definition)?, - ) - } - GameEventType::BeginXpLerp => { - GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?) - } - GameEventType::MatchmakerStatsUpdated => { - GameEvent::MatchmakerStatsUpdated( - MatchmakerStatsUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::RematchVotePeriodOver => { - GameEvent::RematchVotePeriodOver( - RematchVotePeriodOverEvent::read(stream, definition)?, - ) - } - GameEventType::RematchFailedToCreate => { - GameEvent::RematchFailedToCreate( - RematchFailedToCreateEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerRematchChange => { - GameEvent::PlayerRematchChange( - PlayerRematchChangeEvent::read(stream, definition)?, - ) - } - GameEventType::PingUpdated => { - GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?) - } - GameEventType::MMStatsUpdated => { - GameEvent::MMStatsUpdated( - MMStatsUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerNextMapVoteChange => { - GameEvent::PlayerNextMapVoteChange( - PlayerNextMapVoteChangeEvent::read(stream, definition)?, - ) - } - GameEventType::VoteMapsChanged => { - GameEvent::VoteMapsChanged( - VoteMapsChangedEvent::read(stream, definition)?, - ) - } - GameEventType::ProtoDefChanged => { - GameEvent::ProtoDefChanged( - ProtoDefChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDomination => { - GameEvent::PlayerDomination( - PlayerDominationEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerRocketPackPushed => { - GameEvent::PlayerRocketPackPushed( - PlayerRocketPackPushedEvent::read(stream, definition)?, - ) - } - GameEventType::QuestRequest => { - GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?) - } - GameEventType::QuestResponse => { - GameEvent::QuestResponse( - QuestResponseEvent::read(stream, definition)?, - ) - } - GameEventType::QuestProgress => { - GameEvent::QuestProgress( - QuestProgressEvent::read(stream, definition)?, - ) - } - GameEventType::ProjectileRemoved => { - GameEvent::ProjectileRemoved( - ProjectileRemovedEvent::read(stream, definition)?, - ) - } - GameEventType::QuestMapDataChanged => { - GameEvent::QuestMapDataChanged( - QuestMapDataChangedEvent::read(stream, definition)?, - ) - } - GameEventType::GasDousedPlayerIgnited => { - GameEvent::GasDousedPlayerIgnited( - GasDousedPlayerIgnitedEvent::read(stream, definition)?, - ) - } - GameEventType::QuestTurnInState => { - GameEvent::QuestTurnInState( - QuestTurnInStateEvent::read(stream, definition)?, - ) - } - GameEventType::ItemsAcknowledged => { - GameEvent::ItemsAcknowledged( - ItemsAcknowledgedEvent::read(stream, definition)?, - ) - } - GameEventType::CapperKilled => { - GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?) - } - GameEventType::MainMenuStabilized => { - GameEvent::MainMenuStabilized( - MainMenuStabilizedEvent::read(stream, definition)?, - ) - } - GameEventType::WorldStatusChanged => { - GameEvent::WorldStatusChanged( - WorldStatusChangedEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVStatus => { - GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?) - } - GameEventType::HLTVCameraman => { - GameEvent::HLTVCameraman( - HLTVCameramanEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVRankCamera => { - GameEvent::HLTVRankCamera( - HLTVRankCameraEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVRankEntity => { - GameEvent::HLTVRankEntity( - HLTVRankEntityEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVFixed => { - GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?) - } - GameEventType::HLTVChase => { - GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?) - } - GameEventType::HLTVMessage => { - GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?) - } - GameEventType::HLTVTitle => { - GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?) - } - GameEventType::HLTVChat => { - GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?) - } - GameEventType::ReplayStartRecord => { - GameEvent::ReplayStartRecord( - ReplayStartRecordEvent::read(stream, definition)?, - ) - } - GameEventType::ReplaySessionInfo => { - GameEvent::ReplaySessionInfo( - ReplaySessionInfoEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayEndRecord => { - GameEvent::ReplayEndRecord( - ReplayEndRecordEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayReplaysAvailable => { - GameEvent::ReplayReplaysAvailable( - ReplayReplaysAvailableEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayServerError => { - GameEvent::ReplayServerError( - ReplayServerErrorEvent::read(stream, definition)?, - ) - } - GameEventType::Unknown(_) => { - GameEvent::Unknown(RawGameEvent::read(stream, definition)?) - } - }, - ) - } - pub fn write( - &self, - stream: &mut BitWriteStream, - ) -> bitbuffer::Result<()> { - match &self { - GameEvent::ServerSpawn(event) => event.write(stream), - GameEvent::ServerChangeLevelFailed(event) => event.write(stream), - GameEvent::ServerShutdown(event) => event.write(stream), - GameEvent::ServerCvar(event) => event.write(stream), - GameEvent::ServerMessage(event) => event.write(stream), - GameEvent::ServerAddBan(event) => event.write(stream), - GameEvent::ServerRemoveBan(event) => event.write(stream), - GameEvent::PlayerConnect(event) => event.write(stream), - GameEvent::PlayerConnectClient(event) => event.write(stream), - GameEvent::PlayerInfo(event) => event.write(stream), - GameEvent::PlayerDisconnect(event) => event.write(stream), - GameEvent::PlayerActivate(event) => event.write(stream), - GameEvent::PlayerSay(event) => event.write(stream), - GameEvent::ClientDisconnect(event) => event.write(stream), - GameEvent::ClientBeginConnect(event) => event.write(stream), - GameEvent::ClientConnected(event) => event.write(stream), - GameEvent::ClientFullConnect(event) => event.write(stream), - GameEvent::HostQuit(event) => event.write(stream), - GameEvent::TeamInfo(event) => event.write(stream), - GameEvent::TeamScore(event) => event.write(stream), - GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream), - GameEvent::PlayerTeam(event) => event.write(stream), - GameEvent::PlayerClass(event) => event.write(stream), - GameEvent::PlayerDeath(event) => event.write(stream), - GameEvent::PlayerHurt(event) => event.write(stream), - GameEvent::PlayerChat(event) => event.write(stream), - GameEvent::PlayerScore(event) => event.write(stream), - GameEvent::PlayerSpawn(event) => event.write(stream), - GameEvent::PlayerShoot(event) => event.write(stream), - GameEvent::PlayerUse(event) => event.write(stream), - GameEvent::PlayerChangeName(event) => event.write(stream), - GameEvent::PlayerHintMessage(event) => event.write(stream), - GameEvent::BasePlayerTeleported(event) => event.write(stream), - GameEvent::GameInit(event) => event.write(stream), - GameEvent::GameNewMap(event) => event.write(stream), - GameEvent::GameStart(event) => event.write(stream), - GameEvent::GameEnd(event) => event.write(stream), - GameEvent::RoundStart(event) => event.write(stream), - GameEvent::RoundEnd(event) => event.write(stream), - GameEvent::GameMessage(event) => event.write(stream), - GameEvent::BreakBreakable(event) => event.write(stream), - GameEvent::BreakProp(event) => event.write(stream), - GameEvent::EntityKilled(event) => event.write(stream), - GameEvent::BonusUpdated(event) => event.write(stream), - GameEvent::AchievementEvent(event) => event.write(stream), - GameEvent::AchievementIncrement(event) => event.write(stream), - GameEvent::PhysgunPickup(event) => event.write(stream), - GameEvent::FlareIgniteNpc(event) => event.write(stream), - GameEvent::HelicopterGrenadePuntMiss(event) => event.write(stream), - GameEvent::UserDataDownloaded(event) => event.write(stream), - GameEvent::RagdollDissolved(event) => event.write(stream), - GameEvent::HLTVChangedMode(event) => event.write(stream), - GameEvent::HLTVChangedTarget(event) => event.write(stream), - GameEvent::VoteEnded(event) => event.write(stream), - GameEvent::VoteStarted(event) => event.write(stream), - GameEvent::VoteChanged(event) => event.write(stream), - GameEvent::VotePassed(event) => event.write(stream), - GameEvent::VoteFailed(event) => event.write(stream), - GameEvent::VoteCast(event) => event.write(stream), - GameEvent::VoteOptions(event) => event.write(stream), - GameEvent::ReplaySaved(event) => event.write(stream), - GameEvent::EnteredPerformanceMode(event) => event.write(stream), - GameEvent::BrowseReplays(event) => event.write(stream), - GameEvent::ReplayYoutubeStats(event) => event.write(stream), - GameEvent::InventoryUpdated(event) => event.write(stream), - GameEvent::CartUpdated(event) => event.write(stream), - GameEvent::StorePriceSheetUpdated(event) => event.write(stream), - GameEvent::EconInventoryConnected(event) => event.write(stream), - GameEvent::ItemSchemaInitialized(event) => event.write(stream), - GameEvent::GcNewSession(event) => event.write(stream), - GameEvent::GcLostSession(event) => event.write(stream), - GameEvent::IntroFinish(event) => event.write(stream), - GameEvent::IntroNextCamera(event) => event.write(stream), - GameEvent::PlayerChangeClass(event) => event.write(stream), - GameEvent::TfMapTimeRemaining(event) => event.write(stream), - GameEvent::TfGameOver(event) => event.write(stream), - GameEvent::CtfFlagCaptured(event) => event.write(stream), - GameEvent::ControlPointInitialized(event) => event.write(stream), - GameEvent::ControlPointUpdateImages(event) => event.write(stream), - GameEvent::ControlPointUpdateLayout(event) => event.write(stream), - GameEvent::ControlPointUpdateCapping(event) => event.write(stream), - GameEvent::ControlPointUpdateOwner(event) => event.write(stream), - GameEvent::ControlPointStartTouch(event) => event.write(stream), - GameEvent::ControlPointEndTouch(event) => event.write(stream), - GameEvent::ControlPointPulseElement(event) => event.write(stream), - GameEvent::ControlPointFakeCapture(event) => event.write(stream), - GameEvent::ControlPointFakeCaptureMultiplier(event) => event.write(stream), - GameEvent::TeamPlayRoundSelected(event) => event.write(stream), - GameEvent::TeamPlayRoundStart(event) => event.write(stream), - GameEvent::TeamPlayRoundActive(event) => event.write(stream), - GameEvent::TeamPlayWaitingBegins(event) => event.write(stream), - GameEvent::TeamPlayWaitingEnds(event) => event.write(stream), - GameEvent::TeamPlayWaitingAboutToEnd(event) => event.write(stream), - GameEvent::TeamPlayRestartRound(event) => event.write(stream), - GameEvent::TeamPlayReadyRestart(event) => event.write(stream), - GameEvent::TeamPlayRoundRestartSeconds(event) => event.write(stream), - GameEvent::TeamPlayTeamReady(event) => event.write(stream), - GameEvent::TeamPlayRoundWin(event) => event.write(stream), - GameEvent::TeamPlayUpdateTimer(event) => event.write(stream), - GameEvent::TeamPlayRoundStalemate(event) => event.write(stream), - GameEvent::TeamPlayOvertimeBegin(event) => event.write(stream), - GameEvent::TeamPlayOvertimeEnd(event) => event.write(stream), - GameEvent::TeamPlaySuddenDeathBegin(event) => event.write(stream), - GameEvent::TeamPlaySuddenDeathEnd(event) => event.write(stream), - GameEvent::TeamPlayGameOver(event) => event.write(stream), - GameEvent::TeamPlayMapTimeRemaining(event) => event.write(stream), - GameEvent::TeamPlayTimerFlash(event) => event.write(stream), - GameEvent::TeamPlayTimerTimeAdded(event) => event.write(stream), - GameEvent::TeamPlayPointStartCapture(event) => event.write(stream), - GameEvent::TeamPlayPointCaptured(event) => event.write(stream), - GameEvent::TeamPlayPointLocked(event) => event.write(stream), - GameEvent::TeamPlayPointUnlocked(event) => event.write(stream), - GameEvent::TeamPlayCaptureBroken(event) => event.write(stream), - GameEvent::TeamPlayCaptureBlocked(event) => event.write(stream), - GameEvent::TeamPlayFlagEvent(event) => event.write(stream), - GameEvent::TeamPlayWinPanel(event) => event.write(stream), - GameEvent::TeamPlayTeamBalancedPlayer(event) => event.write(stream), - GameEvent::TeamPlaySetupFinished(event) => event.write(stream), - GameEvent::TeamPlayAlert(event) => event.write(stream), - GameEvent::TrainingComplete(event) => event.write(stream), - GameEvent::ShowFreezePanel(event) => event.write(stream), - GameEvent::HideFreezePanel(event) => event.write(stream), - GameEvent::FreezeCamStarted(event) => event.write(stream), - GameEvent::LocalPlayerChangeTeam(event) => event.write(stream), - GameEvent::LocalPlayerScoreChanged(event) => event.write(stream), - GameEvent::LocalPlayerChangeClass(event) => event.write(stream), - GameEvent::LocalPlayerRespawn(event) => event.write(stream), - GameEvent::BuildingInfoChanged(event) => event.write(stream), - GameEvent::LocalPlayerChangeDisguise(event) => event.write(stream), - GameEvent::PlayerAccountChanged(event) => event.write(stream), - GameEvent::SpyPdaReset(event) => event.write(stream), - GameEvent::FlagStatusUpdate(event) => event.write(stream), - GameEvent::PlayerStatsUpdated(event) => event.write(stream), - GameEvent::PlayingCommentary(event) => event.write(stream), - GameEvent::PlayerChargeDeployed(event) => event.write(stream), - GameEvent::PlayerBuiltObject(event) => event.write(stream), - GameEvent::PlayerUpgradedObject(event) => event.write(stream), - GameEvent::PlayerCarryObject(event) => event.write(stream), - GameEvent::PlayerDropObject(event) => event.write(stream), - GameEvent::ObjectRemoved(event) => event.write(stream), - GameEvent::ObjectDestroyed(event) => event.write(stream), - GameEvent::ObjectDetonated(event) => event.write(stream), - GameEvent::AchievementEarned(event) => event.write(stream), - GameEvent::SpecTargetUpdated(event) => event.write(stream), - GameEvent::TournamentStateUpdate(event) => event.write(stream), - GameEvent::TournamentEnableCountdown(event) => event.write(stream), - GameEvent::PlayerCalledForMedic(event) => event.write(stream), - GameEvent::PlayerAskedForBall(event) => event.write(stream), - GameEvent::LocalPlayerBecameObserver(event) => event.write(stream), - GameEvent::PlayerIgnitedInv(event) => event.write(stream), - GameEvent::PlayerIgnited(event) => event.write(stream), - GameEvent::PlayerExtinguished(event) => event.write(stream), - GameEvent::PlayerTeleported(event) => event.write(stream), - GameEvent::PlayerHealedMedicCall(event) => event.write(stream), - GameEvent::LocalPlayerChargeReady(event) => event.write(stream), - GameEvent::LocalPlayerWindDown(event) => event.write(stream), - GameEvent::PlayerInvulned(event) => event.write(stream), - GameEvent::EscortSpeed(event) => event.write(stream), - GameEvent::EscortProgress(event) => event.write(stream), - GameEvent::EscortRecede(event) => event.write(stream), - GameEvent::GameUIActivated(event) => event.write(stream), - GameEvent::GameUIHidden(event) => event.write(stream), - GameEvent::PlayerEscortScore(event) => event.write(stream), - GameEvent::PlayerHealOnHit(event) => event.write(stream), - GameEvent::PlayerStealSandvich(event) => event.write(stream), - GameEvent::ShowClassLayout(event) => event.write(stream), - GameEvent::ShowVsPanel(event) => event.write(stream), - GameEvent::PlayerDamaged(event) => event.write(stream), - GameEvent::ArenaPlayerNotification(event) => event.write(stream), - GameEvent::ArenaMatchMaxStreak(event) => event.write(stream), - GameEvent::ArenaRoundStart(event) => event.write(stream), - GameEvent::ArenaWinPanel(event) => event.write(stream), - GameEvent::PveWinPanel(event) => event.write(stream), - GameEvent::AirDash(event) => event.write(stream), - GameEvent::Landed(event) => event.write(stream), - GameEvent::PlayerDamageDodged(event) => event.write(stream), - GameEvent::PlayerStunned(event) => event.write(stream), - GameEvent::ScoutGrandSlam(event) => event.write(stream), - GameEvent::ScoutSlamdollLanded(event) => event.write(stream), - GameEvent::ArrowImpact(event) => event.write(stream), - GameEvent::PlayerJarated(event) => event.write(stream), - GameEvent::PlayerJaratedFade(event) => event.write(stream), - GameEvent::PlayerShieldBlocked(event) => event.write(stream), - GameEvent::PlayerPinned(event) => event.write(stream), - GameEvent::PlayerHealedByMedic(event) => event.write(stream), - GameEvent::PlayerSappedObject(event) => event.write(stream), - GameEvent::ItemFound(event) => event.write(stream), - GameEvent::ShowAnnotation(event) => event.write(stream), - GameEvent::HideAnnotation(event) => event.write(stream), - GameEvent::PostInventoryApplication(event) => event.write(stream), - GameEvent::ControlPointUnlockUpdated(event) => event.write(stream), - GameEvent::DeployBuffBanner(event) => event.write(stream), - GameEvent::PlayerBuff(event) => event.write(stream), - GameEvent::MedicDeath(event) => event.write(stream), - GameEvent::OvertimeNag(event) => event.write(stream), - GameEvent::TeamsChanged(event) => event.write(stream), - GameEvent::HalloweenPumpkinGrab(event) => event.write(stream), - GameEvent::RocketJump(event) => event.write(stream), - GameEvent::RocketJumpLanded(event) => event.write(stream), - GameEvent::StickyJump(event) => event.write(stream), - GameEvent::StickyJumpLanded(event) => event.write(stream), - GameEvent::RocketPackLaunch(event) => event.write(stream), - GameEvent::RocketPackLanded(event) => event.write(stream), - GameEvent::MedicDefended(event) => event.write(stream), - GameEvent::LocalPlayerHealed(event) => event.write(stream), - GameEvent::PlayerDestroyedPipeBomb(event) => event.write(stream), - GameEvent::ObjectDeflected(event) => event.write(stream), - GameEvent::PlayerMvp(event) => event.write(stream), - GameEvent::RaidSpawnMob(event) => event.write(stream), - GameEvent::RaidSpawnSquad(event) => event.write(stream), - GameEvent::NavBlocked(event) => event.write(stream), - GameEvent::PathTrackPassed(event) => event.write(stream), - GameEvent::NumCappersChanged(event) => event.write(stream), - GameEvent::PlayerRegenerate(event) => event.write(stream), - GameEvent::UpdateStatusItem(event) => event.write(stream), - GameEvent::StatsResetRound(event) => event.write(stream), - GameEvent::ScoreStatsAccumulatedUpdate(event) => event.write(stream), - GameEvent::ScoreStatsAccumulatedReset(event) => event.write(stream), - GameEvent::AchievementEarnedLocal(event) => event.write(stream), - GameEvent::PlayerHealed(event) => event.write(stream), - GameEvent::BuildingHealed(event) => event.write(stream), - GameEvent::ItemPickup(event) => event.write(stream), - GameEvent::DuelStatus(event) => event.write(stream), - GameEvent::FishNotice(event) => event.write(stream), - GameEvent::FishNoticeArm(event) => event.write(stream), - GameEvent::SlapNotice(event) => event.write(stream), - GameEvent::ThrowableHit(event) => event.write(stream), - GameEvent::PumpkinLordSummoned(event) => event.write(stream), - GameEvent::PumpkinLordKilled(event) => event.write(stream), - GameEvent::MerasmusSummoned(event) => event.write(stream), - GameEvent::MerasmusKilled(event) => event.write(stream), - GameEvent::MerasmusEscapeWarning(event) => event.write(stream), - GameEvent::MerasmusEscaped(event) => event.write(stream), - GameEvent::EyeballBossSummoned(event) => event.write(stream), - GameEvent::EyeballBossStunned(event) => event.write(stream), - GameEvent::EyeballBossKilled(event) => event.write(stream), - GameEvent::EyeballBossKiller(event) => event.write(stream), - GameEvent::EyeballBossEscapeImminent(event) => event.write(stream), - GameEvent::EyeballBossEscaped(event) => event.write(stream), - GameEvent::NpcHurt(event) => event.write(stream), + Ok(match definition.event_type { + GameEventType::ServerSpawn => { + GameEvent::ServerSpawn(Box::new(::read(stream, definition)?)) + } + GameEventType::ServerChangeLevelFailed => GameEvent::ServerChangeLevelFailed( + ServerChangeLevelFailedEvent::read(stream, definition)?, + ), + GameEventType::ServerShutdown => { + GameEvent::ServerShutdown(ServerShutdownEvent::read(stream, definition)?) + } + GameEventType::ServerCvar => { + GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?) + } + GameEventType::ServerMessage => { + GameEvent::ServerMessage(ServerMessageEvent::read(stream, definition)?) + } + GameEventType::ServerAddBan => { + GameEvent::ServerAddBan(Box::new(::read(stream, definition)?)) + } + GameEventType::ServerRemoveBan => { + GameEvent::ServerRemoveBan(ServerRemoveBanEvent::read(stream, definition)?) + } + GameEventType::PlayerConnect => { + GameEvent::PlayerConnect(PlayerConnectEvent::read(stream, definition)?) + } + GameEventType::PlayerConnectClient => { + GameEvent::PlayerConnectClient(PlayerConnectClientEvent::read(stream, definition)?) + } + GameEventType::PlayerInfo => { + GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?) + } + GameEventType::PlayerDisconnect => { + GameEvent::PlayerDisconnect(PlayerDisconnectEvent::read(stream, definition)?) + } + GameEventType::PlayerActivate => { + GameEvent::PlayerActivate(PlayerActivateEvent::read(stream, definition)?) + } + GameEventType::PlayerSay => { + GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?) + } + GameEventType::ClientDisconnect => { + GameEvent::ClientDisconnect(ClientDisconnectEvent::read(stream, definition)?) + } + GameEventType::ClientBeginConnect => { + GameEvent::ClientBeginConnect(ClientBeginConnectEvent::read(stream, definition)?) + } + GameEventType::ClientConnected => { + GameEvent::ClientConnected(ClientConnectedEvent::read(stream, definition)?) + } + GameEventType::ClientFullConnect => { + GameEvent::ClientFullConnect(ClientFullConnectEvent::read(stream, definition)?) + } + GameEventType::HostQuit => { + GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?) + } + GameEventType::TeamInfo => { + GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?) + } + GameEventType::TeamScore => { + GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?) + } + GameEventType::TeamPlayBroadcastAudio => GameEvent::TeamPlayBroadcastAudio( + TeamPlayBroadcastAudioEvent::read(stream, definition)?, + ), + GameEventType::PlayerTeam => { + GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?) + } + GameEventType::PlayerClass => { + GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?) + } + GameEventType::PlayerDeath => { + GameEvent::PlayerDeath(Box::new(::read(stream, definition)?)) + } + GameEventType::PlayerHurt => { + GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?) + } + GameEventType::PlayerChat => { + GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?) + } + GameEventType::PlayerScore => { + GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?) + } + GameEventType::PlayerSpawn => { + GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?) + } + GameEventType::PlayerShoot => { + GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?) + } + GameEventType::PlayerUse => { + GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?) + } + GameEventType::PlayerChangeName => { + GameEvent::PlayerChangeName(PlayerChangeNameEvent::read(stream, definition)?) + } + GameEventType::PlayerHintMessage => { + GameEvent::PlayerHintMessage(PlayerHintMessageEvent::read(stream, definition)?) + } + GameEventType::BasePlayerTeleported => GameEvent::BasePlayerTeleported( + BasePlayerTeleportedEvent::read(stream, definition)?, + ), + GameEventType::GameInit => { + GameEvent::GameInit(GameInitEvent::read(stream, definition)?) + } + GameEventType::GameNewMap => { + GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?) + } + GameEventType::GameStart => { + GameEvent::GameStart(GameStartEvent::read(stream, definition)?) + } + GameEventType::GameEnd => GameEvent::GameEnd(GameEndEvent::read(stream, definition)?), + GameEventType::RoundStart => { + GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?) + } + GameEventType::RoundEnd => { + GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?) + } + GameEventType::GameMessage => { + GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?) + } + GameEventType::BreakBreakable => { + GameEvent::BreakBreakable(BreakBreakableEvent::read(stream, definition)?) + } + GameEventType::BreakProp => { + GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?) + } + GameEventType::EntityKilled => { + GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?) + } + GameEventType::BonusUpdated => { + GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?) + } + GameEventType::AchievementEvent => { + GameEvent::AchievementEvent(AchievementEventEvent::read(stream, definition)?) + } + GameEventType::AchievementIncrement => GameEvent::AchievementIncrement( + AchievementIncrementEvent::read(stream, definition)?, + ), + GameEventType::PhysgunPickup => { + GameEvent::PhysgunPickup(PhysgunPickupEvent::read(stream, definition)?) + } + GameEventType::FlareIgniteNpc => { + GameEvent::FlareIgniteNpc(FlareIgniteNpcEvent::read(stream, definition)?) + } + GameEventType::HelicopterGrenadePuntMiss => GameEvent::HelicopterGrenadePuntMiss( + HelicopterGrenadePuntMissEvent::read(stream, definition)?, + ), + GameEventType::UserDataDownloaded => { + GameEvent::UserDataDownloaded(UserDataDownloadedEvent::read(stream, definition)?) + } + GameEventType::RagdollDissolved => { + GameEvent::RagdollDissolved(RagdollDissolvedEvent::read(stream, definition)?) + } + GameEventType::HLTVChangedMode => { + GameEvent::HLTVChangedMode(HLTVChangedModeEvent::read(stream, definition)?) + } + GameEventType::HLTVChangedTarget => { + GameEvent::HLTVChangedTarget(HLTVChangedTargetEvent::read(stream, definition)?) + } + GameEventType::VoteEnded => { + GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?) + } + GameEventType::VoteStarted => { + GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?) + } + GameEventType::VoteChanged => { + GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?) + } + GameEventType::VotePassed => { + GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?) + } + GameEventType::VoteFailed => { + GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?) + } + GameEventType::VoteCast => { + GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?) + } + GameEventType::VoteOptions => { + GameEvent::VoteOptions(Box::new(::read(stream, definition)?)) + } + GameEventType::ReplaySaved => { + GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?) + } + GameEventType::EnteredPerformanceMode => GameEvent::EnteredPerformanceMode( + EnteredPerformanceModeEvent::read(stream, definition)?, + ), + GameEventType::BrowseReplays => { + GameEvent::BrowseReplays(BrowseReplaysEvent::read(stream, definition)?) + } + GameEventType::ReplayYoutubeStats => { + GameEvent::ReplayYoutubeStats(ReplayYoutubeStatsEvent::read(stream, definition)?) + } + GameEventType::InventoryUpdated => { + GameEvent::InventoryUpdated(InventoryUpdatedEvent::read(stream, definition)?) + } + GameEventType::CartUpdated => { + GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?) + } + GameEventType::StorePriceSheetUpdated => GameEvent::StorePriceSheetUpdated( + StorePriceSheetUpdatedEvent::read(stream, definition)?, + ), + GameEventType::EconInventoryConnected => GameEvent::EconInventoryConnected( + EconInventoryConnectedEvent::read(stream, definition)?, + ), + GameEventType::ItemSchemaInitialized => GameEvent::ItemSchemaInitialized( + ItemSchemaInitializedEvent::read(stream, definition)?, + ), + GameEventType::GcNewSession => { + GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?) + } + GameEventType::GcLostSession => { + GameEvent::GcLostSession(GcLostSessionEvent::read(stream, definition)?) + } + GameEventType::IntroFinish => { + GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?) + } + GameEventType::IntroNextCamera => { + GameEvent::IntroNextCamera(IntroNextCameraEvent::read(stream, definition)?) + } + GameEventType::PlayerChangeClass => { + GameEvent::PlayerChangeClass(PlayerChangeClassEvent::read(stream, definition)?) + } + GameEventType::TfMapTimeRemaining => { + GameEvent::TfMapTimeRemaining(TfMapTimeRemainingEvent::read(stream, definition)?) + } + GameEventType::TfGameOver => { + GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?) + } + GameEventType::CtfFlagCaptured => { + GameEvent::CtfFlagCaptured(CtfFlagCapturedEvent::read(stream, definition)?) + } + GameEventType::ControlPointInitialized => GameEvent::ControlPointInitialized( + ControlPointInitializedEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateImages => GameEvent::ControlPointUpdateImages( + ControlPointUpdateImagesEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateLayout => GameEvent::ControlPointUpdateLayout( + ControlPointUpdateLayoutEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateCapping => GameEvent::ControlPointUpdateCapping( + ControlPointUpdateCappingEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateOwner => GameEvent::ControlPointUpdateOwner( + ControlPointUpdateOwnerEvent::read(stream, definition)?, + ), + GameEventType::ControlPointStartTouch => GameEvent::ControlPointStartTouch( + ControlPointStartTouchEvent::read(stream, definition)?, + ), + GameEventType::ControlPointEndTouch => GameEvent::ControlPointEndTouch( + ControlPointEndTouchEvent::read(stream, definition)?, + ), + GameEventType::ControlPointPulseElement => GameEvent::ControlPointPulseElement( + ControlPointPulseElementEvent::read(stream, definition)?, + ), + GameEventType::ControlPointFakeCapture => GameEvent::ControlPointFakeCapture( + ControlPointFakeCaptureEvent::read(stream, definition)?, + ), + GameEventType::ControlPointFakeCaptureMultiplier => { + GameEvent::ControlPointFakeCaptureMultiplier( + ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundSelected => GameEvent::TeamPlayRoundSelected( + TeamPlayRoundSelectedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayRoundStart => { + GameEvent::TeamPlayRoundStart(TeamPlayRoundStartEvent::read(stream, definition)?) + } + GameEventType::TeamPlayRoundActive => { + GameEvent::TeamPlayRoundActive(TeamPlayRoundActiveEvent::read(stream, definition)?) + } + GameEventType::TeamPlayWaitingBegins => GameEvent::TeamPlayWaitingBegins( + TeamPlayWaitingBeginsEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayWaitingEnds => { + GameEvent::TeamPlayWaitingEnds(TeamPlayWaitingEndsEvent::read(stream, definition)?) + } + GameEventType::TeamPlayWaitingAboutToEnd => GameEvent::TeamPlayWaitingAboutToEnd( + TeamPlayWaitingAboutToEndEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayRestartRound => GameEvent::TeamPlayRestartRound( + TeamPlayRestartRoundEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayReadyRestart => GameEvent::TeamPlayReadyRestart( + TeamPlayReadyRestartEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayRoundRestartSeconds => GameEvent::TeamPlayRoundRestartSeconds( + TeamPlayRoundRestartSecondsEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayTeamReady => { + GameEvent::TeamPlayTeamReady(TeamPlayTeamReadyEvent::read(stream, definition)?) + } + GameEventType::TeamPlayRoundWin => { + GameEvent::TeamPlayRoundWin(TeamPlayRoundWinEvent::read(stream, definition)?) + } + GameEventType::TeamPlayUpdateTimer => { + GameEvent::TeamPlayUpdateTimer(TeamPlayUpdateTimerEvent::read(stream, definition)?) + } + GameEventType::TeamPlayRoundStalemate => GameEvent::TeamPlayRoundStalemate( + TeamPlayRoundStalemateEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayOvertimeBegin => GameEvent::TeamPlayOvertimeBegin( + TeamPlayOvertimeBeginEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayOvertimeEnd => { + GameEvent::TeamPlayOvertimeEnd(TeamPlayOvertimeEndEvent::read(stream, definition)?) + } + GameEventType::TeamPlaySuddenDeathBegin => GameEvent::TeamPlaySuddenDeathBegin( + TeamPlaySuddenDeathBeginEvent::read(stream, definition)?, + ), + GameEventType::TeamPlaySuddenDeathEnd => GameEvent::TeamPlaySuddenDeathEnd( + TeamPlaySuddenDeathEndEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayGameOver => { + GameEvent::TeamPlayGameOver(TeamPlayGameOverEvent::read(stream, definition)?) + } + GameEventType::TeamPlayMapTimeRemaining => GameEvent::TeamPlayMapTimeRemaining( + TeamPlayMapTimeRemainingEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayTimerFlash => { + GameEvent::TeamPlayTimerFlash(TeamPlayTimerFlashEvent::read(stream, definition)?) + } + GameEventType::TeamPlayTimerTimeAdded => GameEvent::TeamPlayTimerTimeAdded( + TeamPlayTimerTimeAddedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayPointStartCapture => GameEvent::TeamPlayPointStartCapture( + TeamPlayPointStartCaptureEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayPointCaptured => GameEvent::TeamPlayPointCaptured( + TeamPlayPointCapturedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayPointLocked => { + GameEvent::TeamPlayPointLocked(TeamPlayPointLockedEvent::read(stream, definition)?) + } + GameEventType::TeamPlayPointUnlocked => GameEvent::TeamPlayPointUnlocked( + TeamPlayPointUnlockedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayCaptureBroken => GameEvent::TeamPlayCaptureBroken( + TeamPlayCaptureBrokenEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayCaptureBlocked => GameEvent::TeamPlayCaptureBlocked( + TeamPlayCaptureBlockedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayFlagEvent => { + GameEvent::TeamPlayFlagEvent(TeamPlayFlagEventEvent::read(stream, definition)?) + } + GameEventType::TeamPlayWinPanel => { + GameEvent::TeamPlayWinPanel(TeamPlayWinPanelEvent::read(stream, definition)?) + } + GameEventType::TeamPlayTeamBalancedPlayer => GameEvent::TeamPlayTeamBalancedPlayer( + TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?, + ), + GameEventType::TeamPlaySetupFinished => GameEvent::TeamPlaySetupFinished( + TeamPlaySetupFinishedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayAlert => { + GameEvent::TeamPlayAlert(TeamPlayAlertEvent::read(stream, definition)?) + } + GameEventType::TrainingComplete => { + GameEvent::TrainingComplete(TrainingCompleteEvent::read(stream, definition)?) + } + GameEventType::ShowFreezePanel => { + GameEvent::ShowFreezePanel(ShowFreezePanelEvent::read(stream, definition)?) + } + GameEventType::HideFreezePanel => { + GameEvent::HideFreezePanel(HideFreezePanelEvent::read(stream, definition)?) + } + GameEventType::FreezeCamStarted => { + GameEvent::FreezeCamStarted(FreezeCamStartedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerChangeTeam => GameEvent::LocalPlayerChangeTeam( + LocalPlayerChangeTeamEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerScoreChanged => GameEvent::LocalPlayerScoreChanged( + LocalPlayerScoreChangedEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerChangeClass => GameEvent::LocalPlayerChangeClass( + LocalPlayerChangeClassEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerRespawn => { + GameEvent::LocalPlayerRespawn(LocalPlayerRespawnEvent::read(stream, definition)?) + } + GameEventType::BuildingInfoChanged => { + GameEvent::BuildingInfoChanged(BuildingInfoChangedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerChangeDisguise => GameEvent::LocalPlayerChangeDisguise( + LocalPlayerChangeDisguiseEvent::read(stream, definition)?, + ), + GameEventType::PlayerAccountChanged => GameEvent::PlayerAccountChanged( + PlayerAccountChangedEvent::read(stream, definition)?, + ), + GameEventType::SpyPdaReset => { + GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?) + } + GameEventType::FlagStatusUpdate => { + GameEvent::FlagStatusUpdate(FlagStatusUpdateEvent::read(stream, definition)?) + } + GameEventType::PlayerStatsUpdated => { + GameEvent::PlayerStatsUpdated(PlayerStatsUpdatedEvent::read(stream, definition)?) + } + GameEventType::PlayingCommentary => { + GameEvent::PlayingCommentary(PlayingCommentaryEvent::read(stream, definition)?) + } + GameEventType::PlayerChargeDeployed => GameEvent::PlayerChargeDeployed( + PlayerChargeDeployedEvent::read(stream, definition)?, + ), + GameEventType::PlayerBuiltObject => { + GameEvent::PlayerBuiltObject(PlayerBuiltObjectEvent::read(stream, definition)?) + } + GameEventType::PlayerUpgradedObject => GameEvent::PlayerUpgradedObject( + PlayerUpgradedObjectEvent::read(stream, definition)?, + ), + GameEventType::PlayerCarryObject => { + GameEvent::PlayerCarryObject(PlayerCarryObjectEvent::read(stream, definition)?) + } + GameEventType::PlayerDropObject => { + GameEvent::PlayerDropObject(PlayerDropObjectEvent::read(stream, definition)?) + } + GameEventType::ObjectRemoved => { + GameEvent::ObjectRemoved(ObjectRemovedEvent::read(stream, definition)?) + } + GameEventType::ObjectDestroyed => { + GameEvent::ObjectDestroyed(ObjectDestroyedEvent::read(stream, definition)?) + } + GameEventType::ObjectDetonated => { + GameEvent::ObjectDetonated(ObjectDetonatedEvent::read(stream, definition)?) + } + GameEventType::AchievementEarned => { + GameEvent::AchievementEarned(AchievementEarnedEvent::read(stream, definition)?) + } + GameEventType::SpecTargetUpdated => { + GameEvent::SpecTargetUpdated(SpecTargetUpdatedEvent::read(stream, definition)?) + } + GameEventType::TournamentStateUpdate => GameEvent::TournamentStateUpdate( + TournamentStateUpdateEvent::read(stream, definition)?, + ), + GameEventType::TournamentEnableCountdown => GameEvent::TournamentEnableCountdown( + TournamentEnableCountdownEvent::read(stream, definition)?, + ), + GameEventType::PlayerCalledForMedic => GameEvent::PlayerCalledForMedic( + PlayerCalledForMedicEvent::read(stream, definition)?, + ), + GameEventType::PlayerAskedForBall => { + GameEvent::PlayerAskedForBall(PlayerAskedForBallEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerBecameObserver => GameEvent::LocalPlayerBecameObserver( + LocalPlayerBecameObserverEvent::read(stream, definition)?, + ), + GameEventType::PlayerIgnitedInv => { + GameEvent::PlayerIgnitedInv(PlayerIgnitedInvEvent::read(stream, definition)?) + } + GameEventType::PlayerIgnited => { + GameEvent::PlayerIgnited(PlayerIgnitedEvent::read(stream, definition)?) + } + GameEventType::PlayerExtinguished => { + GameEvent::PlayerExtinguished(PlayerExtinguishedEvent::read(stream, definition)?) + } + GameEventType::PlayerTeleported => { + GameEvent::PlayerTeleported(PlayerTeleportedEvent::read(stream, definition)?) + } + GameEventType::PlayerHealedMedicCall => GameEvent::PlayerHealedMedicCall( + PlayerHealedMedicCallEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerChargeReady => GameEvent::LocalPlayerChargeReady( + LocalPlayerChargeReadyEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerWindDown => { + GameEvent::LocalPlayerWindDown(LocalPlayerWindDownEvent::read(stream, definition)?) + } + GameEventType::PlayerInvulned => { + GameEvent::PlayerInvulned(PlayerInvulnedEvent::read(stream, definition)?) + } + GameEventType::EscortSpeed => { + GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?) + } + GameEventType::EscortProgress => { + GameEvent::EscortProgress(EscortProgressEvent::read(stream, definition)?) + } + GameEventType::EscortRecede => { + GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?) + } + GameEventType::GameUIActivated => { + GameEvent::GameUIActivated(GameUIActivatedEvent::read(stream, definition)?) + } + GameEventType::GameUIHidden => { + GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?) + } + GameEventType::PlayerEscortScore => { + GameEvent::PlayerEscortScore(PlayerEscortScoreEvent::read(stream, definition)?) + } + GameEventType::PlayerHealOnHit => { + GameEvent::PlayerHealOnHit(PlayerHealOnHitEvent::read(stream, definition)?) + } + GameEventType::PlayerStealSandvich => { + GameEvent::PlayerStealSandvich(PlayerStealSandvichEvent::read(stream, definition)?) + } + GameEventType::ShowClassLayout => { + GameEvent::ShowClassLayout(ShowClassLayoutEvent::read(stream, definition)?) + } + GameEventType::ShowVsPanel => { + GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?) + } + GameEventType::PlayerDamaged => { + GameEvent::PlayerDamaged(PlayerDamagedEvent::read(stream, definition)?) + } + GameEventType::ArenaPlayerNotification => GameEvent::ArenaPlayerNotification( + ArenaPlayerNotificationEvent::read(stream, definition)?, + ), + GameEventType::ArenaMatchMaxStreak => { + GameEvent::ArenaMatchMaxStreak(ArenaMatchMaxStreakEvent::read(stream, definition)?) + } + GameEventType::ArenaRoundStart => { + GameEvent::ArenaRoundStart(ArenaRoundStartEvent::read(stream, definition)?) + } + GameEventType::ArenaWinPanel => { + GameEvent::ArenaWinPanel(ArenaWinPanelEvent::read(stream, definition)?) + } + GameEventType::PveWinPanel => { + GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?) + } + GameEventType::AirDash => GameEvent::AirDash(AirDashEvent::read(stream, definition)?), + GameEventType::Landed => GameEvent::Landed(LandedEvent::read(stream, definition)?), + GameEventType::PlayerDamageDodged => { + GameEvent::PlayerDamageDodged(PlayerDamageDodgedEvent::read(stream, definition)?) + } + GameEventType::PlayerStunned => { + GameEvent::PlayerStunned(PlayerStunnedEvent::read(stream, definition)?) + } + GameEventType::ScoutGrandSlam => { + GameEvent::ScoutGrandSlam(ScoutGrandSlamEvent::read(stream, definition)?) + } + GameEventType::ScoutSlamdollLanded => { + GameEvent::ScoutSlamdollLanded(ScoutSlamdollLandedEvent::read(stream, definition)?) + } + GameEventType::ArrowImpact => { + GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?) + } + GameEventType::PlayerJarated => { + GameEvent::PlayerJarated(PlayerJaratedEvent::read(stream, definition)?) + } + GameEventType::PlayerJaratedFade => { + GameEvent::PlayerJaratedFade(PlayerJaratedFadeEvent::read(stream, definition)?) + } + GameEventType::PlayerShieldBlocked => { + GameEvent::PlayerShieldBlocked(PlayerShieldBlockedEvent::read(stream, definition)?) + } + GameEventType::PlayerPinned => { + GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?) + } + GameEventType::PlayerHealedByMedic => { + GameEvent::PlayerHealedByMedic(PlayerHealedByMedicEvent::read(stream, definition)?) + } + GameEventType::PlayerSappedObject => { + GameEvent::PlayerSappedObject(PlayerSappedObjectEvent::read(stream, definition)?) + } + GameEventType::ItemFound => { + GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?) + } + GameEventType::ShowAnnotation => { + GameEvent::ShowAnnotation(ShowAnnotationEvent::read(stream, definition)?) + } + GameEventType::HideAnnotation => { + GameEvent::HideAnnotation(HideAnnotationEvent::read(stream, definition)?) + } + GameEventType::PostInventoryApplication => GameEvent::PostInventoryApplication( + PostInventoryApplicationEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUnlockUpdated => GameEvent::ControlPointUnlockUpdated( + ControlPointUnlockUpdatedEvent::read(stream, definition)?, + ), + GameEventType::DeployBuffBanner => { + GameEvent::DeployBuffBanner(DeployBuffBannerEvent::read(stream, definition)?) + } + GameEventType::PlayerBuff => { + GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?) + } + GameEventType::MedicDeath => { + GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?) + } + GameEventType::OvertimeNag => { + GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?) + } + GameEventType::TeamsChanged => { + GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?) + } + GameEventType::HalloweenPumpkinGrab => GameEvent::HalloweenPumpkinGrab( + HalloweenPumpkinGrabEvent::read(stream, definition)?, + ), + GameEventType::RocketJump => { + GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?) + } + GameEventType::RocketJumpLanded => { + GameEvent::RocketJumpLanded(RocketJumpLandedEvent::read(stream, definition)?) + } + GameEventType::StickyJump => { + GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?) + } + GameEventType::StickyJumpLanded => { + GameEvent::StickyJumpLanded(StickyJumpLandedEvent::read(stream, definition)?) + } + GameEventType::RocketPackLaunch => { + GameEvent::RocketPackLaunch(RocketPackLaunchEvent::read(stream, definition)?) + } + GameEventType::RocketPackLanded => { + GameEvent::RocketPackLanded(RocketPackLandedEvent::read(stream, definition)?) + } + GameEventType::MedicDefended => { + GameEvent::MedicDefended(MedicDefendedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerHealed => { + GameEvent::LocalPlayerHealed(LocalPlayerHealedEvent::read(stream, definition)?) + } + GameEventType::PlayerDestroyedPipeBomb => GameEvent::PlayerDestroyedPipeBomb( + PlayerDestroyedPipeBombEvent::read(stream, definition)?, + ), + GameEventType::ObjectDeflected => { + GameEvent::ObjectDeflected(ObjectDeflectedEvent::read(stream, definition)?) + } + GameEventType::PlayerMvp => { + GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?) + } + GameEventType::RaidSpawnMob => { + GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?) + } + GameEventType::RaidSpawnSquad => { + GameEvent::RaidSpawnSquad(RaidSpawnSquadEvent::read(stream, definition)?) + } + GameEventType::NavBlocked => { + GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?) + } + GameEventType::PathTrackPassed => { + GameEvent::PathTrackPassed(PathTrackPassedEvent::read(stream, definition)?) + } + GameEventType::NumCappersChanged => { + GameEvent::NumCappersChanged(NumCappersChangedEvent::read(stream, definition)?) + } + GameEventType::PlayerRegenerate => { + GameEvent::PlayerRegenerate(PlayerRegenerateEvent::read(stream, definition)?) + } + GameEventType::UpdateStatusItem => { + GameEvent::UpdateStatusItem(UpdateStatusItemEvent::read(stream, definition)?) + } + GameEventType::StatsResetRound => { + GameEvent::StatsResetRound(StatsResetRoundEvent::read(stream, definition)?) + } + GameEventType::ScoreStatsAccumulatedUpdate => GameEvent::ScoreStatsAccumulatedUpdate( + ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?, + ), + GameEventType::ScoreStatsAccumulatedReset => GameEvent::ScoreStatsAccumulatedReset( + ScoreStatsAccumulatedResetEvent::read(stream, definition)?, + ), + GameEventType::AchievementEarnedLocal => GameEvent::AchievementEarnedLocal( + AchievementEarnedLocalEvent::read(stream, definition)?, + ), + GameEventType::PlayerHealed => { + GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?) + } + GameEventType::BuildingHealed => { + GameEvent::BuildingHealed(BuildingHealedEvent::read(stream, definition)?) + } + GameEventType::ItemPickup => { + GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?) + } + GameEventType::DuelStatus => { + GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?) + } + GameEventType::FishNotice => { + GameEvent::FishNotice(Box::new(::read(stream, definition)?)) + } + GameEventType::FishNoticeArm => { + GameEvent::FishNoticeArm(Box::new(::read(stream, definition)?)) + } + GameEventType::SlapNotice => { + GameEvent::SlapNotice(Box::new(::read(stream, definition)?)) + } + GameEventType::ThrowableHit => { + GameEvent::ThrowableHit(Box::new(::read(stream, definition)?)) + } + GameEventType::PumpkinLordSummoned => { + GameEvent::PumpkinLordSummoned(PumpkinLordSummonedEvent::read(stream, definition)?) + } + GameEventType::PumpkinLordKilled => { + GameEvent::PumpkinLordKilled(PumpkinLordKilledEvent::read(stream, definition)?) + } + GameEventType::MerasmusSummoned => { + GameEvent::MerasmusSummoned(MerasmusSummonedEvent::read(stream, definition)?) + } + GameEventType::MerasmusKilled => { + GameEvent::MerasmusKilled(MerasmusKilledEvent::read(stream, definition)?) + } + GameEventType::MerasmusEscapeWarning => GameEvent::MerasmusEscapeWarning( + MerasmusEscapeWarningEvent::read(stream, definition)?, + ), + GameEventType::MerasmusEscaped => { + GameEvent::MerasmusEscaped(MerasmusEscapedEvent::read(stream, definition)?) + } + GameEventType::EyeballBossSummoned => { + GameEvent::EyeballBossSummoned(EyeballBossSummonedEvent::read(stream, definition)?) + } + GameEventType::EyeballBossStunned => { + GameEvent::EyeballBossStunned(EyeballBossStunnedEvent::read(stream, definition)?) + } + GameEventType::EyeballBossKilled => { + GameEvent::EyeballBossKilled(EyeballBossKilledEvent::read(stream, definition)?) + } + GameEventType::EyeballBossKiller => { + GameEvent::EyeballBossKiller(EyeballBossKillerEvent::read(stream, definition)?) + } + GameEventType::EyeballBossEscapeImminent => GameEvent::EyeballBossEscapeImminent( + EyeballBossEscapeImminentEvent::read(stream, definition)?, + ), + GameEventType::EyeballBossEscaped => { + GameEvent::EyeballBossEscaped(EyeballBossEscapedEvent::read(stream, definition)?) + } + GameEventType::NpcHurt => GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?), + GameEventType::ControlPointTimerUpdated => GameEvent::ControlPointTimerUpdated( + ControlPointTimerUpdatedEvent::read(stream, definition)?, + ), + GameEventType::PlayerHighFiveStart => { + GameEvent::PlayerHighFiveStart(PlayerHighFiveStartEvent::read(stream, definition)?) + } + GameEventType::PlayerHighFiveCancel => GameEvent::PlayerHighFiveCancel( + PlayerHighFiveCancelEvent::read(stream, definition)?, + ), + GameEventType::PlayerHighFiveSuccess => GameEvent::PlayerHighFiveSuccess( + PlayerHighFiveSuccessEvent::read(stream, definition)?, + ), + GameEventType::PlayerBonusPoints => { + GameEvent::PlayerBonusPoints(PlayerBonusPointsEvent::read(stream, definition)?) + } + GameEventType::PlayerUpgraded => { + GameEvent::PlayerUpgraded(PlayerUpgradedEvent::read(stream, definition)?) + } + GameEventType::PlayerBuyback => { + GameEvent::PlayerBuyback(PlayerBuybackEvent::read(stream, definition)?) + } + GameEventType::PlayerUsedPowerUpBottle => GameEvent::PlayerUsedPowerUpBottle( + PlayerUsedPowerUpBottleEvent::read(stream, definition)?, + ), + GameEventType::ChristmasGiftGrab => { + GameEvent::ChristmasGiftGrab(ChristmasGiftGrabEvent::read(stream, definition)?) + } + GameEventType::PlayerKilledAchievementZone => GameEvent::PlayerKilledAchievementZone( + PlayerKilledAchievementZoneEvent::read(stream, definition)?, + ), + GameEventType::PartyUpdated => { + GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?) + } + GameEventType::PartyPrefChanged => { + GameEvent::PartyPrefChanged(PartyPrefChangedEvent::read(stream, definition)?) + } + GameEventType::PartyCriteriaChanged => GameEvent::PartyCriteriaChanged( + PartyCriteriaChangedEvent::read(stream, definition)?, + ), + GameEventType::PartyInvitesChanged => { + GameEvent::PartyInvitesChanged(PartyInvitesChangedEvent::read(stream, definition)?) + } + GameEventType::PartyQueueStateChanged => GameEvent::PartyQueueStateChanged( + PartyQueueStateChangedEvent::read(stream, definition)?, + ), + GameEventType::PartyChat => { + GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?) + } + GameEventType::PartyMemberJoin => { + GameEvent::PartyMemberJoin(PartyMemberJoinEvent::read(stream, definition)?) + } + GameEventType::PartyMemberLeave => { + GameEvent::PartyMemberLeave(PartyMemberLeaveEvent::read(stream, definition)?) + } + GameEventType::MatchInvitesUpdated => { + GameEvent::MatchInvitesUpdated(MatchInvitesUpdatedEvent::read(stream, definition)?) + } + GameEventType::LobbyUpdated => { + GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?) + } + GameEventType::MvmMissionUpdate => { + GameEvent::MvmMissionUpdate(MvmMissionUpdateEvent::read(stream, definition)?) + } + GameEventType::RecalculateHolidays => { + GameEvent::RecalculateHolidays(RecalculateHolidaysEvent::read(stream, definition)?) + } + GameEventType::PlayerCurrencyChanged => GameEvent::PlayerCurrencyChanged( + PlayerCurrencyChangedEvent::read(stream, definition)?, + ), + GameEventType::DoomsdayRocketOpen => { + GameEvent::DoomsdayRocketOpen(DoomsdayRocketOpenEvent::read(stream, definition)?) + } + GameEventType::RemoveNemesisRelationships => GameEvent::RemoveNemesisRelationships( + RemoveNemesisRelationshipsEvent::read(stream, definition)?, + ), + GameEventType::MvmCreditBonusWave => { + GameEvent::MvmCreditBonusWave(MvmCreditBonusWaveEvent::read(stream, definition)?) + } + GameEventType::MvmCreditBonusAll => { + GameEvent::MvmCreditBonusAll(MvmCreditBonusAllEvent::read(stream, definition)?) + } + GameEventType::MvmCreditBonusAllAdvanced => GameEvent::MvmCreditBonusAllAdvanced( + MvmCreditBonusAllAdvancedEvent::read(stream, definition)?, + ), + GameEventType::MvmQuickSentryUpgrade => GameEvent::MvmQuickSentryUpgrade( + MvmQuickSentryUpgradeEvent::read(stream, definition)?, + ), + GameEventType::MvmTankDestroyedByPlayers => GameEvent::MvmTankDestroyedByPlayers( + MvmTankDestroyedByPlayersEvent::read(stream, definition)?, + ), + GameEventType::MvmKillRobotDeliveringBomb => GameEvent::MvmKillRobotDeliveringBomb( + MvmKillRobotDeliveringBombEvent::read(stream, definition)?, + ), + GameEventType::MvmPickupCurrency => { + GameEvent::MvmPickupCurrency(MvmPickupCurrencyEvent::read(stream, definition)?) + } + GameEventType::MvmBombCarrierKilled => GameEvent::MvmBombCarrierKilled( + MvmBombCarrierKilledEvent::read(stream, definition)?, + ), + GameEventType::MvmSentryBusterDetonate => GameEvent::MvmSentryBusterDetonate( + MvmSentryBusterDetonateEvent::read(stream, definition)?, + ), + GameEventType::MvmScoutMarkedForDeath => GameEvent::MvmScoutMarkedForDeath( + MvmScoutMarkedForDeathEvent::read(stream, definition)?, + ), + GameEventType::MvmMedicPowerUpShared => GameEvent::MvmMedicPowerUpShared( + MvmMedicPowerUpSharedEvent::read(stream, definition)?, + ), + GameEventType::MvmBeginWave => { + GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?) + } + GameEventType::MvmWaveComplete => { + GameEvent::MvmWaveComplete(MvmWaveCompleteEvent::read(stream, definition)?) + } + GameEventType::MvmMissionComplete => { + GameEvent::MvmMissionComplete(MvmMissionCompleteEvent::read(stream, definition)?) + } + GameEventType::MvmBombResetByPlayer => GameEvent::MvmBombResetByPlayer( + MvmBombResetByPlayerEvent::read(stream, definition)?, + ), + GameEventType::MvmBombAlarmTriggered => GameEvent::MvmBombAlarmTriggered( + MvmBombAlarmTriggeredEvent::read(stream, definition)?, + ), + GameEventType::MvmBombDeployResetByPlayer => GameEvent::MvmBombDeployResetByPlayer( + MvmBombDeployResetByPlayerEvent::read(stream, definition)?, + ), + GameEventType::MvmWaveFailed => { + GameEvent::MvmWaveFailed(MvmWaveFailedEvent::read(stream, definition)?) + } + GameEventType::MvmResetStats => { + GameEvent::MvmResetStats(MvmResetStatsEvent::read(stream, definition)?) + } + GameEventType::DamageResisted => { + GameEvent::DamageResisted(DamageResistedEvent::read(stream, definition)?) + } + GameEventType::RevivePlayerNotify => { + GameEvent::RevivePlayerNotify(RevivePlayerNotifyEvent::read(stream, definition)?) + } + GameEventType::RevivePlayerStopped => { + GameEvent::RevivePlayerStopped(RevivePlayerStoppedEvent::read(stream, definition)?) + } + GameEventType::RevivePlayerComplete => GameEvent::RevivePlayerComplete( + RevivePlayerCompleteEvent::read(stream, definition)?, + ), + GameEventType::PlayerTurnedToGhost => { + GameEvent::PlayerTurnedToGhost(PlayerTurnedToGhostEvent::read(stream, definition)?) + } + GameEventType::MedigunShieldBlockedDamage => GameEvent::MedigunShieldBlockedDamage( + MedigunShieldBlockedDamageEvent::read(stream, definition)?, + ), + GameEventType::MvmAdvWaveCompleteNoGates => GameEvent::MvmAdvWaveCompleteNoGates( + MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?, + ), + GameEventType::MvmSniperHeadshotCurrency => GameEvent::MvmSniperHeadshotCurrency( + MvmSniperHeadshotCurrencyEvent::read(stream, definition)?, + ), + GameEventType::MvmMannhattanPit => { + GameEvent::MvmMannhattanPit(MvmMannhattanPitEvent::read(stream, definition)?) + } + GameEventType::FlagCarriedInDetectionZone => GameEvent::FlagCarriedInDetectionZone( + FlagCarriedInDetectionZoneEvent::read(stream, definition)?, + ), + GameEventType::MvmAdvWaveKilledStunRadio => GameEvent::MvmAdvWaveKilledStunRadio( + MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?, + ), + GameEventType::PlayerDirectHitStun => { + GameEvent::PlayerDirectHitStun(PlayerDirectHitStunEvent::read(stream, definition)?) + } + GameEventType::MvmSentryBusterKilled => GameEvent::MvmSentryBusterKilled( + MvmSentryBusterKilledEvent::read(stream, definition)?, + ), + GameEventType::UpgradesFileChanged => { + GameEvent::UpgradesFileChanged(UpgradesFileChangedEvent::read(stream, definition)?) + } + GameEventType::RdTeamPointsChanged => { + GameEvent::RdTeamPointsChanged(RdTeamPointsChangedEvent::read(stream, definition)?) + } + GameEventType::RdRulesStateChanged => { + GameEvent::RdRulesStateChanged(RdRulesStateChangedEvent::read(stream, definition)?) + } + GameEventType::RdRobotKilled => { + GameEvent::RdRobotKilled(RdRobotKilledEvent::read(stream, definition)?) + } + GameEventType::RdRobotImpact => { + GameEvent::RdRobotImpact(RdRobotImpactEvent::read(stream, definition)?) + } + GameEventType::TeamPlayPreRoundTimeLeft => GameEvent::TeamPlayPreRoundTimeLeft( + TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?, + ), + GameEventType::ParachuteDeploy => { + GameEvent::ParachuteDeploy(ParachuteDeployEvent::read(stream, definition)?) + } + GameEventType::ParachuteHolster => { + GameEvent::ParachuteHolster(ParachuteHolsterEvent::read(stream, definition)?) + } + GameEventType::KillRefillsMeter => { + GameEvent::KillRefillsMeter(KillRefillsMeterEvent::read(stream, definition)?) + } + GameEventType::RpsTauntEvent => { + GameEvent::RpsTauntEvent(RpsTauntEventEvent::read(stream, definition)?) + } + GameEventType::CongaKill => { + GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?) + } + GameEventType::PlayerInitialSpawn => { + GameEvent::PlayerInitialSpawn(PlayerInitialSpawnEvent::read(stream, definition)?) + } + GameEventType::CompetitiveVictory => { + GameEvent::CompetitiveVictory(CompetitiveVictoryEvent::read(stream, definition)?) + } + GameEventType::CompetitiveStatsUpdate => GameEvent::CompetitiveStatsUpdate( + CompetitiveStatsUpdateEvent::read(stream, definition)?, + ), + GameEventType::MiniGameWin => { + GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?) + } + GameEventType::SentryOnGoActive => { + GameEvent::SentryOnGoActive(SentryOnGoActiveEvent::read(stream, definition)?) + } + GameEventType::DuckXpLevelUp => { + GameEvent::DuckXpLevelUp(DuckXpLevelUpEvent::read(stream, definition)?) + } + GameEventType::QuestLogOpened => { + GameEvent::QuestLogOpened(QuestLogOpenedEvent::read(stream, definition)?) + } + GameEventType::SchemaUpdated => { + GameEvent::SchemaUpdated(SchemaUpdatedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerPickupWeapon => GameEvent::LocalPlayerPickupWeapon( + LocalPlayerPickupWeaponEvent::read(stream, definition)?, + ), + GameEventType::RdPlayerScorePoints => { + GameEvent::RdPlayerScorePoints(RdPlayerScorePointsEvent::read(stream, definition)?) + } + GameEventType::DemomanDetStickies => { + GameEvent::DemomanDetStickies(DemomanDetStickiesEvent::read(stream, definition)?) + } + GameEventType::QuestObjectiveCompleted => GameEvent::QuestObjectiveCompleted( + QuestObjectiveCompletedEvent::read(stream, definition)?, + ), + GameEventType::PlayerScoreChanged => { + GameEvent::PlayerScoreChanged(PlayerScoreChangedEvent::read(stream, definition)?) + } + GameEventType::KilledCappingPlayer => { + GameEvent::KilledCappingPlayer(KilledCappingPlayerEvent::read(stream, definition)?) + } + GameEventType::EnvironmentalDeath => { + GameEvent::EnvironmentalDeath(EnvironmentalDeathEvent::read(stream, definition)?) + } + GameEventType::ProjectileDirectHit => { + GameEvent::ProjectileDirectHit(ProjectileDirectHitEvent::read(stream, definition)?) + } + GameEventType::PassGet => GameEvent::PassGet(PassGetEvent::read(stream, definition)?), + GameEventType::PassScore => { + GameEvent::PassScore(PassScoreEvent::read(stream, definition)?) + } + GameEventType::PassFree => { + GameEvent::PassFree(PassFreeEvent::read(stream, definition)?) + } + GameEventType::PassPassCaught => { + GameEvent::PassPassCaught(PassPassCaughtEvent::read(stream, definition)?) + } + GameEventType::PassBallStolen => { + GameEvent::PassBallStolen(PassBallStolenEvent::read(stream, definition)?) + } + GameEventType::PassBallBlocked => { + GameEvent::PassBallBlocked(PassBallBlockedEvent::read(stream, definition)?) + } + GameEventType::DamagePrevented => { + GameEvent::DamagePrevented(DamagePreventedEvent::read(stream, definition)?) + } + GameEventType::HalloweenBossKilled => { + GameEvent::HalloweenBossKilled(HalloweenBossKilledEvent::read(stream, definition)?) + } + GameEventType::EscapedLootIsland => { + GameEvent::EscapedLootIsland(EscapedLootIslandEvent::read(stream, definition)?) + } + GameEventType::TaggedPlayerAsIt => { + GameEvent::TaggedPlayerAsIt(TaggedPlayerAsItEvent::read(stream, definition)?) + } + GameEventType::MerasmusStunned => { + GameEvent::MerasmusStunned(MerasmusStunnedEvent::read(stream, definition)?) + } + GameEventType::MerasmusPropFound => { + GameEvent::MerasmusPropFound(MerasmusPropFoundEvent::read(stream, definition)?) + } + GameEventType::HalloweenSkeletonKilled => GameEvent::HalloweenSkeletonKilled( + HalloweenSkeletonKilledEvent::read(stream, definition)?, + ), + GameEventType::EscapeHell => { + GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) + } + GameEventType::CrossSpectralBridge => { + GameEvent::CrossSpectralBridge(CrossSpectralBridgeEvent::read(stream, definition)?) + } + GameEventType::MiniGameWon => { + GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?) + } + GameEventType::RespawnGhost => { + GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?) + } + GameEventType::KillInHell => { + GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?) + } + GameEventType::HalloweenDuckCollected => GameEvent::HalloweenDuckCollected( + HalloweenDuckCollectedEvent::read(stream, definition)?, + ), + GameEventType::SpecialScore => { + GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?) + } + GameEventType::TeamLeaderKilled => { + GameEvent::TeamLeaderKilled(TeamLeaderKilledEvent::read(stream, definition)?) + } + GameEventType::HalloweenSoulCollected => GameEvent::HalloweenSoulCollected( + HalloweenSoulCollectedEvent::read(stream, definition)?, + ), + GameEventType::RecalculateTruce => { + GameEvent::RecalculateTruce(RecalculateTruceEvent::read(stream, definition)?) + } + GameEventType::DeadRingerCheatDeath => GameEvent::DeadRingerCheatDeath( + DeadRingerCheatDeathEvent::read(stream, definition)?, + ), + GameEventType::CrossbowHeal => { + GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?) + } + GameEventType::DamageMitigated => { + GameEvent::DamageMitigated(DamageMitigatedEvent::read(stream, definition)?) + } + GameEventType::PayloadPushed => { + GameEvent::PayloadPushed(PayloadPushedEvent::read(stream, definition)?) + } + GameEventType::PlayerAbandonedMatch => GameEvent::PlayerAbandonedMatch( + PlayerAbandonedMatchEvent::read(stream, definition)?, + ), + GameEventType::ClDrawline => { + GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?) + } + GameEventType::RestartTimerTime => { + GameEvent::RestartTimerTime(RestartTimerTimeEvent::read(stream, definition)?) + } + GameEventType::WinLimitChanged => { + GameEvent::WinLimitChanged(WinLimitChangedEvent::read(stream, definition)?) + } + GameEventType::WinPanelShowScores => { + GameEvent::WinPanelShowScores(WinPanelShowScoresEvent::read(stream, definition)?) + } + GameEventType::TopStreamsRequestFinished => GameEvent::TopStreamsRequestFinished( + TopStreamsRequestFinishedEvent::read(stream, definition)?, + ), + GameEventType::CompetitiveStateChanged => GameEvent::CompetitiveStateChanged( + CompetitiveStateChangedEvent::read(stream, definition)?, + ), + GameEventType::GlobalWarDataUpdated => GameEvent::GlobalWarDataUpdated( + GlobalWarDataUpdatedEvent::read(stream, definition)?, + ), + GameEventType::StopWatchChanged => { + GameEvent::StopWatchChanged(StopWatchChangedEvent::read(stream, definition)?) + } + GameEventType::DsStop => GameEvent::DsStop(DsStopEvent::read(stream, definition)?), + GameEventType::DsScreenshot => { + GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?) + } + GameEventType::ShowMatchSummary => { + GameEvent::ShowMatchSummary(ShowMatchSummaryEvent::read(stream, definition)?) + } + GameEventType::ExperienceChanged => { + GameEvent::ExperienceChanged(ExperienceChangedEvent::read(stream, definition)?) + } + GameEventType::BeginXpLerp => { + GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?) + } + GameEventType::MatchmakerStatsUpdated => GameEvent::MatchmakerStatsUpdated( + MatchmakerStatsUpdatedEvent::read(stream, definition)?, + ), + GameEventType::RematchVotePeriodOver => GameEvent::RematchVotePeriodOver( + RematchVotePeriodOverEvent::read(stream, definition)?, + ), + GameEventType::RematchFailedToCreate => GameEvent::RematchFailedToCreate( + RematchFailedToCreateEvent::read(stream, definition)?, + ), + GameEventType::PlayerRematchChange => { + GameEvent::PlayerRematchChange(PlayerRematchChangeEvent::read(stream, definition)?) + } + GameEventType::PingUpdated => { + GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?) + } + GameEventType::MMStatsUpdated => { + GameEvent::MMStatsUpdated(MMStatsUpdatedEvent::read(stream, definition)?) + } + GameEventType::PlayerNextMapVoteChange => GameEvent::PlayerNextMapVoteChange( + PlayerNextMapVoteChangeEvent::read(stream, definition)?, + ), + GameEventType::VoteMapsChanged => { + GameEvent::VoteMapsChanged(VoteMapsChangedEvent::read(stream, definition)?) + } + GameEventType::ProtoDefChanged => { + GameEvent::ProtoDefChanged(ProtoDefChangedEvent::read(stream, definition)?) + } + GameEventType::PlayerDomination => { + GameEvent::PlayerDomination(PlayerDominationEvent::read(stream, definition)?) + } + GameEventType::PlayerRocketPackPushed => GameEvent::PlayerRocketPackPushed( + PlayerRocketPackPushedEvent::read(stream, definition)?, + ), + GameEventType::QuestRequest => { + GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?) + } + GameEventType::QuestResponse => { + GameEvent::QuestResponse(QuestResponseEvent::read(stream, definition)?) + } + GameEventType::QuestProgress => { + GameEvent::QuestProgress(QuestProgressEvent::read(stream, definition)?) + } + GameEventType::ProjectileRemoved => { + GameEvent::ProjectileRemoved(ProjectileRemovedEvent::read(stream, definition)?) + } + GameEventType::QuestMapDataChanged => { + GameEvent::QuestMapDataChanged(QuestMapDataChangedEvent::read(stream, definition)?) + } + GameEventType::GasDousedPlayerIgnited => GameEvent::GasDousedPlayerIgnited( + GasDousedPlayerIgnitedEvent::read(stream, definition)?, + ), + GameEventType::QuestTurnInState => { + GameEvent::QuestTurnInState(QuestTurnInStateEvent::read(stream, definition)?) + } + GameEventType::ItemsAcknowledged => { + GameEvent::ItemsAcknowledged(ItemsAcknowledgedEvent::read(stream, definition)?) + } + GameEventType::CapperKilled => { + GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?) + } + GameEventType::MainMenuStabilized => { + GameEvent::MainMenuStabilized(MainMenuStabilizedEvent::read(stream, definition)?) + } + GameEventType::WorldStatusChanged => { + GameEvent::WorldStatusChanged(WorldStatusChangedEvent::read(stream, definition)?) + } + GameEventType::HLTVStatus => { + GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?) + } + GameEventType::HLTVCameraman => { + GameEvent::HLTVCameraman(HLTVCameramanEvent::read(stream, definition)?) + } + GameEventType::HLTVRankCamera => { + GameEvent::HLTVRankCamera(HLTVRankCameraEvent::read(stream, definition)?) + } + GameEventType::HLTVRankEntity => { + GameEvent::HLTVRankEntity(HLTVRankEntityEvent::read(stream, definition)?) + } + GameEventType::HLTVFixed => { + GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?) + } + GameEventType::HLTVChase => { + GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?) + } + GameEventType::HLTVMessage => { + GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?) + } + GameEventType::HLTVTitle => { + GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?) + } + GameEventType::HLTVChat => { + GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?) + } + GameEventType::ReplayStartRecord => { + GameEvent::ReplayStartRecord(ReplayStartRecordEvent::read(stream, definition)?) + } + GameEventType::ReplaySessionInfo => { + GameEvent::ReplaySessionInfo(ReplaySessionInfoEvent::read(stream, definition)?) + } + GameEventType::ReplayEndRecord => { + GameEvent::ReplayEndRecord(ReplayEndRecordEvent::read(stream, definition)?) + } + GameEventType::ReplayReplaysAvailable => GameEvent::ReplayReplaysAvailable( + ReplayReplaysAvailableEvent::read(stream, definition)?, + ), + GameEventType::ReplayServerError => { + GameEvent::ReplayServerError(ReplayServerErrorEvent::read(stream, definition)?) + } + GameEventType::Unknown(_) => { + GameEvent::Unknown(RawGameEvent::read(stream, definition)?) + } + }) + } + pub fn write(&self, stream: &mut BitWriteStream) -> bitbuffer::Result<()> { + match &self { + GameEvent::ServerSpawn(event) => event.write(stream), + GameEvent::ServerChangeLevelFailed(event) => event.write(stream), + GameEvent::ServerShutdown(event) => event.write(stream), + GameEvent::ServerCvar(event) => event.write(stream), + GameEvent::ServerMessage(event) => event.write(stream), + GameEvent::ServerAddBan(event) => event.write(stream), + GameEvent::ServerRemoveBan(event) => event.write(stream), + GameEvent::PlayerConnect(event) => event.write(stream), + GameEvent::PlayerConnectClient(event) => event.write(stream), + GameEvent::PlayerInfo(event) => event.write(stream), + GameEvent::PlayerDisconnect(event) => event.write(stream), + GameEvent::PlayerActivate(event) => event.write(stream), + GameEvent::PlayerSay(event) => event.write(stream), + GameEvent::ClientDisconnect(event) => event.write(stream), + GameEvent::ClientBeginConnect(event) => event.write(stream), + GameEvent::ClientConnected(event) => event.write(stream), + GameEvent::ClientFullConnect(event) => event.write(stream), + GameEvent::HostQuit(event) => event.write(stream), + GameEvent::TeamInfo(event) => event.write(stream), + GameEvent::TeamScore(event) => event.write(stream), + GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream), + GameEvent::PlayerTeam(event) => event.write(stream), + GameEvent::PlayerClass(event) => event.write(stream), + GameEvent::PlayerDeath(event) => event.write(stream), + GameEvent::PlayerHurt(event) => event.write(stream), + GameEvent::PlayerChat(event) => event.write(stream), + GameEvent::PlayerScore(event) => event.write(stream), + GameEvent::PlayerSpawn(event) => event.write(stream), + GameEvent::PlayerShoot(event) => event.write(stream), + GameEvent::PlayerUse(event) => event.write(stream), + GameEvent::PlayerChangeName(event) => event.write(stream), + GameEvent::PlayerHintMessage(event) => event.write(stream), + GameEvent::BasePlayerTeleported(event) => event.write(stream), + GameEvent::GameInit(event) => event.write(stream), + GameEvent::GameNewMap(event) => event.write(stream), + GameEvent::GameStart(event) => event.write(stream), + GameEvent::GameEnd(event) => event.write(stream), + GameEvent::RoundStart(event) => event.write(stream), + GameEvent::RoundEnd(event) => event.write(stream), + GameEvent::GameMessage(event) => event.write(stream), + GameEvent::BreakBreakable(event) => event.write(stream), + GameEvent::BreakProp(event) => event.write(stream), + GameEvent::EntityKilled(event) => event.write(stream), + GameEvent::BonusUpdated(event) => event.write(stream), + GameEvent::AchievementEvent(event) => event.write(stream), + GameEvent::AchievementIncrement(event) => event.write(stream), + GameEvent::PhysgunPickup(event) => event.write(stream), + GameEvent::FlareIgniteNpc(event) => event.write(stream), + GameEvent::HelicopterGrenadePuntMiss(event) => event.write(stream), + GameEvent::UserDataDownloaded(event) => event.write(stream), + GameEvent::RagdollDissolved(event) => event.write(stream), + GameEvent::HLTVChangedMode(event) => event.write(stream), + GameEvent::HLTVChangedTarget(event) => event.write(stream), + GameEvent::VoteEnded(event) => event.write(stream), + GameEvent::VoteStarted(event) => event.write(stream), + GameEvent::VoteChanged(event) => event.write(stream), + GameEvent::VotePassed(event) => event.write(stream), + GameEvent::VoteFailed(event) => event.write(stream), + GameEvent::VoteCast(event) => event.write(stream), + GameEvent::VoteOptions(event) => event.write(stream), + GameEvent::ReplaySaved(event) => event.write(stream), + GameEvent::EnteredPerformanceMode(event) => event.write(stream), + GameEvent::BrowseReplays(event) => event.write(stream), + GameEvent::ReplayYoutubeStats(event) => event.write(stream), + GameEvent::InventoryUpdated(event) => event.write(stream), + GameEvent::CartUpdated(event) => event.write(stream), + GameEvent::StorePriceSheetUpdated(event) => event.write(stream), + GameEvent::EconInventoryConnected(event) => event.write(stream), + GameEvent::ItemSchemaInitialized(event) => event.write(stream), + GameEvent::GcNewSession(event) => event.write(stream), + GameEvent::GcLostSession(event) => event.write(stream), + GameEvent::IntroFinish(event) => event.write(stream), + GameEvent::IntroNextCamera(event) => event.write(stream), + GameEvent::PlayerChangeClass(event) => event.write(stream), + GameEvent::TfMapTimeRemaining(event) => event.write(stream), + GameEvent::TfGameOver(event) => event.write(stream), + GameEvent::CtfFlagCaptured(event) => event.write(stream), + GameEvent::ControlPointInitialized(event) => event.write(stream), + GameEvent::ControlPointUpdateImages(event) => event.write(stream), + GameEvent::ControlPointUpdateLayout(event) => event.write(stream), + GameEvent::ControlPointUpdateCapping(event) => event.write(stream), + GameEvent::ControlPointUpdateOwner(event) => event.write(stream), + GameEvent::ControlPointStartTouch(event) => event.write(stream), + GameEvent::ControlPointEndTouch(event) => event.write(stream), + GameEvent::ControlPointPulseElement(event) => event.write(stream), + GameEvent::ControlPointFakeCapture(event) => event.write(stream), + GameEvent::ControlPointFakeCaptureMultiplier(event) => event.write(stream), + GameEvent::TeamPlayRoundSelected(event) => event.write(stream), + GameEvent::TeamPlayRoundStart(event) => event.write(stream), + GameEvent::TeamPlayRoundActive(event) => event.write(stream), + GameEvent::TeamPlayWaitingBegins(event) => event.write(stream), + GameEvent::TeamPlayWaitingEnds(event) => event.write(stream), + GameEvent::TeamPlayWaitingAboutToEnd(event) => event.write(stream), + GameEvent::TeamPlayRestartRound(event) => event.write(stream), + GameEvent::TeamPlayReadyRestart(event) => event.write(stream), + GameEvent::TeamPlayRoundRestartSeconds(event) => event.write(stream), + GameEvent::TeamPlayTeamReady(event) => event.write(stream), + GameEvent::TeamPlayRoundWin(event) => event.write(stream), + GameEvent::TeamPlayUpdateTimer(event) => event.write(stream), + GameEvent::TeamPlayRoundStalemate(event) => event.write(stream), + GameEvent::TeamPlayOvertimeBegin(event) => event.write(stream), + GameEvent::TeamPlayOvertimeEnd(event) => event.write(stream), + GameEvent::TeamPlaySuddenDeathBegin(event) => event.write(stream), + GameEvent::TeamPlaySuddenDeathEnd(event) => event.write(stream), + GameEvent::TeamPlayGameOver(event) => event.write(stream), + GameEvent::TeamPlayMapTimeRemaining(event) => event.write(stream), + GameEvent::TeamPlayTimerFlash(event) => event.write(stream), + GameEvent::TeamPlayTimerTimeAdded(event) => event.write(stream), + GameEvent::TeamPlayPointStartCapture(event) => event.write(stream), + GameEvent::TeamPlayPointCaptured(event) => event.write(stream), + GameEvent::TeamPlayPointLocked(event) => event.write(stream), + GameEvent::TeamPlayPointUnlocked(event) => event.write(stream), + GameEvent::TeamPlayCaptureBroken(event) => event.write(stream), + GameEvent::TeamPlayCaptureBlocked(event) => event.write(stream), + GameEvent::TeamPlayFlagEvent(event) => event.write(stream), + GameEvent::TeamPlayWinPanel(event) => event.write(stream), + GameEvent::TeamPlayTeamBalancedPlayer(event) => event.write(stream), + GameEvent::TeamPlaySetupFinished(event) => event.write(stream), + GameEvent::TeamPlayAlert(event) => event.write(stream), + GameEvent::TrainingComplete(event) => event.write(stream), + GameEvent::ShowFreezePanel(event) => event.write(stream), + GameEvent::HideFreezePanel(event) => event.write(stream), + GameEvent::FreezeCamStarted(event) => event.write(stream), + GameEvent::LocalPlayerChangeTeam(event) => event.write(stream), + GameEvent::LocalPlayerScoreChanged(event) => event.write(stream), + GameEvent::LocalPlayerChangeClass(event) => event.write(stream), + GameEvent::LocalPlayerRespawn(event) => event.write(stream), + GameEvent::BuildingInfoChanged(event) => event.write(stream), + GameEvent::LocalPlayerChangeDisguise(event) => event.write(stream), + GameEvent::PlayerAccountChanged(event) => event.write(stream), + GameEvent::SpyPdaReset(event) => event.write(stream), + GameEvent::FlagStatusUpdate(event) => event.write(stream), + GameEvent::PlayerStatsUpdated(event) => event.write(stream), + GameEvent::PlayingCommentary(event) => event.write(stream), + GameEvent::PlayerChargeDeployed(event) => event.write(stream), + GameEvent::PlayerBuiltObject(event) => event.write(stream), + GameEvent::PlayerUpgradedObject(event) => event.write(stream), + GameEvent::PlayerCarryObject(event) => event.write(stream), + GameEvent::PlayerDropObject(event) => event.write(stream), + GameEvent::ObjectRemoved(event) => event.write(stream), + GameEvent::ObjectDestroyed(event) => event.write(stream), + GameEvent::ObjectDetonated(event) => event.write(stream), + GameEvent::AchievementEarned(event) => event.write(stream), + GameEvent::SpecTargetUpdated(event) => event.write(stream), + GameEvent::TournamentStateUpdate(event) => event.write(stream), + GameEvent::TournamentEnableCountdown(event) => event.write(stream), + GameEvent::PlayerCalledForMedic(event) => event.write(stream), + GameEvent::PlayerAskedForBall(event) => event.write(stream), + GameEvent::LocalPlayerBecameObserver(event) => event.write(stream), + GameEvent::PlayerIgnitedInv(event) => event.write(stream), + GameEvent::PlayerIgnited(event) => event.write(stream), + GameEvent::PlayerExtinguished(event) => event.write(stream), + GameEvent::PlayerTeleported(event) => event.write(stream), + GameEvent::PlayerHealedMedicCall(event) => event.write(stream), + GameEvent::LocalPlayerChargeReady(event) => event.write(stream), + GameEvent::LocalPlayerWindDown(event) => event.write(stream), + GameEvent::PlayerInvulned(event) => event.write(stream), + GameEvent::EscortSpeed(event) => event.write(stream), + GameEvent::EscortProgress(event) => event.write(stream), + GameEvent::EscortRecede(event) => event.write(stream), + GameEvent::GameUIActivated(event) => event.write(stream), + GameEvent::GameUIHidden(event) => event.write(stream), + GameEvent::PlayerEscortScore(event) => event.write(stream), + GameEvent::PlayerHealOnHit(event) => event.write(stream), + GameEvent::PlayerStealSandvich(event) => event.write(stream), + GameEvent::ShowClassLayout(event) => event.write(stream), + GameEvent::ShowVsPanel(event) => event.write(stream), + GameEvent::PlayerDamaged(event) => event.write(stream), + GameEvent::ArenaPlayerNotification(event) => event.write(stream), + GameEvent::ArenaMatchMaxStreak(event) => event.write(stream), + GameEvent::ArenaRoundStart(event) => event.write(stream), + GameEvent::ArenaWinPanel(event) => event.write(stream), + GameEvent::PveWinPanel(event) => event.write(stream), + GameEvent::AirDash(event) => event.write(stream), + GameEvent::Landed(event) => event.write(stream), + GameEvent::PlayerDamageDodged(event) => event.write(stream), + GameEvent::PlayerStunned(event) => event.write(stream), + GameEvent::ScoutGrandSlam(event) => event.write(stream), + GameEvent::ScoutSlamdollLanded(event) => event.write(stream), + GameEvent::ArrowImpact(event) => event.write(stream), + GameEvent::PlayerJarated(event) => event.write(stream), + GameEvent::PlayerJaratedFade(event) => event.write(stream), + GameEvent::PlayerShieldBlocked(event) => event.write(stream), + GameEvent::PlayerPinned(event) => event.write(stream), + GameEvent::PlayerHealedByMedic(event) => event.write(stream), + GameEvent::PlayerSappedObject(event) => event.write(stream), + GameEvent::ItemFound(event) => event.write(stream), + GameEvent::ShowAnnotation(event) => event.write(stream), + GameEvent::HideAnnotation(event) => event.write(stream), + GameEvent::PostInventoryApplication(event) => event.write(stream), + GameEvent::ControlPointUnlockUpdated(event) => event.write(stream), + GameEvent::DeployBuffBanner(event) => event.write(stream), + GameEvent::PlayerBuff(event) => event.write(stream), + GameEvent::MedicDeath(event) => event.write(stream), + GameEvent::OvertimeNag(event) => event.write(stream), + GameEvent::TeamsChanged(event) => event.write(stream), + GameEvent::HalloweenPumpkinGrab(event) => event.write(stream), + GameEvent::RocketJump(event) => event.write(stream), + GameEvent::RocketJumpLanded(event) => event.write(stream), + GameEvent::StickyJump(event) => event.write(stream), + GameEvent::StickyJumpLanded(event) => event.write(stream), + GameEvent::RocketPackLaunch(event) => event.write(stream), + GameEvent::RocketPackLanded(event) => event.write(stream), + GameEvent::MedicDefended(event) => event.write(stream), + GameEvent::LocalPlayerHealed(event) => event.write(stream), + GameEvent::PlayerDestroyedPipeBomb(event) => event.write(stream), + GameEvent::ObjectDeflected(event) => event.write(stream), + GameEvent::PlayerMvp(event) => event.write(stream), + GameEvent::RaidSpawnMob(event) => event.write(stream), + GameEvent::RaidSpawnSquad(event) => event.write(stream), + GameEvent::NavBlocked(event) => event.write(stream), + GameEvent::PathTrackPassed(event) => event.write(stream), + GameEvent::NumCappersChanged(event) => event.write(stream), + GameEvent::PlayerRegenerate(event) => event.write(stream), + GameEvent::UpdateStatusItem(event) => event.write(stream), + GameEvent::StatsResetRound(event) => event.write(stream), + GameEvent::ScoreStatsAccumulatedUpdate(event) => event.write(stream), + GameEvent::ScoreStatsAccumulatedReset(event) => event.write(stream), + GameEvent::AchievementEarnedLocal(event) => event.write(stream), + GameEvent::PlayerHealed(event) => event.write(stream), + GameEvent::BuildingHealed(event) => event.write(stream), + GameEvent::ItemPickup(event) => event.write(stream), + GameEvent::DuelStatus(event) => event.write(stream), + GameEvent::FishNotice(event) => event.write(stream), + GameEvent::FishNoticeArm(event) => event.write(stream), + GameEvent::SlapNotice(event) => event.write(stream), + GameEvent::ThrowableHit(event) => event.write(stream), + GameEvent::PumpkinLordSummoned(event) => event.write(stream), + GameEvent::PumpkinLordKilled(event) => event.write(stream), + GameEvent::MerasmusSummoned(event) => event.write(stream), + GameEvent::MerasmusKilled(event) => event.write(stream), + GameEvent::MerasmusEscapeWarning(event) => event.write(stream), + GameEvent::MerasmusEscaped(event) => event.write(stream), + GameEvent::EyeballBossSummoned(event) => event.write(stream), + GameEvent::EyeballBossStunned(event) => event.write(stream), + GameEvent::EyeballBossKilled(event) => event.write(stream), + GameEvent::EyeballBossKiller(event) => event.write(stream), + GameEvent::EyeballBossEscapeImminent(event) => event.write(stream), + GameEvent::EyeballBossEscaped(event) => event.write(stream), + GameEvent::NpcHurt(event) => event.write(stream), GameEvent::ControlPointTimerUpdated(event) => event.write(stream), GameEvent::PlayerHighFiveStart(event) => event.write(stream), GameEvent::PlayerHighFiveCancel(event) => event.write(stream), @@ -10301,9 +9541,7 @@ impl GameEvent { pub fn event_type(&self) -> GameEventType { match &self { GameEvent::ServerSpawn(_) => GameEventType::ServerSpawn, - GameEvent::ServerChangeLevelFailed(_) => { - GameEventType::ServerChangeLevelFailed - } + GameEvent::ServerChangeLevelFailed(_) => GameEventType::ServerChangeLevelFailed, GameEvent::ServerShutdown(_) => GameEventType::ServerShutdown, GameEvent::ServerCvar(_) => GameEventType::ServerCvar, GameEvent::ServerMessage(_) => GameEventType::ServerMessage, @@ -10350,9 +9588,7 @@ impl GameEvent { GameEvent::AchievementIncrement(_) => GameEventType::AchievementIncrement, GameEvent::PhysgunPickup(_) => GameEventType::PhysgunPickup, GameEvent::FlareIgniteNpc(_) => GameEventType::FlareIgniteNpc, - GameEvent::HelicopterGrenadePuntMiss(_) => { - GameEventType::HelicopterGrenadePuntMiss - } + GameEvent::HelicopterGrenadePuntMiss(_) => GameEventType::HelicopterGrenadePuntMiss, GameEvent::UserDataDownloaded(_) => GameEventType::UserDataDownloaded, GameEvent::RagdollDissolved(_) => GameEventType::RagdollDissolved, GameEvent::HLTVChangedMode(_) => GameEventType::HLTVChangedMode, @@ -10381,29 +9617,15 @@ impl GameEvent { GameEvent::TfMapTimeRemaining(_) => GameEventType::TfMapTimeRemaining, GameEvent::TfGameOver(_) => GameEventType::TfGameOver, GameEvent::CtfFlagCaptured(_) => GameEventType::CtfFlagCaptured, - GameEvent::ControlPointInitialized(_) => { - GameEventType::ControlPointInitialized - } - GameEvent::ControlPointUpdateImages(_) => { - GameEventType::ControlPointUpdateImages - } - GameEvent::ControlPointUpdateLayout(_) => { - GameEventType::ControlPointUpdateLayout - } - GameEvent::ControlPointUpdateCapping(_) => { - GameEventType::ControlPointUpdateCapping - } - GameEvent::ControlPointUpdateOwner(_) => { - GameEventType::ControlPointUpdateOwner - } + GameEvent::ControlPointInitialized(_) => GameEventType::ControlPointInitialized, + GameEvent::ControlPointUpdateImages(_) => GameEventType::ControlPointUpdateImages, + GameEvent::ControlPointUpdateLayout(_) => GameEventType::ControlPointUpdateLayout, + GameEvent::ControlPointUpdateCapping(_) => GameEventType::ControlPointUpdateCapping, + GameEvent::ControlPointUpdateOwner(_) => GameEventType::ControlPointUpdateOwner, GameEvent::ControlPointStartTouch(_) => GameEventType::ControlPointStartTouch, GameEvent::ControlPointEndTouch(_) => GameEventType::ControlPointEndTouch, - GameEvent::ControlPointPulseElement(_) => { - GameEventType::ControlPointPulseElement - } - GameEvent::ControlPointFakeCapture(_) => { - GameEventType::ControlPointFakeCapture - } + GameEvent::ControlPointPulseElement(_) => GameEventType::ControlPointPulseElement, + GameEvent::ControlPointFakeCapture(_) => GameEventType::ControlPointFakeCapture, GameEvent::ControlPointFakeCaptureMultiplier(_) => { GameEventType::ControlPointFakeCaptureMultiplier } @@ -10412,33 +9634,23 @@ impl GameEvent { GameEvent::TeamPlayRoundActive(_) => GameEventType::TeamPlayRoundActive, GameEvent::TeamPlayWaitingBegins(_) => GameEventType::TeamPlayWaitingBegins, GameEvent::TeamPlayWaitingEnds(_) => GameEventType::TeamPlayWaitingEnds, - GameEvent::TeamPlayWaitingAboutToEnd(_) => { - GameEventType::TeamPlayWaitingAboutToEnd - } + GameEvent::TeamPlayWaitingAboutToEnd(_) => GameEventType::TeamPlayWaitingAboutToEnd, GameEvent::TeamPlayRestartRound(_) => GameEventType::TeamPlayRestartRound, GameEvent::TeamPlayReadyRestart(_) => GameEventType::TeamPlayReadyRestart, - GameEvent::TeamPlayRoundRestartSeconds(_) => { - GameEventType::TeamPlayRoundRestartSeconds - } + GameEvent::TeamPlayRoundRestartSeconds(_) => GameEventType::TeamPlayRoundRestartSeconds, GameEvent::TeamPlayTeamReady(_) => GameEventType::TeamPlayTeamReady, GameEvent::TeamPlayRoundWin(_) => GameEventType::TeamPlayRoundWin, GameEvent::TeamPlayUpdateTimer(_) => GameEventType::TeamPlayUpdateTimer, GameEvent::TeamPlayRoundStalemate(_) => GameEventType::TeamPlayRoundStalemate, GameEvent::TeamPlayOvertimeBegin(_) => GameEventType::TeamPlayOvertimeBegin, GameEvent::TeamPlayOvertimeEnd(_) => GameEventType::TeamPlayOvertimeEnd, - GameEvent::TeamPlaySuddenDeathBegin(_) => { - GameEventType::TeamPlaySuddenDeathBegin - } + GameEvent::TeamPlaySuddenDeathBegin(_) => GameEventType::TeamPlaySuddenDeathBegin, GameEvent::TeamPlaySuddenDeathEnd(_) => GameEventType::TeamPlaySuddenDeathEnd, GameEvent::TeamPlayGameOver(_) => GameEventType::TeamPlayGameOver, - GameEvent::TeamPlayMapTimeRemaining(_) => { - GameEventType::TeamPlayMapTimeRemaining - } + GameEvent::TeamPlayMapTimeRemaining(_) => GameEventType::TeamPlayMapTimeRemaining, GameEvent::TeamPlayTimerFlash(_) => GameEventType::TeamPlayTimerFlash, GameEvent::TeamPlayTimerTimeAdded(_) => GameEventType::TeamPlayTimerTimeAdded, - GameEvent::TeamPlayPointStartCapture(_) => { - GameEventType::TeamPlayPointStartCapture - } + GameEvent::TeamPlayPointStartCapture(_) => GameEventType::TeamPlayPointStartCapture, GameEvent::TeamPlayPointCaptured(_) => GameEventType::TeamPlayPointCaptured, GameEvent::TeamPlayPointLocked(_) => GameEventType::TeamPlayPointLocked, GameEvent::TeamPlayPointUnlocked(_) => GameEventType::TeamPlayPointUnlocked, @@ -10446,9 +9658,7 @@ impl GameEvent { GameEvent::TeamPlayCaptureBlocked(_) => GameEventType::TeamPlayCaptureBlocked, GameEvent::TeamPlayFlagEvent(_) => GameEventType::TeamPlayFlagEvent, GameEvent::TeamPlayWinPanel(_) => GameEventType::TeamPlayWinPanel, - GameEvent::TeamPlayTeamBalancedPlayer(_) => { - GameEventType::TeamPlayTeamBalancedPlayer - } + GameEvent::TeamPlayTeamBalancedPlayer(_) => GameEventType::TeamPlayTeamBalancedPlayer, GameEvent::TeamPlaySetupFinished(_) => GameEventType::TeamPlaySetupFinished, GameEvent::TeamPlayAlert(_) => GameEventType::TeamPlayAlert, GameEvent::TrainingComplete(_) => GameEventType::TrainingComplete, @@ -10456,15 +9666,11 @@ impl GameEvent { GameEvent::HideFreezePanel(_) => GameEventType::HideFreezePanel, GameEvent::FreezeCamStarted(_) => GameEventType::FreezeCamStarted, GameEvent::LocalPlayerChangeTeam(_) => GameEventType::LocalPlayerChangeTeam, - GameEvent::LocalPlayerScoreChanged(_) => { - GameEventType::LocalPlayerScoreChanged - } + GameEvent::LocalPlayerScoreChanged(_) => GameEventType::LocalPlayerScoreChanged, GameEvent::LocalPlayerChangeClass(_) => GameEventType::LocalPlayerChangeClass, GameEvent::LocalPlayerRespawn(_) => GameEventType::LocalPlayerRespawn, GameEvent::BuildingInfoChanged(_) => GameEventType::BuildingInfoChanged, - GameEvent::LocalPlayerChangeDisguise(_) => { - GameEventType::LocalPlayerChangeDisguise - } + GameEvent::LocalPlayerChangeDisguise(_) => GameEventType::LocalPlayerChangeDisguise, GameEvent::PlayerAccountChanged(_) => GameEventType::PlayerAccountChanged, GameEvent::SpyPdaReset(_) => GameEventType::SpyPdaReset, GameEvent::FlagStatusUpdate(_) => GameEventType::FlagStatusUpdate, @@ -10481,14 +9687,10 @@ impl GameEvent { GameEvent::AchievementEarned(_) => GameEventType::AchievementEarned, GameEvent::SpecTargetUpdated(_) => GameEventType::SpecTargetUpdated, GameEvent::TournamentStateUpdate(_) => GameEventType::TournamentStateUpdate, - GameEvent::TournamentEnableCountdown(_) => { - GameEventType::TournamentEnableCountdown - } + GameEvent::TournamentEnableCountdown(_) => GameEventType::TournamentEnableCountdown, GameEvent::PlayerCalledForMedic(_) => GameEventType::PlayerCalledForMedic, GameEvent::PlayerAskedForBall(_) => GameEventType::PlayerAskedForBall, - GameEvent::LocalPlayerBecameObserver(_) => { - GameEventType::LocalPlayerBecameObserver - } + GameEvent::LocalPlayerBecameObserver(_) => GameEventType::LocalPlayerBecameObserver, GameEvent::PlayerIgnitedInv(_) => GameEventType::PlayerIgnitedInv, GameEvent::PlayerIgnited(_) => GameEventType::PlayerIgnited, GameEvent::PlayerExtinguished(_) => GameEventType::PlayerExtinguished, @@ -10508,9 +9710,7 @@ impl GameEvent { GameEvent::ShowClassLayout(_) => GameEventType::ShowClassLayout, GameEvent::ShowVsPanel(_) => GameEventType::ShowVsPanel, GameEvent::PlayerDamaged(_) => GameEventType::PlayerDamaged, - GameEvent::ArenaPlayerNotification(_) => { - GameEventType::ArenaPlayerNotification - } + GameEvent::ArenaPlayerNotification(_) => GameEventType::ArenaPlayerNotification, GameEvent::ArenaMatchMaxStreak(_) => GameEventType::ArenaMatchMaxStreak, GameEvent::ArenaRoundStart(_) => GameEventType::ArenaRoundStart, GameEvent::ArenaWinPanel(_) => GameEventType::ArenaWinPanel, @@ -10531,12 +9731,8 @@ impl GameEvent { GameEvent::ItemFound(_) => GameEventType::ItemFound, GameEvent::ShowAnnotation(_) => GameEventType::ShowAnnotation, GameEvent::HideAnnotation(_) => GameEventType::HideAnnotation, - GameEvent::PostInventoryApplication(_) => { - GameEventType::PostInventoryApplication - } - GameEvent::ControlPointUnlockUpdated(_) => { - GameEventType::ControlPointUnlockUpdated - } + GameEvent::PostInventoryApplication(_) => GameEventType::PostInventoryApplication, + GameEvent::ControlPointUnlockUpdated(_) => GameEventType::ControlPointUnlockUpdated, GameEvent::DeployBuffBanner(_) => GameEventType::DeployBuffBanner, GameEvent::PlayerBuff(_) => GameEventType::PlayerBuff, GameEvent::MedicDeath(_) => GameEventType::MedicDeath, @@ -10551,9 +9747,7 @@ impl GameEvent { GameEvent::RocketPackLanded(_) => GameEventType::RocketPackLanded, GameEvent::MedicDefended(_) => GameEventType::MedicDefended, GameEvent::LocalPlayerHealed(_) => GameEventType::LocalPlayerHealed, - GameEvent::PlayerDestroyedPipeBomb(_) => { - GameEventType::PlayerDestroyedPipeBomb - } + GameEvent::PlayerDestroyedPipeBomb(_) => GameEventType::PlayerDestroyedPipeBomb, GameEvent::ObjectDeflected(_) => GameEventType::ObjectDeflected, GameEvent::PlayerMvp(_) => GameEventType::PlayerMvp, GameEvent::RaidSpawnMob(_) => GameEventType::RaidSpawnMob, @@ -10564,12 +9758,8 @@ impl GameEvent { GameEvent::PlayerRegenerate(_) => GameEventType::PlayerRegenerate, GameEvent::UpdateStatusItem(_) => GameEventType::UpdateStatusItem, GameEvent::StatsResetRound(_) => GameEventType::StatsResetRound, - GameEvent::ScoreStatsAccumulatedUpdate(_) => { - GameEventType::ScoreStatsAccumulatedUpdate - } - GameEvent::ScoreStatsAccumulatedReset(_) => { - GameEventType::ScoreStatsAccumulatedReset - } + GameEvent::ScoreStatsAccumulatedUpdate(_) => GameEventType::ScoreStatsAccumulatedUpdate, + GameEvent::ScoreStatsAccumulatedReset(_) => GameEventType::ScoreStatsAccumulatedReset, GameEvent::AchievementEarnedLocal(_) => GameEventType::AchievementEarnedLocal, GameEvent::PlayerHealed(_) => GameEventType::PlayerHealed, GameEvent::BuildingHealed(_) => GameEventType::BuildingHealed, @@ -10589,27 +9779,19 @@ impl GameEvent { GameEvent::EyeballBossStunned(_) => GameEventType::EyeballBossStunned, GameEvent::EyeballBossKilled(_) => GameEventType::EyeballBossKilled, GameEvent::EyeballBossKiller(_) => GameEventType::EyeballBossKiller, - GameEvent::EyeballBossEscapeImminent(_) => { - GameEventType::EyeballBossEscapeImminent - } + GameEvent::EyeballBossEscapeImminent(_) => GameEventType::EyeballBossEscapeImminent, GameEvent::EyeballBossEscaped(_) => GameEventType::EyeballBossEscaped, GameEvent::NpcHurt(_) => GameEventType::NpcHurt, - GameEvent::ControlPointTimerUpdated(_) => { - GameEventType::ControlPointTimerUpdated - } + GameEvent::ControlPointTimerUpdated(_) => GameEventType::ControlPointTimerUpdated, GameEvent::PlayerHighFiveStart(_) => GameEventType::PlayerHighFiveStart, GameEvent::PlayerHighFiveCancel(_) => GameEventType::PlayerHighFiveCancel, GameEvent::PlayerHighFiveSuccess(_) => GameEventType::PlayerHighFiveSuccess, GameEvent::PlayerBonusPoints(_) => GameEventType::PlayerBonusPoints, GameEvent::PlayerUpgraded(_) => GameEventType::PlayerUpgraded, GameEvent::PlayerBuyback(_) => GameEventType::PlayerBuyback, - GameEvent::PlayerUsedPowerUpBottle(_) => { - GameEventType::PlayerUsedPowerUpBottle - } + GameEvent::PlayerUsedPowerUpBottle(_) => GameEventType::PlayerUsedPowerUpBottle, GameEvent::ChristmasGiftGrab(_) => GameEventType::ChristmasGiftGrab, - GameEvent::PlayerKilledAchievementZone(_) => { - GameEventType::PlayerKilledAchievementZone - } + GameEvent::PlayerKilledAchievementZone(_) => GameEventType::PlayerKilledAchievementZone, GameEvent::PartyUpdated(_) => GameEventType::PartyUpdated, GameEvent::PartyPrefChanged(_) => GameEventType::PartyPrefChanged, GameEvent::PartyCriteriaChanged(_) => GameEventType::PartyCriteriaChanged, @@ -10624,26 +9806,16 @@ impl GameEvent { GameEvent::RecalculateHolidays(_) => GameEventType::RecalculateHolidays, GameEvent::PlayerCurrencyChanged(_) => GameEventType::PlayerCurrencyChanged, GameEvent::DoomsdayRocketOpen(_) => GameEventType::DoomsdayRocketOpen, - GameEvent::RemoveNemesisRelationships(_) => { - GameEventType::RemoveNemesisRelationships - } + GameEvent::RemoveNemesisRelationships(_) => GameEventType::RemoveNemesisRelationships, GameEvent::MvmCreditBonusWave(_) => GameEventType::MvmCreditBonusWave, GameEvent::MvmCreditBonusAll(_) => GameEventType::MvmCreditBonusAll, - GameEvent::MvmCreditBonusAllAdvanced(_) => { - GameEventType::MvmCreditBonusAllAdvanced - } + GameEvent::MvmCreditBonusAllAdvanced(_) => GameEventType::MvmCreditBonusAllAdvanced, GameEvent::MvmQuickSentryUpgrade(_) => GameEventType::MvmQuickSentryUpgrade, - GameEvent::MvmTankDestroyedByPlayers(_) => { - GameEventType::MvmTankDestroyedByPlayers - } - GameEvent::MvmKillRobotDeliveringBomb(_) => { - GameEventType::MvmKillRobotDeliveringBomb - } + GameEvent::MvmTankDestroyedByPlayers(_) => GameEventType::MvmTankDestroyedByPlayers, + GameEvent::MvmKillRobotDeliveringBomb(_) => GameEventType::MvmKillRobotDeliveringBomb, GameEvent::MvmPickupCurrency(_) => GameEventType::MvmPickupCurrency, GameEvent::MvmBombCarrierKilled(_) => GameEventType::MvmBombCarrierKilled, - GameEvent::MvmSentryBusterDetonate(_) => { - GameEventType::MvmSentryBusterDetonate - } + GameEvent::MvmSentryBusterDetonate(_) => GameEventType::MvmSentryBusterDetonate, GameEvent::MvmScoutMarkedForDeath(_) => GameEventType::MvmScoutMarkedForDeath, GameEvent::MvmMedicPowerUpShared(_) => GameEventType::MvmMedicPowerUpShared, GameEvent::MvmBeginWave(_) => GameEventType::MvmBeginWave, @@ -10651,9 +9823,7 @@ impl GameEvent { GameEvent::MvmMissionComplete(_) => GameEventType::MvmMissionComplete, GameEvent::MvmBombResetByPlayer(_) => GameEventType::MvmBombResetByPlayer, GameEvent::MvmBombAlarmTriggered(_) => GameEventType::MvmBombAlarmTriggered, - GameEvent::MvmBombDeployResetByPlayer(_) => { - GameEventType::MvmBombDeployResetByPlayer - } + GameEvent::MvmBombDeployResetByPlayer(_) => GameEventType::MvmBombDeployResetByPlayer, GameEvent::MvmWaveFailed(_) => GameEventType::MvmWaveFailed, GameEvent::MvmResetStats(_) => GameEventType::MvmResetStats, GameEvent::DamageResisted(_) => GameEventType::DamageResisted, @@ -10661,22 +9831,12 @@ impl GameEvent { GameEvent::RevivePlayerStopped(_) => GameEventType::RevivePlayerStopped, GameEvent::RevivePlayerComplete(_) => GameEventType::RevivePlayerComplete, GameEvent::PlayerTurnedToGhost(_) => GameEventType::PlayerTurnedToGhost, - GameEvent::MedigunShieldBlockedDamage(_) => { - GameEventType::MedigunShieldBlockedDamage - } - GameEvent::MvmAdvWaveCompleteNoGates(_) => { - GameEventType::MvmAdvWaveCompleteNoGates - } - GameEvent::MvmSniperHeadshotCurrency(_) => { - GameEventType::MvmSniperHeadshotCurrency - } + GameEvent::MedigunShieldBlockedDamage(_) => GameEventType::MedigunShieldBlockedDamage, + GameEvent::MvmAdvWaveCompleteNoGates(_) => GameEventType::MvmAdvWaveCompleteNoGates, + GameEvent::MvmSniperHeadshotCurrency(_) => GameEventType::MvmSniperHeadshotCurrency, GameEvent::MvmMannhattanPit(_) => GameEventType::MvmMannhattanPit, - GameEvent::FlagCarriedInDetectionZone(_) => { - GameEventType::FlagCarriedInDetectionZone - } - GameEvent::MvmAdvWaveKilledStunRadio(_) => { - GameEventType::MvmAdvWaveKilledStunRadio - } + GameEvent::FlagCarriedInDetectionZone(_) => GameEventType::FlagCarriedInDetectionZone, + GameEvent::MvmAdvWaveKilledStunRadio(_) => GameEventType::MvmAdvWaveKilledStunRadio, GameEvent::PlayerDirectHitStun(_) => GameEventType::PlayerDirectHitStun, GameEvent::MvmSentryBusterKilled(_) => GameEventType::MvmSentryBusterKilled, GameEvent::UpgradesFileChanged(_) => GameEventType::UpgradesFileChanged, @@ -10684,9 +9844,7 @@ impl GameEvent { GameEvent::RdRulesStateChanged(_) => GameEventType::RdRulesStateChanged, GameEvent::RdRobotKilled(_) => GameEventType::RdRobotKilled, GameEvent::RdRobotImpact(_) => GameEventType::RdRobotImpact, - GameEvent::TeamPlayPreRoundTimeLeft(_) => { - GameEventType::TeamPlayPreRoundTimeLeft - } + GameEvent::TeamPlayPreRoundTimeLeft(_) => GameEventType::TeamPlayPreRoundTimeLeft, GameEvent::ParachuteDeploy(_) => GameEventType::ParachuteDeploy, GameEvent::ParachuteHolster(_) => GameEventType::ParachuteHolster, GameEvent::KillRefillsMeter(_) => GameEventType::KillRefillsMeter, @@ -10700,14 +9858,10 @@ impl GameEvent { GameEvent::DuckXpLevelUp(_) => GameEventType::DuckXpLevelUp, GameEvent::QuestLogOpened(_) => GameEventType::QuestLogOpened, GameEvent::SchemaUpdated(_) => GameEventType::SchemaUpdated, - GameEvent::LocalPlayerPickupWeapon(_) => { - GameEventType::LocalPlayerPickupWeapon - } + GameEvent::LocalPlayerPickupWeapon(_) => GameEventType::LocalPlayerPickupWeapon, GameEvent::RdPlayerScorePoints(_) => GameEventType::RdPlayerScorePoints, GameEvent::DemomanDetStickies(_) => GameEventType::DemomanDetStickies, - GameEvent::QuestObjectiveCompleted(_) => { - GameEventType::QuestObjectiveCompleted - } + GameEvent::QuestObjectiveCompleted(_) => GameEventType::QuestObjectiveCompleted, GameEvent::PlayerScoreChanged(_) => GameEventType::PlayerScoreChanged, GameEvent::KilledCappingPlayer(_) => GameEventType::KilledCappingPlayer, GameEvent::EnvironmentalDeath(_) => GameEventType::EnvironmentalDeath, @@ -10724,9 +9878,7 @@ impl GameEvent { GameEvent::TaggedPlayerAsIt(_) => GameEventType::TaggedPlayerAsIt, GameEvent::MerasmusStunned(_) => GameEventType::MerasmusStunned, GameEvent::MerasmusPropFound(_) => GameEventType::MerasmusPropFound, - GameEvent::HalloweenSkeletonKilled(_) => { - GameEventType::HalloweenSkeletonKilled - } + GameEvent::HalloweenSkeletonKilled(_) => GameEventType::HalloweenSkeletonKilled, GameEvent::EscapeHell(_) => GameEventType::EscapeHell, GameEvent::CrossSpectralBridge(_) => GameEventType::CrossSpectralBridge, GameEvent::MiniGameWon(_) => GameEventType::MiniGameWon, @@ -10746,12 +9898,8 @@ impl GameEvent { GameEvent::RestartTimerTime(_) => GameEventType::RestartTimerTime, GameEvent::WinLimitChanged(_) => GameEventType::WinLimitChanged, GameEvent::WinPanelShowScores(_) => GameEventType::WinPanelShowScores, - GameEvent::TopStreamsRequestFinished(_) => { - GameEventType::TopStreamsRequestFinished - } - GameEvent::CompetitiveStateChanged(_) => { - GameEventType::CompetitiveStateChanged - } + GameEvent::TopStreamsRequestFinished(_) => GameEventType::TopStreamsRequestFinished, + GameEvent::CompetitiveStateChanged(_) => GameEventType::CompetitiveStateChanged, GameEvent::GlobalWarDataUpdated(_) => GameEventType::GlobalWarDataUpdated, GameEvent::StopWatchChanged(_) => GameEventType::StopWatchChanged, GameEvent::DsStop(_) => GameEventType::DsStop, @@ -10765,9 +9913,7 @@ impl GameEvent { GameEvent::PlayerRematchChange(_) => GameEventType::PlayerRematchChange, GameEvent::PingUpdated(_) => GameEventType::PingUpdated, GameEvent::MMStatsUpdated(_) => GameEventType::MMStatsUpdated, - GameEvent::PlayerNextMapVoteChange(_) => { - GameEventType::PlayerNextMapVoteChange - } + GameEvent::PlayerNextMapVoteChange(_) => GameEventType::PlayerNextMapVoteChange, GameEvent::VoteMapsChanged(_) => GameEventType::VoteMapsChanged, GameEvent::ProtoDefChanged(_) => GameEventType::ProtoDefChanged, GameEvent::PlayerDomination(_) => GameEventType::PlayerDomination, @@ -10804,26 +9950,53 @@ impl GameEvent { pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { [ ("ServerSpawn", std::mem::size_of::()), - ("ServerChangeLevelFailed", std::mem::size_of::()), + ( + "ServerChangeLevelFailed", + std::mem::size_of::(), + ), ("ServerShutdown", std::mem::size_of::()), ("ServerCvar", std::mem::size_of::()), ("ServerMessage", std::mem::size_of::()), ("ServerAddBan", std::mem::size_of::()), - ("ServerRemoveBan", std::mem::size_of::()), + ( + "ServerRemoveBan", + std::mem::size_of::(), + ), ("PlayerConnect", std::mem::size_of::()), - ("PlayerConnectClient", std::mem::size_of::()), + ( + "PlayerConnectClient", + std::mem::size_of::(), + ), ("PlayerInfo", std::mem::size_of::()), - ("PlayerDisconnect", std::mem::size_of::()), + ( + "PlayerDisconnect", + std::mem::size_of::(), + ), ("PlayerActivate", std::mem::size_of::()), ("PlayerSay", std::mem::size_of::()), - ("ClientDisconnect", std::mem::size_of::()), - ("ClientBeginConnect", std::mem::size_of::()), - ("ClientConnected", std::mem::size_of::()), - ("ClientFullConnect", std::mem::size_of::()), + ( + "ClientDisconnect", + std::mem::size_of::(), + ), + ( + "ClientBeginConnect", + std::mem::size_of::(), + ), + ( + "ClientConnected", + std::mem::size_of::(), + ), + ( + "ClientFullConnect", + std::mem::size_of::(), + ), ("HostQuit", std::mem::size_of::()), ("TeamInfo", std::mem::size_of::()), ("TeamScore", std::mem::size_of::()), - ("TeamPlayBroadcastAudio", std::mem::size_of::()), + ( + "TeamPlayBroadcastAudio", + std::mem::size_of::(), + ), ("PlayerTeam", std::mem::size_of::()), ("PlayerClass", std::mem::size_of::()), ("PlayerDeath", std::mem::size_of::()), @@ -10833,9 +10006,18 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("PlayerSpawn", std::mem::size_of::()), ("PlayerShoot", std::mem::size_of::()), ("PlayerUse", std::mem::size_of::()), - ("PlayerChangeName", std::mem::size_of::()), - ("PlayerHintMessage", std::mem::size_of::()), - ("BasePlayerTeleported", std::mem::size_of::()), + ( + "PlayerChangeName", + std::mem::size_of::(), + ), + ( + "PlayerHintMessage", + std::mem::size_of::(), + ), + ( + "BasePlayerTeleported", + std::mem::size_of::(), + ), ("GameInit", std::mem::size_of::()), ("GameNewMap", std::mem::size_of::()), ("GameStart", std::mem::size_of::()), @@ -10847,18 +10029,36 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("BreakProp", std::mem::size_of::()), ("EntityKilled", std::mem::size_of::()), ("BonusUpdated", std::mem::size_of::()), - ("AchievementEvent", std::mem::size_of::()), - ("AchievementIncrement", std::mem::size_of::()), + ( + "AchievementEvent", + std::mem::size_of::(), + ), + ( + "AchievementIncrement", + std::mem::size_of::(), + ), ("PhysgunPickup", std::mem::size_of::()), ("FlareIgniteNpc", std::mem::size_of::()), ( "HelicopterGrenadePuntMiss", std::mem::size_of::(), ), - ("UserDataDownloaded", std::mem::size_of::()), - ("RagdollDissolved", std::mem::size_of::()), - ("HLTVChangedMode", std::mem::size_of::()), - ("HLTVChangedTarget", std::mem::size_of::()), + ( + "UserDataDownloaded", + std::mem::size_of::(), + ), + ( + "RagdollDissolved", + std::mem::size_of::(), + ), + ( + "HLTVChangedMode", + std::mem::size_of::(), + ), + ( + "HLTVChangedTarget", + std::mem::size_of::(), + ), ("VoteEnded", std::mem::size_of::()), ("VoteStarted", std::mem::size_of::()), ("VoteChanged", std::mem::size_of::()), @@ -10867,23 +10067,56 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("VoteCast", std::mem::size_of::()), ("VoteOptions", std::mem::size_of::()), ("ReplaySaved", std::mem::size_of::()), - ("EnteredPerformanceMode", std::mem::size_of::()), + ( + "EnteredPerformanceMode", + std::mem::size_of::(), + ), ("BrowseReplays", std::mem::size_of::()), - ("ReplayYoutubeStats", std::mem::size_of::()), - ("InventoryUpdated", std::mem::size_of::()), + ( + "ReplayYoutubeStats", + std::mem::size_of::(), + ), + ( + "InventoryUpdated", + std::mem::size_of::(), + ), ("CartUpdated", std::mem::size_of::()), - ("StorePriceSheetUpdated", std::mem::size_of::()), - ("EconInventoryConnected", std::mem::size_of::()), - ("ItemSchemaInitialized", std::mem::size_of::()), + ( + "StorePriceSheetUpdated", + std::mem::size_of::(), + ), + ( + "EconInventoryConnected", + std::mem::size_of::(), + ), + ( + "ItemSchemaInitialized", + std::mem::size_of::(), + ), ("GcNewSession", std::mem::size_of::()), ("GcLostSession", std::mem::size_of::()), ("IntroFinish", std::mem::size_of::()), - ("IntroNextCamera", std::mem::size_of::()), - ("PlayerChangeClass", std::mem::size_of::()), - ("TfMapTimeRemaining", std::mem::size_of::()), + ( + "IntroNextCamera", + std::mem::size_of::(), + ), + ( + "PlayerChangeClass", + std::mem::size_of::(), + ), + ( + "TfMapTimeRemaining", + std::mem::size_of::(), + ), ("TfGameOver", std::mem::size_of::()), - ("CtfFlagCaptured", std::mem::size_of::()), - ("ControlPointInitialized", std::mem::size_of::()), + ( + "CtfFlagCaptured", + std::mem::size_of::(), + ), + ( + "ControlPointInitialized", + std::mem::size_of::(), + ), ( "ControlPointUpdateImages", std::mem::size_of::(), @@ -10896,144 +10129,366 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ControlPointUpdateCapping", std::mem::size_of::(), ), - ("ControlPointUpdateOwner", std::mem::size_of::()), - ("ControlPointStartTouch", std::mem::size_of::()), - ("ControlPointEndTouch", std::mem::size_of::()), + ( + "ControlPointUpdateOwner", + std::mem::size_of::(), + ), + ( + "ControlPointStartTouch", + std::mem::size_of::(), + ), + ( + "ControlPointEndTouch", + std::mem::size_of::(), + ), ( "ControlPointPulseElement", std::mem::size_of::(), ), - ("ControlPointFakeCapture", std::mem::size_of::()), + ( + "ControlPointFakeCapture", + std::mem::size_of::(), + ), ( "ControlPointFakeCaptureMultiplier", std::mem::size_of::(), ), - ("TeamPlayRoundSelected", std::mem::size_of::()), - ("TeamPlayRoundStart", std::mem::size_of::()), - ("TeamPlayRoundActive", std::mem::size_of::()), - ("TeamPlayWaitingBegins", std::mem::size_of::()), - ("TeamPlayWaitingEnds", std::mem::size_of::()), + ( + "TeamPlayRoundSelected", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundStart", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundActive", + std::mem::size_of::(), + ), + ( + "TeamPlayWaitingBegins", + std::mem::size_of::(), + ), + ( + "TeamPlayWaitingEnds", + std::mem::size_of::(), + ), ( "TeamPlayWaitingAboutToEnd", std::mem::size_of::(), ), - ("TeamPlayRestartRound", std::mem::size_of::()), - ("TeamPlayReadyRestart", std::mem::size_of::()), + ( + "TeamPlayRestartRound", + std::mem::size_of::(), + ), + ( + "TeamPlayReadyRestart", + std::mem::size_of::(), + ), ( "TeamPlayRoundRestartSeconds", std::mem::size_of::(), ), - ("TeamPlayTeamReady", std::mem::size_of::()), - ("TeamPlayRoundWin", std::mem::size_of::()), - ("TeamPlayUpdateTimer", std::mem::size_of::()), - ("TeamPlayRoundStalemate", std::mem::size_of::()), - ("TeamPlayOvertimeBegin", std::mem::size_of::()), - ("TeamPlayOvertimeEnd", std::mem::size_of::()), + ( + "TeamPlayTeamReady", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundWin", + std::mem::size_of::(), + ), + ( + "TeamPlayUpdateTimer", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundStalemate", + std::mem::size_of::(), + ), + ( + "TeamPlayOvertimeBegin", + std::mem::size_of::(), + ), + ( + "TeamPlayOvertimeEnd", + std::mem::size_of::(), + ), ( "TeamPlaySuddenDeathBegin", std::mem::size_of::(), ), - ("TeamPlaySuddenDeathEnd", std::mem::size_of::()), - ("TeamPlayGameOver", std::mem::size_of::()), + ( + "TeamPlaySuddenDeathEnd", + std::mem::size_of::(), + ), + ( + "TeamPlayGameOver", + std::mem::size_of::(), + ), ( "TeamPlayMapTimeRemaining", std::mem::size_of::(), ), - ("TeamPlayTimerFlash", std::mem::size_of::()), - ("TeamPlayTimerTimeAdded", std::mem::size_of::()), + ( + "TeamPlayTimerFlash", + std::mem::size_of::(), + ), + ( + "TeamPlayTimerTimeAdded", + std::mem::size_of::(), + ), ( "TeamPlayPointStartCapture", std::mem::size_of::(), ), - ("TeamPlayPointCaptured", std::mem::size_of::()), - ("TeamPlayPointLocked", std::mem::size_of::()), - ("TeamPlayPointUnlocked", std::mem::size_of::()), - ("TeamPlayCaptureBroken", std::mem::size_of::()), - ("TeamPlayCaptureBlocked", std::mem::size_of::()), - ("TeamPlayFlagEvent", std::mem::size_of::()), - ("TeamPlayWinPanel", std::mem::size_of::()), + ( + "TeamPlayPointCaptured", + std::mem::size_of::(), + ), + ( + "TeamPlayPointLocked", + std::mem::size_of::(), + ), + ( + "TeamPlayPointUnlocked", + std::mem::size_of::(), + ), + ( + "TeamPlayCaptureBroken", + std::mem::size_of::(), + ), + ( + "TeamPlayCaptureBlocked", + std::mem::size_of::(), + ), + ( + "TeamPlayFlagEvent", + std::mem::size_of::(), + ), + ( + "TeamPlayWinPanel", + std::mem::size_of::(), + ), ( "TeamPlayTeamBalancedPlayer", std::mem::size_of::(), ), - ("TeamPlaySetupFinished", std::mem::size_of::()), + ( + "TeamPlaySetupFinished", + std::mem::size_of::(), + ), ("TeamPlayAlert", std::mem::size_of::()), - ("TrainingComplete", std::mem::size_of::()), - ("ShowFreezePanel", std::mem::size_of::()), - ("HideFreezePanel", std::mem::size_of::()), - ("FreezeCamStarted", std::mem::size_of::()), - ("LocalPlayerChangeTeam", std::mem::size_of::()), - ("LocalPlayerScoreChanged", std::mem::size_of::()), - ("LocalPlayerChangeClass", std::mem::size_of::()), - ("LocalPlayerRespawn", std::mem::size_of::()), - ("BuildingInfoChanged", std::mem::size_of::()), + ( + "TrainingComplete", + std::mem::size_of::(), + ), + ( + "ShowFreezePanel", + std::mem::size_of::(), + ), + ( + "HideFreezePanel", + std::mem::size_of::(), + ), + ( + "FreezeCamStarted", + std::mem::size_of::(), + ), + ( + "LocalPlayerChangeTeam", + std::mem::size_of::(), + ), + ( + "LocalPlayerScoreChanged", + std::mem::size_of::(), + ), + ( + "LocalPlayerChangeClass", + std::mem::size_of::(), + ), + ( + "LocalPlayerRespawn", + std::mem::size_of::(), + ), + ( + "BuildingInfoChanged", + std::mem::size_of::(), + ), ( "LocalPlayerChangeDisguise", std::mem::size_of::(), ), - ("PlayerAccountChanged", std::mem::size_of::()), + ( + "PlayerAccountChanged", + std::mem::size_of::(), + ), ("SpyPdaReset", std::mem::size_of::()), - ("FlagStatusUpdate", std::mem::size_of::()), - ("PlayerStatsUpdated", std::mem::size_of::()), - ("PlayingCommentary", std::mem::size_of::()), - ("PlayerChargeDeployed", std::mem::size_of::()), - ("PlayerBuiltObject", std::mem::size_of::()), - ("PlayerUpgradedObject", std::mem::size_of::()), - ("PlayerCarryObject", std::mem::size_of::()), - ("PlayerDropObject", std::mem::size_of::()), + ( + "FlagStatusUpdate", + std::mem::size_of::(), + ), + ( + "PlayerStatsUpdated", + std::mem::size_of::(), + ), + ( + "PlayingCommentary", + std::mem::size_of::(), + ), + ( + "PlayerChargeDeployed", + std::mem::size_of::(), + ), + ( + "PlayerBuiltObject", + std::mem::size_of::(), + ), + ( + "PlayerUpgradedObject", + std::mem::size_of::(), + ), + ( + "PlayerCarryObject", + std::mem::size_of::(), + ), + ( + "PlayerDropObject", + std::mem::size_of::(), + ), ("ObjectRemoved", std::mem::size_of::()), - ("ObjectDestroyed", std::mem::size_of::()), - ("ObjectDetonated", std::mem::size_of::()), - ("AchievementEarned", std::mem::size_of::()), - ("SpecTargetUpdated", std::mem::size_of::()), - ("TournamentStateUpdate", std::mem::size_of::()), + ( + "ObjectDestroyed", + std::mem::size_of::(), + ), + ( + "ObjectDetonated", + std::mem::size_of::(), + ), + ( + "AchievementEarned", + std::mem::size_of::(), + ), + ( + "SpecTargetUpdated", + std::mem::size_of::(), + ), + ( + "TournamentStateUpdate", + std::mem::size_of::(), + ), ( "TournamentEnableCountdown", std::mem::size_of::(), ), - ("PlayerCalledForMedic", std::mem::size_of::()), - ("PlayerAskedForBall", std::mem::size_of::()), + ( + "PlayerCalledForMedic", + std::mem::size_of::(), + ), + ( + "PlayerAskedForBall", + std::mem::size_of::(), + ), ( "LocalPlayerBecameObserver", std::mem::size_of::(), ), - ("PlayerIgnitedInv", std::mem::size_of::()), + ( + "PlayerIgnitedInv", + std::mem::size_of::(), + ), ("PlayerIgnited", std::mem::size_of::()), - ("PlayerExtinguished", std::mem::size_of::()), - ("PlayerTeleported", std::mem::size_of::()), - ("PlayerHealedMedicCall", std::mem::size_of::()), - ("LocalPlayerChargeReady", std::mem::size_of::()), - ("LocalPlayerWindDown", std::mem::size_of::()), + ( + "PlayerExtinguished", + std::mem::size_of::(), + ), + ( + "PlayerTeleported", + std::mem::size_of::(), + ), + ( + "PlayerHealedMedicCall", + std::mem::size_of::(), + ), + ( + "LocalPlayerChargeReady", + std::mem::size_of::(), + ), + ( + "LocalPlayerWindDown", + std::mem::size_of::(), + ), ("PlayerInvulned", std::mem::size_of::()), ("EscortSpeed", std::mem::size_of::()), ("EscortProgress", std::mem::size_of::()), ("EscortRecede", std::mem::size_of::()), - ("GameUIActivated", std::mem::size_of::()), + ( + "GameUIActivated", + std::mem::size_of::(), + ), ("GameUIHidden", std::mem::size_of::()), - ("PlayerEscortScore", std::mem::size_of::()), - ("PlayerHealOnHit", std::mem::size_of::()), - ("PlayerStealSandvich", std::mem::size_of::()), - ("ShowClassLayout", std::mem::size_of::()), + ( + "PlayerEscortScore", + std::mem::size_of::(), + ), + ( + "PlayerHealOnHit", + std::mem::size_of::(), + ), + ( + "PlayerStealSandvich", + std::mem::size_of::(), + ), + ( + "ShowClassLayout", + std::mem::size_of::(), + ), ("ShowVsPanel", std::mem::size_of::()), ("PlayerDamaged", std::mem::size_of::()), - ("ArenaPlayerNotification", std::mem::size_of::()), - ("ArenaMatchMaxStreak", std::mem::size_of::()), - ("ArenaRoundStart", std::mem::size_of::()), + ( + "ArenaPlayerNotification", + std::mem::size_of::(), + ), + ( + "ArenaMatchMaxStreak", + std::mem::size_of::(), + ), + ( + "ArenaRoundStart", + std::mem::size_of::(), + ), ("ArenaWinPanel", std::mem::size_of::()), ("PveWinPanel", std::mem::size_of::()), ("AirDash", std::mem::size_of::()), ("Landed", std::mem::size_of::()), - ("PlayerDamageDodged", std::mem::size_of::()), + ( + "PlayerDamageDodged", + std::mem::size_of::(), + ), ("PlayerStunned", std::mem::size_of::()), ("ScoutGrandSlam", std::mem::size_of::()), - ("ScoutSlamdollLanded", std::mem::size_of::()), + ( + "ScoutSlamdollLanded", + std::mem::size_of::(), + ), ("ArrowImpact", std::mem::size_of::()), ("PlayerJarated", std::mem::size_of::()), - ("PlayerJaratedFade", std::mem::size_of::()), - ("PlayerShieldBlocked", std::mem::size_of::()), + ( + "PlayerJaratedFade", + std::mem::size_of::(), + ), + ( + "PlayerShieldBlocked", + std::mem::size_of::(), + ), ("PlayerPinned", std::mem::size_of::()), - ("PlayerHealedByMedic", std::mem::size_of::()), - ("PlayerSappedObject", std::mem::size_of::()), + ( + "PlayerHealedByMedic", + std::mem::size_of::(), + ), + ( + "PlayerSappedObject", + std::mem::size_of::(), + ), ("ItemFound", std::mem::size_of::()), ("ShowAnnotation", std::mem::size_of::()), ("HideAnnotation", std::mem::size_of::()), @@ -11045,31 +10500,73 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ControlPointUnlockUpdated", std::mem::size_of::(), ), - ("DeployBuffBanner", std::mem::size_of::()), + ( + "DeployBuffBanner", + std::mem::size_of::(), + ), ("PlayerBuff", std::mem::size_of::()), ("MedicDeath", std::mem::size_of::()), ("OvertimeNag", std::mem::size_of::()), ("TeamsChanged", std::mem::size_of::()), - ("HalloweenPumpkinGrab", std::mem::size_of::()), + ( + "HalloweenPumpkinGrab", + std::mem::size_of::(), + ), ("RocketJump", std::mem::size_of::()), - ("RocketJumpLanded", std::mem::size_of::()), + ( + "RocketJumpLanded", + std::mem::size_of::(), + ), ("StickyJump", std::mem::size_of::()), - ("StickyJumpLanded", std::mem::size_of::()), - ("RocketPackLaunch", std::mem::size_of::()), - ("RocketPackLanded", std::mem::size_of::()), + ( + "StickyJumpLanded", + std::mem::size_of::(), + ), + ( + "RocketPackLaunch", + std::mem::size_of::(), + ), + ( + "RocketPackLanded", + std::mem::size_of::(), + ), ("MedicDefended", std::mem::size_of::()), - ("LocalPlayerHealed", std::mem::size_of::()), - ("PlayerDestroyedPipeBomb", std::mem::size_of::()), - ("ObjectDeflected", std::mem::size_of::()), + ( + "LocalPlayerHealed", + std::mem::size_of::(), + ), + ( + "PlayerDestroyedPipeBomb", + std::mem::size_of::(), + ), + ( + "ObjectDeflected", + std::mem::size_of::(), + ), ("PlayerMvp", std::mem::size_of::()), ("RaidSpawnMob", std::mem::size_of::()), ("RaidSpawnSquad", std::mem::size_of::()), ("NavBlocked", std::mem::size_of::()), - ("PathTrackPassed", std::mem::size_of::()), - ("NumCappersChanged", std::mem::size_of::()), - ("PlayerRegenerate", std::mem::size_of::()), - ("UpdateStatusItem", std::mem::size_of::()), - ("StatsResetRound", std::mem::size_of::()), + ( + "PathTrackPassed", + std::mem::size_of::(), + ), + ( + "NumCappersChanged", + std::mem::size_of::(), + ), + ( + "PlayerRegenerate", + std::mem::size_of::(), + ), + ( + "UpdateStatusItem", + std::mem::size_of::(), + ), + ( + "StatsResetRound", + std::mem::size_of::(), + ), ( "ScoreStatsAccumulatedUpdate", std::mem::size_of::(), @@ -11078,7 +10575,10 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ScoreStatsAccumulatedReset", std::mem::size_of::(), ), - ("AchievementEarnedLocal", std::mem::size_of::()), + ( + "AchievementEarnedLocal", + std::mem::size_of::(), + ), ("PlayerHealed", std::mem::size_of::()), ("BuildingHealed", std::mem::size_of::()), ("ItemPickup", std::mem::size_of::()), @@ -11087,63 +10587,153 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("FishNoticeArm", std::mem::size_of::()), ("SlapNotice", std::mem::size_of::()), ("ThrowableHit", std::mem::size_of::()), - ("PumpkinLordSummoned", std::mem::size_of::()), - ("PumpkinLordKilled", std::mem::size_of::()), - ("MerasmusSummoned", std::mem::size_of::()), + ( + "PumpkinLordSummoned", + std::mem::size_of::(), + ), + ( + "PumpkinLordKilled", + std::mem::size_of::(), + ), + ( + "MerasmusSummoned", + std::mem::size_of::(), + ), ("MerasmusKilled", std::mem::size_of::()), - ("MerasmusEscapeWarning", std::mem::size_of::()), - ("MerasmusEscaped", std::mem::size_of::()), - ("EyeballBossSummoned", std::mem::size_of::()), - ("EyeballBossStunned", std::mem::size_of::()), - ("EyeballBossKilled", std::mem::size_of::()), - ("EyeballBossKiller", std::mem::size_of::()), + ( + "MerasmusEscapeWarning", + std::mem::size_of::(), + ), + ( + "MerasmusEscaped", + std::mem::size_of::(), + ), + ( + "EyeballBossSummoned", + std::mem::size_of::(), + ), + ( + "EyeballBossStunned", + std::mem::size_of::(), + ), + ( + "EyeballBossKilled", + std::mem::size_of::(), + ), + ( + "EyeballBossKiller", + std::mem::size_of::(), + ), ( "EyeballBossEscapeImminent", std::mem::size_of::(), ), - ("EyeballBossEscaped", std::mem::size_of::()), + ( + "EyeballBossEscaped", + std::mem::size_of::(), + ), ("NpcHurt", std::mem::size_of::()), ( "ControlPointTimerUpdated", std::mem::size_of::(), ), - ("PlayerHighFiveStart", std::mem::size_of::()), - ("PlayerHighFiveCancel", std::mem::size_of::()), - ("PlayerHighFiveSuccess", std::mem::size_of::()), - ("PlayerBonusPoints", std::mem::size_of::()), + ( + "PlayerHighFiveStart", + std::mem::size_of::(), + ), + ( + "PlayerHighFiveCancel", + std::mem::size_of::(), + ), + ( + "PlayerHighFiveSuccess", + std::mem::size_of::(), + ), + ( + "PlayerBonusPoints", + std::mem::size_of::(), + ), ("PlayerUpgraded", std::mem::size_of::()), ("PlayerBuyback", std::mem::size_of::()), - ("PlayerUsedPowerUpBottle", std::mem::size_of::()), - ("ChristmasGiftGrab", std::mem::size_of::()), + ( + "PlayerUsedPowerUpBottle", + std::mem::size_of::(), + ), + ( + "ChristmasGiftGrab", + std::mem::size_of::(), + ), ( "PlayerKilledAchievementZone", std::mem::size_of::(), ), ("PartyUpdated", std::mem::size_of::()), - ("PartyPrefChanged", std::mem::size_of::()), - ("PartyCriteriaChanged", std::mem::size_of::()), - ("PartyInvitesChanged", std::mem::size_of::()), - ("PartyQueueStateChanged", std::mem::size_of::()), + ( + "PartyPrefChanged", + std::mem::size_of::(), + ), + ( + "PartyCriteriaChanged", + std::mem::size_of::(), + ), + ( + "PartyInvitesChanged", + std::mem::size_of::(), + ), + ( + "PartyQueueStateChanged", + std::mem::size_of::(), + ), ("PartyChat", std::mem::size_of::()), - ("PartyMemberJoin", std::mem::size_of::()), - ("PartyMemberLeave", std::mem::size_of::()), - ("MatchInvitesUpdated", std::mem::size_of::()), + ( + "PartyMemberJoin", + std::mem::size_of::(), + ), + ( + "PartyMemberLeave", + std::mem::size_of::(), + ), + ( + "MatchInvitesUpdated", + std::mem::size_of::(), + ), ("LobbyUpdated", std::mem::size_of::()), - ("MvmMissionUpdate", std::mem::size_of::()), - ("RecalculateHolidays", std::mem::size_of::()), - ("PlayerCurrencyChanged", std::mem::size_of::()), - ("DoomsdayRocketOpen", std::mem::size_of::()), + ( + "MvmMissionUpdate", + std::mem::size_of::(), + ), + ( + "RecalculateHolidays", + std::mem::size_of::(), + ), + ( + "PlayerCurrencyChanged", + std::mem::size_of::(), + ), + ( + "DoomsdayRocketOpen", + std::mem::size_of::(), + ), ( "RemoveNemesisRelationships", std::mem::size_of::(), ), - ("MvmCreditBonusWave", std::mem::size_of::()), - ("MvmCreditBonusAll", std::mem::size_of::()), + ( + "MvmCreditBonusWave", + std::mem::size_of::(), + ), + ( + "MvmCreditBonusAll", + std::mem::size_of::(), + ), ( "MvmCreditBonusAllAdvanced", std::mem::size_of::(), ), - ("MvmQuickSentryUpgrade", std::mem::size_of::()), + ( + "MvmQuickSentryUpgrade", + std::mem::size_of::(), + ), ( "MvmTankDestroyedByPlayers", std::mem::size_of::(), @@ -11152,16 +10742,43 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmKillRobotDeliveringBomb", std::mem::size_of::(), ), - ("MvmPickupCurrency", std::mem::size_of::()), - ("MvmBombCarrierKilled", std::mem::size_of::()), - ("MvmSentryBusterDetonate", std::mem::size_of::()), - ("MvmScoutMarkedForDeath", std::mem::size_of::()), - ("MvmMedicPowerUpShared", std::mem::size_of::()), + ( + "MvmPickupCurrency", + std::mem::size_of::(), + ), + ( + "MvmBombCarrierKilled", + std::mem::size_of::(), + ), + ( + "MvmSentryBusterDetonate", + std::mem::size_of::(), + ), + ( + "MvmScoutMarkedForDeath", + std::mem::size_of::(), + ), + ( + "MvmMedicPowerUpShared", + std::mem::size_of::(), + ), ("MvmBeginWave", std::mem::size_of::()), - ("MvmWaveComplete", std::mem::size_of::()), - ("MvmMissionComplete", std::mem::size_of::()), - ("MvmBombResetByPlayer", std::mem::size_of::()), - ("MvmBombAlarmTriggered", std::mem::size_of::()), + ( + "MvmWaveComplete", + std::mem::size_of::(), + ), + ( + "MvmMissionComplete", + std::mem::size_of::(), + ), + ( + "MvmBombResetByPlayer", + std::mem::size_of::(), + ), + ( + "MvmBombAlarmTriggered", + std::mem::size_of::(), + ), ( "MvmBombDeployResetByPlayer", std::mem::size_of::(), @@ -11169,10 +10786,22 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("MvmWaveFailed", std::mem::size_of::()), ("MvmResetStats", std::mem::size_of::()), ("DamageResisted", std::mem::size_of::()), - ("RevivePlayerNotify", std::mem::size_of::()), - ("RevivePlayerStopped", std::mem::size_of::()), - ("RevivePlayerComplete", std::mem::size_of::()), - ("PlayerTurnedToGhost", std::mem::size_of::()), + ( + "RevivePlayerNotify", + std::mem::size_of::(), + ), + ( + "RevivePlayerStopped", + std::mem::size_of::(), + ), + ( + "RevivePlayerComplete", + std::mem::size_of::(), + ), + ( + "PlayerTurnedToGhost", + std::mem::size_of::(), + ), ( "MedigunShieldBlockedDamage", std::mem::size_of::(), @@ -11185,7 +10814,10 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmSniperHeadshotCurrency", std::mem::size_of::(), ), - ("MvmMannhattanPit", std::mem::size_of::()), + ( + "MvmMannhattanPit", + std::mem::size_of::(), + ), ( "FlagCarriedInDetectionZone", std::mem::size_of::(), @@ -11194,104 +10826,284 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmAdvWaveKilledStunRadio", std::mem::size_of::(), ), - ("PlayerDirectHitStun", std::mem::size_of::()), - ("MvmSentryBusterKilled", std::mem::size_of::()), - ("UpgradesFileChanged", std::mem::size_of::()), - ("RdTeamPointsChanged", std::mem::size_of::()), - ("RdRulesStateChanged", std::mem::size_of::()), + ( + "PlayerDirectHitStun", + std::mem::size_of::(), + ), + ( + "MvmSentryBusterKilled", + std::mem::size_of::(), + ), + ( + "UpgradesFileChanged", + std::mem::size_of::(), + ), + ( + "RdTeamPointsChanged", + std::mem::size_of::(), + ), + ( + "RdRulesStateChanged", + std::mem::size_of::(), + ), ("RdRobotKilled", std::mem::size_of::()), ("RdRobotImpact", std::mem::size_of::()), ( "TeamPlayPreRoundTimeLeft", std::mem::size_of::(), ), - ("ParachuteDeploy", std::mem::size_of::()), - ("ParachuteHolster", std::mem::size_of::()), - ("KillRefillsMeter", std::mem::size_of::()), + ( + "ParachuteDeploy", + std::mem::size_of::(), + ), + ( + "ParachuteHolster", + std::mem::size_of::(), + ), + ( + "KillRefillsMeter", + std::mem::size_of::(), + ), ("RpsTauntEvent", std::mem::size_of::()), ("CongaKill", std::mem::size_of::()), - ("PlayerInitialSpawn", std::mem::size_of::()), - ("CompetitiveVictory", std::mem::size_of::()), - ("CompetitiveStatsUpdate", std::mem::size_of::()), + ( + "PlayerInitialSpawn", + std::mem::size_of::(), + ), + ( + "CompetitiveVictory", + std::mem::size_of::(), + ), + ( + "CompetitiveStatsUpdate", + std::mem::size_of::(), + ), ("MiniGameWin", std::mem::size_of::()), - ("SentryOnGoActive", std::mem::size_of::()), + ( + "SentryOnGoActive", + std::mem::size_of::(), + ), ("DuckXpLevelUp", std::mem::size_of::()), ("QuestLogOpened", std::mem::size_of::()), ("SchemaUpdated", std::mem::size_of::()), - ("LocalPlayerPickupWeapon", std::mem::size_of::()), - ("RdPlayerScorePoints", std::mem::size_of::()), - ("DemomanDetStickies", std::mem::size_of::()), - ("QuestObjectiveCompleted", std::mem::size_of::()), - ("PlayerScoreChanged", std::mem::size_of::()), - ("KilledCappingPlayer", std::mem::size_of::()), - ("EnvironmentalDeath", std::mem::size_of::()), - ("ProjectileDirectHit", std::mem::size_of::()), + ( + "LocalPlayerPickupWeapon", + std::mem::size_of::(), + ), + ( + "RdPlayerScorePoints", + std::mem::size_of::(), + ), + ( + "DemomanDetStickies", + std::mem::size_of::(), + ), + ( + "QuestObjectiveCompleted", + std::mem::size_of::(), + ), + ( + "PlayerScoreChanged", + std::mem::size_of::(), + ), + ( + "KilledCappingPlayer", + std::mem::size_of::(), + ), + ( + "EnvironmentalDeath", + std::mem::size_of::(), + ), + ( + "ProjectileDirectHit", + std::mem::size_of::(), + ), ("PassGet", std::mem::size_of::()), ("PassScore", std::mem::size_of::()), ("PassFree", std::mem::size_of::()), ("PassPassCaught", std::mem::size_of::()), ("PassBallStolen", std::mem::size_of::()), - ("PassBallBlocked", std::mem::size_of::()), - ("DamagePrevented", std::mem::size_of::()), - ("HalloweenBossKilled", std::mem::size_of::()), - ("EscapedLootIsland", std::mem::size_of::()), - ("TaggedPlayerAsIt", std::mem::size_of::()), - ("MerasmusStunned", std::mem::size_of::()), - ("MerasmusPropFound", std::mem::size_of::()), - ("HalloweenSkeletonKilled", std::mem::size_of::()), + ( + "PassBallBlocked", + std::mem::size_of::(), + ), + ( + "DamagePrevented", + std::mem::size_of::(), + ), + ( + "HalloweenBossKilled", + std::mem::size_of::(), + ), + ( + "EscapedLootIsland", + std::mem::size_of::(), + ), + ( + "TaggedPlayerAsIt", + std::mem::size_of::(), + ), + ( + "MerasmusStunned", + std::mem::size_of::(), + ), + ( + "MerasmusPropFound", + std::mem::size_of::(), + ), + ( + "HalloweenSkeletonKilled", + std::mem::size_of::(), + ), ("EscapeHell", std::mem::size_of::()), - ("CrossSpectralBridge", std::mem::size_of::()), + ( + "CrossSpectralBridge", + std::mem::size_of::(), + ), ("MiniGameWon", std::mem::size_of::()), ("RespawnGhost", std::mem::size_of::()), ("KillInHell", std::mem::size_of::()), - ("HalloweenDuckCollected", std::mem::size_of::()), + ( + "HalloweenDuckCollected", + std::mem::size_of::(), + ), ("SpecialScore", std::mem::size_of::()), - ("TeamLeaderKilled", std::mem::size_of::()), - ("HalloweenSoulCollected", std::mem::size_of::()), - ("RecalculateTruce", std::mem::size_of::()), - ("DeadRingerCheatDeath", std::mem::size_of::()), + ( + "TeamLeaderKilled", + std::mem::size_of::(), + ), + ( + "HalloweenSoulCollected", + std::mem::size_of::(), + ), + ( + "RecalculateTruce", + std::mem::size_of::(), + ), + ( + "DeadRingerCheatDeath", + std::mem::size_of::(), + ), ("CrossbowHeal", std::mem::size_of::()), - ("DamageMitigated", std::mem::size_of::()), + ( + "DamageMitigated", + std::mem::size_of::(), + ), ("PayloadPushed", std::mem::size_of::()), - ("PlayerAbandonedMatch", std::mem::size_of::()), + ( + "PlayerAbandonedMatch", + std::mem::size_of::(), + ), ("ClDrawline", std::mem::size_of::()), - ("RestartTimerTime", std::mem::size_of::()), - ("WinLimitChanged", std::mem::size_of::()), - ("WinPanelShowScores", std::mem::size_of::()), + ( + "RestartTimerTime", + std::mem::size_of::(), + ), + ( + "WinLimitChanged", + std::mem::size_of::(), + ), + ( + "WinPanelShowScores", + std::mem::size_of::(), + ), ( "TopStreamsRequestFinished", std::mem::size_of::(), ), - ("CompetitiveStateChanged", std::mem::size_of::()), - ("GlobalWarDataUpdated", std::mem::size_of::()), - ("StopWatchChanged", std::mem::size_of::()), + ( + "CompetitiveStateChanged", + std::mem::size_of::(), + ), + ( + "GlobalWarDataUpdated", + std::mem::size_of::(), + ), + ( + "StopWatchChanged", + std::mem::size_of::(), + ), ("DsStop", std::mem::size_of::()), ("DsScreenshot", std::mem::size_of::()), - ("ShowMatchSummary", std::mem::size_of::()), - ("ExperienceChanged", std::mem::size_of::()), + ( + "ShowMatchSummary", + std::mem::size_of::(), + ), + ( + "ExperienceChanged", + std::mem::size_of::(), + ), ("BeginXpLerp", std::mem::size_of::()), - ("MatchmakerStatsUpdated", std::mem::size_of::()), - ("RematchVotePeriodOver", std::mem::size_of::()), - ("RematchFailedToCreate", std::mem::size_of::()), - ("PlayerRematchChange", std::mem::size_of::()), + ( + "MatchmakerStatsUpdated", + std::mem::size_of::(), + ), + ( + "RematchVotePeriodOver", + std::mem::size_of::(), + ), + ( + "RematchFailedToCreate", + std::mem::size_of::(), + ), + ( + "PlayerRematchChange", + std::mem::size_of::(), + ), ("PingUpdated", std::mem::size_of::()), ("MMStatsUpdated", std::mem::size_of::()), - ("PlayerNextMapVoteChange", std::mem::size_of::()), - ("VoteMapsChanged", std::mem::size_of::()), - ("ProtoDefChanged", std::mem::size_of::()), - ("PlayerDomination", std::mem::size_of::()), - ("PlayerRocketPackPushed", std::mem::size_of::()), + ( + "PlayerNextMapVoteChange", + std::mem::size_of::(), + ), + ( + "VoteMapsChanged", + std::mem::size_of::(), + ), + ( + "ProtoDefChanged", + std::mem::size_of::(), + ), + ( + "PlayerDomination", + std::mem::size_of::(), + ), + ( + "PlayerRocketPackPushed", + std::mem::size_of::(), + ), ("QuestRequest", std::mem::size_of::()), ("QuestResponse", std::mem::size_of::()), ("QuestProgress", std::mem::size_of::()), - ("ProjectileRemoved", std::mem::size_of::()), - ("QuestMapDataChanged", std::mem::size_of::()), - ("GasDousedPlayerIgnited", std::mem::size_of::()), - ("QuestTurnInState", std::mem::size_of::()), - ("ItemsAcknowledged", std::mem::size_of::()), + ( + "ProjectileRemoved", + std::mem::size_of::(), + ), + ( + "QuestMapDataChanged", + std::mem::size_of::(), + ), + ( + "GasDousedPlayerIgnited", + std::mem::size_of::(), + ), + ( + "QuestTurnInState", + std::mem::size_of::(), + ), + ( + "ItemsAcknowledged", + std::mem::size_of::(), + ), ("CapperKilled", std::mem::size_of::()), - ("MainMenuStabilized", std::mem::size_of::()), - ("WorldStatusChanged", std::mem::size_of::()), + ( + "MainMenuStabilized", + std::mem::size_of::(), + ), + ( + "WorldStatusChanged", + std::mem::size_of::(), + ), ("HLTVStatus", std::mem::size_of::()), ("HLTVCameraman", std::mem::size_of::()), ("HLTVRankCamera", std::mem::size_of::()), @@ -11301,14 +11113,28 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("HLTVMessage", std::mem::size_of::()), ("HLTVTitle", std::mem::size_of::()), ("HLTVChat", std::mem::size_of::()), - ("ReplayStartRecord", std::mem::size_of::()), - ("ReplaySessionInfo", std::mem::size_of::()), - ("ReplayEndRecord", std::mem::size_of::()), - ("ReplayReplaysAvailable", std::mem::size_of::()), - ("ReplayServerError", std::mem::size_of::()), + ( + "ReplayStartRecord", + std::mem::size_of::(), + ), + ( + "ReplaySessionInfo", + std::mem::size_of::(), + ), + ( + "ReplayEndRecord", + std::mem::size_of::(), + ), + ( + "ReplayReplaysAvailable", + std::mem::size_of::(), + ), + ( + "ReplayServerError", + std::mem::size_of::(), + ), ] - .iter() - .copied() - .collect() + .iter() + .copied() + .collect() } - diff --git a/src/demo/parser/gamestateanalyser.rs b/src/demo/parser/gamestateanalyser.rs index d8991f2..285c975 100644 --- a/src/demo/parser/gamestateanalyser.rs +++ b/src/demo/parser/gamestateanalyser.rs @@ -478,9 +478,9 @@ impl GameStateAnalyser { SendPropIdentifier::new("DT_TFLocalPlayerExclusive", "m_angEyeAngles[0]"); const NON_LOCAL_PITCH_ANGLES: SendPropIdentifier = SendPropIdentifier::new("DT_TFNonLocalPlayerExclusive", "m_angEyeAngles[0]"); - + const SIMTIME_PROP: SendPropIdentifier = - SendPropIdentifier::new("DT_BaseEntity", "m_flSimulationTime"); + SendPropIdentifier::new("DT_BaseEntity", "m_flSimulationTime"); player.in_pvs = entity.in_pvs; diff --git a/src/demo/sendprop_gen.rs b/src/demo/sendprop_gen.rs index 797235e..02d97b7 100644 --- a/src/demo/sendprop_gen.rs +++ b/src/demo/sendprop_gen.rs @@ -1,7 +1,5 @@ use crate::demo::sendprop::SendPropIdentifier; -pub fn get_prop_names( - identifier: SendPropIdentifier, -) -> Option<(&'static str, &'static str)> { +pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, &'static str)> { let identifier: u64 = identifier.into(); match identifier { 9977506119572073604u64 => Some(("DT_AI_BaseNPC", "baseclass")), @@ -31,15 +29,11 @@ pub fn get_prop_names( 1723297113128833070u64 => Some(("DT_AttributeContainer", "m_Item")), 15461357476359745612u64 => Some(("DT_AttributeContainer", "m_ProviderType")), 4818761618587156386u64 => Some(("DT_AttributeContainer", "m_hOuter")), - 9482188740281234275u64 => { - Some(("DT_AttributeContainer", "m_iReapplyProvisionParity")) - } + 9482188740281234275u64 => Some(("DT_AttributeContainer", "m_iReapplyProvisionParity")), 207560818333740287u64 => Some(("DT_AttributeList", "m_Attributes")), 13300933994033697204u64 => Some(("DT_AttributeManager", "m_ProviderType")), 13264166953578569818u64 => Some(("DT_AttributeManager", "m_hOuter")), - 5454263126140958731u64 => { - Some(("DT_AttributeManager", "m_iReapplyProvisionParity")) - } + 5454263126140958731u64 => Some(("DT_AttributeManager", "m_iReapplyProvisionParity")), 9538019610013457851u64 => Some(("DT_BCCLocalPlayerExclusive", "m_flNextAttack")), 11056205009922495194u64 => Some(("DT_BaseAnimating", "baseclass")), 1886226892341259827u64 => Some(("DT_BaseAnimating", "m_bClientSideAnimation")), @@ -66,9 +60,7 @@ pub fn get_prop_names( 14642833498726923104u64 => Some(("DT_BaseAnimatingOverlay", "baseclass")), 8928965134547626576u64 => Some(("DT_BaseAnimatingOverlay", "overlay_vars")), 18186019889468590738u64 => Some(("DT_BaseAttributableItem", "baseclass")), - 15467066093856583754u64 => { - Some(("DT_BaseAttributableItem", "m_AttributeManager")) - } + 15467066093856583754u64 => Some(("DT_BaseAttributableItem", "m_AttributeManager")), 10861713627408158021u64 => Some(("DT_BaseBeam", "a")), 10864528377175810506u64 => Some(("DT_BaseBeam", "b")), 10867906076897107023u64 => Some(("DT_BaseBeam", "g")), @@ -191,103 +183,46 @@ pub fn get_prop_names( 8821060496542715329u64 => Some(("DT_BaseProjectile", "m_hOriginalLauncher")), 1773461200810032239u64 => Some(("DT_BasePropDoor", "baseclass")), 764401028470223805u64 => Some(("DT_BaseTeamObjectiveResource", "m_bBlocked")), - 6260043898169180511u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bCPCapRateScalesWithPlayers")) - } + 6260043898169180511u64 => Some(( + "DT_BaseTeamObjectiveResource", + "m_bCPCapRateScalesWithPlayers", + )), 482099745178603580u64 => Some(("DT_BaseTeamObjectiveResource", "m_bCPIsVisible")), 8070480527217658070u64 => Some(("DT_BaseTeamObjectiveResource", "m_bCPLocked")), - 14589117526248252538u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bControlPointsReset")) - } - 2551313933655525189u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bHillIsDownhill")) - } - 6616839303315139821u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bInMiniRound")) - } - 14223007249754673569u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bPlayingMiniRounds")) - } - 13449055248664361296u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bTeamCanCap")) - } - 12406814205882245121u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_bTrackAlarm")) - } - 15603776777687734539u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flCPTimerTimes")) - } - 10143517534621403237u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flCustomPositionX")) - } - 10144643434528502076u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flCustomPositionY")) - } - 12746417649697692707u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flLazyCapPerc")) - } - 2360248506913974640u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flNodeHillData")) - } - 17687213140186755045u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flPathDistance")) - } - 10188850048977635459u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flTeamCapTime")) - } - 3176918329628386471u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_flUnlockTimes")) - } - 7220226147049147143u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iBaseControlPoints")) - } + 14589117526248252538u64 => Some(("DT_BaseTeamObjectiveResource", "m_bControlPointsReset")), + 2551313933655525189u64 => Some(("DT_BaseTeamObjectiveResource", "m_bHillIsDownhill")), + 6616839303315139821u64 => Some(("DT_BaseTeamObjectiveResource", "m_bInMiniRound")), + 14223007249754673569u64 => Some(("DT_BaseTeamObjectiveResource", "m_bPlayingMiniRounds")), + 13449055248664361296u64 => Some(("DT_BaseTeamObjectiveResource", "m_bTeamCanCap")), + 12406814205882245121u64 => Some(("DT_BaseTeamObjectiveResource", "m_bTrackAlarm")), + 15603776777687734539u64 => Some(("DT_BaseTeamObjectiveResource", "m_flCPTimerTimes")), + 10143517534621403237u64 => Some(("DT_BaseTeamObjectiveResource", "m_flCustomPositionX")), + 10144643434528502076u64 => Some(("DT_BaseTeamObjectiveResource", "m_flCustomPositionY")), + 12746417649697692707u64 => Some(("DT_BaseTeamObjectiveResource", "m_flLazyCapPerc")), + 2360248506913974640u64 => Some(("DT_BaseTeamObjectiveResource", "m_flNodeHillData")), + 17687213140186755045u64 => Some(("DT_BaseTeamObjectiveResource", "m_flPathDistance")), + 10188850048977635459u64 => Some(("DT_BaseTeamObjectiveResource", "m_flTeamCapTime")), + 3176918329628386471u64 => Some(("DT_BaseTeamObjectiveResource", "m_flUnlockTimes")), + 7220226147049147143u64 => Some(("DT_BaseTeamObjectiveResource", "m_iBaseControlPoints")), 10975425104909481510u64 => Some(("DT_BaseTeamObjectiveResource", "m_iCPGroup")), - 9796709517129871815u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iCappingTeam")) - } - 10134043929416589912u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iNumControlPoints")) - } - 7006103335397878306u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iNumTeamMembers")) - } + 9796709517129871815u64 => Some(("DT_BaseTeamObjectiveResource", "m_iCappingTeam")), + 10134043929416589912u64 => Some(("DT_BaseTeamObjectiveResource", "m_iNumControlPoints")), + 7006103335397878306u64 => Some(("DT_BaseTeamObjectiveResource", "m_iNumTeamMembers")), 14581529935953675661u64 => Some(("DT_BaseTeamObjectiveResource", "m_iOwner")), - 14057342925796101268u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iPreviousPoints")) - } - 17664125710752348622u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iStopWatchTimer")) - } - 12231279990623467274u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iTeamBaseIcons")) - } + 14057342925796101268u64 => Some(("DT_BaseTeamObjectiveResource", "m_iPreviousPoints")), + 17664125710752348622u64 => Some(("DT_BaseTeamObjectiveResource", "m_iStopWatchTimer")), + 12231279990623467274u64 => Some(("DT_BaseTeamObjectiveResource", "m_iTeamBaseIcons")), 98947748158193475u64 => Some(("DT_BaseTeamObjectiveResource", "m_iTeamIcons")), 7632071981119974014u64 => Some(("DT_BaseTeamObjectiveResource", "m_iTeamInZone")), - 7558004037016717466u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iTeamOverlays")) - } - 11508737394756596273u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iTeamReqCappers")) - } - 6991212709890471199u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iTimerToShowInHUD")) - } - 18209914006898892797u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iUpdateCapHudParity")) - } + 7558004037016717466u64 => Some(("DT_BaseTeamObjectiveResource", "m_iTeamOverlays")), + 11508737394756596273u64 => Some(("DT_BaseTeamObjectiveResource", "m_iTeamReqCappers")), + 6991212709890471199u64 => Some(("DT_BaseTeamObjectiveResource", "m_iTimerToShowInHUD")), + 18209914006898892797u64 => Some(("DT_BaseTeamObjectiveResource", "m_iUpdateCapHudParity")), 10891894484206485989u64 => Some(("DT_BaseTeamObjectiveResource", "m_iWarnOnCap")), - 1498427985947912600u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_iszWarnSound")) - } - 12414129916492154804u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_nNumNodeHillData")) - } - 2468731353192921342u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_pszCapLayoutInHUD")) - } - 18298578210195471990u64 => { - Some(("DT_BaseTeamObjectiveResource", "m_vCPPositions")) - } + 1498427985947912600u64 => Some(("DT_BaseTeamObjectiveResource", "m_iszWarnSound")), + 12414129916492154804u64 => Some(("DT_BaseTeamObjectiveResource", "m_nNumNodeHillData")), + 2468731353192921342u64 => Some(("DT_BaseTeamObjectiveResource", "m_pszCapLayoutInHUD")), + 18298578210195471990u64 => Some(("DT_BaseTeamObjectiveResource", "m_vCPPositions")), 12048571054537650125u64 => Some(("DT_BaseViewModel", "m_fEffects")), 16623028411847573074u64 => Some(("DT_BaseViewModel", "m_flPlaybackRate")), 12151231029797149607u64 => Some(("DT_BaseViewModel", "m_flPoseParameter")), @@ -346,9 +281,7 @@ pub fn get_prop_names( 16550336263822600081u64 => Some(("DT_BreakableSurface", "m_nSurfaceType")), 12912481925475249157u64 => Some(("DT_BreakableSurface", "m_vCorner")), 4269713520286543487u64 => Some(("DT_BreakableSurface", "m_vNormal")), - 12815830324051307265u64 => { - Some(("DT_BuilderLocalData", "m_aBuildableObjectTypes")) - } + 12815830324051307265u64 => Some(("DT_BuilderLocalData", "m_aBuildableObjectTypes")), 3752236378247177694u64 => Some(("DT_BuilderLocalData", "m_hObjectBeingBuilt")), 5744885984835700960u64 => Some(("DT_BuilderLocalData", "m_iObjectType")), 4498158956768532836u64 => Some(("DT_CBonusDuckPickup", "baseclass")), @@ -366,9 +299,7 @@ pub fn get_prop_names( 7993678590165848504u64 => Some(("DT_CHalloweenGiftPickup", "m_hTargetPlayer")), 4548839884396345947u64 => Some(("DT_CHalloweenPickup", "baseclass")), 7556464844809770469u64 => Some(("DT_CMannVsMachineWaveStats", "nBuyBacks")), - 18102662244812005959u64 => { - Some(("DT_CMannVsMachineWaveStats", "nCreditsAcquired")) - } + 18102662244812005959u64 => Some(("DT_CMannVsMachineWaveStats", "nCreditsAcquired")), 6836609208288300926u64 => Some(("DT_CMannVsMachineWaveStats", "nCreditsBonus")), 5022393733729822105u64 => Some(("DT_CMannVsMachineWaveStats", "nCreditsDropped")), 11245235260759213247u64 => Some(("DT_CMannVsMachineWaveStats", "nPlayerDeaths")), @@ -393,9 +324,7 @@ pub fn get_prop_names( 5987216880222415474u64 => Some(("DT_CaptureFlagReturnIcon", "baseclass")), 10305866285583773975u64 => Some(("DT_CaptureZone", "baseclass")), 5377530078693075052u64 => Some(("DT_CaptureZone", "m_bDisabled")), - 12941697488028443613u64 => { - Some(("DT_CollisionProperty", "m_bUniformTriggerBloat")) - } + 12941697488028443613u64 => Some(("DT_CollisionProperty", "m_bUniformTriggerBloat")), 14516902418280914306u64 => Some(("DT_CollisionProperty", "m_nSolidType")), 1080149301244524881u64 => Some(("DT_CollisionProperty", "m_nSurroundType")), 7175952075483709827u64 => Some(("DT_CollisionProperty", "m_triggerBloat")), @@ -404,18 +333,16 @@ pub fn get_prop_names( 269705891010771561u64 => Some(("DT_CollisionProperty", "m_vecMaxsPreScaled")), 327157693896481356u64 => Some(("DT_CollisionProperty", "m_vecMins")), 9638080833875299219u64 => Some(("DT_CollisionProperty", "m_vecMinsPreScaled")), - 620553563392398378u64 => { - Some(("DT_CollisionProperty", "m_vecSpecifiedSurroundingMaxs")) - } - 5716096160481233009u64 => { - Some(("DT_CollisionProperty", "m_vecSpecifiedSurroundingMaxsPreScaled")) - } - 13386682110035354244u64 => { - Some(("DT_CollisionProperty", "m_vecSpecifiedSurroundingMins")) - } - 10271950428381878635u64 => { - Some(("DT_CollisionProperty", "m_vecSpecifiedSurroundingMinsPreScaled")) - } + 620553563392398378u64 => Some(("DT_CollisionProperty", "m_vecSpecifiedSurroundingMaxs")), + 5716096160481233009u64 => Some(( + "DT_CollisionProperty", + "m_vecSpecifiedSurroundingMaxsPreScaled", + )), + 13386682110035354244u64 => Some(("DT_CollisionProperty", "m_vecSpecifiedSurroundingMins")), + 10271950428381878635u64 => Some(( + "DT_CollisionProperty", + "m_vecSpecifiedSurroundingMinsPreScaled", + )), 5523418553214166751u64 => Some(("DT_ColorCorrection", "m_MaxFalloff")), 12589122299567677885u64 => Some(("DT_ColorCorrection", "m_MinFalloff")), 16380835174442541258u64 => Some(("DT_ColorCorrection", "m_bEnabled")), @@ -459,18 +386,10 @@ pub fn get_prop_names( 14568140209977249243u64 => Some(("DT_EconEntity", "m_AttributeManager")), 17857878618611298375u64 => Some(("DT_EconEntity", "m_bValidatedAttachedEntity")), 253092235430218488u64 => Some(("DT_EffectData", "entindex")), - 18021520457381301207u64 => { - Some(("DT_EffectData", "m_ControlPoint1.m_eParticleAttachment")) - } - 10824446178939881888u64 => { - Some(("DT_EffectData", "m_ControlPoint1.m_vecOffset[0]")) - } - 11354508640126412967u64 => { - Some(("DT_EffectData", "m_ControlPoint1.m_vecOffset[1]")) - } - 12064715086443459986u64 => { - Some(("DT_EffectData", "m_ControlPoint1.m_vecOffset[2]")) - } + 18021520457381301207u64 => Some(("DT_EffectData", "m_ControlPoint1.m_eParticleAttachment")), + 10824446178939881888u64 => Some(("DT_EffectData", "m_ControlPoint1.m_vecOffset[0]")), + 11354508640126412967u64 => Some(("DT_EffectData", "m_ControlPoint1.m_vecOffset[1]")), + 12064715086443459986u64 => Some(("DT_EffectData", "m_ControlPoint1.m_vecOffset[2]")), 4437782535929851202u64 => Some(("DT_EffectData", "m_CustomColors.m_vecColor1")), 4434967786162198717u64 => Some(("DT_EffectData", "m_CustomColors.m_vecColor2")), 1599931262287302015u64 => Some(("DT_EffectData", "m_bControlPoint1")), @@ -522,12 +441,8 @@ pub fn get_prop_names( 9297058561166154273u64 => Some(("DT_EnvParticleScript", "baseclass")), 13380319915338356541u64 => Some(("DT_EnvParticleScript", "m_flSequenceScale")), 16060139991777335879u64 => Some(("DT_EnvProjectedTexture", "baseclass")), - 2252813601417170088u64 => { - Some(("DT_EnvProjectedTexture", "m_LinearFloatLightColor")) - } - 114155989813656232u64 => { - Some(("DT_EnvProjectedTexture", "m_SpotlightTextureName")) - } + 2252813601417170088u64 => Some(("DT_EnvProjectedTexture", "m_LinearFloatLightColor")), + 114155989813656232u64 => Some(("DT_EnvProjectedTexture", "m_SpotlightTextureName")), 3898702540603033623u64 => Some(("DT_EnvProjectedTexture", "m_bCameraSpace")), 10254310551605177570u64 => Some(("DT_EnvProjectedTexture", "m_bEnableShadows")), 7787457648735581919u64 => Some(("DT_EnvProjectedTexture", "m_bLightOnlyTarget")), @@ -539,9 +454,7 @@ pub fn get_prop_names( 15426827728262009940u64 => Some(("DT_EnvProjectedTexture", "m_flNearZ")), 4473675068488532456u64 => Some(("DT_EnvProjectedTexture", "m_hTargetEntity")), 4905548031909626553u64 => Some(("DT_EnvProjectedTexture", "m_nShadowQuality")), - 5620529469040513558u64 => { - Some(("DT_EnvProjectedTexture", "m_nSpotlightTextureFrame")) - } + 5620529469040513558u64 => Some(("DT_EnvProjectedTexture", "m_nSpotlightTextureFrame")), 14704521728978857169u64 => Some(("DT_EnvScreenEffect", "baseclass")), 10262980981935134576u64 => Some(("DT_EnvScreenEffect", "m_flDuration")), 3164074218753332286u64 => Some(("DT_EnvScreenEffect", "m_nType")), @@ -552,27 +465,13 @@ pub fn get_prop_names( 3604075530619262226u64 => Some(("DT_EnvScreenOverlay", "m_iDesiredOverlay")), 14167371023432491515u64 => Some(("DT_EnvScreenOverlay", "m_iszOverlayNames")), 15980388409707750886u64 => Some(("DT_EnvTonemapController", "baseclass")), - 4707468205867891085u64 => { - Some(("DT_EnvTonemapController", "m_bUseCustomAutoExposureMax")) - } - 18197077299237503183u64 => { - Some(("DT_EnvTonemapController", "m_bUseCustomAutoExposureMin")) - } - 11120818610489230652u64 => { - Some(("DT_EnvTonemapController", "m_bUseCustomBloomScale")) - } - 4084439432788915034u64 => { - Some(("DT_EnvTonemapController", "m_flCustomAutoExposureMax")) - } - 9049455712478357200u64 => { - Some(("DT_EnvTonemapController", "m_flCustomAutoExposureMin")) - } - 9290409691254814341u64 => { - Some(("DT_EnvTonemapController", "m_flCustomBloomScale")) - } - 3564648561424872913u64 => { - Some(("DT_EnvTonemapController", "m_flCustomBloomScaleMinimum")) - } + 4707468205867891085u64 => Some(("DT_EnvTonemapController", "m_bUseCustomAutoExposureMax")), + 18197077299237503183u64 => Some(("DT_EnvTonemapController", "m_bUseCustomAutoExposureMin")), + 11120818610489230652u64 => Some(("DT_EnvTonemapController", "m_bUseCustomBloomScale")), + 4084439432788915034u64 => Some(("DT_EnvTonemapController", "m_flCustomAutoExposureMax")), + 9049455712478357200u64 => Some(("DT_EnvTonemapController", "m_flCustomAutoExposureMin")), + 9290409691254814341u64 => Some(("DT_EnvTonemapController", "m_flCustomBloomScale")), + 3564648561424872913u64 => Some(("DT_EnvTonemapController", "m_flCustomBloomScaleMinimum")), 7183986676565278417u64 => Some(("DT_EnvWind", "m_EnvWindShared")), 17376263270174520011u64 => Some(("DT_EnvWindShared", "m_flGustDuration")), 658004777675794009u64 => Some(("DT_EnvWindShared", "m_flInitialWindSpeed")), @@ -619,21 +518,15 @@ pub fn get_prop_names( 476665526328284112u64 => Some(("DT_FuncAreaPortalWindow", "baseclass")), 11166258962236030081u64 => Some(("DT_FuncAreaPortalWindow", "m_flFadeDist")), 2305319612642205701u64 => Some(("DT_FuncAreaPortalWindow", "m_flFadeStartDist")), - 8441183468266600079u64 => { - Some(("DT_FuncAreaPortalWindow", "m_flTranslucencyLimit")) - } - 6994402637133836533u64 => { - Some(("DT_FuncAreaPortalWindow", "m_iBackgroundModelIndex")) - } + 8441183468266600079u64 => Some(("DT_FuncAreaPortalWindow", "m_flTranslucencyLimit")), + 6994402637133836533u64 => Some(("DT_FuncAreaPortalWindow", "m_iBackgroundModelIndex")), 1315228604564055678u64 => Some(("DT_FuncConveyor", "baseclass")), 4643984630128196805u64 => Some(("DT_FuncConveyor", "m_flConveyorSpeed")), 8025869603558831630u64 => Some(("DT_FuncForceField", "baseclass")), 8842380166201025273u64 => Some(("DT_FuncLadder", "baseclass")), 6727980321286440577u64 => Some(("DT_FuncLadder", "m_bFakeLadder")), 5458287824259775681u64 => Some(("DT_FuncLadder", "m_vecLadderDir")), - 1023914091052524494u64 => { - Some(("DT_FuncLadder", "m_vecPlayerMountPositionBottom")) - } + 1023914091052524494u64 => Some(("DT_FuncLadder", "m_vecPlayerMountPositionBottom")), 8352235157182942370u64 => Some(("DT_FuncLadder", "m_vecPlayerMountPositionTop")), 10638318840676769491u64 => Some(("DT_FuncMonitor", "baseclass")), 5544290497221565849u64 => Some(("DT_FuncOccluder", "m_bActive")), @@ -659,9 +552,7 @@ pub fn get_prop_names( 5198644182095249827u64 => Some(("DT_FuncSmokeVolume", "m_MaterialName")), 8073165390338064865u64 => Some(("DT_FuncSmokeVolume", "m_MovementSpeed")), 6058325364789012681u64 => Some(("DT_FuncSmokeVolume", "m_ParticleDrawWidth")), - 2820636897937052641u64 => { - Some(("DT_FuncSmokeVolume", "m_ParticleSpacingDistance")) - } + 2820636897937052641u64 => Some(("DT_FuncSmokeVolume", "m_ParticleSpacingDistance")), 14909793249953353950u64 => Some(("DT_FuncSmokeVolume", "m_RotationSpeed")), 126643466202097015u64 => Some(("DT_FuncSmokeVolume", "m_spawnflags")), 521318901927839128u64 => Some(("DT_FuncTrackTrain", "baseclass")), @@ -694,13 +585,9 @@ pub fn get_prop_names( 16941498431952440553u64 => Some(("DT_Hightower_TeleportVortex", "m_iState")), 7805507788390503572u64 => Some(("DT_InfoLadderDismount", "baseclass")), 16102845418931591771u64 => Some(("DT_InfoLightingRelative", "baseclass")), - 13334572272126897098u64 => { - Some(("DT_InfoLightingRelative", "m_hLightingLandmark")) - } + 13334572272126897098u64 => Some(("DT_InfoLightingRelative", "m_hLightingLandmark")), 17675349519424779959u64 => Some(("DT_InfoOverlayAccessor", "m_iOverlayID")), - 5389305028453794524u64 => { - Some(("DT_InfoOverlayAccessor", "m_iTextureFrameIndex")) - } + 5389305028453794524u64 => Some(("DT_InfoOverlayAccessor", "m_iTextureFrameIndex")), 13281282658748765205u64 => Some(("DT_LaserDot", "baseclass")), 1929285705522480730u64 => Some(("DT_LightGlow", "HDRColorScale")), 13554970453270875203u64 => Some(("DT_LightGlow", "m_angRotation")), @@ -756,15 +643,9 @@ pub fn get_prop_names( 3261508312742118676u64 => Some(("DT_Local", "m_vecPunchAngle")), 11553804228842255627u64 => Some(("DT_Local", "m_vecPunchAngleVel")), 11420334401211568191u64 => Some(("DT_LocalActiveWeaponData", "m_flAnimTime")), - 477854118027322048u64 => { - Some(("DT_LocalActiveWeaponData", "m_flNextPrimaryAttack")) - } - 12439415646112255356u64 => { - Some(("DT_LocalActiveWeaponData", "m_flNextSecondaryAttack")) - } - 1861344240023747706u64 => { - Some(("DT_LocalActiveWeaponData", "m_flTimeWeaponIdle")) - } + 477854118027322048u64 => Some(("DT_LocalActiveWeaponData", "m_flNextPrimaryAttack")), + 12439415646112255356u64 => Some(("DT_LocalActiveWeaponData", "m_flNextSecondaryAttack")), + 1861344240023747706u64 => Some(("DT_LocalActiveWeaponData", "m_flTimeWeaponIdle")), 5839428667296945333u64 => Some(("DT_LocalActiveWeaponData", "m_nNextThinkTick")), 1180539520845420538u64 => Some(("DT_LocalFlameThrower", "m_bHasHalloweenSpell")), 16942780462268800407u64 => Some(("DT_LocalFlameThrower", "m_hFlameManager")), @@ -772,23 +653,13 @@ pub fn get_prop_names( 4137327776866978322u64 => Some(("DT_LocalFlameThrower", "m_iDamagingFlames")), 16100218482556174869u64 => Some(("DT_LocalPlayerExclusive", "m_Local")), 8202977059591059350u64 => Some(("DT_LocalPlayerExclusive", "m_fOnTarget")), - 10974073549222745823u64 => { - Some(("DT_LocalPlayerExclusive", "m_flConstraintRadius")) - } - 13133555867614237421u64 => { - Some(("DT_LocalPlayerExclusive", "m_flConstraintSpeedFactor")) - } - 1229789984536407245u64 => { - Some(("DT_LocalPlayerExclusive", "m_flConstraintWidth")) - } + 10974073549222745823u64 => Some(("DT_LocalPlayerExclusive", "m_flConstraintRadius")), + 13133555867614237421u64 => Some(("DT_LocalPlayerExclusive", "m_flConstraintSpeedFactor")), + 1229789984536407245u64 => Some(("DT_LocalPlayerExclusive", "m_flConstraintWidth")), 8860886652698385967u64 => Some(("DT_LocalPlayerExclusive", "m_flDeathTime")), 12105715086695370586u64 => Some(("DT_LocalPlayerExclusive", "m_flFriction")), - 2807126374303972232u64 => { - Some(("DT_LocalPlayerExclusive", "m_flLaggedMovementValue")) - } - 1404386598948594904u64 => { - Some(("DT_LocalPlayerExclusive", "m_hConstraintEntity")) - } + 2807126374303972232u64 => Some(("DT_LocalPlayerExclusive", "m_flLaggedMovementValue")), + 1404386598948594904u64 => Some(("DT_LocalPlayerExclusive", "m_hConstraintEntity")), 5921750086149896356u64 => Some(("DT_LocalPlayerExclusive", "m_hGroundEntity")), 6333791436486800744u64 => Some(("DT_LocalPlayerExclusive", "m_hLastWeapon")), 3605366840570150767u64 => Some(("DT_LocalPlayerExclusive", "m_iAmmo")), @@ -796,37 +667,19 @@ pub fn get_prop_names( 189161373383926998u64 => Some(("DT_LocalPlayerExclusive", "m_nTickBase")), 12573717345841996583u64 => Some(("DT_LocalPlayerExclusive", "m_nWaterLevel")), 2375096518330819004u64 => Some(("DT_LocalPlayerExclusive", "m_vecBaseVelocity")), - 16576666860475617872u64 => { - Some(("DT_LocalPlayerExclusive", "m_vecConstraintCenter")) - } + 16576666860475617872u64 => Some(("DT_LocalPlayerExclusive", "m_vecConstraintCenter")), 9881246523974673073u64 => Some(("DT_LocalPlayerExclusive", "m_vecVelocity[0]")), 9358502412184000610u64 => Some(("DT_LocalPlayerExclusive", "m_vecVelocity[1]")), 8587497370885508535u64 => Some(("DT_LocalPlayerExclusive", "m_vecVelocity[2]")), - 15482974702530522024u64 => { - Some(("DT_LocalPlayerExclusive", "m_vecViewOffset[0]")) - } - 16074398708652142191u64 => { - Some(("DT_LocalPlayerExclusive", "m_vecViewOffset[1]")) - } - 16845966699904278298u64 => { - Some(("DT_LocalPlayerExclusive", "m_vecViewOffset[2]")) - } - 2815375858371118709u64 => { - Some(("DT_LocalTFWeaponData", "m_flEffectBarRegenTime")) - } - 17066791518227279732u64 => { - Some(("DT_LocalTFWeaponData", "m_flLastCritCheckTime")) - } + 15482974702530522024u64 => Some(("DT_LocalPlayerExclusive", "m_vecViewOffset[0]")), + 16074398708652142191u64 => Some(("DT_LocalPlayerExclusive", "m_vecViewOffset[1]")), + 16845966699904278298u64 => Some(("DT_LocalPlayerExclusive", "m_vecViewOffset[2]")), + 2815375858371118709u64 => Some(("DT_LocalTFWeaponData", "m_flEffectBarRegenTime")), + 17066791518227279732u64 => Some(("DT_LocalTFWeaponData", "m_flLastCritCheckTime")), 13800211648261414116u64 => Some(("DT_LocalTFWeaponData", "m_flLastFireTime")), - 13269430883070863959u64 => { - Some(("DT_LocalTFWeaponData", "m_flObservedCritChance")) - } - 14488883780465208477u64 => { - Some(("DT_LocalTFWeaponData", "m_flReloadPriorNextFire")) - } - 18358052789884689096u64 => { - Some(("DT_LocalTFWeaponMedigunData", "m_flChargeLevel")) - } + 13269430883070863959u64 => Some(("DT_LocalTFWeaponData", "m_flObservedCritChance")), + 14488883780465208477u64 => Some(("DT_LocalTFWeaponData", "m_flReloadPriorNextFire")), + 18358052789884689096u64 => Some(("DT_LocalTFWeaponMedigunData", "m_flChargeLevel")), 7111486683434906648u64 => Some(("DT_LocalWeaponData", "m_bFlipViewModel")), 6228294830767023013u64 => Some(("DT_LocalWeaponData", "m_flAnimTime")), 4912693753643193123u64 => Some(("DT_LocalWeaponData", "m_iClip1")), @@ -836,29 +689,19 @@ pub fn get_prop_names( 3443159739696860287u64 => Some(("DT_LocalWeaponData", "m_nViewModelIndex")), 13496247640687739480u64 => Some(("DT_MannVsMachineStats", "baseclass")), 6529470081877114896u64 => Some(("DT_MannVsMachineStats", "m_currentWaveStats")), - 15168297600687373153u64 => { - Some(("DT_MannVsMachineStats", "m_iCurrencyCollectedForRespec")) - } + 15168297600687373153u64 => Some(("DT_MannVsMachineStats", "m_iCurrencyCollectedForRespec")), 16103636632603551389u64 => Some(("DT_MannVsMachineStats", "m_iCurrentWaveIdx")), 9701442574508188345u64 => Some(("DT_MannVsMachineStats", "m_iServerWaveID")), - 11314244726266369866u64 => { - Some(("DT_MannVsMachineStats", "m_nRespecsAwardedInWave")) - } + 11314244726266369866u64 => Some(("DT_MannVsMachineStats", "m_nRespecsAwardedInWave")), 17373004316049774992u64 => Some(("DT_MannVsMachineStats", "m_previousWaveStats")), - 5830272437141758398u64 => { - Some(("DT_MannVsMachineStats", "m_runningTotalWaveStats")) - } + 5830272437141758398u64 => Some(("DT_MannVsMachineStats", "m_runningTotalWaveStats")), 12167682346375817311u64 => Some(("DT_MaterialModifyControl", "baseclass")), 16529403431670571175u64 => { Some(("DT_MaterialModifyControl", "m_bNewAnimCommandsSemaphore")) } 3988729169059346340u64 => Some(("DT_MaterialModifyControl", "m_bWrap")), - 2959961758008791467u64 => { - Some(("DT_MaterialModifyControl", "m_flFloatLerpEndValue")) - } - 14099373520653428866u64 => { - Some(("DT_MaterialModifyControl", "m_flFloatLerpStartValue")) - } + 2959961758008791467u64 => Some(("DT_MaterialModifyControl", "m_flFloatLerpEndValue")), + 14099373520653428866u64 => Some(("DT_MaterialModifyControl", "m_flFloatLerpStartValue")), 11841915532873668659u64 => { Some(("DT_MaterialModifyControl", "m_flFloatLerpTransitionTime")) } @@ -868,27 +711,17 @@ pub fn get_prop_names( 17247889420939613503u64 => Some(("DT_MaterialModifyControl", "m_nModifyMode")), 10162193495182433573u64 => Some(("DT_MaterialModifyControl", "m_szMaterialName")), 14412596698207298757u64 => Some(("DT_MaterialModifyControl", "m_szMaterialVar")), - 16196673206514172130u64 => { - Some(("DT_MaterialModifyControl", "m_szMaterialVarValue")) - } + 16196673206514172130u64 => Some(("DT_MaterialModifyControl", "m_szMaterialVarValue")), 11260232321092586078u64 => Some(("DT_Merasmus", "baseclass")), 2656272158081578479u64 => Some(("DT_Merasmus", "m_bIsDoingAOEAttack")), 3060622569221761593u64 => Some(("DT_Merasmus", "m_bRevealed")), 1102613716367957140u64 => Some(("DT_Merasmus", "m_bStunned")), 16763989558937175447u64 => Some(("DT_MerasmusDancer", "baseclass")), - 17079253572737029753u64 => { - Some(("DT_MonsterResource", "m_fSkillShotComboEndTime")) - } - 14975529807936865786u64 => { - Some(("DT_MonsterResource", "m_iBossHealthPercentageByte")) - } + 17079253572737029753u64 => Some(("DT_MonsterResource", "m_fSkillShotComboEndTime")), + 14975529807936865786u64 => Some(("DT_MonsterResource", "m_iBossHealthPercentageByte")), 13974447841086780623u64 => Some(("DT_MonsterResource", "m_iBossState")), - 6289858508798830248u64 => { - Some(("DT_MonsterResource", "m_iBossStunPercentageByte")) - } - 12506623981565681650u64 => { - Some(("DT_MonsterResource", "m_iSkillShotCompleteCount")) - } + 6289858508798830248u64 => Some(("DT_MonsterResource", "m_iBossStunPercentageByte")), + 12506623981565681650u64 => Some(("DT_MonsterResource", "m_iSkillShotCompleteCount")), 18012972414182119426u64 => Some(("DT_MovieExplosion", "baseclass")), 1153362727985164101u64 => Some(("DT_NextBot", "baseclass")), 14187459074404627427u64 => Some(("DT_ObjectCartDispenser", "baseclass")), @@ -909,9 +742,7 @@ pub fn get_prop_names( 1828951864594737735u64 => Some(("DT_ObjectSentrygun", "m_nShieldLevel")), 6084707614294048386u64 => Some(("DT_ObjectTeleporter", "baseclass")), 5086075074131250838u64 => Some(("DT_ObjectTeleporter", "m_bMatchBuilding")), - 4538303084594989557u64 => { - Some(("DT_ObjectTeleporter", "m_flCurrentRechargeDuration")) - } + 4538303084594989557u64 => Some(("DT_ObjectTeleporter", "m_flCurrentRechargeDuration")), 1147701113607426749u64 => Some(("DT_ObjectTeleporter", "m_flRechargeTime")), 4679122366883686175u64 => Some(("DT_ObjectTeleporter", "m_flYawToExit")), 5775534354387621035u64 => Some(("DT_ObjectTeleporter", "m_iState")), @@ -923,12 +754,8 @@ pub fn get_prop_names( 3181140237843780895u64 => Some(("DT_ParticleFire", "m_vDirection")), 8777203562431530304u64 => Some(("DT_ParticleFire", "m_vOrigin")), 16787764780080791181u64 => Some(("DT_ParticlePerformanceMonitor", "baseclass")), - 16577173687237993691u64 => { - Some(("DT_ParticlePerformanceMonitor", "m_bDisplayPerf")) - } - 10551540368335591413u64 => { - Some(("DT_ParticlePerformanceMonitor", "m_bMeasurePerf")) - } + 16577173687237993691u64 => Some(("DT_ParticlePerformanceMonitor", "m_bDisplayPerf")), + 10551540368335591413u64 => Some(("DT_ParticlePerformanceMonitor", "m_bMeasurePerf")), 14877792606716409394u64 => Some(("DT_ParticleSmokeGrenade", "baseclass")), 9171368501719076612u64 => Some(("DT_ParticleSmokeGrenade", "m_CurrentStage")), 15069148509288769225u64 => Some(("DT_ParticleSmokeGrenade", "m_FadeEndTime")), @@ -965,12 +792,8 @@ pub fn get_prop_names( 3908013512553602177u64 => Some(("DT_PhysicsPropMultiplayer", "m_collisionMins")), 2695265235558131564u64 => Some(("DT_PhysicsPropMultiplayer", "m_fMass")), 17976817548028924485u64 => Some(("DT_PhysicsPropMultiplayer", "m_iPhysicsMode")), - 12788853276845127409u64 => { - Some(("DT_PipebombLauncherLocalData", "m_flChargeBeginTime")) - } - 16725120178160151337u64 => { - Some(("DT_PipebombLauncherLocalData", "m_iPipebombCount")) - } + 12788853276845127409u64 => Some(("DT_PipebombLauncherLocalData", "m_flChargeBeginTime")), + 16725120178160151337u64 => Some(("DT_PipebombLauncherLocalData", "m_iPipebombCount")), 8048792568294389757u64 => Some(("DT_Plasma", "baseclass")), 13510524683563126928u64 => Some(("DT_Plasma", "m_flScale")), 14400412803687279507u64 => Some(("DT_Plasma", "m_flScaleTime")), @@ -1006,12 +829,8 @@ pub fn get_prop_names( 17981693023432789045u64 => Some(("DT_PointCommentaryNode", "m_hViewPosition")), 14944505961024026917u64 => Some(("DT_PointCommentaryNode", "m_iNodeNumber")), 4965537765628559275u64 => Some(("DT_PointCommentaryNode", "m_iNodeNumberMax")), - 13667693378448451720u64 => { - Some(("DT_PointCommentaryNode", "m_iszCommentaryFile")) - } - 13719645572372795507u64 => { - Some(("DT_PointCommentaryNode", "m_iszCommentaryFileNoHDR")) - } + 13667693378448451720u64 => Some(("DT_PointCommentaryNode", "m_iszCommentaryFile")), + 13719645572372795507u64 => Some(("DT_PointCommentaryNode", "m_iszCommentaryFileNoHDR")), 17623759576779101483u64 => Some(("DT_PointCommentaryNode", "m_iszSpeakers")), 3999418953900660656u64 => Some(("DT_PoseController", "baseclass")), 15850380745941941085u64 => Some(("DT_PoseController", "m_bInterpolationWrap")), @@ -1039,16 +858,10 @@ pub fn get_prop_names( 7874673952459470350u64 => Some(("DT_PropVehicleDriveable", "m_nBoostTimeLeft")), 6761859165626473902u64 => Some(("DT_PropVehicleDriveable", "m_nHasBoost")), 5969021796439874092u64 => Some(("DT_PropVehicleDriveable", "m_nRPM")), - 3005830707751711881u64 => { - Some(("DT_PropVehicleDriveable", "m_nScannerDisabledVehicle")) - } - 12828960798949964058u64 => { - Some(("DT_PropVehicleDriveable", "m_nScannerDisabledWeapons")) - } + 3005830707751711881u64 => Some(("DT_PropVehicleDriveable", "m_nScannerDisabledVehicle")), + 12828960798949964058u64 => Some(("DT_PropVehicleDriveable", "m_nScannerDisabledWeapons")), 5285218742705793890u64 => Some(("DT_PropVehicleDriveable", "m_nSpeed")), - 9641775883025781575u64 => { - Some(("DT_PropVehicleDriveable", "m_vecEyeExitEndpoint")) - } + 9641775883025781575u64 => Some(("DT_PropVehicleDriveable", "m_vecEyeExitEndpoint")), 17187880670544316069u64 => Some(("DT_PropVehicleDriveable", "m_vecGunCrosshair")), 16128519728598722143u64 => Some(("DT_ProxyToggle", "baseclass")), 9570761423526744925u64 => Some(("DT_ProxyToggle", "blah")), @@ -1064,20 +877,12 @@ pub fn get_prop_names( 6859363685445359174u64 => Some(("DT_Ragdoll", "m_nOverlaySequence")), 8983018591918093749u64 => Some(("DT_Ragdoll", "m_ragAngles")), 8678976162750786407u64 => Some(("DT_Ragdoll", "m_ragPos")), - 10147147364061133792u64 => { - Some(("DT_RagdollManager", "m_iCurrentMaxRagdollCount")) - } + 10147147364061133792u64 => Some(("DT_RagdollManager", "m_iCurrentMaxRagdollCount")), 16940582236236543967u64 => Some(("DT_Ragdoll_Attached", "baseclass")), - 13248670166458740693u64 => { - Some(("DT_Ragdoll_Attached", "m_attachmentPointBoneSpace")) - } - 17289554333083603816u64 => { - Some(("DT_Ragdoll_Attached", "m_attachmentPointRagdollSpace")) - } + 13248670166458740693u64 => Some(("DT_Ragdoll_Attached", "m_attachmentPointBoneSpace")), + 17289554333083603816u64 => Some(("DT_Ragdoll_Attached", "m_attachmentPointRagdollSpace")), 9970738773767813940u64 => Some(("DT_Ragdoll_Attached", "m_boneIndexAttached")), - 11425772933165759084u64 => { - Some(("DT_Ragdoll_Attached", "m_ragdollAttachedObjectIndex")) - } + 11425772933165759084u64 => Some(("DT_Ragdoll_Attached", "m_ragdollAttachedObjectIndex")), 15936737141761764658u64 => Some(("DT_RobotDispenser", "baseclass")), 10236659415076511103u64 => Some(("DT_RocketTrail", "baseclass")), 8202951722512455160u64 => Some(("DT_RocketTrail", "m_EndColor")), @@ -1101,9 +906,7 @@ pub fn get_prop_names( 1969203741797316223u64 => Some(("DT_RopeKeyframe", "m_Subdiv")), 13563203175411824845u64 => Some(("DT_RopeKeyframe", "m_TextureScale")), 10587905665158945830u64 => Some(("DT_RopeKeyframe", "m_Width")), - 2141537001863743767u64 => { - Some(("DT_RopeKeyframe", "m_bConstrainBetweenEndpoints")) - } + 2141537001863743767u64 => Some(("DT_RopeKeyframe", "m_bConstrainBetweenEndpoints")), 1049189979655627711u64 => Some(("DT_RopeKeyframe", "m_fLockedPoints")), 6428197191463963676u64 => Some(("DT_RopeKeyframe", "m_flScrollSpeed")), 9505712129081411725u64 => Some(("DT_RopeKeyframe", "m_hEndPoint")), @@ -1125,13 +928,12 @@ pub fn get_prop_names( Some(("DT_ScriptCreatedAttribute", "m_iAttributeDefinitionIndex")) } 6709383617686993832u64 => Some(("DT_ScriptCreatedAttribute", "m_iRawValue32")), - 9857145824990589374u64 => { - Some(("DT_ScriptCreatedAttribute", "m_nRefundableCurrency")) - } + 9857145824990589374u64 => Some(("DT_ScriptCreatedAttribute", "m_nRefundableCurrency")), 10716608069952154964u64 => Some(("DT_ScriptCreatedItem", "m_AttributeList")), - 570082728042388878u64 => { - Some(("DT_ScriptCreatedItem", "m_NetworkedDynamicAttributesForDemos")) - } + 570082728042388878u64 => Some(( + "DT_ScriptCreatedItem", + "m_NetworkedDynamicAttributesForDemos", + )), 16173314348580045578u64 => Some(("DT_ScriptCreatedItem", "m_bInitialized")), 8308089280484392185u64 => { Some(("DT_ScriptCreatedItem", "m_bOnlyIterateItemViewAttributes")) @@ -1139,9 +941,7 @@ pub fn get_prop_names( 1136494118791851951u64 => Some(("DT_ScriptCreatedItem", "m_iAccountID")), 4931161556831243076u64 => Some(("DT_ScriptCreatedItem", "m_iEntityLevel")), 6412909079676651973u64 => Some(("DT_ScriptCreatedItem", "m_iEntityQuality")), - 13444166425656641027u64 => { - Some(("DT_ScriptCreatedItem", "m_iItemDefinitionIndex")) - } + 13444166425656641027u64 => Some(("DT_ScriptCreatedItem", "m_iItemDefinitionIndex")), 9835095664206099863u64 => Some(("DT_ScriptCreatedItem", "m_iItemIDHigh")), 9667217002202509789u64 => Some(("DT_ScriptCreatedItem", "m_iItemIDLow")), 2664458104193857833u64 => Some(("DT_ScriptCreatedItem", "m_iTeamNumber")), @@ -1162,9 +962,7 @@ pub fn get_prop_names( 5308385330272876970u64 => Some(("DT_SlideshowDisplay", "m_szDisplayText")), 5691755573936915476u64 => Some(("DT_SlideshowDisplay", "m_szSlideshowDirectory")), 16749144924608867882u64 => Some(("DT_SmokeStack", "baseclass")), - 12460839418322149252u64 => { - Some(("DT_SmokeStack", "m_AmbientLight.m_flIntensity")) - } + 12460839418322149252u64 => Some(("DT_SmokeStack", "m_AmbientLight.m_flIntensity")), 6012515736489917478u64 => Some(("DT_SmokeStack", "m_AmbientLight.m_vColor")), 15595266523751013805u64 => Some(("DT_SmokeStack", "m_AmbientLight.m_vPos")), 6609717569919402999u64 => Some(("DT_SmokeStack", "m_DirLight.m_flIntensity")), @@ -1501,31 +1299,20 @@ pub fn get_prop_names( 10642027310653757124u64 => Some(("DT_TETFExplosion", "m_vecOrigin[2]")), 6584802487867774737u64 => Some(("DT_TETFParticleEffect", "baseclass")), 176025285012321247u64 => Some(("DT_TETFParticleEffect", "entindex")), - 6542097112926352462u64 => { - Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_eParticleAttachment")) - } - 3932969823774159247u64 => { - Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_vecOffset[0]")) - } - 3463705957569073224u64 => { - Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_vecOffset[1]")) - } - 5288080521798412873u64 => { - Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_vecOffset[2]")) - } - 9320262432422183789u64 => { - Some(("DT_TETFParticleEffect", "m_CustomColors.m_vecColor1")) - } - 9323077182189836274u64 => { - Some(("DT_TETFParticleEffect", "m_CustomColors.m_vecColor2")) - } + 6542097112926352462u64 => Some(( + "DT_TETFParticleEffect", + "m_ControlPoint1.m_eParticleAttachment", + )), + 3932969823774159247u64 => Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_vecOffset[0]")), + 3463705957569073224u64 => Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_vecOffset[1]")), + 5288080521798412873u64 => Some(("DT_TETFParticleEffect", "m_ControlPoint1.m_vecOffset[2]")), + 9320262432422183789u64 => Some(("DT_TETFParticleEffect", "m_CustomColors.m_vecColor1")), + 9323077182189836274u64 => Some(("DT_TETFParticleEffect", "m_CustomColors.m_vecColor2")), 13376960549802941744u64 => Some(("DT_TETFParticleEffect", "m_bControlPoint1")), 6224861019298613607u64 => Some(("DT_TETFParticleEffect", "m_bCustomColors")), 15886282426575032016u64 => Some(("DT_TETFParticleEffect", "m_bResetParticles")), 3340605646083506174u64 => Some(("DT_TETFParticleEffect", "m_iAttachType")), - 13426684681092049224u64 => { - Some(("DT_TETFParticleEffect", "m_iAttachmentPointIndex")) - } + 13426684681092049224u64 => Some(("DT_TETFParticleEffect", "m_iAttachmentPointIndex")), 36474605466937610u64 => Some(("DT_TETFParticleEffect", "m_iParticleSystemIndex")), 15803149409074318078u64 => Some(("DT_TETFParticleEffect", "m_vecAngles")), 12673370125834815576u64 => Some(("DT_TETFParticleEffect", "m_vecOrigin[0]")), @@ -1549,9 +1336,7 @@ pub fn get_prop_names( 3907057021428663692u64 => Some(("DT_TFBaseRocket", "m_vInitialVelocity")), 16666368649603102391u64 => Some(("DT_TFBaseRocket", "m_vecOrigin")), 10757498929721725308u64 => Some(("DT_TFBotHintEngineerNest", "baseclass")), - 9694853923341582225u64 => { - Some(("DT_TFBotHintEngineerNest", "m_bHasActiveTeleporter")) - } + 9694853923341582225u64 => Some(("DT_TFBotHintEngineerNest", "m_bHasActiveTeleporter")), 1057117146229135166u64 => Some(("DT_TFCannon", "baseclass")), 6908811666746669411u64 => Some(("DT_TFDroppedWeapon", "baseclass")), 5577822078145368885u64 => Some(("DT_TFDroppedWeapon", "m_Item")), @@ -1561,9 +1346,7 @@ pub fn get_prop_names( 3136455976364110795u64 => Some(("DT_TFFlameManager", "m_flFlameDrag")), 5563320511495781339u64 => Some(("DT_TFFlameManager", "m_flFlameEndSizeMult")), 12563230953753191399u64 => Some(("DT_TFFlameManager", "m_flFlameGravity")), - 16757173692405404021u64 => { - Some(("DT_TFFlameManager", "m_flFlameIgnorePlayerVelocity")) - } + 16757173692405404021u64 => Some(("DT_TFFlameManager", "m_flFlameIgnorePlayerVelocity")), 5304463784614196616u64 => Some(("DT_TFFlameManager", "m_flFlameLifeTime")), 10535782174958962852u64 => { Some(("DT_TFFlameManager", "m_flFlameReflectionAdditionalLifeTime")) @@ -1575,51 +1358,33 @@ pub fn get_prop_names( 17389908919252614132u64 => Some(("DT_TFFlameManager", "m_flFlameStartSizeMult")), 2701239937078247234u64 => Some(("DT_TFFlameManager", "m_flFlameUp")), 9542601273415188279u64 => Some(("DT_TFFlameManager", "m_flRandomLifeTimeOffset")), - 16289768184728776809u64 => { - Some(("DT_TFFlameManager", "m_flRedirectedFlameSizeMult")) - } + 16289768184728776809u64 => Some(("DT_TFFlameManager", "m_flRedirectedFlameSizeMult")), 1742440989253951239u64 => Some(("DT_TFFlameManager", "m_flSpreadDegree")), 16454098667507787807u64 => Some(("DT_TFFlameManager", "m_hAttacker")), 7883578044087259326u64 => Some(("DT_TFFlameManager", "m_hWeapon")), - 1137322188742262934u64 => { - Some(("DT_TFFlameManager", "m_iMaxFlameReflectionCount")) - } + 1137322188742262934u64 => Some(("DT_TFFlameManager", "m_iMaxFlameReflectionCount")), 3938552470589463786u64 => Some(("DT_TFFlameManager", "m_nShouldReflect")), 5843597919412475388u64 => Some(("DT_TFFlameRocket", "baseclass")), - 1519437576535719208u64 => { - Some(("DT_TFGameRules", "m_bAllowTrainingAchievements")) - } + 1519437576535719208u64 => Some(("DT_TFGameRules", "m_bAllowTrainingAchievements")), 8078845543541044142u64 => Some(("DT_TFGameRules", "m_bBountyModeEnabled")), 7865111346810721469u64 => Some(("DT_TFGameRules", "m_bCompetitiveMode")), - 2009809779261873794u64 => { - Some(("DT_TFGameRules", "m_bHaveMinPlayersToEnableReady")) - } + 2009809779261873794u64 => Some(("DT_TFGameRules", "m_bHaveMinPlayersToEnableReady")), 11652225448812591895u64 => Some(("DT_TFGameRules", "m_bHelltowerPlayersInHell")), 2186276668938128304u64 => Some(("DT_TFGameRules", "m_bIsInItemTestingMode")), 11042492953028957530u64 => Some(("DT_TFGameRules", "m_bIsInTraining")), 16682836678563923912u64 => Some(("DT_TFGameRules", "m_bIsTrainingHUDVisible")), 10508832861176801672u64 => Some(("DT_TFGameRules", "m_bIsUsingSpells")), - 6500432625847509978u64 => { - Some(("DT_TFGameRules", "m_bIsWaitingForTrainingContinue")) - } - 13567631647616280722u64 => { - Some(("DT_TFGameRules", "m_bMannVsMachineAlarmStatus")) - } + 6500432625847509978u64 => Some(("DT_TFGameRules", "m_bIsWaitingForTrainingContinue")), + 13567631647616280722u64 => Some(("DT_TFGameRules", "m_bMannVsMachineAlarmStatus")), 16105508676691426802u64 => Some(("DT_TFGameRules", "m_bMapHasMatchSummaryStage")), 2220920686009069200u64 => Some(("DT_TFGameRules", "m_bMatchEnded")), - 9593078190126985921u64 => { - Some(("DT_TFGameRules", "m_bPlayersAreOnMatchSummaryStage")) - } + 9593078190126985921u64 => Some(("DT_TFGameRules", "m_bPlayersAreOnMatchSummaryStage")), 10458824523513855227u64 => Some(("DT_TFGameRules", "m_bPlayingHybrid_CTF_CP")), 448807795343741873u64 => Some(("DT_TFGameRules", "m_bPlayingKoth")), 998398475513051441u64 => Some(("DT_TFGameRules", "m_bPlayingMannVsMachine")), 17349486215842584714u64 => Some(("DT_TFGameRules", "m_bPlayingMedieval")), - 2939098533427406702u64 => { - Some(("DT_TFGameRules", "m_bPlayingRobotDestructionMode")) - } - 4586199180287230135u64 => { - Some(("DT_TFGameRules", "m_bPlayingSpecialDeliveryMode")) - } + 2939098533427406702u64 => Some(("DT_TFGameRules", "m_bPlayingRobotDestructionMode")), + 4586199180287230135u64 => Some(("DT_TFGameRules", "m_bPlayingSpecialDeliveryMode")), 4315315735035020952u64 => Some(("DT_TFGameRules", "m_bPowerupMode")), 6911024999663273931u64 => Some(("DT_TFGameRules", "m_bShowMatchSummary")), 12421438954172708401u64 => Some(("DT_TFGameRules", "m_bStopWatchWinner")), @@ -1627,9 +1392,7 @@ pub fn get_prop_names( 2343526807179177200u64 => Some(("DT_TFGameRules", "m_bTruceActive")), 1003842331011414072u64 => Some(("DT_TFGameRules", "m_ePlayerWantsRematch")), 9052821624391218815u64 => Some(("DT_TFGameRules", "m_eRematchState")), - 14934685673846116320u64 => { - Some(("DT_TFGameRules", "m_fBossNormalizedTravelDistance")) - } + 14934685673846116320u64 => Some(("DT_TFGameRules", "m_fBossNormalizedTravelDistance")), 13629499624731959983u64 => Some(("DT_TFGameRules", "m_fHalloweenEffectDuration")), 3345151251675861024u64 => Some(("DT_TFGameRules", "m_fHalloweenEffectStartTime")), 7500312199056929943u64 => Some(("DT_TFGameRules", "m_flCapturePointEnableTime")), @@ -1661,34 +1424,20 @@ pub fn get_prop_names( 7692815414064293452u64 => Some(("DT_TFGlow", "m_hTarget")), 14113121779433971679u64 => Some(("DT_TFGlow", "m_iMode")), 420507324454454151u64 => Some(("DT_TFHalloweenMinigame", "baseclass")), - 14860990830486658803u64 => { - Some(("DT_TFHalloweenMinigame_FallingPlatforms", "baseclass")) - } + 14860990830486658803u64 => Some(("DT_TFHalloweenMinigame_FallingPlatforms", "baseclass")), 10387546850855081955u64 => Some(("DT_TFHellZap", "baseclass")), 4595132133150625896u64 => Some(("DT_TFItem", "baseclass")), 11455141167982501301u64 => Some(("DT_TFLaserPointer", "baseclass")), - 2355899791785364457u64 => { - Some(("DT_TFLocalPlayerExclusive", "\"player_object_array\"")) - } - 2854777259191992101u64 => { - Some(("DT_TFLocalPlayerExclusive", "m_angEyeAngles[0]")) - } - 2270671602466230550u64 => { - Some(("DT_TFLocalPlayerExclusive", "m_angEyeAngles[1]")) - } + 2355899791785364457u64 => Some(("DT_TFLocalPlayerExclusive", "\"player_object_array\"")), + 2854777259191992101u64 => Some(("DT_TFLocalPlayerExclusive", "m_angEyeAngles[0]")), + 2270671602466230550u64 => Some(("DT_TFLocalPlayerExclusive", "m_angEyeAngles[1]")), 15490410258299980966u64 => Some(("DT_TFLocalPlayerExclusive", "m_bIsCoaching")), - 15600098204991556272u64 => { - Some(("DT_TFLocalPlayerExclusive", "m_bMatchSafeToLeave")) - } + 15600098204991556272u64 => Some(("DT_TFLocalPlayerExclusive", "m_bMatchSafeToLeave")), 15183661536505159926u64 => Some(("DT_TFLocalPlayerExclusive", "m_hCoach")), 4446759084696780097u64 => Some(("DT_TFLocalPlayerExclusive", "m_hStudent")), 7463087239777297769u64 => Some(("DT_TFLocalPlayerExclusive", "m_nCurrency")), - 6802275605408829328u64 => { - Some(("DT_TFLocalPlayerExclusive", "m_nExperienceLevel")) - } - 1038990937238887613u64 => { - Some(("DT_TFLocalPlayerExclusive", "m_nExperienceLevelProgress")) - } + 6802275605408829328u64 => Some(("DT_TFLocalPlayerExclusive", "m_nExperienceLevel")), + 1038990937238887613u64 => Some(("DT_TFLocalPlayerExclusive", "m_nExperienceLevelProgress")), 3008076477471646514u64 => Some(("DT_TFLocalPlayerExclusive", "m_vecOrigin")), 8637325494603745508u64 => Some(("DT_TFLocalPlayerExclusive", "m_vecOrigin[2]")), 439464678884156141u64 => Some(("DT_TFLunchBox_Drink", "baseclass")), @@ -1699,20 +1448,12 @@ pub fn get_prop_names( 5135381610869586175u64 => Some(("DT_TFMinigame", "m_nMinigameTeamScore")), 2188900221780572065u64 => Some(("DT_TFMinigame", "m_pszHudResFile")), 15897538479185705410u64 => Some(("DT_TFMinigameLogic", "m_hActiveMinigame")), - 15496889328616325576u64 => { - Some(("DT_TFNonLocalPlayerExclusive", "m_angEyeAngles[0]")) - } - 15966153194821411599u64 => { - Some(("DT_TFNonLocalPlayerExclusive", "m_angEyeAngles[1]")) - } + 15496889328616325576u64 => Some(("DT_TFNonLocalPlayerExclusive", "m_angEyeAngles[0]")), + 15966153194821411599u64 => Some(("DT_TFNonLocalPlayerExclusive", "m_angEyeAngles[1]")), 1431675682721348091u64 => Some(("DT_TFNonLocalPlayerExclusive", "m_vecOrigin")), - 5446920940402922251u64 => { - Some(("DT_TFNonLocalPlayerExclusive", "m_vecOrigin[2]")) - } + 5446920940402922251u64 => Some(("DT_TFNonLocalPlayerExclusive", "m_vecOrigin[2]")), 18334659138702607112u64 => Some(("DT_TFObjectiveResource", "baseclass")), - 4575154636832413047u64 => { - Some(("DT_TFObjectiveResource", "m_bMannVsMachineBetweenWaves")) - } + 4575154636832413047u64 => Some(("DT_TFObjectiveResource", "m_bMannVsMachineBetweenWaves")), 4797638343371263506u64 => { Some(("DT_TFObjectiveResource", "m_bMannVsMachineWaveClassActive")) } @@ -1722,28 +1463,19 @@ pub fn get_prop_names( 13288804666577293506u64 => { Some(("DT_TFObjectiveResource", "m_flMannVsMachineNextWaveTime")) } - 11929927671945168139u64 => { - Some(("DT_TFObjectiveResource", "m_flMvMBaseBombUpgradeTime")) - } - 13505806967720020855u64 => { - Some(("DT_TFObjectiveResource", "m_flMvMNextBombUpgradeTime")) - } + 11929927671945168139u64 => Some(("DT_TFObjectiveResource", "m_flMvMBaseBombUpgradeTime")), + 13505806967720020855u64 => Some(("DT_TFObjectiveResource", "m_flMvMNextBombUpgradeTime")), 9478226788110647277u64 => Some(("DT_TFObjectiveResource", "m_iChallengeIndex")), 13662811373935201870u64 => { Some(("DT_TFObjectiveResource", "m_iszMannVsMachineWaveClassNames")) } - 14125941359358500862u64 => { - Some(("DT_TFObjectiveResource", "m_iszMannVsMachineWaveClassNames2")) - } - 13283479491072032159u64 => { - Some(("DT_TFObjectiveResource", "m_iszMvMPopfileName")) - } - 3141572634512091591u64 => { - Some(("DT_TFObjectiveResource", "m_nFlagCarrierUpgradeLevel")) - } - 13702672100241298347u64 => { - Some(("DT_TFObjectiveResource", "m_nMannVsMachineMaxWaveCount")) - } + 14125941359358500862u64 => Some(( + "DT_TFObjectiveResource", + "m_iszMannVsMachineWaveClassNames2", + )), + 13283479491072032159u64 => Some(("DT_TFObjectiveResource", "m_iszMvMPopfileName")), + 3141572634512091591u64 => Some(("DT_TFObjectiveResource", "m_nFlagCarrierUpgradeLevel")), + 13702672100241298347u64 => Some(("DT_TFObjectiveResource", "m_nMannVsMachineMaxWaveCount")), 14479845184716420260u64 => { Some(("DT_TFObjectiveResource", "m_nMannVsMachineWaveClassCounts")) } @@ -1756,15 +1488,11 @@ pub fn get_prop_names( 11508700711658591349u64 => { Some(("DT_TFObjectiveResource", "m_nMannVsMachineWaveClassFlags2")) } - 7227979331359746109u64 => { - Some(("DT_TFObjectiveResource", "m_nMannVsMachineWaveCount")) - } + 7227979331359746109u64 => Some(("DT_TFObjectiveResource", "m_nMannVsMachineWaveCount")), 1069285676895186995u64 => { Some(("DT_TFObjectiveResource", "m_nMannVsMachineWaveEnemyCount")) } - 1466090976134144518u64 => { - Some(("DT_TFObjectiveResource", "m_nMvMEventPopfileType")) - } + 1466090976134144518u64 => Some(("DT_TFObjectiveResource", "m_nMvMEventPopfileType")), 4166591886263057385u64 => Some(("DT_TFObjectiveResource", "m_nMvMWorldMoney")), 13299511838875128394u64 => Some(("DT_TFPEPBrawlerBlaster", "baseclass")), 17108076728579629388u64 => Some(("DT_TFParachute", "baseclass")), @@ -1837,47 +1565,23 @@ pub fn get_prop_names( 9530282495848511690u64 => Some(("DT_TFPlayer", "overlay_vars")), 12892934495131611572u64 => Some(("DT_TFPlayer", "tflocaldata")), 5540499732856528391u64 => Some(("DT_TFPlayer", "tfnonlocaldata")), - 7249864104174644610u64 => { - Some(("DT_TFPlayerClassShared", "m_angCustomModelRotation")) - } - 7891561342236285696u64 => { - Some(("DT_TFPlayerClassShared", "m_bCustomModelRotates")) - } - 5661877542053184554u64 => { - Some(("DT_TFPlayerClassShared", "m_bCustomModelRotationSet")) - } - 12236343874382570979u64 => { - Some(("DT_TFPlayerClassShared", "m_bCustomModelVisibleToSelf")) - } - 2214526246742245878u64 => { - Some(("DT_TFPlayerClassShared", "m_bUseClassAnimations")) - } + 7249864104174644610u64 => Some(("DT_TFPlayerClassShared", "m_angCustomModelRotation")), + 7891561342236285696u64 => Some(("DT_TFPlayerClassShared", "m_bCustomModelRotates")), + 5661877542053184554u64 => Some(("DT_TFPlayerClassShared", "m_bCustomModelRotationSet")), + 12236343874382570979u64 => Some(("DT_TFPlayerClassShared", "m_bCustomModelVisibleToSelf")), + 2214526246742245878u64 => Some(("DT_TFPlayerClassShared", "m_bUseClassAnimations")), 2825349581366125159u64 => Some(("DT_TFPlayerClassShared", "m_iClass")), - 14929819972727047015u64 => { - Some(("DT_TFPlayerClassShared", "m_iClassModelParity")) - } + 14929819972727047015u64 => Some(("DT_TFPlayerClassShared", "m_iClassModelParity")), 8853562029396887365u64 => Some(("DT_TFPlayerClassShared", "m_iszClassIcon")), 9299532423604932782u64 => Some(("DT_TFPlayerClassShared", "m_iszCustomModel")), - 3605541538603075295u64 => { - Some(("DT_TFPlayerClassShared", "m_vecCustomModelOffset")) - } - 8109358974358448859u64 => { - Some(("DT_TFPlayerConditionListExclusive", "_condition_bits")) - } + 3605541538603075295u64 => Some(("DT_TFPlayerClassShared", "m_vecCustomModelOffset")), + 8109358974358448859u64 => Some(("DT_TFPlayerConditionListExclusive", "_condition_bits")), 17722716055336985602u64 => Some(("DT_TFPlayerConditionSource", "m_pProvider")), 10248945773196542992u64 => Some(("DT_TFPlayerDestructionLogic", "baseclass")), - 5156957243461434651u64 => { - Some(("DT_TFPlayerDestructionLogic", "m_bUsingCountdownImage")) - } - 12491625350289392601u64 => { - Some(("DT_TFPlayerDestructionLogic", "m_hBlueTeamLeader")) - } - 16909734097181653644u64 => { - Some(("DT_TFPlayerDestructionLogic", "m_hRedTeamLeader")) - } - 10722194028370111079u64 => { - Some(("DT_TFPlayerDestructionLogic", "m_iszCountdownImage")) - } + 5156957243461434651u64 => Some(("DT_TFPlayerDestructionLogic", "m_bUsingCountdownImage")), + 12491625350289392601u64 => Some(("DT_TFPlayerDestructionLogic", "m_hBlueTeamLeader")), + 16909734097181653644u64 => Some(("DT_TFPlayerDestructionLogic", "m_hRedTeamLeader")), + 10722194028370111079u64 => Some(("DT_TFPlayerDestructionLogic", "m_iszCountdownImage")), 7612658407222882550u64 => Some(("DT_TFPlayerResource", "baseclass")), 17700542660589565789u64 => Some(("DT_TFPlayerResource", "m_bArenaSpectator")), 4207975465077930456u64 => Some(("DT_TFPlayerResource", "m_flConnectTime")), @@ -1897,70 +1601,36 @@ pub fn get_prop_names( 18157388711444408095u64 => Some(("DT_TFPlayerResource", "m_iHealingAssist")), 15085920427971391680u64 => Some(("DT_TFPlayerResource", "m_iMaxBuffedHealth")), 5653953536196887992u64 => Some(("DT_TFPlayerResource", "m_iMaxHealth")), - 11696566803975617270u64 => { - Some(("DT_TFPlayerResource", "m_iPartyLeaderBlueTeamIndex")) - } - 2054940335926020477u64 => { - Some(("DT_TFPlayerResource", "m_iPartyLeaderRedTeamIndex")) - } + 11696566803975617270u64 => Some(("DT_TFPlayerResource", "m_iPartyLeaderBlueTeamIndex")), + 2054940335926020477u64 => Some(("DT_TFPlayerResource", "m_iPartyLeaderRedTeamIndex")), 8699252127192966809u64 => Some(("DT_TFPlayerResource", "m_iPlayerClass")), - 6704078495147373702u64 => { - Some(("DT_TFPlayerResource", "m_iPlayerClassWhenKilled")) - } + 6704078495147373702u64 => Some(("DT_TFPlayerResource", "m_iPlayerClassWhenKilled")), 12788727291211533199u64 => Some(("DT_TFPlayerResource", "m_iPlayerLevel")), 10874692585148385673u64 => Some(("DT_TFPlayerResource", "m_iStreaks")), 17428890270970208490u64 => Some(("DT_TFPlayerResource", "m_iTotalScore")), - 16586024212263748746u64 => { - Some(("DT_TFPlayerResource", "m_iUpgradeRefundCredits")) - } - 17680963770361692319u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iBackstabs")) - } - 3224714055136190323u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iBonusPoints")) - } - 16174441437982525942u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iBuildingsBuilt")) - } + 16586024212263748746u64 => Some(("DT_TFPlayerResource", "m_iUpgradeRefundCredits")), + 17680963770361692319u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iBackstabs")), + 3224714055136190323u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iBonusPoints")), + 16174441437982525942u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iBuildingsBuilt")), 6671651359607407371u64 => { Some(("DT_TFPlayerScoringDataExclusive", "m_iBuildingsDestroyed")) } - 4437120948640711658u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iCaptures")) - } + 4437120948640711658u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iCaptures")), 2310419630852119968u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iCrits")), - 13850963706537747988u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iDamageDone")) - } + 13850963706537747988u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iDamageDone")), 10678164487375062394u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iDeaths")), - 17356718221504493224u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iDefenses")) - } - 3020202442825994948u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iDominations")) - } - 6052806862059603118u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iHeadshots")) - } - 13594920310935082852u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iHealPoints")) - } + 17356718221504493224u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iDefenses")), + 3020202442825994948u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iDominations")), + 6052806862059603118u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iHeadshots")), + 13594920310935082852u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iHealPoints")), 6755946340314293828u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iInvulns")), - 10176801774546911515u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iKillAssists")) - } + 10176801774546911515u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iKillAssists")), 11660639819126944296u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iKills")), 2426254399929860246u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iPoints")), - 9637589603182506964u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iResupplyPoints")) - } + 9637589603182506964u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iResupplyPoints")), 4455851378629347009u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iRevenge")), - 18302889089109974372u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iSuicides")) - } - 12833867606768280111u64 => { - Some(("DT_TFPlayerScoringDataExclusive", "m_iTeleports")) - } + 18302889089109974372u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iSuicides")), + 12833867606768280111u64 => Some(("DT_TFPlayerScoringDataExclusive", "m_iTeleports")), 13640076862556929535u64 => Some(("DT_TFPlayerShared", "m_ConditionData")), 15138242856073670715u64 => Some(("DT_TFPlayerShared", "m_ConditionList")), 6198142612083178798u64 => Some(("DT_TFPlayerShared", "m_askForBallTime")), @@ -1968,9 +1638,7 @@ pub fn get_prop_names( 7347773854865773172u64 => Some(("DT_TFPlayerShared", "m_bCarryingObject")), 14376035618414412444u64 => Some(("DT_TFPlayerShared", "m_bFeignDeathReady")), 12259859103740215171u64 => Some(("DT_TFPlayerShared", "m_bHasPasstimeBall")), - 4455350095516214322u64 => { - Some(("DT_TFPlayerShared", "m_bIsTargetedForPasstimePass")) - } + 4455350095516214322u64 => Some(("DT_TFPlayerShared", "m_bIsTargetedForPasstimePass")), 5838919372959573624u64 => Some(("DT_TFPlayerShared", "m_bJumping")), 19340862012048690u64 => Some(("DT_TFPlayerShared", "m_bKingRuneBuffActive")), 2168903779110072292u64 => Some(("DT_TFPlayerShared", "m_bLoadoutUnavailable")), @@ -1983,9 +1651,7 @@ pub fn get_prop_names( 10620109144072782656u64 => Some(("DT_TFPlayerShared", "m_flFirstPrimaryAttack")), 14843775226164806883u64 => Some(("DT_TFPlayerShared", "m_flHolsterAnimTime")), 10336504216876497537u64 => Some(("DT_TFPlayerShared", "m_flHypeMeter")), - 218051690691615885u64 => { - Some(("DT_TFPlayerShared", "m_flInvisChangeCompleteTime")) - } + 218051690691615885u64 => Some(("DT_TFPlayerShared", "m_flInvisChangeCompleteTime")), 3150733167809423204u64 => Some(("DT_TFPlayerShared", "m_flMovementStunTime")), 2406326727072302926u64 => Some(("DT_TFPlayerShared", "m_flNextNoiseMakerTime")), 2833658322849843380u64 => Some(("DT_TFPlayerShared", "m_flRuneCharge")), @@ -2003,9 +1669,7 @@ pub fn get_prop_names( 14376191046083514006u64 => Some(("DT_TFPlayerShared", "m_iDisguiseHealth")), 2071173860217244535u64 => Some(("DT_TFPlayerShared", "m_iDisguiseTargetIndex")), 4386630627084353964u64 => Some(("DT_TFPlayerShared", "m_iItemFindBonus")), - 13018720741200056505u64 => { - Some(("DT_TFPlayerShared", "m_iKillCountSinceLastDeploy")) - } + 13018720741200056505u64 => Some(("DT_TFPlayerShared", "m_iKillCountSinceLastDeploy")), 10849469538206417414u64 => Some(("DT_TFPlayerShared", "m_iMovementStunAmount")), 11413856900318138181u64 => Some(("DT_TFPlayerShared", "m_iMovementStunParity")), 1107376634035073720u64 => Some(("DT_TFPlayerShared", "m_iNextMeleeCrit")), @@ -2021,9 +1685,7 @@ pub fn get_prop_names( 3930609604368626551u64 => Some(("DT_TFPlayerShared", "m_nDisguiseClass")), 9748785180780691560u64 => Some(("DT_TFPlayerShared", "m_nDisguiseSkinOverride")), 7530743234452068868u64 => Some(("DT_TFPlayerShared", "m_nDisguiseTeam")), - 18218083380655909929u64 => { - Some(("DT_TFPlayerShared", "m_nHalloweenBombHeadStage")) - } + 18218083380655909929u64 => Some(("DT_TFPlayerShared", "m_nHalloweenBombHeadStage")), 7927935797743283012u64 => Some(("DT_TFPlayerShared", "m_nMaskClass")), 13919718662559767836u64 => Some(("DT_TFPlayerShared", "m_nNumHealers")), 4711286069984596877u64 => Some(("DT_TFPlayerShared", "m_nPlayerCond")), @@ -2034,43 +1696,23 @@ pub fn get_prop_names( 6997136048966888830u64 => Some(("DT_TFPlayerShared", "m_nPlayerState")), 2245046823419043341u64 => Some(("DT_TFPlayerShared", "m_nStreaks")), 13227057019132638210u64 => Some(("DT_TFPlayerShared", "m_nTeamTeleporterUsed")), - 6850962631760212227u64 => { - Some(("DT_TFPlayerShared", "m_unTauntSourceItemID_High")) - } - 7956084466773733649u64 => { - Some(("DT_TFPlayerShared", "m_unTauntSourceItemID_Low")) - } + 6850962631760212227u64 => Some(("DT_TFPlayerShared", "m_unTauntSourceItemID_High")), + 7956084466773733649u64 => Some(("DT_TFPlayerShared", "m_unTauntSourceItemID_Low")), 13319027686375000106u64 => Some(("DT_TFPlayerShared", "tfsharedlocaldata")), 13515211804134568111u64 => Some(("DT_TFPlayerSharedLocal", "m_RoundScoreData")), 11658671531568813399u64 => Some(("DT_TFPlayerSharedLocal", "m_ScoreData")), 10573114432959501698u64 => Some(("DT_TFPlayerSharedLocal", "m_bInUpgradeZone")), - 6235798292393519521u64 => { - Some(("DT_TFPlayerSharedLocal", "m_bLastDisguisedAsOwnTeam")) - } + 6235798292393519521u64 => Some(("DT_TFPlayerSharedLocal", "m_bLastDisguisedAsOwnTeam")), 6383445034036932063u64 => Some(("DT_TFPlayerSharedLocal", "m_bPlayerDominated")), - 5106268198471469488u64 => { - Some(("DT_TFPlayerSharedLocal", "m_bPlayerDominatingMe")) - } + 5106268198471469488u64 => Some(("DT_TFPlayerSharedLocal", "m_bPlayerDominatingMe")), 8703332696775965354u64 => Some(("DT_TFPlayerSharedLocal", "m_bRageDraining")), - 17815527772808308975u64 => { - Some(("DT_TFPlayerSharedLocal", "m_flItemChargeMeter")) - } - 6190595888268647202u64 => { - Some(("DT_TFPlayerSharedLocal", "m_flNextRageEarnTime")) - } + 17815527772808308975u64 => Some(("DT_TFPlayerSharedLocal", "m_flItemChargeMeter")), + 6190595888268647202u64 => Some(("DT_TFPlayerSharedLocal", "m_flNextRageEarnTime")), 9364048440766555013u64 => Some(("DT_TFPlayerSharedLocal", "m_flRageMeter")), - 13248562547516894870u64 => { - Some(("DT_TFPlayerSharedLocal", "m_flStealthNextChangeTime")) - } - 332842319886115406u64 => { - Some(("DT_TFPlayerSharedLocal", "m_flStealthNoAttackExpire")) - } - 14396091422816444542u64 => { - Some(("DT_TFPlayerSharedLocal", "m_nDesiredDisguiseClass")) - } - 13635661560440991919u64 => { - Some(("DT_TFPlayerSharedLocal", "m_nDesiredDisguiseTeam")) - } + 13248562547516894870u64 => Some(("DT_TFPlayerSharedLocal", "m_flStealthNextChangeTime")), + 332842319886115406u64 => Some(("DT_TFPlayerSharedLocal", "m_flStealthNoAttackExpire")), + 14396091422816444542u64 => Some(("DT_TFPlayerSharedLocal", "m_nDesiredDisguiseClass")), + 13635661560440991919u64 => Some(("DT_TFPlayerSharedLocal", "m_nDesiredDisguiseTeam")), 16802735114717414726u64 => Some(("DT_TFPointManager", "baseclass")), 11407323403926547683u64 => Some(("DT_TFPointManager", "m_nRandomSeed")), 14592916104900028575u64 => Some(("DT_TFPointManager", "m_nSpawnTime")), @@ -2084,12 +1726,8 @@ pub fn get_prop_names( 4789184390952531014u64 => Some(("DT_TFProjectile_Arrow", "m_bCritical")), 6860211990544602615u64 => Some(("DT_TFProjectile_Arrow", "m_iProjectileType")), 16732170025238567113u64 => Some(("DT_TFProjectile_BallOfFire", "baseclass")), - 3551886767247335557u64 => { - Some(("DT_TFProjectile_BallOfFire", "m_vecInitialVelocity")) - } - 14013310836056119883u64 => { - Some(("DT_TFProjectile_BallOfFire", "m_vecSpawnOrigin")) - } + 3551886767247335557u64 => Some(("DT_TFProjectile_BallOfFire", "m_vecInitialVelocity")), + 14013310836056119883u64 => Some(("DT_TFProjectile_BallOfFire", "m_vecSpawnOrigin")), 1694264126009137687u64 => Some(("DT_TFProjectile_Cleaver", "baseclass")), 11742405590819450090u64 => Some(("DT_TFProjectile_EnergyBall", "baseclass")), 2241173520409474385u64 => Some(("DT_TFProjectile_EnergyBall", "m_bChargedShot")), @@ -2116,12 +1754,8 @@ pub fn get_prop_names( 15010647634537197984u64 => Some(("DT_TFProjectile_SpellFireball", "baseclass")), 4807593640550589405u64 => Some(("DT_TFProjectile_SpellKartBats", "baseclass")), 16949553242176008798u64 => Some(("DT_TFProjectile_SpellKartOrb", "baseclass")), - 10842204632356957470u64 => { - Some(("DT_TFProjectile_SpellLightningOrb", "baseclass")) - } - 14182772427390563713u64 => { - Some(("DT_TFProjectile_SpellMeteorShower", "baseclass")) - } + 10842204632356957470u64 => Some(("DT_TFProjectile_SpellLightningOrb", "baseclass")), + 14182772427390563713u64 => Some(("DT_TFProjectile_SpellMeteorShower", "baseclass")), 17703005378366755113u64 => Some(("DT_TFProjectile_SpellMirv", "baseclass")), 14914850774318660739u64 => Some(("DT_TFProjectile_SpellPumpkin", "baseclass")), 5479354589192301957u64 => Some(("DT_TFProjectile_SpellSpawnBoss", "baseclass")), @@ -2129,9 +1763,7 @@ pub fn get_prop_names( 4908690425231541948u64 => Some(("DT_TFProjectile_SpellSpawnZombie", "baseclass")), 12128142407924414902u64 => Some(("DT_TFProjectile_StunBall", "baseclass")), 17709749369402976757u64 => Some(("DT_TFProjectile_Throwable", "baseclass")), - 16511027951888279189u64 => { - Some(("DT_TFProjectile_ThrowableBreadMonster", "baseclass")) - } + 16511027951888279189u64 => Some(("DT_TFProjectile_ThrowableBreadMonster", "baseclass")), 10478321330033024438u64 => Some(("DT_TFProjectile_ThrowableBrick", "baseclass")), 4302692227327169871u64 => Some(("DT_TFProjectile_ThrowableRepel", "baseclass")), 538080235901856197u64 => Some(("DT_TFPumpkinBomb", "baseclass")), @@ -2163,36 +1795,18 @@ pub fn get_prop_names( 17731752119435714618u64 => Some(("DT_TFReviveMarker", "m_iHealth")), 14390269941393668274u64 => Some(("DT_TFReviveMarker", "m_iMaxHealth")), 16453247229432364389u64 => Some(("DT_TFReviveMarker", "m_nRevives")), - 2488259357860265392u64 => { - Some(("DT_TFRobotDestructionLogic", "m_eWinningMethod")) - } - 506528478121562763u64 => { - Some(("DT_TFRobotDestructionLogic", "m_flBlueFinaleEndTime")) - } - 8630855110816100811u64 => { - Some(("DT_TFRobotDestructionLogic", "m_flBlueTeamRespawnScale")) - } - 5631486662947798357u64 => { - Some(("DT_TFRobotDestructionLogic", "m_flCountdownEndTime")) - } - 10170855019148588755u64 => { - Some(("DT_TFRobotDestructionLogic", "m_flFinaleLength")) - } - 11511520958397168054u64 => { - Some(("DT_TFRobotDestructionLogic", "m_flRedFinaleEndTime")) - } - 14657347363419301188u64 => { - Some(("DT_TFRobotDestructionLogic", "m_flRedTeamRespawnScale")) - } + 2488259357860265392u64 => Some(("DT_TFRobotDestructionLogic", "m_eWinningMethod")), + 506528478121562763u64 => Some(("DT_TFRobotDestructionLogic", "m_flBlueFinaleEndTime")), + 8630855110816100811u64 => Some(("DT_TFRobotDestructionLogic", "m_flBlueTeamRespawnScale")), + 5631486662947798357u64 => Some(("DT_TFRobotDestructionLogic", "m_flCountdownEndTime")), + 10170855019148588755u64 => Some(("DT_TFRobotDestructionLogic", "m_flFinaleLength")), + 11511520958397168054u64 => Some(("DT_TFRobotDestructionLogic", "m_flRedFinaleEndTime")), + 14657347363419301188u64 => Some(("DT_TFRobotDestructionLogic", "m_flRedTeamRespawnScale")), 3565292228082004016u64 => Some(("DT_TFRobotDestructionLogic", "m_nBlueScore")), - 1395860945333357306u64 => { - Some(("DT_TFRobotDestructionLogic", "m_nBlueTargetPoints")) - } + 1395860945333357306u64 => Some(("DT_TFRobotDestructionLogic", "m_nBlueTargetPoints")), 13389409819629425385u64 => Some(("DT_TFRobotDestructionLogic", "m_nMaxPoints")), 869770776688375497u64 => Some(("DT_TFRobotDestructionLogic", "m_nRedScore")), - 15904034070044032921u64 => { - Some(("DT_TFRobotDestructionLogic", "m_nRedTargetPoints")) - } + 15904034070044032921u64 => Some(("DT_TFRobotDestructionLogic", "m_nRedTargetPoints")), 2755343747665576427u64 => Some(("DT_TFRobotDestructionLogic", "m_szResFile")), 2201527720632819052u64 => Some(("DT_TFRobotDestruction_Robot", "baseclass")), 7705455076013337908u64 => Some(("DT_TFRobotDestruction_Robot", "m_eType")), @@ -2201,20 +1815,14 @@ pub fn get_prop_names( 9802884593882878670u64 => { Some(("DT_TFRobotDestruction_RobotGroup", "m_flLastAttackedTime")) } - 9281803239523811882u64 => { - Some(("DT_TFRobotDestruction_RobotGroup", "m_flRespawnEndTime")) - } + 9281803239523811882u64 => Some(("DT_TFRobotDestruction_RobotGroup", "m_flRespawnEndTime")), 13465781202845365165u64 => { Some(("DT_TFRobotDestruction_RobotGroup", "m_flRespawnStartTime")) } 829484812022296518u64 => Some(("DT_TFRobotDestruction_RobotGroup", "m_iTeamNum")), - 1145437368572679092u64 => { - Some(("DT_TFRobotDestruction_RobotGroup", "m_nGroupNumber")) - } + 1145437368572679092u64 => Some(("DT_TFRobotDestruction_RobotGroup", "m_nGroupNumber")), 13178000760587000109u64 => Some(("DT_TFRobotDestruction_RobotGroup", "m_nState")), - 11557301641532402157u64 => { - Some(("DT_TFRobotDestruction_RobotGroup", "m_pszHudIcon")) - } + 11557301641532402157u64 => Some(("DT_TFRobotDestruction_RobotGroup", "m_pszHudIcon")), 13871980323154206106u64 => Some(("DT_TFSMG", "baseclass")), 1978713319633702385u64 => Some(("DT_TFScatterGun", "baseclass")), 793901454180408765u64 => Some(("DT_TFSendHealersDataTable", "m_nActiveWpnClip")), @@ -2244,9 +1852,7 @@ pub fn get_prop_names( 238952999266517002u64 => Some(("DT_TFWeaponBase", "m_bBeingRepurposedForTaunt")), 7341739013090182216u64 => Some(("DT_TFWeaponBase", "m_bDisguiseWeapon")), 12299830798386868253u64 => Some(("DT_TFWeaponBase", "m_bLowered")), - 10393353798185679505u64 => { - Some(("DT_TFWeaponBase", "m_bReloadedThroughAnimEvent")) - } + 10393353798185679505u64 => Some(("DT_TFWeaponBase", "m_bReloadedThroughAnimEvent")), 9746418183918285979u64 => Some(("DT_TFWeaponBase", "m_bResetParity")), 7703029780449879205u64 => Some(("DT_TFWeaponBase", "m_flEnergy")), 2524252340529910052u64 => Some(("DT_TFWeaponBase", "m_flInspectAnimEndTime")), @@ -2260,13 +1866,9 @@ pub fn get_prop_names( 1877908459972235479u64 => Some(("DT_TFWeaponBaseGrenadeProj", "baseclass")), 2466846292560825136u64 => Some(("DT_TFWeaponBaseGrenadeProj", "m_angRotation")), 18129208258165246287u64 => Some(("DT_TFWeaponBaseGrenadeProj", "m_bCritical")), - 14816665825169615596u64 => { - Some(("DT_TFWeaponBaseGrenadeProj", "m_hDeflectOwner")) - } + 14816665825169615596u64 => Some(("DT_TFWeaponBaseGrenadeProj", "m_hDeflectOwner")), 15910156225133181161u64 => Some(("DT_TFWeaponBaseGrenadeProj", "m_iDeflected")), - 16030785045297919863u64 => { - Some(("DT_TFWeaponBaseGrenadeProj", "m_vInitialVelocity")) - } + 16030785045297919863u64 => Some(("DT_TFWeaponBaseGrenadeProj", "m_vInitialVelocity")), 7201706417639549802u64 => Some(("DT_TFWeaponBaseGrenadeProj", "m_vecOrigin")), 15153146917426415418u64 => Some(("DT_TFWeaponBaseGun", "baseclass")), 4284095325278254512u64 => Some(("DT_TFWeaponBaseMelee", "baseclass")), @@ -2283,9 +1885,7 @@ pub fn get_prop_names( 6911360958986844267u64 => Some(("DT_TFWeaponBuffItem", "baseclass")), 5916096045553985727u64 => Some(("DT_TFWeaponBuilder", "BuilderLocalData")), 8840995701055450580u64 => Some(("DT_TFWeaponBuilder", "baseclass")), - 16018273266360131492u64 => { - Some(("DT_TFWeaponBuilder", "m_flWheatleyTalkingUntil")) - } + 16018273266360131492u64 => Some(("DT_TFWeaponBuilder", "m_flWheatleyTalkingUntil")), 18297629592260019187u64 => Some(("DT_TFWeaponBuilder", "m_iBuildState")), 13703834646564863544u64 => Some(("DT_TFWeaponBuilder", "m_iObjectMode")), 11272366756849564851u64 => Some(("DT_TFWeaponCleaver", "baseclass")), @@ -2302,17 +1902,11 @@ pub fn get_prop_names( 15248262520233306394u64 => Some(("DT_TFWeaponKnife", "m_bKnifeExists")), 1290621820141012070u64 => Some(("DT_TFWeaponKnife", "m_bReadyToBackstab")), 261816387391465162u64 => Some(("DT_TFWeaponKnife", "m_flKnifeMeltTimestamp")), - 8348412092415632560u64 => { - Some(("DT_TFWeaponKnife", "m_flKnifeRegenerateDuration")) - } - 10680082844746950705u64 => { - Some(("DT_TFWeaponMedigunDataNonLocal", "m_flChargeLevel")) - } + 8348412092415632560u64 => Some(("DT_TFWeaponKnife", "m_flKnifeRegenerateDuration")), + 10680082844746950705u64 => Some(("DT_TFWeaponMedigunDataNonLocal", "m_flChargeLevel")), 14322443331861418940u64 => Some(("DT_TFWeaponPDA", "baseclass")), 866198076290749321u64 => Some(("DT_TFWeaponPDAExpansion_Dispenser", "baseclass")), - 10550287788295773126u64 => { - Some(("DT_TFWeaponPDAExpansion_Teleporter", "baseclass")) - } + 10550287788295773126u64 => Some(("DT_TFWeaponPDAExpansion_Teleporter", "baseclass")), 14912089340891657015u64 => Some(("DT_TFWeaponPDA_Engineer_Build", "baseclass")), 15192163711255752217u64 => Some(("DT_TFWeaponPDA_Engineer_Destroy", "baseclass")), 155424477105195551u64 => Some(("DT_TFWeaponPDA_Spy", "baseclass")), @@ -2332,9 +1926,7 @@ pub fn get_prop_names( 8247423999282715316u64 => Some(("DT_TFWeaponSpellBook", "baseclass")), 1355120005829625559u64 => Some(("DT_TFWeaponSpellBook", "m_bFiredAttack")), 11938777711593683949u64 => Some(("DT_TFWeaponSpellBook", "m_flTimeNextSpell")), - 15739619913096587929u64 => { - Some(("DT_TFWeaponSpellBook", "m_iSelectedSpellIndex")) - } + 15739619913096587929u64 => Some(("DT_TFWeaponSpellBook", "m_iSelectedSpellIndex")), 6228803539782541901u64 => Some(("DT_TFWeaponSpellBook", "m_iSpellCharges")), 7042779919315246121u64 => Some(("DT_TFWeaponStickBomb", "baseclass")), 16682550675401826609u64 => Some(("DT_TFWeaponStickBomb", "m_iDetonated")), @@ -2381,53 +1973,34 @@ pub fn get_prop_names( 1183813146715819129u64 => Some(("DT_TeamTrainWatcher", "m_hGlowEnt")), 18065443311897023007u64 => Some(("DT_TeamTrainWatcher", "m_iTrainSpeedLevel")), 17337167978138758609u64 => Some(("DT_TeamTrainWatcher", "m_nNumCappers")), - 3769044050020656199u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_TeamRespawnWaveTimes")) - } - 1840601812648433533u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_bAwaitingReadyRestart")) - } + 3769044050020656199u64 => Some(("DT_TeamplayRoundBasedRules", "m_TeamRespawnWaveTimes")), + 1840601812648433533u64 => Some(("DT_TeamplayRoundBasedRules", "m_bAwaitingReadyRestart")), 17472021955271892919u64 => { Some(("DT_TeamplayRoundBasedRules", "m_bCheatsEnabledDuringLevel")) } 7697033308867870453u64 => Some(("DT_TeamplayRoundBasedRules", "m_bInOvertime")), 8951057560776888337u64 => Some(("DT_TeamplayRoundBasedRules", "m_bInSetup")), - 3634063335773859450u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_bInWaitingForPlayers")) - } - 568390723081368564u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_bMultipleTrains")) - } + 3634063335773859450u64 => Some(("DT_TeamplayRoundBasedRules", "m_bInWaitingForPlayers")), + 568390723081368564u64 => Some(("DT_TeamplayRoundBasedRules", "m_bMultipleTrains")), 9158469900010144837u64 => Some(("DT_TeamplayRoundBasedRules", "m_bPlayerReady")), 9126896830518175752u64 => Some(("DT_TeamplayRoundBasedRules", "m_bStopWatch")), 17505861364436260012u64 => { Some(("DT_TeamplayRoundBasedRules", "m_bSwitchedTeamsThisRound")) } 13102233919763610425u64 => Some(("DT_TeamplayRoundBasedRules", "m_bTeamReady")), - 11520242942379493867u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_flCountdownTime")) - } - 12551706823833948281u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_flMapResetTime")) - } - 8834130812020299059u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_flNextRespawnWave")) - } - 3638667356767018345u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_flRestartRoundTime")) - } - 12570022626856076296u64 => { - Some(("DT_TeamplayRoundBasedRules", "m_flStateTransitionTime")) - } + 11520242942379493867u64 => Some(("DT_TeamplayRoundBasedRules", "m_flCountdownTime")), + 12551706823833948281u64 => Some(("DT_TeamplayRoundBasedRules", "m_flMapResetTime")), + 8834130812020299059u64 => Some(("DT_TeamplayRoundBasedRules", "m_flNextRespawnWave")), + 3638667356767018345u64 => Some(("DT_TeamplayRoundBasedRules", "m_flRestartRoundTime")), + 12570022626856076296u64 => Some(("DT_TeamplayRoundBasedRules", "m_flStateTransitionTime")), 14894834847121989153u64 => Some(("DT_TeamplayRoundBasedRules", "m_iRoundState")), 12323048553518703167u64 => Some(("DT_TeamplayRoundBasedRules", "m_iWinningTeam")), 7688690215610714435u64 => Some(("DT_TeamplayRoundBasedRules", "m_nRoundsPlayed")), 3909918602834404432u64 => Some(("DT_TeamplayRoundBasedRulesProxy", "baseclass")), - 12675478000229394536u64 => { - Some( - ("DT_TeamplayRoundBasedRulesProxy", "teamplayroundbased_gamerules_data"), - ) - } + 12675478000229394536u64 => Some(( + "DT_TeamplayRoundBasedRulesProxy", + "teamplayroundbased_gamerules_data", + )), 16789549748701517246u64 => Some(("DT_TeleportVortex", "baseclass")), 1585779299108791655u64 => Some(("DT_TeleportVortex", "m_iState")), 10414639220533856150u64 => Some(("DT_Tesla", "baseclass")), @@ -2465,12 +2038,8 @@ pub fn get_prop_names( 12734808021541887372u64 => Some(("DT_WORLD", "m_flWaveHeight")), 171538238674988579u64 => Some(("DT_WORLD", "m_iszDetailSpriteMaterial")), 17280899839930290558u64 => Some(("DT_WaterBullet", "baseclass")), - 9589936884534067881u64 => { - Some(("DT_WaterLODControl", "m_flCheapWaterEndDistance")) - } - 9947121641112050854u64 => { - Some(("DT_WaterLODControl", "m_flCheapWaterStartDistance")) - } + 9589936884534067881u64 => Some(("DT_WaterLODControl", "m_flCheapWaterEndDistance")), + 9947121641112050854u64 => Some(("DT_WaterLODControl", "m_flCheapWaterStartDistance")), 5249608886909110228u64 => Some(("DT_WeaponChargedSMG", "baseclass")), 1743123092148919758u64 => Some(("DT_WeaponChargedSMG", "m_flMinicritCharge")), 2197198122745307194u64 => Some(("DT_WeaponCompoundBow", "baseclass")), @@ -2479,9 +2048,7 @@ pub fn get_prop_names( 4861873545713552938u64 => Some(("DT_WeaponDRGPomson", "baseclass")), 9630823746847383925u64 => Some(("DT_WeaponFlameBall", "baseclass")), 8369367647103916745u64 => Some(("DT_WeaponFlameBall", "m_flRechargeScale")), - 17352185945850447107u64 => { - Some(("DT_WeaponFlameThrower", "LocalFlameThrowerData")) - } + 17352185945850447107u64 => Some(("DT_WeaponFlameThrower", "LocalFlameThrowerData")), 18383866324137430829u64 => Some(("DT_WeaponFlameThrower", "baseclass")), 3776490372795891802u64 => Some(("DT_WeaponFlameThrower", "m_bCritFire")), 6261685785015862540u64 => Some(("DT_WeaponFlameThrower", "m_bHitTarget")), @@ -2490,9 +2057,7 @@ pub fn get_prop_names( 10564768266751156041u64 => Some(("DT_WeaponFlareGun", "baseclass")), 17877192080530687310u64 => Some(("DT_WeaponFlareGun", "m_flChargeBeginTime")), 12115275093436982466u64 => Some(("DT_WeaponFlareGun_Revenge", "baseclass")), - 14016443750437486906u64 => { - Some(("DT_WeaponFlareGun_Revenge", "m_fLastExtinguishTime")) - } + 14016443750437486906u64 => Some(("DT_WeaponFlareGun_Revenge", "m_fLastExtinguishTime")), 15016924890826864049u64 => Some(("DT_WeaponGrenadeLauncher", "baseclass")), 1700651623293842179u64 => Some(("DT_WeaponGrenadeLauncher", "m_flDetonateTime")), 4570970399831902168u64 => Some(("DT_WeaponGrenadeLauncher", "m_iCurrentTube")), @@ -2501,18 +2066,14 @@ pub fn get_prop_names( 13014581304645777871u64 => Some(("DT_WeaponIFMBaseCamera", "baseclass")), 9069779483228148426u64 => Some(("DT_WeaponIFMBaseCamera", "m_angRenderAngles")), 2439309287405946914u64 => Some(("DT_WeaponIFMBaseCamera", "m_flRenderArmLength")), - 5258692580598323193u64 => { - Some(("DT_WeaponIFMBaseCamera", "m_flRenderAspectRatio")) - } + 5258692580598323193u64 => Some(("DT_WeaponIFMBaseCamera", "m_flRenderAspectRatio")), 10124480453973277717u64 => Some(("DT_WeaponIFMBaseCamera", "m_flRenderFOV")), 9154514883778471157u64 => Some(("DT_WeaponIFMBaseCamera", "m_vecRenderPosition")), 17315982218331265186u64 => Some(("DT_WeaponIFMSteadyCam", "baseclass")), 17557645954865645428u64 => Some(("DT_WeaponLunchBox", "baseclass")), 1836879092463416116u64 => Some(("DT_WeaponLunchBox", "m_bBroken")), 18050229696589327727u64 => Some(("DT_WeaponMedigun", "LocalTFWeaponMedigunData")), - 17905087994580451662u64 => { - Some(("DT_WeaponMedigun", "NonLocalTFWeaponMedigunData")) - } + 17905087994580451662u64 => Some(("DT_WeaponMedigun", "NonLocalTFWeaponMedigunData")), 7839557282419475896u64 => Some(("DT_WeaponMedigun", "baseclass")), 10597824636109764371u64 => Some(("DT_WeaponMedigun", "m_bAttacking")), 5079259778519160016u64 => Some(("DT_WeaponMedigun", "m_bChargeRelease")), @@ -2524,9 +2085,7 @@ pub fn get_prop_names( 8469331909856512570u64 => Some(("DT_WeaponMinigun", "baseclass")), 16228268275425358053u64 => Some(("DT_WeaponMinigun", "m_bCritShot")), 3814692596291380319u64 => Some(("DT_WeaponMinigun", "m_iWeaponState")), - 2751213190836236879u64 => { - Some(("DT_WeaponPipebombLauncher", "PipebombLauncherLocalData")) - } + 2751213190836236879u64 => Some(("DT_WeaponPipebombLauncher", "PipebombLauncherLocalData")), 17384155663803683951u64 => Some(("DT_WeaponPipebombLauncher", "baseclass")), 1667950891985876038u64 => Some(("DT_WeaponPistol", "baseclass")), 6104910371144863853u64 => Some(("DT_WeaponPistol_Scout", "baseclass")), @@ -2536,12 +2095,8 @@ pub fn get_prop_names( 12777409271429993909u64 => Some(("DT_WeaponRaygun", "m_bUseNewProjectileCode")), 8290738880515933250u64 => Some(("DT_WeaponRevolver", "baseclass")), 2350834459646160183u64 => Some(("DT_WeaponRocketLauncher", "baseclass")), - 6500154596923033956u64 => { - Some(("DT_WeaponRocketLauncher_AirStrike", "baseclass")) - } - 12312353368644989384u64 => { - Some(("DT_WeaponRocketLauncher_DirectHit", "baseclass")) - } + 6500154596923033956u64 => Some(("DT_WeaponRocketLauncher_AirStrike", "baseclass")), + 12312353368644989384u64 => Some(("DT_WeaponRocketLauncher_DirectHit", "baseclass")), 1487046910738861119u64 => Some(("DT_WeaponRocketLauncher_Mortar", "baseclass")), 15134921543580708068u64 => Some(("DT_WeaponSyringeGun", "baseclass")), 16527650451819869423u64 => Some(("DT_WearableItem", "baseclass")), @@ -7203,4 +6758,3 @@ pub fn get_prop_names( _ => None, } } - diff --git a/src/demo/vector.rs b/src/demo/vector.rs index 53c0bb1..859e8d6 100644 --- a/src/demo/vector.rs +++ b/src/demo/vector.rs @@ -1,7 +1,7 @@ -use std::ops::{Add, Sub}; use bitbuffer::{BitRead, BitWrite}; use parse_display::Display; use serde::{Deserialize, Serialize}; +use std::ops::{Add, Sub}; #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(BitRead, BitWrite, Debug, Clone, Copy, Default, Serialize, Deserialize, Display)] From 2b01b3ba7cf3837875b7ea7b3627a2d08da50270 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 29 Jan 2024 22:37:01 +0100 Subject: [PATCH 11/45] better json serialize for event type --- codegen/Cargo.lock | 137 +++++++++++++++++++++++--------------- codegen/src/gameevent.rs | 24 ++++++- src/demo/gameevent_gen.rs | 21 +++++- 3 files changed, 124 insertions(+), 58 deletions(-) diff --git a/codegen/Cargo.lock b/codegen/Cargo.lock index 3202faa..8ed8d17 100644 --- a/codegen/Cargo.lock +++ b/codegen/Cargo.lock @@ -25,9 +25,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "0.7.18" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -76,9 +76,9 @@ dependencies = [ [[package]] name = "bitbuffer" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a9c93bd4423a7740feae26d6daf52b7d53451cba0b2d6bed59b836c32e15c" +checksum = "525586993a118417512a49bada2d143319310891f48b0b116c8f64fbb6486c87" dependencies = [ "bitbuffer_derive", "err-derive", @@ -95,7 +95,7 @@ checksum = "4090254bfbc71442ff4a426ddba663346e26fd14b55b259281f763e350d7f621" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.99", "syn_util", ] @@ -183,7 +183,7 @@ checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.99", ] [[package]] @@ -196,7 +196,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 1.0.99", "synstructure", ] @@ -241,9 +241,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] @@ -274,9 +274,9 @@ checksum = "155db5e86c6e45ee456bf32fad5a290ee1f7151c2faca27ea27097568da67d1a" [[package]] name = "memchr" -version = "2.4.1" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "miniz_oxide" @@ -391,7 +391,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.99", ] [[package]] @@ -405,15 +405,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.9.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "parse-display" -version = "0.5.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "813e91c6232dbeb2e9deba0eb0dc5c967bd6f380676fd34419f9ddd71411faa7" +checksum = "c6509d08722b53e8dafe97f2027b22ccbe3a5db83cb352931e9716b0aa44bc5c" dependencies = [ "once_cell", "parse-display-derive", @@ -422,17 +422,17 @@ dependencies = [ [[package]] name = "parse-display-derive" -version = "0.5.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "007ed61a69cf7d9b95cc5dc18489dbb4f70d4adb0a0c100e2dd46f0be241711a" +checksum = "68517892c8daf78da08c0db777fcc17e07f2f63ef70041718f8a7630ad84f341" dependencies = [ "once_cell", "proc-macro2", "quote", "regex", - "regex-syntax", + "regex-syntax 0.7.5", "structmeta", - "syn", + "syn 2.0.48", ] [[package]] @@ -442,7 +442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3ebd569945e276e2c8000677484f50f5c242b3495929ae1c7d42d89778939a" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.99", ] [[package]] @@ -464,7 +464,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.99", "version_check", ] @@ -481,18 +481,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.14" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -508,20 +508,38 @@ dependencies = [ [[package]] name = "regex" -version = "1.6.0" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-automata", + "regex-syntax 0.8.2", ] +[[package]] +name = "regex-automata" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + [[package]] name = "regex-syntax" -version = "0.6.27" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "remove_dir_all" @@ -552,29 +570,29 @@ checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] name = "serde" -version = "1.0.144" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.144" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", ] [[package]] name = "serde_json" -version = "1.0.85" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -583,20 +601,20 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.9" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" +checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", ] [[package]] name = "snap" -version = "1.0.5" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "steamid-ng" @@ -615,25 +633,25 @@ dependencies = [ [[package]] name = "structmeta" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59915b528a896f2e3bfa1a6ace65f7bb0ff9f9863de6213b0c01cb6fd3c3ac71" +checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d" dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn", + "syn 2.0.48", ] [[package]] name = "structmeta-derive" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73800bcca56045d5ab138a48cd28a96093335335deaa916f22b5749c4150c79" +checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.48", ] [[package]] @@ -647,6 +665,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn_util" version = "0.4.2" @@ -655,7 +684,7 @@ checksum = "6754c4559b79657554e9d8a0d56e65e490c76d382b9c23108364ec4125dea23c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.99", ] [[package]] @@ -666,7 +695,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.99", "unicode-xid", ] @@ -695,7 +724,7 @@ dependencies = [ [[package]] name = "tf-demo-parser" -version = "0.4.0" +version = "0.5.0" dependencies = [ "bitbuffer", "enumflags2", @@ -725,7 +754,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn", + "syn 1.0.99", "tempfile", "tf-demo-parser", ] @@ -747,7 +776,7 @@ checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.99", ] [[package]] diff --git a/codegen/src/gameevent.rs b/codegen/src/gameevent.rs index 46e1d56..f141b7e 100644 --- a/codegen/src/gameevent.rs +++ b/codegen/src/gameevent.rs @@ -229,7 +229,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { use crate::demo::Stream; use crate::{ParseError, Result}; use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; - use serde::{Deserialize, Serialize}; + use serde::{Deserialize, Deserializer, Serialize, Serializer}; use crate::demo::data::MaybeUtf8String; ); @@ -398,12 +398,32 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] - #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] + #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum GameEventType { #(#event_types)* Unknown(String), } + impl Serialize for GameEventType { + fn serialize(&self, serializer: S) -> std::result::Result + where + S: Serializer, + { + serializer.serialize_str(self.as_str()) + } + } + + impl<'de> Deserialize<'de> for GameEventType { + fn deserialize(deserializer: D) -> std::result::Result + where + D: Deserializer<'de>, + { + let str = <&str>::deserialize(deserializer)?; + Ok(GameEventType::from_type_name(str)) + } + } + + impl GameEventType { pub fn from_type_name(name: &str) -> Self { match name { diff --git a/src/demo/gameevent_gen.rs b/src/demo/gameevent_gen.rs index 5785254..b82e514 100644 --- a/src/demo/gameevent_gen.rs +++ b/src/demo/gameevent_gen.rs @@ -3,7 +3,7 @@ use crate::demo::data::MaybeUtf8String; use crate::demo::Stream; use crate::{ParseError, Result}; use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian}; -use serde::{Deserialize, Serialize}; +use serde::{Deserialize, Deserializer, Serialize, Serializer}; fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>( stream: &mut Stream<'a>, entry: Option<&GameEventEntry>, @@ -6712,7 +6712,7 @@ pub enum GameEvent { Unknown(RawGameEvent), } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum GameEventType { ServerSpawn, ServerChangeLevelFailed, @@ -7117,6 +7117,23 @@ pub enum GameEventType { ReplayServerError, Unknown(String), } +impl Serialize for GameEventType { + fn serialize(&self, serializer: S) -> std::result::Result + where + S: Serializer, + { + serializer.serialize_str(self.as_str()) + } +} +impl<'de> Deserialize<'de> for GameEventType { + fn deserialize(deserializer: D) -> std::result::Result + where + D: Deserializer<'de>, + { + let str = <&str>::deserialize(deserializer)?; + Ok(GameEventType::from_type_name(str)) + } +} impl GameEventType { pub fn from_type_name(name: &str) -> Self { match name { From 8da83b7df8954ea845997b46dc7f54da81f2e38e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 29 Jan 2024 22:37:08 +0100 Subject: [PATCH 12/45] add missing disaply --- src/demo/parser/analyser.rs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/demo/parser/analyser.rs b/src/demo/parser/analyser.rs index bc9d8e6..850db49 100644 --- a/src/demo/parser/analyser.rs +++ b/src/demo/parser/analyser.rs @@ -42,7 +42,17 @@ impl ChatMessage { } #[derive( - Debug, Clone, Serialize, Deserialize, Copy, PartialEq, Eq, Hash, TryFromPrimitive, Default, + Debug, + Clone, + Serialize, + Deserialize, + Copy, + PartialEq, + Eq, + Hash, + TryFromPrimitive, + Default, + Display, )] #[serde(rename_all = "lowercase")] #[repr(u8)] @@ -206,7 +216,18 @@ impl From> for ClassList { #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive( - Debug, Clone, Serialize, Deserialize, Copy, PartialEq, Eq, Hash, Ord, PartialOrd, Default, + Debug, + Clone, + Serialize, + Deserialize, + Copy, + PartialEq, + Eq, + Hash, + Ord, + PartialOrd, + Default, + Display, )] pub struct UserId(u16); From c08f30a60c2f3a4140d6a3e30a413a9945e72e8c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 29 Jan 2024 22:54:45 +0100 Subject: [PATCH 13/45] explicit event type to event message --- src/demo/message/gameevent.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/demo/message/gameevent.rs b/src/demo/message/gameevent.rs index 8a19b38..063f5ad 100644 --- a/src/demo/message/gameevent.rs +++ b/src/demo/message/gameevent.rs @@ -13,6 +13,7 @@ use crate::{GameEventError, Parse, ParseError, ParserState, ReadResult, Result, #[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameEventMessage { pub event_type_id: GameEventTypeId, + pub event_type: GameEventType, pub event: GameEvent, } @@ -26,6 +27,7 @@ impl Parse<'_> for GameEventMessage { if state.event_definitions.is_empty() { return Ok(GameEventMessage { event_type_id, + event_type: GameEventType::Unknown(String::new()), event: GameEvent::Unknown(RawGameEvent { event_type: GameEventType::Unknown(String::new()), values: Vec::new(), @@ -43,6 +45,7 @@ impl Parse<'_> for GameEventMessage { }; Ok(GameEventMessage { event_type_id, + event_type: event.event_type(), event, }) } @@ -94,6 +97,7 @@ fn test_game_event_roundtrip() { crate::test_roundtrip_encode( GameEventMessage { event_type_id: GameEventTypeId(0), + event_type: GameEventType::ServerShutdown, event: GameEvent::ServerShutdown(ServerShutdownEvent { reason: "asd".into(), }), @@ -103,6 +107,7 @@ fn test_game_event_roundtrip() { crate::test_roundtrip_encode( GameEventMessage { event_type_id: GameEventTypeId(2), + event_type: GameEventType::GameInit, event: GameEvent::GameInit(GameInitEvent {}), }, &state, From 1a549b7c409f2771cc48ce2e0af55fac7bb8f8af Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 1 Feb 2024 00:31:23 +0100 Subject: [PATCH 14/45] merge codegen into main crate --- Cargo.lock | 176 ++++- Cargo.toml | 21 +- codegen.nix | 23 + codegen/.gitignore | 2 - codegen/Cargo.lock | 829 ---------------------- codegen/Cargo.toml | 22 - flake.nix | 19 +- overlay.nix | 12 + parser.nix | 18 + codegen/src/main.rs => src/bin/codegen.rs | 7 +- {codegen/src => src/codegen}/gameevent.rs | 10 +- src/codegen/mod.rs | 2 + {codegen/src => src/codegen}/propnames.rs | 8 +- src/lib.rs | 2 + 14 files changed, 261 insertions(+), 890 deletions(-) create mode 100644 codegen.nix delete mode 100644 codegen/.gitignore delete mode 100644 codegen/Cargo.lock delete mode 100644 codegen/Cargo.toml create mode 100644 overlay.nix create mode 100644 parser.nix rename codegen/src/main.rs => src/bin/codegen.rs (86%) rename {codegen/src => src/codegen}/gameevent.rs (98%) create mode 100644 src/codegen/mod.rs rename {codegen/src => src/codegen}/propnames.rs (95%) diff --git a/Cargo.lock b/Cargo.lock index 514aa75..878ba07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + [[package]] name = "addr2line" version = "0.21.0" @@ -106,6 +112,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + [[package]] name = "bumpalo" version = "3.14.0" @@ -166,7 +178,7 @@ version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ - "bitflags", + "bitflags 1.3.2", "clap_lex", "indexmap 1.9.3", "textwrap", @@ -190,7 +202,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "windows-sys", + "windows-sys 0.45.0", ] [[package]] @@ -334,6 +346,22 @@ dependencies = [ "synstructure", ] +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "fnv" version = "1.0.7" @@ -465,9 +493,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.151" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "linked-hash-map" @@ -475,6 +503,12 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + [[package]] name = "log" version = "0.4.20" @@ -741,6 +775,16 @@ dependencies = [ "yansi", ] +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -813,6 +857,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" version = "1.10.2" @@ -869,6 +922,19 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustix" +version = "0.38.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +dependencies = [ + "bitflags 2.4.2", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -1077,6 +1143,19 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "tempfile" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "test-case" version = "2.2.2" @@ -1109,6 +1188,7 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" name = "tf-demo-parser" version = "0.5.0" dependencies = [ + "Inflector", "better-panic", "bitbuffer", "criterion", @@ -1119,18 +1199,24 @@ dependencies = [ "insta", "itertools", "jemallocator", + "lazy_static", "main_error", "no-panic", "num-traits 0.2.17", "num_enum", "parse-display", "pretty_assertions", + "prettyplease", + "proc-macro2", + "quote", "schemars", "serde", "serde_json", "serde_repr", "snap", "steamid-ng", + "syn 1.0.109", + "tempfile", "test-case", "tracing", "tracing-subscriber", @@ -1389,7 +1475,16 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -1398,13 +1493,28 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -1413,42 +1523,84 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.32" diff --git a/Cargo.toml b/Cargo.toml index 5c46c01..44c3b98 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,11 +30,16 @@ name = "schema" path = "src/bin/schema.rs" required-features = ["schema"] +[[bin]] +name = "codegen" +path = "src/bin/codegen.rs" +required-features = ["codegen"] + [dependencies] bitbuffer = { version = "0.10.9", features = ["serde"] } num_enum = "0.5.7" num-traits = "0.2.15" -enumflags2 = { version = "0.7.5", features = ["serde"] } +enumflags2 = { version = "0.7.8", features = ["serde"] } snap = "1.1.0" serde = { version = "1.0.152", features = ["derive", "rc"] } serde_json = "1.0.91" @@ -47,14 +52,26 @@ better-panic = { version = "0.3.0", optional = true } no-panic = { version = "0.1.17", optional = true } fnv = "1.0.7" steamid-ng = "1.0.0" -schemars = { version = "0.8.11", optional = true } tracing = { version = "0.1.37", optional = true } tracing-subscriber = { version = "0.3.16", features = ["env-filter"], optional = true } itertools = "0.10.5" +# schema +schemars = { version = "0.8.11", optional = true } + +# codegen +quote = { version = "1", optional = true } +syn = { version = "1", features = ["full"], optional = true } +Inflector = { version = "0.11", default-features = false, optional = true } +proc-macro2 = { version = "1", optional = true } +tempfile = { version = "3", optional = true } +lazy_static = { version = "1", optional = true } +prettyplease = { version = "0.1", optional = true } + [features] schema = ["schemars", "bitbuffer/schemars"] trace = ["tracing", "tracing-subscriber"] +codegen = ["better-panic", "quote", "syn", "Inflector", "proc-macro2", "tempfile", "lazy_static", "prettyplease"] [dev-dependencies] pretty_assertions = "1.3.0" diff --git a/codegen.nix b/codegen.nix new file mode 100644 index 0000000..acb47e3 --- /dev/null +++ b/codegen.nix @@ -0,0 +1,23 @@ +{ + stdenv, + rustPlatform, + lib, +}: let + inherit (lib.sources) sourceByRegex; + src = sourceByRegex ./. ["Cargo.*" "(src|benches|tests|test_data)(/.*)?"]; +in + rustPlatform.buildRustPackage { + pname = "demostf-parser-codegen"; + version = "0.1.0"; + + src = lib.traceVal src; + + buildType = "debug"; + buildFeatures = ["codegen"]; + + doCheck = false; + + cargoLock = { + lockFile = ./Cargo.lock; + }; + } diff --git a/codegen/.gitignore b/codegen/.gitignore deleted file mode 100644 index a81dc8c..0000000 --- a/codegen/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -target -out.rs \ No newline at end of file diff --git a/codegen/Cargo.lock b/codegen/Cargo.lock deleted file mode 100644 index 8ed8d17..0000000 --- a/codegen/Cargo.lock +++ /dev/null @@ -1,829 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "backtrace" -version = "0.3.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "better-panic" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d12a680cc74d8c4a44ee08be4a00dedf671b089c2440b2e3fdaa776cd468476" -dependencies = [ - "backtrace", - "console", -] - -[[package]] -name = "bitbuffer" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525586993a118417512a49bada2d143319310891f48b0b116c8f64fbb6486c87" -dependencies = [ - "bitbuffer_derive", - "err-derive", - "memchr", - "num-traits 0.2.15", - "serde", -] - -[[package]] -name = "bitbuffer_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4090254bfbc71442ff4a426ddba663346e26fd14b55b259281f763e350d7f621" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", - "syn_util", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "cc" -version = "1.0.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "clicolors-control" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e" -dependencies = [ - "atty", - "lazy_static", - "libc", - "winapi", -] - -[[package]] -name = "console" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e0f3986890b3acbc782009e2629dfe2baa430ac091519ce3be26164a2ae6c0" -dependencies = [ - "clicolors-control", - "encode_unicode", - "lazy_static", - "libc", - "regex", - "termios", - "winapi", -] - -[[package]] -name = "either" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "enum_primitive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" -dependencies = [ - "num-traits 0.1.43", -] - -[[package]] -name = "enumflags2" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "err-derive" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34a887c8df3ed90498c1c437ce21f211c8e27672921a8ffa293cb8d6d4caa9e" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.99", - "synstructure", -] - -[[package]] -name = "fastrand" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2" -dependencies = [ - "instant", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "libc" -version = "0.2.112" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" - -[[package]] -name = "main_error" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155db5e86c6e45ee456bf32fad5a290ee1f7151c2faca27ea27097568da67d1a" - -[[package]] -name = "memchr" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "num" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits 0.2.15", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-complex" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits 0.2.15", -] - -[[package]] -name = "num-iter" -version = "0.1.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" -dependencies = [ - "autocfg", - "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-rational" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_enum" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "object" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "parse-display" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6509d08722b53e8dafe97f2027b22ccbe3a5db83cb352931e9716b0aa44bc5c" -dependencies = [ - "once_cell", - "parse-display-derive", - "regex", -] - -[[package]] -name = "parse-display-derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68517892c8daf78da08c0db777fcc17e07f2f63ef70041718f8a7630ad84f341" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "regex", - "regex-syntax 0.7.5", - "structmeta", - "syn 2.0.48", -] - -[[package]] -name = "prettyplease" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3ebd569945e276e2c8000677484f50f5c242b3495929ae1c7d42d89778939a" -dependencies = [ - "proc-macro2", - "syn 1.0.99", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" -dependencies = [ - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.99", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.78" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "redox_syscall" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" -dependencies = [ - "bitflags", -] - -[[package]] -name = "regex" -version = "1.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-automata" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" - -[[package]] -name = "rustversion" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" - -[[package]] -name = "ryu" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" - -[[package]] -name = "serde" -version = "1.0.196" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.196" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "serde_json" -version = "1.0.113" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "steamid-ng" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb049f8faa2cba570c5366dbaf88ee5849725b16edb771848639fac92e33673" -dependencies = [ - "enum_primitive", - "lazy_static", - "num", - "regex", - "serde", - "serde_derive", - "thiserror", -] - -[[package]] -name = "structmeta" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d" -dependencies = [ - "proc-macro2", - "quote", - "structmeta-derive", - "syn 2.0.48", -] - -[[package]] -name = "structmeta-derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "syn" -version = "1.0.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn_util" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6754c4559b79657554e9d8a0d56e65e490c76d382b9c23108364ec4125dea23c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", - "unicode-xid", -] - -[[package]] -name = "tempfile" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" -dependencies = [ - "cfg-if", - "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "termios" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" -dependencies = [ - "libc", -] - -[[package]] -name = "tf-demo-parser" -version = "0.5.0" -dependencies = [ - "bitbuffer", - "enumflags2", - "err-derive", - "fnv", - "itertools", - "main_error", - "num-traits 0.2.15", - "num_enum", - "parse-display", - "serde", - "serde_json", - "serde_repr", - "snap", - "steamid-ng", -] - -[[package]] -name = "tf-demo-parser-gen" -version = "0.2.0" -dependencies = [ - "Inflector", - "better-panic", - "fnv", - "lazy_static", - "main_error", - "prettyplease", - "proc-macro2", - "quote", - "syn 1.0.99", - "tempfile", - "tf-demo-parser", -] - -[[package]] -name = "thiserror" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.99", -] - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "unicode-ident" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" - -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml deleted file mode 100644 index 3da2d0b..0000000 --- a/codegen/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[package] -name = "tf-demo-parser-gen" -version = "0.2.0" -authors = ["Robin Appelman "] -edition = "2018" - -[[bin]] -name = "generate" -path = "src/main.rs" - -[dependencies] -tf-demo-parser = { version = "*", path = "../" } -quote = "1" -syn = { version = "1", features = ["full"] } -Inflector = { version = "0.11", default-features = false } -better-panic = "0.2" -proc-macro2 = "1" -tempfile = "3" -lazy_static = "1" -fnv = "1" -prettyplease = "0.1" -main_error = "0.1.2" \ No newline at end of file diff --git a/flake.nix b/flake.nix index 06fd149..e511cec 100644 --- a/flake.nix +++ b/flake.nix @@ -20,10 +20,12 @@ rust-overlay, ... }: let - inherit (flake-utils.lib) eachDefaultSystem eachSystem; - in - (eachDefaultSystem (system: let - overlays = [(import rust-overlay)]; + inherit (flake-utils.lib) eachDefaultSystem eachSystem; + in (eachDefaultSystem (system: let + overlays = [ + (import rust-overlay) + (import ./overlay.nix) + ]; pkgs = (import nixpkgs) { inherit system overlays; }; @@ -45,10 +47,8 @@ assetNameForTarget = target: "parser-${builtins.replaceStrings ["-unknown" "-gnu" "-musl" "eabihf" "-pc"] ["" "" "" "" ""] target}${cross-naersk'.execSufficForTarget target}"; cross-naersk' = pkgs.callPackage cross-naersk {inherit naersk;}; - src = lib.sources.sourceByRegex (lib.cleanSource ./.) ["Cargo.*" "(src|benches|tests|test_data)(/.*)?"]; nearskOpt = { - pname = "dispenser"; - root = src; + inherit (pkgs.demostf-parser) pname root; }; buildMatrix = targets: { @@ -90,7 +90,7 @@ }; })) // rec { - tf-demo-parser = packages.${hostTarget}; + inherit (pkgs) demostf-parser demostf-parser-codegen demostf-parser-codegen-events demostf-parser-codegen-props; check = hostNaersk.buildPackage (nearskOpt // { mode = "check"; @@ -104,7 +104,7 @@ release = false; mode = "test"; }); - default = tf-demo-parser; + default = demostf-parser; }; inherit targets; @@ -141,6 +141,7 @@ }; }) // { + overlays.default = import ./overlay.nix; hydraJobs = eachSystem ["x86_64-linux" "aarch64-linux"] (system: { parser = self.packages.${system}.tf-demo-parser; }); diff --git a/overlay.nix b/overlay.nix new file mode 100644 index 0000000..882603f --- /dev/null +++ b/overlay.nix @@ -0,0 +1,12 @@ +final: prev: { + demostf-parser = final.callPackage ./parser.nix {}; + demostf-parser-codegen = final.callPackage ./codegen.nix {}; + demostf-parser-codegen-events = final.runCommand "gameevent_gen.rs" {} '' + ${final.demostf-parser-codegen}/bin/generate ${./test_data/small.dem} events > $out + ${final.rustfmt}/bin/rustfmt $out + ''; + demostf-parser-codegen-props = final.runCommand "sendprop_gen.rs" {} '' + ${final.demostf-parser-codegen}/bin/generate ${./test_data/small.dem} props > $out + ${final.rustfmt}/bin/rustfmt $out + ''; +} diff --git a/parser.nix b/parser.nix new file mode 100644 index 0000000..60d4cbb --- /dev/null +++ b/parser.nix @@ -0,0 +1,18 @@ +{ + stdenv, + rustPlatform, + lib, +}: let + inherit (lib.sources) sourceByRegex; + src = sourceByRegex ./. ["Cargo.*" "(src|benches|tests|test_data)(/.*)?"]; +in + rustPlatform.buildRustPackage rec { + pname = "demostf-parser"; + version = "0.1.0"; + + inherit src; + + cargoLock = { + lockFile = ./Cargo.lock; + }; + } diff --git a/codegen/src/main.rs b/src/bin/codegen.rs similarity index 86% rename from codegen/src/main.rs rename to src/bin/codegen.rs index 1529e3a..1a89deb 100644 --- a/codegen/src/main.rs +++ b/src/bin/codegen.rs @@ -1,15 +1,12 @@ -use crate::gameevent::generate_game_events; -use crate::propnames::generate_prop_names; use main_error::MainError; use prettyplease::unparse; use std::env; use std::fs; use syn::{parse2, File}; +use tf_demo_parser::codegen::gameevent::generate_game_events; +use tf_demo_parser::codegen::propnames::generate_prop_names; use tf_demo_parser::Demo; -mod gameevent; -mod propnames; - fn main() -> std::result::Result<(), MainError> { better_panic::install(); diff --git a/codegen/src/gameevent.rs b/src/codegen/gameevent.rs similarity index 98% rename from codegen/src/gameevent.rs rename to src/codegen/gameevent.rs index f141b7e..af6bb89 100644 --- a/codegen/src/gameevent.rs +++ b/src/codegen/gameevent.rs @@ -1,15 +1,15 @@ extern crate proc_macro; +use crate::demo::gameevent_gen::get_sizes; +use crate::demo::gamevent::{GameEventDefinition, GameEventValueType}; +use crate::demo::parser::MessageHandler; +use crate::{Demo, ParserState}; +use crate::{DemoParser, MessageType}; use fnv::FnvHashMap; use inflector::Inflector; use lazy_static::lazy_static; use proc_macro2::{Ident, Span, TokenStream}; use quote::quote; -use tf_demo_parser::demo::gameevent_gen::get_sizes; -use tf_demo_parser::demo::gamevent::{GameEventDefinition, GameEventValueType}; -use tf_demo_parser::demo::parser::MessageHandler; -use tf_demo_parser::{Demo, ParserState}; -use tf_demo_parser::{DemoParser, MessageType}; struct GameEventAnalyser; diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs new file mode 100644 index 0000000..bbbbc2c --- /dev/null +++ b/src/codegen/mod.rs @@ -0,0 +1,2 @@ +pub mod gameevent; +pub mod propnames; diff --git a/codegen/src/propnames.rs b/src/codegen/propnames.rs similarity index 95% rename from codegen/src/propnames.rs rename to src/codegen/propnames.rs index e8bdefa..9184a3f 100644 --- a/codegen/src/propnames.rs +++ b/src/codegen/propnames.rs @@ -1,11 +1,11 @@ +use crate::demo::packet::datatable::{ParseSendTable, SendTableName, ServerClass}; +use crate::demo::parser::MessageHandler; +use crate::demo::sendprop::{SendPropIdentifier, SendPropName}; +use crate::{Demo, DemoParser, MessageType, ParserState}; use fnv::FnvHashMap; use proc_macro2::TokenStream; use quote::quote; use std::collections::HashMap; -use tf_demo_parser::demo::packet::datatable::{ParseSendTable, SendTableName, ServerClass}; -use tf_demo_parser::demo::parser::MessageHandler; -use tf_demo_parser::demo::sendprop::{SendPropIdentifier, SendPropName}; -use tf_demo_parser::{Demo, DemoParser, MessageType, ParserState}; struct PropInfo { identifier: SendPropIdentifier, diff --git a/src/lib.rs b/src/lib.rs index ce984a6..1d5f8d1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,6 +9,8 @@ pub use crate::demo::{ Demo, Stream, }; +#[cfg(feature = "codegen")] +pub mod codegen; pub(crate) mod consthash; pub mod demo; pub(crate) mod nullhasher; From cc83dced64a87f968bfed98fa9374c341bb07528 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 31 Jan 2024 20:23:03 +0100 Subject: [PATCH 15/45] newer demo for codegen --- .gitignore | 1 + codegen.nix | 2 +- overlay.nix | 4 ++-- test_data/short-2024.dem | Bin 0 -> 1003300 bytes 4 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 test_data/short-2024.dem diff --git a/.gitignore b/.gitignore index 3645a61..d30050a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /target **/*.rs.bk *.dem +!/test_data/*.dem *.svg *.data* *.iml diff --git a/codegen.nix b/codegen.nix index acb47e3..75dca41 100644 --- a/codegen.nix +++ b/codegen.nix @@ -4,7 +4,7 @@ lib, }: let inherit (lib.sources) sourceByRegex; - src = sourceByRegex ./. ["Cargo.*" "(src|benches|tests|test_data)(/.*)?"]; + src = sourceByRegex ./. ["Cargo.*" "(src|benches)(/.*)?"]; in rustPlatform.buildRustPackage { pname = "demostf-parser-codegen"; diff --git a/overlay.nix b/overlay.nix index 882603f..915c97a 100644 --- a/overlay.nix +++ b/overlay.nix @@ -2,11 +2,11 @@ final: prev: { demostf-parser = final.callPackage ./parser.nix {}; demostf-parser-codegen = final.callPackage ./codegen.nix {}; demostf-parser-codegen-events = final.runCommand "gameevent_gen.rs" {} '' - ${final.demostf-parser-codegen}/bin/generate ${./test_data/small.dem} events > $out + ${final.demostf-parser-codegen}/bin/codegen ${./test_data/short-2024.dem} events > $out ${final.rustfmt}/bin/rustfmt $out ''; demostf-parser-codegen-props = final.runCommand "sendprop_gen.rs" {} '' - ${final.demostf-parser-codegen}/bin/generate ${./test_data/small.dem} props > $out + ${final.demostf-parser-codegen}/bin/codegen ${./test_data/short-2024.dem} props > $out ${final.rustfmt}/bin/rustfmt $out ''; } diff --git a/test_data/short-2024.dem b/test_data/short-2024.dem new file mode 100644 index 0000000000000000000000000000000000000000..8035884791f792e7ad27feffe517c7f42a6a5e1b GIT binary patch literal 1003300 zcmd?Q`Ck*)_dh<90HUZ(P+43jpooGnL}Y8Q)Lm;_8nPzmg7 zNJvS`^w_=g{~izGrQ0%hCnO~Q-&^_rtoZ+;-2Z3w|G9F-YQW`XaC}Q!K=AjI|I_gQ z&-pPR!vROZFEDh7wSMD-f{&f(PbR)_A6xmz|mRU!=mP|PMq3uVs8GrEfpJ1fKG+EEGQQ?Q`Sv@-zMCO zIrj6l!*~BNtn_u?wx+`hYB?vJ_t~7&j=KN%ggLtIO+EG-U(P+<`C{G+`-rK~|DMfU zyx01_SB&$r8#3dwZJcdp#Jg1h!#NppWp9Xc=$_m0pSd3HoI4l#ak%Je;k3x=WcTE$ z*QP>HZYA_;_EgBf-3o&I*bw@9rp1cO^Prj)_|;`oQ%4e}jwBtazFPP&BzgLDdR+l* z`f3OCkK>N`+B_?I-6e3F3~uM(Yb__y>+XTu?ILhr?trgd6bd>NoG@2O%vG~NRg1Yw z!xaT)nrr6bYeTF+jm%MMDF#$$IT9h*K|2(#G(Tl73KMfgEXW>(o51}}4sFkbY&R1< zVJ2$Fgvd?+nhD^703@5GfTSa1iQ6%jmF8(WFqWLz|L@*B&;NaIo+xM|z#%vHHxvAy z`w;nm=z%&NXjho&%?0%4{P#WSSj_#OJB69rd_WDf(&pY~YX5T|LjH#uXotWWn$6Ut z=Jf)S=8C3E=8Cx}p!s*ZnO=sOji4Q|2aj}Yo+NcJH-ozn-G9iI-Kea6&+9N09G51alZVAH2^*z{2jo5nA~ zrr$}}^r0R$8FjGfy#s2!HerVd`s>T>(05<%fd2Z&PUyRTNT9#|YZvt0e+=k={2U$diK7nqub(;Mw~jjEXFr>b?>{;l-}c!Y{L77K1`p`OOqexPt~I=Y#>2Sm=-6Ou>b+6MuJhHFsWW?q?=I zf;vnjmET(eIuDtNxdeDa#2bHaNC>Vl;=~fr3;*%WOiXy=|xLW0_ zhlukvz!nGfFwpNK2QG3td3$H+KP5HAQE&#ZM;ks3{ne;w-2 zFL#K=f|&Rdpw}x1k6g4rUn4(PKsX)6>>t5f00F^BQllBB5gr6kUdTW&E4W(!O7aBF_ z^Vmorxr%ox(yNX?n_$aJ{TCWVjgH?JinE?}`X0Nx)!E8`vdpb)V?+g=ovocj%r?~!wLhYmQEaipB{g>{5 z2_}%Asv=eV0B?;tPQDUZUTP#bfz1A;Phku&!&~JWpsHK`#A&S}vA)hm@Y#<0a zDC#}G!Ph5_3_&!-BtgLG!&+~jXk36OHi0P%lxa$`hOe&mR!8duh+napD0*|wYpddh z8bw_#s^QPJ!btKt>z-|*R_*Jf@Vx^dteF~Z6-r~F~|75Z9`21s`aX? z@vlEcHVKDOzYW4LxrPJema}^l_488!j(FCo)z<;%muo1l3}a;&fMopZlxPgimdEM| zTEI*=9WyVfR_U+xZt%X@js<#2R7$1Sv3?fvj3j6_*ASrKpQxKEH%|lf=k&isc@~zK ztpWW)3m&1ZJ7HlZr;Ng9<-%ZUkK@8k9PU5?szNuyG7gJ8eOJd*kct(G0DpV0aO&T) ze|!=ODLvJwmehFF5mGkkejBDAPlsd~zRHHLTn@`MXe>#H4v@pXbBnDim#cgmqFXJ= z4p@ffat-Fa#<$P1x7+sj?DsD|1|v@2 z0_<{BX>T1OC++kEnZLY4p$^cNY0Rak+IMDLIOqLF-8(*vG3~Y;) zz&gOM;N8Ot-vDi$f1RgB3G9XzRdYGO5ApuiW@h4iJxdgf=tNpnGXu9oX5)nX4%grX zIHB@&l)`d7Nyr6WDH>G0+-}cj>ykCTzS=sz|8=du_A6=?vU~~HEJC)e+*flQ?C<)Y zf-|uye-&R@%daC9x#e!31 zy#&T07huhmUUh1PuL|8HoM-MuEPz-}0ovLc6?&s)U8>&PO}apkE7y?E1no4q6E47P zOC3JzKImv9L@acHC=gN5@*KiD+B}})X~jaG%z>EsWOF4@Sbw#WAHDlHum!>7$ikRI zNWTTdaka=tyjc+CTAPpj2IFK(-C%S9V!^^VqkVk^pbDbCUjBE5&?wgzaH6M^y_G*8 zyIBxAy#6q9o&|A+Wj`S2VMuy$UjZ_c4GCRce?Yw15IOW5)C2I7a_}&62M}c56#q?7 znil*663l{xBOeYR3&FGJ9aQ%T zoB>mnwhogOsH)DlEP3`{ktF)o36|ew5#3ilun1wV6Ikc~U4lei<|ssiFjB{XI9uDT z6<_ex%DL`rva0ej0<0~X#|Zp(_7~^~FO9k~=OEn-5eS=_r?ZrE5huY9V0L;vfw1)d z3b?KA%JW+U+x5igp1MH1fc%~1irO<+zE6S}Ted+_W=w*eB(h*Sf zPIpTd;_V=`n^xte(SjYz*Ej|?lNx`;ptN4}6--d;52ieUg|-8k7RYZ_!kD9S1sbJ{ z!U^Gemq$F6+RNKlrRD^00m>J>cZ)zkmdTnBZ!6*6`-nn`zCn+2q#J=0k3qT0faSHQ zN?qfxRSJ)duwW`DS6+)Qm9>lX-&4JG7)x}0GE}KReU)=X!r+a1ihCDPsQqV$+K_VD zBZLjp0P-t=WNS2D8uT)6Tr>j~U1rITPr>;r(wkqWBvrn3F*|kwxfv5mV9t4@mM!|- z5<{-jl%)W1gJ&7gSJr$VldelDv7}vqzIvu}GT^pbVeh8?gWB%7b z=2R#%@l(}O8MjLIGnl7Y-f4?~x~!`|%?(0pDa4Abv0y`$*8|k#v5}eRCWfFbiTC|1 zNPz;AMH!!a)!{0vDwe_#`Mj4NKLQPiotwH$9d1wlvk&+y_B9mMvT4jgR| zPl4Vf(M#!Q)W3RQJ$KO|z)wruS*Zjp*97F;DVIEkD7_W0p0Cl&B$jahq@m|PlL5CyvM%`)HZDi~mlRuZog^ib zkn`3!S%W?sh~UVbe%mPE0o0~d*KkoT`HBS-*eYhC=64u5KNF)S7HoPvP$Hknm65^Z zL|Rp3l)ltUCJdA%)p`5X+g}b-C^eo6?Hkep^j{7W@@V=fPvs4)n083Hrgu3^^#<~Q zRp|Wc>$wV(O)o7^ktp@$##@sP8 zD2syb@U&`GoxciogTrMc*tDWO);OZkZnXFT(bU;H^#hAx?9YH{=}vuA{2oiFlHXA0 z^;Se;i25hvv`RpdS|l#P%?ebfAZI;t1cKnnigi5TW@{AchMoEuT-8z_ak&$>m_xwG z8$6*&p;T-A6?Gc>C-GoQA@R3;a|qPO&LdB$(b$85z+EdJqhXxiPs|QhmZ?zSHk7FH zL?uCdwJ8^9W*>P4lY1?JDXN#iqHSM@x%^|i_(d~yl^S0q=~?e9=~Ys_l-E-+cVRIv zeuX6_Z|FxK$(5ONpRMW!ty2DAnyI=X2PR6 zaus>rxKA&qnwl#8)d31mwb~Il7McZiUW2#R%iBwZMkB?&lz_$auO&VEoA@$dx}why zFrhGMi<}||dDQv4m9@S;wO*=#UOXH4QyP{IwdCQ5f`3{3NUkgs10Kj11|7r^CEtDf zQSQQDjRft)KFDFjP2yhtk7g!g&Orx-2n$`5;hx(}04NAVcrk2!z0OP_Qm>_O{*bl(^@;bG@wubbtS9&dd3=wGb4)(bK zHL3wV8_3H?!O2ZDODp=$ZJrrasnwpYO)m&N#bZ_aYfg9?q)P5VTi_pTvvQGob?K@S zO76@ORW>yNYZI{X-fKQAf5pOh0d?N~{65-&yTcKA#;d%|f}H%kRcf=HS;(rvP|dk@ zu-ut#c0g(szqH$tiiTx)pm28|@&m@LS1wm6A4>^>m;NhFNSgp`^xfXn&kYoiiVm(! z9vz)8C%u+>kUyT6IFzoB~my#xQg0`ynK1@czRE3hx}nm5 zU~IYea}8&8-zX%HXW?>%uN@UmsxLR`xTI4MOxv)L-D~7KfXps)8+UoVXd*ptsHlGt z@KE|sT=WD*=&Y%C`=Vs}U^3}k-xD$KIIFY?ldG%&yEdnM@#k-z%1InM8h~jK`veq*tISw1M>0 zs5Q#hxB|EiF<4vG`nUI;lvjmA!Wf zIV_DeyhJu!IIV+)v4tmel{+Q}N;N;3t+8i?E{OA~7kVVqm6ROU379_?D}JMBu`!%` z_B7ZCLjyP__pgFs+a0r-2;BMhejV_{zMF=Q69nSK-j7%MgV0!|6zRFedSHCwzXP}w z#1~2s+t$r^0)V8hnQKsJYSlI592N98&duQrp^Le{_Y#+J(pT}*j4@dFKGy=~X&Y*k zqMYYk1%U-KfA*7CsOGQSqj%&gJe2_C`gTNwGJn#yo#bp5#B?KHd7lFeW#W717o(-e z&N;InY2OFuzZ>nI66?=9vqZl;Awg3iYS~H_=lWgdPjx^SdGbO+i3P@dJD{7b7jB>7 zA}V1)vSde%l3V%!1t(cwOshqu=6Zn7&ZgqO;S~V?m!jhOerF@iQQsu~3dU*G7K!pLS2Dalr_<=c;i2(Jgq zm7bX)ls8LW?A=a0xem+Q>-2K&3Ru3~IfQc^lDA){kjJCbE_oZ7V8Fyg%cR4)Hj zc)WJHysCCS!Ewqt$*Wx2WR^m#!{0!inK!*%%;RY>Qq_St-;p536FG>M?~*hHM1akvEVpN4zesT)PN}c`-C!~o=RtPBw4@9oTD5tq>dK#fKtxu!K5OC zlTKi(B?El58hbCzQur*3TpA_jy@H60FlM5kUR`Bk0kypf=VMX|8MTLJ)O`-XT|M8& zN1;}~mfq2!eky*KMUIyQm?BT*;@z>)!LQ#aWW2RRhQrh;gg*7TOh9Iz<0gZ^lNWV^ zhEs}}X`IV5|Iw}wl73pcJT_38F@*EP={n9={Ypu@*qL{g=DpJLIhZ zRrOU(!HK>Gr@Bqt-7H{->-aOI!KAuEN09f0i2=2}x$8MUrT|vrEOc(EMdjypO1_J- z2LuG>JV=V!)2e(IN2v+kh>$Oi2T70UnJrHBs0Ib82Y`S)FY2d*Ob~j)OGX7!6VLDj zuVc34P_88*l9AE)Q;$59ubDlw8#u*gIT$lAx{b$%=>mXC)SX8v znS%7Mt7)K$gP8XN(rdWF^9v1m!*e#L7*I~@70rafcCA6xbt-gc?=cn!AT)w*Cf_#% z7$}-msnXV#0nOG4h&0<|jHlLKS9!_!crd>y`Mm?KmbDt3j%pu-ix{BDD6RpNC}{b8tr9j zoq&>n#NN0t(TdF^v<>t6-DGVPr6D^v*rAbSWIKT0a+YZ3uNS;l z=wl;L$)%?WiM1F zj;e20SO`6xwiL%j4_H=S2kDpr-K?r689=!_ZWBTIRcE5$!>ngH4oZWM4Ob77}C3!PC8q9ARZs<8YUg)dG(3Ewm(8 zp+GhE^{C^&mqod-$X>77KvKA{cL?Il6oEZ4`;Mi;bGgdfK%3->c8r<$H67+%R|lxt z^#bxcSuv7h;6%$fQ;CsG82R1?V}|Xm26RQ7^G@OhTZ&-VUJS@+^@{+;Q4s_og^dOP zYk0f?SiTOV4&n3^707Z0zXQm8>SySHE%5lw%!IePWOX4~*6@BN3!gD`gRccCF)e@v zN@ZEMp5j-Ji-11l7cXvB)^FmVE>MB5blI4Lk#9_w2V;SQ`LnRcH|iyjdKn@Fo*)AGA=uTe;vc7+WgGegf} zlZ4j~vD_;i08rrpO%^U} zdKE2>?+xs=WfO=@$D-at=Y&lxgcp_AYu;2&Jd3DwSbnAVDjjIa5dZ^DEfV~riK`%& z*L&A1H_8YK7S5j$$i1mntGw->2}rfeV~7s)fY53Ki^`kEsW!3bW_O55v1SvNQ>m0r z78PPcrkES25a2}Ioh${FLd(g*lvb7~$Q2_^U+be~8$!;j$l6+9x@#1^02r$HYK2oN zOpHzw4mpLILo{z+b+U0DFUnH}us4gU(a#i++5z2J3`AhHs4qytDhB~9rU3$nw+je= zgKqaL;YR_<2azF=COMb8_LxQqi1W=R0|crX1z&R&$fDT=BCcLxQ+bo5R~y)LpexAR z+y}Ftj3!sGsk@Uo$>zq(SJ*_zl?t}d^6Fu>=(am1{pTQA@pz$)v(j5x3zC(5Ao1G4 zV3@E7=KN`=@0CA=6&e7Y-_Rux`3fB<4&{9h3=o_1)zP!kT%H2p#p~XK@-__hoh3+E z2UA3RPMJ(}8w5xVbs#2uL%eMw!K!`)f|CbP6Y)8_Wh9$-9b{w|=Gd|no*e_5KM5`UdiI4N~J7 zutcn;M9yGxLN;+m&<3`q+%o@`EQAb=RkmiSqOXB5oleXkk^d*Dgs=LM@yQ5T#Z3^KhgvYnqn!|$m{SqGdL?)!oXD3b;;f1V;YkX9hq_JyAoxLc=m zzjf#?pvibp`=2+;fDr^6)_{Il3|tf}-5g>C(h33U^-j~tOF42q{@)5H+^h%!+yWMK z^Nz{n0R6cPy7aenrJHB5(KiZtAQ>RLP-WH;ws4;O7bSR2qv0z(K|H1E=d5?;BEh8n zt~~HiwsiBWdpwPr^w-|-+$5!#C4Z|A+H)va0epwX-?ix+3$^`AM}kfMm~;l-0kPop zvww%=vrbL((s*81&zjT0<0>u5XTjFO%?X=}hvZ>Fq-V6nODJw(D5>O#WzZyYu2N77 zfTX8Z%dZ7_TTiX1FAo8af}9mp4p#%-LwRawB#%&l3^sb|xg*q}Ypc}MEeCH$0vx@D z>Ojw9zuy59MKv|*297Zf))U3XNJKFR4F;0@KI$u&Y#+F6Uh%mgqfYKsr?ee>NpW^f zA-h^Gonw&KEIGdpVnzg)AkHS%qTgA>7bhrdD%F}TQYs-bwUZ?uRX{|l0rXQqQg9Y! zkVxNq`OfKduj|6*_o5b-=tDImJ@u5$s|B8X!St8ZI#|}u=D4$`E{xs-VvaY=Qi1$Z zRFHdbh(Nw%P*ex>f_l${g385SeFOrN3lP~kD`EkI%YWoMDd%vZCgi*leIcJDTmT7> zi|!eATn3Xb>7-!J0veM$ecgl|V?vmJEW@HP#7XLJu{CKlGhG!zD-FWX@%tro`QntpQAF{Kp=Zg6?6?~lf{IkE|m za?#f5dk;w`ycgT@WE9(02i_7X!3(ILdY5wLy8vp$0gh3Smr7tANDH9PX#s(}A&)GK zzL%>g1J=7%Jp>iWjTei-8@9du)Hl7-`_beAT`3_@jQMLxAA^($M76dV0?wSpiqiA? zM3`{SNp+URK7oQ5-*vPoV}k|y%GsMO1KJ(%mh%X_M3(L!Ky!c+#X@IL80~o_0KUN6 zOVPp4;r^vk1*pAeH-1LGnK2V@e|kerdip8JG6hI;=`5HY<}T{!aH2DPjo3Y+@Y>LN z5#D^ax@bB*@$T@lqOBy>J3eWd`@=0H)cZbkWZD@{;9$jplJIkG71`YQD{i01XEz*9 zS0tTdo4(AwQgR^vofC{H;%zG2N-CHflbPvO0>K|v zCb>Dsg`fL$GRY>sMAZ5l9O7nEdq107a^;*&{HK5`;pc2hsKDRh3pQ6W&sAje!XH1r z|H(G{+_`wS!%JR46boj4r3FaIn?4vrN}{l^-~RN-{QQ2!rwq4-PqTw;!b`Ff*}xZB zefXpbpK~s|5!S3X~d2YvYX$n9MCr-1Mop90-%N=9#wH)*m<;wpl&4`k=W+uV06 z$zFBNEvX{=M0UJ$IJk@AgnuZ`o)hPG?o+h+bpJ{)4C&TER^zw!g&zPNPFzVkeD9;J zO^F+L_#C&2ituycZdU+`(ETt9=iM*K&h~1E`(#UC#*;ST@!2ILJZckgC9@(aJFeo% z_oI*f!)H`v3qA)W6lh#|dB%+R3M%Kf6-#XnWM@`nYd-DDc6N&g7Zs$9d>z!rJnYrR zaRP}~UFKrf43=*6r%zMDODfKlgvYtfX)5uOIR$-a@QDW#`us}fr;|Z$j{}byH7+He zf3lsk0ynCsmy~2TtP>qF{_b%AFlx^EGLFFb=R|XoO$8m!EINf05ZR7%yzbBZG`r+V zg^e?iBe=@0sF;!6;In;P>`uMjXvNVqO zh7VFdvDj=xPq3Jc#1x{Ul5J{x@Sv^5FtD|`zrSb1(BItN+1TIKx_PL}0KS8{+xd30 z9LhLKwKaFPcR#u~1H22I#SP3n(%(imxA!-;bT*GPUW{kyD z^XqZ&A<3`ca}TEHH2BivAFrFcTYI`1d-@+WpJIZUmnEb?`mzi(cY}{jq}}P8$zbM1 z2^e!ZR@g!|_ji@*R;K^a-A=bX(LvZeoe;4Won%1dZl?R*Ja7aMmyUoT%fbUvf>E6% zk5yV3>DIQcGwqlWz1P;&Gr!nEbV?M&{9>NiFXrKoK!52YFbC$Ld2LmWM2R5J*w@w8 z+TOC+DOifm(LuWTqFGHZ0w+m-ZI1cyJi~^0*=#L+IcmdnH-|~9;^fED52p74Neqpi zl3Jl$9q^19Rur>vHz)=(tpL?1unJ3KA3fTCrV36+dq?}XR>2}7_p5VyCoqT8Rl;+y zt^$IkFROx>2WKGxQ^_Tc2@W#70~~GyIw<;J1Cb?2ko1;$&W+|JH=5^s)4b%H6}V1X zHAuJX@2B^*bw6tFZtL;}Gk?Jdznb}B4I?hr9gt3lO9{X%{meq?U*cm(4)dqDoB-_7 zkA_RD<|vM(7pC`_rM`8(5Leu3?(FR8IhA{xIs2}EzE`XC?5{oLRzXb7b1>wH{UK}P z+2=hir5HQC=wbT+L1M>~*WlQ@omG>hJyi$Of6%|Z)6z^JRv!wUx3{!) z546#p&4!cTx26{i()~bf+vz8EQ_}O_w6%582br^vpXhSG!TWpYfyPJ8UFOcCTMa#3 zcLoeS-EEBnbX!Y%b0^T@_Mx^XRrg0HZngCHwDb%ZMmtaH4rWZ;GBkHTyYqIy(8bCh z{p;4F=7A?YEzjDDEo{{M<+VyLka<%mNgs#ua!(DPZ{Oe(fKLQ@sZPo<{q4`|ytTzT zjEQ)I#IO~r8eh$;bPy|@YDXcp83#cS9e2 zhmH0k==t7@5aq(VZ9xtRBUzkY4)1QI5`56(>80voa+v+91=JF;0%Cb2rylXRc5P^u z40{#sURYEV>ET{999~_REV!U!HWyyoD#!Z9Z#-I-oa!R2>L(_h_P*gaLp0x6+M^Vv`?uu^bNM3c}wW%X(j#NjCgcn|`o*L=# zuxRAUgQDt)t-4%#;?{gY4&+(170sc?yJv|kdf$(_uW@Hv=xA_?L7G92i1{>x#n2Gl zK|`V#8l&Hz)xmfv4Kr>2jbXeILvI!2%!(z8}%Q88TT!>%|!_)UT*)sw`2A-_Xi$lrNO!lF*r_l zZ2561So5zRZBBay6IrEbu>9LnuV8xojT1{}+%%Gse629`3?9h(>A{1m$%Wu^(;oSn z%4?Bpk6tq;Wpugerljf1t`(k+&hJfIK6QF^#C&C_=xR5b!!%y&4qVf_tz;<4!+j=8 z$Lzm)b&FS^z&0`zeA+t00%EpsgL^w1YnCN@Jcf15*=5Py#vmkm?)NS7;fE>n?dT^~ zkhF(ep8hkp*ga)>^@Eg=?aPHwBs~$gJ%V0P#%(_^RXCsGd>ut`VxuS`6sF54NL~tA z>bmW7nU_ZZ<9jEz4IJK57DSJqWgVv9?;qF>W0s4Hs;{PuEV_Dac$!CY^6-^wh3?m? zw}?VsO)?avj)V-Qq>h9S6`cWJ6?!~)IkSx^9EmK|(TZ~U*r?pK!$T|M<6cr>A|xw0H5G;E!}YzZbzD$)oX^XTuYw1?7^~>GxU_cTgN@Xh{KWd zMN{#OoCoy8MEE8Gqt%!003;$ z@2)-qogWT&pIn%*5!-&mBPDs++M#P}P9c_1EN@mrIR36D%C^5G_Ygg?e~WYmqR)NG z(^m!4UoMazX9PeQDTuC!IoQ|nM@035WrbIV-krj+oMnLQ)Om_2l-nSTH~rK7!NcK) z^CC8i!uxI+)}*FPAD%YybQGdzebDtK3?+f*UtN}bEuu#nLBIC!hB?BMgvIFok%S?) zYLCLXx)A#HRs~1AN#w+z*%TlCdC<8}0RX@rkbTU^e(cQU3Ya(Vr2V+4B7370V@|%p zeuHEs;mhNbi~|sJS!M^mM1*X30TJFS`A~)JQk?8_fMi+M4N}A$cD~Sg&ho9H4q0z3pxs zY3`pX9$XH(T1Xvqlj=a{WmxJ#oLYGb2e(>b9Xxh zlV4HbwI#!)Zz~?O4^S=5&$=L6^T)4@Y1^~-`+cndxB(micr9 z&uf0$-9iCgxCXw(7~}jE`NEOL)OZ%53u1zLk!RStE(6_o=k1+40N0H)ck@>opEq}P z^>A$OlLKANoiP^7Ec`y%(tKz3Zzpjb*~ZWY&SaVN{%_}vT?35|+6D~3s{%CF4IJ-P z_yLxI-)SCbGXsH(kEg++*Ipa}bM+}woH0qd9YDs>D}$qE58gJyOqU_7bZJ``eNlE- zw>$g=U_1a1hOJpAv8QeHB=$4&-Tl$o#Z##HRaSa{ z%G*1UN14()Jpi5$JZtN00|2El=ItN|qJ#y^t@@prEQr3yhB=olni>r~{XdG?;1kz3 zftHXGV64W@wnvS}XbY+5Qy3!4m6nW$dEHc7yTxRw#~t&!`@4EXmdvuJFeS1y-nezA zXXlgY9H9(bB^A8E=Qare@afrX`CIMlw&vEZo^GI`U{^KXIR;eeKxXHT2R;3Utu0i0 zS9jYe?KQuN`S`MNSAT@)KqRK*5c4qQ)W`kgzT$XF2@(1Z_El3+ISE)aDm{aEO z=a1h~lPc99$JUwKDNtwuf>Fx3jRGcafYLk#rYUW4&O1!;0wj=qp5?%387>ey51{A! zDb8*3^K!?#0@x2RNLdvGdCct0O#?6{d_NOo{X;s!kqRq`!vuzAGFap1#vX zJffq|mMj|*zQJ|VtakDUY`}il{pz);01mv*8ya2%{^qf)=<3knWf3FE>AAYTiJ0o- z>gm&uEPH==Sl1>p4(WQw_X2oiGcqh3!7=ybGvs#G16<@j^^7hD9xfUlj_^o^FXDZN zc2_Se1VF3M{i@&@2K_or*FoZCMI%Y`<-D8%fC+A$Vt(#D?EcHLtIJYOiC~L|?h)0) zuL01y`d~QRJtA^M_6lO0j2}R@2NA!=MALrcRbb4Qb17DD($s5@<_TbWaS$vrHUr4? zK9@x+&eDM}VS9k~Oc^16#Nqb|)sG$y56j+SC7&WZ3ah7Dg$~@0@VI)Kl>=bcW=>Ad z@bDV2u%YyEtbe-4(dy)>!yz7p?hzx0N2X1Wshq+oMO%9J?X4aH;BJnsqj-}3)>NyV zc69M5!9aqcq9Y@x+d}|gqC)YJmz-jTwq-$qV*mgS4ObU##*a&bn|?0@uyQLWr_Tns zQ-Bn$TwG4+V02h+D`;Bg8F6H27MUXecyx_RON=h3Z{o{PtDpbIn7UKPHOKE=C~CTQ zyeO}z@;D4xThJ(U2WozB^QlJmKh@BM9l||}tnluZDUjim1yr6fCAaIyGJGy(^|M`R ztjqZJv9VC!m9bX72P*jA`|17xK`|XA6O?gH7Zy(+~p}$w(o%bC6_v^_w^KmES6E-fUV$A*Od~4Fu^@@}1zKo0_6~$Mwf= z7KTaCyIBQK6^i5f6hGLIgy-vu{yrqSyC$CMxIRy@#=tY_BOMl+^gmz{gB7&Q6|Q$j z@vMh86&DI<8*Tx`X56Itx^QVe$!5aowSGxbh)6W-q9x!w<>QP#YsnJ1>C^q2PfssN zPb91v8Eg$Pk74V4+#qzv6JhA%>93@mVAG$sS9LBl+5MuF z$XA*sez|4~o2HBMQMT!RG-R48lJFsujYwjPnEr6Xl7%eODyhT>o5G~|(kko2_m1aX zTl0ozx)lyxFg2aIm#0sWIhppay@;5;3&#-Cx8dcBOgSE|iL2ivE;3EHNhMiqQ=~K> zl$nXsAX9|&qID!4=6B8{uR0Fc!>rcq%5pJHB;gXy0h4#})1pKXV!E~3u+Y>PNw}D9 zMoL+x)wC1w+||ZB6^K|Pg}`JGqBo4jHvD+6AS?;6vT?O5%amfM`UpLIdhbMD(eZ~j zALMBYxM4^Nw&NpI1cX^|6BIYE3SB>}{ezul6wg3Rf4vKG6NSmy=2hngnu4DdR9cir zGKlHSYOs{ktLuL@Az+CQADVghYoq}&^_Ux8?s65owqH;bg|*L~1erV$#i$KJDvHpx z7gLy}IteEp=>eRd!A4BbGz6}n>MGA_Qsil_rARVY*+Ltp9GKPSfS9(9dGREdoK21Q zA0wuT!&)cPUsq}&hqZ6s-IYAHFeOnO?NoHlY{WF~R*}So02d)@O%7t3VdKWWxM~%U z!CEkx#&9q#eY+PA>P&**PIJ}EaExafK8!6k4IR#QGTk35wgN2uzy&M5`l5cxr-T9`bpg|#kyn7AWzl?7sg*DkUB0W4X*wv}hX#tLTSFL`^j zZXG*pmGejJROWPq8rzRwOdF&JKg(fwFt_x7D1wL5#aFl zj0AC#p(*P~W^!7lWHs2E>Ig7I9SMf0S7C^s+N_|eH5hI>Cf<>-Y6D`bG1IIu)2xZW zXw%_j@s1q{8LOm#UFMcs=9XKa#Si;BS)7^a>4_p6GbITLyUqX8%_m`IHOi|W2VJwq zBQTMFM`DUp91j}Pb{1}cP3}@iy4o79UklFRQeD=>?rmVw$@!LkYo(GVvp^+!r2fLH z*4z!-_arA@>tva()q|rv(3G${!r)Z@?b zI&*hoyr%>cZP=ccm3Hy?H!P89LL8q=NTjU#UkHgL@FNzVmKvXtusgx?aF}F625cRc zQ{=i@DzWDOJ`K}8%Z$$uOB1$brT}S4wk4;fNk(;9M>5jlleUGM@C_Mhd%l($As_&+ zAErX4YKeuZI_!IcSz;0QcA6$KcB~PK>cJ^eh-6J%p3OF0zGPwgA^nc&@bH%id*70tGxzWRqaJ?#V$RFCTO7N)@1NLQzQr-F@cx$a zdAf=BK;Q--N~F^hh*>icyJ^nmPKTHFo66@Vir|a;Dj}#m0)xxV7o8Du`s=X1LbPe${J zA(}OX=$x~$=dihmjdR?%Y0F_`GLk|&8E!@REjCPib`f$|BY`@>@?F`jo|1fny9C;> z#t**e32N6!kn)N56gwX@%i%0gcCsX(w07F?A)@slwHZ9}xE^f#3Hx1>qFL@uPMwY1WqJJA}u)|4bK#z@u?~F{Le~ z1AE6p%35N^R`_~k<)Iw_7_7zDIK&&--gYi4UB*B$c3FrR7mXbpU*r;Nr;2n1FnVH{ zGz?`kNzyPZo*ADwKGtLjF(s8y7zwEF6To3K{P(Rt!VDh8VEhqMRtZUPRwrna;7*+r zzXwi2n2w`aIY`XUEitK++00`F1jNv)7Q+%lJGjoW)PZYA=q5hMl$H97EsaKGK4XjQ zTo%W+jLqUtMwp5B1#2lblX(IPt9NF`-=nMKZ02yeHFs4jm_-^oxjd{D{=2zVzzlvl z9>B?`T60sMPwGr-E!IpXFF_Iq3#u#%mbfmYJVydpKvBZ7#LWGFAKX`EjXC&)db&mu ziSFSSH-yB?LgIlZg}Im(9HCx83u70%#JG&F_QRQwGMCuB(H4+j zWLR?8^sKO~B;1MlGBPeD>j=0pPl{P3ftkZuVG=QzQD~ZEbw0%0&kuw8820WKJ0IWi zrKt3+g{02Hlva0Mx^ygb<+)PxiDm9-?HTLy)P1!XeW$VGd*> z#HaG}6^sPE{0*>ThniMgPDDPQIg+Qj0FckUr=6+Ng6|;HWBpIS4&^hhU%TcD(*c6G znom(Fkm*W3b8#2cc`bj&I!mbYLt>WPRQf~Sy?e7hW=eU$u9o#)g-oeg`OqTM(N&B^ zr|V>vsW6KSONUHJS&|Kwrd?n`i$4DH@TM&9+oC+p`gUu`6e~Up)nAgbJJ%H)L`;VY zbb+S74i(6qOn*emef##vTbuGOX!O6QvB^ZX^m3^vtLSM{3O=F%c`}ufJ|@9Zop(Py8+XODY#2kK@{%_NB=Ei(ye)6 zkp;dib)BxCM3dlMvy@yQ99o_qZ~BSnm9mwZD? z!j8l}PtpB=^?Ook(F9%nuaX4u-fvb*Fw?|0;bB<)#5WOPwCTr;wB+Qpy|eCp3(>1} zy60OqI&@dO=)Pax{o?e7@ zb%>IjW^G?+=M(E<2W(GXY3ROjm!FR$uuaL}h`8>;T!>ip8oWu!Qz*VI*i+t!-21iw zL?T7Uzioe?C?N% z8{@jVI}gXrn^RGOrs4dtXV1n4#xf=ij)lYwl={Yk6^E)j!ywbJM9zGA1x!t(4riW@ z?Tj6v5hiw7;<46sVVqvmtdF76WmV_Adt`}T5uF>D@&YS!NPHAMv?@il)v}$&Dc0&J5+?|k;=_yW0N!un( zj8EDVR)A$iCi=dSQOq%&-^!g}=AP4C@eP?N;^bqz?<9d2`~xz9-_G2Ykr1Ddxc6!K zQN;Aq>ZLCAKLKd8VM<-=H@bq&&o_6?-BSKy!*lz%F2^4NtW0{*Uc_Lm!@q_)_42() z>(?b&Qpv7KrX&=EOeox$gjVJ+-n6lNORB4J6AKTMIlg$YX0nyvZ}Ke6Vaw@oLT7qc zwz>Sp##Iv95WnH%DTlbuLc?!bw*2Bb$GGy%iS=yL)AIe0;i&^Ix1N3is9KT%0*_6B z40_;c{nl@Yd)^T@Zw-E+HEN^7yww{-u17YWOh(T;J}Tcl`(@eY=NmSj+~QaewhLt& z3eW>#z)g2arTcZ|-5VXB+i$!i%uSEAvl<`p84oOb7USZ1xyo3(d{WtXNU6`hm@=PO zk8;R3vEoo^OiSq4!`0`RPb*r+>{2fWGwTOOq@r&=Cd8EP9SDuF3q2HR5=*`x+c{1S zLs_Y_EwUnKFJ$&Tqt-*xF?>BFa+3>~q`ht!#(aIyT*jB0%U`YBFl6-k&6{<{WfzL> z*4H&Xg#NwYo+}3ZL7&$=f2shXc3y$v__sGTOQJ(R(s!O-D7tpyLhrYG{(wZL#*-(O zVDL9f_9cj=X{niOF*B9eYY(oF*VVom)Rp(KSdxszn|7%k{Otz{qwlf4snjpD_*QV@w2|v z$9HVIOKi-Kv12Rjo_Q?6j0c=!eGb~W?28Fa#dR2HA8*;YR%1E(;X|N(%wXvFdf?Lc z#0>iE+mI#k`kC49zi)iZCv9?`>A9WHq11)2DQTL8DSX=Z%!gHrV~=KqXZ7KB1EFIp zTI^I=`w?b;Qa)_j>$l(fAd5GPaQITuqyLeIo>iBvaie~ZTCvyzSzBf zIdXbz#i6mWvGVPZX^pgx83Z;abYG080Tcclnp$tk*sOLI9E$N7Uli-R^5;lwB{MiV zt%x?hh_Q<;v+9T$2pzuwFvt;W*c5ruiTM;McVWg=)(0`>zKg0{jG#YPZ$z?YM^@s@ zyX=_3$n7D_{(0dat2)c9##c;A6WwO^f4Vz1u-AjqF~8WWV#ba~ZaBo)F9w^}5n-;V zpd?({0yg~gvw^};-$;`a^Vz=q9j;#O%{GX1_{iiSV&|kJL=Sr)%y`;6m;r~ue5`%f z#2i?+IL2k=GN+3O%akaF%mob;N`MfRYD5K&g*MxtyuF z4Up14gFvT?*$WmpwoL2Vi5L&;9e3&QIrRPRa#jk3ZCZtFL@|y=lo;xuymCfrSrC zgR;`jZ(ourN!$JPp44sNeDn^S6K{@Nwu|GF`gIp~re*9CXGB;yZ&;m)2kNZ1ICOX0 z7e*W$Y@Ht$=LjN+U8T_E+5aD7Umn-Qx&AvzSlt?ML#^#3>~(4I6pNnrG`MDw)h%eP z!F9r#plE1I8?@*IMH6f!XtBYTHfX7diUuvGL608L(oRqyxU^`sMQx805O}cd>3zoD z-@TvD{p)@{%scOdnaRw%Jj?g_K5tg5s&9s^s`|#Nu6xV6=KGaXpMSIJRu}zkB7I2Z zvn^0tA3pzP)~3(0R%N`oX7Zb>tESwpTy^Lsn*ZNCf8%ftBUT-%8zYb(x^>gb$;2fK zK7dCntER|RJ>72}xplKr6*lGO&BLp2cn{~a?10Eslcqc}kS6|F*$X`B%kw^!1V&f> zwCzk!Iw9GAAQ7gnTq!@yhP{hUYhILy{d(WLKv%Njb2hse`ywTLJzIOdHt8*czSL=H zmDio>SxCfaRSVRb?Hf1dy^N0B+eH%j)NnY9sF|y)r(3PxpShLxGQR0V zuS;&>Jsr1t^!vAFu3J|$bGvt$!Bvhr&@Q_!3Q()o+!#3`E#k(SjH;WJ-kY~>b%ouy z`DWG4m09LZ5V^)1{BtxjW%LfCgY1p`(4g$`R;s$at5)1!nMQ_)>lF3F6Zu^eq_f(>Z9&@UWkf{Z}`Tet2 zcA=igPau6852Bqt6m@oXep`S(|3g20e!ZVIrT(6;_H=Dqxvr+Rx~90Qw%ZbW?2!-J6y zN05eq5zh{S9S+CyJP5)A0}SmhzT~iHt6^|=aR-sZT_+1eDC~b<#?}AlDz465MCxNr zsZVVMZ*IxisM$=dUAHkOXUm&gH?7s@W^UPDN08dJ^n3x-%M!I~C5rU|7w2b7lr}>D ztg^&LBs{Am*`C?Bge2KUxX{=oBq?|fR!B+0%&UG0&pwjlNx#}iRUCR^u0phkr2+cC zb_sv&VC%CFU4QNLf9(?f+QF8;{`c2T|HwwDvZR+)lhM5Y`-u!1^JJJ%GixSKeHf%OtRUPCWKzswe@Uf=kh1qX_ubry9$V*N`J(Rv0`|9D^r6-^SsI$KLyM<2HD8ylC%l@L|N|z_{U*9quCPEAT=1BNhv+U?dDoD z%7E}p{hYPtq~43ecj`+$oOj$-j-698x>3#G`**Nc5c_%=!v*ph4rpak&vM2c z9?s!m41$%-mus1xwLDO0nV@e83@ki5lHnO0viVZ>RH?@49(Eh?i|^Mo;e)gm*9^GQ zd|#X(;oRA<`EJPAU+O8Zk?#nwKd=_i|CXJ!!O8YyQ3Jq}RV57M_Ezsrh9w6bxm)9IH z{EJ$(0KRVWSuYX^SJmOB?}N>Ow(_8L`c_M~oL*o(RT|Q~)~EfK?Wx<@ai;@ErW2i4 z99HEurM0cazn(L|pP#oDx3U`ncZG&l!XAt0a`kuRdo!&cTRi2DM8k*oG&R*1;{(gT zxd4Bj;QA%^#-ic>o+xhS2B@b)^G!J1R1S-ux-qs=Z9zDuxb0Gh1r?AkY<;Gqqpdc# zif>!a=Na_o*3#R#?J4P8K*w$~lw+5e%g1HHA79@Yozdx7$AcU_CiX=_7qYm-xR{d2h5gnoEipA`OkwOld}{D7Ef(bXh}

zf{&FVF&yE9XtffN){nT_VdXoKaEPl_Dfg0KO_8dH3y!pMaZsG@9U5}}uny%5`sNsP zG;0?aFece(9+1AvgXccYG&GvqCiKeuK?XY;0|+&mD_j_uQ$Jdt%TZ&k(_%%9v~JYtrdkGYj*!t}WWQRfD08%)AX7 zH?G~NE7WLnH{!=xn!L?94dg<+QJaYgOXs;BTN(WVo*sAh1tQnIEv`<4191J;{L}(+ zm4`Y&Hg0<#;YuWKe58LBnPWm7Z!x}v~?qyaC5r7)r3(m%OQVvw&oLpGecB@}bpa z)2_`yyClaR;F@@apoH^X4~kw+7;L$Q9d6s_dx?_S{q@_^1KbH-4!Bx>HkdEdQ(Whn-R0ZFvr${jZai}3H^RMq1{&^O7LpKR%o39 zGJ%OP*)ec>qG(Ao;i~NOcYE_TYw|X3tO&}JV+`)kT)jcNc0*=fze&e)o#o)+06n*R zDoEgVp$lBzjd|*e7>CKnsL@^wi2XS;D1y>lQ+-b8$AG7943RL#=BNvn74Z^Y?lr64 zlF_yVW=oz%YcU28P|?n_xqisc*`P_1X+rS}ll0UD!j-S5?h5o+_RUZDb7Nl|0-0lk zX3rRz&CfOA0zs%>zOuw9(2rrMQ=3(r3o;e9%sJBaMfsU)wHq?mZb^}CRBb58r)B=V zitq?m!k!pUNiYJL2j=)`iv&^_nz`LtL+W>*Q0+|Ey@krmR+Z}aQTaJr4BH48CTL~W&v5jiB{G5cC*gWduU2i@nlF?2 z6>aCjRT#Q=3p@`{d?!j?m)T!n_-Q)rRORfcs#gZ#?qp+W!g2Y;F!vAA;f!3mcaZB6)v zXRV`~K_bs{7vg*EkHVtk_VA-iS^6!LkX9q6+o5DN_%-W%lw-E2CEC=}Gpn zncR-{bdaEV@G^Smy9NVN^!#2Y9m>;grTj#u+51eqqJhChpFN2R_?t2&6JGIOIfnjV z)|1YFf1|&+s5A7HR}myxx#-M?m-k5{*eyw_3R{O%61a1k7sDn~lv3$~dmqkTF}rkd zQDFEqnq-$25Z}fypS8w~|7p>-N<;w0Eebp^%|^06j+-AusB@{n{DjS>(STOc=yPG^@&8nQR?>Ib zaLZ5IIM~JD2b3YgkT%ApPUGCZ4_2&*dNpv1673ZYk*JRvx6Qq{L=sUMxL(N+`fQr7 z{dP`DYy^TtwkZ8-B{J_?o_tA%vpb!sKNv!nEgqUZE+BB_qS;S=S`mO9m}f_V7yLhAuBUh>tS5 zV1s)ZhO*rL+VU1zi)NCD{cWHoltM`M{XA(PJ0pZ}e-jhUKF*EJG6{OehlgOSA&d{n zb1*!T7kAkkITSUxXreOo9-Dt~_L&JEteokJAm%G20jU+lr<63ib>~yRf!URdDmSg% zG%$O@<%6G1TvR#uQywj1-%rs+uvcfa#Hx>l{p?#%I^m}?vo}A9T3otf*Rl!wmZI|Ae5$YM)xKwPeKmbXC`RwY~ zvtNly>sWDl#fn7}aHx(dVFmokp&13)Y&834ztf*i^wa0`M!^&%C1(4t%5qW{TKy~c zius>frG*U({WPjX}^I^V==biR&r=)Z+YVrPOQZcrS(!L7KTmOB_Y(gY(Rb+d9gTXVTUz zOAvwjL-wS!D6X`lx+V@SnJE)vux^_iX`C-&G#eC7M<%8vZr~8mqaroLz`L{RFw$TKg6JL{YZ&VeK^G)&Dj|usLJm3vnr*D z@UnlQ%trM_!=G||od0r8+#hm@7=Gt!za=?D@KmGaLlU}_-b)y*L&YM+u_;52jSSC{ zw;%#b^C62CgHP@zpGK#lX;R-dsi`%s#v-zmI*q0$-hUCQ6jQ`-L~yCcUut=`1

FJeX+-Q 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 r3jpyts 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%0D#?22eBZ4YIJUIvoW(Vb9~mm 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 z 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

h@B8V2{o5Ca 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

F{6wYTf32a-w!liI^jm^6-OE&1t^R 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 literal 0 HcmV?d00001 From 493c954b4936ceb1462f977d0328f7f629df2a70 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 31 Jan 2024 20:25:43 +0100 Subject: [PATCH 16/45] update generated code --- src/demo/gameevent_gen.rs | 68 ++ src/demo/sendprop_gen.rs | 1661 ++++++++++++++++++++++++++++++++++++- 2 files changed, 1725 insertions(+), 4 deletions(-) diff --git a/src/demo/gameevent_gen.rs b/src/demo/gameevent_gen.rs index b82e514..b2799f5 100644 --- a/src/demo/gameevent_gen.rs +++ b/src/demo/gameevent_gen.rs @@ -395,6 +395,7 @@ pub struct TeamPlayBroadcastAudioEvent { pub team: u8, pub sound: MaybeUtf8String, pub additional_flags: u16, + pub player: u16, } impl TeamPlayBroadcastAudioEvent { #[allow(unused_variables)] @@ -404,6 +405,7 @@ impl TeamPlayBroadcastAudioEvent { team: read_value::(stream, iter.next(), "team")?, sound: read_value::(stream, iter.next(), "sound")?, additional_flags: read_value::(stream, iter.next(), "additional_flags")?, + player: read_value::(stream, iter.next(), "player")?, }) } } @@ -1030,6 +1032,7 @@ pub struct VoteStartedEvent { pub param_1: MaybeUtf8String, pub team: u8, pub initiator: u32, + pub voteidx: u32, } impl VoteStartedEvent { #[allow(unused_variables)] @@ -1040,6 +1043,7 @@ impl VoteStartedEvent { param_1: read_value::(stream, iter.next(), "param_1")?, team: read_value::(stream, iter.next(), "team")?, initiator: read_value::(stream, iter.next(), "initiator")?, + voteidx: read_value::(stream, iter.next(), "voteidx")?, }) } } @@ -1052,6 +1056,7 @@ pub struct VoteChangedEvent { pub vote_option_4: u8, pub vote_option_5: u8, pub potential_votes: u8, + pub voteidx: u32, } impl VoteChangedEvent { #[allow(unused_variables)] @@ -1064,6 +1069,7 @@ impl VoteChangedEvent { vote_option_4: read_value::(stream, iter.next(), "vote_option_4")?, vote_option_5: read_value::(stream, iter.next(), "vote_option_5")?, potential_votes: read_value::(stream, iter.next(), "potential_votes")?, + voteidx: read_value::(stream, iter.next(), "voteidx")?, }) } } @@ -1073,6 +1079,7 @@ pub struct VotePassedEvent { pub details: MaybeUtf8String, pub param_1: MaybeUtf8String, pub team: u8, + pub voteidx: u32, } impl VotePassedEvent { #[allow(unused_variables)] @@ -1082,6 +1089,7 @@ impl VotePassedEvent { details: read_value::(stream, iter.next(), "details")?, param_1: read_value::(stream, iter.next(), "param_1")?, team: read_value::(stream, iter.next(), "team")?, + voteidx: read_value::(stream, iter.next(), "voteidx")?, }) } } @@ -1089,6 +1097,7 @@ impl VotePassedEvent { #[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteFailedEvent { pub team: u8, + pub voteidx: u32, } impl VoteFailedEvent { #[allow(unused_variables)] @@ -1096,6 +1105,7 @@ impl VoteFailedEvent { let mut iter = definition.entries.iter(); Ok(VoteFailedEvent { team: read_value::(stream, iter.next(), "team")?, + voteidx: read_value::(stream, iter.next(), "voteidx")?, }) } } @@ -1105,6 +1115,7 @@ pub struct VoteCastEvent { pub vote_option: u8, pub team: u16, pub entity_id: u32, + pub voteidx: u32, } impl VoteCastEvent { #[allow(unused_variables)] @@ -1114,6 +1125,7 @@ impl VoteCastEvent { vote_option: read_value::(stream, iter.next(), "vote_option")?, team: read_value::(stream, iter.next(), "team")?, entity_id: read_value::(stream, iter.next(), "entity_id")?, + voteidx: read_value::(stream, iter.next(), "voteidx")?, }) } } @@ -1126,6 +1138,7 @@ pub struct VoteOptionsEvent { pub option_3: MaybeUtf8String, pub option_4: MaybeUtf8String, pub option_5: MaybeUtf8String, + pub voteidx: u32, } impl VoteOptionsEvent { #[allow(unused_variables)] @@ -1138,6 +1151,7 @@ impl VoteOptionsEvent { option_3: read_value::(stream, iter.next(), "option_3")?, option_4: read_value::(stream, iter.next(), "option_4")?, option_5: read_value::(stream, iter.next(), "option_5")?, + voteidx: read_value::(stream, iter.next(), "voteidx")?, }) } } @@ -5404,6 +5418,34 @@ impl HalloweenSkeletonKilledEvent { } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +pub struct SkeletonKilledQuestEvent { + pub player: u16, +} +impl SkeletonKilledQuestEvent { + #[allow(unused_variables)] + fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { + let mut iter = definition.entries.iter(); + Ok(SkeletonKilledQuestEvent { + player: read_value::(stream, iter.next(), "player")?, + }) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +pub struct SkeletonKingKilledQuestEvent { + pub player: u16, +} +impl SkeletonKingKilledQuestEvent { + #[allow(unused_variables)] + fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { + let mut iter = definition.entries.iter(); + Ok(SkeletonKingKilledQuestEvent { + player: read_value::(stream, iter.next(), "player")?, + }) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] pub struct EscapeHellEvent { pub player: u16, } @@ -6645,6 +6687,8 @@ pub enum GameEvent { MerasmusStunned(MerasmusStunnedEvent), MerasmusPropFound(MerasmusPropFoundEvent), HalloweenSkeletonKilled(HalloweenSkeletonKilledEvent), + SkeletonKilledQuest(SkeletonKilledQuestEvent), + SkeletonKingKilledQuest(SkeletonKingKilledQuestEvent), EscapeHell(EscapeHellEvent), CrossSpectralBridge(CrossSpectralBridgeEvent), MiniGameWon(MiniGameWonEvent), @@ -7051,6 +7095,8 @@ pub enum GameEventType { MerasmusStunned, MerasmusPropFound, HalloweenSkeletonKilled, + SkeletonKilledQuest, + SkeletonKingKilledQuest, EscapeHell, CrossSpectralBridge, MiniGameWon, @@ -7474,6 +7520,8 @@ impl GameEventType { "merasmus_stunned" => GameEventType::MerasmusStunned, "merasmus_prop_found" => GameEventType::MerasmusPropFound, "halloween_skeleton_killed" => GameEventType::HalloweenSkeletonKilled, + "skeleton_killed_quest" => GameEventType::SkeletonKilledQuest, + "skeleton_king_killed_quest" => GameEventType::SkeletonKingKilledQuest, "escape_hell" => GameEventType::EscapeHell, "cross_spectral_bridge" => GameEventType::CrossSpectralBridge, "minigame_won" => GameEventType::MiniGameWon, @@ -7880,6 +7928,8 @@ impl GameEventType { GameEventType::MerasmusStunned => "merasmus_stunned", GameEventType::MerasmusPropFound => "merasmus_prop_found", GameEventType::HalloweenSkeletonKilled => "halloween_skeleton_killed", + GameEventType::SkeletonKilledQuest => "skeleton_killed_quest", + GameEventType::SkeletonKingKilledQuest => "skeleton_king_killed_quest", GameEventType::EscapeHell => "escape_hell", GameEventType::CrossSpectralBridge => "cross_spectral_bridge", GameEventType::MiniGameWon => "minigame_won", @@ -8954,6 +9004,12 @@ impl GameEvent { GameEventType::HalloweenSkeletonKilled => GameEvent::HalloweenSkeletonKilled( HalloweenSkeletonKilledEvent::read(stream, definition)?, ), + GameEventType::SkeletonKilledQuest => { + GameEvent::SkeletonKilledQuest(SkeletonKilledQuestEvent::read(stream, definition)?) + } + GameEventType::SkeletonKingKilledQuest => GameEvent::SkeletonKingKilledQuest( + SkeletonKingKilledQuestEvent::read(stream, definition)?, + ), GameEventType::EscapeHell => { GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) } @@ -9488,6 +9544,8 @@ impl GameEvent { GameEvent::MerasmusStunned(event) => event.write(stream), GameEvent::MerasmusPropFound(event) => event.write(stream), GameEvent::HalloweenSkeletonKilled(event) => event.write(stream), + GameEvent::SkeletonKilledQuest(event) => event.write(stream), + GameEvent::SkeletonKingKilledQuest(event) => event.write(stream), GameEvent::EscapeHell(event) => event.write(stream), GameEvent::CrossSpectralBridge(event) => event.write(stream), GameEvent::MiniGameWon(event) => event.write(stream), @@ -9896,6 +9954,8 @@ impl GameEvent { GameEvent::MerasmusStunned(_) => GameEventType::MerasmusStunned, GameEvent::MerasmusPropFound(_) => GameEventType::MerasmusPropFound, GameEvent::HalloweenSkeletonKilled(_) => GameEventType::HalloweenSkeletonKilled, + GameEvent::SkeletonKilledQuest(_) => GameEventType::SkeletonKilledQuest, + GameEvent::SkeletonKingKilledQuest(_) => GameEventType::SkeletonKingKilledQuest, GameEvent::EscapeHell(_) => GameEventType::EscapeHell, GameEvent::CrossSpectralBridge(_) => GameEventType::CrossSpectralBridge, GameEvent::MiniGameWon(_) => GameEventType::MiniGameWon, @@ -10972,6 +11032,14 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "HalloweenSkeletonKilled", std::mem::size_of::(), ), + ( + "SkeletonKilledQuest", + std::mem::size_of::(), + ), + ( + "SkeletonKingKilledQuest", + std::mem::size_of::(), + ), ("EscapeHell", std::mem::size_of::()), ( "CrossSpectralBridge", diff --git a/src/demo/sendprop_gen.rs b/src/demo/sendprop_gen.rs index 02d97b7..282581f 100644 --- a/src/demo/sendprop_gen.rs +++ b/src/demo/sendprop_gen.rs @@ -602,7 +602,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 14533006215834816041u64 => Some(("DT_LightGlow", "m_vecOrigin")), 6508012786687433646u64 => Some(("DT_LightGlow", "moveparent")), 13453899451321854295u64 => Some(("DT_Local", "m_PlayerFog.m_hCtrl")), - 4168597309748966852u64 => Some(("DT_Local", "m_audio.ent")), + 4948551812952959202u64 => Some(("DT_Local", "m_audio.entIndex")), 9763731780510518794u64 => Some(("DT_Local", "m_audio.localBits")), 16106628870764732795u64 => Some(("DT_Local", "m_audio.localSound[0]")), 15637927954513290804u64 => Some(("DT_Local", "m_audio.localSound[1]")), @@ -617,6 +617,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 5449289896059924437u64 => Some(("DT_Local", "m_bDrawViewmodel")), 3725383283484692701u64 => Some(("DT_Local", "m_bDucked")), 1621154590710783976u64 => Some(("DT_Local", "m_bDucking")), + 3005846650749763330u64 => Some(("DT_Local", "m_bForceLocalPlayerDraw")), 16969503208021721679u64 => Some(("DT_Local", "m_bInDuckJump")), 18154399394501450258u64 => Some(("DT_Local", "m_bPoisoned")), 6794516734409704829u64 => Some(("DT_Local", "m_bWearingSuit")), @@ -640,6 +641,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 11220497118892379552u64 => Some(("DT_Local", "m_skybox3d.fog.start")), 10713335711951207858u64 => Some(("DT_Local", "m_skybox3d.origin")), 10893108225253506632u64 => Some(("DT_Local", "m_skybox3d.scale")), + 9909728882769395750u64 => Some(("DT_Local", "m_szScriptOverlayMaterial")), 3261508312742118676u64 => Some(("DT_Local", "m_vecPunchAngle")), 11553804228842255627u64 => Some(("DT_Local", "m_vecPunchAngleVel")), 11420334401211568191u64 => Some(("DT_LocalActiveWeaponData", "m_flAnimTime")), @@ -686,6 +688,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 4911567853736094284u64 => Some(("DT_LocalWeaponData", "m_iClip2")), 15624780674892683012u64 => Some(("DT_LocalWeaponData", "m_iPrimaryAmmoType")), 7730092203207989308u64 => Some(("DT_LocalWeaponData", "m_iSecondaryAmmoType")), + 17575788268302765953u64 => Some(("DT_LocalWeaponData", "m_nCustomViewmodelModelIndex")), 3443159739696860287u64 => Some(("DT_LocalWeaponData", "m_nViewModelIndex")), 13496247640687739480u64 => Some(("DT_MannVsMachineStats", "baseclass")), 6529470081877114896u64 => Some(("DT_MannVsMachineStats", "m_currentWaveStats")), @@ -832,6 +835,15 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 13667693378448451720u64 => Some(("DT_PointCommentaryNode", "m_iszCommentaryFile")), 13719645572372795507u64 => Some(("DT_PointCommentaryNode", "m_iszCommentaryFileNoHDR")), 17623759576779101483u64 => Some(("DT_PointCommentaryNode", "m_iszSpeakers")), + 6273635027155475244u64 => Some(("DT_PointWorldText", "baseclass")), + 14658685738842019865u64 => Some(("DT_PointWorldText", "m_bRainbow")), + 7646328684933459293u64 => Some(("DT_PointWorldText", "m_colTextColor")), + 12432715190302405129u64 => Some(("DT_PointWorldText", "m_flTextSize")), + 7386793523147845319u64 => Some(("DT_PointWorldText", "m_flTextSpacingX")), + 7387919423054944158u64 => Some(("DT_PointWorldText", "m_flTextSpacingY")), + 2446975158565786904u64 => Some(("DT_PointWorldText", "m_nFont")), + 3427321736688565589u64 => Some(("DT_PointWorldText", "m_nOrientation")), + 5369088269639731795u64 => Some(("DT_PointWorldText", "m_szText")), 3999418953900660656u64 => Some(("DT_PoseController", "baseclass")), 15850380745941941085u64 => Some(("DT_PoseController", "m_bInterpolationWrap")), 8716536612813276926u64 => Some(("DT_PoseController", "m_bPoseValueParity")), @@ -1231,8 +1243,8 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 14713141386225885120u64 => Some(("DT_TEPhysicsProp", "m_nSkin")), 11815868583265782401u64 => Some(("DT_TEPhysicsProp", "m_vecOrigin")), 6598556719890609186u64 => Some(("DT_TEPhysicsProp", "m_vecVelocity")), + 14944079586339702850u64 => Some(("DT_TEPlayerAnimEvent", "m_hPlayer")), 4409487671989469038u64 => Some(("DT_TEPlayerAnimEvent", "m_iEvent")), - 3459327361420038479u64 => Some(("DT_TEPlayerAnimEvent", "m_iPlayerIndex")), 453037228662366211u64 => Some(("DT_TEPlayerAnimEvent", "m_nData")), 1013624560487508866u64 => Some(("DT_TEPlayerDecal", "baseclass")), 12618197349642107020u64 => Some(("DT_TEPlayerDecal", "m_nEntity")), @@ -1386,6 +1398,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 2939098533427406702u64 => Some(("DT_TFGameRules", "m_bPlayingRobotDestructionMode")), 4586199180287230135u64 => Some(("DT_TFGameRules", "m_bPlayingSpecialDeliveryMode")), 4315315735035020952u64 => Some(("DT_TFGameRules", "m_bPowerupMode")), + 3841425158937199795u64 => Some(("DT_TFGameRules", "m_bRopesHolidayLightsAllowed")), 6911024999663273931u64 => Some(("DT_TFGameRules", "m_bShowMatchSummary")), 12421438954172708401u64 => Some(("DT_TFGameRules", "m_bStopWatchWinner")), 15002231524765663200u64 => Some(("DT_TFGameRules", "m_bTeamsSwitched")), @@ -1403,6 +1416,8 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 7255714751662602508u64 => Some(("DT_TFGameRules", "m_halloweenScenario")), 17934305225072730354u64 => Some(("DT_TFGameRules", "m_itHandle")), 9315092504108898912u64 => Some(("DT_TFGameRules", "m_nBossHealth")), + 11269641572024751488u64 => Some(("DT_TFGameRules", "m_nForceEscortPushLogic")), + 4949678341388143743u64 => Some(("DT_TFGameRules", "m_nForceUpgrades")), 441717416859338411u64 => Some(("DT_TFGameRules", "m_nGameType")), 126453477600713379u64 => Some(("DT_TFGameRules", "m_nHalloweenEffect")), 9966605163374635246u64 => Some(("DT_TFGameRules", "m_nHudType")), @@ -1520,6 +1535,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 9021983298164772349u64 => Some(("DT_TFPlayer", "m_bIsABot")), 4654236084447760395u64 => Some(("DT_TFPlayer", "m_bIsMiniBoss")), 2703922006339754199u64 => Some(("DT_TFPlayer", "m_bIsReadyToHighFive")), + 17402563713644156498u64 => Some(("DT_TFPlayer", "m_bRegenerating")), 14030368684579661967u64 => Some(("DT_TFPlayer", "m_bSaveMeParity")), 14837755808875465470u64 => Some(("DT_TFPlayer", "m_bUseBossHealthBar")), 6080286722050203887u64 => Some(("DT_TFPlayer", "m_bUsingActionSlot")), @@ -1657,6 +1673,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 2833658322849843380u64 => Some(("DT_TFPlayerShared", "m_flRuneCharge")), 4588175910444393337u64 => Some(("DT_TFPlayerShared", "m_flSpyTranqBuffDuration")), 10456123795839400185u64 => Some(("DT_TFPlayerShared", "m_hCarriedObject")), + 12075294883654637238u64 => Some(("DT_TFPlayerShared", "m_hDisguiseTarget")), 3128245377429021269u64 => Some(("DT_TFPlayerShared", "m_hDisguiseWeapon")), 4234530210042604548u64 => Some(("DT_TFPlayerShared", "m_hPasstimePassTarget")), 16037861751925193197u64 => Some(("DT_TFPlayerShared", "m_hStunner")), @@ -1667,7 +1684,6 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 10518636605441271206u64 => Some(("DT_TFPlayerShared", "m_iDesiredPlayerClass")), 8445286183552359172u64 => Some(("DT_TFPlayerShared", "m_iDisguiseBody")), 14376191046083514006u64 => Some(("DT_TFPlayerShared", "m_iDisguiseHealth")), - 2071173860217244535u64 => Some(("DT_TFPlayerShared", "m_iDisguiseTargetIndex")), 4386630627084353964u64 => Some(("DT_TFPlayerShared", "m_iItemFindBonus")), 13018720741200056505u64 => Some(("DT_TFPlayerShared", "m_iKillCountSinceLastDeploy")), 10849469538206417414u64 => Some(("DT_TFPlayerShared", "m_iMovementStunAmount")), @@ -1781,10 +1797,10 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 8862936522203216500u64 => Some(("DT_TFRagdoll", "m_flHandScale")), 13185300741189421975u64 => Some(("DT_TFRagdoll", "m_flHeadScale")), 4350579984866650218u64 => Some(("DT_TFRagdoll", "m_flTorsoScale")), + 16854852775783225802u64 => Some(("DT_TFRagdoll", "m_hPlayer")), 13378922227420856831u64 => Some(("DT_TFRagdoll", "m_hRagWearables")), 18303885813835152778u64 => Some(("DT_TFRagdoll", "m_iClass")), 12939140469833954206u64 => Some(("DT_TFRagdoll", "m_iDamageCustom")), - 13798515288997726775u64 => Some(("DT_TFRagdoll", "m_iPlayerIndex")), 15853025709685262819u64 => Some(("DT_TFRagdoll", "m_iTeam")), 14530560315792303208u64 => Some(("DT_TFRagdoll", "m_nForceBone")), 2417411451435761782u64 => Some(("DT_TFRagdoll", "m_vecForce")), @@ -2025,6 +2041,7 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 7487768341484452330u64 => Some(("DT_VoteController", "m_iActiveIssueIndex")), 11514155275907457993u64 => Some(("DT_VoteController", "m_iOnlyTeamToVote")), 1049460631071614933u64 => Some(("DT_VoteController", "m_nPotentialVotes")), + 8443600711686271691u64 => Some(("DT_VoteController", "m_nVoteIdx")), 16924505124808319922u64 => Some(("DT_VoteController", "m_nVoteOptionCount")), 1706526710012768895u64 => Some(("DT_WORLD", "baseclass")), 17061490857561149375u64 => Some(("DT_WORLD", "m_WorldMaxs")), @@ -2523,6 +2540,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 3716393927549795047u64 => Some(("m_bAlive", "063")), 3711327377967944884u64 => Some(("m_bAlive", "064")), 3710201478060846045u64 => Some(("m_bAlive", "065")), + 3713016227828498530u64 => Some(("m_bAlive", "066")), + 3712453277875043723u64 => Some(("m_bAlive", "067")), + 3722586377038554824u64 => Some(("m_bAlive", "068")), + 3722023427085100017u64 => Some(("m_bAlive", "069")), + 3060230676771789275u64 => Some(("m_bAlive", "070")), + 3061356576678888114u64 => Some(("m_bAlive", "071")), + 3058541826911235629u64 => Some(("m_bAlive", "072")), + 3059667726818334468u64 => Some(("m_bAlive", "073")), + 3064171326446540599u64 => Some(("m_bAlive", "074")), + 3065297226353639438u64 => Some(("m_bAlive", "075")), + 3062482476585986953u64 => Some(("m_bAlive", "076")), + 3063045426539441760u64 => Some(("m_bAlive", "077")), + 3068111976121291923u64 => Some(("m_bAlive", "078")), + 3069237876028390762u64 => Some(("m_bAlive", "079")), + 4902056689560687866u64 => Some(("m_bAlive", "080")), + 4901493739607233059u64 => Some(("m_bAlive", "081")), + 4900367839700134220u64 => Some(("m_bAlive", "082")), + 4899241939793035381u64 => Some(("m_bAlive", "083")), + 4905997339235439190u64 => Some(("m_bAlive", "084")), + 4904871439328340351u64 => Some(("m_bAlive", "085")), + 4904308489374885544u64 => Some(("m_bAlive", "086")), + 4903182589467786705u64 => Some(("m_bAlive", "087")), + 4894738340164829250u64 => Some(("m_bAlive", "088")), + 4893612440257730411u64 => Some(("m_bAlive", "089")), + 4247582288643424965u64 => Some(("m_bAlive", "090")), + 4248708188550523804u64 => Some(("m_bAlive", "091")), + 4249271138503978611u64 => Some(("m_bAlive", "092")), + 4250397038411077450u64 => Some(("m_bAlive", "093")), + 4251522938318176289u64 => Some(("m_bAlive", "094")), + 4252085888271631096u64 => Some(("m_bAlive", "095")), + 4253211788178729935u64 => Some(("m_bAlive", "096")), + 4254337688085828774u64 => Some(("m_bAlive", "097")), + 4239700989293922317u64 => Some(("m_bAlive", "098")), + 4240826889201021156u64 => Some(("m_bAlive", "099")), + 6827734720913192675u64 => Some(("m_bAlive", "100")), + 6828860620820291514u64 => Some(("m_bAlive", "101")), 1124288990776152847u64 => Some(("m_bArenaSpectator", "000")), 1125414890683251686u64 => Some(("m_bArenaSpectator", "001")), 1122600140915599201u64 => Some(("m_bArenaSpectator", "002")), @@ -2589,6 +2642,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 2406216194841252638u64 => Some(("m_bArenaSpectator", "063")), 2399460795398848829u64 => Some(("m_bArenaSpectator", "064")), 2400586695305947668u64 => Some(("m_bArenaSpectator", "065")), + 2401712595213046507u64 => Some(("m_bArenaSpectator", "066")), + 2402275545166501314u64 => Some(("m_bArenaSpectator", "067")), + 2411282744423102801u64 => Some(("m_bArenaSpectator", "068")), + 2411845694376557608u64 => Some(("m_bArenaSpectator", "069")), + 3058438795944507086u64 => Some(("m_bArenaSpectator", "070")), + 3057312896037408247u64 => Some(("m_bArenaSpectator", "071")), + 3056186996130309408u64 => Some(("m_bArenaSpectator", "072")), + 3055061096223210569u64 => Some(("m_bArenaSpectator", "073")), + 3054498146269755762u64 => Some(("m_bArenaSpectator", "074")), + 3053372246362656923u64 => Some(("m_bArenaSpectator", "075")), + 3052246346455558084u64 => Some(("m_bArenaSpectator", "076")), + 3051683396502103277u64 => Some(("m_bArenaSpectator", "077")), + 3065757145340365702u64 => Some(("m_bArenaSpectator", "078")), + 3064631245433266863u64 => Some(("m_bArenaSpectator", "079")), + 14608268584610459975u64 => Some(("m_bArenaSpectator", "080")), + 14609394484517558814u64 => Some(("m_bArenaSpectator", "081")), + 14606579734749906329u64 => Some(("m_bArenaSpectator", "082")), + 14607705634657005168u64 => Some(("m_bArenaSpectator", "083")), + 14604890884889352683u64 => Some(("m_bArenaSpectator", "084")), + 14605453834842807490u64 => Some(("m_bArenaSpectator", "085")), + 14602639085075155005u64 => Some(("m_bArenaSpectator", "086")), + 14603764984982253844u64 => Some(("m_bArenaSpectator", "087")), + 14616149883959962623u64 => Some(("m_bArenaSpectator", "088")), + 14617275783867061462u64 => Some(("m_bArenaSpectator", "089")), + 15263305935481366908u64 => Some(("m_bArenaSpectator", "090")), + 15262180035574268069u64 => Some(("m_bArenaSpectator", "091")), + 15264994785341920554u64 => Some(("m_bArenaSpectator", "092")), + 15264431835388465747u64 => Some(("m_bArenaSpectator", "093")), + 15267246585156118232u64 => Some(("m_bArenaSpectator", "094")), + 15266120685249019393u64 => Some(("m_bArenaSpectator", "095")), + 15268935435016671878u64 => Some(("m_bArenaSpectator", "096")), + 15267809535109573039u64 => Some(("m_bArenaSpectator", "097")), + 15255424636131864260u64 => Some(("m_bArenaSpectator", "098")), + 15254861686178409453u64 => Some(("m_bArenaSpectator", "099")), + 14270426083901004734u64 => Some(("m_bArenaSpectator", "100")), + 14269863133947549927u64 => Some(("m_bArenaSpectator", "101")), 6487669264507476153u64 => Some(("m_bBlocked", "000")), 6488232214460930960u64 => Some(("m_bBlocked", "001")), 6489358114368029799u64 => Some(("m_bBlocked", "002")), @@ -2691,6 +2780,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 14286708559075246125u64 => Some(("m_bConnected", "063")), 14293463958517649934u64 => Some(("m_bConnected", "064")), 14292338058610551095u64 => Some(("m_bConnected", "065")), + 14291212158703452256u64 => Some(("m_bConnected", "066")), + 14290649208749997449u64 => Some(("m_bConnected", "067")), + 14297404608192401258u64 => Some(("m_bConnected", "068")), + 14296278708285302419u64 => Some(("m_bConnected", "069")), + 13634485957971991677u64 => Some(("m_bConnected", "070")), + 13635611857879090516u64 => Some(("m_bConnected", "071")), + 13636737757786189355u64 => Some(("m_bConnected", "072")), + 13637863657693288194u64 => Some(("m_bConnected", "073")), + 13638426607646743001u64 => Some(("m_bConnected", "074")), + 13639552507553841840u64 => Some(("m_bConnected", "075")), + 13640678407460940679u64 => Some(("m_bConnected", "076")), + 13641241357414395486u64 => Some(("m_bConnected", "077")), + 13642367257321494325u64 => Some(("m_bConnected", "078")), + 13643493157228593164u64 => Some(("m_bConnected", "079")), + 4580956583012200280u64 => Some(("m_bConnected", "080")), + 4580393633058745473u64 => Some(("m_bConnected", "081")), + 4583208382826397958u64 => Some(("m_bConnected", "082")), + 4582082482919299119u64 => Some(("m_bConnected", "083")), + 4577015933337448956u64 => Some(("m_bConnected", "084")), + 4576452983383994149u64 => Some(("m_bConnected", "085")), + 4579267733151646634u64 => Some(("m_bConnected", "086")), + 4578141833244547795u64 => Some(("m_bConnected", "087")), + 4573638233616341664u64 => Some(("m_bConnected", "088")), + 4572512333709242825u64 => Some(("m_bConnected", "089")), + 3926482182094937379u64 => Some(("m_bConnected", "090")), + 3927045132048392186u64 => Some(("m_bConnected", "091")), + 3924230382280739701u64 => Some(("m_bConnected", "092")), + 3925356282187838540u64 => Some(("m_bConnected", "093")), + 3929859881816044671u64 => Some(("m_bConnected", "094")), + 3930985781723143510u64 => Some(("m_bConnected", "095")), + 3928171031955491025u64 => Some(("m_bConnected", "096")), + 3929296931862589864u64 => Some(("m_bConnected", "097")), + 3918600882745434731u64 => Some(("m_bConnected", "098")), + 3919726782652533570u64 => Some(("m_bConnected", "099")), + 4918799083721655521u64 => Some(("m_bConnected", "100")), + 4919924983628754360u64 => Some(("m_bConnected", "101")), 6332436489144577515u64 => Some(("m_bHillIsDownhill", "000")), 6332999439098032322u64 => Some(("m_bHillIsDownhill", "001")), 6330184689330379837u64 => Some(("m_bHillIsDownhill", "002")), @@ -2813,6 +2938,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 6269230084790703580u64 => Some(("m_bPlayerDominated", "063")), 6273733684418909711u64 => Some(("m_bPlayerDominated", "064")), 6274859584326008550u64 => Some(("m_bPlayerDominated", "065")), + 6272044834558356065u64 => Some(("m_bPlayerDominated", "066")), + 6273170734465454904u64 => Some(("m_bPlayerDominated", "067")), + 6262474685348299771u64 => Some(("m_bPlayerDominated", "068")), + 6263600585255398610u64 => Some(("m_bPlayerDominated", "069")), + 6924830385615065320u64 => Some(("m_bPlayerDominated", "070")), + 6923704485707966481u64 => Some(("m_bPlayerDominated", "071")), + 6926519235475618966u64 => Some(("m_bPlayerDominated", "072")), + 6925956285522164159u64 => Some(("m_bPlayerDominated", "073")), + 6920889735940313996u64 => Some(("m_bPlayerDominated", "074")), + 6920326785986859189u64 => Some(("m_bPlayerDominated", "075")), + 6923141535754511674u64 => Some(("m_bPlayerDominated", "076")), + 6922015635847412835u64 => Some(("m_bPlayerDominated", "077")), + 6916949086265562672u64 => Some(("m_bPlayerDominated", "078")), + 6916386136312107865u64 => Some(("m_bPlayerDominated", "079")), + 15978359760574856717u64 => Some(("m_bPlayerDominated", "080")), + 15979485660481955556u64 => Some(("m_bPlayerDominated", "081")), + 15980611560389054395u64 => Some(("m_bPlayerDominated", "082")), + 15981174510342509202u64 => Some(("m_bPlayerDominated", "083")), + 15982300410249608041u64 => Some(("m_bPlayerDominated", "084")), + 15983426310156706880u64 => Some(("m_bPlayerDominated", "085")), + 15983989260110161687u64 => Some(("m_bPlayerDominated", "086")), + 15985115160017260526u64 => Some(("m_bPlayerDominated", "087")), + 15986241059924359365u64 => Some(("m_bPlayerDominated", "088")), + 15987366959831458204u64 => Some(("m_bPlayerDominated", "089")), + 16633397111445763650u64 => Some(("m_bPlayerDominated", "090")), + 16632271211538664811u64 => Some(("m_bPlayerDominated", "091")), + 16631145311631565972u64 => Some(("m_bPlayerDominated", "092")), + 16630582361678111165u64 => Some(("m_bPlayerDominated", "093")), + 16637337761120514974u64 => Some(("m_bPlayerDominated", "094")), + 16636211861213416135u64 => Some(("m_bPlayerDominated", "095")), + 16635085961306317296u64 => Some(("m_bPlayerDominated", "096")), + 16633960061399218457u64 => Some(("m_bPlayerDominated", "097")), + 16640715460841622266u64 => Some(("m_bPlayerDominated", "098")), + 16640152510888167459u64 => Some(("m_bPlayerDominated", "099")), + 15640517259865401476u64 => Some(("m_bPlayerDominated", "100")), + 15639391359958302637u64 => Some(("m_bPlayerDominated", "101")), 7888824591674904256u64 => Some(("m_bPlayerDominatingMe", "000")), 7888261641721449449u64 => Some(("m_bPlayerDominatingMe", "001")), 7891076391489101934u64 => Some(("m_bPlayerDominatingMe", "002")), @@ -2879,6 +3040,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 4232757113820177117u64 => Some(("m_bPlayerDominatingMe", "063")), 4239512513262580926u64 => Some(("m_bPlayerDominatingMe", "064")), 4238949563309126119u64 => Some(("m_bPlayerDominatingMe", "065")), + 4237823663402027280u64 => Some(("m_bPlayerDominatingMe", "066")), + 4236697763494928441u64 => Some(("m_bPlayerDominatingMe", "067")), + 4243453162937332250u64 => Some(("m_bPlayerDominatingMe", "068")), + 4242327263030233411u64 => Some(("m_bPlayerDominatingMe", "069")), + 3581097462670566701u64 => Some(("m_bPlayerDominatingMe", "070")), + 3582223362577665540u64 => Some(("m_bPlayerDominatingMe", "071")), + 3582786312531120347u64 => Some(("m_bPlayerDominatingMe", "072")), + 3583912212438219186u64 => Some(("m_bPlayerDominatingMe", "073")), + 3585038112345318025u64 => Some(("m_bPlayerDominatingMe", "074")), + 3585601062298772832u64 => Some(("m_bPlayerDominatingMe", "075")), + 3586726962205871671u64 => Some(("m_bPlayerDominatingMe", "076")), + 3587852862112970510u64 => Some(("m_bPlayerDominatingMe", "077")), + 3588415812066425317u64 => Some(("m_bPlayerDominatingMe", "078")), + 3589541711973524156u64 => Some(("m_bPlayerDominatingMe", "079")), + 12974312161420326920u64 => Some(("m_bPlayerDominatingMe", "080")), + 12973186261513228081u64 => Some(("m_bPlayerDominatingMe", "081")), + 12976001011280880566u64 => Some(("m_bPlayerDominatingMe", "082")), + 12974875111373781727u64 => Some(("m_bPlayerDominatingMe", "083")), + 12970371511745575596u64 => Some(("m_bPlayerDominatingMe", "084")), + 12969245611838476757u64 => Some(("m_bPlayerDominatingMe", "085")), + 12972060361606129242u64 => Some(("m_bPlayerDominatingMe", "086")), + 12971497411652674435u64 => Some(("m_bPlayerDominatingMe", "087")), + 12966430862070824272u64 => Some(("m_bPlayerDominatingMe", "088")), + 12965304962163725433u64 => Some(("m_bPlayerDominatingMe", "089")), + 12319274810549419987u64 => Some(("m_bPlayerDominatingMe", "090")), + 12320400710456518826u64 => Some(("m_bPlayerDominatingMe", "091")), + 12317585960688866341u64 => Some(("m_bPlayerDominatingMe", "092")), + 12318148910642321148u64 => Some(("m_bPlayerDominatingMe", "093")), + 12323215460224171311u64 => Some(("m_bPlayerDominatingMe", "094")), + 12324341360131270150u64 => Some(("m_bPlayerDominatingMe", "095")), + 12321526610363617665u64 => Some(("m_bPlayerDominatingMe", "096")), + 12322089560317072472u64 => Some(("m_bPlayerDominatingMe", "097")), + 12311956461153561371u64 => Some(("m_bPlayerDominatingMe", "098")), + 12312519411107016178u64 => Some(("m_bPlayerDominatingMe", "099")), + 13312154662129782161u64 => Some(("m_bPlayerDominatingMe", "100")), + 13313280562036881000u64 => Some(("m_bPlayerDominatingMe", "101")), 14723770306994566293u64 => Some(("m_bPlayerIsPackMember", "000")), 14724896206901665132u64 => Some(("m_bPlayerIsPackMember", "001")), 14725459156855119939u64 => Some(("m_bPlayerIsPackMember", "002")), @@ -2945,6 +3142,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 18375897135174542108u64 => Some(("m_bPlayerIsPackMember", "063")), 18380963684756392271u64 => Some(("m_bPlayerIsPackMember", "064")), 18381526634709847078u64 => Some(("m_bPlayerIsPackMember", "065")), + 18378711884942194593u64 => Some(("m_bPlayerIsPackMember", "066")), + 18379837784849293432u64 => Some(("m_bPlayerIsPackMember", "067")), + 18369141735732138299u64 => Some(("m_bPlayerIsPackMember", "068")), + 18370267635639237138u64 => Some(("m_bPlayerIsPackMember", "069")), + 584753362289352232u64 => Some(("m_bPlayerIsPackMember", "070")), + 584190412335897425u64 => Some(("m_bPlayerIsPackMember", "071")), + 587005162103549910u64 => Some(("m_bPlayerIsPackMember", "072")), + 585879262196451071u64 => Some(("m_bPlayerIsPackMember", "073")), + 580812712614600908u64 => Some(("m_bPlayerIsPackMember", "074")), + 580249762661146101u64 => Some(("m_bPlayerIsPackMember", "075")), + 583064512428798586u64 => Some(("m_bPlayerIsPackMember", "076")), + 581938612521699747u64 => Some(("m_bPlayerIsPackMember", "077")), + 577435012893493616u64 => Some(("m_bPlayerIsPackMember", "078")), + 576309112986394777u64 => Some(("m_bPlayerIsPackMember", "079")), + 9638845687202787661u64 => Some(("m_bPlayerIsPackMember", "080")), + 9639408637156242468u64 => Some(("m_bPlayerIsPackMember", "081")), + 9640534537063341307u64 => Some(("m_bPlayerIsPackMember", "082")), + 9641660436970440146u64 => Some(("m_bPlayerIsPackMember", "083")), + 9642223386923894953u64 => Some(("m_bPlayerIsPackMember", "084")), + 9643349286830993792u64 => Some(("m_bPlayerIsPackMember", "085")), + 9644475186738092631u64 => Some(("m_bPlayerIsPackMember", "086")), + 9645038136691547438u64 => Some(("m_bPlayerIsPackMember", "087")), + 9646164036598646277u64 => Some(("m_bPlayerIsPackMember", "088")), + 9647289936505745116u64 => Some(("m_bPlayerIsPackMember", "089")), + 10293320088120050562u64 => Some(("m_bPlayerIsPackMember", "090")), + 10292194188212951723u64 => Some(("m_bPlayerIsPackMember", "091")), + 10291631238259496916u64 => Some(("m_bPlayerIsPackMember", "092")), + 10290505338352398077u64 => Some(("m_bPlayerIsPackMember", "093")), + 10297260737794801886u64 => Some(("m_bPlayerIsPackMember", "094")), + 10296134837887703047u64 => Some(("m_bPlayerIsPackMember", "095")), + 10295008937980604208u64 => Some(("m_bPlayerIsPackMember", "096")), + 10294445988027149401u64 => Some(("m_bPlayerIsPackMember", "097")), + 10301201387469553210u64 => Some(("m_bPlayerIsPackMember", "098")), + 10300075487562454371u64 => Some(("m_bPlayerIsPackMember", "099")), + 9300440236539688388u64 => Some(("m_bPlayerIsPackMember", "100")), + 9299877286586233581u64 => Some(("m_bPlayerIsPackMember", "101")), 5070517607330353509u64 => Some(("m_bPlayerReady", "000")), 5071643507237452348u64 => Some(("m_bPlayerReady", "001")), 5072206457190907155u64 => Some(("m_bPlayerReady", "002")), @@ -3011,6 +3244,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 8845367525380507500u64 => Some(("m_bPlayerReady", "063")), 8849871125008713631u64 => Some(("m_bPlayerReady", "064")), 8850997024915812470u64 => Some(("m_bPlayerReady", "065")), + 8848182275148159985u64 => Some(("m_bPlayerReady", "066")), + 8848745225101614792u64 => Some(("m_bPlayerReady", "067")), + 8838612125938103691u64 => Some(("m_bPlayerReady", "068")), + 8839175075891558498u64 => Some(("m_bPlayerReady", "069")), + 9378244736334691064u64 => Some(("m_bPlayerReady", "070")), + 9377681786381236257u64 => Some(("m_bPlayerReady", "071")), + 9380496536148888742u64 => Some(("m_bPlayerReady", "072")), + 9379370636241789903u64 => Some(("m_bPlayerReady", "073")), + 9374867036613583772u64 => Some(("m_bPlayerReady", "074")), + 9373741136706484933u64 => Some(("m_bPlayerReady", "075")), + 9376555886474137418u64 => Some(("m_bPlayerReady", "076")), + 9375429986567038579u64 => Some(("m_bPlayerReady", "077")), + 9370926386938832448u64 => Some(("m_bPlayerReady", "078")), + 9369800487031733609u64 => Some(("m_bPlayerReady", "079")), + 107753127455109021u64 => Some(("m_bPlayerReady", "080")), + 108879027362207860u64 => Some(("m_bPlayerReady", "081")), + 109441977315662667u64 => Some(("m_bPlayerReady", "082")), + 110567877222761506u64 => Some(("m_bPlayerReady", "083")), + 111693777129860345u64 => Some(("m_bPlayerReady", "084")), + 112819677036959184u64 => Some(("m_bPlayerReady", "085")), + 113382626990413991u64 => Some(("m_bPlayerReady", "086")), + 114508526897512830u64 => Some(("m_bPlayerReady", "087")), + 115634426804611669u64 => Some(("m_bPlayerReady", "088")), + 116197376758066476u64 => Some(("m_bPlayerReady", "089")), + 640067388455837778u64 => Some(("m_bPlayerReady", "090")), + 638941488548738939u64 => Some(("m_bPlayerReady", "091")), + 638378538595284132u64 => Some(("m_bPlayerReady", "092")), + 637252638688185293u64 => Some(("m_bPlayerReady", "093")), + 644008038130589102u64 => Some(("m_bPlayerReady", "094")), + 642882138223490263u64 => Some(("m_bPlayerReady", "095")), + 641756238316391424u64 => Some(("m_bPlayerReady", "096")), + 641193288362936617u64 => Some(("m_bPlayerReady", "097")), + 647948687805340426u64 => Some(("m_bPlayerReady", "098")), + 646822787898241587u64 => Some(("m_bPlayerReady", "099")), + 18093931610585027220u64 => Some(("m_bPlayerReady", "100")), + 18093368660631572413u64 => Some(("m_bPlayerReady", "101")), 10308374622901288482u64 => Some(("m_bTeamCanCap", "000")), 10307248722994189643u64 => Some(("m_bTeamCanCap", "001")), 10306685773040734836u64 => Some(("m_bTeamCanCap", "002")), @@ -3178,6 +3447,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 7996546873199952794u64 => Some(("m_bValid", "063")), 7997109823153407601u64 => Some(("m_bValid", "064")), 7998235723060506440u64 => Some(("m_bValid", "065")), + 7999361622967605279u64 => Some(("m_bValid", "066")), + 7999924572921060086u64 => Some(("m_bValid", "067")), + 7985850824082797661u64 => Some(("m_bValid", "068")), + 7986976723989896500u64 => Some(("m_bValid", "069")), + 8525483434479385034u64 => Some(("m_bValid", "070")), + 8524920484525930227u64 => Some(("m_bValid", "071")), + 8523794584618831388u64 => Some(("m_bValid", "072")), + 8522668684711732549u64 => Some(("m_bValid", "073")), + 8529424084154136358u64 => Some(("m_bValid", "074")), + 8528861134200681551u64 => Some(("m_bValid", "075")), + 8527735234293582712u64 => Some(("m_bValid", "076")), + 8526609334386483873u64 => Some(("m_bValid", "077")), + 8518165085083526418u64 => Some(("m_bValid", "078")), + 8517039185176427579u64 => Some(("m_bValid", "079")), + 6683657421690486443u64 => Some(("m_bValid", "080")), + 6684783321597585282u64 => Some(("m_bValid", "081")), + 6681968571829932797u64 => Some(("m_bValid", "082")), + 6683094471737031636u64 => Some(("m_bValid", "083")), + 6687598071365237767u64 => Some(("m_bValid", "084")), + 6688723971272336606u64 => Some(("m_bValid", "085")), + 6685909221504684121u64 => Some(("m_bValid", "086")), + 6686472171458138928u64 => Some(("m_bValid", "087")), + 6691538721039989091u64 => Some(("m_bValid", "088")), + 6692664620947087930u64 => Some(("m_bValid", "089")), + 7338694772561393376u64 => Some(("m_bValid", "090")), + 7337568872654294537u64 => Some(("m_bValid", "091")), + 7340383622421947022u64 => Some(("m_bValid", "092")), + 7339820672468492215u64 => Some(("m_bValid", "093")), + 7334754122886642052u64 => Some(("m_bValid", "094")), + 7333628222979543213u64 => Some(("m_bValid", "095")), + 7336442972747195698u64 => Some(("m_bValid", "096")), + 7335880022793740891u64 => Some(("m_bValid", "097")), + 7346013121957251992u64 => Some(("m_bValid", "098")), + 7345450172003797185u64 => Some(("m_bValid", "099")), + 4757979390337981634u64 => Some(("m_bValid", "100")), + 4757416440384526827u64 => Some(("m_bValid", "101")), 13024236505216800189u64 => Some(("m_chAreaBits", "000")), 13024799455170254996u64 => Some(("m_chAreaBits", "001")), 13025925355077353835u64 => Some(("m_chAreaBits", "002")), @@ -3323,6 +3628,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 10597117125299254423u64 => Some(("m_ePlayerWantsRematch", "063")), 10592050575717404260u64 => Some(("m_ePlayerWantsRematch", "064")), 10591487625763949453u64 => Some(("m_ePlayerWantsRematch", "065")), + 10594302375531601938u64 => Some(("m_ePlayerWantsRematch", "066")), + 10593176475624503099u64 => Some(("m_ePlayerWantsRematch", "067")), + 10603872524741658232u64 => Some(("m_ePlayerWantsRematch", "068")), + 10602746624834559393u64 => Some(("m_ePlayerWantsRematch", "069")), + 10063676964391426827u64 => Some(("m_ePlayerWantsRematch", "070")), + 10064802864298525666u64 => Some(("m_ePlayerWantsRematch", "071")), + 10061988114530873181u64 => Some(("m_ePlayerWantsRematch", "072")), + 10063114014437972020u64 => Some(("m_ePlayerWantsRematch", "073")), + 10067617614066178151u64 => Some(("m_ePlayerWantsRematch", "074")), + 10068743513973276990u64 => Some(("m_ePlayerWantsRematch", "075")), + 10065928764205624505u64 => Some(("m_ePlayerWantsRematch", "076")), + 10066491714159079312u64 => Some(("m_ePlayerWantsRematch", "077")), + 10071558263740929475u64 => Some(("m_ePlayerWantsRematch", "078")), + 10072684163648028314u64 => Some(("m_ePlayerWantsRematch", "079")), + 11905502977180325418u64 => Some(("m_ePlayerWantsRematch", "080")), + 11904940027226870611u64 => Some(("m_ePlayerWantsRematch", "081")), + 11903814127319771772u64 => Some(("m_ePlayerWantsRematch", "082")), + 11902688227412672933u64 => Some(("m_ePlayerWantsRematch", "083")), + 11909443626855076742u64 => Some(("m_ePlayerWantsRematch", "084")), + 11908317726947977903u64 => Some(("m_ePlayerWantsRematch", "085")), + 11907754776994523096u64 => Some(("m_ePlayerWantsRematch", "086")), + 11906628877087424257u64 => Some(("m_ePlayerWantsRematch", "087")), + 11898184627784466802u64 => Some(("m_ePlayerWantsRematch", "088")), + 11897058727877367963u64 => Some(("m_ePlayerWantsRematch", "089")), + 11251028576263062517u64 => Some(("m_ePlayerWantsRematch", "090")), + 11251591526216517324u64 => Some(("m_ePlayerWantsRematch", "091")), + 11252717426123616163u64 => Some(("m_ePlayerWantsRematch", "092")), + 11253843326030715002u64 => Some(("m_ePlayerWantsRematch", "093")), + 11254969225937813841u64 => Some(("m_ePlayerWantsRematch", "094")), + 11255532175891268648u64 => Some(("m_ePlayerWantsRematch", "095")), + 11256658075798367487u64 => Some(("m_ePlayerWantsRematch", "096")), + 11257783975705466326u64 => Some(("m_ePlayerWantsRematch", "097")), + 11243147276913559869u64 => Some(("m_ePlayerWantsRematch", "098")), + 11244273176820658708u64 => Some(("m_ePlayerWantsRematch", "099")), + 13831181008532830227u64 => Some(("m_ePlayerWantsRematch", "100")), + 13832306908439929066u64 => Some(("m_ePlayerWantsRematch", "101")), 782749081570798059u64 => Some(("m_eWinningMethod", "000")), 783312031524252866u64 => Some(("m_eWinningMethod", "001")), 780497281756600381u64 => Some(("m_eWinningMethod", "002")), @@ -3403,6 +3744,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 16937455892332958891u64 => Some(("m_flConnectTime", "063")), 16940270642100611376u64 => Some(("m_flConnectTime", "064")), 16939707692147156569u64 => Some(("m_flConnectTime", "065")), + 16942522441914809054u64 => Some(("m_flConnectTime", "066")), + 16941396542007710215u64 => Some(("m_flConnectTime", "067")), + 16944211291775362700u64 => Some(("m_flConnectTime", "068")), + 16943648341821907893u64 => Some(("m_flConnectTime", "069")), + 16312254888999319679u64 => Some(("m_flConnectTime", "070")), + 16313380788906418518u64 => Some(("m_flConnectTime", "071")), + 16310566039138766033u64 => Some(("m_flConnectTime", "072")), + 16311691939045864872u64 => Some(("m_flConnectTime", "073")), + 16308877189278212387u64 => Some(("m_flConnectTime", "074")), + 16309440139231667194u64 => Some(("m_flConnectTime", "075")), + 16306625389464014709u64 => Some(("m_flConnectTime", "076")), + 16307751289371113548u64 => Some(("m_flConnectTime", "077")), + 16304936539603461063u64 => Some(("m_flConnectTime", "078")), + 16306062439510559902u64 => Some(("m_flConnectTime", "079")), + 13191879371866617814u64 => Some(("m_flConnectTime", "080")), + 13190753471959518975u64 => Some(("m_flConnectTime", "081")), + 13189627572052420136u64 => Some(("m_flConnectTime", "082")), + 13189064622098965329u64 => Some(("m_flConnectTime", "083")), + 13187938722191866490u64 => Some(("m_flConnectTime", "084")), + 13186812822284767651u64 => Some(("m_flConnectTime", "085")), + 13185686922377668812u64 => Some(("m_flConnectTime", "086")), + 13185123972424214005u64 => Some(("m_flConnectTime", "087")), + 13183998072517115166u64 => Some(("m_flConnectTime", "088")), + 13182872172610016327u64 => Some(("m_flConnectTime", "089")), + 12536842020995710881u64 => Some(("m_flConnectTime", "090")), + 12537967920902809720u64 => Some(("m_flConnectTime", "091")), + 12539093820809908559u64 => Some(("m_flConnectTime", "092")), + 12539656770763363366u64 => Some(("m_flConnectTime", "093")), + 12532901371320959557u64 => Some(("m_flConnectTime", "094")), + 12534027271228058396u64 => Some(("m_flConnectTime", "095")), + 12535153171135157235u64 => Some(("m_flConnectTime", "096")), + 12535716121088612042u64 => Some(("m_flConnectTime", "097")), + 12529523671599852265u64 => Some(("m_flConnectTime", "098")), + 12530086621553307072u64 => Some(("m_flConnectTime", "099")), + 5100267601042822031u64 => Some(("m_flConnectTime", "100")), + 5100830550996276838u64 => Some(("m_flConnectTime", "101")), 183116234090870877u64 => Some(("m_flEncodedController", "000")), 184242133997969716u64 => Some(("m_flEncodedController", "001")), 184805083951424523u64 => Some(("m_flEncodedController", "002")), @@ -3549,6 +3926,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 14956042161023932836u64 => Some(("m_flNextRespawnTime", "063")), 14960545760652138967u64 => Some(("m_flNextRespawnTime", "064")), 14961671660559237806u64 => Some(("m_flNextRespawnTime", "065")), + 14958856910791585321u64 => Some(("m_flNextRespawnTime", "066")), + 14959419860745040128u64 => Some(("m_flNextRespawnTime", "067")), + 14964486410326890291u64 => Some(("m_flNextRespawnTime", "068")), + 14965612310233989130u64 => Some(("m_flNextRespawnTime", "069")), + 15611642461848294576u64 => Some(("m_flNextRespawnTime", "070")), + 15610516561941195737u64 => Some(("m_flNextRespawnTime", "071")), + 15613331311708848222u64 => Some(("m_flNextRespawnTime", "072")), + 15612768361755393415u64 => Some(("m_flNextRespawnTime", "073")), + 15607701812173543252u64 => Some(("m_flNextRespawnTime", "074")), + 15606575912266444413u64 => Some(("m_flNextRespawnTime", "075")), + 15609953611987740930u64 => Some(("m_flNextRespawnTime", "076")), + 15608827712080642091u64 => Some(("m_flNextRespawnTime", "077")), + 15619523761197797224u64 => Some(("m_flNextRespawnTime", "078")), + 15618397861290698385u64 => Some(("m_flNextRespawnTime", "079")), + 16266116862765557477u64 => Some(("m_flNextRespawnTime", "080")), + 16267242762672656316u64 => Some(("m_flNextRespawnTime", "081")), + 16268368662579755155u64 => Some(("m_flNextRespawnTime", "082")), + 16269494562486853994u64 => Some(("m_flNextRespawnTime", "083")), + 16270057512440308801u64 => Some(("m_flNextRespawnTime", "084")), + 16271183412347407640u64 => Some(("m_flNextRespawnTime", "085")), + 16272309312254506479u64 => Some(("m_flNextRespawnTime", "086")), + 16272872262207961286u64 => Some(("m_flNextRespawnTime", "087")), + 16258798513369698861u64 => Some(("m_flNextRespawnTime", "088")), + 16259924413276797700u64 => Some(("m_flNextRespawnTime", "089")), + 16921154213636464410u64 => Some(("m_flNextRespawnTime", "090")), + 16920028313729365571u64 => Some(("m_flNextRespawnTime", "091")), + 16919465363775910764u64 => Some(("m_flNextRespawnTime", "092")), + 16918339463868811925u64 => Some(("m_flNextRespawnTime", "093")), + 16925094863311215734u64 => Some(("m_flNextRespawnTime", "094")), + 16923968963404116895u64 => Some(("m_flNextRespawnTime", "095")), + 16922843063497018056u64 => Some(("m_flNextRespawnTime", "096")), + 16922280113543563249u64 => Some(("m_flNextRespawnTime", "097")), + 16913272914286961762u64 => Some(("m_flNextRespawnTime", "098")), + 16912709964333506955u64 => Some(("m_flNextRespawnTime", "099")), + 5910984559879801644u64 => Some(("m_flNextRespawnTime", "100")), + 5910421609926346837u64 => Some(("m_flNextRespawnTime", "101")), 17989308989741492557u64 => Some(("m_flNextRespawnWave", "000")), 17989871939694947364u64 => Some(("m_flNextRespawnWave", "001")), 17990997839602046203u64 => Some(("m_flNextRespawnWave", "002")), @@ -4119,6 +4532,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 8328434266866160391u64 => Some(("m_iAccountID", "063")), 8323930667237954260u64 => Some(("m_iAccountID", "064")), 8322804767330855421u64 => Some(("m_iAccountID", "065")), + 8325619517098507906u64 => Some(("m_iAccountID", "066")), + 8324493617191409067u64 => Some(("m_iAccountID", "067")), + 8335189666308564200u64 => Some(("m_iAccountID", "068")), + 8334063766401465361u64 => Some(("m_iAccountID", "069")), + 7672833966041798651u64 => Some(("m_iAccountID", "070")), + 7673959865948897490u64 => Some(("m_iAccountID", "071")), + 7671145116181245005u64 => Some(("m_iAccountID", "072")), + 7671708066134699812u64 => Some(("m_iAccountID", "073")), + 7676774615716549975u64 => Some(("m_iAccountID", "074")), + 7677337565670004782u64 => Some(("m_iAccountID", "075")), + 7674522815902352297u64 => Some(("m_iAccountID", "076")), + 7675648715809451136u64 => Some(("m_iAccountID", "077")), + 7680152315437657267u64 => Some(("m_iAccountID", "078")), + 7681278215344756106u64 => Some(("m_iAccountID", "079")), + 9637383068700875418u64 => Some(("m_iAccountID", "080")), + 9636257168793776579u64 => Some(("m_iAccountID", "081")), + 9635131268886677740u64 => Some(("m_iAccountID", "082")), + 9634005368979578901u64 => Some(("m_iAccountID", "083")), + 9640760768421982710u64 => Some(("m_iAccountID", "084")), + 9640197818468527903u64 => Some(("m_iAccountID", "085")), + 9639071918561429064u64 => Some(("m_iAccountID", "086")), + 9637946018654330225u64 => Some(("m_iAccountID", "087")), + 9629501769351372770u64 => Some(("m_iAccountID", "088")), + 9628375869444273931u64 => Some(("m_iAccountID", "089")), + 8982345717829968485u64 => Some(("m_iAccountID", "090")), + 8983471617737067324u64 => Some(("m_iAccountID", "091")), + 8984034567690522131u64 => Some(("m_iAccountID", "092")), + 8985160467597620970u64 => Some(("m_iAccountID", "093")), + 8986286367504719809u64 => Some(("m_iAccountID", "094")), + 8986849317458174616u64 => Some(("m_iAccountID", "095")), + 8987975217365273455u64 => Some(("m_iAccountID", "096")), + 8989101117272372294u64 => Some(("m_iAccountID", "097")), + 8974464418480465837u64 => Some(("m_iAccountID", "098")), + 8975590318387564676u64 => Some(("m_iAccountID", "099")), + 11563061100053380227u64 => Some(("m_iAccountID", "100")), + 11563624050006835034u64 => Some(("m_iAccountID", "101")), 5129662864872315277u64 => Some(("m_iActiveDominations", "000")), 5130225814825770084u64 => Some(("m_iActiveDominations", "001")), 5131351714732868923u64 => Some(("m_iActiveDominations", "002")), @@ -4185,6 +4634,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 8903949832968825236u64 => Some(("m_iActiveDominations", "063")), 8909016382550675399u64 => Some(("m_iActiveDominations", "064")), 8910142282457774238u64 => Some(("m_iActiveDominations", "065")), + 8906764582736477721u64 => Some(("m_iActiveDominations", "066")), + 8907890482643576560u64 => Some(("m_iActiveDominations", "067")), + 8912957032225426723u64 => Some(("m_iActiveDominations", "068")), + 8913519982178881530u64 => Some(("m_iActiveDominations", "069")), + 9560113083746831008u64 => Some(("m_iActiveDominations", "070")), + 9558987183839732169u64 => Some(("m_iActiveDominations", "071")), + 9561801933607384654u64 => Some(("m_iActiveDominations", "072")), + 9560676033700285815u64 => Some(("m_iActiveDominations", "073")), + 9556172434072079684u64 => Some(("m_iActiveDominations", "074")), + 9555046534164980845u64 => Some(("m_iActiveDominations", "075")), + 9557861283932633330u64 => Some(("m_iActiveDominations", "076")), + 9557298333979178523u64 => Some(("m_iActiveDominations", "077")), + 9567431433142689624u64 => Some(("m_iActiveDominations", "078")), + 9566868483189234817u64 => Some(("m_iActiveDominations", "079")), + 10214587484664093909u64 => Some(("m_iActiveDominations", "080")), + 10215713384571192748u64 => Some(("m_iActiveDominations", "081")), + 10216839284478291587u64 => Some(("m_iActiveDominations", "082")), + 10217402234431746394u64 => Some(("m_iActiveDominations", "083")), + 10218528134338845233u64 => Some(("m_iActiveDominations", "084")), + 10219654034245944072u64 => Some(("m_iActiveDominations", "085")), + 10220216984199398879u64 => Some(("m_iActiveDominations", "086")), + 10221342884106497718u64 => Some(("m_iActiveDominations", "087")), + 10207269135268235293u64 => Some(("m_iActiveDominations", "088")), + 10207832085221690100u64 => Some(("m_iActiveDominations", "089")), + 10746901745664822666u64 => Some(("m_iActiveDominations", "090")), + 10745775845757723827u64 => Some(("m_iActiveDominations", "091")), + 10745212895804269020u64 => Some(("m_iActiveDominations", "092")), + 10744086995897170181u64 => Some(("m_iActiveDominations", "093")), + 10750842395339573990u64 => Some(("m_iActiveDominations", "094")), + 10749716495432475151u64 => Some(("m_iActiveDominations", "095")), + 10749153545479020344u64 => Some(("m_iActiveDominations", "096")), + 10748027645571921505u64 => Some(("m_iActiveDominations", "097")), + 10739583396268964050u64 => Some(("m_iActiveDominations", "098")), + 10738457496361865211u64 => Some(("m_iActiveDominations", "099")), + 18184039115571355548u64 => Some(("m_iActiveDominations", "100")), + 18182913215664256709u64 => Some(("m_iActiveDominations", "101")), 13476001077720594718u64 => Some(("m_iAmmo", "000")), 13474875177813495879u64 => Some(("m_iAmmo", "001")), 13474312227860041072u64 => Some(("m_iAmmo", "002")), @@ -4383,6 +4868,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 2401677946872188733u64 => Some(("m_iBonusPoints", "063")), 2408433346314592542u64 => Some(("m_iBonusPoints", "064")), 2407307446407493703u64 => Some(("m_iBonusPoints", "065")), + 2406744496454038896u64 => Some(("m_iBonusPoints", "066")), + 2405618596546940057u64 => Some(("m_iBonusPoints", "067")), + 2412373995989343866u64 => Some(("m_iBonusPoints", "068")), + 2411248096082245027u64 => Some(("m_iBonusPoints", "069")), + 1750018295722578317u64 => Some(("m_iBonusPoints", "070")), + 1750581245676033124u64 => Some(("m_iBonusPoints", "071")), + 1751707145583131963u64 => Some(("m_iBonusPoints", "072")), + 1752833045490230802u64 => Some(("m_iBonusPoints", "073")), + 1753958945397329641u64 => Some(("m_iBonusPoints", "074")), + 1754521895350784448u64 => Some(("m_iBonusPoints", "075")), + 1755647795257883287u64 => Some(("m_iBonusPoints", "076")), + 1756773695164982126u64 => Some(("m_iBonusPoints", "077")), + 1757336645118436933u64 => Some(("m_iBonusPoints", "078")), + 1758462545025535772u64 => Some(("m_iBonusPoints", "079")), + 11143232994472338536u64 => Some(("m_iBonusPoints", "080")), + 11142107094565239697u64 => Some(("m_iBonusPoints", "081")), + 11144921844332892182u64 => Some(("m_iBonusPoints", "082")), + 11143795944425793343u64 => Some(("m_iBonusPoints", "083")), + 11139292344797587212u64 => Some(("m_iBonusPoints", "084")), + 11138166444890488373u64 => Some(("m_iBonusPoints", "085")), + 11140981194658140858u64 => Some(("m_iBonusPoints", "086")), + 11139855294751042019u64 => Some(("m_iBonusPoints", "087")), + 11135351695122835888u64 => Some(("m_iBonusPoints", "088")), + 11134225795215737049u64 => Some(("m_iBonusPoints", "089")), + 10488195643601431603u64 => Some(("m_iBonusPoints", "090")), + 10489321543508530442u64 => Some(("m_iBonusPoints", "091")), + 10486506793740877957u64 => Some(("m_iBonusPoints", "092")), + 10487069743694332764u64 => Some(("m_iBonusPoints", "093")), + 10492136293276182927u64 => Some(("m_iBonusPoints", "094")), + 10492699243229637734u64 => Some(("m_iBonusPoints", "095")), + 10489884493461985249u64 => Some(("m_iBonusPoints", "096")), + 10491010393369084088u64 => Some(("m_iBonusPoints", "097")), + 10480314344251928955u64 => Some(("m_iBonusPoints", "098")), + 10481440244159027794u64 => Some(("m_iBonusPoints", "099")), + 11603235635098327921u64 => Some(("m_iBonusPoints", "100")), + 11604361535005426760u64 => Some(("m_iBonusPoints", "101")), 1043458025088801541u64 => Some(("m_iBuybackCredits", "000")), 1044583924995900380u64 => Some(("m_iBuybackCredits", "001")), 1045146874949355187u64 => Some(("m_iBuybackCredits", "002")), @@ -4449,6 +4970,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 4818307943138955532u64 => Some(("m_iBuybackCredits", "063")), 4822811542767161663u64 => Some(("m_iBuybackCredits", "064")), 4823937442674260502u64 => Some(("m_iBuybackCredits", "065")), + 4821122692906608017u64 => Some(("m_iBuybackCredits", "066")), + 4822248592813706856u64 => Some(("m_iBuybackCredits", "067")), + 4811552543696551723u64 => Some(("m_iBuybackCredits", "068")), + 4812678443603650562u64 => Some(("m_iBuybackCredits", "069")), + 5473908243963317272u64 => Some(("m_iBuybackCredits", "070")), + 5472782344056218433u64 => Some(("m_iBuybackCredits", "071")), + 5475597093823870918u64 => Some(("m_iBuybackCredits", "072")), + 5475034143870416111u64 => Some(("m_iBuybackCredits", "073")), + 5469967594288565948u64 => Some(("m_iBuybackCredits", "074")), + 5468841694381467109u64 => Some(("m_iBuybackCredits", "075")), + 5472219394102763626u64 => Some(("m_iBuybackCredits", "076")), + 5471093494195664787u64 => Some(("m_iBuybackCredits", "077")), + 5466026944613814624u64 => Some(("m_iBuybackCredits", "078")), + 5465463994660359817u64 => Some(("m_iBuybackCredits", "079")), + 14527437618923108669u64 => Some(("m_iBuybackCredits", "080")), + 14528563518830207508u64 => Some(("m_iBuybackCredits", "081")), + 14529689418737306347u64 => Some(("m_iBuybackCredits", "082")), + 14530252368690761154u64 => Some(("m_iBuybackCredits", "083")), + 14531378268597859993u64 => Some(("m_iBuybackCredits", "084")), + 14532504168504958832u64 => Some(("m_iBuybackCredits", "085")), + 14533067118458413639u64 => Some(("m_iBuybackCredits", "086")), + 14534193018365512478u64 => Some(("m_iBuybackCredits", "087")), + 14535318918272611317u64 => Some(("m_iBuybackCredits", "088")), + 14535881868226066124u64 => Some(("m_iBuybackCredits", "089")), + 15182474969794015602u64 => Some(("m_iBuybackCredits", "090")), + 15181349069886916763u64 => Some(("m_iBuybackCredits", "091")), + 15180223169979817924u64 => Some(("m_iBuybackCredits", "092")), + 15179660220026363117u64 => Some(("m_iBuybackCredits", "093")), + 15186415619468766926u64 => Some(("m_iBuybackCredits", "094")), + 15185289719561668087u64 => Some(("m_iBuybackCredits", "095")), + 15184163819654569248u64 => Some(("m_iBuybackCredits", "096")), + 15183037919747470409u64 => Some(("m_iBuybackCredits", "097")), + 15189793319189874218u64 => Some(("m_iBuybackCredits", "098")), + 15189230369236419411u64 => Some(("m_iBuybackCredits", "099")), + 14189595118213653428u64 => Some(("m_iBuybackCredits", "100")), + 14188469218306554589u64 => Some(("m_iBuybackCredits", "101")), 8300202237202737602u64 => Some(("m_iCPGroup", "000")), 8299639287249282795u64 => Some(("m_iCPGroup", "001")), 8298513387342183956u64 => Some(("m_iCPGroup", "002")), @@ -4533,6 +5090,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 15046058283234714071u64 => Some(("m_iChargeLevel", "063")), 15041554683606507940u64 => Some(("m_iChargeLevel", "064")), 15040428783699409101u64 => Some(("m_iChargeLevel", "065")), + 15043243533467061586u64 => Some(("m_iChargeLevel", "066")), + 15042117633559962747u64 => Some(("m_iChargeLevel", "067")), + 15052813682677117880u64 => Some(("m_iChargeLevel", "068")), + 15051687782770019041u64 => Some(("m_iChargeLevel", "069")), + 14512618122326886475u64 => Some(("m_iChargeLevel", "070")), + 14513744022233985314u64 => Some(("m_iChargeLevel", "071")), + 14510929272466332829u64 => Some(("m_iChargeLevel", "072")), + 14512055172373431668u64 => Some(("m_iChargeLevel", "073")), + 14516558772001637799u64 => Some(("m_iChargeLevel", "074")), + 14517684671908736638u64 => Some(("m_iChargeLevel", "075")), + 14514869922141084153u64 => Some(("m_iChargeLevel", "076")), + 14515995822048182992u64 => Some(("m_iChargeLevel", "077")), + 14520499421676389123u64 => Some(("m_iChargeLevel", "078")), + 14521625321583487962u64 => Some(("m_iChargeLevel", "079")), + 16355007085069429098u64 => Some(("m_iChargeLevel", "080")), + 16353881185162330259u64 => Some(("m_iChargeLevel", "081")), + 16352755285255231420u64 => Some(("m_iChargeLevel", "082")), + 16351629385348132581u64 => Some(("m_iChargeLevel", "083")), + 16358384784790536390u64 => Some(("m_iChargeLevel", "084")), + 16357821834837081583u64 => Some(("m_iChargeLevel", "085")), + 16356695934929982744u64 => Some(("m_iChargeLevel", "086")), + 16355570035022883905u64 => Some(("m_iChargeLevel", "087")), + 16347125785719926450u64 => Some(("m_iChargeLevel", "088")), + 16345999885812827611u64 => Some(("m_iChargeLevel", "089")), + 15699969734198522165u64 => Some(("m_iChargeLevel", "090")), + 15701095634105621004u64 => Some(("m_iChargeLevel", "091")), + 15701658584059075811u64 => Some(("m_iChargeLevel", "092")), + 15702784483966174650u64 => Some(("m_iChargeLevel", "093")), + 15703910383873273489u64 => Some(("m_iChargeLevel", "094")), + 15705036283780372328u64 => Some(("m_iChargeLevel", "095")), + 15705599233733827135u64 => Some(("m_iChargeLevel", "096")), + 15706725133640925974u64 => Some(("m_iChargeLevel", "097")), + 15692088434849019517u64 => Some(("m_iChargeLevel", "098")), + 15693214334756118356u64 => Some(("m_iChargeLevel", "099")), + 18280685116421933907u64 => Some(("m_iChargeLevel", "100")), + 18281248066375388714u64 => Some(("m_iChargeLevel", "101")), 8607329174670123259u64 => Some(("m_iConnectionState", "000")), 8608455074577222098u64 => Some(("m_iConnectionState", "001")), 8605640324809569613u64 => Some(("m_iConnectionState", "002")), @@ -4599,6 +5192,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 4956891196350701090u64 => Some(("m_iConnectionState", "063")), 4958017096257799929u64 => Some(("m_iConnectionState", "064")), 4959142996164898768u64 => Some(("m_iConnectionState", "065")), + 4959705946118353575u64 => Some(("m_iConnectionState", "066")), + 4960831846025452414u64 => Some(("m_iConnectionState", "067")), + 4961957745932551253u64 => Some(("m_iConnectionState", "068")), + 4962520695886006060u64 => Some(("m_iConnectionState", "069")), + 5486390707583777362u64 => Some(("m_iConnectionState", "070")), + 5485264807676678523u64 => Some(("m_iConnectionState", "071")), + 5484701857723223716u64 => Some(("m_iConnectionState", "072")), + 5483575957816124877u64 => Some(("m_iConnectionState", "073")), + 5490331357258528686u64 => Some(("m_iConnectionState", "074")), + 5489205457351429847u64 => Some(("m_iConnectionState", "075")), + 5488079557444331008u64 => Some(("m_iConnectionState", "076")), + 5487516607490876201u64 => Some(("m_iConnectionState", "077")), + 5494272006933280010u64 => Some(("m_iConnectionState", "078")), + 5493146107026181171u64 => Some(("m_iConnectionState", "079")), + 13692253794461901891u64 => Some(("m_iConnectionState", "080")), + 13693379694369000730u64 => Some(("m_iConnectionState", "081")), + 13690564944601348245u64 => Some(("m_iConnectionState", "082")), + 13691690844508447084u64 => Some(("m_iConnectionState", "083")), + 13696194444136653215u64 => Some(("m_iConnectionState", "084")), + 13697320344043752054u64 => Some(("m_iConnectionState", "085")), + 13694505594276099569u64 => Some(("m_iConnectionState", "086")), + 13695068544229554376u64 => Some(("m_iConnectionState", "087")), + 13684935445066043275u64 => Some(("m_iConnectionState", "088")), + 13685498395019498082u64 => Some(("m_iConnectionState", "089")), + 14224568055462630648u64 => Some(("m_iConnectionState", "090")), + 14224005105509175841u64 => Some(("m_iConnectionState", "091")), + 14226819855276828326u64 => Some(("m_iConnectionState", "092")), + 14225693955369729487u64 => Some(("m_iConnectionState", "093")), + 14221190355741523356u64 => Some(("m_iConnectionState", "094")), + 14220064455834424517u64 => Some(("m_iConnectionState", "095")), + 14222879205602077002u64 => Some(("m_iConnectionState", "096")), + 14221753305694978163u64 => Some(("m_iConnectionState", "097")), + 14217249706066772032u64 => Some(("m_iConnectionState", "098")), + 14216123806159673193u64 => Some(("m_iConnectionState", "099")), + 3214961351659611914u64 => Some(("m_iConnectionState", "100")), + 3213835451752513075u64 => Some(("m_iConnectionState", "101")), 17224457448546282670u64 => Some(("m_iControlPointParents", "000")), 17223331548639183831u64 => Some(("m_iControlPointParents", "001")), 17222205648732084992u64 => Some(("m_iControlPointParents", "002")), @@ -4728,6 +5357,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 11799532678859149475u64 => Some(("m_iCurrencyCollected", "063")), 11802347428626801960u64 => Some(("m_iCurrencyCollected", "064")), 11801784478673347153u64 => Some(("m_iCurrencyCollected", "065")), + 11804599228440999638u64 => Some(("m_iCurrencyCollected", "066")), + 11803473328533900799u64 => Some(("m_iCurrencyCollected", "067")), + 11791088429556192020u64 => Some(("m_iCurrencyCollected", "068")), + 11789962529649093181u64 => Some(("m_iCurrencyCollected", "069")), + 11143932378034787735u64 => Some(("m_iCurrencyCollected", "070")), + 11145058277941886574u64 => Some(("m_iCurrencyCollected", "071")), + 11142243528174234089u64 => Some(("m_iCurrencyCollected", "072")), + 11142806478127688896u64 => Some(("m_iCurrencyCollected", "073")), + 11139991728360036411u64 => Some(("m_iCurrencyCollected", "074")), + 11141117628267135250u64 => Some(("m_iCurrencyCollected", "075")), + 11138302878499482765u64 => Some(("m_iCurrencyCollected", "076")), + 11138865828452937572u64 => Some(("m_iCurrencyCollected", "077")), + 11151813677384290383u64 => Some(("m_iCurrencyCollected", "078")), + 11152376627337745190u64 => Some(("m_iCurrencyCollected", "079")), + 18040283713124742430u64 => Some(("m_iCurrencyCollected", "080")), + 18039157813217643591u64 => Some(("m_iCurrencyCollected", "081")), + 18038594863264188784u64 => Some(("m_iCurrencyCollected", "082")), + 18037468963357089945u64 => Some(("m_iCurrencyCollected", "083")), + 18036343063449991106u64 => Some(("m_iCurrencyCollected", "084")), + 18035780113496536299u64 => Some(("m_iCurrencyCollected", "085")), + 18034654213589437460u64 => Some(("m_iCurrencyCollected", "086")), + 18033528313682338621u64 => Some(("m_iCurrencyCollected", "087")), + 18048165012474245078u64 => Some(("m_iCurrencyCollected", "088")), + 18047039112567146239u64 => Some(("m_iCurrencyCollected", "089")), + 17385809312207479529u64 => Some(("m_iCurrencyCollected", "090")), + 17386372262160934336u64 => Some(("m_iCurrencyCollected", "091")), + 17387498162068033175u64 => Some(("m_iCurrencyCollected", "092")), + 17388624061975132014u64 => Some(("m_iCurrencyCollected", "093")), + 17381868662532728205u64 => Some(("m_iCurrencyCollected", "094")), + 17382431612486183012u64 => Some(("m_iCurrencyCollected", "095")), + 17383557512393281851u64 => Some(("m_iCurrencyCollected", "096")), + 17384683412300380690u64 => Some(("m_iCurrencyCollected", "097")), + 17393127661603338145u64 => Some(("m_iCurrencyCollected", "098")), + 17394253561510436984u64 => Some(("m_iCurrencyCollected", "099")), + 54105229994824231u64 => Some(("m_iCurrencyCollected", "100")), + 54668179948279038u64 => Some(("m_iCurrencyCollected", "101")), 738050199344743551u64 => Some(("m_iDamage", "000")), 739176099251842390u64 => Some(("m_iDamage", "001")), 736361349484189905u64 => Some(("m_iDamage", "002")), @@ -4794,6 +5459,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 2019977403409843342u64 => Some(("m_iDamage", "063")), 2013222003967439533u64 => Some(("m_iDamage", "064")), 2014347903874538372u64 => Some(("m_iDamage", "065")), + 2015473803781637211u64 => Some(("m_iDamage", "066")), + 2016036753735092018u64 => Some(("m_iDamage", "067")), + 2025043952991693505u64 => Some(("m_iDamage", "068")), + 2025606902945148312u64 => Some(("m_iDamage", "069")), + 2672200004513097790u64 => Some(("m_iDamage", "070")), + 2671074104605998951u64 => Some(("m_iDamage", "071")), + 2669948204698900112u64 => Some(("m_iDamage", "072")), + 2669385254745445305u64 => Some(("m_iDamage", "073")), + 2668259354838346466u64 => Some(("m_iDamage", "074")), + 2667133454931247627u64 => Some(("m_iDamage", "075")), + 2666570504977792820u64 => Some(("m_iDamage", "076")), + 2665444605070693981u64 => Some(("m_iDamage", "077")), + 2679518353908956406u64 => Some(("m_iDamage", "078")), + 2678955403955501599u64 => Some(("m_iDamage", "079")), + 14222592743132694711u64 => Some(("m_iDamage", "080")), + 14223155693086149518u64 => Some(("m_iDamage", "081")), + 14220340943318497033u64 => Some(("m_iDamage", "082")), + 14221466843225595872u64 => Some(("m_iDamage", "083")), + 14218652093457943387u64 => Some(("m_iDamage", "084")), + 14219215043411398194u64 => Some(("m_iDamage", "085")), + 14216400293643745709u64 => Some(("m_iDamage", "086")), + 14217526193550844548u64 => Some(("m_iDamage", "087")), + 14229911092528553327u64 => Some(("m_iDamage", "088")), + 14231036992435652166u64 => Some(("m_iDamage", "089")), + 14877067144049957612u64 => Some(("m_iDamage", "090")), + 14875941244142858773u64 => Some(("m_iDamage", "091")), + 14879318943864155290u64 => Some(("m_iDamage", "092")), + 14878193043957056451u64 => Some(("m_iDamage", "093")), + 14881007793724708936u64 => Some(("m_iDamage", "094")), + 14879881893817610097u64 => Some(("m_iDamage", "095")), + 14882696643585262582u64 => Some(("m_iDamage", "096")), + 14882133693631807775u64 => Some(("m_iDamage", "097")), + 14869748794654098996u64 => Some(("m_iDamage", "098")), + 14868622894747000157u64 => Some(("m_iDamage", "099")), + 13762027152553061294u64 => Some(("m_iDamage", "100")), + 13760901252645962455u64 => Some(("m_iDamage", "101")), 5265606253200956474u64 => Some(("m_iDamageAssist", "000")), 5264480353293857635u64 => Some(("m_iDamageAssist", "001")), 5263354453386758796u64 => Some(("m_iDamageAssist", "002")), @@ -4860,6 +5561,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 9042145021111664111u64 => Some(("m_iDamageAssist", "063")), 9037078471529813948u64 => Some(("m_iDamageAssist", "064")), 9035952571622715109u64 => Some(("m_iDamageAssist", "065")), + 9039330271344011626u64 => Some(("m_iDamageAssist", "066")), + 9038204371436912787u64 => Some(("m_iDamageAssist", "067")), + 9033137821855062624u64 => Some(("m_iDamageAssist", "068")), + 9032574871901607817u64 => Some(("m_iDamageAssist", "069")), + 8385981770333658339u64 => Some(("m_iDamageAssist", "070")), + 8387107670240757178u64 => Some(("m_iDamageAssist", "071")), + 8384292920473104693u64 => Some(("m_iDamageAssist", "072")), + 8385418820380203532u64 => Some(("m_iDamageAssist", "073")), + 8389922420008409663u64 => Some(("m_iDamageAssist", "074")), + 8391048319915508502u64 => Some(("m_iDamageAssist", "075")), + 8388233570147856017u64 => Some(("m_iDamageAssist", "076")), + 8389359470054954856u64 => Some(("m_iDamageAssist", "077")), + 8378663420937799723u64 => Some(("m_iDamageAssist", "078")), + 8379789320844898562u64 => Some(("m_iDamageAssist", "079")), + 302841773325711986u64 => Some(("m_iDamageAssist", "080")), + 301715873418613147u64 => Some(("m_iDamageAssist", "081")), + 300589973511514308u64 => Some(("m_iDamageAssist", "082")), + 300027023558059501u64 => Some(("m_iDamageAssist", "083")), + 306782423000463310u64 => Some(("m_iDamageAssist", "084")), + 305656523093364471u64 => Some(("m_iDamageAssist", "085")), + 304530623186265632u64 => Some(("m_iDamageAssist", "086")), + 303404723279166793u64 => Some(("m_iDamageAssist", "087")), + 310160122721570602u64 => Some(("m_iDamageAssist", "088")), + 309597172768115795u64 => Some(("m_iDamageAssist", "089")), + 18094548496164356669u64 => Some(("m_iDamageAssist", "090")), + 18095674396071455508u64 => Some(("m_iDamageAssist", "091")), + 18096800295978554347u64 => Some(("m_iDamageAssist", "092")), + 18097363245932009154u64 => Some(("m_iDamageAssist", "093")), + 18098489145839107993u64 => Some(("m_iDamageAssist", "094")), + 18099615045746206832u64 => Some(("m_iDamageAssist", "095")), + 18100177995699661639u64 => Some(("m_iDamageAssist", "096")), + 18101303895606760478u64 => Some(("m_iDamageAssist", "097")), + 18102429795513859317u64 => Some(("m_iDamageAssist", "098")), + 18102992745467314124u64 => Some(("m_iDamageAssist", "099")), + 10657974076211467819u64 => Some(("m_iDamageAssist", "100")), + 10659099976118566658u64 => Some(("m_iDamageAssist", "101")), 4876636949668753929u64 => Some(("m_iDamageBlocked", "000")), 4877762849575852768u64 => Some(("m_iDamageBlocked", "001")), 4878888749482951607u64 => Some(("m_iDamageBlocked", "002")), @@ -4926,6 +5663,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 3596961545417851816u64 => Some(("m_iDamageBlocked", "063")), 3594146795650199331u64 => Some(("m_iDamageBlocked", "064")), 3594709745603654138u64 => Some(("m_iDamageBlocked", "065")), + 3591894995836001653u64 => Some(("m_iDamageBlocked", "066")), + 3593020895743100492u64 => Some(("m_iDamageBlocked", "067")), + 3590206145975448007u64 => Some(("m_iDamageBlocked", "068")), + 3591332045882546846u64 => Some(("m_iDamageBlocked", "069")), + 4222162548751491028u64 => Some(("m_iDamageBlocked", "070")), + 4221036648844392189u64 => Some(("m_iDamageBlocked", "071")), + 4223851398612044674u64 => Some(("m_iDamageBlocked", "072")), + 4222725498704945835u64 => Some(("m_iDamageBlocked", "073")), + 4225540248472598320u64 => Some(("m_iDamageBlocked", "074")), + 4224977298519143513u64 => Some(("m_iDamageBlocked", "075")), + 4227792048286795998u64 => Some(("m_iDamageBlocked", "076")), + 4226666148379697159u64 => Some(("m_iDamageBlocked", "077")), + 4229480898147349644u64 => Some(("m_iDamageBlocked", "078")), + 4228917948193894837u64 => Some(("m_iDamageBlocked", "079")), + 18268855701077249441u64 => Some(("m_iDamageBlocked", "080")), + 18269981600984348280u64 => Some(("m_iDamageBlocked", "081")), + 18271107500891447119u64 => Some(("m_iDamageBlocked", "082")), + 18271670450844901926u64 => Some(("m_iDamageBlocked", "083")), + 18264915051402498117u64 => Some(("m_iDamageBlocked", "084")), + 18266040951309596956u64 => Some(("m_iDamageBlocked", "085")), + 18267166851216695795u64 => Some(("m_iDamageBlocked", "086")), + 18267729801170150602u64 => Some(("m_iDamageBlocked", "087")), + 18261537351681390825u64 => Some(("m_iDamageBlocked", "088")), + 18262100301634845632u64 => Some(("m_iDamageBlocked", "089")), + 477148978238604758u64 => Some(("m_iDamageBlocked", "090")), + 476023078331505919u64 => Some(("m_iDamageBlocked", "091")), + 474897178424407080u64 => Some(("m_iDamageBlocked", "092")), + 474334228470952273u64 => Some(("m_iDamageBlocked", "093")), + 473208328563853434u64 => Some(("m_iDamageBlocked", "094")), + 472082428656754595u64 => Some(("m_iDamageBlocked", "095")), + 470956528749655756u64 => Some(("m_iDamageBlocked", "096")), + 470393578796200949u64 => Some(("m_iDamageBlocked", "097")), + 469267678889102110u64 => Some(("m_iDamageBlocked", "098")), + 468141778982003271u64 => Some(("m_iDamageBlocked", "099")), + 17931013200367794200u64 => Some(("m_iDamageBlocked", "100")), + 17929887300460695361u64 => Some(("m_iDamageBlocked", "101")), 11332052873933487060u64 => Some(("m_iDamageBoss", "000")), 11330926974026388221u64 => Some(("m_iDamageBoss", "001")), 11333741723794040706u64 => Some(("m_iDamageBoss", "002")), @@ -4992,6 +5765,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 12638749875954004409u64 => Some(("m_iDamageBoss", "063")), 12637623976046905570u64 => Some(("m_iDamageBoss", "064")), 12636498076139806731u64 => Some(("m_iDamageBoss", "065")), + 12635935126186351924u64 => Some(("m_iDamageBoss", "066")), + 12634809226279253085u64 => Some(("m_iDamageBoss", "067")), + 12648882975117515510u64 => Some(("m_iDamageBoss", "068")), + 12648320025164060703u64 => Some(("m_iDamageBoss", "069")), + 11986527274850749961u64 => Some(("m_iDamageBoss", "070")), + 11987653174757848800u64 => Some(("m_iDamageBoss", "071")), + 11988779074664947639u64 => Some(("m_iDamageBoss", "072")), + 11989342024618402446u64 => Some(("m_iDamageBoss", "073")), + 11982586625175998637u64 => Some(("m_iDamageBoss", "074")), + 11983712525083097476u64 => Some(("m_iDamageBoss", "075")), + 11984838424990196315u64 => Some(("m_iDamageBoss", "076")), + 11985401374943651122u64 => Some(("m_iDamageBoss", "077")), + 11994408574200252609u64 => Some(("m_iDamageBoss", "078")), + 11994971524153707416u64 => Some(("m_iDamageBoss", "079")), + 6399687691548965100u64 => Some(("m_iDamageBoss", "080")), + 6398561791641866261u64 => Some(("m_iDamageBoss", "081")), + 6401939491363162778u64 => Some(("m_iDamageBoss", "082")), + 6400813591456063939u64 => Some(("m_iDamageBoss", "083")), + 6403628341223716424u64 => Some(("m_iDamageBoss", "084")), + 6402502441316617585u64 => Some(("m_iDamageBoss", "085")), + 6405317191084270070u64 => Some(("m_iDamageBoss", "086")), + 6404754241130815263u64 => Some(("m_iDamageBoss", "087")), + 6392369342153106484u64 => Some(("m_iDamageBoss", "088")), + 6391243442246007645u64 => Some(("m_iDamageBoss", "089")), + 5745213290631702199u64 => Some(("m_iDamageBoss", "090")), + 5745776240585157006u64 => Some(("m_iDamageBoss", "091")), + 5742961490817504521u64 => Some(("m_iDamageBoss", "092")), + 5744087390724603360u64 => Some(("m_iDamageBoss", "093")), + 5741272640956950875u64 => Some(("m_iDamageBoss", "094")), + 5741835590910405682u64 => Some(("m_iDamageBoss", "095")), + 5739020841142753197u64 => Some(("m_iDamageBoss", "096")), + 5740146741049852036u64 => Some(("m_iDamageBoss", "097")), + 5752531640027560815u64 => Some(("m_iDamageBoss", "098")), + 5753657539934659654u64 => Some(("m_iDamageBoss", "099")), + 16754819994434720933u64 => Some(("m_iDamageBoss", "100")), + 16755945894341819772u64 => Some(("m_iDamageBoss", "101")), 7989416791887913165u64 => Some(("m_iDeaths", "000")), 7990542691795012004u64 => Some(("m_iDeaths", "001")), 7991105641748466811u64 => Some(("m_iDeaths", "002")), @@ -5058,6 +5867,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 11764266709938067156u64 => Some(("m_iDeaths", "063")), 11768770309566273287u64 => Some(("m_iDeaths", "064")), 11769896209473372126u64 => Some(("m_iDeaths", "065")), + 11767081459705719641u64 => Some(("m_iDeaths", "066")), + 11767644409659174448u64 => Some(("m_iDeaths", "067")), + 11772710959241024611u64 => Some(("m_iDeaths", "068")), + 11773836859148123450u64 => Some(("m_iDeaths", "069")), + 12419867010762428896u64 => Some(("m_iDeaths", "070")), + 12418741110855330057u64 => Some(("m_iDeaths", "071")), + 12421555860622982542u64 => Some(("m_iDeaths", "072")), + 12420992910669527735u64 => Some(("m_iDeaths", "073")), + 12415926361087677572u64 => Some(("m_iDeaths", "074")), + 12414800461180578733u64 => Some(("m_iDeaths", "075")), + 12417615210948231218u64 => Some(("m_iDeaths", "076")), + 12417052260994776411u64 => Some(("m_iDeaths", "077")), + 12427185360158287512u64 => Some(("m_iDeaths", "078")), + 12426622410204832705u64 => Some(("m_iDeaths", "079")), + 13074341411679691797u64 => Some(("m_iDeaths", "080")), + 13075467311586790636u64 => Some(("m_iDeaths", "081")), + 13076593211493889475u64 => Some(("m_iDeaths", "082")), + 13077719111400988314u64 => Some(("m_iDeaths", "083")), + 13078282061354443121u64 => Some(("m_iDeaths", "084")), + 13079407961261541960u64 => Some(("m_iDeaths", "085")), + 13080533861168640799u64 => Some(("m_iDeaths", "086")), + 13081096811122095606u64 => Some(("m_iDeaths", "087")), + 13067023062283833181u64 => Some(("m_iDeaths", "088")), + 13068148962190932020u64 => Some(("m_iDeaths", "089")), + 13606655672680420554u64 => Some(("m_iDeaths", "090")), + 13606092722726965747u64 => Some(("m_iDeaths", "091")), + 13604966822819866908u64 => Some(("m_iDeaths", "092")), + 13603840922912768069u64 => Some(("m_iDeaths", "093")), + 13610596322355171878u64 => Some(("m_iDeaths", "094")), + 13610033372401717071u64 => Some(("m_iDeaths", "095")), + 13608907472494618232u64 => Some(("m_iDeaths", "096")), + 13607781572587519393u64 => Some(("m_iDeaths", "097")), + 13599337323284561938u64 => Some(("m_iDeaths", "098")), + 13598211423377463099u64 => Some(("m_iDeaths", "099")), + 2597048968877401820u64 => Some(("m_iDeaths", "100")), + 2595923068970302981u64 => Some(("m_iDeaths", "101")), 10340100854479969638u64 => Some(("m_iHealing", "000")), 10339537904526514831u64 => Some(("m_iHealing", "001")), 10338412004619415992u64 => Some(("m_iHealing", "002")), @@ -5124,6 +5969,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 9154438092469076819u64 => Some(("m_iHealing", "063")), 9157252842236729304u64 => Some(("m_iHealing", "064")), 9156126942329630465u64 => Some(("m_iHealing", "065")), + 9158941692097282950u64 => Some(("m_iHealing", "066")), + 9157815792190184111u64 => Some(("m_iHealing", "067")), + 9145430893212475332u64 => Some(("m_iHealing", "068")), + 9144867943259020525u64 => Some(("m_iHealing", "069")), + 8498274841691071047u64 => Some(("m_iHealing", "070")), + 8499400741598169886u64 => Some(("m_iHealing", "071")), + 8496585991830517401u64 => Some(("m_iHealing", "072")), + 8497711891737616240u64 => Some(("m_iHealing", "073")), + 8494897141969963755u64 => Some(("m_iHealing", "074")), + 8495460091923418562u64 => Some(("m_iHealing", "075")), + 8492645342155766077u64 => Some(("m_iHealing", "076")), + 8493771242062864916u64 => Some(("m_iHealing", "077")), + 8506156141040573695u64 => Some(("m_iHealing", "078")), + 8507282040947672534u64 => Some(("m_iHealing", "079")), + 15395189126734669774u64 => Some(("m_iHealing", "080")), + 15394063226827570935u64 => Some(("m_iHealing", "081")), + 15392937326920472096u64 => Some(("m_iHealing", "082")), + 15391811427013373257u64 => Some(("m_iHealing", "083")), + 15391248477059918450u64 => Some(("m_iHealing", "084")), + 15390122577152819611u64 => Some(("m_iHealing", "085")), + 15388996677245720772u64 => Some(("m_iHealing", "086")), + 15388433727292265965u64 => Some(("m_iHealing", "087")), + 15402507476130528390u64 => Some(("m_iHealing", "088")), + 15401381576223429551u64 => Some(("m_iHealing", "089")), + 14740151775863762841u64 => Some(("m_iHealing", "090")), + 14741277675770861680u64 => Some(("m_iHealing", "091")), + 14741840625724316487u64 => Some(("m_iHealing", "092")), + 14742966525631415326u64 => Some(("m_iHealing", "093")), + 14736211126189011517u64 => Some(("m_iHealing", "094")), + 14737337026096110356u64 => Some(("m_iHealing", "095")), + 14738462926003209195u64 => Some(("m_iHealing", "096")), + 14739025875956664002u64 => Some(("m_iHealing", "097")), + 14748033075213265489u64 => Some(("m_iHealing", "098")), + 14748596025166720296u64 => Some(("m_iHealing", "099")), + 3392183496566415319u64 => Some(("m_iHealing", "100")), + 3393309396473514158u64 => Some(("m_iHealing", "101")), 18154276802234441447u64 => Some(("m_iHealingAssist", "000")), 18154839752187896254u64 => Some(("m_iHealingAssist", "001")), 18152025002420243769u64 => Some(("m_iHealingAssist", "002")), @@ -5190,6 +6071,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 897136140210533974u64 => Some(("m_iHealingAssist", "063")), 890380740768130165u64 => Some(("m_iHealingAssist", "064")), 891506640675229004u64 => Some(("m_iHealingAssist", "065")), + 892632540582327843u64 => Some(("m_iHealingAssist", "066")), + 893195490535782650u64 => Some(("m_iHealingAssist", "067")), + 886440091093378841u64 => Some(("m_iHealingAssist", "068")), + 887565991000477680u64 => Some(("m_iHealingAssist", "069")), + 1549358741313788422u64 => Some(("m_iHealingAssist", "070")), + 1548232841406689583u64 => Some(("m_iHealingAssist", "071")), + 1547106941499590744u64 => Some(("m_iHealingAssist", "072")), + 1546543991546135937u64 => Some(("m_iHealingAssist", "073")), + 1545418091639037098u64 => Some(("m_iHealingAssist", "074")), + 1544292191731938259u64 => Some(("m_iHealingAssist", "075")), + 1543166291824839420u64 => Some(("m_iHealingAssist", "076")), + 1542603341871384613u64 => Some(("m_iHealingAssist", "077")), + 1541477441964285774u64 => Some(("m_iHealingAssist", "078")), + 1540351542057186935u64 => Some(("m_iHealingAssist", "079")), + 4669734258446490287u64 => Some(("m_iHealingAssist", "080")), + 4670860158353589126u64 => Some(("m_iHealingAssist", "081")), + 4668045408585936641u64 => Some(("m_iHealingAssist", "082")), + 4669171308493035480u64 => Some(("m_iHealingAssist", "083")), + 4666356558725382995u64 => Some(("m_iHealingAssist", "084")), + 4666919508678837802u64 => Some(("m_iHealingAssist", "085")), + 4664104758911185317u64 => Some(("m_iHealingAssist", "086")), + 4665230658818284156u64 => Some(("m_iHealingAssist", "087")), + 4662415909050631671u64 => Some(("m_iHealingAssist", "088")), + 4663541808957730510u64 => Some(("m_iHealingAssist", "089")), + 5294372311826674692u64 => Some(("m_iHealingAssist", "090")), + 5293246411919575853u64 => Some(("m_iHealingAssist", "091")), + 5296061161687228338u64 => Some(("m_iHealingAssist", "092")), + 5294935261780129499u64 => Some(("m_iHealingAssist", "093")), + 5297750011547781984u64 => Some(("m_iHealingAssist", "094")), + 5297187061594327177u64 => Some(("m_iHealingAssist", "095")), + 5300001811361979662u64 => Some(("m_iHealingAssist", "096")), + 5298875911454880823u64 => Some(("m_iHealingAssist", "097")), + 5301690661222533308u64 => Some(("m_iHealingAssist", "098")), + 5300564761315434469u64 => Some(("m_iHealingAssist", "099")), + 12761346029270286070u64 => Some(("m_iHealingAssist", "100")), + 12760783079316831263u64 => Some(("m_iHealingAssist", "101")), 3451799051839297398u64 => Some(("m_iHealth", "000")), 3450673151932198559u64 => Some(("m_iHealth", "001")), 3449547252025099720u64 => Some(("m_iHealth", "002")), @@ -5256,6 +6173,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 2142850250004582371u64 => Some(("m_iHealth", "063")), 2146227949725878888u64 => Some(("m_iHealth", "064")), 2145102049818780049u64 => Some(("m_iHealth", "065")), + 2147916799586432534u64 => Some(("m_iHealth", "066")), + 2146790899679333695u64 => Some(("m_iHealth", "067")), + 2134406000701624916u64 => Some(("m_iHealth", "068")), + 2133280100794526077u64 => Some(("m_iHealth", "069")), + 1487249949180220631u64 => Some(("m_iHealth", "070")), + 1488375849087319470u64 => Some(("m_iHealth", "071")), + 1485561099319666985u64 => Some(("m_iHealth", "072")), + 1486124049273121792u64 => Some(("m_iHealth", "073")), + 1483309299505469307u64 => Some(("m_iHealth", "074")), + 1484435199412568146u64 => Some(("m_iHealth", "075")), + 1481620449644915661u64 => Some(("m_iHealth", "076")), + 1482746349552014500u64 => Some(("m_iHealth", "077")), + 1495131248529723279u64 => Some(("m_iHealth", "078")), + 1495694198483178086u64 => Some(("m_iHealth", "079")), + 8383601284270175326u64 => Some(("m_iHealth", "080")), + 8383038334316720519u64 => Some(("m_iHealth", "081")), + 8381912434409621680u64 => Some(("m_iHealth", "082")), + 8380786534502522841u64 => Some(("m_iHealth", "083")), + 8380223584549068034u64 => Some(("m_iHealth", "084")), + 8379097684641969195u64 => Some(("m_iHealth", "085")), + 8377971784734870356u64 => Some(("m_iHealth", "086")), + 8376845884827771517u64 => Some(("m_iHealth", "087")), + 8391482583619677974u64 => Some(("m_iHealth", "088")), + 8390356683712579135u64 => Some(("m_iHealth", "089")), + 7729126883352912425u64 => Some(("m_iHealth", "090")), + 7729689833306367232u64 => Some(("m_iHealth", "091")), + 7730815733213466071u64 => Some(("m_iHealth", "092")), + 7731941633120564910u64 => Some(("m_iHealth", "093")), + 7725186233678161101u64 => Some(("m_iHealth", "094")), + 7726312133585259940u64 => Some(("m_iHealth", "095")), + 7726875083538714747u64 => Some(("m_iHealth", "096")), + 7728000983445813586u64 => Some(("m_iHealth", "097")), + 7736445232748771041u64 => Some(("m_iHealth", "098")), + 7737571132655869880u64 => Some(("m_iHealth", "099")), + 8844166874849808743u64 => Some(("m_iHealth", "100")), + 8845292774756907582u64 => Some(("m_iHealth", "101")), 4995167211088733244u64 => Some(("m_iMaxBuffedHealth", "000")), 4994041311181634405u64 => Some(("m_iMaxBuffedHealth", "001")), 4996856060949286890u64 => Some(("m_iMaxBuffedHealth", "002")), @@ -5322,6 +6275,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 6179141123239072417u64 => Some(("m_iMaxBuffedHealth", "063")), 6178015223331973578u64 => Some(("m_iMaxBuffedHealth", "064")), 6177452273378518771u64 => Some(("m_iMaxBuffedHealth", "065")), + 6176326373471419932u64 => Some(("m_iMaxBuffedHealth", "066")), + 6175200473564321093u64 => Some(("m_iMaxBuffedHealth", "067")), + 6174637523610866286u64 => Some(("m_iMaxBuffedHealth", "068")), + 6173511623703767447u64 => Some(("m_iMaxBuffedHealth", "069")), + 5649641612005996145u64 => Some(("m_iMaxBuffedHealth", "070")), + 5650767511913094984u64 => Some(("m_iMaxBuffedHealth", "071")), + 5651893411820193823u64 => Some(("m_iMaxBuffedHealth", "072")), + 5652456361773648630u64 => Some(("m_iMaxBuffedHealth", "073")), + 5645700962331244821u64 => Some(("m_iMaxBuffedHealth", "074")), + 5646826862238343660u64 => Some(("m_iMaxBuffedHealth", "075")), + 5647952762145442499u64 => Some(("m_iMaxBuffedHealth", "076")), + 5649078662052541338u64 => Some(("m_iMaxBuffedHealth", "077")), + 5642323262610137529u64 => Some(("m_iMaxBuffedHealth", "078")), + 5642886212563592336u64 => Some(("m_iMaxBuffedHealth", "079")), + 9926969443519611172u64 => Some(("m_iMaxBuffedHealth", "080")), + 9926406493566156365u64 => Some(("m_iMaxBuffedHealth", "081")), + 9929221243333808850u64 => Some(("m_iMaxBuffedHealth", "082")), + 9928095343426710011u64 => Some(("m_iMaxBuffedHealth", "083")), + 9930910093194362496u64 => Some(("m_iMaxBuffedHealth", "084")), + 9929784193287263657u64 => Some(("m_iMaxBuffedHealth", "085")), + 9932598943054916142u64 => Some(("m_iMaxBuffedHealth", "086")), + 9932035993101461335u64 => Some(("m_iMaxBuffedHealth", "087")), + 9934850742869113820u64 => Some(("m_iMaxBuffedHealth", "088")), + 9933724842962014981u64 => Some(("m_iMaxBuffedHealth", "089")), + 9302894340093070799u64 => Some(("m_iMaxBuffedHealth", "090")), + 9304020240000169638u64 => Some(("m_iMaxBuffedHealth", "091")), + 9301205490232517153u64 => Some(("m_iMaxBuffedHealth", "092")), + 9301768440185971960u64 => Some(("m_iMaxBuffedHealth", "093")), + 9298953690418319475u64 => Some(("m_iMaxBuffedHealth", "094")), + 9300079590325418314u64 => Some(("m_iMaxBuffedHealth", "095")), + 9297264840557765829u64 => Some(("m_iMaxBuffedHealth", "096")), + 9298390740464864668u64 => Some(("m_iMaxBuffedHealth", "097")), + 9295013040743568151u64 => Some(("m_iMaxBuffedHealth", "098")), + 9296138940650666990u64 => Some(("m_iMaxBuffedHealth", "099")), + 16493430976931086509u64 => Some(("m_iMaxBuffedHealth", "100")), + 16494556876838185348u64 => Some(("m_iMaxBuffedHealth", "101")), 3716094538639036264u64 => Some(("m_iMaxHealth", "000")), 3714968638731937425u64 => Some(("m_iMaxHealth", "001")), 3717783388499589910u64 => Some(("m_iMaxHealth", "002")), @@ -5388,6 +6377,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 18384048044623682565u64 => Some(("m_iMaxHealth", "063")), 18390803444066086374u64 => Some(("m_iMaxHealth", "064")), 18389677544158987535u64 => Some(("m_iMaxHealth", "065")), + 18389114594205532728u64 => Some(("m_iMaxHealth", "066")), + 18387988694298433889u64 => Some(("m_iMaxHealth", "067")), + 18379544444995476434u64 => Some(("m_iMaxHealth", "068")), + 18378418545088377595u64 => Some(("m_iMaxHealth", "069")), + 17854548533390606293u64 => Some(("m_iMaxHealth", "070")), + 17855674433297705132u64 => Some(("m_iMaxHealth", "071")), + 17856800333204803971u64 => Some(("m_iMaxHealth", "072")), + 17857363283158258778u64 => Some(("m_iMaxHealth", "073")), + 17858489183065357617u64 => Some(("m_iMaxHealth", "074")), + 17859615082972456456u64 => Some(("m_iMaxHealth", "075")), + 17860178032925911263u64 => Some(("m_iMaxHealth", "076")), + 17861303932833010102u64 => Some(("m_iMaxHealth", "077")), + 17847230183994747677u64 => Some(("m_iMaxHealth", "078")), + 17847793133948202484u64 => Some(("m_iMaxHealth", "079")), + 17200074132473343392u64 => Some(("m_iMaxHealth", "080")), + 17198948232566244553u64 => Some(("m_iMaxHealth", "081")), + 17201762982333897038u64 => Some(("m_iMaxHealth", "082")), + 17200637082426798199u64 => Some(("m_iMaxHealth", "083")), + 17196133482798592068u64 => Some(("m_iMaxHealth", "084")), + 17195007582891493229u64 => Some(("m_iMaxHealth", "085")), + 17197822332659145714u64 => Some(("m_iMaxHealth", "086")), + 17197259382705690907u64 => Some(("m_iMaxHealth", "087")), + 17207392481869202008u64 => Some(("m_iMaxHealth", "088")), + 17206829531915747201u64 => Some(("m_iMaxHealth", "089")), + 16545036781602436459u64 => Some(("m_iMaxHealth", "090")), + 16546162681509535298u64 => Some(("m_iMaxHealth", "091")), + 16543347931741882813u64 => Some(("m_iMaxHealth", "092")), + 16543910881695337620u64 => Some(("m_iMaxHealth", "093")), + 16548977431277187783u64 => Some(("m_iMaxHealth", "094")), + 16550103331184286622u64 => Some(("m_iMaxHealth", "095")), + 16546725631462990105u64 => Some(("m_iMaxHealth", "096")), + 16547851531370088944u64 => Some(("m_iMaxHealth", "097")), + 16552918080951939107u64 => Some(("m_iMaxHealth", "098")), + 16553481030905393914u64 => Some(("m_iMaxHealth", "099")), + 9108462361649547609u64 => Some(("m_iMaxHealth", "100")), + 9109025311603002416u64 => Some(("m_iMaxHealth", "101")), 15779723042560593632u64 => Some(("m_iNumTeamMembers", "000")), 15778597142653494793u64 => Some(("m_iNumTeamMembers", "001")), 15781411892421147278u64 => Some(("m_iNumTeamMembers", "002")), @@ -5527,6 +6552,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 4106311423588683545u64 => Some(("m_iPing", "063")), 4105748473635228738u64 => Some(("m_iPing", "064")), 4104622573728129899u64 => Some(("m_iPing", "065")), + 4103496673821031060u64 => Some(("m_iPing", "066")), + 4102933723867576253u64 => Some(("m_iPing", "067")), + 4117007472705838678u64 => Some(("m_iPing", "068")), + 4115881572798739839u64 => Some(("m_iPing", "069")), + 3454651772439073129u64 => Some(("m_iPing", "070")), + 3455777672346171968u64 => Some(("m_iPing", "071")), + 3456340622299626775u64 => Some(("m_iPing", "072")), + 3457466522206725614u64 => Some(("m_iPing", "073")), + 3450711122764321805u64 => Some(("m_iPing", "074")), + 3451837022671420644u64 => Some(("m_iPing", "075")), + 3452962922578519483u64 => Some(("m_iPing", "076")), + 3453525872531974290u64 => Some(("m_iPing", "077")), + 3462533071788575777u64 => Some(("m_iPing", "078")), + 3463096021742030584u64 => Some(("m_iPing", "079")), + 16314556262846839884u64 => Some(("m_iPing", "080")), + 16313430362939741045u64 => Some(("m_iPing", "081")), + 16316245112707393530u64 => Some(("m_iPing", "082")), + 16315682162753938723u64 => Some(("m_iPing", "083")), + 16318496912521591208u64 => Some(("m_iPing", "084")), + 16317371012614492369u64 => Some(("m_iPing", "085")), + 16320185762382144854u64 => Some(("m_iPing", "086")), + 16319059862475046015u64 => Some(("m_iPing", "087")), + 16306674963497337236u64 => Some(("m_iPing", "088")), + 16306112013543882429u64 => Some(("m_iPing", "089")), + 15659518911975932951u64 => Some(("m_iPing", "090")), + 15660644811883031790u64 => Some(("m_iPing", "091")), + 15657830062115379305u64 => Some(("m_iPing", "092")), + 15658955962022478144u64 => Some(("m_iPing", "093")), + 15656141212254825659u64 => Some(("m_iPing", "094")), + 15656704162208280466u64 => Some(("m_iPing", "095")), + 15653889412440627981u64 => Some(("m_iPing", "096")), + 15655015312347726820u64 => Some(("m_iPing", "097")), + 15667400211325435599u64 => Some(("m_iPing", "098")), + 15668526111232534438u64 => Some(("m_iPing", "099")), + 8222944492023044101u64 => Some(("m_iPing", "100")), + 8224070391930142940u64 => Some(("m_iPing", "101")), 9745833125819443561u64 => Some(("m_iPlayerClass", "000")), 9746959025726542400u64 => Some(("m_iPlayerClass", "001")), 9747521975679997207u64 => Some(("m_iPlayerClass", "002")), @@ -5593,6 +6654,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 8588317861485075592u64 => Some(("m_iPlayerClass", "063")), 8585503111717423107u64 => Some(("m_iPlayerClass", "064")), 8586629011624521946u64 => Some(("m_iPlayerClass", "065")), + 8583814261856869461u64 => Some(("m_iPlayerClass", "066")), + 8584377211810324268u64 => Some(("m_iPlayerClass", "067")), + 8581562462042671783u64 => Some(("m_iPlayerClass", "068")), + 8582688361949770622u64 => Some(("m_iPlayerClass", "069")), + 9213518864818714804u64 => Some(("m_iPlayerClass", "070")), + 9212392964911615965u64 => Some(("m_iPlayerClass", "071")), + 9215207714679268450u64 => Some(("m_iPlayerClass", "072")), + 9214644764725813643u64 => Some(("m_iPlayerClass", "073")), + 9217459514493466128u64 => Some(("m_iPlayerClass", "074")), + 9216333614586367289u64 => Some(("m_iPlayerClass", "075")), + 9219148364354019774u64 => Some(("m_iPlayerClass", "076")), + 9218585414400564967u64 => Some(("m_iPlayerClass", "077")), + 9221400164168217452u64 => Some(("m_iPlayerClass", "078")), + 9220274264261118613u64 => Some(("m_iPlayerClass", "079")), + 4814030893388565633u64 => Some(("m_iPlayerClass", "080")), + 4814593843342020440u64 => Some(("m_iPlayerClass", "081")), + 4815719743249119279u64 => Some(("m_iPlayerClass", "082")), + 4816845643156218118u64 => Some(("m_iPlayerClass", "083")), + 4810090243713814309u64 => Some(("m_iPlayerClass", "084")), + 4810653193667269116u64 => Some(("m_iPlayerClass", "085")), + 4811779093574367955u64 => Some(("m_iPlayerClass", "086")), + 4812904993481466794u64 => Some(("m_iPlayerClass", "087")), + 4806149594039062985u64 => Some(("m_iPlayerClass", "088")), + 4807275493946161824u64 => Some(("m_iPlayerClass", "089")), + 5468505294305828534u64 => Some(("m_iPlayerClass", "090")), + 5467379394398729695u64 => Some(("m_iPlayerClass", "091")), + 5466816444445274888u64 => Some(("m_iPlayerClass", "092")), + 5465690544538176049u64 => Some(("m_iPlayerClass", "093")), + 5464564644631077210u64 => Some(("m_iPlayerClass", "094")), + 5464001694677622403u64 => Some(("m_iPlayerClass", "095")), + 5462875794770523564u64 => Some(("m_iPlayerClass", "096")), + 5461749894863424725u64 => Some(("m_iPlayerClass", "097")), + 5460623994956325886u64 => Some(("m_iPlayerClass", "098")), + 5460061045002871079u64 => Some(("m_iPlayerClass", "099")), + 16693750483732997880u64 => Some(("m_iPlayerClass", "100")), + 16693187533779543073u64 => Some(("m_iPlayerClass", "101")), 11726941249855549338u64 => Some(("m_iPlayerClassWhenKilled", "000")), 11725815349948450499u64 => Some(("m_iPlayerClassWhenKilled", "001")), 11724689450041351660u64 => Some(("m_iPlayerClassWhenKilled", "002")), @@ -5659,6 +6756,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 15380756927896078799u64 => Some(("m_iPlayerClassWhenKilled", "063")), 15376253328267872668u64 => Some(("m_iPlayerClassWhenKilled", "064")), 15375127428360773829u64 => Some(("m_iPlayerClassWhenKilled", "065")), + 15377942178128426314u64 => Some(("m_iPlayerClassWhenKilled", "066")), + 15376816278221327475u64 => Some(("m_iPlayerClassWhenKilled", "067")), + 15372312678593121344u64 => Some(("m_iPlayerClassWhenKilled", "068")), + 15371186778686022505u64 => Some(("m_iPlayerClassWhenKilled", "069")), + 14847316766988251203u64 => Some(("m_iPlayerClassWhenKilled", "070")), + 14848442666895350042u64 => Some(("m_iPlayerClassWhenKilled", "071")), + 14845627917127697557u64 => Some(("m_iPlayerClassWhenKilled", "072")), + 14846753817034796396u64 => Some(("m_iPlayerClassWhenKilled", "073")), + 14851257416663002527u64 => Some(("m_iPlayerClassWhenKilled", "074")), + 14852383316570101366u64 => Some(("m_iPlayerClassWhenKilled", "075")), + 14849568566802448881u64 => Some(("m_iPlayerClassWhenKilled", "076")), + 14850131516755903688u64 => Some(("m_iPlayerClassWhenKilled", "077")), + 14839998417592392587u64 => Some(("m_iPlayerClassWhenKilled", "078")), + 14840561367545847394u64 => Some(("m_iPlayerClassWhenKilled", "079")), + 6641453680110126674u64 => Some(("m_iPlayerClassWhenKilled", "080")), + 6640327780203027835u64 => Some(("m_iPlayerClassWhenKilled", "081")), + 6639764830249573028u64 => Some(("m_iPlayerClassWhenKilled", "082")), + 6638638930342474189u64 => Some(("m_iPlayerClassWhenKilled", "083")), + 6645394329784877998u64 => Some(("m_iPlayerClassWhenKilled", "084")), + 6644268429877779159u64 => Some(("m_iPlayerClassWhenKilled", "085")), + 6643142529970680320u64 => Some(("m_iPlayerClassWhenKilled", "086")), + 6642579580017225513u64 => Some(("m_iPlayerClassWhenKilled", "087")), + 6649334979459629322u64 => Some(("m_iPlayerClassWhenKilled", "088")), + 6648209079552530483u64 => Some(("m_iPlayerClassWhenKilled", "089")), + 6109139419109397917u64 => Some(("m_iPlayerClassWhenKilled", "090")), + 6110265319016496756u64 => Some(("m_iPlayerClassWhenKilled", "091")), + 6110828268969951563u64 => Some(("m_iPlayerClassWhenKilled", "092")), + 6111954168877050402u64 => Some(("m_iPlayerClassWhenKilled", "093")), + 6113080068784149241u64 => Some(("m_iPlayerClassWhenKilled", "094")), + 6114205968691248080u64 => Some(("m_iPlayerClassWhenKilled", "095")), + 6114768918644702887u64 => Some(("m_iPlayerClassWhenKilled", "096")), + 6115894818551801726u64 => Some(("m_iPlayerClassWhenKilled", "097")), + 6117020718458900565u64 => Some(("m_iPlayerClassWhenKilled", "098")), + 6117583668412355372u64 => Some(("m_iPlayerClassWhenKilled", "099")), + 4778460941988350987u64 => Some(("m_iPlayerClassWhenKilled", "100")), + 4779586841895449826u64 => Some(("m_iPlayerClassWhenKilled", "101")), 412805761380787379u64 => Some(("m_iPlayerLevel", "000")), 413931661287886218u64 => Some(("m_iPlayerLevel", "001")), 411116911520233733u64 => Some(("m_iPlayerLevel", "002")), @@ -5725,6 +6858,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 15209674806724560858u64 => Some(("m_iPlayerLevel", "063")), 15210237756678015665u64 => Some(("m_iPlayerLevel", "064")), 15211363656585114504u64 => Some(("m_iPlayerLevel", "065")), + 15212489556492213343u64 => Some(("m_iPlayerLevel", "066")), + 15213615456399312182u64 => Some(("m_iPlayerLevel", "067")), + 15198978757607405725u64 => Some(("m_iPlayerLevel", "068")), + 15200104657514504564u64 => Some(("m_iPlayerLevel", "069")), + 15739174317957637130u64 => Some(("m_iPlayerLevel", "070")), + 15738048418050538291u64 => Some(("m_iPlayerLevel", "071")), + 15736922518143439452u64 => Some(("m_iPlayerLevel", "072")), + 15736359568189984645u64 => Some(("m_iPlayerLevel", "073")), + 15742552017678744422u64 => Some(("m_iPlayerLevel", "074")), + 15741989067725289615u64 => Some(("m_iPlayerLevel", "075")), + 15740863167818190776u64 => Some(("m_iPlayerLevel", "076")), + 15739737267911091937u64 => Some(("m_iPlayerLevel", "077")), + 15731293018608134482u64 => Some(("m_iPlayerLevel", "078")), + 15730167118701035643u64 => Some(("m_iPlayerLevel", "079")), + 13897348305168738539u64 => Some(("m_iPlayerLevel", "080")), + 13897911255122193346u64 => Some(("m_iPlayerLevel", "081")), + 13895096505354540861u64 => Some(("m_iPlayerLevel", "082")), + 13896222405261639700u64 => Some(("m_iPlayerLevel", "083")), + 13900726004889845831u64 => Some(("m_iPlayerLevel", "084")), + 13901851904796944670u64 => Some(("m_iPlayerLevel", "085")), + 13899037155029292185u64 => Some(("m_iPlayerLevel", "086")), + 13900163054936391024u64 => Some(("m_iPlayerLevel", "087")), + 13904666654564597155u64 => Some(("m_iPlayerLevel", "088")), + 13905792554471695994u64 => Some(("m_iPlayerLevel", "089")), + 14551822706086001440u64 => Some(("m_iPlayerLevel", "090")), + 14550696806178902601u64 => Some(("m_iPlayerLevel", "091")), + 14554074505900199118u64 => Some(("m_iPlayerLevel", "092")), + 14552948605993100279u64 => Some(("m_iPlayerLevel", "093")), + 14547882056411250116u64 => Some(("m_iPlayerLevel", "094")), + 14547319106457795309u64 => Some(("m_iPlayerLevel", "095")), + 14550133856225447794u64 => Some(("m_iPlayerLevel", "096")), + 14549007956318348955u64 => Some(("m_iPlayerLevel", "097")), + 14559704005435504088u64 => Some(("m_iPlayerLevel", "098")), + 14558578105528405249u64 => Some(("m_iPlayerLevel", "099")), + 11971670273816233730u64 => Some(("m_iPlayerLevel", "100")), + 11970544373909134891u64 => Some(("m_iPlayerLevel", "101")), 17913805868029670070u64 => Some(("m_iPreviousPoints", "000")), 17912679968122571231u64 => Some(("m_iPreviousPoints", "001")), 17912117018169116424u64 => Some(("m_iPreviousPoints", "002")), @@ -5983,6 +7152,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 7308585991746585535u64 => Some(("m_iScore", "063")), 7303519442164735372u64 => Some(("m_iScore", "064")), 7302956492211280565u64 => Some(("m_iScore", "065")), + 7305771241978933050u64 => Some(("m_iScore", "066")), + 7304645342071834211u64 => Some(("m_iScore", "067")), + 7299578792489984048u64 => Some(("m_iScore", "068")), + 7299015842536529241u64 => Some(("m_iScore", "069")), + 6652422740968579763u64 => Some(("m_iScore", "070")), + 6653548640875678602u64 => Some(("m_iScore", "071")), + 6650733891108026117u64 => Some(("m_iScore", "072")), + 6651859791015124956u64 => Some(("m_iScore", "073")), + 6656363390643331087u64 => Some(("m_iScore", "074")), + 6657489290550429926u64 => Some(("m_iScore", "075")), + 6654674540782777441u64 => Some(("m_iScore", "076")), + 6655800440689876280u64 => Some(("m_iScore", "077")), + 6645104391572721147u64 => Some(("m_iScore", "078")), + 6646230291479819986u64 => Some(("m_iScore", "079")), + 17016026817670185026u64 => Some(("m_iScore", "080")), + 17014900917763086187u64 => Some(("m_iScore", "081")), + 17013775017855987348u64 => Some(("m_iScore", "082")), + 17013212067902532541u64 => Some(("m_iScore", "083")), + 17019967467344936350u64 => Some(("m_iScore", "084")), + 17018841567437837511u64 => Some(("m_iScore", "085")), + 17017715667530738672u64 => Some(("m_iScore", "086")), + 17016589767623639833u64 => Some(("m_iScore", "087")), + 17023345167066043642u64 => Some(("m_iScore", "088")), + 17022782217112588835u64 => Some(("m_iScore", "089")), + 16360989466799278093u64 => Some(("m_iScore", "090")), + 16362115366706376932u64 => Some(("m_iScore", "091")), + 16363241266613475771u64 => Some(("m_iScore", "092")), + 16363804216566930578u64 => Some(("m_iScore", "093")), + 16364930116474029417u64 => Some(("m_iScore", "094")), + 16366056016381128256u64 => Some(("m_iScore", "095")), + 16366618966334583063u64 => Some(("m_iScore", "096")), + 16367744866241681902u64 => Some(("m_iScore", "097")), + 16368870766148780741u64 => Some(("m_iScore", "098")), + 16369996666055879580u64 => Some(("m_iScore", "099")), + 8924415046846389243u64 => Some(("m_iScore", "100")), + 8925540946753488082u64 => Some(("m_iScore", "101")), 3587418992187203133u64 => Some(("m_iStreaks", "000")), 3588544892094301972u64 => Some(("m_iStreaks", "001")), 3589670792001400811u64 => Some(("m_iStreaks", "002")), @@ -6119,6 +7324,278 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 14802783979864997298u64 => Some(("m_iStreaks", "133")), 14803909879772096137u64 => Some(("m_iStreaks", "134")), 14804472829725550944u64 => Some(("m_iStreaks", "135")), + 14805598729632649783u64 => Some(("m_iStreaks", "136")), + 14806724629539748622u64 => Some(("m_iStreaks", "137")), + 14807287579493203429u64 => Some(("m_iStreaks", "138")), + 14808413479400302268u64 => Some(("m_iStreaks", "139")), + 660952285392130752u64 => Some(("m_iStreaks", "140")), + 660389335438675945u64 => Some(("m_iStreaks", "141")), + 663204085206328430u64 => Some(("m_iStreaks", "142")), + 662078185299229591u64 => Some(("m_iStreaks", "143")), + 657011635717379428u64 => Some(("m_iStreaks", "144")), + 656448685763924621u64 => Some(("m_iStreaks", "145")), + 659263435531577106u64 => Some(("m_iStreaks", "146")), + 658137535624478267u64 => Some(("m_iStreaks", "147")), + 668833584741633400u64 => Some(("m_iStreaks", "148")), + 667707684834534561u64 => Some(("m_iStreaks", "149")), + 128638024391401995u64 => Some(("m_iStreaks", "150")), + 129763924298500834u64 => Some(("m_iStreaks", "151")), + 126949174530848349u64 => Some(("m_iStreaks", "152")), + 128075074437947188u64 => Some(("m_iStreaks", "153")), + 132578674066153319u64 => Some(("m_iStreaks", "154")), + 133704573973252158u64 => Some(("m_iStreaks", "155")), + 130889824205599673u64 => Some(("m_iStreaks", "156")), + 131452774159054480u64 => Some(("m_iStreaks", "157")), + 136519323740904643u64 => Some(("m_iStreaks", "158")), + 137645223648003482u64 => Some(("m_iStreaks", "159")), + 17951306994674413238u64 => Some(("m_iStreaks", "160")), + 17950181094767314399u64 => Some(("m_iStreaks", "161")), + 17949618144813859592u64 => Some(("m_iStreaks", "162")), + 17948492244906760753u64 => Some(("m_iStreaks", "163")), + 17947366344999661914u64 => Some(("m_iStreaks", "164")), + 17946803395046207107u64 => Some(("m_iStreaks", "165")), + 17945677495139108268u64 => Some(("m_iStreaks", "166")), + 17944551595232009429u64 => Some(("m_iStreaks", "167")), + 17943425695324910590u64 => Some(("m_iStreaks", "168")), + 17942862745371455783u64 => Some(("m_iStreaks", "169")), + 17296832593757150337u64 => Some(("m_iStreaks", "170")), + 17297395543710605144u64 => Some(("m_iStreaks", "171")), + 17298521443617703983u64 => Some(("m_iStreaks", "172")), + 17299647343524802822u64 => Some(("m_iStreaks", "173")), + 17292891944082399013u64 => Some(("m_iStreaks", "174")), + 17293454894035853820u64 => Some(("m_iStreaks", "175")), + 17294580793942952659u64 => Some(("m_iStreaks", "176")), + 17295706693850051498u64 => Some(("m_iStreaks", "177")), + 17288951294407647689u64 => Some(("m_iStreaks", "178")), + 17290077194314746528u64 => Some(("m_iStreaks", "179")), + 3249576491477747892u64 => Some(("m_iStreaks", "180")), + 3248450591570649053u64 => Some(("m_iStreaks", "181")), + 3251265341338301538u64 => Some(("m_iStreaks", "182")), + 3250702391384846731u64 => Some(("m_iStreaks", "183")), + 3253517141152499216u64 => Some(("m_iStreaks", "184")), + 3252391241245400377u64 => Some(("m_iStreaks", "185")), + 3255205991013052862u64 => Some(("m_iStreaks", "186")), + 3254643041059598055u64 => Some(("m_iStreaks", "187")), + 3257457790827250540u64 => Some(("m_iStreaks", "188")), + 3256331890920151701u64 => Some(("m_iStreaks", "189")), + 2625501388051207519u64 => Some(("m_iStreaks", "190")), + 2626627287958306358u64 => Some(("m_iStreaks", "191")), + 2623249588237009841u64 => Some(("m_iStreaks", "192")), + 2624375488144108680u64 => Some(("m_iStreaks", "193")), + 2621560738376456195u64 => Some(("m_iStreaks", "194")), + 2622686638283555034u64 => Some(("m_iStreaks", "195")), + 2619871888515902549u64 => Some(("m_iStreaks", "196")), + 2620434838469357356u64 => Some(("m_iStreaks", "197")), + 2617620088701704871u64 => Some(("m_iStreaks", "198")), + 2618745988608803710u64 => Some(("m_iStreaks", "199")), + 5112569229599523579u64 => Some(("m_iStreaks", "200")), + 5113695129506622418u64 => Some(("m_iStreaks", "201")), + 5110880379738969933u64 => Some(("m_iStreaks", "202")), + 5111443329692424740u64 => Some(("m_iStreaks", "203")), + 5116509879274274903u64 => Some(("m_iStreaks", "204")), + 5117072829227729710u64 => Some(("m_iStreaks", "205")), + 5114258079460077225u64 => Some(("m_iStreaks", "206")), + 5115383979367176064u64 => Some(("m_iStreaks", "207")), + 5119887578995382195u64 => Some(("m_iStreaks", "208")), + 5121013478902481034u64 => Some(("m_iStreaks", "209")), + 5767043630516786480u64 => Some(("m_iStreaks", "210")), + 5766480680563331673u64 => Some(("m_iStreaks", "211")), + 5769295430330984158u64 => Some(("m_iStreaks", "212")), + 5768169530423885319u64 => Some(("m_iStreaks", "213")), + 5763665930795679188u64 => Some(("m_iStreaks", "214")), + 5762540030888580349u64 => Some(("m_iStreaks", "215")), + 5765354780656232834u64 => Some(("m_iStreaks", "216")), + 5764228880749133995u64 => Some(("m_iStreaks", "217")), + 5774924929866289128u64 => Some(("m_iStreaks", "218")), + 5773799029959190289u64 => Some(("m_iStreaks", "219")), + 3956179865172254449u64 => Some(("m_iStreaks", "220")), + 3956742815125709256u64 => Some(("m_iStreaks", "221")), + 3957868715032808095u64 => Some(("m_iStreaks", "222")), + 3958994614939906934u64 => Some(("m_iStreaks", "223")), + 3952239215497503125u64 => Some(("m_iStreaks", "224")), + 3953365115404601964u64 => Some(("m_iStreaks", "225")), + 3953928065358056771u64 => Some(("m_iStreaks", "226")), + 3955053965265155610u64 => Some(("m_iStreaks", "227")), + 3948298565822751801u64 => Some(("m_iStreaks", "228")), + 3949424465729850640u64 => Some(("m_iStreaks", "229")), + 4488494126172983206u64 => Some(("m_iStreaks", "230")), + 4487368226265884367u64 => Some(("m_iStreaks", "231")), + 4486242326358785528u64 => Some(("m_iStreaks", "232")), + 4485679376405330721u64 => Some(("m_iStreaks", "233")), + 4484553476498231882u64 => Some(("m_iStreaks", "234")), + 4483427576591133043u64 => Some(("m_iStreaks", "235")), + 4482864626637678236u64 => Some(("m_iStreaks", "236")), + 4481738726730579397u64 => Some(("m_iStreaks", "237")), + 4480612826823480558u64 => Some(("m_iStreaks", "238")), + 4479486926916381719u64 => Some(("m_iStreaks", "239")), + 2646668113384084615u64 => Some(("m_iStreaks", "240")), + 2647231063337539422u64 => Some(("m_iStreaks", "241")), + 2644416313569886937u64 => Some(("m_iStreaks", "242")), + 2645542213476985776u64 => Some(("m_iStreaks", "243")), + 2642727463709333291u64 => Some(("m_iStreaks", "244")), + 2643853363616432130u64 => Some(("m_iStreaks", "245")), + 2640475663895135613u64 => Some(("m_iStreaks", "246")), + 2641601563802234452u64 => Some(("m_iStreaks", "247")), + 2653986462779943231u64 => Some(("m_iStreaks", "248")), + 2655112362687042070u64 => Some(("m_iStreaks", "249")), + 3301142514301347516u64 => Some(("m_iStreaks", "250")), + 3300016614394248677u64 => Some(("m_iStreaks", "251")), + 3303394314115545194u64 => Some(("m_iStreaks", "252")), + 3302268414208446355u64 => Some(("m_iStreaks", "253")), + 3305083163976098840u64 => Some(("m_iStreaks", "254")), + 3303957264069000001u64 => Some(("m_iStreaks", "255")), + 3306772013836652486u64 => Some(("m_iStreaks", "256")), + 3306209063883197679u64 => Some(("m_iStreaks", "257")), + 3293824164905488900u64 => Some(("m_iStreaks", "258")), + 3292698264998390061u64 => Some(("m_iStreaks", "259")), + 1459316501512448925u64 => Some(("m_iStreaks", "260")), + 1460442401419547764u64 => Some(("m_iStreaks", "261")), + 1461005351373002571u64 => Some(("m_iStreaks", "262")), + 1462131251280101410u64 => Some(("m_iStreaks", "263")), + 1463257151187200249u64 => Some(("m_iStreaks", "264")), + 1464383051094299088u64 => Some(("m_iStreaks", "265")), + 1464946001047753895u64 => Some(("m_iStreaks", "266")), + 1466071900954852734u64 => Some(("m_iStreaks", "267")), + 1467197800861951573u64 => Some(("m_iStreaks", "268")), + 1467760750815406380u64 => Some(("m_iStreaks", "269")), + 1991630762513177682u64 => Some(("m_iStreaks", "270")), + 1990504862606078843u64 => Some(("m_iStreaks", "271")), + 1989941912652624036u64 => Some(("m_iStreaks", "272")), + 1988816012745525197u64 => Some(("m_iStreaks", "273")), + 1995571412187929006u64 => Some(("m_iStreaks", "274")), + 1994445512280830167u64 => Some(("m_iStreaks", "275")), + 1993319612373731328u64 => Some(("m_iStreaks", "276")), + 1992756662420276521u64 => Some(("m_iStreaks", "277")), + 1999512061862680330u64 => Some(("m_iStreaks", "278")), + 1998386161955581491u64 => Some(("m_iStreaks", "279")), + 10197493849391302211u64 => Some(("m_iStreaks", "280")), + 10198619749298401050u64 => Some(("m_iStreaks", "281")), + 10195804999530748565u64 => Some(("m_iStreaks", "282")), + 10196930899437847404u64 => Some(("m_iStreaks", "283")), + 10201434499066053535u64 => Some(("m_iStreaks", "284")), + 10202560398973152374u64 => Some(("m_iStreaks", "285")), + 10199745649205499889u64 => Some(("m_iStreaks", "286")), + 10200308599158954696u64 => Some(("m_iStreaks", "287")), + 10190175499995443595u64 => Some(("m_iStreaks", "288")), + 10190738449948898402u64 => Some(("m_iStreaks", "289")), + 10729808110392030968u64 => Some(("m_iStreaks", "290")), + 10729245160438576161u64 => Some(("m_iStreaks", "291")), + 10732059910206228646u64 => Some(("m_iStreaks", "292")), + 10730934010299129807u64 => Some(("m_iStreaks", "293")), + 10726430410670923676u64 => Some(("m_iStreaks", "294")), + 10725304510763824837u64 => Some(("m_iStreaks", "295")), + 10728119260531477322u64 => Some(("m_iStreaks", "296")), + 10726993360624378483u64 => Some(("m_iStreaks", "297")), + 10722489760996172352u64 => Some(("m_iStreaks", "298")), + 10721363861089073513u64 => Some(("m_iStreaks", "299")), + 18166945480298563850u64 => Some(("m_iStreaks", "300")), + 18165819580391465011u64 => Some(("m_iStreaks", "301")), + 18164693680484366172u64 => Some(("m_iStreaks", "302")), + 18164130730530911365u64 => Some(("m_iStreaks", "303")), + 18170323180019671142u64 => Some(("m_iStreaks", "304")), + 18169760230066216335u64 => Some(("m_iStreaks", "305")), + 18168634330159117496u64 => Some(("m_iStreaks", "306")), + 18167508430252018657u64 => Some(("m_iStreaks", "307")), + 18159064180949061202u64 => Some(("m_iStreaks", "308")), + 18157938281041962363u64 => Some(("m_iStreaks", "309")), + 17634631219297835093u64 => Some(("m_iStreaks", "310")), + 17635194169251289900u64 => Some(("m_iStreaks", "311")), + 17636320069158388739u64 => Some(("m_iStreaks", "312")), + 17637445969065487578u64 => Some(("m_iStreaks", "313")), + 17638008919018942385u64 => Some(("m_iStreaks", "314")), + 17639134818926041224u64 => Some(("m_iStreaks", "315")), + 17640260718833140063u64 => Some(("m_iStreaks", "316")), + 17641386618740238902u64 => Some(("m_iStreaks", "317")), + 17626749919948332445u64 => Some(("m_iStreaks", "318")), + 17627875819855431284u64 => Some(("m_iStreaks", "319")), + 998750910932815508u64 => Some(("m_iStreaks", "320")), + 998187960979360701u64 => Some(("m_iStreaks", "321")), + 1001002710747013186u64 => Some(("m_iStreaks", "322")), + 999876810839914347u64 => Some(("m_iStreaks", "323")), + 1002691560607566832u64 => Some(("m_iStreaks", "324")), + 1001565660700467993u64 => Some(("m_iStreaks", "325")), + 1004943360421764510u64 => Some(("m_iStreaks", "326")), + 1003817460514665671u64 => Some(("m_iStreaks", "327")), + 1006632210282318156u64 => Some(("m_iStreaks", "328")), + 1005506310375219317u64 => Some(("m_iStreaks", "329")), + 374675807506275135u64 => Some(("m_iStreaks", "330")), + 375801707413373974u64 => Some(("m_iStreaks", "331")), + 372986957645721489u64 => Some(("m_iStreaks", "332")), + 374112857552820328u64 => Some(("m_iStreaks", "333")), + 370735157831523811u64 => Some(("m_iStreaks", "334")), + 371861057738622650u64 => Some(("m_iStreaks", "335")), + 369046307970970165u64 => Some(("m_iStreaks", "336")), + 370172207878069004u64 => Some(("m_iStreaks", "337")), + 367357458110416519u64 => Some(("m_iStreaks", "338")), + 367920408063871326u64 => Some(("m_iStreaks", "339")), + 2308262662720985342u64 => Some(("m_iStreaks", "340")), + 2307699712767530535u64 => Some(("m_iStreaks", "341")), + 2306573812860431696u64 => Some(("m_iStreaks", "342")), + 2305447912953332857u64 => Some(("m_iStreaks", "343")), + 2304884962999878050u64 => Some(("m_iStreaks", "344")), + 2303759063092779211u64 => Some(("m_iStreaks", "345")), + 2302633163185680372u64 => Some(("m_iStreaks", "346")), + 2302070213232225565u64 => Some(("m_iStreaks", "347")), + 2316143962070487990u64 => Some(("m_iStreaks", "348")), + 2315018062163389151u64 => Some(("m_iStreaks", "349")), + 1653788261803722441u64 => Some(("m_iStreaks", "350")), + 1654914161710821280u64 => Some(("m_iStreaks", "351")), + 1655477111664276087u64 => Some(("m_iStreaks", "352")), + 1656603011571374926u64 => Some(("m_iStreaks", "353")), + 1649847612128971117u64 => Some(("m_iStreaks", "354")), + 1650973512036069956u64 => Some(("m_iStreaks", "355")), + 1652099411943168795u64 => Some(("m_iStreaks", "356")), + 1652662361896623602u64 => Some(("m_iStreaks", "357")), + 1661669561153225089u64 => Some(("m_iStreaks", "358")), + 1662232511106679896u64 => Some(("m_iStreaks", "359")), + 3495614274592621032u64 => Some(("m_iStreaks", "360")), + 3494488374685522193u64 => Some(("m_iStreaks", "361")), + 3497303124453174678u64 => Some(("m_iStreaks", "362")), + 3496740174499719871u64 => Some(("m_iStreaks", "363")), + 3491673624917869708u64 => Some(("m_iStreaks", "364")), + 3491110674964414901u64 => Some(("m_iStreaks", "365")), + 3493925424732067386u64 => Some(("m_iStreaks", "366")), + 3492799524824968547u64 => Some(("m_iStreaks", "367")), + 3487732975243118384u64 => Some(("m_iStreaks", "368")), + 3487170025289663577u64 => Some(("m_iStreaks", "369")), + 2840576923721714099u64 => Some(("m_iStreaks", "370")), + 2841702823628812938u64 => Some(("m_iStreaks", "371")), + 2838888073861160453u64 => Some(("m_iStreaks", "372")), + 2840013973768259292u64 => Some(("m_iStreaks", "373")), + 2844517573396465423u64 => Some(("m_iStreaks", "374")), + 2845643473303564262u64 => Some(("m_iStreaks", "375")), + 2842828723535911777u64 => Some(("m_iStreaks", "376")), + 2843954623443010616u64 => Some(("m_iStreaks", "377")), + 2833258574325855483u64 => Some(("m_iStreaks", "378")), + 2834384474232954322u64 => Some(("m_iStreaks", "379")), + 13204181000423319362u64 => Some(("m_iStreaks", "380")), + 13203055100516220523u64 => Some(("m_iStreaks", "381")), + 13201929200609121684u64 => Some(("m_iStreaks", "382")), + 13201366250655666877u64 => Some(("m_iStreaks", "383")), + 13208121650098070686u64 => Some(("m_iStreaks", "384")), + 13206995750190971847u64 => Some(("m_iStreaks", "385")), + 13205869850283873008u64 => Some(("m_iStreaks", "386")), + 13204743950376774169u64 => Some(("m_iStreaks", "387")), + 13211499349819177978u64 => Some(("m_iStreaks", "388")), + 13210936399865723171u64 => Some(("m_iStreaks", "389")), + 12549143649552412429u64 => Some(("m_iStreaks", "390")), + 12550269549459511268u64 => Some(("m_iStreaks", "391")), + 12551395449366610107u64 => Some(("m_iStreaks", "392")), + 12551958399320064914u64 => Some(("m_iStreaks", "393")), + 12553084299227163753u64 => Some(("m_iStreaks", "394")), + 12554210199134262592u64 => Some(("m_iStreaks", "395")), + 12554773149087717399u64 => Some(("m_iStreaks", "396")), + 12555899048994816238u64 => Some(("m_iStreaks", "397")), + 12557024948901915077u64 => Some(("m_iStreaks", "398")), + 12558150848809013916u64 => Some(("m_iStreaks", "399")), + 12866338499713864121u64 => Some(("m_iStreaks", "400")), + 12866901449667318928u64 => Some(("m_iStreaks", "401")), + 12868027349574417767u64 => Some(("m_iStreaks", "402")), + 12869153249481516606u64 => Some(("m_iStreaks", "403")), + 12862397850039112797u64 => Some(("m_iStreaks", "404")), + 12863523749946211636u64 => Some(("m_iStreaks", "405")), + 12864086699899666443u64 => Some(("m_iStreaks", "406")), + 12865212599806765282u64 => Some(("m_iStreaks", "407")), 928421086734504143u64 => Some(("m_iTeam", "000")), 929546986641602982u64 => Some(("m_iTeam", "001")), 926732236873950497u64 => Some(("m_iTeam", "002")), @@ -6153,6 +7630,74 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 394980925826676547u64 => Some(("m_iTeam", "031")), 394417975873221740u64 => Some(("m_iTeam", "032")), 393292075966122901u64 => Some(("m_iTeam", "033")), + 400047475408526710u64 => Some(("m_iTeam", "034")), + 398921575501427871u64 => Some(("m_iTeam", "035")), + 397795675594329032u64 => Some(("m_iTeam", "036")), + 397232725640874225u64 => Some(("m_iTeam", "037")), + 388225526384272738u64 => Some(("m_iTeam", "038")), + 387662576430817931u64 => Some(("m_iTeam", "039")), + 3517045292820121283u64 => Some(("m_iTeam", "040")), + 3518171192727220122u64 => Some(("m_iTeam", "041")), + 3514793493005923605u64 => Some(("m_iTeam", "042")), + 3515919392913022444u64 => Some(("m_iTeam", "043")), + 3520985942494872607u64 => Some(("m_iTeam", "044")), + 3521548892448327414u64 => Some(("m_iTeam", "045")), + 3518734142680674929u64 => Some(("m_iTeam", "046")), + 3519860042587773768u64 => Some(("m_iTeam", "047")), + 3509163993470618635u64 => Some(("m_iTeam", "048")), + 3510289893377717474u64 => Some(("m_iTeam", "049")), + 4049359553820850040u64 => Some(("m_iTeam", "050")), + 4048233653913751201u64 => Some(("m_iTeam", "051")), + 4051048403681403686u64 => Some(("m_iTeam", "052")), + 4050485453727948879u64 => Some(("m_iTeam", "053")), + 4045418904146098716u64 => Some(("m_iTeam", "054")), + 4044293004238999877u64 => Some(("m_iTeam", "055")), + 4047107754006652362u64 => Some(("m_iTeam", "056")), + 4046544804053197555u64 => Some(("m_iTeam", "057")), + 4041478254471347392u64 => Some(("m_iTeam", "058")), + 4040915304517892585u64 => Some(("m_iTeam", "059")), + 2207533541031951449u64 => Some(("m_iTeam", "060")), + 2208096490985406256u64 => Some(("m_iTeam", "061")), + 2209222390892505095u64 => Some(("m_iTeam", "062")), + 2210348290799603934u64 => Some(("m_iTeam", "063")), + 2203592891357200125u64 => Some(("m_iTeam", "064")), + 2204718791264298964u64 => Some(("m_iTeam", "065")), + 2205281741217753771u64 => Some(("m_iTeam", "066")), + 2206407641124852610u64 => Some(("m_iTeam", "067")), + 2214851890427810065u64 => Some(("m_iTeam", "068")), + 2215977790334908904u64 => Some(("m_iTeam", "069")), + 2862007941949214350u64 => Some(("m_iTeam", "070")), + 2861444991995759543u64 => Some(("m_iTeam", "071")), + 2860319092088660704u64 => Some(("m_iTeam", "072")), + 2859193192181561865u64 => Some(("m_iTeam", "073")), + 2858067292274463026u64 => Some(("m_iTeam", "074")), + 2857504342321008219u64 => Some(("m_iTeam", "075")), + 2856378442413909380u64 => Some(("m_iTeam", "076")), + 2855252542506810541u64 => Some(("m_iTeam", "077")), + 2869889241298716998u64 => Some(("m_iTeam", "078")), + 2868763341391618159u64 => Some(("m_iTeam", "079")), + 14412400680568811271u64 => Some(("m_iTeam", "080")), + 14413526580475910110u64 => Some(("m_iTeam", "081")), + 14410711830708257625u64 => Some(("m_iTeam", "082")), + 14411274780661712432u64 => Some(("m_iTeam", "083")), + 14408460030894059947u64 => Some(("m_iTeam", "084")), + 14409585930801158786u64 => Some(("m_iTeam", "085")), + 14406771181033506301u64 => Some(("m_iTeam", "086")), + 14407897080940605140u64 => Some(("m_iTeam", "087")), + 14420281979918313919u64 => Some(("m_iTeam", "088")), + 14420844929871768726u64 => Some(("m_iTeam", "089")), + 15067438031439718204u64 => Some(("m_iTeam", "090")), + 15066312131532619365u64 => Some(("m_iTeam", "091")), + 15069126881300271850u64 => Some(("m_iTeam", "092")), + 15068000981393173011u64 => Some(("m_iTeam", "093")), + 15070815731160825496u64 => Some(("m_iTeam", "094")), + 15070252781207370689u64 => Some(("m_iTeam", "095")), + 15073067530975023174u64 => Some(("m_iTeam", "096")), + 15071941631067924335u64 => Some(("m_iTeam", "097")), + 15059556732090215556u64 => Some(("m_iTeam", "098")), + 15058430832183116717u64 => Some(("m_iTeam", "099")), + 14074558179859356030u64 => Some(("m_iTeam", "100")), + 14073432279952257191u64 => Some(("m_iTeam", "101")), 13746632363759724522u64 => Some(("m_iTeamBaseIcons", "000")), 13745506463852625683u64 => Some(("m_iTeamBaseIcons", "001")), 13744943513899170876u64 => Some(("m_iTeamBaseIcons", "002")), @@ -6455,6 +8000,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 18039794635644399905u64 => Some(("m_iTotalScore", "063")), 18038668735737301066u64 => Some(("m_iTotalScore", "064")), 18037542835830202227u64 => Some(("m_iTotalScore", "065")), + 18036979885876747420u64 => Some(("m_iTotalScore", "066")), + 18035853985969648581u64 => Some(("m_iTotalScore", "067")), + 18034728086062549742u64 => Some(("m_iTotalScore", "068")), + 18033602186155450903u64 => Some(("m_iTotalScore", "069")), + 17510295124411323633u64 => Some(("m_iTotalScore", "070")), + 17510858074364778440u64 => Some(("m_iTotalScore", "071")), + 17511983974271877279u64 => Some(("m_iTotalScore", "072")), + 17513109874178976118u64 => Some(("m_iTotalScore", "073")), + 17506354474736572309u64 => Some(("m_iTotalScore", "074")), + 17507480374643671148u64 => Some(("m_iTotalScore", "075")), + 17508043324597125955u64 => Some(("m_iTotalScore", "076")), + 17509169224504224794u64 => Some(("m_iTotalScore", "077")), + 17502413825061820985u64 => Some(("m_iTotalScore", "078")), + 17503539724968919824u64 => Some(("m_iTotalScore", "079")), + 3340878882215387044u64 => Some(("m_iTotalScore", "080")), + 3339752982308288205u64 => Some(("m_iTotalScore", "081")), + 3342567732075940690u64 => Some(("m_iTotalScore", "082")), + 3341441832168841851u64 => Some(("m_iTotalScore", "083")), + 3344256581936494336u64 => Some(("m_iTotalScore", "084")), + 3343693631983039529u64 => Some(("m_iTotalScore", "085")), + 3346508381750692014u64 => Some(("m_iTotalScore", "086")), + 3345382481843593175u64 => Some(("m_iTotalScore", "087")), + 3348197231611245660u64 => Some(("m_iTotalScore", "088")), + 3347634281657790853u64 => Some(("m_iTotalScore", "089")), + 2716803778788846671u64 => Some(("m_iTotalScore", "090")), + 2717366728742301478u64 => Some(("m_iTotalScore", "091")), + 2714551978974648993u64 => Some(("m_iTotalScore", "092")), + 2715677878881747832u64 => Some(("m_iTotalScore", "093")), + 2712863129114095347u64 => Some(("m_iTotalScore", "094")), + 2713426079067550154u64 => Some(("m_iTotalScore", "095")), + 2710611329299897669u64 => Some(("m_iTotalScore", "096")), + 2711737229206996508u64 => Some(("m_iTotalScore", "097")), + 2708922479439344023u64 => Some(("m_iTotalScore", "098")), + 2710048379346442862u64 => Some(("m_iTotalScore", "099")), + 9907340415626862381u64 => Some(("m_iTotalScore", "100")), + 9908466315533961220u64 => Some(("m_iTotalScore", "101")), 16108208390436336308u64 => Some(("m_iUpgradeRefundCredits", "000")), 16107082490529237469u64 => Some(("m_iUpgradeRefundCredits", "001")), 16109897240296889954u64 => Some(("m_iUpgradeRefundCredits", "002")), @@ -6521,6 +8102,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 17292182302586675481u64 => Some(("m_iUpgradeRefundCredits", "063")), 17291619352633220674u64 => Some(("m_iUpgradeRefundCredits", "064")), 17290493452726121835u64 => Some(("m_iUpgradeRefundCredits", "065")), + 17289367552819022996u64 => Some(("m_iUpgradeRefundCredits", "066")), + 17288804602865568189u64 => Some(("m_iUpgradeRefundCredits", "067")), + 17302878351703830614u64 => Some(("m_iUpgradeRefundCredits", "068")), + 17301752451796731775u64 => Some(("m_iUpgradeRefundCredits", "069")), + 16640522651437065065u64 => Some(("m_iUpgradeRefundCredits", "070")), + 16641648551344163904u64 => Some(("m_iUpgradeRefundCredits", "071")), + 16642211501297618711u64 => Some(("m_iUpgradeRefundCredits", "072")), + 16643337401204717550u64 => Some(("m_iUpgradeRefundCredits", "073")), + 16636582001762313741u64 => Some(("m_iUpgradeRefundCredits", "074")), + 16637707901669412580u64 => Some(("m_iUpgradeRefundCredits", "075")), + 16638833801576511419u64 => Some(("m_iUpgradeRefundCredits", "076")), + 16639396751529966226u64 => Some(("m_iUpgradeRefundCredits", "077")), + 16648403950786567713u64 => Some(("m_iUpgradeRefundCredits", "078")), + 16648966900740022520u64 => Some(("m_iUpgradeRefundCredits", "079")), + 11053683068135280204u64 => Some(("m_iUpgradeRefundCredits", "080")), + 11052557168228181365u64 => Some(("m_iUpgradeRefundCredits", "081")), + 11055371917995833850u64 => Some(("m_iUpgradeRefundCredits", "082")), + 11054808968042379043u64 => Some(("m_iUpgradeRefundCredits", "083")), + 11057623717810031528u64 => Some(("m_iUpgradeRefundCredits", "084")), + 11056497817902932689u64 => Some(("m_iUpgradeRefundCredits", "085")), + 11059312567670585174u64 => Some(("m_iUpgradeRefundCredits", "086")), + 11058186667763486335u64 => Some(("m_iUpgradeRefundCredits", "087")), + 11045801768785777556u64 => Some(("m_iUpgradeRefundCredits", "088")), + 11045238818832322749u64 => Some(("m_iUpgradeRefundCredits", "089")), + 10398645717264373271u64 => Some(("m_iUpgradeRefundCredits", "090")), + 10399771617171472110u64 => Some(("m_iUpgradeRefundCredits", "091")), + 10396956867403819625u64 => Some(("m_iUpgradeRefundCredits", "092")), + 10398082767310918464u64 => Some(("m_iUpgradeRefundCredits", "093")), + 10395268017543265979u64 => Some(("m_iUpgradeRefundCredits", "094")), + 10395830967496720786u64 => Some(("m_iUpgradeRefundCredits", "095")), + 10393016217729068301u64 => Some(("m_iUpgradeRefundCredits", "096")), + 10394142117636167140u64 => Some(("m_iUpgradeRefundCredits", "097")), + 10406527016613875919u64 => Some(("m_iUpgradeRefundCredits", "098")), + 10407652916520974758u64 => Some(("m_iUpgradeRefundCredits", "099")), + 2962071297311484421u64 => Some(("m_iUpgradeRefundCredits", "100")), + 2963197197218583260u64 => Some(("m_iUpgradeRefundCredits", "101")), 12228225375779854974u64 => Some(("m_iUserID", "000")), 12227099475872756135u64 => Some(("m_iUserID", "001")), 12226536525919301328u64 => Some(("m_iUserID", "002")), @@ -6587,6 +8204,42 @@ pub fn get_prop_names(identifier: SendPropIdentifier) -> Option<(&'static str, & 10919839523898783979u64 => Some(("m_iUserID", "063")), 10922654273666436464u64 => Some(("m_iUserID", "064")), 10921528373759337625u64 => Some(("m_iUserID", "065")), + 10924343123526990110u64 => Some(("m_iUserID", "066")), + 10923217223619891271u64 => Some(("m_iUserID", "067")), + 10926031973387543756u64 => Some(("m_iUserID", "068")), + 10925469023434088949u64 => Some(("m_iUserID", "069")), + 10294638520565144767u64 => Some(("m_iUserID", "070")), + 10295201470518599574u64 => Some(("m_iUserID", "071")), + 10292386720750947089u64 => Some(("m_iUserID", "072")), + 10293512620658045928u64 => Some(("m_iUserID", "073")), + 10290697870890393443u64 => Some(("m_iUserID", "074")), + 10291823770797492282u64 => Some(("m_iUserID", "075")), + 10289009021029839797u64 => Some(("m_iUserID", "076")), + 10289571970983294604u64 => Some(("m_iUserID", "077")), + 10286757221215642119u64 => Some(("m_iUserID", "078")), + 10287883121122740958u64 => Some(("m_iUserID", "079")), + 7173700053478798870u64 => Some(("m_iUserID", "080")), + 7172574153571700031u64 => Some(("m_iUserID", "081")), + 7172011203618245224u64 => Some(("m_iUserID", "082")), + 7170885303711146385u64 => Some(("m_iUserID", "083")), + 7169759403804047546u64 => Some(("m_iUserID", "084")), + 7168633503896948707u64 => Some(("m_iUserID", "085")), + 7168070553943493900u64 => Some(("m_iUserID", "086")), + 7166944654036395061u64 => Some(("m_iUserID", "087")), + 7165818754129296222u64 => Some(("m_iUserID", "088")), + 7165255804175841415u64 => Some(("m_iUserID", "089")), + 6518662702607891937u64 => Some(("m_iUserID", "090")), + 6519788602514990776u64 => Some(("m_iUserID", "091")), + 6520914502422089615u64 => Some(("m_iUserID", "092")), + 6521477452375544422u64 => Some(("m_iUserID", "093")), + 6515285002886784645u64 => Some(("m_iUserID", "094")), + 6515847952840239452u64 => Some(("m_iUserID", "095")), + 6516973852747338291u64 => Some(("m_iUserID", "096")), + 6518099752654437130u64 => Some(("m_iUserID", "097")), + 6511344353212033321u64 => Some(("m_iUserID", "098")), + 6511907303165488128u64 => Some(("m_iUserID", "099")), + 17528832356364554703u64 => Some(("m_iUserID", "100")), + 17529958256271653542u64 => Some(("m_iUserID", "101")), 4273998206196309445u64 => Some(("m_iWarnOnCap", "000")), 4275124106103408284u64 => Some(("m_iWarnOnCap", "001")), 4275687056056863091u64 => Some(("m_iWarnOnCap", "002")), From a3a319cf5b4aa38abb3d5921d0ced80070477112 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 31 Jan 2024 20:29:58 +0100 Subject: [PATCH 17/45] fix nix --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index e511cec..3f716a0 100644 --- a/flake.nix +++ b/flake.nix @@ -48,7 +48,7 @@ cross-naersk' = pkgs.callPackage cross-naersk {inherit naersk;}; nearskOpt = { - inherit (pkgs.demostf-parser) pname root; + inherit (pkgs.demostf-parser) pname src; }; buildMatrix = targets: { From 85b82b279453af089f779ece6d120cf4f131cbea Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 31 Jan 2024 20:39:59 +0100 Subject: [PATCH 18/45] workflow updates --- .github/workflows/ci.yml | 22 +++++++++++----------- .github/workflows/release.yml | 8 ++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b57a164..81f451a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,8 +14,8 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci @@ -27,8 +27,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci @@ -41,8 +41,8 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - id: set-matrix run: echo "matrix=$(nix eval --json ".#matrix.x86_64-linux")" | tee $GITHUB_OUTPUT @@ -53,15 +53,15 @@ jobs: fail-fast: false matrix: ${{fromJson(needs.matrix.outputs.matrix)}} steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#${{ matrix.target }} - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: parser-${{ matrix.target }} path: result/bin/${{ matrix.artifact_name }} @@ -70,8 +70,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3be8972..aa17322 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,8 +11,8 @@ jobs: outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - id: set-matrix run: echo "matrix=$(nix eval --json ".#releaseMatrix.x86_64-linux")" | tee $GITHUB_OUTPUT @@ -22,8 +22,8 @@ jobs: strategy: matrix: ${{fromJson(needs.matrix.outputs.matrix)}} steps: - - uses: actions/checkout@v3 - - uses: cachix/install-nix-action@v20 + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 - uses: icewind1991/attic-action@v1 with: name: ci From f38e4caa726a3940582a30b1c89424e10d252621 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 1 Feb 2024 00:35:20 +0100 Subject: [PATCH 19/45] update schema --- schema.json | 135 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 111 insertions(+), 24 deletions(-) diff --git a/schema.json b/schema.json index f29f41c..9a99d99 100644 --- a/schema.json +++ b/schema.json @@ -946,6 +946,7 @@ "type": "object", "required": [ "additional_flags", + "player", "sound", "team", "type" @@ -956,6 +957,11 @@ "format": "uint16", "minimum": 0.0 }, + "player": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, "sound": { "$ref": "#/definitions/String" }, @@ -2039,7 +2045,8 @@ "issue", "param_1", "team", - "type" + "type", + "voteidx" ], "properties": { "initiator": { @@ -2063,6 +2070,11 @@ "enum": [ "VoteStarted" ] + }, + "voteidx": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 } } }, @@ -2075,7 +2087,8 @@ "vote_option_2", "vote_option_3", "vote_option_4", - "vote_option_5" + "vote_option_5", + "voteidx" ], "properties": { "potential_votes": { @@ -2113,6 +2126,11 @@ "type": "integer", "format": "uint8", "minimum": 0.0 + }, + "voteidx": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 } } }, @@ -2122,7 +2140,8 @@ "details", "param_1", "team", - "type" + "type", + "voteidx" ], "properties": { "details": { @@ -2141,6 +2160,11 @@ "enum": [ "VotePassed" ] + }, + "voteidx": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 } } }, @@ -2148,7 +2172,8 @@ "type": "object", "required": [ "team", - "type" + "type", + "voteidx" ], "properties": { "team": { @@ -2161,6 +2186,11 @@ "enum": [ "VoteFailed" ] + }, + "voteidx": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 } } }, @@ -2170,7 +2200,8 @@ "entity_id", "team", "type", - "vote_option" + "vote_option", + "voteidx" ], "properties": { "entity_id": { @@ -2193,6 +2224,11 @@ "type": "integer", "format": "uint8", "minimum": 0.0 + }, + "voteidx": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 } } }, @@ -2205,7 +2241,8 @@ "option_3", "option_4", "option_5", - "type" + "type", + "voteidx" ], "properties": { "count": { @@ -2233,6 +2270,11 @@ "enum": [ "VoteOptions" ] + }, + "voteidx": { + "type": "integer", + "format": "uint32", + "minimum": 0.0 } } }, @@ -9277,6 +9319,46 @@ } } }, + { + "type": "object", + "required": [ + "player", + "type" + ], + "properties": { + "player": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "type": { + "type": "string", + "enum": [ + "SkeletonKilledQuest" + ] + } + } + }, + { + "type": "object", + "required": [ + "player", + "type" + ], + "properties": { + "player": { + "type": "integer", + "format": "uint16", + "minimum": 0.0 + }, + "type": { + "type": "string", + "enum": [ + "SkeletonKingKilledQuest" + ] + } + } + }, { "type": "object", "required": [ @@ -11149,6 +11231,8 @@ "MerasmusStunned", "MerasmusPropFound", "HalloweenSkeletonKilled", + "SkeletonKilledQuest", + "SkeletonKingKilledQuest", "EscapeHell", "CrossSpectralBridge", "MiniGameWon", @@ -11920,7 +12004,7 @@ ], "properties": { "client": { - "$ref": "#/definitions/UserId" + "$ref": "#/definitions/EntityId" }, "from": { "anyOf": [ @@ -12292,6 +12376,7 @@ "type": "object", "required": [ "event", + "event_type", "event_type_id", "type" ], @@ -12299,6 +12384,9 @@ "event": { "$ref": "#/definitions/GameEvent" }, + "event_type": { + "$ref": "#/definitions/GameEventType" + }, "event_type_id": { "$ref": "#/definitions/GameEventTypeId" }, @@ -12327,12 +12415,14 @@ "minimum": 0.0 }, "delta": { - "type": [ - "integer", - "null" - ], - "format": "uint32", - "minimum": 1.0 + "anyOf": [ + { + "$ref": "#/definitions/ServerTick" + }, + { + "type": "null" + } + ] }, "entities": { "type": "array", @@ -12563,12 +12653,14 @@ "format": "float" }, "delta": { - "type": [ - "integer", - "null" - ], - "format": "uint32", - "minimum": 0.0 + "anyOf": [ + { + "$ref": "#/definitions/ServerTick" + }, + { + "type": "null" + } + ] }, "entity_index": { "$ref": "#/definitions/EntityId" @@ -12999,11 +13091,6 @@ } } }, - "UserId": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - }, "VGuiMenuMessageData": { "type": "object", "required": [ From 042481b3abe3b1d380e65631edff1cc6a3fa9c66 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 2 Feb 2024 19:31:12 +0100 Subject: [PATCH 20/45] fix schema for GameEventType --- schema.json | 806 +++++++++++++++++++------------------- src/codegen/gameevent.rs | 32 +- src/demo/gameevent_gen.rs | 424 +++++++++++++++++++- 3 files changed, 816 insertions(+), 446 deletions(-) diff --git a/schema.json b/schema.json index 9a99d99..f55b02e 100644 --- a/schema.json +++ b/schema.json @@ -10894,409 +10894,409 @@ { "type": "string", "enum": [ - "ServerSpawn", - "ServerChangeLevelFailed", - "ServerShutdown", - "ServerCvar", - "ServerMessage", - "ServerAddBan", - "ServerRemoveBan", - "PlayerConnect", - "PlayerConnectClient", - "PlayerInfo", - "PlayerDisconnect", - "PlayerActivate", - "PlayerSay", - "ClientDisconnect", - "ClientBeginConnect", - "ClientConnected", - "ClientFullConnect", - "HostQuit", - "TeamInfo", - "TeamScore", - "TeamPlayBroadcastAudio", - "PlayerTeam", - "PlayerClass", - "PlayerDeath", - "PlayerHurt", - "PlayerChat", - "PlayerScore", - "PlayerSpawn", - "PlayerShoot", - "PlayerUse", - "PlayerChangeName", - "PlayerHintMessage", - "BasePlayerTeleported", - "GameInit", - "GameNewMap", - "GameStart", - "GameEnd", - "RoundStart", - "RoundEnd", - "GameMessage", - "BreakBreakable", - "BreakProp", - "EntityKilled", - "BonusUpdated", - "AchievementEvent", - "AchievementIncrement", - "PhysgunPickup", - "FlareIgniteNpc", - "HelicopterGrenadePuntMiss", - "UserDataDownloaded", - "RagdollDissolved", - "HLTVChangedMode", - "HLTVChangedTarget", - "VoteEnded", - "VoteStarted", - "VoteChanged", - "VotePassed", - "VoteFailed", - "VoteCast", - "VoteOptions", - "ReplaySaved", - "EnteredPerformanceMode", - "BrowseReplays", - "ReplayYoutubeStats", - "InventoryUpdated", - "CartUpdated", - "StorePriceSheetUpdated", - "EconInventoryConnected", - "ItemSchemaInitialized", - "GcNewSession", - "GcLostSession", - "IntroFinish", - "IntroNextCamera", - "PlayerChangeClass", - "TfMapTimeRemaining", - "TfGameOver", - "CtfFlagCaptured", - "ControlPointInitialized", - "ControlPointUpdateImages", - "ControlPointUpdateLayout", - "ControlPointUpdateCapping", - "ControlPointUpdateOwner", - "ControlPointStartTouch", - "ControlPointEndTouch", - "ControlPointPulseElement", - "ControlPointFakeCapture", - "ControlPointFakeCaptureMultiplier", - "TeamPlayRoundSelected", - "TeamPlayRoundStart", - "TeamPlayRoundActive", - "TeamPlayWaitingBegins", - "TeamPlayWaitingEnds", - "TeamPlayWaitingAboutToEnd", - "TeamPlayRestartRound", - "TeamPlayReadyRestart", - "TeamPlayRoundRestartSeconds", - "TeamPlayTeamReady", - "TeamPlayRoundWin", - "TeamPlayUpdateTimer", - "TeamPlayRoundStalemate", - "TeamPlayOvertimeBegin", - "TeamPlayOvertimeEnd", - "TeamPlaySuddenDeathBegin", - "TeamPlaySuddenDeathEnd", - "TeamPlayGameOver", - "TeamPlayMapTimeRemaining", - "TeamPlayTimerFlash", - "TeamPlayTimerTimeAdded", - "TeamPlayPointStartCapture", - "TeamPlayPointCaptured", - "TeamPlayPointLocked", - "TeamPlayPointUnlocked", - "TeamPlayCaptureBroken", - "TeamPlayCaptureBlocked", - "TeamPlayFlagEvent", - "TeamPlayWinPanel", - "TeamPlayTeamBalancedPlayer", - "TeamPlaySetupFinished", - "TeamPlayAlert", - "TrainingComplete", - "ShowFreezePanel", - "HideFreezePanel", - "FreezeCamStarted", - "LocalPlayerChangeTeam", - "LocalPlayerScoreChanged", - "LocalPlayerChangeClass", - "LocalPlayerRespawn", - "BuildingInfoChanged", - "LocalPlayerChangeDisguise", - "PlayerAccountChanged", - "SpyPdaReset", - "FlagStatusUpdate", - "PlayerStatsUpdated", - "PlayingCommentary", - "PlayerChargeDeployed", - "PlayerBuiltObject", - "PlayerUpgradedObject", - "PlayerCarryObject", - "PlayerDropObject", - "ObjectRemoved", - "ObjectDestroyed", - "ObjectDetonated", - "AchievementEarned", - "SpecTargetUpdated", - "TournamentStateUpdate", - "TournamentEnableCountdown", - "PlayerCalledForMedic", - "PlayerAskedForBall", - "LocalPlayerBecameObserver", - "PlayerIgnitedInv", - "PlayerIgnited", - "PlayerExtinguished", - "PlayerTeleported", - "PlayerHealedMedicCall", - "LocalPlayerChargeReady", - "LocalPlayerWindDown", - "PlayerInvulned", - "EscortSpeed", - "EscortProgress", - "EscortRecede", - "GameUIActivated", - "GameUIHidden", - "PlayerEscortScore", - "PlayerHealOnHit", - "PlayerStealSandvich", - "ShowClassLayout", - "ShowVsPanel", - "PlayerDamaged", - "ArenaPlayerNotification", - "ArenaMatchMaxStreak", - "ArenaRoundStart", - "ArenaWinPanel", - "PveWinPanel", - "AirDash", - "Landed", - "PlayerDamageDodged", - "PlayerStunned", - "ScoutGrandSlam", - "ScoutSlamdollLanded", - "ArrowImpact", - "PlayerJarated", - "PlayerJaratedFade", - "PlayerShieldBlocked", - "PlayerPinned", - "PlayerHealedByMedic", - "PlayerSappedObject", - "ItemFound", - "ShowAnnotation", - "HideAnnotation", - "PostInventoryApplication", - "ControlPointUnlockUpdated", - "DeployBuffBanner", - "PlayerBuff", - "MedicDeath", - "OvertimeNag", - "TeamsChanged", - "HalloweenPumpkinGrab", - "RocketJump", - "RocketJumpLanded", - "StickyJump", - "StickyJumpLanded", - "RocketPackLaunch", - "RocketPackLanded", - "MedicDefended", - "LocalPlayerHealed", - "PlayerDestroyedPipeBomb", - "ObjectDeflected", - "PlayerMvp", - "RaidSpawnMob", - "RaidSpawnSquad", - "NavBlocked", - "PathTrackPassed", - "NumCappersChanged", - "PlayerRegenerate", - "UpdateStatusItem", - "StatsResetRound", - "ScoreStatsAccumulatedUpdate", - "ScoreStatsAccumulatedReset", - "AchievementEarnedLocal", - "PlayerHealed", - "BuildingHealed", - "ItemPickup", - "DuelStatus", - "FishNotice", - "FishNoticeArm", - "SlapNotice", - "ThrowableHit", - "PumpkinLordSummoned", - "PumpkinLordKilled", - "MerasmusSummoned", - "MerasmusKilled", - "MerasmusEscapeWarning", - "MerasmusEscaped", - "EyeballBossSummoned", - "EyeballBossStunned", - "EyeballBossKilled", - "EyeballBossKiller", - "EyeballBossEscapeImminent", - "EyeballBossEscaped", - "NpcHurt", - "ControlPointTimerUpdated", - "PlayerHighFiveStart", - "PlayerHighFiveCancel", - "PlayerHighFiveSuccess", - "PlayerBonusPoints", - "PlayerUpgraded", - "PlayerBuyback", - "PlayerUsedPowerUpBottle", - "ChristmasGiftGrab", - "PlayerKilledAchievementZone", - "PartyUpdated", - "PartyPrefChanged", - "PartyCriteriaChanged", - "PartyInvitesChanged", - "PartyQueueStateChanged", - "PartyChat", - "PartyMemberJoin", - "PartyMemberLeave", - "MatchInvitesUpdated", - "LobbyUpdated", - "MvmMissionUpdate", - "RecalculateHolidays", - "PlayerCurrencyChanged", - "DoomsdayRocketOpen", - "RemoveNemesisRelationships", - "MvmCreditBonusWave", - "MvmCreditBonusAll", - "MvmCreditBonusAllAdvanced", - "MvmQuickSentryUpgrade", - "MvmTankDestroyedByPlayers", - "MvmKillRobotDeliveringBomb", - "MvmPickupCurrency", - "MvmBombCarrierKilled", - "MvmSentryBusterDetonate", - "MvmScoutMarkedForDeath", - "MvmMedicPowerUpShared", - "MvmBeginWave", - "MvmWaveComplete", - "MvmMissionComplete", - "MvmBombResetByPlayer", - "MvmBombAlarmTriggered", - "MvmBombDeployResetByPlayer", - "MvmWaveFailed", - "MvmResetStats", - "DamageResisted", - "RevivePlayerNotify", - "RevivePlayerStopped", - "RevivePlayerComplete", - "PlayerTurnedToGhost", - "MedigunShieldBlockedDamage", - "MvmAdvWaveCompleteNoGates", - "MvmSniperHeadshotCurrency", - "MvmMannhattanPit", - "FlagCarriedInDetectionZone", - "MvmAdvWaveKilledStunRadio", - "PlayerDirectHitStun", - "MvmSentryBusterKilled", - "UpgradesFileChanged", - "RdTeamPointsChanged", - "RdRulesStateChanged", - "RdRobotKilled", - "RdRobotImpact", - "TeamPlayPreRoundTimeLeft", - "ParachuteDeploy", - "ParachuteHolster", - "KillRefillsMeter", - "RpsTauntEvent", - "CongaKill", - "PlayerInitialSpawn", - "CompetitiveVictory", - "CompetitiveStatsUpdate", - "MiniGameWin", - "SentryOnGoActive", - "DuckXpLevelUp", - "QuestLogOpened", - "SchemaUpdated", - "LocalPlayerPickupWeapon", - "RdPlayerScorePoints", - "DemomanDetStickies", - "QuestObjectiveCompleted", - "PlayerScoreChanged", - "KilledCappingPlayer", - "EnvironmentalDeath", - "ProjectileDirectHit", - "PassGet", - "PassScore", - "PassFree", - "PassPassCaught", - "PassBallStolen", - "PassBallBlocked", - "DamagePrevented", - "HalloweenBossKilled", - "EscapedLootIsland", - "TaggedPlayerAsIt", - "MerasmusStunned", - "MerasmusPropFound", - "HalloweenSkeletonKilled", - "SkeletonKilledQuest", - "SkeletonKingKilledQuest", - "EscapeHell", - "CrossSpectralBridge", - "MiniGameWon", - "RespawnGhost", - "KillInHell", - "HalloweenDuckCollected", - "SpecialScore", - "TeamLeaderKilled", - "HalloweenSoulCollected", - "RecalculateTruce", - "DeadRingerCheatDeath", - "CrossbowHeal", - "DamageMitigated", - "PayloadPushed", - "PlayerAbandonedMatch", - "ClDrawline", - "RestartTimerTime", - "WinLimitChanged", - "WinPanelShowScores", - "TopStreamsRequestFinished", - "CompetitiveStateChanged", - "GlobalWarDataUpdated", - "StopWatchChanged", - "DsStop", - "DsScreenshot", - "ShowMatchSummary", - "ExperienceChanged", - "BeginXpLerp", - "MatchmakerStatsUpdated", - "RematchVotePeriodOver", - "RematchFailedToCreate", - "PlayerRematchChange", - "PingUpdated", - "MMStatsUpdated", - "PlayerNextMapVoteChange", - "VoteMapsChanged", - "ProtoDefChanged", - "PlayerDomination", - "PlayerRocketPackPushed", - "QuestRequest", - "QuestResponse", - "QuestProgress", - "ProjectileRemoved", - "QuestMapDataChanged", - "GasDousedPlayerIgnited", - "QuestTurnInState", - "ItemsAcknowledged", - "CapperKilled", - "MainMenuStabilized", - "WorldStatusChanged", - "HLTVStatus", - "HLTVCameraman", - "HLTVRankCamera", - "HLTVRankEntity", - "HLTVFixed", - "HLTVChase", - "HLTVMessage", - "HLTVTitle", - "HLTVChat", - "ReplayStartRecord", - "ReplaySessionInfo", - "ReplayEndRecord", - "ReplayReplaysAvailable", - "ReplayServerError" + "server_spawn", + "server_changelevel_failed", + "server_shutdown", + "server_cvar", + "server_message", + "server_addban", + "server_removeban", + "player_connect", + "player_connect_client", + "player_info", + "player_disconnect", + "player_activate", + "player_say", + "client_disconnect", + "client_beginconnect", + "client_connected", + "client_fullconnect", + "host_quit", + "team_info", + "team_score", + "teamplay_broadcast_audio", + "player_team", + "player_class", + "player_death", + "player_hurt", + "player_chat", + "player_score", + "player_spawn", + "player_shoot", + "player_use", + "player_changename", + "player_hintmessage", + "base_player_teleported", + "game_init", + "game_newmap", + "game_start", + "game_end", + "round_start", + "round_end", + "game_message", + "break_breakable", + "break_prop", + "entity_killed", + "bonus_updated", + "achievement_event", + "achievement_increment", + "physgun_pickup", + "flare_ignite_npc", + "helicopter_grenade_punt_miss", + "user_data_downloaded", + "ragdoll_dissolved", + "hltv_changed_mode", + "hltv_changed_target", + "vote_ended", + "vote_started", + "vote_changed", + "vote_passed", + "vote_failed", + "vote_cast", + "vote_options", + "replay_saved", + "entered_performance_mode", + "browse_replays", + "replay_youtube_stats", + "inventory_updated", + "cart_updated", + "store_pricesheet_updated", + "econ_inventory_connected", + "item_schema_initialized", + "gc_new_session", + "gc_lost_session", + "intro_finish", + "intro_nextcamera", + "player_changeclass", + "tf_map_time_remaining", + "tf_game_over", + "ctf_flag_captured", + "controlpoint_initialized", + "controlpoint_updateimages", + "controlpoint_updatelayout", + "controlpoint_updatecapping", + "controlpoint_updateowner", + "controlpoint_starttouch", + "controlpoint_endtouch", + "controlpoint_pulse_element", + "controlpoint_fake_capture", + "controlpoint_fake_capture_mult", + "teamplay_round_selected", + "teamplay_round_start", + "teamplay_round_active", + "teamplay_waiting_begins", + "teamplay_waiting_ends", + "teamplay_waiting_abouttoend", + "teamplay_restart_round", + "teamplay_ready_restart", + "teamplay_round_restart_seconds", + "teamplay_team_ready", + "teamplay_round_win", + "teamplay_update_timer", + "teamplay_round_stalemate", + "teamplay_overtime_begin", + "teamplay_overtime_end", + "teamplay_suddendeath_begin", + "teamplay_suddendeath_end", + "teamplay_game_over", + "teamplay_map_time_remaining", + "teamplay_timer_flash", + "teamplay_timer_time_added", + "teamplay_point_startcapture", + "teamplay_point_captured", + "teamplay_point_locked", + "teamplay_point_unlocked", + "teamplay_capture_broken", + "teamplay_capture_blocked", + "teamplay_flag_event", + "teamplay_win_panel", + "teamplay_teambalanced_player", + "teamplay_setup_finished", + "teamplay_alert", + "training_complete", + "show_freezepanel", + "hide_freezepanel", + "freezecam_started", + "localplayer_changeteam", + "localplayer_score_changed", + "localplayer_changeclass", + "localplayer_respawn", + "building_info_changed", + "localplayer_changedisguise", + "player_account_changed", + "spy_pda_reset", + "flagstatus_update", + "player_stats_updated", + "playing_commentary", + "player_chargedeployed", + "player_builtobject", + "player_upgradedobject", + "player_carryobject", + "player_dropobject", + "object_removed", + "object_destroyed", + "object_detonated", + "achievement_earned", + "spec_target_updated", + "tournament_stateupdate", + "tournament_enablecountdown", + "player_calledformedic", + "player_askedforball", + "localplayer_becameobserver", + "player_ignited_inv", + "player_ignited", + "player_extinguished", + "player_teleported", + "player_healedmediccall", + "localplayer_chargeready", + "localplayer_winddown", + "player_invulned", + "escort_speed", + "escort_progress", + "escort_recede", + "gameui_activated", + "gameui_hidden", + "player_escort_score", + "player_healonhit", + "player_stealsandvich", + "show_class_layout", + "show_vs_panel", + "player_damaged", + "arena_player_notification", + "arena_match_maxstreak", + "arena_round_start", + "arena_win_panel", + "pve_win_panel", + "air_dash", + "landed", + "player_damage_dodged", + "player_stunned", + "scout_grand_slam", + "scout_slamdoll_landed", + "arrow_impact", + "player_jarated", + "player_jarated_fade", + "player_shield_blocked", + "player_pinned", + "player_healedbymedic", + "player_sapped_object", + "item_found", + "show_annotation", + "hide_annotation", + "post_inventory_application", + "controlpoint_unlock_updated", + "deploy_buff_banner", + "player_buff", + "medic_death", + "overtime_nag", + "teams_changed", + "halloween_pumpkin_grab", + "rocket_jump", + "rocket_jump_landed", + "sticky_jump", + "sticky_jump_landed", + "rocketpack_launch", + "rocketpack_landed", + "medic_defended", + "localplayer_healed", + "player_destroyed_pipebomb", + "object_deflected", + "player_mvp", + "raid_spawn_mob", + "raid_spawn_squad", + "nav_blocked", + "path_track_passed", + "num_cappers_changed", + "player_regenerate", + "update_status_item", + "stats_resetround", + "scorestats_accumulated_update", + "scorestats_accumulated_reset", + "achievement_earned_local", + "player_healed", + "building_healed", + "item_pickup", + "duel_status", + "fish_notice", + "fish_notice__arm", + "slap_notice", + "throwable_hit", + "pumpkin_lord_summoned", + "pumpkin_lord_killed", + "merasmus_summoned", + "merasmus_killed", + "merasmus_escape_warning", + "merasmus_escaped", + "eyeball_boss_summoned", + "eyeball_boss_stunned", + "eyeball_boss_killed", + "eyeball_boss_killer", + "eyeball_boss_escape_imminent", + "eyeball_boss_escaped", + "npc_hurt", + "controlpoint_timer_updated", + "player_highfive_start", + "player_highfive_cancel", + "player_highfive_success", + "player_bonuspoints", + "player_upgraded", + "player_buyback", + "player_used_powerup_bottle", + "christmas_gift_grab", + "player_killed_achievement_zone", + "party_updated", + "party_pref_changed", + "party_criteria_changed", + "party_invites_changed", + "party_queue_state_changed", + "party_chat", + "party_member_join", + "party_member_leave", + "match_invites_updated", + "lobby_updated", + "mvm_mission_update", + "recalculate_holidays", + "player_currency_changed", + "doomsday_rocket_open", + "remove_nemesis_relationships", + "mvm_creditbonus_wave", + "mvm_creditbonus_all", + "mvm_creditbonus_all_advanced", + "mvm_quick_sentry_upgrade", + "mvm_tank_destroyed_by_players", + "mvm_kill_robot_delivering_bomb", + "mvm_pickup_currency", + "mvm_bomb_carrier_killed", + "mvm_sentrybuster_detonate", + "mvm_scout_marked_for_death", + "mvm_medic_powerup_shared", + "mvm_begin_wave", + "mvm_wave_complete", + "mvm_mission_complete", + "mvm_bomb_reset_by_player", + "mvm_bomb_alarm_triggered", + "mvm_bomb_deploy_reset_by_player", + "mvm_wave_failed", + "mvm_reset_stats", + "damage_resisted", + "revive_player_notify", + "revive_player_stopped", + "revive_player_complete", + "player_turned_to_ghost", + "medigun_shield_blocked_damage", + "mvm_adv_wave_complete_no_gates", + "mvm_sniper_headshot_currency", + "mvm_mannhattan_pit", + "flag_carried_in_detection_zone", + "mvm_adv_wave_killed_stun_radio", + "player_directhit_stun", + "mvm_sentrybuster_killed", + "upgrades_file_changed", + "rd_team_points_changed", + "rd_rules_state_changed", + "rd_robot_killed", + "rd_robot_impact", + "teamplay_pre_round_time_left", + "parachute_deploy", + "parachute_holster", + "kill_refills_meter", + "rps_taunt_event", + "conga_kill", + "player_initial_spawn", + "competitive_victory", + "competitive_stats_update", + "minigame_win", + "sentry_on_go_active", + "duck_xp_level_up", + "questlog_opened", + "schema_updated", + "localplayer_pickup_weapon", + "rd_player_score_points", + "demoman_det_stickies", + "quest_objective_completed", + "player_score_changed", + "killed_capping_player", + "environmental_death", + "projectile_direct_hit", + "pass_get", + "pass_score", + "pass_free", + "pass_pass_caught", + "pass_ball_stolen", + "pass_ball_blocked", + "damage_prevented", + "halloween_boss_killed", + "escaped_loot_island", + "tagged_player_as_it", + "merasmus_stunned", + "merasmus_prop_found", + "halloween_skeleton_killed", + "skeleton_killed_quest", + "skeleton_king_killed_quest", + "escape_hell", + "cross_spectral_bridge", + "minigame_won", + "respawn_ghost", + "kill_in_hell", + "halloween_duck_collected", + "special_score", + "team_leader_killed", + "halloween_soul_collected", + "recalculate_truce", + "deadringer_cheat_death", + "crossbow_heal", + "damage_mitigated", + "payload_pushed", + "player_abandoned_match", + "cl_drawline", + "restart_timer_time", + "winlimit_changed", + "winpanel_show_scores", + "top_streams_request_finished", + "competitive_state_changed", + "global_war_data_updated", + "stop_watch_changed", + "ds_stop", + "ds_screenshot", + "show_match_summary", + "experience_changed", + "begin_xp_lerp", + "matchmaker_stats_updated", + "rematch_vote_period_over", + "rematch_failed_to_create", + "player_rematch_change", + "ping_updated", + "mmstats_updated", + "player_next_map_vote_change", + "vote_maps_changed", + "proto_def_changed", + "player_domination", + "player_rocketpack_pushed", + "quest_request", + "quest_response", + "quest_progress", + "projectile_removed", + "quest_map_data_changed", + "gas_doused_player_ignited", + "quest_turn_in_state", + "items_acknowledged", + "capper_killed", + "mainmenu_stabilized", + "world_status_changed", + "hltv_status", + "hltv_cameraman", + "hltv_rank_camera", + "hltv_rank_entity", + "hltv_fixed", + "hltv_chase", + "hltv_message", + "hltv_title", + "hltv_chat", + "replay_startrecord", + "replay_sessioninfo", + "replay_endrecord", + "replay_replaysavailable", + "replay_servererror" ] }, { diff --git a/src/codegen/gameevent.rs b/src/codegen/gameevent.rs index af6bb89..1c72232 100644 --- a/src/codegen/gameevent.rs +++ b/src/codegen/gameevent.rs @@ -229,7 +229,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { use crate::demo::Stream; use crate::{ParseError, Result}; use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; - use serde::{Deserialize, Deserializer, Serialize, Serializer}; + use serde::{Deserialize, Serialize}; use crate::demo::data::MaybeUtf8String; ); @@ -297,10 +297,14 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { }); let event_types = events.iter().map(|event| { - let name_str = get_event_name(event.event_type.as_str()); + let type_name = event.event_type.as_str(); + let name_str = get_event_name(type_name); let name = Ident::new(&name_str, span); - quote!(#name,) + quote!( + #[serde(rename = #type_name)] + #name, + ) }); let type_from_names = events.iter().map(|event| { @@ -398,32 +402,12 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] - #[derive(Clone, Debug, PartialEq, Eq, Hash)] + #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum GameEventType { #(#event_types)* Unknown(String), } - impl Serialize for GameEventType { - fn serialize(&self, serializer: S) -> std::result::Result - where - S: Serializer, - { - serializer.serialize_str(self.as_str()) - } - } - - impl<'de> Deserialize<'de> for GameEventType { - fn deserialize(deserializer: D) -> std::result::Result - where - D: Deserializer<'de>, - { - let str = <&str>::deserialize(deserializer)?; - Ok(GameEventType::from_type_name(str)) - } - } - - impl GameEventType { pub fn from_type_name(name: &str) -> Self { match name { diff --git a/src/demo/gameevent_gen.rs b/src/demo/gameevent_gen.rs index b2799f5..f9a3aa9 100644 --- a/src/demo/gameevent_gen.rs +++ b/src/demo/gameevent_gen.rs @@ -3,7 +3,7 @@ use crate::demo::data::MaybeUtf8String; use crate::demo::Stream; use crate::{ParseError, Result}; use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian}; -use serde::{Deserialize, Deserializer, Serialize, Serializer}; +use serde::{Deserialize, Serialize}; fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>( stream: &mut Stream<'a>, entry: Option<&GameEventEntry>, @@ -6756,430 +6756,816 @@ pub enum GameEvent { Unknown(RawGameEvent), } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum GameEventType { + #[serde(rename = "server_spawn")] ServerSpawn, + #[serde(rename = "server_changelevel_failed")] ServerChangeLevelFailed, + #[serde(rename = "server_shutdown")] ServerShutdown, + #[serde(rename = "server_cvar")] ServerCvar, + #[serde(rename = "server_message")] ServerMessage, + #[serde(rename = "server_addban")] ServerAddBan, + #[serde(rename = "server_removeban")] ServerRemoveBan, + #[serde(rename = "player_connect")] PlayerConnect, + #[serde(rename = "player_connect_client")] PlayerConnectClient, + #[serde(rename = "player_info")] PlayerInfo, + #[serde(rename = "player_disconnect")] PlayerDisconnect, + #[serde(rename = "player_activate")] PlayerActivate, + #[serde(rename = "player_say")] PlayerSay, + #[serde(rename = "client_disconnect")] ClientDisconnect, + #[serde(rename = "client_beginconnect")] ClientBeginConnect, + #[serde(rename = "client_connected")] ClientConnected, + #[serde(rename = "client_fullconnect")] ClientFullConnect, + #[serde(rename = "host_quit")] HostQuit, + #[serde(rename = "team_info")] TeamInfo, + #[serde(rename = "team_score")] TeamScore, + #[serde(rename = "teamplay_broadcast_audio")] TeamPlayBroadcastAudio, + #[serde(rename = "player_team")] PlayerTeam, + #[serde(rename = "player_class")] PlayerClass, + #[serde(rename = "player_death")] PlayerDeath, + #[serde(rename = "player_hurt")] PlayerHurt, + #[serde(rename = "player_chat")] PlayerChat, + #[serde(rename = "player_score")] PlayerScore, + #[serde(rename = "player_spawn")] PlayerSpawn, + #[serde(rename = "player_shoot")] PlayerShoot, + #[serde(rename = "player_use")] PlayerUse, + #[serde(rename = "player_changename")] PlayerChangeName, + #[serde(rename = "player_hintmessage")] PlayerHintMessage, + #[serde(rename = "base_player_teleported")] BasePlayerTeleported, + #[serde(rename = "game_init")] GameInit, + #[serde(rename = "game_newmap")] GameNewMap, + #[serde(rename = "game_start")] GameStart, + #[serde(rename = "game_end")] GameEnd, + #[serde(rename = "round_start")] RoundStart, + #[serde(rename = "round_end")] RoundEnd, + #[serde(rename = "game_message")] GameMessage, + #[serde(rename = "break_breakable")] BreakBreakable, + #[serde(rename = "break_prop")] BreakProp, + #[serde(rename = "entity_killed")] EntityKilled, + #[serde(rename = "bonus_updated")] BonusUpdated, + #[serde(rename = "achievement_event")] AchievementEvent, + #[serde(rename = "achievement_increment")] AchievementIncrement, + #[serde(rename = "physgun_pickup")] PhysgunPickup, + #[serde(rename = "flare_ignite_npc")] FlareIgniteNpc, + #[serde(rename = "helicopter_grenade_punt_miss")] HelicopterGrenadePuntMiss, + #[serde(rename = "user_data_downloaded")] UserDataDownloaded, + #[serde(rename = "ragdoll_dissolved")] RagdollDissolved, + #[serde(rename = "hltv_changed_mode")] HLTVChangedMode, + #[serde(rename = "hltv_changed_target")] HLTVChangedTarget, + #[serde(rename = "vote_ended")] VoteEnded, + #[serde(rename = "vote_started")] VoteStarted, + #[serde(rename = "vote_changed")] VoteChanged, + #[serde(rename = "vote_passed")] VotePassed, + #[serde(rename = "vote_failed")] VoteFailed, + #[serde(rename = "vote_cast")] VoteCast, + #[serde(rename = "vote_options")] VoteOptions, + #[serde(rename = "replay_saved")] ReplaySaved, + #[serde(rename = "entered_performance_mode")] EnteredPerformanceMode, + #[serde(rename = "browse_replays")] BrowseReplays, + #[serde(rename = "replay_youtube_stats")] ReplayYoutubeStats, + #[serde(rename = "inventory_updated")] InventoryUpdated, + #[serde(rename = "cart_updated")] CartUpdated, + #[serde(rename = "store_pricesheet_updated")] StorePriceSheetUpdated, + #[serde(rename = "econ_inventory_connected")] EconInventoryConnected, + #[serde(rename = "item_schema_initialized")] ItemSchemaInitialized, + #[serde(rename = "gc_new_session")] GcNewSession, + #[serde(rename = "gc_lost_session")] GcLostSession, + #[serde(rename = "intro_finish")] IntroFinish, + #[serde(rename = "intro_nextcamera")] IntroNextCamera, + #[serde(rename = "player_changeclass")] PlayerChangeClass, + #[serde(rename = "tf_map_time_remaining")] TfMapTimeRemaining, + #[serde(rename = "tf_game_over")] TfGameOver, + #[serde(rename = "ctf_flag_captured")] CtfFlagCaptured, + #[serde(rename = "controlpoint_initialized")] ControlPointInitialized, + #[serde(rename = "controlpoint_updateimages")] ControlPointUpdateImages, + #[serde(rename = "controlpoint_updatelayout")] ControlPointUpdateLayout, + #[serde(rename = "controlpoint_updatecapping")] ControlPointUpdateCapping, + #[serde(rename = "controlpoint_updateowner")] ControlPointUpdateOwner, + #[serde(rename = "controlpoint_starttouch")] ControlPointStartTouch, + #[serde(rename = "controlpoint_endtouch")] ControlPointEndTouch, + #[serde(rename = "controlpoint_pulse_element")] ControlPointPulseElement, + #[serde(rename = "controlpoint_fake_capture")] ControlPointFakeCapture, + #[serde(rename = "controlpoint_fake_capture_mult")] ControlPointFakeCaptureMultiplier, + #[serde(rename = "teamplay_round_selected")] TeamPlayRoundSelected, + #[serde(rename = "teamplay_round_start")] TeamPlayRoundStart, + #[serde(rename = "teamplay_round_active")] TeamPlayRoundActive, + #[serde(rename = "teamplay_waiting_begins")] TeamPlayWaitingBegins, + #[serde(rename = "teamplay_waiting_ends")] TeamPlayWaitingEnds, + #[serde(rename = "teamplay_waiting_abouttoend")] TeamPlayWaitingAboutToEnd, + #[serde(rename = "teamplay_restart_round")] TeamPlayRestartRound, + #[serde(rename = "teamplay_ready_restart")] TeamPlayReadyRestart, + #[serde(rename = "teamplay_round_restart_seconds")] TeamPlayRoundRestartSeconds, + #[serde(rename = "teamplay_team_ready")] TeamPlayTeamReady, + #[serde(rename = "teamplay_round_win")] TeamPlayRoundWin, + #[serde(rename = "teamplay_update_timer")] TeamPlayUpdateTimer, + #[serde(rename = "teamplay_round_stalemate")] TeamPlayRoundStalemate, + #[serde(rename = "teamplay_overtime_begin")] TeamPlayOvertimeBegin, + #[serde(rename = "teamplay_overtime_end")] TeamPlayOvertimeEnd, + #[serde(rename = "teamplay_suddendeath_begin")] TeamPlaySuddenDeathBegin, + #[serde(rename = "teamplay_suddendeath_end")] TeamPlaySuddenDeathEnd, + #[serde(rename = "teamplay_game_over")] TeamPlayGameOver, + #[serde(rename = "teamplay_map_time_remaining")] TeamPlayMapTimeRemaining, + #[serde(rename = "teamplay_timer_flash")] TeamPlayTimerFlash, + #[serde(rename = "teamplay_timer_time_added")] TeamPlayTimerTimeAdded, + #[serde(rename = "teamplay_point_startcapture")] TeamPlayPointStartCapture, + #[serde(rename = "teamplay_point_captured")] TeamPlayPointCaptured, + #[serde(rename = "teamplay_point_locked")] TeamPlayPointLocked, + #[serde(rename = "teamplay_point_unlocked")] TeamPlayPointUnlocked, + #[serde(rename = "teamplay_capture_broken")] TeamPlayCaptureBroken, + #[serde(rename = "teamplay_capture_blocked")] TeamPlayCaptureBlocked, + #[serde(rename = "teamplay_flag_event")] TeamPlayFlagEvent, + #[serde(rename = "teamplay_win_panel")] TeamPlayWinPanel, + #[serde(rename = "teamplay_teambalanced_player")] TeamPlayTeamBalancedPlayer, + #[serde(rename = "teamplay_setup_finished")] TeamPlaySetupFinished, + #[serde(rename = "teamplay_alert")] TeamPlayAlert, + #[serde(rename = "training_complete")] TrainingComplete, + #[serde(rename = "show_freezepanel")] ShowFreezePanel, + #[serde(rename = "hide_freezepanel")] HideFreezePanel, + #[serde(rename = "freezecam_started")] FreezeCamStarted, + #[serde(rename = "localplayer_changeteam")] LocalPlayerChangeTeam, + #[serde(rename = "localplayer_score_changed")] LocalPlayerScoreChanged, + #[serde(rename = "localplayer_changeclass")] LocalPlayerChangeClass, + #[serde(rename = "localplayer_respawn")] LocalPlayerRespawn, + #[serde(rename = "building_info_changed")] BuildingInfoChanged, + #[serde(rename = "localplayer_changedisguise")] LocalPlayerChangeDisguise, + #[serde(rename = "player_account_changed")] PlayerAccountChanged, + #[serde(rename = "spy_pda_reset")] SpyPdaReset, + #[serde(rename = "flagstatus_update")] FlagStatusUpdate, + #[serde(rename = "player_stats_updated")] PlayerStatsUpdated, + #[serde(rename = "playing_commentary")] PlayingCommentary, + #[serde(rename = "player_chargedeployed")] PlayerChargeDeployed, + #[serde(rename = "player_builtobject")] PlayerBuiltObject, + #[serde(rename = "player_upgradedobject")] PlayerUpgradedObject, + #[serde(rename = "player_carryobject")] PlayerCarryObject, + #[serde(rename = "player_dropobject")] PlayerDropObject, + #[serde(rename = "object_removed")] ObjectRemoved, + #[serde(rename = "object_destroyed")] ObjectDestroyed, + #[serde(rename = "object_detonated")] ObjectDetonated, + #[serde(rename = "achievement_earned")] AchievementEarned, + #[serde(rename = "spec_target_updated")] SpecTargetUpdated, + #[serde(rename = "tournament_stateupdate")] TournamentStateUpdate, + #[serde(rename = "tournament_enablecountdown")] TournamentEnableCountdown, + #[serde(rename = "player_calledformedic")] PlayerCalledForMedic, + #[serde(rename = "player_askedforball")] PlayerAskedForBall, + #[serde(rename = "localplayer_becameobserver")] LocalPlayerBecameObserver, + #[serde(rename = "player_ignited_inv")] PlayerIgnitedInv, + #[serde(rename = "player_ignited")] PlayerIgnited, + #[serde(rename = "player_extinguished")] PlayerExtinguished, + #[serde(rename = "player_teleported")] PlayerTeleported, + #[serde(rename = "player_healedmediccall")] PlayerHealedMedicCall, + #[serde(rename = "localplayer_chargeready")] LocalPlayerChargeReady, + #[serde(rename = "localplayer_winddown")] LocalPlayerWindDown, + #[serde(rename = "player_invulned")] PlayerInvulned, + #[serde(rename = "escort_speed")] EscortSpeed, + #[serde(rename = "escort_progress")] EscortProgress, + #[serde(rename = "escort_recede")] EscortRecede, + #[serde(rename = "gameui_activated")] GameUIActivated, + #[serde(rename = "gameui_hidden")] GameUIHidden, + #[serde(rename = "player_escort_score")] PlayerEscortScore, + #[serde(rename = "player_healonhit")] PlayerHealOnHit, + #[serde(rename = "player_stealsandvich")] PlayerStealSandvich, + #[serde(rename = "show_class_layout")] ShowClassLayout, + #[serde(rename = "show_vs_panel")] ShowVsPanel, + #[serde(rename = "player_damaged")] PlayerDamaged, + #[serde(rename = "arena_player_notification")] ArenaPlayerNotification, + #[serde(rename = "arena_match_maxstreak")] ArenaMatchMaxStreak, + #[serde(rename = "arena_round_start")] ArenaRoundStart, + #[serde(rename = "arena_win_panel")] ArenaWinPanel, + #[serde(rename = "pve_win_panel")] PveWinPanel, + #[serde(rename = "air_dash")] AirDash, + #[serde(rename = "landed")] Landed, + #[serde(rename = "player_damage_dodged")] PlayerDamageDodged, + #[serde(rename = "player_stunned")] PlayerStunned, + #[serde(rename = "scout_grand_slam")] ScoutGrandSlam, + #[serde(rename = "scout_slamdoll_landed")] ScoutSlamdollLanded, + #[serde(rename = "arrow_impact")] ArrowImpact, + #[serde(rename = "player_jarated")] PlayerJarated, + #[serde(rename = "player_jarated_fade")] PlayerJaratedFade, + #[serde(rename = "player_shield_blocked")] PlayerShieldBlocked, + #[serde(rename = "player_pinned")] PlayerPinned, + #[serde(rename = "player_healedbymedic")] PlayerHealedByMedic, + #[serde(rename = "player_sapped_object")] PlayerSappedObject, + #[serde(rename = "item_found")] ItemFound, + #[serde(rename = "show_annotation")] ShowAnnotation, + #[serde(rename = "hide_annotation")] HideAnnotation, + #[serde(rename = "post_inventory_application")] PostInventoryApplication, + #[serde(rename = "controlpoint_unlock_updated")] ControlPointUnlockUpdated, + #[serde(rename = "deploy_buff_banner")] DeployBuffBanner, + #[serde(rename = "player_buff")] PlayerBuff, + #[serde(rename = "medic_death")] MedicDeath, + #[serde(rename = "overtime_nag")] OvertimeNag, + #[serde(rename = "teams_changed")] TeamsChanged, + #[serde(rename = "halloween_pumpkin_grab")] HalloweenPumpkinGrab, + #[serde(rename = "rocket_jump")] RocketJump, + #[serde(rename = "rocket_jump_landed")] RocketJumpLanded, + #[serde(rename = "sticky_jump")] StickyJump, + #[serde(rename = "sticky_jump_landed")] StickyJumpLanded, + #[serde(rename = "rocketpack_launch")] RocketPackLaunch, + #[serde(rename = "rocketpack_landed")] RocketPackLanded, + #[serde(rename = "medic_defended")] MedicDefended, + #[serde(rename = "localplayer_healed")] LocalPlayerHealed, + #[serde(rename = "player_destroyed_pipebomb")] PlayerDestroyedPipeBomb, + #[serde(rename = "object_deflected")] ObjectDeflected, + #[serde(rename = "player_mvp")] PlayerMvp, + #[serde(rename = "raid_spawn_mob")] RaidSpawnMob, + #[serde(rename = "raid_spawn_squad")] RaidSpawnSquad, + #[serde(rename = "nav_blocked")] NavBlocked, + #[serde(rename = "path_track_passed")] PathTrackPassed, + #[serde(rename = "num_cappers_changed")] NumCappersChanged, + #[serde(rename = "player_regenerate")] PlayerRegenerate, + #[serde(rename = "update_status_item")] UpdateStatusItem, + #[serde(rename = "stats_resetround")] StatsResetRound, + #[serde(rename = "scorestats_accumulated_update")] ScoreStatsAccumulatedUpdate, + #[serde(rename = "scorestats_accumulated_reset")] ScoreStatsAccumulatedReset, + #[serde(rename = "achievement_earned_local")] AchievementEarnedLocal, + #[serde(rename = "player_healed")] PlayerHealed, + #[serde(rename = "building_healed")] BuildingHealed, + #[serde(rename = "item_pickup")] ItemPickup, + #[serde(rename = "duel_status")] DuelStatus, + #[serde(rename = "fish_notice")] FishNotice, + #[serde(rename = "fish_notice__arm")] FishNoticeArm, + #[serde(rename = "slap_notice")] SlapNotice, + #[serde(rename = "throwable_hit")] ThrowableHit, + #[serde(rename = "pumpkin_lord_summoned")] PumpkinLordSummoned, + #[serde(rename = "pumpkin_lord_killed")] PumpkinLordKilled, + #[serde(rename = "merasmus_summoned")] MerasmusSummoned, + #[serde(rename = "merasmus_killed")] MerasmusKilled, + #[serde(rename = "merasmus_escape_warning")] MerasmusEscapeWarning, + #[serde(rename = "merasmus_escaped")] MerasmusEscaped, + #[serde(rename = "eyeball_boss_summoned")] EyeballBossSummoned, + #[serde(rename = "eyeball_boss_stunned")] EyeballBossStunned, + #[serde(rename = "eyeball_boss_killed")] EyeballBossKilled, + #[serde(rename = "eyeball_boss_killer")] EyeballBossKiller, + #[serde(rename = "eyeball_boss_escape_imminent")] EyeballBossEscapeImminent, + #[serde(rename = "eyeball_boss_escaped")] EyeballBossEscaped, + #[serde(rename = "npc_hurt")] NpcHurt, + #[serde(rename = "controlpoint_timer_updated")] ControlPointTimerUpdated, + #[serde(rename = "player_highfive_start")] PlayerHighFiveStart, + #[serde(rename = "player_highfive_cancel")] PlayerHighFiveCancel, + #[serde(rename = "player_highfive_success")] PlayerHighFiveSuccess, + #[serde(rename = "player_bonuspoints")] PlayerBonusPoints, + #[serde(rename = "player_upgraded")] PlayerUpgraded, + #[serde(rename = "player_buyback")] PlayerBuyback, + #[serde(rename = "player_used_powerup_bottle")] PlayerUsedPowerUpBottle, + #[serde(rename = "christmas_gift_grab")] ChristmasGiftGrab, + #[serde(rename = "player_killed_achievement_zone")] PlayerKilledAchievementZone, + #[serde(rename = "party_updated")] PartyUpdated, + #[serde(rename = "party_pref_changed")] PartyPrefChanged, + #[serde(rename = "party_criteria_changed")] PartyCriteriaChanged, + #[serde(rename = "party_invites_changed")] PartyInvitesChanged, + #[serde(rename = "party_queue_state_changed")] PartyQueueStateChanged, + #[serde(rename = "party_chat")] PartyChat, + #[serde(rename = "party_member_join")] PartyMemberJoin, + #[serde(rename = "party_member_leave")] PartyMemberLeave, + #[serde(rename = "match_invites_updated")] MatchInvitesUpdated, + #[serde(rename = "lobby_updated")] LobbyUpdated, + #[serde(rename = "mvm_mission_update")] MvmMissionUpdate, + #[serde(rename = "recalculate_holidays")] RecalculateHolidays, + #[serde(rename = "player_currency_changed")] PlayerCurrencyChanged, + #[serde(rename = "doomsday_rocket_open")] DoomsdayRocketOpen, + #[serde(rename = "remove_nemesis_relationships")] RemoveNemesisRelationships, + #[serde(rename = "mvm_creditbonus_wave")] MvmCreditBonusWave, + #[serde(rename = "mvm_creditbonus_all")] MvmCreditBonusAll, + #[serde(rename = "mvm_creditbonus_all_advanced")] MvmCreditBonusAllAdvanced, + #[serde(rename = "mvm_quick_sentry_upgrade")] MvmQuickSentryUpgrade, + #[serde(rename = "mvm_tank_destroyed_by_players")] MvmTankDestroyedByPlayers, + #[serde(rename = "mvm_kill_robot_delivering_bomb")] MvmKillRobotDeliveringBomb, + #[serde(rename = "mvm_pickup_currency")] MvmPickupCurrency, + #[serde(rename = "mvm_bomb_carrier_killed")] MvmBombCarrierKilled, + #[serde(rename = "mvm_sentrybuster_detonate")] MvmSentryBusterDetonate, + #[serde(rename = "mvm_scout_marked_for_death")] MvmScoutMarkedForDeath, + #[serde(rename = "mvm_medic_powerup_shared")] MvmMedicPowerUpShared, + #[serde(rename = "mvm_begin_wave")] MvmBeginWave, + #[serde(rename = "mvm_wave_complete")] MvmWaveComplete, + #[serde(rename = "mvm_mission_complete")] MvmMissionComplete, + #[serde(rename = "mvm_bomb_reset_by_player")] MvmBombResetByPlayer, + #[serde(rename = "mvm_bomb_alarm_triggered")] MvmBombAlarmTriggered, + #[serde(rename = "mvm_bomb_deploy_reset_by_player")] MvmBombDeployResetByPlayer, + #[serde(rename = "mvm_wave_failed")] MvmWaveFailed, + #[serde(rename = "mvm_reset_stats")] MvmResetStats, + #[serde(rename = "damage_resisted")] DamageResisted, + #[serde(rename = "revive_player_notify")] RevivePlayerNotify, + #[serde(rename = "revive_player_stopped")] RevivePlayerStopped, + #[serde(rename = "revive_player_complete")] RevivePlayerComplete, + #[serde(rename = "player_turned_to_ghost")] PlayerTurnedToGhost, + #[serde(rename = "medigun_shield_blocked_damage")] MedigunShieldBlockedDamage, + #[serde(rename = "mvm_adv_wave_complete_no_gates")] MvmAdvWaveCompleteNoGates, + #[serde(rename = "mvm_sniper_headshot_currency")] MvmSniperHeadshotCurrency, + #[serde(rename = "mvm_mannhattan_pit")] MvmMannhattanPit, + #[serde(rename = "flag_carried_in_detection_zone")] FlagCarriedInDetectionZone, + #[serde(rename = "mvm_adv_wave_killed_stun_radio")] MvmAdvWaveKilledStunRadio, + #[serde(rename = "player_directhit_stun")] PlayerDirectHitStun, + #[serde(rename = "mvm_sentrybuster_killed")] MvmSentryBusterKilled, + #[serde(rename = "upgrades_file_changed")] UpgradesFileChanged, + #[serde(rename = "rd_team_points_changed")] RdTeamPointsChanged, + #[serde(rename = "rd_rules_state_changed")] RdRulesStateChanged, + #[serde(rename = "rd_robot_killed")] RdRobotKilled, + #[serde(rename = "rd_robot_impact")] RdRobotImpact, + #[serde(rename = "teamplay_pre_round_time_left")] TeamPlayPreRoundTimeLeft, + #[serde(rename = "parachute_deploy")] ParachuteDeploy, + #[serde(rename = "parachute_holster")] ParachuteHolster, + #[serde(rename = "kill_refills_meter")] KillRefillsMeter, + #[serde(rename = "rps_taunt_event")] RpsTauntEvent, + #[serde(rename = "conga_kill")] CongaKill, + #[serde(rename = "player_initial_spawn")] PlayerInitialSpawn, + #[serde(rename = "competitive_victory")] CompetitiveVictory, + #[serde(rename = "competitive_stats_update")] CompetitiveStatsUpdate, + #[serde(rename = "minigame_win")] MiniGameWin, + #[serde(rename = "sentry_on_go_active")] SentryOnGoActive, + #[serde(rename = "duck_xp_level_up")] DuckXpLevelUp, + #[serde(rename = "questlog_opened")] QuestLogOpened, + #[serde(rename = "schema_updated")] SchemaUpdated, + #[serde(rename = "localplayer_pickup_weapon")] LocalPlayerPickupWeapon, + #[serde(rename = "rd_player_score_points")] RdPlayerScorePoints, + #[serde(rename = "demoman_det_stickies")] DemomanDetStickies, + #[serde(rename = "quest_objective_completed")] QuestObjectiveCompleted, + #[serde(rename = "player_score_changed")] PlayerScoreChanged, + #[serde(rename = "killed_capping_player")] KilledCappingPlayer, + #[serde(rename = "environmental_death")] EnvironmentalDeath, + #[serde(rename = "projectile_direct_hit")] ProjectileDirectHit, + #[serde(rename = "pass_get")] PassGet, + #[serde(rename = "pass_score")] PassScore, + #[serde(rename = "pass_free")] PassFree, + #[serde(rename = "pass_pass_caught")] PassPassCaught, + #[serde(rename = "pass_ball_stolen")] PassBallStolen, + #[serde(rename = "pass_ball_blocked")] PassBallBlocked, + #[serde(rename = "damage_prevented")] DamagePrevented, + #[serde(rename = "halloween_boss_killed")] HalloweenBossKilled, + #[serde(rename = "escaped_loot_island")] EscapedLootIsland, + #[serde(rename = "tagged_player_as_it")] TaggedPlayerAsIt, + #[serde(rename = "merasmus_stunned")] MerasmusStunned, + #[serde(rename = "merasmus_prop_found")] MerasmusPropFound, + #[serde(rename = "halloween_skeleton_killed")] HalloweenSkeletonKilled, + #[serde(rename = "skeleton_killed_quest")] SkeletonKilledQuest, + #[serde(rename = "skeleton_king_killed_quest")] SkeletonKingKilledQuest, + #[serde(rename = "escape_hell")] EscapeHell, + #[serde(rename = "cross_spectral_bridge")] CrossSpectralBridge, + #[serde(rename = "minigame_won")] MiniGameWon, + #[serde(rename = "respawn_ghost")] RespawnGhost, + #[serde(rename = "kill_in_hell")] KillInHell, + #[serde(rename = "halloween_duck_collected")] HalloweenDuckCollected, + #[serde(rename = "special_score")] SpecialScore, + #[serde(rename = "team_leader_killed")] TeamLeaderKilled, + #[serde(rename = "halloween_soul_collected")] HalloweenSoulCollected, + #[serde(rename = "recalculate_truce")] RecalculateTruce, + #[serde(rename = "deadringer_cheat_death")] DeadRingerCheatDeath, + #[serde(rename = "crossbow_heal")] CrossbowHeal, + #[serde(rename = "damage_mitigated")] DamageMitigated, + #[serde(rename = "payload_pushed")] PayloadPushed, + #[serde(rename = "player_abandoned_match")] PlayerAbandonedMatch, + #[serde(rename = "cl_drawline")] ClDrawline, + #[serde(rename = "restart_timer_time")] RestartTimerTime, + #[serde(rename = "winlimit_changed")] WinLimitChanged, + #[serde(rename = "winpanel_show_scores")] WinPanelShowScores, + #[serde(rename = "top_streams_request_finished")] TopStreamsRequestFinished, + #[serde(rename = "competitive_state_changed")] CompetitiveStateChanged, + #[serde(rename = "global_war_data_updated")] GlobalWarDataUpdated, + #[serde(rename = "stop_watch_changed")] StopWatchChanged, + #[serde(rename = "ds_stop")] DsStop, + #[serde(rename = "ds_screenshot")] DsScreenshot, + #[serde(rename = "show_match_summary")] ShowMatchSummary, + #[serde(rename = "experience_changed")] ExperienceChanged, + #[serde(rename = "begin_xp_lerp")] BeginXpLerp, + #[serde(rename = "matchmaker_stats_updated")] MatchmakerStatsUpdated, + #[serde(rename = "rematch_vote_period_over")] RematchVotePeriodOver, + #[serde(rename = "rematch_failed_to_create")] RematchFailedToCreate, + #[serde(rename = "player_rematch_change")] PlayerRematchChange, + #[serde(rename = "ping_updated")] PingUpdated, + #[serde(rename = "mmstats_updated")] MMStatsUpdated, + #[serde(rename = "player_next_map_vote_change")] PlayerNextMapVoteChange, + #[serde(rename = "vote_maps_changed")] VoteMapsChanged, + #[serde(rename = "proto_def_changed")] ProtoDefChanged, + #[serde(rename = "player_domination")] PlayerDomination, + #[serde(rename = "player_rocketpack_pushed")] PlayerRocketPackPushed, + #[serde(rename = "quest_request")] QuestRequest, + #[serde(rename = "quest_response")] QuestResponse, + #[serde(rename = "quest_progress")] QuestProgress, + #[serde(rename = "projectile_removed")] ProjectileRemoved, + #[serde(rename = "quest_map_data_changed")] QuestMapDataChanged, + #[serde(rename = "gas_doused_player_ignited")] GasDousedPlayerIgnited, + #[serde(rename = "quest_turn_in_state")] QuestTurnInState, + #[serde(rename = "items_acknowledged")] ItemsAcknowledged, + #[serde(rename = "capper_killed")] CapperKilled, + #[serde(rename = "mainmenu_stabilized")] MainMenuStabilized, + #[serde(rename = "world_status_changed")] WorldStatusChanged, + #[serde(rename = "hltv_status")] HLTVStatus, + #[serde(rename = "hltv_cameraman")] HLTVCameraman, + #[serde(rename = "hltv_rank_camera")] HLTVRankCamera, + #[serde(rename = "hltv_rank_entity")] HLTVRankEntity, + #[serde(rename = "hltv_fixed")] HLTVFixed, + #[serde(rename = "hltv_chase")] HLTVChase, + #[serde(rename = "hltv_message")] HLTVMessage, + #[serde(rename = "hltv_title")] HLTVTitle, + #[serde(rename = "hltv_chat")] HLTVChat, + #[serde(rename = "replay_startrecord")] ReplayStartRecord, + #[serde(rename = "replay_sessioninfo")] ReplaySessionInfo, + #[serde(rename = "replay_endrecord")] ReplayEndRecord, + #[serde(rename = "replay_replaysavailable")] ReplayReplaysAvailable, + #[serde(rename = "replay_servererror")] ReplayServerError, Unknown(String), } -impl Serialize for GameEventType { - fn serialize(&self, serializer: S) -> std::result::Result - where - S: Serializer, - { - serializer.serialize_str(self.as_str()) - } -} -impl<'de> Deserialize<'de> for GameEventType { - fn deserialize(deserializer: D) -> std::result::Result - where - D: Deserializer<'de>, - { - let str = <&str>::deserialize(deserializer)?; - Ok(GameEventType::from_type_name(str)) - } -} impl GameEventType { pub fn from_type_name(name: &str) -> Self { match name { From d9ff9d46626f2c55084125c2fcb39a1dd0c1839b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 2 Feb 2024 19:39:56 +0100 Subject: [PATCH 21/45] fix schema for SendPropIdentifier --- schema.json | 4 +--- src/demo/sendprop.rs | 12 +++++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/schema.json b/schema.json index f55b02e..fa65a80 100644 --- a/schema.json +++ b/schema.json @@ -12817,9 +12817,7 @@ "minimum": 0.0 }, "SendPropIdentifier": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 + "type": "string" }, "SendPropName": { "type": "string" diff --git a/src/demo/sendprop.rs b/src/demo/sendprop.rs index d1463e4..0a7cdfc 100644 --- a/src/demo/sendprop.rs +++ b/src/demo/sendprop.rs @@ -1114,7 +1114,6 @@ impl<'a> TryFrom<&'a SendPropValue> for &'a [SendPropValue] { } } -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(Debug, Clone, Copy, Ord, PartialOrd, Eq, PartialEq, Hash)] pub struct SendPropIdentifier(u64); @@ -1199,6 +1198,17 @@ impl Serialize for SendPropIdentifier { } } +#[cfg(feature = "schema")] +impl schemars::JsonSchema for SendPropIdentifier { + fn schema_name() -> String { + "SendPropIdentifier".into() + } + + fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema { + ::json_schema(gen) + } +} + #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(Clone, Display, PartialEq, Serialize, Deserialize)] #[display("{index} = {value}")] From 217211f2fb25cf66edc7f9e70be1322e7b05a59a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Mar 2024 16:26:43 +0100 Subject: [PATCH 22/45] show server send messages as chat --- Cargo.lock | 4 - Cargo.toml | 4 + src/demo/message/usermessage.rs | 72 ++-- src/demo/parser/analyser.rs | 39 +- tests/snapshots/tests__comp.dem_minimal.snap | 102 +++++ tests/snapshots/tests__decal.dem_minimal.snap | 24 ++ .../tests__emptysaytext.dem_minimal.snap | 84 ++++ tests/snapshots/tests__gully.dem_minimal.snap | 390 ++++++++++++++++++ .../tests__malformed_cvar.dem_minimal.snap | 84 ++++ .../tests__protocol23.dem_minimal.snap | 12 + .../tests__saytext2.dem_minimal.snap | 6 + tests/snapshots/tests__small.dem_minimal.snap | 9 +- 12 files changed, 785 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 878ba07..23b1c18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -959,8 +959,6 @@ dependencies = [ [[package]] name = "schemars" version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", "schemars_derive", @@ -971,8 +969,6 @@ dependencies = [ [[package]] name = "schemars_derive" version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 44c3b98..2cd33db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,6 +68,10 @@ tempfile = { version = "3", optional = true } lazy_static = { version = "1", optional = true } prettyplease = { version = "0.1", optional = true } +[patch.crates-io] +schemars = { path = '../../rust/schemars/schemars' } +schemars_derive = { path = '../../rust/schemars/schemars_derive' } + [features] schema = ["schemars", "bitbuffer/schemars"] trace = ["tracing", "tracing-subscriber"] diff --git a/src/demo/message/usermessage.rs b/src/demo/message/usermessage.rs index f06db8c..11b7f81 100644 --- a/src/demo/message/usermessage.rs +++ b/src/demo/message/usermessage.rs @@ -247,39 +247,43 @@ pub struct SayText2Message { pub text: MaybeUtf8String, } -impl SayText2Message { - pub fn plain_text(&self) -> String { - // 1: normal, 2: old colors, 3: team, 4: location, 5 achievement, 6 custom - let mut text = self.text.to_string().replace(|c| c <= char::from(6), ""); - // 7: 6-char hex - while let Some(pos) = text.chars().enumerate().find_map(|(index, c)| { - if c == char::from(7) { - Some(index) - } else { - None - } - }) { - text = text - .chars() - .take(pos) - .chain(text.chars().skip(pos + 7)) - .collect(); +fn to_plain_text(text: &str) -> String { + // 1: normal, 2: old colors, 3: team, 4: location, 5 achievement, 6 custom + let mut text = text.replace(|c| c <= char::from(6), ""); + // 7: 6-char hex + while let Some(pos) = text.chars().enumerate().find_map(|(index, c)| { + if c == char::from(7) { + Some(index) + } else { + None } - // 9: 8-char hex - while let Some(pos) = text.chars().enumerate().find_map(|(index, c)| { - if c == char::from(9) { - Some(index) - } else { - None - } - }) { - text = text - .chars() - .take(pos) - .chain(text.chars().skip(pos + 9)) - .collect(); + }) { + text = text + .chars() + .take(pos) + .chain(text.chars().skip(pos + 7)) + .collect(); + } + // 9: 8-char hex + while let Some(pos) = text.chars().enumerate().find_map(|(index, c)| { + if c == char::from(9) { + Some(index) + } else { + None } - text + }) { + text = text + .chars() + .take(pos) + .chain(text.chars().skip(pos + 9)) + .collect(); + } + text +} + +impl SayText2Message { + pub fn plain_text(&self) -> String { + to_plain_text(self.text.as_ref()) } } @@ -364,6 +368,12 @@ pub struct TextMessage { pub substitute: [MaybeUtf8String; 4], } +impl TextMessage { + pub fn plain_text(&self) -> String { + to_plain_text(self.text.as_ref()) + } +} + #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(BitRead, BitWrite, Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct ResetHudMessage { diff --git a/src/demo/parser/analyser.rs b/src/demo/parser/analyser.rs index 850db49..d6086c2 100644 --- a/src/demo/parser/analyser.rs +++ b/src/demo/parser/analyser.rs @@ -3,7 +3,9 @@ use crate::demo::gameevent_gen::{ GameEvent, PlayerDeathEvent, PlayerSpawnEvent, TeamPlayRoundWinEvent, }; use crate::demo::message::packetentities::EntityId; -use crate::demo::message::usermessage::{ChatMessageKind, SayText2Message, UserMessage}; +use crate::demo::message::usermessage::{ + ChatMessageKind, HudTextLocation, SayText2Message, TextMessage, UserMessage, +}; use crate::demo::message::{Message, MessageType}; use crate::demo::packet::stringtable::StringTableEntry; use crate::demo::parser::handler::{BorrowMessageHandler, MessageHandler}; @@ -39,6 +41,15 @@ impl ChatMessage { tick, } } + + pub fn from_text(message: &TextMessage, tick: DemoTick) -> Self { + ChatMessage { + kind: ChatMessageKind::Empty, + from: String::new(), + text: message.plain_text(), + tick, + } + } } #[derive( @@ -457,16 +468,26 @@ impl Analyser { } fn handle_user_message(&mut self, message: &UserMessage, tick: DemoTick) { - if let UserMessage::SayText2(text_message) = message { - if text_message.kind == ChatMessageKind::NameChange { - if let Some(from) = text_message.from.clone() { - self.change_name(from.into(), text_message.plain_text()); + match message { + UserMessage::SayText2(text_message) => { + if text_message.kind == ChatMessageKind::NameChange { + if let Some(from) = text_message.from.clone() { + self.change_name(from.into(), text_message.plain_text()); + } + } else { + self.state + .chat + .push(ChatMessage::from_message(text_message, tick)); } - } else { - self.state - .chat - .push(ChatMessage::from_message(text_message, tick)); } + UserMessage::Text(text_message) => { + if text_message.location == HudTextLocation::PrintTalk { + self.state + .chat + .push(ChatMessage::from_text(text_message, tick)); + } + } + _ => {} } } diff --git a/tests/snapshots/tests__comp.dem_minimal.snap b/tests/snapshots/tests__comp.dem_minimal.snap index 98ac7ca..2465b98 100644 --- a/tests/snapshots/tests__comp.dem_minimal.snap +++ b/tests/snapshots/tests__comp.dem_minimal.snap @@ -4,30 +4,90 @@ expression: state --- { "chat": [ + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Demo recording completed", + "tick": 0 + }, { "kind": "TF_Chat_All", "from": "frying pan", "text": "gamers assembly", "tick": 16 }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Uploading demo auto-20181103-2046-pl_upward.dem", + "tick": 204 + }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Demos must be at least 5 minutes long", + "tick": 2638 + }, { "kind": "TF_Chat_All", "from": "Sian", "text": "thanks @demos.tf", "tick": 3284 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED lost their uber advantage (39 seconds)", + "tick": 4376 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 48 seconds before using it", + "tick": 12508 + }, { "kind": "TF_Chat_AllDead", "from": "frying pan", "text": ":(", "tick": 20640 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU spent 16.6 seconds after spawning before healing", + "tick": 23676 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED lost their uber advantage (11 seconds)", + "tick": 27124 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED's medic died with 100% uber", + "tick": 27540 + }, { "kind": "TF_Chat_AllDead", "from": "Chochy", "text": "epic map", "tick": 29596 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 80 seconds before using it", + "tick": 32424 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED's medic died with 100% uber", + "tick": 38084 + }, { "kind": "TF_Chat_AllDead", "from": "Mystt", @@ -46,6 +106,12 @@ expression: state "text": "why are you up there", "tick": 46256 }, + { + "kind": "Empty", + "from": "", + "text": "#TF_TeamsSwitched", + "tick": 48464 + }, { "kind": "TF_Chat_All", "from": "frying pan", @@ -58,6 +124,18 @@ expression: state "text": "!log", "tick": 49060 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU lost their uber advantage (11 seconds)", + "tick": 52764 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 72 seconds before using it", + "tick": 57374 + }, { "kind": "TF_Chat_AllDead", "from": "Chochy", @@ -70,6 +148,24 @@ expression: state "text": "t", "tick": 60618 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU lost their uber advantage (19 seconds)", + "tick": 81376 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU's medic died with 100% uber", + "tick": 82206 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU spent 9.1 seconds after spawning before healing", + "tick": 83404 + }, { "kind": "TF_Chat_AllDead", "from": "Chochy", @@ -88,6 +184,12 @@ expression: state "text": "gg", "tick": 85732 }, + { + "kind": "Empty", + "from": "", + "text": "[SOAP] Plugins reloaded.", + "tick": 85900 + }, { "kind": "TF_Chat_All", "from": "", diff --git a/tests/snapshots/tests__decal.dem_minimal.snap b/tests/snapshots/tests__decal.dem_minimal.snap index c084b57..9e5cef4 100644 --- a/tests/snapshots/tests__decal.dem_minimal.snap +++ b/tests/snapshots/tests__decal.dem_minimal.snap @@ -34,6 +34,12 @@ expression: state "text": "gr", "tick": 47043 }, + { + "kind": "Empty", + "from": "", + "text": "#TF_TeamsSwitched", + "tick": 47283 + }, { "kind": "TF_Chat_All", "from": "", @@ -394,6 +400,12 @@ expression: state "text": "[LogsTF] Uploading logs...", "tick": 85836 }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Demo recording completed", + "tick": 85843 + }, { "kind": "TF_Chat_Team_Dead", "from": "huge obese guy", @@ -406,6 +418,12 @@ expression: state "text": "!log", "tick": 86033 }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Uploading demo 20190819-2009-pl_upward.dem", + "tick": 86033 + }, { "kind": "TF_Chat_All", "from": "", @@ -418,6 +436,12 @@ expression: state "text": "[LogsTF] To see the stats, type: !log", "tick": 86133 }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: json_decode error: Syntax error", + "tick": 86218 + }, { "kind": "TF_Chat_All", "from": "^D The Godfather | KING", diff --git a/tests/snapshots/tests__emptysaytext.dem_minimal.snap b/tests/snapshots/tests__emptysaytext.dem_minimal.snap index 450e26e..7b5bbd4 100644 --- a/tests/snapshots/tests__emptysaytext.dem_minimal.snap +++ b/tests/snapshots/tests__emptysaytext.dem_minimal.snap @@ -4,12 +4,48 @@ expression: state --- { "chat": [ + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Demo recording completed", + "tick": 1 + }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: Uploading demo auto-20210602-2316-cp_sunshine.dem", + "tick": 200 + }, + { + "kind": "Empty", + "from": "", + "text": "[demos.tf]: json_decode error: Syntax error", + "tick": 1046 + }, { "kind": "TF_Chat_All", "from": "", "text": "", "tick": 4280 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU lost their uber advantage (19 seconds)", + "tick": 8693 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 33 seconds before using it", + "tick": 9663 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED had uber for 33 seconds before using it", + "tick": 10892 + }, { "kind": "TF_Chat_All", "from": "", @@ -40,6 +76,12 @@ expression: state "text": "se me parte la cabeza : tengo a v1lshock clavandome su ojo en la cara", "tick": 16714 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED lost their uber advantage (11 seconds)", + "tick": 16714 + }, { "kind": "TF_Chat_All", "from": "", @@ -118,18 +160,48 @@ expression: state "text": "[PH] Bienvenido a puntero's Hub.", "tick": 36280 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 33 seconds before using it", + "tick": 38818 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED had uber for 31 seconds before using it", + "tick": 39002 + }, { "kind": "TF_Chat_All", "from": "", "text": "[PH] Únete a nuestro Discord para conocer más sobre el servidor: https://discord.gg/bfWRBKGZDQ", "tick": 44280 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 70 seconds before using it", + "tick": 48889 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED had uber for 102 seconds before using it", + "tick": 50247 + }, { "kind": "TF_Chat_All", "from": "", "text": "[PH] ¿Beneficios? Toda información sobre el servidor en nuestro Discord.", "tick": 52280 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED lost their uber advantage (18 seconds)", + "tick": 59620 + }, { "kind": "TF_Chat_All", "from": "", @@ -142,12 +214,24 @@ expression: state "text": "", "tick": 68280 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU had uber for 37 seconds before using it", + "tick": 69421 + }, { "kind": "TF_Chat_All", "from": "", "text": "", "tick": 76280 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED lost their uber advantage (12 seconds)", + "tick": 76513 + }, { "kind": "TF_Chat_All", "from": "", diff --git a/tests/snapshots/tests__gully.dem_minimal.snap b/tests/snapshots/tests__gully.dem_minimal.snap index 9002c05..de618d1 100644 --- a/tests/snapshots/tests__gully.dem_minimal.snap +++ b/tests/snapshots/tests__gully.dem_minimal.snap @@ -22,6 +22,12 @@ expression: state "text": "[P-REC] Recording...", "tick": 8 }, + { + "kind": "Empty", + "from": "", + "text": "Recording started", + "tick": 47 + }, { "kind": "TF_Chat_Team", "from": "Trademark", @@ -34,6 +40,18 @@ expression: state "text": "u b e r e d u b e r e d u b e r e d ", "tick": 4378 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.10\n", + "tick": 4700 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.10\n", + "tick": 4700 + }, { "kind": "TF_Chat_All", "from": "distraughtduck4", @@ -46,12 +64,48 @@ expression: state "text": "[LogsTF] To see the stats from the previous rounds, type: .ss", "tick": 7479 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 8057 + }, { "kind": "TF_Chat_Team", "from": "Trademark", "text": "u b e r e d u b e r e d u b e r e d ", "tick": 12561 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 12777 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 2.76\n", + "tick": 13168 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 2.76\n", + "tick": 13168 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.34\n", + "tick": 18133 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.34\n", + "tick": 18133 + }, { "kind": "TF_Chat_Team", "from": "Trademark", @@ -106,6 +160,30 @@ expression: state "text": "die meatshot die meatshot DIE DIE", "tick": 22725 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.27\n", + "tick": 23110 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.27\n", + "tick": 23110 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.40\n", + "tick": 24368 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.40\n", + "tick": 24368 + }, { "kind": "TF_Chat_All", "from": "schy", @@ -124,18 +202,78 @@ expression: state "text": "ns trade", "tick": 30781 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.03\n", + "tick": 31867 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.03\n", + "tick": 31867 + }, { "kind": "TF_Chat_Team_Dead", "from": "Trademark", "text": "u b e r e d u b e r e d u b e r e d ", "tick": 32301 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.97\n", + "tick": 36008 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.97\n", + "tick": 36008 + }, { "kind": "TF_Chat_Team", "from": "Trademark", "text": ">> FAKE << ", "tick": 36538 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 6.26\n", + "tick": 40189 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 6.26\n", + "tick": 40189 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.06\n", + "tick": 42138 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.06\n", + "tick": 42138 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.06\n", + "tick": 46341 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.06\n", + "tick": 46341 + }, { "kind": "TF_Chat_All", "from": "distraughtduck4", @@ -148,6 +286,18 @@ expression: state "text": "u b e r e d u b e r e d u b e r e d ", "tick": 47044 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.80\n", + "tick": 47830 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.80\n", + "tick": 47830 + }, { "kind": "TF_Chat_AllDead", "from": "anytime will do my love", @@ -184,12 +334,24 @@ expression: state "text": "ns", "tick": 51384 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 51849 + }, { "kind": "TF_Chat_Team", "from": "Trademark", "text": "u b e r e d u b e r e d u b e r e d ", "tick": 53540 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 55747 + }, { "kind": "TF_Chat_All", "from": "distraughtduck4", @@ -214,6 +376,12 @@ expression: state "text": "just dont", "tick": 61843 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 62024 + }, { "kind": "TF_Chat_AllDead", "from": "jinta", @@ -238,6 +406,12 @@ expression: state "text": "engi dm", "tick": 63679 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 63704 + }, { "kind": "TF_Chat_All", "from": "jinta", @@ -268,6 +442,30 @@ expression: state "text": "u lived i hate u", "tick": 67728 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 0.84\n", + "tick": 68298 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 0.84\n", + "tick": 68298 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 2.49\n", + "tick": 70522 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 2.49\n", + "tick": 70522 + }, { "kind": "TF_Chat_AllDead", "from": "Trademark", @@ -340,12 +538,30 @@ expression: state "text": "u b e r e d u b e r e d u b e r e d ", "tick": 76283 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 76353 + }, { "kind": "TF_Chat_Team_Dead", "from": "Trademark", "text": "u b e r e d u b e r e d u b e r e d ", "tick": 76854 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 6.30\n", + "tick": 77024 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 6.30\n", + "tick": 77024 + }, { "kind": "TF_Chat_All", "from": "anytime will do my love", @@ -364,6 +580,18 @@ expression: state "text": "oh", "tick": 80225 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.33\n", + "tick": 80357 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.33\n", + "tick": 80357 + }, { "kind": "TF_Chat_All", "from": "schy", @@ -442,6 +670,18 @@ expression: state "text": "owned noob", "tick": 82584 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 2.55\n", + "tick": 83344 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 2.55\n", + "tick": 83344 + }, { "kind": "TF_Chat_Team", "from": "Trademark", @@ -472,6 +712,66 @@ expression: state "text": "schys gay", "tick": 85718 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.44\n", + "tick": 86149 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.44\n", + "tick": 86149 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 1.46\n", + "tick": 86281 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 1.46\n", + "tick": 86281 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 1.13\n", + "tick": 86305 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 1.13\n", + "tick": 86305 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 0.06\n", + "tick": 86841 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 0.06\n", + "tick": 86841 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.76\n", + "tick": 86928 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.76\n", + "tick": 86928 + }, { "kind": "TF_Chat_All", "from": "distraughtduck4", @@ -514,6 +814,12 @@ expression: state "text": "meatshot die die DIE", "tick": 88336 }, + { + "kind": "Empty", + "from": "", + "text": "[SM] You are flooding the server!", + "tick": 88420 + }, { "kind": "TF_Chat_All", "from": "Boog", @@ -598,6 +904,30 @@ expression: state "text": "meatshot die meatshot die MEATSHOT DIE", "tick": 89444 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.07\n", + "tick": 90243 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 5.07\n", + "tick": 90243 + }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 1.98\n", + "tick": 90449 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 1.98\n", + "tick": 90449 + }, { "kind": "TF_Chat_All", "from": "distraughtduck4", @@ -616,6 +946,18 @@ expression: state "text": "meatshot die die DIE", "tick": 91124 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 6.87\n", + "tick": 91525 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 6.87\n", + "tick": 91525 + }, { "kind": "TF_Chat_All", "from": "Boog", @@ -646,6 +988,18 @@ expression: state "text": "meatshot meatshot meatshot DIE", "tick": 95070 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.29\n", + "tick": 95499 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 3.29\n", + "tick": 95499 + }, { "kind": "TF_Chat_AllDead", "from": "anytime will do my love", @@ -688,6 +1042,12 @@ expression: state "text": "MEATSHOT DIE DIE", "tick": 99674 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 99811 + }, { "kind": "TF_Chat_AllDead", "from": "jinta", @@ -718,6 +1078,18 @@ expression: state "text": "Ze Venetian Doktor! : Be Quite im playing you asse", "tick": 101398 }, + { + "kind": "Empty", + "from": "", + "text": "Red: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 4.43\n", + "tick": 101811 + }, + { + "kind": "Empty", + "from": "", + "text": "Blue: Min Spawn 8.90, Scalar 0.79, Next Spawn In: 4.43\n", + "tick": 101811 + }, { "kind": "TF_Chat_Team", "from": "Trademark", @@ -736,6 +1108,12 @@ expression: state "text": "jinta ive seen you win these before", "tick": 104434 }, + { + "kind": "Empty", + "from": "", + "text": "#game_spawn_as", + "tick": 104764 + }, { "kind": "TF_Chat_AllDead", "from": "freak u ___", @@ -802,6 +1180,18 @@ expression: state "text": "[LogsTF] Uploading logs...", "tick": 105351 }, + { + "kind": "Empty", + "from": "", + "text": "Recording stopped", + "tick": 105351 + }, + { + "kind": "Empty", + "from": "", + "text": "PUG ends with the score 3 to 5.", + "tick": 105351 + }, { "kind": "TF_Chat_AllDead", "from": "tridud", diff --git a/tests/snapshots/tests__malformed_cvar.dem_minimal.snap b/tests/snapshots/tests__malformed_cvar.dem_minimal.snap index 49c1ada..28bfa1f 100644 --- a/tests/snapshots/tests__malformed_cvar.dem_minimal.snap +++ b/tests/snapshots/tests__malformed_cvar.dem_minimal.snap @@ -16,6 +16,78 @@ expression: state "text": "thanks", "tick": 5000 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU's medic died with 100% uber", + "tick": 5328 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU spent 7.4 seconds after spawning before healing", + "tick": 6926 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU's medic died with 99% uber", + "tick": 10588 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU spent 9.0 seconds after spawning before healing", + "tick": 28546 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED spent 11.4 seconds after spawning before healing", + "tick": 28786 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED's medic died with 100% uber", + "tick": 33083 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED spent 17.0 seconds after spawning before healing", + "tick": 35446 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED's medic died with 100% uber", + "tick": 40339 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED spent 11.3 seconds after spawning before healing", + "tick": 42406 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU spent 19.4 seconds after spawning before healing", + "tick": 44226 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] BLU's medic died with 100% uber", + "tick": 47735 + }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED had uber for 35 seconds before using it", + "tick": 61463 + }, { "kind": "TF_Chat_All", "from": "master race", @@ -28,6 +100,12 @@ expression: state "text": "gr", "tick": 62805 }, + { + "kind": "Empty", + "from": "", + "text": "[STV Stats] RED spent 8.5 seconds after spawning before healing", + "tick": 66293 + }, { "kind": "TF_Chat_AllDead", "from": "Donald Stump", @@ -105,6 +183,12 @@ expression: state "from": "", "text": "[LogsTF] Uploading logs...", "tick": 80333 + }, + { + "kind": "Empty", + "from": "", + "text": "[SOAP] Plugins reloaded.", + "tick": 80333 } ], "users": { diff --git a/tests/snapshots/tests__protocol23.dem_minimal.snap b/tests/snapshots/tests__protocol23.dem_minimal.snap index e48d518..74b5182 100644 --- a/tests/snapshots/tests__protocol23.dem_minimal.snap +++ b/tests/snapshots/tests__protocol23.dem_minimal.snap @@ -10,6 +10,12 @@ expression: state "text": "[P-REC] Recording...", "tick": 110 }, + { + "kind": "Empty", + "from": "", + "text": "#TF_TeamsSwitched", + "tick": 110 + }, { "kind": "TF_Chat_All", "from": "[GC]Kimo [DK]", @@ -352,6 +358,12 @@ expression: state "text": "gj", "tick": 39077 }, + { + "kind": "Empty", + "from": "", + "text": "#TF_TeamsSwitched", + "tick": 39153 + }, { "kind": "TF_Chat_All", "from": "[GC]Coféeee", diff --git a/tests/snapshots/tests__saytext2.dem_minimal.snap b/tests/snapshots/tests__saytext2.dem_minimal.snap index 320809d..75d6c0f 100644 --- a/tests/snapshots/tests__saytext2.dem_minimal.snap +++ b/tests/snapshots/tests__saytext2.dem_minimal.snap @@ -136,6 +136,12 @@ expression: state "text": "gr", "tick": 36278 }, + { + "kind": "Empty", + "from": "", + "text": "#TF_TeamsSwitched", + "tick": 36300 + }, { "kind": "TF_Chat_All", "from": "Pride | Mafia Boss", diff --git a/tests/snapshots/tests__small.dem_minimal.snap b/tests/snapshots/tests__small.dem_minimal.snap index 0c86d11..36a5635 100644 --- a/tests/snapshots/tests__small.dem_minimal.snap +++ b/tests/snapshots/tests__small.dem_minimal.snap @@ -3,7 +3,14 @@ source: tests/tests.rs expression: state --- { - "chat": [], + "chat": [ + { + "kind": "Empty", + "from": "", + "text": "#TF_timeleft", + "tick": 4 + } + ], "users": { "2": { "classes": {}, From a732a11bc52ec76611cad8a5d992e8adbf114291 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Mar 2024 16:26:57 +0100 Subject: [PATCH 23/45] 0.5.1 --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2cd33db..36a13f8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tf-demo-parser" description = "parser for tf2 demo files" -version = "0.5.0" +version = "0.5.1" authors = ["Robin Appelman "] edition = "2021" license = "MIT OR Apache-2.0" From 198ce2f451ea1bda343954ac0ad7ccbe19f10603 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Mar 2024 16:34:38 +0100 Subject: [PATCH 24/45] schemars from git --- Cargo.lock | 4 +++- Cargo.toml | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 23b1c18..ac1e517 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -959,6 +959,7 @@ dependencies = [ [[package]] name = "schemars" version = "0.8.16" +source = "git+https://github.com/icewind1991/schemars?branch=simplify-generated-enum-code#1a82a9f045bc0b1ebd7e9466877ffbb7d45a6eef" dependencies = [ "dyn-clone", "schemars_derive", @@ -969,6 +970,7 @@ dependencies = [ [[package]] name = "schemars_derive" version = "0.8.16" +source = "git+https://github.com/icewind1991/schemars?branch=simplify-generated-enum-code#1a82a9f045bc0b1ebd7e9466877ffbb7d45a6eef" dependencies = [ "proc-macro2", "quote", @@ -1182,7 +1184,7 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "tf-demo-parser" -version = "0.5.0" +version = "0.5.1" dependencies = [ "Inflector", "better-panic", diff --git a/Cargo.toml b/Cargo.toml index 36a13f8..26f9ccd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,8 +69,8 @@ lazy_static = { version = "1", optional = true } prettyplease = { version = "0.1", optional = true } [patch.crates-io] -schemars = { path = '../../rust/schemars/schemars' } -schemars_derive = { path = '../../rust/schemars/schemars_derive' } +schemars = { git = 'https://github.com/icewind1991/schemars', branch = "simplify-generated-enum-code" } +schemars_derive = { git = 'https://github.com/icewind1991/schemars', branch = "simplify-generated-enum-code" } [features] schema = ["schemars", "bitbuffer/schemars"] From 2449c9666019a99b791f84d3c0c38b6b7c71ad20 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Mar 2024 18:02:55 +0100 Subject: [PATCH 25/45] =?UTF-8?q?disable=20lto=20=E2=98=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 2 +- parser.nix | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 26f9ccd..55e491c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -85,7 +85,7 @@ criterion = "0.4.0" insta = { version = "1.34.0", features = ["json"] } [profile.release] -lto = true +lto = "thin" [profile.dev] opt-level = 2 diff --git a/parser.nix b/parser.nix index 60d4cbb..bda663f 100644 --- a/parser.nix +++ b/parser.nix @@ -14,5 +14,8 @@ in cargoLock = { lockFile = ./Cargo.lock; + outputHashes = { + "schemars-0.8.16" = "sha256-mQR56Ym76gSRulZrThmZHHw2JfhEgYhWXabwaYmyMYs="; + }; }; } From 1682edb1137c0d51fa6d6cae088f51a96992b3a2 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 29 Mar 2024 18:59:41 +0100 Subject: [PATCH 26/45] nix: only build parser --- parser.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parser.nix b/parser.nix index bda663f..c0226a6 100644 --- a/parser.nix +++ b/parser.nix @@ -10,6 +10,10 @@ in pname = "demostf-parser"; version = "0.1.0"; + cargoBuildFlags = '' + --bin parse_demo + ''; + inherit src; cargoLock = { From 7ef73499bfd8050710acca0c7bcec4d0c50e54aa Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 5 Apr 2024 13:09:56 +0200 Subject: [PATCH 27/45] fix hydra job --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 3f716a0..2828d49 100644 --- a/flake.nix +++ b/flake.nix @@ -143,7 +143,7 @@ // { overlays.default = import ./overlay.nix; hydraJobs = eachSystem ["x86_64-linux" "aarch64-linux"] (system: { - parser = self.packages.${system}.tf-demo-parser; + parser = self.packages.${system}.demostf-parser; }); }); } From 0b99f713f09bdf46943fe12a33c4008e34cea4e7 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 5 Apr 2024 16:40:12 +0200 Subject: [PATCH 28/45] don't run tests on aarch64 hydra --- parser.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/parser.nix b/parser.nix index c0226a6..fbe910d 100644 --- a/parser.nix +++ b/parser.nix @@ -16,6 +16,8 @@ in inherit src; + doCheck = stdenv.system == "x86_64-linux"; # building the tests takes +- forever on aarch64 for some reason + cargoLock = { lockFile = ./Cargo.lock; outputHashes = { From 490b4a03abbc8b369201ad934ac9c460d9de36f2 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 14:46:45 +0200 Subject: [PATCH 29/45] bumb dependencies --- Cargo.lock | 681 +++++++++++++++++++++++------------------------------ Cargo.toml | 42 ++-- 2 files changed, 317 insertions(+), 406 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac1e517..1925914 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,9 +25,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -39,27 +39,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] -name = "atty" -version = "0.2.14" +name = "anstyle" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -82,47 +77,42 @@ dependencies = [ [[package]] name = "bitbuffer" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525586993a118417512a49bada2d143319310891f48b0b116c8f64fbb6486c87" +checksum = "367fd16a8072d50e8e205d88e684a7eec9ddfb756165a076ebe9ecc41fd82192" dependencies = [ "bitbuffer_derive", - "err-derive", "memchr", - "num-traits 0.2.17", + "num-traits 0.2.18", "schemars", "serde", + "thiserror", ] [[package]] name = "bitbuffer_derive" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052a5a614540ae9bb7de25c2c86a94b6de7374cb7e3230f3128955bdaea62c3f" +checksum = "d158db6773597efd161c929e48a7c1811acaa6f55cc189cff557042c8890f71a" dependencies = [ + "merge", "proc-macro2", "quote", - "syn 1.0.109", - "syn_util", + "structmeta", + "syn 2.0.58", ] [[package]] name = "bitflags" -version = "1.3.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "cast" @@ -132,12 +122,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "1fd97381a8cc6493395a5afc4c691c1084b3768db713b73aa215217aa245d153" [[package]] name = "cfg-if" @@ -147,9 +134,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "ciborium" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ "ciborium-io", "ciborium-ll", @@ -158,15 +145,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] name = "ciborium-ll" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", "half", @@ -174,52 +161,56 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.25" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ - "bitflags 1.3.2", - "clap_lex", - "indexmap 1.9.3", - "textwrap", + "clap_builder", ] [[package]] -name = "clap_lex" -version = "0.2.4" +name = "clap_builder" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ - "os_str_bytes", + "anstyle", + "clap_lex", ] +[[package]] +name = "clap_lex" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" + [[package]] name = "console" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", - "windows-sys 0.45.0", + "windows-sys", ] [[package]] name = "criterion" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" dependencies = [ "anes", - "atty", "cast", "ciborium", "clap", "criterion-plot", - "itertools", - "lazy_static", - "num-traits 0.2.17", + "is-terminal", + "itertools 0.10.5", + "num-traits 0.2.18", + "once_cell", "oorandom", "plotters", "rayon", @@ -238,39 +229,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.5", ] [[package]] name = "crossbeam-deque" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.17" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.18" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "diff" @@ -280,15 +271,15 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "encode_unicode" @@ -307,9 +298,9 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" dependencies = [ "enumflags2_derive", "serde", @@ -317,13 +308,13 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] @@ -353,14 +344,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fnv" @@ -376,15 +367,13 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "half" -version = "1.8.2" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] [[package]] name = "hashbrown" @@ -394,12 +383,9 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "iai" @@ -409,36 +395,36 @@ checksum = "71a816c97c42258aa5834d07590b718b4c9a598944cd39a52dc25b351185d678" [[package]] name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown", ] [[package]] name = "insta" -version = "1.34.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc" +checksum = "3eab73f58e59ca6526037208f0e98851159ec1633cf17b6cd2e1f2c3fd5d53cc" dependencies = [ "console", "lazy_static", "linked-hash-map", "serde", "similar", - "yaml-rust", +] + +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys", ] [[package]] @@ -450,11 +436,20 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jemalloc-sys" @@ -478,9 +473,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -511,9 +506,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "main_error" @@ -532,28 +527,50 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" + +[[package]] +name = "merge" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "10bbef93abb1da61525bbc45eeaff6473a41907d19f8f9aa5168d214e10693e9" +dependencies = [ + "merge_derive", + "num-traits 0.2.18", +] + +[[package]] +name = "merge_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209d075476da2e63b4b29e72a2ef627b840589588e71400a25e3565c4f849d07" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] [[package]] name = "no-panic" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc56831a2ae584dc43a8b0b33f496e71fb4d43cf8c1c0a3fd932e6340bea1f81" +checksum = "c711522eedec2a96bb3672ad60a03561cb28934ab1e9b97d2ecb58e07c79ef52" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] @@ -577,7 +594,7 @@ dependencies = [ "num-integer", "num-iter", "num-rational", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -588,7 +605,7 @@ checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -597,28 +614,27 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -630,7 +646,7 @@ dependencies = [ "autocfg", "num-bigint", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -639,37 +655,37 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.58", ] [[package]] @@ -693,12 +709,6 @@ version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" -[[package]] -name = "os_str_bytes" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" - [[package]] name = "overload" version = "0.1.1" @@ -707,35 +717,34 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parse-display" -version = "0.8.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6509d08722b53e8dafe97f2027b22ccbe3a5db83cb352931e9716b0aa44bc5c" +checksum = "06af5f9333eb47bd9ba8462d612e37a8328a5cb80b13f0af4de4c3b89f52dee5" dependencies = [ - "once_cell", "parse-display-derive", "regex", + "regex-syntax 0.8.3", ] [[package]] name = "parse-display-derive" -version = "0.8.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68517892c8daf78da08c0db777fcc17e07f2f63ef70041718f8a7630ad84f341" +checksum = "dc9252f259500ee570c75adcc4e317fa6f57a1e47747d622e0bf838002a7b790" dependencies = [ - "once_cell", "proc-macro2", "quote", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.3", "structmeta", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "plotters" @@ -743,7 +752,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", "plotters-backend", "plotters-svg", "wasm-bindgen", @@ -777,21 +786,20 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn 2.0.58", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "once_cell", "toml_edit", ] @@ -821,9 +829,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.75" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -839,9 +847,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -849,33 +857,24 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "regex" -version = "1.10.2" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -889,13 +888,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -906,15 +905,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rustc-demangle" @@ -924,28 +917,28 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -980,22 +973,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.194" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.194" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] @@ -1011,9 +1004,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -1028,7 +1021,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] @@ -1042,15 +1035,15 @@ dependencies = [ [[package]] name = "similar" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21" +checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640" [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "snap" @@ -1075,25 +1068,25 @@ dependencies = [ [[package]] name = "structmeta" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ad9e09554f0456d67a69c1584c9798ba733a5b50349a6c0d0948710523922d" +checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] name = "structmeta-derive" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" +checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] @@ -1109,26 +1102,15 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.47" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1726efe18f42ae774cc644f330953a5e7b3c3003d3edcecf18850fe9d4dd9afb" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] -[[package]] -name = "syn_util" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6754c4559b79657554e9d8a0d56e65e490c76d382b9c23108364ec4125dea23c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "synstructure" version = "0.12.6" @@ -1143,44 +1125,48 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "test-case" -version = "2.2.2" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d6cf5a7dffb3f9dceec8e6b8ca528d9bd71d36c9f074defb548ce161f598c0" +checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8" dependencies = [ "test-case-macros", ] [[package]] -name = "test-case-macros" -version = "2.2.2" +name = "test-case-core" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e45b7bf6e19353ddd832745c8fcf77a17a93171df7151187f26623f2b75b5b26" +checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" dependencies = [ "cfg-if", - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.58", ] [[package]] -name = "textwrap" -version = "0.16.0" +name = "test-case-macros" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", + "test-case-core", +] [[package]] name = "tf-demo-parser" @@ -1195,12 +1181,12 @@ dependencies = [ "fnv", "iai", "insta", - "itertools", + "itertools 0.12.1", "jemallocator", "lazy_static", "main_error", "no-panic", - "num-traits 0.2.17", + "num-traits 0.2.18", "num_enum", "parse-display", "pretty_assertions", @@ -1213,7 +1199,7 @@ dependencies = [ "serde_repr", "snap", "steamid-ng", - "syn 1.0.109", + "syn 2.0.58", "tempfile", "test-case", "tracing", @@ -1222,29 +1208,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1268,11 +1254,11 @@ checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" [[package]] name = "toml_edit" -version = "0.19.15" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.1.0", + "indexmap", "toml_datetime", "winnow", ] @@ -1296,7 +1282,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", ] [[package]] @@ -1364,9 +1350,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -1374,9 +1360,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1384,24 +1370,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1409,28 +1395,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.47", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -1467,156 +1453,81 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", ] [[package]] name = "windows-targets" -version = "0.42.2" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" -version = "0.5.32" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8434aeec7b290e8da5c3f0d628cb0eac6cabcb31d14bb74f779a08109a5914d6" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "yansi" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 55e491c..bfad73d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,37 +36,37 @@ path = "src/bin/codegen.rs" required-features = ["codegen"] [dependencies] -bitbuffer = { version = "0.10.9", features = ["serde"] } -num_enum = "0.5.7" -num-traits = "0.2.15" -enumflags2 = { version = "0.7.8", features = ["serde"] } -snap = "1.1.0" -serde = { version = "1.0.152", features = ["derive", "rc"] } -serde_json = "1.0.91" -serde_repr = "0.1.10" +bitbuffer = { version = "0.11.0", features = ["serde"] } +num_enum = "0.7.2" +num-traits = "0.2.18" +enumflags2 = { version = "0.7.9", features = ["serde"] } +snap = "1.1.1" +serde = { version = "1.0.197", features = ["derive", "rc"] } +serde_json = "1.0.115" +serde_repr = "0.1.18" err-derive = "0.3.1" -parse-display = "0.8.0" +parse-display = "0.9.0" main_error = "0.1.2" -jemallocator = { version = "0.5.0", optional = true } +jemallocator = { version = "0.5.4", optional = true } better-panic = { version = "0.3.0", optional = true } -no-panic = { version = "0.1.17", optional = true } +no-panic = { version = "0.1.29", optional = true } fnv = "1.0.7" steamid-ng = "1.0.0" -tracing = { version = "0.1.37", optional = true } -tracing-subscriber = { version = "0.3.16", features = ["env-filter"], optional = true } -itertools = "0.10.5" +tracing = { version = "0.1.40", optional = true } +tracing-subscriber = { version = "0.3.18", features = ["env-filter"], optional = true } +itertools = "0.12.1" # schema -schemars = { version = "0.8.11", optional = true } +schemars = { version = "0.8.16", optional = true } # codegen quote = { version = "1", optional = true } -syn = { version = "1", features = ["full"], optional = true } +syn = { version = "2", features = ["full"], optional = true } Inflector = { version = "0.11", default-features = false, optional = true } proc-macro2 = { version = "1", optional = true } tempfile = { version = "3", optional = true } lazy_static = { version = "1", optional = true } -prettyplease = { version = "0.1", optional = true } +prettyplease = { version = "0.2", optional = true } [patch.crates-io] schemars = { git = 'https://github.com/icewind1991/schemars', branch = "simplify-generated-enum-code" } @@ -78,11 +78,11 @@ trace = ["tracing", "tracing-subscriber"] codegen = ["better-panic", "quote", "syn", "Inflector", "proc-macro2", "tempfile", "lazy_static", "prettyplease"] [dev-dependencies] -pretty_assertions = "1.3.0" -test-case = "2.2.2" +pretty_assertions = "1.4.0" +test-case = "3.3.1" iai = "0.1.1" -criterion = "0.4.0" -insta = { version = "1.34.0", features = ["json"] } +criterion = "0.5.1" +insta = { version = "1.38.0", features = ["json"] } [profile.release] lto = "thin" From a7a831808345fa05b65161dd8719e73e0e1a9a0b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 14:56:43 +0200 Subject: [PATCH 30/45] clippy fixes --- src/demo/message/packetentities.rs | 6 ++--- tests/entity.rs | 12 ++++------ tests/message_reencode.rs | 38 +++++++++++++++--------------- 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/src/demo/message/packetentities.rs b/src/demo/message/packetentities.rs index 475e3e9..1711b53 100644 --- a/src/demo/message/packetentities.rs +++ b/src/demo/message/packetentities.rs @@ -231,9 +231,9 @@ fn test_bit_var_roundtrip() { bit_var_normal(u32::MAX); for i in 0..31 { - bit_var_normal(2u32.pow(i) as u32); - bit_var_normal(2u32.pow(i) as u32 - 1); - bit_var_normal(2u32.pow(i) as u32 + 1); + bit_var_normal(2u32.pow(i)); + bit_var_normal(2u32.pow(i) - 1); + bit_var_normal(2u32.pow(i) + 1); } } diff --git a/tests/entity.rs b/tests/entity.rs index 184a524..b2cc9ea 100644 --- a/tests/entity.rs +++ b/tests/entity.rs @@ -88,21 +88,17 @@ impl MessageHandler for EntityDumper { type Output = Vec; fn does_handle(message_type: MessageType) -> bool { - match message_type { - MessageType::PacketEntities => true, - _ => false, - } + matches!(message_type, MessageType::PacketEntities) } fn handle_message(&mut self, message: &Message, tick: DemoTick, _parser_state: &ParserState) { - match message { - Message::PacketEntities(entity_message) => self.entities.extend( + if let Message::PacketEntities(entity_message) = message { + self.entities.extend( entity_message .entities .iter() .map(|entity| (tick, entity.clone())), - ), - _ => {} + ) } } diff --git a/tests/message_reencode.rs b/tests/message_reencode.rs index e666f8b..14e18d6 100644 --- a/tests/message_reencode.rs +++ b/tests/message_reencode.rs @@ -6,6 +6,25 @@ use tf_demo_parser::demo::packet::Packet; use tf_demo_parser::demo::parser::{DemoHandler, Encode, NullHandler}; use tf_demo_parser::{MessageType, Parse}; +fn setup_packet(handler: &mut DemoHandler, input: &str) { + let data = fs::read(input).unwrap(); + let mut stream = BitReadStream::new(BitReadBuffer::new_owned(data, LittleEndian)); + let packet = Packet::parse(&mut stream, &handler.state_handler).unwrap(); + handler.handle_packet(packet).unwrap(); +} + +fn setup_message(handler: &mut DemoHandler, input: &str) { + let data = fs::read(input).unwrap(); + let mut stream = BitReadStream::new(BitReadBuffer::new_owned(data, LittleEndian)); + let message = Message::from_type( + MessageType::PacketEntities, + &mut stream, + &handler.state_handler, + ) + .unwrap(); + handler.handle_message(message, 0.into()); +} + #[test_case("game_event_list.bin", MessageType::GameEventList, &[], &[]; "game_event_list")] #[test_case("packet_entities.bin", MessageType::PacketEntities, &["setup_data_tables.bin", "setup_string_tables.bin"], &[]; "packet_entities")] #[test_case("packet_entities_pov1.bin", MessageType::PacketEntities, &["setup_data_tables_pov.bin", "setup_string_tables_pov.bin"], &[]; "packet_entities_pov1")] @@ -56,22 +75,3 @@ fn message_reencode( pretty_assertions::assert_eq!(data, out); } } - -fn setup_packet(handler: &mut DemoHandler, input: &str) { - let data = fs::read(input).unwrap(); - let mut stream = BitReadStream::new(BitReadBuffer::new_owned(data, LittleEndian)); - let packet = Packet::parse(&mut stream, &handler.state_handler).unwrap(); - handler.handle_packet(packet).unwrap(); -} - -fn setup_message(handler: &mut DemoHandler, input: &str) { - let data = fs::read(input).unwrap(); - let mut stream = BitReadStream::new(BitReadBuffer::new_owned(data, LittleEndian)); - let message = Message::from_type( - MessageType::PacketEntities, - &mut stream, - &handler.state_handler, - ) - .unwrap(); - handler.handle_message(message, 0.into()); -} From e0ec7db2369b8c761769300c1bc1aa43fb6cf931 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 16:09:14 +0200 Subject: [PATCH 31/45] proper baseline index type --- src/demo/message/packetentities.rs | 86 ++++++++++++++++++++++++------ src/demo/message/stringtable.rs | 2 +- src/demo/parser/state.rs | 62 +++++++++++++-------- 3 files changed, 111 insertions(+), 39 deletions(-) diff --git a/src/demo/message/packetentities.rs b/src/demo/message/packetentities.rs index 1711b53..aa4c2dd 100644 --- a/src/demo/message/packetentities.rs +++ b/src/demo/message/packetentities.rs @@ -1,4 +1,7 @@ -use bitbuffer::{BitRead, BitReadSized, BitWrite, BitWriteSized, BitWriteStream, LittleEndian}; +use bitbuffer::{ + BitRead, BitReadSized, BitReadStream, BitWrite, BitWriteSized, BitWriteStream, Endianness, + LittleEndian, +}; use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; use std::borrow::Cow; @@ -85,6 +88,57 @@ pub enum UpdateType { Delete = 0b11, } +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, Eq, PartialEq, Copy, Clone, Serialize_repr, Deserialize_repr, Default)] +#[repr(u8)] +pub enum BaselineIndex { + #[default] + First = 0, + Second = 1, +} + +impl BaselineIndex { + pub fn other(self) -> Self { + match self { + BaselineIndex::First => BaselineIndex::Second, + BaselineIndex::Second => BaselineIndex::First, + } + } +} + +impl From for BaselineIndex { + fn from(value: bool) -> Self { + match value { + false => BaselineIndex::First, + true => BaselineIndex::Second, + } + } +} + +impl BitRead<'_, E> for BaselineIndex { + fn read(stream: &mut BitReadStream<'_, E>) -> ReadResult { + bool::read(stream).map(BaselineIndex::from) + } + + unsafe fn read_unchecked(stream: &mut BitReadStream<'_, E>, end: bool) -> ReadResult { + bool::read_unchecked(stream, end).map(BaselineIndex::from) + } + + fn bit_size() -> Option { + Some(1) + } +} + +impl BitWrite for BaselineIndex { + fn write(&self, stream: &mut BitWriteStream) -> ReadResult<()> { + let val = match self { + BaselineIndex::First => false, + BaselineIndex::Second => true, + }; + bool::write(&val, stream) + } +} + #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct PacketEntity { @@ -96,7 +150,7 @@ pub struct PacketEntity { pub serial_number: u32, pub delay: Option, pub delta: Option, - pub baseline_index: usize, + pub baseline_index: BaselineIndex, } impl fmt::Display for PacketEntity { @@ -244,7 +298,7 @@ pub struct PacketEntitiesMessage { pub removed_entities: Vec, pub max_entries: u16, pub delta: Option, - pub base_line: u8, + pub base_line: BaselineIndex, pub updated_base_line: bool, } @@ -275,7 +329,7 @@ fn get_entity_for_update( serial_number: 0, delay: None, delta, - baseline_index: 0, + baseline_index: BaselineIndex::First, }) } @@ -283,7 +337,7 @@ impl Parse<'_> for PacketEntitiesMessage { fn parse(stream: &mut Stream, state: &ParserState) -> Result { let max_entries = stream.read_sized(11)?; let delta: Option = stream.read()?; - let base_line = stream.read_sized(1)?; + let base_line = stream.read()?; let updated_entries: u16 = stream.read_sized(11)?; let length: u32 = stream.read_sized(20)?; let updated_base_line = stream.read()?; @@ -306,7 +360,7 @@ impl Parse<'_> for PacketEntitiesMessage { let update_type = data.read()?; if update_type == UpdateType::Enter { let mut entity = - Self::read_enter(&mut data, entity_index, state, base_line as usize, delta)?; + Self::read_enter(&mut data, entity_index, state, base_line, delta)?; let send_table = get_send_table(state, entity.server_class)?; Self::read_update(&mut data, send_table, &mut entity.props, entity_index)?; @@ -332,7 +386,7 @@ impl Parse<'_> for PacketEntitiesMessage { serial_number: 0, delay: None, delta, - baseline_index: 0, + baseline_index: BaselineIndex::First, }); } } @@ -361,7 +415,7 @@ impl Encode for PacketEntitiesMessage { if let Some(delta) = self.delta { delta.write(stream)?; } - self.base_line.write_sized(stream, 1)?; + self.base_line.write(stream)?; self.entities.len().write_sized(stream, 11)?; stream.reserve_int(20, |stream| { @@ -411,7 +465,7 @@ impl PacketEntitiesMessage { stream: &mut Stream, entity_index: EntityId, state: &ParserState, - baseline_index: usize, + baseline_index: BaselineIndex, delta: Option, ) -> Result { let bits = log_base2(state.server_classes.len()) + 1; @@ -600,7 +654,7 @@ fn test_packet_entitier_message_roundtrip() { removed_entities: vec![], max_entries: 0, delta: None, - base_line: 0, + base_line: BaselineIndex::First, updated_base_line: false, }, &state, @@ -616,12 +670,12 @@ fn test_packet_entitier_message_roundtrip() { serial_number: 0, delay: None, delta: None, - baseline_index: 0, + baseline_index: BaselineIndex::First, }], removed_entities: vec![], max_entries: 4, delta: None, - base_line: 0, + base_line: BaselineIndex::First, updated_base_line: false, }, &state, @@ -638,7 +692,7 @@ fn test_packet_entitier_message_roundtrip() { serial_number: 0, delay: None, delta: None, - baseline_index: 0, + baseline_index: BaselineIndex::First, }, PacketEntity { server_class: ClassId::from(1), @@ -660,13 +714,13 @@ fn test_packet_entitier_message_roundtrip() { serial_number: 0, delay: None, delta: None, - baseline_index: 0, + baseline_index: BaselineIndex::First, }, PacketEntity { server_class: ClassId::from(1), entity_index: EntityId::from(5u32), delta: None, - baseline_index: 0, + baseline_index: BaselineIndex::First, props: vec![ SendProp { index: 0, @@ -688,7 +742,7 @@ fn test_packet_entitier_message_roundtrip() { removed_entities: vec![], max_entries: 4, delta: None, - base_line: 0, + base_line: BaselineIndex::First, updated_base_line: false, }, &state, diff --git a/src/demo/message/stringtable.rs b/src/demo/message/stringtable.rs index 8515d19..95ed37b 100644 --- a/src/demo/message/stringtable.rs +++ b/src/demo/message/stringtable.rs @@ -1,5 +1,5 @@ use bitbuffer::{ - BitReadBuffer, BitReadStream, BitWrite, BitWriteSized, BitWriteStream, LittleEndian, + BitError, BitReadBuffer, BitReadStream, BitWrite, BitWriteSized, BitWriteStream, LittleEndian, }; use num_traits::{PrimInt, Unsigned}; use serde::{Deserialize, Serialize}; diff --git a/src/demo/parser/state.rs b/src/demo/parser/state.rs index c56fb8b..bd958bb 100644 --- a/src/demo/parser/state.rs +++ b/src/demo/parser/state.rs @@ -5,7 +5,7 @@ use std::collections::HashMap; use crate::demo::gamevent::GameEventDefinition; use crate::demo::message::packetentities::{ - EntityId, PacketEntitiesMessage, PacketEntity, UpdateType, + BaselineIndex, EntityId, PacketEntitiesMessage, PacketEntity, UpdateType, }; use crate::demo::message::stringtable::StringTableMeta; use crate::demo::message::{Message, MessageType}; @@ -130,15 +130,29 @@ impl<'a> ParserState { // }) } + fn get_instance_baseline(&self, index: BaselineIndex) -> &Baseline { + match index { + BaselineIndex::First => &self.instance_baselines[0], + BaselineIndex::Second => &self.instance_baselines[1], + } + } + + fn get_instance_baseline_mut(&mut self, index: BaselineIndex) -> &mut Baseline { + match index { + BaselineIndex::First => &mut self.instance_baselines[0], + BaselineIndex::Second => &mut self.instance_baselines[1], + } + } + pub fn get_baseline( &self, - baseline_index: usize, + baseline_index: BaselineIndex, entity_index: EntityId, class_id: ClassId, send_table: &SendTable, is_delta: bool, ) -> Result> { - match self.instance_baselines[baseline_index].get(entity_index) { + match self.get_instance_baseline(baseline_index).get(entity_index) { Some(baseline) if baseline.server_class == class_id && is_delta => { Ok(Cow::Borrowed(&baseline.props)) } @@ -245,10 +259,10 @@ impl<'a> ParserState { } if ent_message.updated_base_line { - let old_index = ent_message.base_line as usize; - let new_index = 1 - old_index; + let old_index = ent_message.base_line; + let new_index = old_index.other(); let [baseline1, baseline2] = &mut self.instance_baselines; - if old_index == 0 { + if old_index == BaselineIndex::First { baseline2.copy_from(baseline1); } else { baseline1.copy_from(baseline2); @@ -256,19 +270,22 @@ impl<'a> ParserState { for entity in ent_message.entities { if entity.update_type == UpdateType::Enter { - let updated_baseline = - match self.instance_baselines[old_index].get(entity.entity_index) { - Some(baseline_entity) - if baseline_entity.server_class == entity.server_class - && ent_message.delta.is_some() => - { - let mut updated_baseline = baseline_entity.clone(); - updated_baseline.apply_update(&entity.props); - updated_baseline - } - _ => entity.into(), - }; - self.instance_baselines[new_index].set(updated_baseline); + let updated_baseline = match self + .get_instance_baseline(old_index) + .get(entity.entity_index) + { + Some(baseline_entity) + if baseline_entity.server_class == entity.server_class + && ent_message.delta.is_some() => + { + let mut updated_baseline = baseline_entity.clone(); + updated_baseline.apply_update(&entity.props); + updated_baseline + } + _ => entity.into(), + }; + self.get_instance_baseline_mut(new_index) + .set(updated_baseline); } } } @@ -324,8 +341,9 @@ impl Baseline { } fn set(&mut self, entity: BaselineEntity) { - let index = entity.entity_id; - self.instances[usize::from(index)] = Some(entity); + if let Some(instance) = self.instances.get_mut(usize::from(entity.entity_id)) { + *instance = Some(entity); + } } pub fn keys(&self) -> impl Iterator + '_ { @@ -401,7 +419,7 @@ impl From for PacketEntity { serial_number: baseline.serial, delay: None, delta: None, - baseline_index: 0, + baseline_index: BaselineIndex::First, } } } From 1d71aa8ba66b7071da0fb8f6f392d9962cf2b854 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 16:10:11 +0200 Subject: [PATCH 32/45] remove some slice indexing --- src/consthash.rs | 2 ++ src/demo/lzss.rs | 8 +++---- src/demo/message/packetentities.rs | 5 ++++- src/demo/message/stringtable.rs | 8 ++++++- src/demo/message/tempentities.rs | 12 ++++------ src/demo/packet/datatable.rs | 1 + src/demo/parser/analyser.rs | 33 ++++++++++++---------------- src/demo/parser/gamestateanalyser.rs | 1 + src/lib.rs | 5 +++++ 9 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/consthash.rs b/src/consthash.rs index 9def394..42d16a0 100644 --- a/src/consthash.rs +++ b/src/consthash.rs @@ -14,6 +14,8 @@ impl ConstFnvHash { let mut i = 0; while i < bytes.len() { + // can't use better method in const fns + #[allow(clippy::indexing_slicing)] let byte = bytes[i]; hash ^= byte as u64; hash = hash.wrapping_mul(0x100000001b3); diff --git a/src/demo/lzss.rs b/src/demo/lzss.rs index d3cf1f0..c8c8997 100644 --- a/src/demo/lzss.rs +++ b/src/demo/lzss.rs @@ -1,12 +1,12 @@ -use std::convert::TryInto; - pub fn decompress(input: &[u8], output: &mut Vec) { decompress_(input, output); } /// inner fn that returns an option so we can use ? for short circuiting return fn decompress_(input: &[u8], output: &mut Vec) -> Option<()> { - let target_len = u32::from_le_bytes(input[0..4].try_into().unwrap()) as usize; + let mut len_bytes = [0; 4]; + len_bytes.copy_from_slice(input.get(0..4)?); + let target_len = u32::from_le_bytes(len_bytes) as usize; let mut read_pos = 4; let mut read_byte = move || { @@ -35,7 +35,7 @@ fn decompress_(input: &[u8], output: &mut Vec) -> Option<()> { let start = output.len() - pos - 1; // can't do extend_from_within since it start + count can be larger than output.len for i in 0..count { - output.push(output[start + i]); + output.push(*output.get(start + i)?); } } else { output.push(read_byte()?); diff --git a/src/demo/message/packetentities.rs b/src/demo/message/packetentities.rs index aa4c2dd..642cd9b 100644 --- a/src/demo/message/packetentities.rs +++ b/src/demo/message/packetentities.rs @@ -197,12 +197,15 @@ impl PacketEntity { } pub fn get_baseline_props<'a>(&self, parser_state: &'a ParserState) -> Cow<'a, [SendProp]> { + let Some(send_table) = parser_state.send_tables.get(usize::from(self.server_class)) else { + return Cow::default(); + }; parser_state .get_baseline( self.baseline_index, self.entity_index, self.server_class, - &parser_state.send_tables[usize::from(self.server_class)], + send_table, self.delta.is_some(), ) .unwrap_or_default() diff --git a/src/demo/message/stringtable.rs b/src/demo/message/stringtable.rs index 95ed37b..f58d4f9 100644 --- a/src/demo/message/stringtable.rs +++ b/src/demo/message/stringtable.rs @@ -613,7 +613,13 @@ fn write_table_entry( if let Some((history_index, history_count)) = history_item { history_index.write_sized(stream, 5)?; history_count.write_sized(stream, 5)?; - let diff_bytes = &text.as_bytes()[history_count..]; + let diff_bytes = + text.as_bytes() + .get(history_count..) + .ok_or(BitError::IndexOutOfBounds { + pos: history_count, + size: text.len(), + })?; stream.write_bytes(diff_bytes)?; 0u8.write(stream)?; // writing the string as bytes doesn't add the null terminator } else { diff --git a/src/demo/message/tempentities.rs b/src/demo/message/tempentities.rs index 2f1aa5a..83c442d 100644 --- a/src/demo/message/tempentities.rs +++ b/src/demo/message/tempentities.rs @@ -97,14 +97,10 @@ impl ParseBitSkip<'_> for TempEntitiesMessage { impl Encode for TempEntitiesMessage { fn encode(&self, stream: &mut BitWriteStream, state: &ParserState) -> Result<()> { - let count = if self.events.len() == 1 { - if self.events[0].reliable { - 0 - } else { - 1 - } - } else { - self.events.len() as u8 + let count = match (self.events.len(), self.events.first()) { + (1, Some(event)) if event.reliable => 0, + (1, _) => 1, + (len, _) => len as u8, }; count.write(stream)?; diff --git a/src/demo/packet/datatable.rs b/src/demo/packet/datatable.rs index 9742bd4..73636c8 100644 --- a/src/demo/packet/datatable.rs +++ b/src/demo/packet/datatable.rs @@ -329,6 +329,7 @@ impl ParseSendTable { // sort often changed props before the others let mut start = 0; for i in 0..flat.len() { + #[allow(clippy::indexing_slicing)] if flat[i].parse_definition.changes_often() { if i != start { flat.swap(i, start); diff --git a/src/demo/parser/analyser.rs b/src/demo/parser/analyser.rs index d6086c2..c83bfc5 100644 --- a/src/demo/parser/analyser.rs +++ b/src/demo/parser/analyser.rs @@ -18,7 +18,6 @@ use serde::de::Error; use serde::{ser::SerializeMap, Deserialize, Deserializer, Serialize, Serializer}; use std::collections::{BTreeMap, HashMap}; use std::convert::TryFrom; -use std::ops::{Index, IndexMut}; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct ChatMessage { @@ -169,6 +168,18 @@ impl ClassList { classes.sort_by(|a, b| a.1.cmp(&b.1).reverse()); classes.into_iter() } + + pub fn get(&self, class: Class) -> u8 { + // class number is always in bounds + #[allow(clippy::indexing_slicing)] + self.0[class as u8 as usize] + } + + pub fn get_mut(&mut self, class: Class) -> &mut u8 { + // class number is always in bounds + #[allow(clippy::indexing_slicing)] + &mut self.0[class as u8 as usize] + } } #[test] @@ -180,22 +191,6 @@ fn test_classlist_sorted() { ) } -impl Index for ClassList { - type Output = u8; - - #[cfg_attr(feature = "no-panic", no_panic::no_panic)] - fn index(&self, class: Class) -> &Self::Output { - &self.0[class as u8 as usize] - } -} - -impl IndexMut for ClassList { - #[cfg_attr(feature = "no-panic", no_panic::no_panic)] - fn index_mut(&mut self, class: Class) -> &mut Self::Output { - &mut self.0[class as u8 as usize] - } -} - impl Serialize for ClassList { fn serialize(&self, serializer: S) -> Result where @@ -218,7 +213,7 @@ impl From> for ClassList { let mut classes = ClassList::default(); for (class, count) in map.into_iter() { - classes[class] = count; + *classes.get_mut(class) = count; } classes @@ -505,7 +500,7 @@ impl Analyser { GameEvent::PlayerSpawn(event) => { let spawn = Spawn::from_event(event, tick); if let Some(user_state) = self.state.users.get_mut(&spawn.user) { - user_state.classes[spawn.class] += 1; + *user_state.classes.get_mut(spawn.class) += 1; user_state.team = spawn.team; } } diff --git a/src/demo/parser/gamestateanalyser.rs b/src/demo/parser/gamestateanalyser.rs index 285c975..5e736dc 100644 --- a/src/demo/parser/gamestateanalyser.rs +++ b/src/demo/parser/gamestateanalyser.rs @@ -282,6 +282,7 @@ impl GameState { } }; + #[allow(clippy::indexing_slicing)] &mut self.players[index] } pub fn get_or_create_building( diff --git a/src/lib.rs b/src/lib.rs index 1d5f8d1..1f399d0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,8 @@ +#![cfg_attr(not(test), deny(clippy::unwrap_used))] +#![cfg_attr(not(test), deny(clippy::expect_used))] +#![cfg_attr(not(test), deny(clippy::indexing_slicing))] +#![cfg_attr(not(test), deny(clippy::panic))] + pub use bitbuffer::Result as ReadResult; pub use crate::demo::{ From 9d38663c799d1b7e5a51af9a3cee0702c0662813 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 16:42:36 +0200 Subject: [PATCH 33/45] don't panic in nullhasher misuse --- src/nullhasher.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/nullhasher.rs b/src/nullhasher.rs index afb38c6..f32620d 100644 --- a/src/nullhasher.rs +++ b/src/nullhasher.rs @@ -1,9 +1,10 @@ +use fnv::FnvHasher; use serde::{Deserialize, Serialize}; use std::hash::{BuildHasher, Hasher}; /// A dummy hasher that maps simply returns the hashed u64 /// -/// trying to hash anything but a u64 will result in a panic +/// trying to hash anything but a u64 will result in using fnvhash pub struct NullHasher { data: u64, } @@ -15,8 +16,14 @@ impl Hasher for NullHasher { } #[inline] - fn write(&mut self, _msg: &[u8]) { - panic!("can only hash u64,u32,u16"); + fn write(&mut self, msg: &[u8]) { + let mut hasher = FnvHasher::default(); + hasher.write(msg); + self.data = hasher.finish(); + } + #[inline] + fn write_u8(&mut self, data: u8) { + self.data = data as u64 } #[inline] From dfd0b8ae905a9905588a70b0d0db03c3e7b36e51 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 16:43:45 +0200 Subject: [PATCH 34/45] cleanup sendprop array/vector comparisons --- src/demo/sendprop.rs | 26 +++++++------------- src/demo/vector.rs | 56 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 18 deletions(-) diff --git a/src/demo/sendprop.rs b/src/demo/sendprop.rs index 0a7cdfc..5ae4a97 100644 --- a/src/demo/sendprop.rs +++ b/src/demo/sendprop.rs @@ -604,27 +604,17 @@ impl PartialEq for SendPropValue { (SendPropValue::VectorXY(value1), SendPropValue::Vector(value2)) => { value1.x == value2.x && value1.y == value2.y && value2.z == 0.0 } - (SendPropValue::Vector(value1), SendPropValue::Array(value2)) if value2.len() == 3 => { - SendPropValue::Float(value1.x) == value2[0] - && SendPropValue::Float(value1.y) == value2[1] - && SendPropValue::Float(value1.z) == value2[2] + (SendPropValue::Vector(value1), SendPropValue::Array(value2)) => { + value1 == value2.as_slice() } - (SendPropValue::Array(value1), SendPropValue::Vector(value2)) if value1.len() == 3 => { - SendPropValue::Float(value2.x) == value1[0] - && SendPropValue::Float(value2.y) == value1[1] - && SendPropValue::Float(value2.z) == value1[2] + (SendPropValue::Array(value1), SendPropValue::Vector(value2)) => { + value2 == value1.as_slice() } - (SendPropValue::VectorXY(value1), SendPropValue::Array(value2)) - if value2.len() == 2 => - { - SendPropValue::Float(value1.x) == value2[0] - && SendPropValue::Float(value1.y) == value2[1] + (SendPropValue::VectorXY(value1), SendPropValue::Array(value2)) => { + value1 == value2.as_slice() } - (SendPropValue::Array(value1), SendPropValue::VectorXY(value2)) - if value1.len() == 2 => - { - SendPropValue::Float(value2.x) == value1[0] - && SendPropValue::Float(value2.y) == value1[1] + (SendPropValue::Array(value1), SendPropValue::VectorXY(value2)) => { + value2 == value1.as_slice() } _ => false, } diff --git a/src/demo/vector.rs b/src/demo/vector.rs index 859e8d6..22e9d93 100644 --- a/src/demo/vector.rs +++ b/src/demo/vector.rs @@ -1,3 +1,4 @@ +use crate::demo::sendprop::SendPropValue; use bitbuffer::{BitRead, BitWrite}; use parse_display::Display; use serde::{Deserialize, Serialize}; @@ -24,6 +25,39 @@ impl PartialEq for Vector { } } +impl PartialEq<[SendPropValue]> for Vector { + fn eq(&self, other: &[SendPropValue]) -> bool { + match other { + &[SendPropValue::Float(x), SendPropValue::Float(y), SendPropValue::Float(z)] => { + self.x == x && self.y == y && self.z == z + } + _ => false, + } + } +} + +#[test] +fn test_vec_array_eq() { + assert!(!Vector { + x: 1.0, + y: 2.0, + z: 3.0, + } + .eq([SendPropValue::Float(1.0), SendPropValue::Float(2.0)].as_slice())); + + assert!(Vector { + x: 1.0, + y: 2.0, + z: 3.0, + } + .eq([ + SendPropValue::Float(1.0), + SendPropValue::Float(2.0), + SendPropValue::Float(3.0), + ] + .as_slice())); +} + impl Add for Vector { type Output = Vector; @@ -62,6 +96,28 @@ impl PartialEq for VectorXY { } } +impl PartialEq<[SendPropValue]> for VectorXY { + fn eq(&self, other: &[SendPropValue]) -> bool { + match other { + &[SendPropValue::Float(x), SendPropValue::Float(y)] => self.x == x && self.y == y, + _ => false, + } + } +} + +#[test] +fn test_vec_xy_array_eq() { + assert!(VectorXY { x: 1.0, y: 2.0 } + .eq([SendPropValue::Float(1.0), SendPropValue::Float(2.0)].as_slice())); + + assert!(!VectorXY { x: 1.0, y: 2.0 }.eq([ + SendPropValue::Float(1.0), + SendPropValue::Float(2.0), + SendPropValue::Float(3.0) + ] + .as_slice())); +} + impl From for VectorXY { fn from(vec: Vector) -> Self { VectorXY { x: vec.x, y: vec.y } From 8ff5e5e6dfbe2a3301a3d7b982b115406798ac3c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 7 Apr 2024 16:56:34 +0200 Subject: [PATCH 35/45] specify msrv --- .github/workflows/ci.yml | 13 +++++++++++++ Cargo.toml | 1 + flake.lock | 32 ++++++++++++++++---------------- flake.nix | 15 +++++++++++++++ 4 files changed, 45 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81f451a..dd339b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,19 @@ jobs: authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#clippy + msrv: + runs-on: ubuntu-latest + needs: check + steps: + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 + - uses: icewind1991/attic-action@v1 + with: + name: ci + instance: https://cache.icewind.me + authToken: '${{ secrets.ATTIC_TOKEN }}' + - run: nix build .#msrv + matrix: runs-on: ubuntu-latest outputs: diff --git a/Cargo.toml b/Cargo.toml index bfad73d..84ba3ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ license = "MIT OR Apache-2.0" repository = "https://github.com/demostf/parser" exclude = [ "tests/fuzz", "test_data" ] default-run = "parse_demo" +rust-version = "1.70.0" [lib] name = "tf_demo_parser" diff --git a/flake.lock b/flake.lock index 5dbaf26..0d80c56 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ ] }, "locked": { - "lastModified": 1689107909, - "narHash": "sha256-fb+zxf7AWesECHx1foXOM3NcKHLrdeXzGb6s2AhT6pE=", + "lastModified": 1705943642, + "narHash": "sha256-M/n8k0Ato/WGmNJjtIUQGoooVBXL1ahSveiCK772Dk8=", "owner": "icewind1991", "repo": "cross-naersk", - "rev": "51de54599de569e6faa2ee33dd659c5c028d9911", + "rev": "db45d5a45b69d7d246bc748a54cd3cbbd9c47e74", "type": "github" }, "original": { @@ -28,11 +28,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -61,10 +61,10 @@ }, "nixpkgs": { "locked": { - "lastModified": 1702645756, - "narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=", - "path": "/nix/store/7ix7lj4h8q5jl740bkwvpi611safrq0v-source", - "rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0", + "lastModified": 1712168706, + "narHash": "sha256-XP24tOobf6GGElMd0ux90FEBalUtw6NkBSVh/RlA6ik=", + "path": "/nix/store/wcg8s4srapl39ibwvhwiy5b7kvyjy7vq-source", + "rev": "1487bdea619e4a7a53a4590c475deabb5a9d1bfb", "type": "path" }, "original": { @@ -74,11 +74,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1703345962, - "narHash": "sha256-hfdT9SYVQD5C99+R8WK3IAe4i7hnE0t/LVpZdkva7w0=", + "lastModified": 1712496542, + "narHash": "sha256-jqHViQtWnEVqPVthcApWaJuqOL+htCaG2GDLFtOPPUo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "22c37d3a97260e831dc3295fafac83178d52565e", + "rev": "4f348e045072ddca7ad47f5d0bb1bb318b950b79", "type": "github" }, "original": { @@ -106,11 +106,11 @@ ] }, "locked": { - "lastModified": 1703297543, - "narHash": "sha256-d4QlzcoSNzb/iZheWtjOyRxoBSaLETSpViENGEkxv9g=", + "lastModified": 1712456031, + "narHash": "sha256-vPM+DLCyiT3eKGdDBIxqsgBrbbB7lL0TR6R7FLhX1v8=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "fc77c8b416b1537522d30c710baaaaebf769f816", + "rev": "0e5eaa43f116d798c289b0bb831320a353efc905", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 2828d49..9dd3aa8 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,7 @@ inherit system overlays; }; lib = pkgs.lib; + inherit (builtins) listToAttrs fromTOML readFile; hostTarget = pkgs.hostPlatform.config; targets = [ @@ -62,6 +63,16 @@ }; hostNaersk = cross-naersk'.hostNaersk; + msrv = (fromTOML (readFile ./Cargo.toml)).package.rust-version; + msrvToolchain = pkgs.rust-bin.stable."${msrv}".default; + naerskMsrv = let + toolchain = msrvToolchain; + in + pkgs.callPackage naersk { + cargo = toolchain; + rustc = toolchain; + }; + mkHydraJobs = system: { parser = derivation { name = "parser"; @@ -104,6 +115,10 @@ release = false; mode = "test"; }); + msrv = naerskMsrv.buildPackage (nearskOpt + // { + mode = "check"; + }); default = demostf-parser; }; From ab87b34de8b6f7186befe1619c0d0fb81bf77529 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 16 Apr 2024 20:45:19 +0200 Subject: [PATCH 36/45] make gameevent parsing more backwards compatible --- codegen.nix | 3 + src/codegen/gameevent.rs | 59 +- src/demo/gameevent_gen.rs | 20684 +++++++++++++++++++++++++------- src/demo/gamevent.rs | 57 + src/demo/message/gameevent.rs | 15 +- src/demo/parser/error.rs | 6 + 6 files changed, 16415 insertions(+), 4409 deletions(-) diff --git a/codegen.nix b/codegen.nix index 75dca41..81562e9 100644 --- a/codegen.nix +++ b/codegen.nix @@ -19,5 +19,8 @@ in cargoLock = { lockFile = ./Cargo.lock; + outputHashes = { + "schemars-0.8.16" = "sha256-mQR56Ym76gSRulZrThmZHHw2JfhEgYhWXabwaYmyMYs="; + }; }; } diff --git a/src/codegen/gameevent.rs b/src/codegen/gameevent.rs index 1c72232..2a23a64 100644 --- a/src/codegen/gameevent.rs +++ b/src/codegen/gameevent.rs @@ -225,7 +225,9 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { let span = Span::call_site(); let imports = quote!( - use super::gamevent::{EventValue, GameEventDefinition, GameEventEntry, RawGameEvent}; + use super::gamevent::{ + EventValue, GameEventDefinition, GameEventEntry, RawGameEvent, GameEventValue, + }; use crate::demo::Stream; use crate::{ParseError, Result}; use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; @@ -241,32 +243,31 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { quote!(pub #name: #ty,) }); - let name = Ident::new( - &format!("{}Event", get_event_name(event.event_type.as_str())), - span, - ); + let field_getters = event.entries.iter().map(|entry| { + let raw_name = &entry.name; + let name = get_entry_name(&entry.name); + let ident = Ident::new(name.as_str(), span); + + quote!(#raw_name => Ok(self.#ident.clone().into())) + }); + + let event_name = get_event_name(event.event_type.as_str()); + let name = Ident::new(&format!("{event_name}Event"), span); let entry_readers = event.entries.iter().map(|entry| { + let raw_name = &entry.name; let name_str = get_entry_name(&entry.name); let name = Ident::new(&name_str, span); let ty = Ident::new(get_type_name(entry.kind), span); quote!( - #name: read_value::<#ty>(stream, iter.next(), #name_str)?, + #name: read_value::<#ty>(stream, definition.get_entry(#raw_name), #name_str)?, ) }); - let definition_iter = if event.entries.len() > 0 { - quote!( - let mut iter = definition.entries.iter(); - ) - } else { - quote!() - }; - quote!( #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] - #[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] + #[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct #name { #(#fields)* } @@ -274,12 +275,30 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { impl #name { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - #definition_iter - Ok(#name { #(#entry_readers)* }) } + + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + #(#field_getters,)* + _ => Err(ParseError::MissingGameEventValue { + ty: #event_name, + field: field.into(), + }), + } + } + + #[allow(unused_variables)] + fn write(&self, stream: &mut BitWriteStream, definition: &GameEventDefinition) -> Result<()> { + for entry in &definition.entries { + let value = self.get_field(&entry.name).unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } ) }); @@ -353,7 +372,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { let variant_name = Ident::new(&name, span); quote!( - GameEvent::#variant_name(event) => event.write(stream), + GameEvent::#variant_name(event) => event.write(stream, definition), ) }); @@ -430,10 +449,10 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { GameEventType::Unknown(_) => GameEvent::Unknown(RawGameEvent::read(stream, definition)?), }) } - pub fn write(&self, stream: &mut BitWriteStream) -> bitbuffer::Result<()> { + pub fn write(&self, stream: &mut BitWriteStream, definition: &GameEventDefinition) -> Result<()> { match &self { #(#write_events)* - GameEvent::Unknown(raw) => raw.write(stream), + GameEvent::Unknown(raw) => Ok(raw.write(stream)?), } } pub fn event_type(&self) -> GameEventType { diff --git a/src/demo/gameevent_gen.rs b/src/demo/gameevent_gen.rs index f9a3aa9..9d5f994 100644 --- a/src/demo/gameevent_gen.rs +++ b/src/demo/gameevent_gen.rs @@ -1,9 +1,11 @@ -use super::gamevent::{EventValue, GameEventDefinition, GameEventEntry, RawGameEvent}; -use crate::demo::data::MaybeUtf8String; +use super::gamevent::{ + EventValue, GameEventDefinition, GameEventEntry, RawGameEvent, GameEventValue, +}; use crate::demo::Stream; use crate::{ParseError, Result}; -use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian}; +use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; use serde::{Deserialize, Serialize}; +use crate::demo::data::MaybeUtf8String; fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>( stream: &mut Stream<'a>, entry: Option<&GameEventEntry>, @@ -25,7 +27,7 @@ fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>( Ok(T::read(stream)?) } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerSpawnEvent { pub hostname: MaybeUtf8String, pub address: MaybeUtf8String, @@ -41,51 +43,153 @@ pub struct ServerSpawnEvent { impl ServerSpawnEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerSpawnEvent { - hostname: read_value::(stream, iter.next(), "hostname")?, - address: read_value::(stream, iter.next(), "address")?, - ip: read_value::(stream, iter.next(), "ip")?, - port: read_value::(stream, iter.next(), "port")?, - game: read_value::(stream, iter.next(), "game")?, - map_name: read_value::(stream, iter.next(), "map_name")?, - max_players: read_value::(stream, iter.next(), "max_players")?, - os: read_value::(stream, iter.next(), "os")?, - dedicated: read_value::(stream, iter.next(), "dedicated")?, - password: read_value::(stream, iter.next(), "password")?, - }) + hostname: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("hostname"), "hostname")?, + address: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("address"), "address")?, + ip: read_value::(stream, definition.get_entry("ip"), "ip")?, + port: read_value::(stream, definition.get_entry("port"), "port")?, + game: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("game"), "game")?, + map_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("mapname"), "map_name")?, + max_players: read_value::< + u32, + >(stream, definition.get_entry("maxplayers"), "max_players")?, + os: read_value::(stream, definition.get_entry("os"), "os")?, + dedicated: read_value::< + bool, + >(stream, definition.get_entry("dedicated"), "dedicated")?, + password: read_value::< + bool, + >(stream, definition.get_entry("password"), "password")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "hostname" => Ok(self.hostname.clone().into()), + "address" => Ok(self.address.clone().into()), + "ip" => Ok(self.ip.clone().into()), + "port" => Ok(self.port.clone().into()), + "game" => Ok(self.game.clone().into()), + "mapname" => Ok(self.map_name.clone().into()), + "maxplayers" => Ok(self.max_players.clone().into()), + "os" => Ok(self.os.clone().into()), + "dedicated" => Ok(self.dedicated.clone().into()), + "password" => Ok(self.password.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerSpawn", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerChangeLevelFailedEvent { pub level_name: MaybeUtf8String, } impl ServerChangeLevelFailedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerChangeLevelFailedEvent { - level_name: read_value::(stream, iter.next(), "level_name")?, + level_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("levelname"), "level_name")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "levelname" => Ok(self.level_name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerChangeLevelFailed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerShutdownEvent { pub reason: MaybeUtf8String, } impl ServerShutdownEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerShutdownEvent { - reason: read_value::(stream, iter.next(), "reason")?, + reason: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("reason"), "reason")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "reason" => Ok(self.reason.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerShutdown", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerCvarEvent { pub cvar_name: MaybeUtf8String, pub cvar_value: MaybeUtf8String, @@ -93,29 +197,86 @@ pub struct ServerCvarEvent { impl ServerCvarEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerCvarEvent { - cvar_name: read_value::(stream, iter.next(), "cvar_name")?, - cvar_value: read_value::(stream, iter.next(), "cvar_value")?, + cvar_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cvarname"), "cvar_name")?, + cvar_value: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cvarvalue"), "cvar_value")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cvarname" => Ok(self.cvar_name.clone().into()), + "cvarvalue" => Ok(self.cvar_value.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerCvar", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerMessageEvent { pub text: MaybeUtf8String, } impl ServerMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerMessageEvent { - text: read_value::(stream, iter.next(), "text")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerMessage", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerAddBanEvent { pub name: MaybeUtf8String, pub user_id: u16, @@ -128,20 +289,59 @@ pub struct ServerAddBanEvent { impl ServerAddBanEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerAddBanEvent { - name: read_value::(stream, iter.next(), "name")?, - user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::(stream, iter.next(), "network_id")?, - ip: read_value::(stream, iter.next(), "ip")?, - duration: read_value::(stream, iter.next(), "duration")?, - by: read_value::(stream, iter.next(), "by")?, - kicked: read_value::(stream, iter.next(), "kicked")?, - }) + name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("name"), "name")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("networkid"), "network_id")?, + ip: read_value::(stream, definition.get_entry("ip"), "ip")?, + duration: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("duration"), "duration")?, + by: read_value::(stream, definition.get_entry("by"), "by")?, + kicked: read_value::(stream, definition.get_entry("kicked"), "kicked")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "name" => Ok(self.name.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + "networkid" => Ok(self.network_id.clone().into()), + "ip" => Ok(self.ip.clone().into()), + "duration" => Ok(self.duration.clone().into()), + "by" => Ok(self.by.clone().into()), + "kicked" => Ok(self.kicked.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerAddBan", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ServerRemoveBanEvent { pub network_id: MaybeUtf8String, pub ip: MaybeUtf8String, @@ -150,16 +350,45 @@ pub struct ServerRemoveBanEvent { impl ServerRemoveBanEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ServerRemoveBanEvent { - network_id: read_value::(stream, iter.next(), "network_id")?, - ip: read_value::(stream, iter.next(), "ip")?, - by: read_value::(stream, iter.next(), "by")?, + network_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("networkid"), "network_id")?, + ip: read_value::(stream, definition.get_entry("ip"), "ip")?, + by: read_value::(stream, definition.get_entry("by"), "by")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "networkid" => Ok(self.network_id.clone().into()), + "ip" => Ok(self.ip.clone().into()), + "by" => Ok(self.by.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ServerRemoveBan", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerConnectEvent { pub name: MaybeUtf8String, pub index: u8, @@ -171,19 +400,57 @@ pub struct PlayerConnectEvent { impl PlayerConnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerConnectEvent { - name: read_value::(stream, iter.next(), "name")?, - index: read_value::(stream, iter.next(), "index")?, - user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::(stream, iter.next(), "network_id")?, - address: read_value::(stream, iter.next(), "address")?, - bot: read_value::(stream, iter.next(), "bot")?, - }) + name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("name"), "name")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("networkid"), "network_id")?, + address: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("address"), "address")?, + bot: read_value::(stream, definition.get_entry("bot"), "bot")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "name" => Ok(self.name.clone().into()), + "index" => Ok(self.index.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + "networkid" => Ok(self.network_id.clone().into()), + "address" => Ok(self.address.clone().into()), + "bot" => Ok(self.bot.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerConnect", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerConnectClientEvent { pub name: MaybeUtf8String, pub index: u8, @@ -194,18 +461,53 @@ pub struct PlayerConnectClientEvent { impl PlayerConnectClientEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerConnectClientEvent { - name: read_value::(stream, iter.next(), "name")?, - index: read_value::(stream, iter.next(), "index")?, - user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::(stream, iter.next(), "network_id")?, - bot: read_value::(stream, iter.next(), "bot")?, - }) + name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("name"), "name")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("networkid"), "network_id")?, + bot: read_value::(stream, definition.get_entry("bot"), "bot")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "name" => Ok(self.name.clone().into()), + "index" => Ok(self.index.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + "networkid" => Ok(self.network_id.clone().into()), + "bot" => Ok(self.bot.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerConnectClient", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerInfoEvent { pub name: MaybeUtf8String, pub index: u8, @@ -216,18 +518,53 @@ pub struct PlayerInfoEvent { impl PlayerInfoEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerInfoEvent { - name: read_value::(stream, iter.next(), "name")?, - index: read_value::(stream, iter.next(), "index")?, - user_id: read_value::(stream, iter.next(), "user_id")?, - network_id: read_value::(stream, iter.next(), "network_id")?, - bot: read_value::(stream, iter.next(), "bot")?, - }) + name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("name"), "name")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("networkid"), "network_id")?, + bot: read_value::(stream, definition.get_entry("bot"), "bot")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "name" => Ok(self.name.clone().into()), + "index" => Ok(self.index.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + "networkid" => Ok(self.network_id.clone().into()), + "bot" => Ok(self.bot.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerInfo", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDisconnectEvent { pub user_id: u16, pub reason: MaybeUtf8String, @@ -238,32 +575,96 @@ pub struct PlayerDisconnectEvent { impl PlayerDisconnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDisconnectEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - reason: read_value::(stream, iter.next(), "reason")?, - name: read_value::(stream, iter.next(), "name")?, - network_id: read_value::(stream, iter.next(), "network_id")?, - bot: read_value::(stream, iter.next(), "bot")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + reason: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("reason"), "reason")?, + name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("name"), "name")?, + network_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("networkid"), "network_id")?, + bot: read_value::(stream, definition.get_entry("bot"), "bot")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "reason" => Ok(self.reason.clone().into()), + "name" => Ok(self.name.clone().into()), + "networkid" => Ok(self.network_id.clone().into()), + "bot" => Ok(self.bot.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDisconnect", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerActivateEvent { pub user_id: u16, } impl PlayerActivateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerActivateEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerActivate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerSayEvent { pub user_id: u16, pub text: MaybeUtf8String, @@ -271,29 +672,86 @@ pub struct PlayerSayEvent { impl PlayerSayEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerSayEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - text: read_value::(stream, iter.next(), "text")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerSay", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ClientDisconnectEvent { pub message: MaybeUtf8String, } impl ClientDisconnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ClientDisconnectEvent { - message: read_value::(stream, iter.next(), "message")?, + message: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("message"), "message")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "message" => Ok(self.message.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ClientDisconnect", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ClientBeginConnectEvent { pub address: MaybeUtf8String, pub ip: u32, @@ -303,17 +761,49 @@ pub struct ClientBeginConnectEvent { impl ClientBeginConnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ClientBeginConnectEvent { - address: read_value::(stream, iter.next(), "address")?, - ip: read_value::(stream, iter.next(), "ip")?, - port: read_value::(stream, iter.next(), "port")?, - source: read_value::(stream, iter.next(), "source")?, - }) + address: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("address"), "address")?, + ip: read_value::(stream, definition.get_entry("ip"), "ip")?, + port: read_value::(stream, definition.get_entry("port"), "port")?, + source: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("source"), "source")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "address" => Ok(self.address.clone().into()), + "ip" => Ok(self.ip.clone().into()), + "port" => Ok(self.port.clone().into()), + "source" => Ok(self.source.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ClientBeginConnect", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ClientConnectedEvent { pub address: MaybeUtf8String, pub ip: u32, @@ -322,16 +812,45 @@ pub struct ClientConnectedEvent { impl ClientConnectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ClientConnectedEvent { - address: read_value::(stream, iter.next(), "address")?, - ip: read_value::(stream, iter.next(), "ip")?, - port: read_value::(stream, iter.next(), "port")?, + address: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("address"), "address")?, + ip: read_value::(stream, definition.get_entry("ip"), "ip")?, + port: read_value::(stream, definition.get_entry("port"), "port")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "address" => Ok(self.address.clone().into()), + "ip" => Ok(self.ip.clone().into()), + "port" => Ok(self.port.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ClientConnected", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ClientFullConnectEvent { pub address: MaybeUtf8String, pub ip: u32, @@ -340,25 +859,79 @@ pub struct ClientFullConnectEvent { impl ClientFullConnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ClientFullConnectEvent { - address: read_value::(stream, iter.next(), "address")?, - ip: read_value::(stream, iter.next(), "ip")?, - port: read_value::(stream, iter.next(), "port")?, + address: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("address"), "address")?, + ip: read_value::(stream, definition.get_entry("ip"), "ip")?, + port: read_value::(stream, definition.get_entry("port"), "port")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "address" => Ok(self.address.clone().into()), + "ip" => Ok(self.ip.clone().into()), + "port" => Ok(self.port.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ClientFullConnect", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HostQuitEvent {} impl HostQuitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HostQuitEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HostQuit", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamInfoEvent { pub team_id: u8, pub team_name: MaybeUtf8String, @@ -366,15 +939,45 @@ pub struct TeamInfoEvent { impl TeamInfoEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamInfoEvent { - team_id: read_value::(stream, iter.next(), "team_id")?, - team_name: read_value::(stream, iter.next(), "team_name")?, + team_id: read_value::< + u8, + >(stream, definition.get_entry("teamid"), "team_id")?, + team_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("teamname"), "team_name")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "teamid" => Ok(self.team_id.clone().into()), + "teamname" => Ok(self.team_name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamInfo", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamScoreEvent { pub team_id: u8, pub score: u16, @@ -382,15 +985,43 @@ pub struct TeamScoreEvent { impl TeamScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamScoreEvent { - team_id: read_value::(stream, iter.next(), "team_id")?, - score: read_value::(stream, iter.next(), "score")?, + team_id: read_value::< + u8, + >(stream, definition.get_entry("teamid"), "team_id")?, + score: read_value::(stream, definition.get_entry("score"), "score")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "teamid" => Ok(self.team_id.clone().into()), + "score" => Ok(self.score.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamScore", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayBroadcastAudioEvent { pub team: u8, pub sound: MaybeUtf8String, @@ -400,17 +1031,49 @@ pub struct TeamPlayBroadcastAudioEvent { impl TeamPlayBroadcastAudioEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayBroadcastAudioEvent { - team: read_value::(stream, iter.next(), "team")?, - sound: read_value::(stream, iter.next(), "sound")?, - additional_flags: read_value::(stream, iter.next(), "additional_flags")?, - player: read_value::(stream, iter.next(), "player")?, - }) + team: read_value::(stream, definition.get_entry("team"), "team")?, + sound: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("sound"), "sound")?, + additional_flags: read_value::< + u16, + >(stream, definition.get_entry("additional_flags"), "additional_flags")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "sound" => Ok(self.sound.clone().into()), + "additional_flags" => Ok(self.additional_flags.clone().into()), + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayBroadcastAudio", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerTeamEvent { pub user_id: u16, pub team: u8, @@ -423,20 +1086,63 @@ pub struct PlayerTeamEvent { impl PlayerTeamEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerTeamEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - team: read_value::(stream, iter.next(), "team")?, - old_team: read_value::(stream, iter.next(), "old_team")?, - disconnect: read_value::(stream, iter.next(), "disconnect")?, - auto_team: read_value::(stream, iter.next(), "auto_team")?, - silent: read_value::(stream, iter.next(), "silent")?, - name: read_value::(stream, iter.next(), "name")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + old_team: read_value::< + u8, + >(stream, definition.get_entry("oldteam"), "old_team")?, + disconnect: read_value::< + bool, + >(stream, definition.get_entry("disconnect"), "disconnect")?, + auto_team: read_value::< + bool, + >(stream, definition.get_entry("autoteam"), "auto_team")?, + silent: read_value::< + bool, + >(stream, definition.get_entry("silent"), "silent")?, + name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("name"), "name")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "team" => Ok(self.team.clone().into()), + "oldteam" => Ok(self.old_team.clone().into()), + "disconnect" => Ok(self.disconnect.clone().into()), + "autoteam" => Ok(self.auto_team.clone().into()), + "silent" => Ok(self.silent.clone().into()), + "name" => Ok(self.name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerTeam", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerClassEvent { pub user_id: u16, pub class: MaybeUtf8String, @@ -444,15 +1150,45 @@ pub struct PlayerClassEvent { impl PlayerClassEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerClassEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - class: read_value::(stream, iter.next(), "class")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + class: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("class"), "class")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "class" => Ok(self.class.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerClass", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDeathEvent { pub user_id: u16, pub victim_ent_index: u32, @@ -484,51 +1220,153 @@ pub struct PlayerDeathEvent { impl PlayerDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDeathEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, - custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::( + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::< + u32, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + inflictor_ent_index: read_value::< + u32, + >( stream, - iter.next(), - "weapon_log_class_name", + definition.get_entry("inflictor_entindex"), + "inflictor_ent_index", )?, - stun_flags: read_value::(stream, iter.next(), "stun_flags")?, - death_flags: read_value::(stream, iter.next(), "death_flags")?, - silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - player_penetrate_count: read_value::( + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, + custom_kill: read_value::< + u16, + >(stream, definition.get_entry("customkill"), "custom_kill")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::< + MaybeUtf8String, + >( stream, - iter.next(), - "player_penetrate_count", + definition.get_entry("weapon_logclassname"), + "weapon_log_class_name", )?, - assister_fallback: read_value::( + stun_flags: read_value::< + u16, + >(stream, definition.get_entry("stun_flags"), "stun_flags")?, + death_flags: read_value::< + u16, + >(stream, definition.get_entry("death_flags"), "death_flags")?, + silent_kill: read_value::< + bool, + >(stream, definition.get_entry("silent_kill"), "silent_kill")?, + player_penetrate_count: read_value::< + u16, + >( stream, - iter.next(), - "assister_fallback", + definition.get_entry("playerpenetratecount"), + "player_penetrate_count", )?, - kill_streak_total: read_value::(stream, iter.next(), "kill_streak_total")?, - kill_streak_wep: read_value::(stream, iter.next(), "kill_streak_wep")?, - kill_streak_assist: read_value::(stream, iter.next(), "kill_streak_assist")?, - kill_streak_victim: read_value::(stream, iter.next(), "kill_streak_victim")?, - ducks_streaked: read_value::(stream, iter.next(), "ducks_streaked")?, - duck_streak_total: read_value::(stream, iter.next(), "duck_streak_total")?, - duck_streak_assist: read_value::(stream, iter.next(), "duck_streak_assist")?, - duck_streak_victim: read_value::(stream, iter.next(), "duck_streak_victim")?, - rocket_jump: read_value::(stream, iter.next(), "rocket_jump")?, - weapon_def_index: read_value::(stream, iter.next(), "weapon_def_index")?, - crit_type: read_value::(stream, iter.next(), "crit_type")?, - }) + assister_fallback: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + kill_streak_total: read_value::< + u16, + >(stream, definition.get_entry("kill_streak_total"), "kill_streak_total")?, + kill_streak_wep: read_value::< + u16, + >(stream, definition.get_entry("kill_streak_wep"), "kill_streak_wep")?, + kill_streak_assist: read_value::< + u16, + >(stream, definition.get_entry("kill_streak_assist"), "kill_streak_assist")?, + kill_streak_victim: read_value::< + u16, + >(stream, definition.get_entry("kill_streak_victim"), "kill_streak_victim")?, + ducks_streaked: read_value::< + u16, + >(stream, definition.get_entry("ducks_streaked"), "ducks_streaked")?, + duck_streak_total: read_value::< + u16, + >(stream, definition.get_entry("duck_streak_total"), "duck_streak_total")?, + duck_streak_assist: read_value::< + u16, + >(stream, definition.get_entry("duck_streak_assist"), "duck_streak_assist")?, + duck_streak_victim: read_value::< + u16, + >(stream, definition.get_entry("duck_streak_victim"), "duck_streak_victim")?, + rocket_jump: read_value::< + bool, + >(stream, definition.get_entry("rocket_jump"), "rocket_jump")?, + weapon_def_index: read_value::< + u32, + >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, + crit_type: read_value::< + u16, + >(stream, definition.get_entry("crit_type"), "crit_type")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + "customkill" => Ok(self.custom_kill.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), + "stun_flags" => Ok(self.stun_flags.clone().into()), + "death_flags" => Ok(self.death_flags.clone().into()), + "silent_kill" => Ok(self.silent_kill.clone().into()), + "playerpenetratecount" => Ok(self.player_penetrate_count.clone().into()), + "assister_fallback" => Ok(self.assister_fallback.clone().into()), + "kill_streak_total" => Ok(self.kill_streak_total.clone().into()), + "kill_streak_wep" => Ok(self.kill_streak_wep.clone().into()), + "kill_streak_assist" => Ok(self.kill_streak_assist.clone().into()), + "kill_streak_victim" => Ok(self.kill_streak_victim.clone().into()), + "ducks_streaked" => Ok(self.ducks_streaked.clone().into()), + "duck_streak_total" => Ok(self.duck_streak_total.clone().into()), + "duck_streak_assist" => Ok(self.duck_streak_assist.clone().into()), + "duck_streak_victim" => Ok(self.duck_streak_victim.clone().into()), + "rocket_jump" => Ok(self.rocket_jump.clone().into()), + "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), + "crit_type" => Ok(self.crit_type.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDeath", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHurtEvent { pub user_id: u16, pub health: u16, @@ -545,24 +1383,75 @@ pub struct PlayerHurtEvent { impl PlayerHurtEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHurtEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - health: read_value::(stream, iter.next(), "health")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - damage_amount: read_value::(stream, iter.next(), "damage_amount")?, - custom: read_value::(stream, iter.next(), "custom")?, - show_disguised_crit: read_value::(stream, iter.next(), "show_disguised_crit")?, - crit: read_value::(stream, iter.next(), "crit")?, - mini_crit: read_value::(stream, iter.next(), "mini_crit")?, - all_see_crit: read_value::(stream, iter.next(), "all_see_crit")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - bonus_effect: read_value::(stream, iter.next(), "bonus_effect")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + health: read_value::(stream, definition.get_entry("health"), "health")?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + damage_amount: read_value::< + u16, + >(stream, definition.get_entry("damageamount"), "damage_amount")?, + custom: read_value::(stream, definition.get_entry("custom"), "custom")?, + show_disguised_crit: read_value::< + bool, + >(stream, definition.get_entry("showdisguisedcrit"), "show_disguised_crit")?, + crit: read_value::(stream, definition.get_entry("crit"), "crit")?, + mini_crit: read_value::< + bool, + >(stream, definition.get_entry("minicrit"), "mini_crit")?, + all_see_crit: read_value::< + bool, + >(stream, definition.get_entry("allseecrit"), "all_see_crit")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + bonus_effect: read_value::< + u8, + >(stream, definition.get_entry("bonuseffect"), "bonus_effect")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "health" => Ok(self.health.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "damageamount" => Ok(self.damage_amount.clone().into()), + "custom" => Ok(self.custom.clone().into()), + "showdisguisedcrit" => Ok(self.show_disguised_crit.clone().into()), + "crit" => Ok(self.crit.clone().into()), + "minicrit" => Ok(self.mini_crit.clone().into()), + "allseecrit" => Ok(self.all_see_crit.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "bonuseffect" => Ok(self.bonus_effect.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHurt", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerChatEvent { pub team_only: bool, pub user_id: u16, @@ -571,16 +1460,49 @@ pub struct PlayerChatEvent { impl PlayerChatEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerChatEvent { - team_only: read_value::(stream, iter.next(), "team_only")?, - user_id: read_value::(stream, iter.next(), "user_id")?, - text: read_value::(stream, iter.next(), "text")?, - }) + team_only: read_value::< + bool, + >(stream, definition.get_entry("teamonly"), "team_only")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "teamonly" => Ok(self.team_only.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerChat", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerScoreEvent { pub user_id: u16, pub kills: u16, @@ -590,17 +1512,47 @@ pub struct PlayerScoreEvent { impl PlayerScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerScoreEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - kills: read_value::(stream, iter.next(), "kills")?, - deaths: read_value::(stream, iter.next(), "deaths")?, - score: read_value::(stream, iter.next(), "score")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + kills: read_value::(stream, definition.get_entry("kills"), "kills")?, + deaths: read_value::(stream, definition.get_entry("deaths"), "deaths")?, + score: read_value::(stream, definition.get_entry("score"), "score")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "kills" => Ok(self.kills.clone().into()), + "deaths" => Ok(self.deaths.clone().into()), + "score" => Ok(self.score.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerScore", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerSpawnEvent { pub user_id: u16, pub team: u16, @@ -609,16 +1561,45 @@ pub struct PlayerSpawnEvent { impl PlayerSpawnEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerSpawnEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - team: read_value::(stream, iter.next(), "team")?, - class: read_value::(stream, iter.next(), "class")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + class: read_value::(stream, definition.get_entry("class"), "class")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "team" => Ok(self.team.clone().into()), + "class" => Ok(self.class.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerSpawn", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerShootEvent { pub user_id: u16, pub weapon: u8, @@ -627,16 +1608,45 @@ pub struct PlayerShootEvent { impl PlayerShootEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerShootEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - mode: read_value::(stream, iter.next(), "mode")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + weapon: read_value::(stream, definition.get_entry("weapon"), "weapon")?, + mode: read_value::(stream, definition.get_entry("mode"), "mode")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "mode" => Ok(self.mode.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerShoot", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerUseEvent { pub user_id: u16, pub entity: u16, @@ -644,15 +1654,43 @@ pub struct PlayerUseEvent { impl PlayerUseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerUseEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - entity: read_value::(stream, iter.next(), "entity")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + entity: read_value::(stream, definition.get_entry("entity"), "entity")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "entity" => Ok(self.entity.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerUse", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerChangeNameEvent { pub user_id: u16, pub old_name: MaybeUtf8String, @@ -661,67 +1699,206 @@ pub struct PlayerChangeNameEvent { impl PlayerChangeNameEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerChangeNameEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - old_name: read_value::(stream, iter.next(), "old_name")?, - new_name: read_value::(stream, iter.next(), "new_name")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + old_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("oldname"), "old_name")?, + new_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("newname"), "new_name")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "oldname" => Ok(self.old_name.clone().into()), + "newname" => Ok(self.new_name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerChangeName", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHintMessageEvent { pub hint_message: MaybeUtf8String, } impl PlayerHintMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHintMessageEvent { - hint_message: read_value::(stream, iter.next(), "hint_message")?, + hint_message: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("hintmessage"), "hint_message")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "hintmessage" => Ok(self.hint_message.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHintMessage", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BasePlayerTeleportedEvent { pub ent_index: u16, } impl BasePlayerTeleportedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(BasePlayerTeleportedEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u16, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BasePlayerTeleported", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameInitEvent {} impl GameInitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GameInitEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameInit", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameNewMapEvent { pub map_name: MaybeUtf8String, } impl GameNewMapEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(GameNewMapEvent { - map_name: read_value::(stream, iter.next(), "map_name")?, + map_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("mapname"), "map_name")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "mapname" => Ok(self.map_name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameNewMap", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameStartEvent { pub rounds_limit: u32, pub time_limit: u32, @@ -731,31 +1908,92 @@ pub struct GameStartEvent { impl GameStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(GameStartEvent { - rounds_limit: read_value::(stream, iter.next(), "rounds_limit")?, - time_limit: read_value::(stream, iter.next(), "time_limit")?, - frag_limit: read_value::(stream, iter.next(), "frag_limit")?, - objective: read_value::(stream, iter.next(), "objective")?, - }) + rounds_limit: read_value::< + u32, + >(stream, definition.get_entry("roundslimit"), "rounds_limit")?, + time_limit: read_value::< + u32, + >(stream, definition.get_entry("timelimit"), "time_limit")?, + frag_limit: read_value::< + u32, + >(stream, definition.get_entry("fraglimit"), "frag_limit")?, + objective: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("objective"), "objective")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "roundslimit" => Ok(self.rounds_limit.clone().into()), + "timelimit" => Ok(self.time_limit.clone().into()), + "fraglimit" => Ok(self.frag_limit.clone().into()), + "objective" => Ok(self.objective.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameStart", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameEndEvent { pub winner: u8, } impl GameEndEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(GameEndEvent { - winner: read_value::(stream, iter.next(), "winner")?, + winner: read_value::(stream, definition.get_entry("winner"), "winner")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "winner" => Ok(self.winner.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameEnd", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RoundStartEvent { pub time_limit: u32, pub frag_limit: u32, @@ -764,16 +2002,49 @@ pub struct RoundStartEvent { impl RoundStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RoundStartEvent { - time_limit: read_value::(stream, iter.next(), "time_limit")?, - frag_limit: read_value::(stream, iter.next(), "frag_limit")?, - objective: read_value::(stream, iter.next(), "objective")?, - }) + time_limit: read_value::< + u32, + >(stream, definition.get_entry("timelimit"), "time_limit")?, + frag_limit: read_value::< + u32, + >(stream, definition.get_entry("fraglimit"), "frag_limit")?, + objective: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("objective"), "objective")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "timelimit" => Ok(self.time_limit.clone().into()), + "fraglimit" => Ok(self.frag_limit.clone().into()), + "objective" => Ok(self.objective.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RoundStart", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RoundEndEvent { pub winner: u8, pub reason: u8, @@ -782,16 +2053,45 @@ pub struct RoundEndEvent { impl RoundEndEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RoundEndEvent { - winner: read_value::(stream, iter.next(), "winner")?, - reason: read_value::(stream, iter.next(), "reason")?, - message: read_value::(stream, iter.next(), "message")?, + winner: read_value::(stream, definition.get_entry("winner"), "winner")?, + reason: read_value::(stream, definition.get_entry("reason"), "reason")?, + message: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("message"), "message")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "winner" => Ok(self.winner.clone().into()), + "reason" => Ok(self.reason.clone().into()), + "message" => Ok(self.message.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RoundEnd", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameMessageEvent { pub target: u8, pub text: MaybeUtf8String, @@ -799,15 +2099,43 @@ pub struct GameMessageEvent { impl GameMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(GameMessageEvent { - target: read_value::(stream, iter.next(), "target")?, - text: read_value::(stream, iter.next(), "text")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "target" => Ok(self.target.clone().into()), + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameMessage", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BreakBreakableEvent { pub ent_index: u32, pub user_id: u16, @@ -816,16 +2144,49 @@ pub struct BreakBreakableEvent { impl BreakBreakableEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(BreakBreakableEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, - user_id: read_value::(stream, iter.next(), "user_id")?, - material: read_value::(stream, iter.next(), "material")?, - }) + ent_index: read_value::< + u32, + >(stream, definition.get_entry("entindex"), "ent_index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + material: read_value::< + u8, + >(stream, definition.get_entry("material"), "material")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + "material" => Ok(self.material.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BreakBreakable", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BreakPropEvent { pub ent_index: u32, pub user_id: u16, @@ -833,15 +2194,45 @@ pub struct BreakPropEvent { impl BreakPropEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(BreakPropEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, - user_id: read_value::(stream, iter.next(), "user_id")?, + ent_index: read_value::< + u32, + >(stream, definition.get_entry("entindex"), "ent_index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BreakProp", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EntityKilledEvent { pub ent_index_killed: u32, pub ent_index_attacker: u32, @@ -851,17 +2242,57 @@ pub struct EntityKilledEvent { impl EntityKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EntityKilledEvent { - ent_index_killed: read_value::(stream, iter.next(), "ent_index_killed")?, - ent_index_attacker: read_value::(stream, iter.next(), "ent_index_attacker")?, - ent_index_inflictor: read_value::(stream, iter.next(), "ent_index_inflictor")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, + ent_index_killed: read_value::< + u32, + >(stream, definition.get_entry("entindex_killed"), "ent_index_killed")?, + ent_index_attacker: read_value::< + u32, + >(stream, definition.get_entry("entindex_attacker"), "ent_index_attacker")?, + ent_index_inflictor: read_value::< + u32, + >( + stream, + definition.get_entry("entindex_inflictor"), + "ent_index_inflictor", + )?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex_killed" => Ok(self.ent_index_killed.clone().into()), + "entindex_attacker" => Ok(self.ent_index_attacker.clone().into()), + "entindex_inflictor" => Ok(self.ent_index_inflictor.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EntityKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BonusUpdatedEvent { pub num_advanced: u16, pub num_bronze: u16, @@ -871,17 +2302,53 @@ pub struct BonusUpdatedEvent { impl BonusUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(BonusUpdatedEvent { - num_advanced: read_value::(stream, iter.next(), "num_advanced")?, - num_bronze: read_value::(stream, iter.next(), "num_bronze")?, - num_silver: read_value::(stream, iter.next(), "num_silver")?, - num_gold: read_value::(stream, iter.next(), "num_gold")?, - }) + num_advanced: read_value::< + u16, + >(stream, definition.get_entry("numadvanced"), "num_advanced")?, + num_bronze: read_value::< + u16, + >(stream, definition.get_entry("numbronze"), "num_bronze")?, + num_silver: read_value::< + u16, + >(stream, definition.get_entry("numsilver"), "num_silver")?, + num_gold: read_value::< + u16, + >(stream, definition.get_entry("numgold"), "num_gold")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "numadvanced" => Ok(self.num_advanced.clone().into()), + "numbronze" => Ok(self.num_bronze.clone().into()), + "numsilver" => Ok(self.num_silver.clone().into()), + "numgold" => Ok(self.num_gold.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BonusUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct AchievementEventEvent { pub achievement_name: MaybeUtf8String, pub cur_val: u16, @@ -890,20 +2357,49 @@ pub struct AchievementEventEvent { impl AchievementEventEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(AchievementEventEvent { - achievement_name: read_value::( - stream, - iter.next(), - "achievement_name", - )?, - cur_val: read_value::(stream, iter.next(), "cur_val")?, - max_val: read_value::(stream, iter.next(), "max_val")?, - }) + achievement_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("achievement_name"), "achievement_name")?, + cur_val: read_value::< + u16, + >(stream, definition.get_entry("cur_val"), "cur_val")?, + max_val: read_value::< + u16, + >(stream, definition.get_entry("max_val"), "max_val")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "achievement_name" => Ok(self.achievement_name.clone().into()), + "cur_val" => Ok(self.cur_val.clone().into()), + "max_val" => Ok(self.max_val.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "AchievementEvent", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct AchievementIncrementEvent { pub achievement_id: u32, pub cur_val: u16, @@ -912,76 +2408,240 @@ pub struct AchievementIncrementEvent { impl AchievementIncrementEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(AchievementIncrementEvent { - achievement_id: read_value::(stream, iter.next(), "achievement_id")?, - cur_val: read_value::(stream, iter.next(), "cur_val")?, - max_val: read_value::(stream, iter.next(), "max_val")?, - }) + achievement_id: read_value::< + u32, + >(stream, definition.get_entry("achievement_id"), "achievement_id")?, + cur_val: read_value::< + u16, + >(stream, definition.get_entry("cur_val"), "cur_val")?, + max_val: read_value::< + u16, + >(stream, definition.get_entry("max_val"), "max_val")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "achievement_id" => Ok(self.achievement_id.clone().into()), + "cur_val" => Ok(self.cur_val.clone().into()), + "max_val" => Ok(self.max_val.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "AchievementIncrement", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PhysgunPickupEvent { pub ent_index: u32, } impl PhysgunPickupEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PhysgunPickupEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u32, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PhysgunPickup", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct FlareIgniteNpcEvent { pub ent_index: u32, } impl FlareIgniteNpcEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(FlareIgniteNpcEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u32, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "FlareIgniteNpc", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HelicopterGrenadePuntMissEvent {} impl HelicopterGrenadePuntMissEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HelicopterGrenadePuntMissEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HelicopterGrenadePuntMiss", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct UserDataDownloadedEvent {} impl UserDataDownloadedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(UserDataDownloadedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "UserDataDownloaded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RagdollDissolvedEvent { pub ent_index: u32, } impl RagdollDissolvedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RagdollDissolvedEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u32, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RagdollDissolved", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVChangedModeEvent { pub old_mode: u16, pub new_mode: u16, @@ -990,16 +2650,49 @@ pub struct HLTVChangedModeEvent { impl HLTVChangedModeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVChangedModeEvent { - old_mode: read_value::(stream, iter.next(), "old_mode")?, - new_mode: read_value::(stream, iter.next(), "new_mode")?, - obs_target: read_value::(stream, iter.next(), "obs_target")?, - }) + old_mode: read_value::< + u16, + >(stream, definition.get_entry("oldmode"), "old_mode")?, + new_mode: read_value::< + u16, + >(stream, definition.get_entry("newmode"), "new_mode")?, + obs_target: read_value::< + u16, + >(stream, definition.get_entry("obs_target"), "obs_target")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "oldmode" => Ok(self.old_mode.clone().into()), + "newmode" => Ok(self.new_mode.clone().into()), + "obs_target" => Ok(self.obs_target.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVChangedMode", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVChangedTargetEvent { pub mode: u16, pub old_target: u16, @@ -1008,25 +2701,81 @@ pub struct HLTVChangedTargetEvent { impl HLTVChangedTargetEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVChangedTargetEvent { - mode: read_value::(stream, iter.next(), "mode")?, - old_target: read_value::(stream, iter.next(), "old_target")?, - obs_target: read_value::(stream, iter.next(), "obs_target")?, - }) + mode: read_value::(stream, definition.get_entry("mode"), "mode")?, + old_target: read_value::< + u16, + >(stream, definition.get_entry("old_target"), "old_target")?, + obs_target: read_value::< + u16, + >(stream, definition.get_entry("obs_target"), "obs_target")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "mode" => Ok(self.mode.clone().into()), + "old_target" => Ok(self.old_target.clone().into()), + "obs_target" => Ok(self.obs_target.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVChangedTarget", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteEndedEvent {} impl VoteEndedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteEndedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteEnded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteStartedEvent { pub issue: MaybeUtf8String, pub param_1: MaybeUtf8String, @@ -1037,18 +2786,55 @@ pub struct VoteStartedEvent { impl VoteStartedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(VoteStartedEvent { - issue: read_value::(stream, iter.next(), "issue")?, - param_1: read_value::(stream, iter.next(), "param_1")?, - team: read_value::(stream, iter.next(), "team")?, - initiator: read_value::(stream, iter.next(), "initiator")?, - voteidx: read_value::(stream, iter.next(), "voteidx")?, - }) + issue: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("issue"), "issue")?, + param_1: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("param1"), "param_1")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + initiator: read_value::< + u32, + >(stream, definition.get_entry("initiator"), "initiator")?, + voteidx: read_value::< + u32, + >(stream, definition.get_entry("voteidx"), "voteidx")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "issue" => Ok(self.issue.clone().into()), + "param1" => Ok(self.param_1.clone().into()), + "team" => Ok(self.team.clone().into()), + "initiator" => Ok(self.initiator.clone().into()), + "voteidx" => Ok(self.voteidx.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteStarted", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteChangedEvent { pub vote_option_1: u8, pub vote_option_2: u8, @@ -1061,20 +2847,65 @@ pub struct VoteChangedEvent { impl VoteChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(VoteChangedEvent { - vote_option_1: read_value::(stream, iter.next(), "vote_option_1")?, - vote_option_2: read_value::(stream, iter.next(), "vote_option_2")?, - vote_option_3: read_value::(stream, iter.next(), "vote_option_3")?, - vote_option_4: read_value::(stream, iter.next(), "vote_option_4")?, - vote_option_5: read_value::(stream, iter.next(), "vote_option_5")?, - potential_votes: read_value::(stream, iter.next(), "potential_votes")?, - voteidx: read_value::(stream, iter.next(), "voteidx")?, - }) + vote_option_1: read_value::< + u8, + >(stream, definition.get_entry("vote_option1"), "vote_option_1")?, + vote_option_2: read_value::< + u8, + >(stream, definition.get_entry("vote_option2"), "vote_option_2")?, + vote_option_3: read_value::< + u8, + >(stream, definition.get_entry("vote_option3"), "vote_option_3")?, + vote_option_4: read_value::< + u8, + >(stream, definition.get_entry("vote_option4"), "vote_option_4")?, + vote_option_5: read_value::< + u8, + >(stream, definition.get_entry("vote_option5"), "vote_option_5")?, + potential_votes: read_value::< + u8, + >(stream, definition.get_entry("potentialVotes"), "potential_votes")?, + voteidx: read_value::< + u32, + >(stream, definition.get_entry("voteidx"), "voteidx")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "vote_option1" => Ok(self.vote_option_1.clone().into()), + "vote_option2" => Ok(self.vote_option_2.clone().into()), + "vote_option3" => Ok(self.vote_option_3.clone().into()), + "vote_option4" => Ok(self.vote_option_4.clone().into()), + "vote_option5" => Ok(self.vote_option_5.clone().into()), + "potentialVotes" => Ok(self.potential_votes.clone().into()), + "voteidx" => Ok(self.voteidx.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VotePassedEvent { pub details: MaybeUtf8String, pub param_1: MaybeUtf8String, @@ -1084,17 +2915,51 @@ pub struct VotePassedEvent { impl VotePassedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(VotePassedEvent { - details: read_value::(stream, iter.next(), "details")?, - param_1: read_value::(stream, iter.next(), "param_1")?, - team: read_value::(stream, iter.next(), "team")?, - voteidx: read_value::(stream, iter.next(), "voteidx")?, - }) + details: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("details"), "details")?, + param_1: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("param1"), "param_1")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + voteidx: read_value::< + u32, + >(stream, definition.get_entry("voteidx"), "voteidx")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "details" => Ok(self.details.clone().into()), + "param1" => Ok(self.param_1.clone().into()), + "team" => Ok(self.team.clone().into()), + "voteidx" => Ok(self.voteidx.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VotePassed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteFailedEvent { pub team: u8, pub voteidx: u32, @@ -1102,15 +2967,43 @@ pub struct VoteFailedEvent { impl VoteFailedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(VoteFailedEvent { - team: read_value::(stream, iter.next(), "team")?, - voteidx: read_value::(stream, iter.next(), "voteidx")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + voteidx: read_value::< + u32, + >(stream, definition.get_entry("voteidx"), "voteidx")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "voteidx" => Ok(self.voteidx.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteFailed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteCastEvent { pub vote_option: u8, pub team: u16, @@ -1120,17 +3013,51 @@ pub struct VoteCastEvent { impl VoteCastEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(VoteCastEvent { - vote_option: read_value::(stream, iter.next(), "vote_option")?, - team: read_value::(stream, iter.next(), "team")?, - entity_id: read_value::(stream, iter.next(), "entity_id")?, - voteidx: read_value::(stream, iter.next(), "voteidx")?, - }) + vote_option: read_value::< + u8, + >(stream, definition.get_entry("vote_option"), "vote_option")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + entity_id: read_value::< + u32, + >(stream, definition.get_entry("entityid"), "entity_id")?, + voteidx: read_value::< + u32, + >(stream, definition.get_entry("voteidx"), "voteidx")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "vote_option" => Ok(self.vote_option.clone().into()), + "team" => Ok(self.team.clone().into()), + "entityid" => Ok(self.entity_id.clone().into()), + "voteidx" => Ok(self.voteidx.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteCast", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteOptionsEvent { pub count: u8, pub option_1: MaybeUtf8String, @@ -1143,47 +3070,165 @@ pub struct VoteOptionsEvent { impl VoteOptionsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(VoteOptionsEvent { - count: read_value::(stream, iter.next(), "count")?, - option_1: read_value::(stream, iter.next(), "option_1")?, - option_2: read_value::(stream, iter.next(), "option_2")?, - option_3: read_value::(stream, iter.next(), "option_3")?, - option_4: read_value::(stream, iter.next(), "option_4")?, - option_5: read_value::(stream, iter.next(), "option_5")?, - voteidx: read_value::(stream, iter.next(), "voteidx")?, - }) + count: read_value::(stream, definition.get_entry("count"), "count")?, + option_1: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("option1"), "option_1")?, + option_2: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("option2"), "option_2")?, + option_3: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("option3"), "option_3")?, + option_4: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("option4"), "option_4")?, + option_5: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("option5"), "option_5")?, + voteidx: read_value::< + u32, + >(stream, definition.get_entry("voteidx"), "voteidx")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "count" => Ok(self.count.clone().into()), + "option1" => Ok(self.option_1.clone().into()), + "option2" => Ok(self.option_2.clone().into()), + "option3" => Ok(self.option_3.clone().into()), + "option4" => Ok(self.option_4.clone().into()), + "option5" => Ok(self.option_5.clone().into()), + "voteidx" => Ok(self.voteidx.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteOptions", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplaySavedEvent {} impl ReplaySavedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ReplaySavedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplaySaved", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EnteredPerformanceModeEvent {} impl EnteredPerformanceModeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EnteredPerformanceModeEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EnteredPerformanceMode", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BrowseReplaysEvent {} impl BrowseReplaysEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BrowseReplaysEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BrowseReplays", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplayYoutubeStatsEvent { pub views: u32, pub likes: u32, @@ -1192,107 +3237,361 @@ pub struct ReplayYoutubeStatsEvent { impl ReplayYoutubeStatsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ReplayYoutubeStatsEvent { - views: read_value::(stream, iter.next(), "views")?, - likes: read_value::(stream, iter.next(), "likes")?, - favorited: read_value::(stream, iter.next(), "favorited")?, + views: read_value::(stream, definition.get_entry("views"), "views")?, + likes: read_value::(stream, definition.get_entry("likes"), "likes")?, + favorited: read_value::< + u32, + >(stream, definition.get_entry("favorited"), "favorited")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "views" => Ok(self.views.clone().into()), + "likes" => Ok(self.likes.clone().into()), + "favorited" => Ok(self.favorited.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplayYoutubeStats", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct InventoryUpdatedEvent {} impl InventoryUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(InventoryUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "InventoryUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CartUpdatedEvent {} impl CartUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(CartUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CartUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct StorePriceSheetUpdatedEvent {} impl StorePriceSheetUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(StorePriceSheetUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "StorePriceSheetUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EconInventoryConnectedEvent {} impl EconInventoryConnectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EconInventoryConnectedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EconInventoryConnected", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ItemSchemaInitializedEvent {} impl ItemSchemaInitializedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ItemSchemaInitializedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ItemSchemaInitialized", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GcNewSessionEvent {} impl GcNewSessionEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GcNewSessionEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GcNewSession", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GcLostSessionEvent {} impl GcLostSessionEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GcLostSessionEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GcLostSession", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct IntroFinishEvent { pub player: u16, } impl IntroFinishEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(IntroFinishEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "IntroFinish", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct IntroNextCameraEvent { pub player: u16, } impl IntroNextCameraEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(IntroNextCameraEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "IntroNextCamera", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerChangeClassEvent { pub user_id: u16, pub class: u16, @@ -1300,43 +3599,125 @@ pub struct PlayerChangeClassEvent { impl PlayerChangeClassEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerChangeClassEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - class: read_value::(stream, iter.next(), "class")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + class: read_value::(stream, definition.get_entry("class"), "class")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "class" => Ok(self.class.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerChangeClass", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TfMapTimeRemainingEvent { pub seconds: u32, } impl TfMapTimeRemainingEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TfMapTimeRemainingEvent { - seconds: read_value::(stream, iter.next(), "seconds")?, + seconds: read_value::< + u32, + >(stream, definition.get_entry("seconds"), "seconds")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "seconds" => Ok(self.seconds.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TfMapTimeRemaining", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TfGameOverEvent { pub reason: MaybeUtf8String, } impl TfGameOverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TfGameOverEvent { - reason: read_value::(stream, iter.next(), "reason")?, + reason: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("reason"), "reason")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "reason" => Ok(self.reason.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TfGameOver", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CtfFlagCapturedEvent { pub capping_team: u16, pub capping_team_score: u16, @@ -1344,80 +3725,235 @@ pub struct CtfFlagCapturedEvent { impl CtfFlagCapturedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(CtfFlagCapturedEvent { - capping_team: read_value::(stream, iter.next(), "capping_team")?, - capping_team_score: read_value::(stream, iter.next(), "capping_team_score")?, + capping_team: read_value::< + u16, + >(stream, definition.get_entry("capping_team"), "capping_team")?, + capping_team_score: read_value::< + u16, + >(stream, definition.get_entry("capping_team_score"), "capping_team_score")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "capping_team" => Ok(self.capping_team.clone().into()), + "capping_team_score" => Ok(self.capping_team_score.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CtfFlagCaptured", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointInitializedEvent {} impl ControlPointInitializedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ControlPointInitializedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointInitialized", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointUpdateImagesEvent { pub index: u16, } impl ControlPointUpdateImagesEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointUpdateImagesEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateImages", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointUpdateLayoutEvent { pub index: u16, } impl ControlPointUpdateLayoutEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointUpdateLayoutEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateLayout", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointUpdateCappingEvent { pub index: u16, } impl ControlPointUpdateCappingEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointUpdateCappingEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateCapping", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointUpdateOwnerEvent { pub index: u16, } impl ControlPointUpdateOwnerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointUpdateOwnerEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateOwner", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointStartTouchEvent { pub player: u16, pub area: u16, @@ -1425,15 +3961,41 @@ pub struct ControlPointStartTouchEvent { impl ControlPointStartTouchEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointStartTouchEvent { - player: read_value::(stream, iter.next(), "player")?, - area: read_value::(stream, iter.next(), "area")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + area: read_value::(stream, definition.get_entry("area"), "area")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "area" => Ok(self.area.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointStartTouch", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointEndTouchEvent { pub player: u16, pub area: u16, @@ -1441,29 +4003,80 @@ pub struct ControlPointEndTouchEvent { impl ControlPointEndTouchEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointEndTouchEvent { - player: read_value::(stream, iter.next(), "player")?, - area: read_value::(stream, iter.next(), "area")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + area: read_value::(stream, definition.get_entry("area"), "area")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "area" => Ok(self.area.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointEndTouch", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointPulseElementEvent { pub player: u16, } impl ControlPointPulseElementEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointPulseElementEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointPulseElement", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointFakeCaptureEvent { pub player: u16, pub int_data: u16, @@ -1471,15 +4084,43 @@ pub struct ControlPointFakeCaptureEvent { impl ControlPointFakeCaptureEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointFakeCaptureEvent { - player: read_value::(stream, iter.next(), "player")?, - int_data: read_value::(stream, iter.next(), "int_data")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + int_data: read_value::< + u16, + >(stream, definition.get_entry("int_data"), "int_data")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "int_data" => Ok(self.int_data.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointFakeCapture", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointFakeCaptureMultiplierEvent { pub player: u16, pub int_data: u16, @@ -1487,125 +4128,409 @@ pub struct ControlPointFakeCaptureMultiplierEvent { impl ControlPointFakeCaptureMultiplierEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointFakeCaptureMultiplierEvent { - player: read_value::(stream, iter.next(), "player")?, - int_data: read_value::(stream, iter.next(), "int_data")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + int_data: read_value::< + u16, + >(stream, definition.get_entry("int_data"), "int_data")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "int_data" => Ok(self.int_data.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointFakeCaptureMultiplier", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRoundSelectedEvent { pub round: MaybeUtf8String, } impl TeamPlayRoundSelectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayRoundSelectedEvent { - round: read_value::(stream, iter.next(), "round")?, + round: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("round"), "round")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "round" => Ok(self.round.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundSelected", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRoundStartEvent { pub full_reset: bool, } impl TeamPlayRoundStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayRoundStartEvent { - full_reset: read_value::(stream, iter.next(), "full_reset")?, + full_reset: read_value::< + bool, + >(stream, definition.get_entry("full_reset"), "full_reset")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "full_reset" => Ok(self.full_reset.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundStart", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRoundActiveEvent {} impl TeamPlayRoundActiveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayRoundActiveEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundActive", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayWaitingBeginsEvent {} impl TeamPlayWaitingBeginsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayWaitingBeginsEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWaitingBegins", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayWaitingEndsEvent {} impl TeamPlayWaitingEndsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayWaitingEndsEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWaitingEnds", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayWaitingAboutToEndEvent {} impl TeamPlayWaitingAboutToEndEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayWaitingAboutToEndEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWaitingAboutToEnd", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRestartRoundEvent {} impl TeamPlayRestartRoundEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayRestartRoundEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRestartRound", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayReadyRestartEvent {} impl TeamPlayReadyRestartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayReadyRestartEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayReadyRestart", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRoundRestartSecondsEvent { pub seconds: u16, } impl TeamPlayRoundRestartSecondsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayRoundRestartSecondsEvent { - seconds: read_value::(stream, iter.next(), "seconds")?, + seconds: read_value::< + u16, + >(stream, definition.get_entry("seconds"), "seconds")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "seconds" => Ok(self.seconds.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundRestartSeconds", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayTeamReadyEvent { pub team: u8, } impl TeamPlayTeamReadyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayTeamReadyEvent { - team: read_value::(stream, iter.next(), "team")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTeamReady", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRoundWinEvent { pub team: u8, pub win_reason: u8, @@ -1618,121 +4543,399 @@ pub struct TeamPlayRoundWinEvent { impl TeamPlayRoundWinEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayRoundWinEvent { - team: read_value::(stream, iter.next(), "team")?, - win_reason: read_value::(stream, iter.next(), "win_reason")?, - flag_cap_limit: read_value::(stream, iter.next(), "flag_cap_limit")?, - full_round: read_value::(stream, iter.next(), "full_round")?, - round_time: read_value::(stream, iter.next(), "round_time")?, - losing_team_num_caps: read_value::(stream, iter.next(), "losing_team_num_caps")?, - was_sudden_death: read_value::(stream, iter.next(), "was_sudden_death")?, - }) + team: read_value::(stream, definition.get_entry("team"), "team")?, + win_reason: read_value::< + u8, + >(stream, definition.get_entry("winreason"), "win_reason")?, + flag_cap_limit: read_value::< + u16, + >(stream, definition.get_entry("flagcaplimit"), "flag_cap_limit")?, + full_round: read_value::< + u16, + >(stream, definition.get_entry("full_round"), "full_round")?, + round_time: read_value::< + f32, + >(stream, definition.get_entry("round_time"), "round_time")?, + losing_team_num_caps: read_value::< + u16, + >( + stream, + definition.get_entry("losing_team_num_caps"), + "losing_team_num_caps", + )?, + was_sudden_death: read_value::< + u8, + >(stream, definition.get_entry("was_sudden_death"), "was_sudden_death")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "winreason" => Ok(self.win_reason.clone().into()), + "flagcaplimit" => Ok(self.flag_cap_limit.clone().into()), + "full_round" => Ok(self.full_round.clone().into()), + "round_time" => Ok(self.round_time.clone().into()), + "losing_team_num_caps" => Ok(self.losing_team_num_caps.clone().into()), + "was_sudden_death" => Ok(self.was_sudden_death.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundWin", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayUpdateTimerEvent {} impl TeamPlayUpdateTimerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayUpdateTimerEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayUpdateTimer", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayRoundStalemateEvent { pub reason: u8, } impl TeamPlayRoundStalemateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayRoundStalemateEvent { - reason: read_value::(stream, iter.next(), "reason")?, + reason: read_value::(stream, definition.get_entry("reason"), "reason")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "reason" => Ok(self.reason.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundStalemate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayOvertimeBeginEvent {} impl TeamPlayOvertimeBeginEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayOvertimeBeginEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayOvertimeBegin", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayOvertimeEndEvent {} impl TeamPlayOvertimeEndEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayOvertimeEndEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayOvertimeEnd", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlaySuddenDeathBeginEvent {} impl TeamPlaySuddenDeathBeginEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlaySuddenDeathBeginEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlaySuddenDeathBegin", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlaySuddenDeathEndEvent {} impl TeamPlaySuddenDeathEndEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlaySuddenDeathEndEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlaySuddenDeathEnd", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayGameOverEvent { pub reason: MaybeUtf8String, } impl TeamPlayGameOverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayGameOverEvent { - reason: read_value::(stream, iter.next(), "reason")?, + reason: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("reason"), "reason")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "reason" => Ok(self.reason.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayGameOver", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayMapTimeRemainingEvent { pub seconds: u16, } impl TeamPlayMapTimeRemainingEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayMapTimeRemainingEvent { - seconds: read_value::(stream, iter.next(), "seconds")?, + seconds: read_value::< + u16, + >(stream, definition.get_entry("seconds"), "seconds")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "seconds" => Ok(self.seconds.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayMapTimeRemaining", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayTimerFlashEvent { pub time_remaining: u16, } impl TeamPlayTimerFlashEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayTimerFlashEvent { - time_remaining: read_value::(stream, iter.next(), "time_remaining")?, + time_remaining: read_value::< + u16, + >(stream, definition.get_entry("time_remaining"), "time_remaining")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "time_remaining" => Ok(self.time_remaining.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTimerFlash", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayTimerTimeAddedEvent { pub timer: u16, pub seconds_added: u16, @@ -1740,15 +4943,43 @@ pub struct TeamPlayTimerTimeAddedEvent { impl TeamPlayTimerTimeAddedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayTimerTimeAddedEvent { - timer: read_value::(stream, iter.next(), "timer")?, - seconds_added: read_value::(stream, iter.next(), "seconds_added")?, + timer: read_value::(stream, definition.get_entry("timer"), "timer")?, + seconds_added: read_value::< + u16, + >(stream, definition.get_entry("seconds_added"), "seconds_added")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "timer" => Ok(self.timer.clone().into()), + "seconds_added" => Ok(self.seconds_added.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTimerTimeAdded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayPointStartCaptureEvent { pub cp: u8, pub cp_name: MaybeUtf8String, @@ -1760,19 +4991,57 @@ pub struct TeamPlayPointStartCaptureEvent { impl TeamPlayPointStartCaptureEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayPointStartCaptureEvent { - cp: read_value::(stream, iter.next(), "cp")?, - cp_name: read_value::(stream, iter.next(), "cp_name")?, - team: read_value::(stream, iter.next(), "team")?, - cap_team: read_value::(stream, iter.next(), "cap_team")?, - cappers: read_value::(stream, iter.next(), "cappers")?, - cap_time: read_value::(stream, iter.next(), "cap_time")?, - }) + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + cp_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cpname"), "cp_name")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + cap_team: read_value::< + u8, + >(stream, definition.get_entry("capteam"), "cap_team")?, + cappers: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cappers"), "cappers")?, + cap_time: read_value::< + f32, + >(stream, definition.get_entry("captime"), "cap_time")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "cpname" => Ok(self.cp_name.clone().into()), + "team" => Ok(self.team.clone().into()), + "capteam" => Ok(self.cap_team.clone().into()), + "cappers" => Ok(self.cappers.clone().into()), + "captime" => Ok(self.cap_time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointStartCapture", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayPointCapturedEvent { pub cp: u8, pub cp_name: MaybeUtf8String, @@ -1782,17 +5051,49 @@ pub struct TeamPlayPointCapturedEvent { impl TeamPlayPointCapturedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayPointCapturedEvent { - cp: read_value::(stream, iter.next(), "cp")?, - cp_name: read_value::(stream, iter.next(), "cp_name")?, - team: read_value::(stream, iter.next(), "team")?, - cappers: read_value::(stream, iter.next(), "cappers")?, - }) + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + cp_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cpname"), "cp_name")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + cappers: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cappers"), "cappers")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "cpname" => Ok(self.cp_name.clone().into()), + "team" => Ok(self.team.clone().into()), + "cappers" => Ok(self.cappers.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointCaptured", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayPointLockedEvent { pub cp: u8, pub cp_name: MaybeUtf8String, @@ -1801,16 +5102,45 @@ pub struct TeamPlayPointLockedEvent { impl TeamPlayPointLockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayPointLockedEvent { - cp: read_value::(stream, iter.next(), "cp")?, - cp_name: read_value::(stream, iter.next(), "cp_name")?, - team: read_value::(stream, iter.next(), "team")?, + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + cp_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cpname"), "cp_name")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "cpname" => Ok(self.cp_name.clone().into()), + "team" => Ok(self.team.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointLocked", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayPointUnlockedEvent { pub cp: u8, pub cp_name: MaybeUtf8String, @@ -1819,16 +5149,45 @@ pub struct TeamPlayPointUnlockedEvent { impl TeamPlayPointUnlockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayPointUnlockedEvent { - cp: read_value::(stream, iter.next(), "cp")?, - cp_name: read_value::(stream, iter.next(), "cp_name")?, - team: read_value::(stream, iter.next(), "team")?, + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + cp_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cpname"), "cp_name")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "cpname" => Ok(self.cp_name.clone().into()), + "team" => Ok(self.team.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointUnlocked", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayCaptureBrokenEvent { pub cp: u8, pub cp_name: MaybeUtf8String, @@ -1837,16 +5196,47 @@ pub struct TeamPlayCaptureBrokenEvent { impl TeamPlayCaptureBrokenEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayCaptureBrokenEvent { - cp: read_value::(stream, iter.next(), "cp")?, - cp_name: read_value::(stream, iter.next(), "cp_name")?, - time_remaining: read_value::(stream, iter.next(), "time_remaining")?, - }) + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + cp_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cpname"), "cp_name")?, + time_remaining: read_value::< + f32, + >(stream, definition.get_entry("time_remaining"), "time_remaining")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "cpname" => Ok(self.cp_name.clone().into()), + "time_remaining" => Ok(self.time_remaining.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayCaptureBroken", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayCaptureBlockedEvent { pub cp: u8, pub cp_name: MaybeUtf8String, @@ -1856,17 +5246,49 @@ pub struct TeamPlayCaptureBlockedEvent { impl TeamPlayCaptureBlockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayCaptureBlockedEvent { - cp: read_value::(stream, iter.next(), "cp")?, - cp_name: read_value::(stream, iter.next(), "cp_name")?, - blocker: read_value::(stream, iter.next(), "blocker")?, - victim: read_value::(stream, iter.next(), "victim")?, - }) + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + cp_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cpname"), "cp_name")?, + blocker: read_value::< + u8, + >(stream, definition.get_entry("blocker"), "blocker")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "cpname" => Ok(self.cp_name.clone().into()), + "blocker" => Ok(self.blocker.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayCaptureBlocked", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayFlagEventEvent { pub player: u16, pub carrier: u16, @@ -1877,18 +5299,51 @@ pub struct TeamPlayFlagEventEvent { impl TeamPlayFlagEventEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayFlagEventEvent { - player: read_value::(stream, iter.next(), "player")?, - carrier: read_value::(stream, iter.next(), "carrier")?, - event_type: read_value::(stream, iter.next(), "event_type")?, - home: read_value::(stream, iter.next(), "home")?, - team: read_value::(stream, iter.next(), "team")?, - }) + player: read_value::(stream, definition.get_entry("player"), "player")?, + carrier: read_value::< + u16, + >(stream, definition.get_entry("carrier"), "carrier")?, + event_type: read_value::< + u16, + >(stream, definition.get_entry("eventtype"), "event_type")?, + home: read_value::(stream, definition.get_entry("home"), "home")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "carrier" => Ok(self.carrier.clone().into()), + "eventtype" => Ok(self.event_type.clone().into()), + "home" => Ok(self.home.clone().into()), + "team" => Ok(self.team.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayFlagEvent", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayWinPanelEvent { pub panel_style: u8, pub winning_team: u8, @@ -1914,37 +5369,127 @@ pub struct TeamPlayWinPanelEvent { impl TeamPlayWinPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayWinPanelEvent { - panel_style: read_value::(stream, iter.next(), "panel_style")?, - winning_team: read_value::(stream, iter.next(), "winning_team")?, - win_reason: read_value::(stream, iter.next(), "win_reason")?, - cappers: read_value::(stream, iter.next(), "cappers")?, - flag_cap_limit: read_value::(stream, iter.next(), "flag_cap_limit")?, - blue_score: read_value::(stream, iter.next(), "blue_score")?, - red_score: read_value::(stream, iter.next(), "red_score")?, - blue_score_prev: read_value::(stream, iter.next(), "blue_score_prev")?, - red_score_prev: read_value::(stream, iter.next(), "red_score_prev")?, - round_complete: read_value::(stream, iter.next(), "round_complete")?, - rounds_remaining: read_value::(stream, iter.next(), "rounds_remaining")?, - player_1: read_value::(stream, iter.next(), "player_1")?, - player_1_points: read_value::(stream, iter.next(), "player_1_points")?, - player_2: read_value::(stream, iter.next(), "player_2")?, - player_2_points: read_value::(stream, iter.next(), "player_2_points")?, - player_3: read_value::(stream, iter.next(), "player_3")?, - player_3_points: read_value::(stream, iter.next(), "player_3_points")?, - kill_stream_player_1: read_value::(stream, iter.next(), "kill_stream_player_1")?, - kill_stream_player_1_count: read_value::( + panel_style: read_value::< + u8, + >(stream, definition.get_entry("panel_style"), "panel_style")?, + winning_team: read_value::< + u8, + >(stream, definition.get_entry("winning_team"), "winning_team")?, + win_reason: read_value::< + u8, + >(stream, definition.get_entry("winreason"), "win_reason")?, + cappers: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cappers"), "cappers")?, + flag_cap_limit: read_value::< + u16, + >(stream, definition.get_entry("flagcaplimit"), "flag_cap_limit")?, + blue_score: read_value::< + u16, + >(stream, definition.get_entry("blue_score"), "blue_score")?, + red_score: read_value::< + u16, + >(stream, definition.get_entry("red_score"), "red_score")?, + blue_score_prev: read_value::< + u16, + >(stream, definition.get_entry("blue_score_prev"), "blue_score_prev")?, + red_score_prev: read_value::< + u16, + >(stream, definition.get_entry("red_score_prev"), "red_score_prev")?, + round_complete: read_value::< + u16, + >(stream, definition.get_entry("round_complete"), "round_complete")?, + rounds_remaining: read_value::< + u16, + >(stream, definition.get_entry("rounds_remaining"), "rounds_remaining")?, + player_1: read_value::< + u16, + >(stream, definition.get_entry("player_1"), "player_1")?, + player_1_points: read_value::< + u16, + >(stream, definition.get_entry("player_1_points"), "player_1_points")?, + player_2: read_value::< + u16, + >(stream, definition.get_entry("player_2"), "player_2")?, + player_2_points: read_value::< + u16, + >(stream, definition.get_entry("player_2_points"), "player_2_points")?, + player_3: read_value::< + u16, + >(stream, definition.get_entry("player_3"), "player_3")?, + player_3_points: read_value::< + u16, + >(stream, definition.get_entry("player_3_points"), "player_3_points")?, + kill_stream_player_1: read_value::< + u16, + >( stream, - iter.next(), + definition.get_entry("killstreak_player_1"), + "kill_stream_player_1", + )?, + kill_stream_player_1_count: read_value::< + u16, + >( + stream, + definition.get_entry("killstreak_player_1_count"), "kill_stream_player_1_count", )?, - game_over: read_value::(stream, iter.next(), "game_over")?, - }) + game_over: read_value::< + u8, + >(stream, definition.get_entry("game_over"), "game_over")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "panel_style" => Ok(self.panel_style.clone().into()), + "winning_team" => Ok(self.winning_team.clone().into()), + "winreason" => Ok(self.win_reason.clone().into()), + "cappers" => Ok(self.cappers.clone().into()), + "flagcaplimit" => Ok(self.flag_cap_limit.clone().into()), + "blue_score" => Ok(self.blue_score.clone().into()), + "red_score" => Ok(self.red_score.clone().into()), + "blue_score_prev" => Ok(self.blue_score_prev.clone().into()), + "red_score_prev" => Ok(self.red_score_prev.clone().into()), + "round_complete" => Ok(self.round_complete.clone().into()), + "rounds_remaining" => Ok(self.rounds_remaining.clone().into()), + "player_1" => Ok(self.player_1.clone().into()), + "player_1_points" => Ok(self.player_1_points.clone().into()), + "player_2" => Ok(self.player_2.clone().into()), + "player_2_points" => Ok(self.player_2_points.clone().into()), + "player_3" => Ok(self.player_3.clone().into()), + "player_3_points" => Ok(self.player_3_points.clone().into()), + "killstreak_player_1" => Ok(self.kill_stream_player_1.clone().into()), + "killstreak_player_1_count" => { + Ok(self.kill_stream_player_1_count.clone().into()) + } + "game_over" => Ok(self.game_over.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWinPanel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayTeamBalancedPlayerEvent { pub player: u16, pub team: u8, @@ -1952,38 +5497,116 @@ pub struct TeamPlayTeamBalancedPlayerEvent { impl TeamPlayTeamBalancedPlayerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayTeamBalancedPlayerEvent { - player: read_value::(stream, iter.next(), "player")?, - team: read_value::(stream, iter.next(), "team")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "team" => Ok(self.team.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTeamBalancedPlayer", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlaySetupFinishedEvent {} impl TeamPlaySetupFinishedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlaySetupFinishedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlaySetupFinished", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayAlertEvent { pub alert_type: u16, } impl TeamPlayAlertEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayAlertEvent { - alert_type: read_value::(stream, iter.next(), "alert_type")?, + alert_type: read_value::< + u16, + >(stream, definition.get_entry("alert_type"), "alert_type")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "alert_type" => Ok(self.alert_type.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayAlert", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TrainingCompleteEvent { pub next_map: MaybeUtf8String, pub map: MaybeUtf8String, @@ -1992,89 +5615,297 @@ pub struct TrainingCompleteEvent { impl TrainingCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TrainingCompleteEvent { - next_map: read_value::(stream, iter.next(), "next_map")?, - map: read_value::(stream, iter.next(), "map")?, - text: read_value::(stream, iter.next(), "text")?, - }) + next_map: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("next_map"), "next_map")?, + map: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("map"), "map")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "next_map" => Ok(self.next_map.clone().into()), + "map" => Ok(self.map.clone().into()), + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TrainingComplete", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ShowFreezePanelEvent { pub killer: u16, } impl ShowFreezePanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ShowFreezePanelEvent { - killer: read_value::(stream, iter.next(), "killer")?, + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "killer" => Ok(self.killer.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ShowFreezePanel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HideFreezePanelEvent {} impl HideFreezePanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HideFreezePanelEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HideFreezePanel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct FreezeCamStartedEvent {} impl FreezeCamStartedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(FreezeCamStartedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "FreezeCamStarted", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerChangeTeamEvent {} impl LocalPlayerChangeTeamEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerChangeTeamEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChangeTeam", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerScoreChangedEvent { pub score: u16, } impl LocalPlayerScoreChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(LocalPlayerScoreChangedEvent { - score: read_value::(stream, iter.next(), "score")?, + score: read_value::(stream, definition.get_entry("score"), "score")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "score" => Ok(self.score.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerScoreChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerChangeClassEvent {} impl LocalPlayerChangeClassEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerChangeClassEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChangeClass", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerRespawnEvent {} impl LocalPlayerRespawnEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerRespawnEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerRespawn", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BuildingInfoChangedEvent { pub building_type: u8, pub object_mode: u8, @@ -2083,30 +5914,88 @@ pub struct BuildingInfoChangedEvent { impl BuildingInfoChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(BuildingInfoChangedEvent { - building_type: read_value::(stream, iter.next(), "building_type")?, - object_mode: read_value::(stream, iter.next(), "object_mode")?, - remove: read_value::(stream, iter.next(), "remove")?, - }) + building_type: read_value::< + u8, + >(stream, definition.get_entry("building_type"), "building_type")?, + object_mode: read_value::< + u8, + >(stream, definition.get_entry("object_mode"), "object_mode")?, + remove: read_value::(stream, definition.get_entry("remove"), "remove")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "building_type" => Ok(self.building_type.clone().into()), + "object_mode" => Ok(self.object_mode.clone().into()), + "remove" => Ok(self.remove.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BuildingInfoChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerChangeDisguiseEvent { pub disguised: bool, } impl LocalPlayerChangeDisguiseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(LocalPlayerChangeDisguiseEvent { - disguised: read_value::(stream, iter.next(), "disguised")?, + disguised: read_value::< + bool, + >(stream, definition.get_entry("disguised"), "disguised")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "disguised" => Ok(self.disguised.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChangeDisguise", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerAccountChangedEvent { pub old_value: u16, pub new_value: u16, @@ -2114,63 +6003,200 @@ pub struct PlayerAccountChangedEvent { impl PlayerAccountChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerAccountChangedEvent { - old_value: read_value::(stream, iter.next(), "old_value")?, - new_value: read_value::(stream, iter.next(), "new_value")?, + old_value: read_value::< + u16, + >(stream, definition.get_entry("old_value"), "old_value")?, + new_value: read_value::< + u16, + >(stream, definition.get_entry("new_value"), "new_value")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "old_value" => Ok(self.old_value.clone().into()), + "new_value" => Ok(self.new_value.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerAccountChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SpyPdaResetEvent {} impl SpyPdaResetEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(SpyPdaResetEvent {}) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] -pub struct FlagStatusUpdateEvent { - pub user_id: u16, - pub ent_index: u32, + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SpyPdaReset", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] +pub struct FlagStatusUpdateEvent { + pub user_id: u16, + pub ent_index: u32, } impl FlagStatusUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(FlagStatusUpdateEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - ent_index: read_value::(stream, iter.next(), "ent_index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + ent_index: read_value::< + u32, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "FlagStatusUpdate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerStatsUpdatedEvent { pub force_upload: bool, } impl PlayerStatsUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerStatsUpdatedEvent { - force_upload: read_value::(stream, iter.next(), "force_upload")?, + force_upload: read_value::< + bool, + >(stream, definition.get_entry("forceupload"), "force_upload")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "forceupload" => Ok(self.force_upload.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerStatsUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayingCommentaryEvent {} impl PlayingCommentaryEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayingCommentaryEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayingCommentary", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerChargeDeployedEvent { pub user_id: u16, pub target_id: u16, @@ -2178,15 +6204,45 @@ pub struct PlayerChargeDeployedEvent { impl PlayerChargeDeployedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerChargeDeployedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - target_id: read_value::(stream, iter.next(), "target_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + target_id: read_value::< + u16, + >(stream, definition.get_entry("targetid"), "target_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "targetid" => Ok(self.target_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerChargeDeployed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerBuiltObjectEvent { pub user_id: u16, pub object: u16, @@ -2195,16 +6251,45 @@ pub struct PlayerBuiltObjectEvent { impl PlayerBuiltObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerBuiltObjectEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - object: read_value::(stream, iter.next(), "object")?, - index: read_value::(stream, iter.next(), "index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + object: read_value::(stream, definition.get_entry("object"), "object")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "object" => Ok(self.object.clone().into()), + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerBuiltObject", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerUpgradedObjectEvent { pub user_id: u16, pub object: u16, @@ -2214,17 +6299,49 @@ pub struct PlayerUpgradedObjectEvent { impl PlayerUpgradedObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerUpgradedObjectEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - object: read_value::(stream, iter.next(), "object")?, - index: read_value::(stream, iter.next(), "index")?, - is_builder: read_value::(stream, iter.next(), "is_builder")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + object: read_value::(stream, definition.get_entry("object"), "object")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + is_builder: read_value::< + bool, + >(stream, definition.get_entry("isbuilder"), "is_builder")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "object" => Ok(self.object.clone().into()), + "index" => Ok(self.index.clone().into()), + "isbuilder" => Ok(self.is_builder.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerUpgradedObject", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerCarryObjectEvent { pub user_id: u16, pub object: u16, @@ -2233,16 +6350,45 @@ pub struct PlayerCarryObjectEvent { impl PlayerCarryObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerCarryObjectEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - object: read_value::(stream, iter.next(), "object")?, - index: read_value::(stream, iter.next(), "index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + object: read_value::(stream, definition.get_entry("object"), "object")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "object" => Ok(self.object.clone().into()), + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerCarryObject", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDropObjectEvent { pub user_id: u16, pub object: u16, @@ -2251,16 +6397,45 @@ pub struct PlayerDropObjectEvent { impl PlayerDropObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDropObjectEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - object: read_value::(stream, iter.next(), "object")?, - index: read_value::(stream, iter.next(), "index")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + object: read_value::(stream, definition.get_entry("object"), "object")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "object" => Ok(self.object.clone().into()), + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDropObject", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ObjectRemovedEvent { pub user_id: u16, pub object_type: u16, @@ -2269,16 +6444,47 @@ pub struct ObjectRemovedEvent { impl ObjectRemovedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ObjectRemovedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - object_type: read_value::(stream, iter.next(), "object_type")?, - index: read_value::(stream, iter.next(), "index")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + object_type: read_value::< + u16, + >(stream, definition.get_entry("objecttype"), "object_type")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "objecttype" => Ok(self.object_type.clone().into()), + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ObjectRemoved", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ObjectDestroyedEvent { pub user_id: u16, pub attacker: u16, @@ -2292,21 +6498,67 @@ pub struct ObjectDestroyedEvent { impl ObjectDestroyedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ObjectDestroyedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - assister: read_value::(stream, iter.next(), "assister")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - object_type: read_value::(stream, iter.next(), "object_type")?, - index: read_value::(stream, iter.next(), "index")?, - was_building: read_value::(stream, iter.next(), "was_building")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + object_type: read_value::< + u16, + >(stream, definition.get_entry("objecttype"), "object_type")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + was_building: read_value::< + bool, + >(stream, definition.get_entry("was_building"), "was_building")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "objecttype" => Ok(self.object_type.clone().into()), + "index" => Ok(self.index.clone().into()), + "was_building" => Ok(self.was_building.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ObjectDestroyed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ObjectDetonatedEvent { pub user_id: u16, pub object_type: u16, @@ -2315,16 +6567,47 @@ pub struct ObjectDetonatedEvent { impl ObjectDetonatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ObjectDetonatedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - object_type: read_value::(stream, iter.next(), "object_type")?, - index: read_value::(stream, iter.next(), "index")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + object_type: read_value::< + u16, + >(stream, definition.get_entry("objecttype"), "object_type")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "objecttype" => Ok(self.object_type.clone().into()), + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ObjectDetonated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct AchievementEarnedEvent { pub player: u8, pub achievement: u16, @@ -2332,24 +6615,77 @@ pub struct AchievementEarnedEvent { impl AchievementEarnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(AchievementEarnedEvent { - player: read_value::(stream, iter.next(), "player")?, - achievement: read_value::(stream, iter.next(), "achievement")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + achievement: read_value::< + u16, + >(stream, definition.get_entry("achievement"), "achievement")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "achievement" => Ok(self.achievement.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "AchievementEarned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SpecTargetUpdatedEvent {} impl SpecTargetUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(SpecTargetUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SpecTargetUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TournamentStateUpdateEvent { pub user_id: u16, pub name_change: bool, @@ -2359,63 +6695,203 @@ pub struct TournamentStateUpdateEvent { impl TournamentStateUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TournamentStateUpdateEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - name_change: read_value::(stream, iter.next(), "name_change")?, - ready_state: read_value::(stream, iter.next(), "ready_state")?, - new_name: read_value::(stream, iter.next(), "new_name")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + name_change: read_value::< + bool, + >(stream, definition.get_entry("namechange"), "name_change")?, + ready_state: read_value::< + u16, + >(stream, definition.get_entry("readystate"), "ready_state")?, + new_name: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("newname"), "new_name")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "namechange" => Ok(self.name_change.clone().into()), + "readystate" => Ok(self.ready_state.clone().into()), + "newname" => Ok(self.new_name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TournamentStateUpdate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TournamentEnableCountdownEvent {} impl TournamentEnableCountdownEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TournamentEnableCountdownEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TournamentEnableCountdown", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerCalledForMedicEvent { pub user_id: u16, } impl PlayerCalledForMedicEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerCalledForMedicEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerCalledForMedic", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerAskedForBallEvent { pub user_id: u16, } impl PlayerAskedForBallEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerAskedForBallEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerAskedForBall", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerBecameObserverEvent {} impl LocalPlayerBecameObserverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerBecameObserverEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerBecameObserver", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerIgnitedInvEvent { pub pyro_ent_index: u8, pub victim_ent_index: u8, @@ -2424,16 +6900,49 @@ pub struct PlayerIgnitedInvEvent { impl PlayerIgnitedInvEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerIgnitedInvEvent { - pyro_ent_index: read_value::(stream, iter.next(), "pyro_ent_index")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - medic_ent_index: read_value::(stream, iter.next(), "medic_ent_index")?, - }) + pyro_ent_index: read_value::< + u8, + >(stream, definition.get_entry("pyro_entindex"), "pyro_ent_index")?, + victim_ent_index: read_value::< + u8, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + medic_ent_index: read_value::< + u8, + >(stream, definition.get_entry("medic_entindex"), "medic_ent_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "pyro_entindex" => Ok(self.pyro_ent_index.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "medic_entindex" => Ok(self.medic_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerIgnitedInv", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerIgnitedEvent { pub pyro_ent_index: u8, pub victim_ent_index: u8, @@ -2442,16 +6951,49 @@ pub struct PlayerIgnitedEvent { impl PlayerIgnitedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerIgnitedEvent { - pyro_ent_index: read_value::(stream, iter.next(), "pyro_ent_index")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - }) + pyro_ent_index: read_value::< + u8, + >(stream, definition.get_entry("pyro_entindex"), "pyro_ent_index")?, + victim_ent_index: read_value::< + u8, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + weapon_id: read_value::< + u8, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "pyro_entindex" => Ok(self.pyro_ent_index.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerIgnited", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerExtinguishedEvent { pub victim: u8, pub healer: u8, @@ -2460,16 +7002,45 @@ pub struct PlayerExtinguishedEvent { impl PlayerExtinguishedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerExtinguishedEvent { - victim: read_value::(stream, iter.next(), "victim")?, - healer: read_value::(stream, iter.next(), "healer")?, - item_definition_index: read_value::(stream, iter.next(), "item_definition_index")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + healer: read_value::(stream, definition.get_entry("healer"), "healer")?, + item_definition_index: read_value::< + u16, + >(stream, definition.get_entry("itemdefindex"), "item_definition_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "victim" => Ok(self.victim.clone().into()), + "healer" => Ok(self.healer.clone().into()), + "itemdefindex" => Ok(self.item_definition_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerExtinguished", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerTeleportedEvent { pub user_id: u16, pub builder_id: u16, @@ -2478,48 +7049,156 @@ pub struct PlayerTeleportedEvent { impl PlayerTeleportedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerTeleportedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - builder_id: read_value::(stream, iter.next(), "builder_id")?, - dist: read_value::(stream, iter.next(), "dist")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + builder_id: read_value::< + u16, + >(stream, definition.get_entry("builderid"), "builder_id")?, + dist: read_value::(stream, definition.get_entry("dist"), "dist")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "builderid" => Ok(self.builder_id.clone().into()), + "dist" => Ok(self.dist.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerTeleported", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHealedMedicCallEvent { pub user_id: u16, } impl PlayerHealedMedicCallEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHealedMedicCallEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHealedMedicCall", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerChargeReadyEvent {} impl LocalPlayerChargeReadyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerChargeReadyEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChargeReady", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerWindDownEvent {} impl LocalPlayerWindDownEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerWindDownEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerWindDown", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerInvulnedEvent { pub user_id: u16, pub medic_user_id: u16, @@ -2527,15 +7206,45 @@ pub struct PlayerInvulnedEvent { impl PlayerInvulnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerInvulnedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - medic_user_id: read_value::(stream, iter.next(), "medic_user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + medic_user_id: read_value::< + u16, + >(stream, definition.get_entry("medic_userid"), "medic_user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "medic_userid" => Ok(self.medic_user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerInvulned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EscortSpeedEvent { pub team: u8, pub speed: u8, @@ -2544,16 +7253,45 @@ pub struct EscortSpeedEvent { impl EscortSpeedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EscortSpeedEvent { - team: read_value::(stream, iter.next(), "team")?, - speed: read_value::(stream, iter.next(), "speed")?, - players: read_value::(stream, iter.next(), "players")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + speed: read_value::(stream, definition.get_entry("speed"), "speed")?, + players: read_value::< + u8, + >(stream, definition.get_entry("players"), "players")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "speed" => Ok(self.speed.clone().into()), + "players" => Ok(self.players.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EscortSpeed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EscortProgressEvent { pub team: u8, pub progress: f32, @@ -2562,16 +7300,45 @@ pub struct EscortProgressEvent { impl EscortProgressEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EscortProgressEvent { - team: read_value::(stream, iter.next(), "team")?, - progress: read_value::(stream, iter.next(), "progress")?, - reset: read_value::(stream, iter.next(), "reset")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + progress: read_value::< + f32, + >(stream, definition.get_entry("progress"), "progress")?, + reset: read_value::(stream, definition.get_entry("reset"), "reset")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "progress" => Ok(self.progress.clone().into()), + "reset" => Ok(self.reset.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EscortProgress", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EscortRecedeEvent { pub team: u8, pub recede_time: f32, @@ -2579,33 +7346,111 @@ pub struct EscortRecedeEvent { impl EscortRecedeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EscortRecedeEvent { - team: read_value::(stream, iter.next(), "team")?, - recede_time: read_value::(stream, iter.next(), "recede_time")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + recede_time: read_value::< + f32, + >(stream, definition.get_entry("recedetime"), "recede_time")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "recedetime" => Ok(self.recede_time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EscortRecede", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameUIActivatedEvent {} impl GameUIActivatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GameUIActivatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameUIActivated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GameUIHiddenEvent {} impl GameUIHiddenEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GameUIHiddenEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GameUIHidden", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerEscortScoreEvent { pub player: u8, pub points: u8, @@ -2613,16 +7458,42 @@ pub struct PlayerEscortScoreEvent { impl PlayerEscortScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerEscortScoreEvent { - player: read_value::(stream, iter.next(), "player")?, - points: read_value::(stream, iter.next(), "points")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + points: read_value::(stream, definition.get_entry("points"), "points")?, }) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] -pub struct PlayerHealOnHitEvent { + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "points" => Ok(self.points.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerEscortScore", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] +pub struct PlayerHealOnHitEvent { pub amount: u16, pub ent_index: u8, pub weapon_def_index: u32, @@ -2630,16 +7501,47 @@ pub struct PlayerHealOnHitEvent { impl PlayerHealOnHitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHealOnHitEvent { - amount: read_value::(stream, iter.next(), "amount")?, - ent_index: read_value::(stream, iter.next(), "ent_index")?, - weapon_def_index: read_value::(stream, iter.next(), "weapon_def_index")?, - }) + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, + ent_index: read_value::< + u8, + >(stream, definition.get_entry("entindex"), "ent_index")?, + weapon_def_index: read_value::< + u32, + >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "amount" => Ok(self.amount.clone().into()), + "entindex" => Ok(self.ent_index.clone().into()), + "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHealOnHit", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerStealSandvichEvent { pub owner: u16, pub target: u16, @@ -2647,43 +7549,119 @@ pub struct PlayerStealSandvichEvent { impl PlayerStealSandvichEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerStealSandvichEvent { - owner: read_value::(stream, iter.next(), "owner")?, - target: read_value::(stream, iter.next(), "target")?, + owner: read_value::(stream, definition.get_entry("owner"), "owner")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "owner" => Ok(self.owner.clone().into()), + "target" => Ok(self.target.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerStealSandvich", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ShowClassLayoutEvent { pub show: bool, } impl ShowClassLayoutEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ShowClassLayoutEvent { - show: read_value::(stream, iter.next(), "show")?, + show: read_value::(stream, definition.get_entry("show"), "show")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "show" => Ok(self.show.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ShowClassLayout", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ShowVsPanelEvent { pub show: bool, } impl ShowVsPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ShowVsPanelEvent { - show: read_value::(stream, iter.next(), "show")?, + show: read_value::(stream, definition.get_entry("show"), "show")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "show" => Ok(self.show.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ShowVsPanel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDamagedEvent { pub amount: u16, pub kind: u32, @@ -2691,15 +7669,41 @@ pub struct PlayerDamagedEvent { impl PlayerDamagedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDamagedEvent { - amount: read_value::(stream, iter.next(), "amount")?, - kind: read_value::(stream, iter.next(), "kind")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, + kind: read_value::(stream, definition.get_entry("type"), "kind")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "amount" => Ok(self.amount.clone().into()), + "type" => Ok(self.kind.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDamaged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ArenaPlayerNotificationEvent { pub player: u8, pub message: u8, @@ -2707,15 +7711,43 @@ pub struct ArenaPlayerNotificationEvent { impl ArenaPlayerNotificationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ArenaPlayerNotificationEvent { - player: read_value::(stream, iter.next(), "player")?, - message: read_value::(stream, iter.next(), "message")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + message: read_value::< + u8, + >(stream, definition.get_entry("message"), "message")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "message" => Ok(self.message.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ArenaPlayerNotification", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ArenaMatchMaxStreakEvent { pub team: u8, pub streak: u8, @@ -2723,24 +7755,75 @@ pub struct ArenaMatchMaxStreakEvent { impl ArenaMatchMaxStreakEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ArenaMatchMaxStreakEvent { - team: read_value::(stream, iter.next(), "team")?, - streak: read_value::(stream, iter.next(), "streak")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + streak: read_value::(stream, definition.get_entry("streak"), "streak")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "streak" => Ok(self.streak.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ArenaMatchMaxStreak", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ArenaRoundStartEvent {} impl ArenaRoundStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ArenaRoundStartEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ArenaRoundStart", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ArenaWinPanelEvent { pub panel_style: u8, pub winning_team: u8, @@ -2786,53 +7869,197 @@ pub struct ArenaWinPanelEvent { impl ArenaWinPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ArenaWinPanelEvent { - panel_style: read_value::(stream, iter.next(), "panel_style")?, - winning_team: read_value::(stream, iter.next(), "winning_team")?, - win_reason: read_value::(stream, iter.next(), "win_reason")?, - cappers: read_value::(stream, iter.next(), "cappers")?, - flag_cap_limit: read_value::(stream, iter.next(), "flag_cap_limit")?, - blue_score: read_value::(stream, iter.next(), "blue_score")?, - red_score: read_value::(stream, iter.next(), "red_score")?, - blue_score_prev: read_value::(stream, iter.next(), "blue_score_prev")?, - red_score_prev: read_value::(stream, iter.next(), "red_score_prev")?, - round_complete: read_value::(stream, iter.next(), "round_complete")?, - player_1: read_value::(stream, iter.next(), "player_1")?, - player_1_damage: read_value::(stream, iter.next(), "player_1_damage")?, - player_1_healing: read_value::(stream, iter.next(), "player_1_healing")?, - player_1_lifetime: read_value::(stream, iter.next(), "player_1_lifetime")?, - player_1_kills: read_value::(stream, iter.next(), "player_1_kills")?, - player_2: read_value::(stream, iter.next(), "player_2")?, - player_2_damage: read_value::(stream, iter.next(), "player_2_damage")?, - player_2_healing: read_value::(stream, iter.next(), "player_2_healing")?, - player_2_lifetime: read_value::(stream, iter.next(), "player_2_lifetime")?, - player_2_kills: read_value::(stream, iter.next(), "player_2_kills")?, - player_3: read_value::(stream, iter.next(), "player_3")?, - player_3_damage: read_value::(stream, iter.next(), "player_3_damage")?, - player_3_healing: read_value::(stream, iter.next(), "player_3_healing")?, - player_3_lifetime: read_value::(stream, iter.next(), "player_3_lifetime")?, - player_3_kills: read_value::(stream, iter.next(), "player_3_kills")?, - player_4: read_value::(stream, iter.next(), "player_4")?, - player_4_damage: read_value::(stream, iter.next(), "player_4_damage")?, - player_4_healing: read_value::(stream, iter.next(), "player_4_healing")?, - player_4_lifetime: read_value::(stream, iter.next(), "player_4_lifetime")?, - player_4_kills: read_value::(stream, iter.next(), "player_4_kills")?, - player_5: read_value::(stream, iter.next(), "player_5")?, - player_5_damage: read_value::(stream, iter.next(), "player_5_damage")?, - player_5_healing: read_value::(stream, iter.next(), "player_5_healing")?, - player_5_lifetime: read_value::(stream, iter.next(), "player_5_lifetime")?, - player_5_kills: read_value::(stream, iter.next(), "player_5_kills")?, - player_6: read_value::(stream, iter.next(), "player_6")?, - player_6_damage: read_value::(stream, iter.next(), "player_6_damage")?, - player_6_healing: read_value::(stream, iter.next(), "player_6_healing")?, - player_6_lifetime: read_value::(stream, iter.next(), "player_6_lifetime")?, - player_6_kills: read_value::(stream, iter.next(), "player_6_kills")?, - }) - } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] + panel_style: read_value::< + u8, + >(stream, definition.get_entry("panel_style"), "panel_style")?, + winning_team: read_value::< + u8, + >(stream, definition.get_entry("winning_team"), "winning_team")?, + win_reason: read_value::< + u8, + >(stream, definition.get_entry("winreason"), "win_reason")?, + cappers: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("cappers"), "cappers")?, + flag_cap_limit: read_value::< + u16, + >(stream, definition.get_entry("flagcaplimit"), "flag_cap_limit")?, + blue_score: read_value::< + u16, + >(stream, definition.get_entry("blue_score"), "blue_score")?, + red_score: read_value::< + u16, + >(stream, definition.get_entry("red_score"), "red_score")?, + blue_score_prev: read_value::< + u16, + >(stream, definition.get_entry("blue_score_prev"), "blue_score_prev")?, + red_score_prev: read_value::< + u16, + >(stream, definition.get_entry("red_score_prev"), "red_score_prev")?, + round_complete: read_value::< + u16, + >(stream, definition.get_entry("round_complete"), "round_complete")?, + player_1: read_value::< + u16, + >(stream, definition.get_entry("player_1"), "player_1")?, + player_1_damage: read_value::< + u16, + >(stream, definition.get_entry("player_1_damage"), "player_1_damage")?, + player_1_healing: read_value::< + u16, + >(stream, definition.get_entry("player_1_healing"), "player_1_healing")?, + player_1_lifetime: read_value::< + u16, + >(stream, definition.get_entry("player_1_lifetime"), "player_1_lifetime")?, + player_1_kills: read_value::< + u16, + >(stream, definition.get_entry("player_1_kills"), "player_1_kills")?, + player_2: read_value::< + u16, + >(stream, definition.get_entry("player_2"), "player_2")?, + player_2_damage: read_value::< + u16, + >(stream, definition.get_entry("player_2_damage"), "player_2_damage")?, + player_2_healing: read_value::< + u16, + >(stream, definition.get_entry("player_2_healing"), "player_2_healing")?, + player_2_lifetime: read_value::< + u16, + >(stream, definition.get_entry("player_2_lifetime"), "player_2_lifetime")?, + player_2_kills: read_value::< + u16, + >(stream, definition.get_entry("player_2_kills"), "player_2_kills")?, + player_3: read_value::< + u16, + >(stream, definition.get_entry("player_3"), "player_3")?, + player_3_damage: read_value::< + u16, + >(stream, definition.get_entry("player_3_damage"), "player_3_damage")?, + player_3_healing: read_value::< + u16, + >(stream, definition.get_entry("player_3_healing"), "player_3_healing")?, + player_3_lifetime: read_value::< + u16, + >(stream, definition.get_entry("player_3_lifetime"), "player_3_lifetime")?, + player_3_kills: read_value::< + u16, + >(stream, definition.get_entry("player_3_kills"), "player_3_kills")?, + player_4: read_value::< + u16, + >(stream, definition.get_entry("player_4"), "player_4")?, + player_4_damage: read_value::< + u16, + >(stream, definition.get_entry("player_4_damage"), "player_4_damage")?, + player_4_healing: read_value::< + u16, + >(stream, definition.get_entry("player_4_healing"), "player_4_healing")?, + player_4_lifetime: read_value::< + u16, + >(stream, definition.get_entry("player_4_lifetime"), "player_4_lifetime")?, + player_4_kills: read_value::< + u16, + >(stream, definition.get_entry("player_4_kills"), "player_4_kills")?, + player_5: read_value::< + u16, + >(stream, definition.get_entry("player_5"), "player_5")?, + player_5_damage: read_value::< + u16, + >(stream, definition.get_entry("player_5_damage"), "player_5_damage")?, + player_5_healing: read_value::< + u16, + >(stream, definition.get_entry("player_5_healing"), "player_5_healing")?, + player_5_lifetime: read_value::< + u16, + >(stream, definition.get_entry("player_5_lifetime"), "player_5_lifetime")?, + player_5_kills: read_value::< + u16, + >(stream, definition.get_entry("player_5_kills"), "player_5_kills")?, + player_6: read_value::< + u16, + >(stream, definition.get_entry("player_6"), "player_6")?, + player_6_damage: read_value::< + u16, + >(stream, definition.get_entry("player_6_damage"), "player_6_damage")?, + player_6_healing: read_value::< + u16, + >(stream, definition.get_entry("player_6_healing"), "player_6_healing")?, + player_6_lifetime: read_value::< + u16, + >(stream, definition.get_entry("player_6_lifetime"), "player_6_lifetime")?, + player_6_kills: read_value::< + u16, + >(stream, definition.get_entry("player_6_kills"), "player_6_kills")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "panel_style" => Ok(self.panel_style.clone().into()), + "winning_team" => Ok(self.winning_team.clone().into()), + "winreason" => Ok(self.win_reason.clone().into()), + "cappers" => Ok(self.cappers.clone().into()), + "flagcaplimit" => Ok(self.flag_cap_limit.clone().into()), + "blue_score" => Ok(self.blue_score.clone().into()), + "red_score" => Ok(self.red_score.clone().into()), + "blue_score_prev" => Ok(self.blue_score_prev.clone().into()), + "red_score_prev" => Ok(self.red_score_prev.clone().into()), + "round_complete" => Ok(self.round_complete.clone().into()), + "player_1" => Ok(self.player_1.clone().into()), + "player_1_damage" => Ok(self.player_1_damage.clone().into()), + "player_1_healing" => Ok(self.player_1_healing.clone().into()), + "player_1_lifetime" => Ok(self.player_1_lifetime.clone().into()), + "player_1_kills" => Ok(self.player_1_kills.clone().into()), + "player_2" => Ok(self.player_2.clone().into()), + "player_2_damage" => Ok(self.player_2_damage.clone().into()), + "player_2_healing" => Ok(self.player_2_healing.clone().into()), + "player_2_lifetime" => Ok(self.player_2_lifetime.clone().into()), + "player_2_kills" => Ok(self.player_2_kills.clone().into()), + "player_3" => Ok(self.player_3.clone().into()), + "player_3_damage" => Ok(self.player_3_damage.clone().into()), + "player_3_healing" => Ok(self.player_3_healing.clone().into()), + "player_3_lifetime" => Ok(self.player_3_lifetime.clone().into()), + "player_3_kills" => Ok(self.player_3_kills.clone().into()), + "player_4" => Ok(self.player_4.clone().into()), + "player_4_damage" => Ok(self.player_4_damage.clone().into()), + "player_4_healing" => Ok(self.player_4_healing.clone().into()), + "player_4_lifetime" => Ok(self.player_4_lifetime.clone().into()), + "player_4_kills" => Ok(self.player_4_kills.clone().into()), + "player_5" => Ok(self.player_5.clone().into()), + "player_5_damage" => Ok(self.player_5_damage.clone().into()), + "player_5_healing" => Ok(self.player_5_healing.clone().into()), + "player_5_lifetime" => Ok(self.player_5_lifetime.clone().into()), + "player_5_kills" => Ok(self.player_5_kills.clone().into()), + "player_6" => Ok(self.player_6.clone().into()), + "player_6_damage" => Ok(self.player_6_damage.clone().into()), + "player_6_healing" => Ok(self.player_6_healing.clone().into()), + "player_6_lifetime" => Ok(self.player_6_lifetime.clone().into()), + "player_6_kills" => Ok(self.player_6_kills.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ArenaWinPanel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PveWinPanelEvent { pub panel_style: u8, pub winning_team: u8, @@ -2841,58 +8068,166 @@ pub struct PveWinPanelEvent { impl PveWinPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PveWinPanelEvent { - panel_style: read_value::(stream, iter.next(), "panel_style")?, - winning_team: read_value::(stream, iter.next(), "winning_team")?, - win_reason: read_value::(stream, iter.next(), "win_reason")?, - }) + panel_style: read_value::< + u8, + >(stream, definition.get_entry("panel_style"), "panel_style")?, + winning_team: read_value::< + u8, + >(stream, definition.get_entry("winning_team"), "winning_team")?, + win_reason: read_value::< + u8, + >(stream, definition.get_entry("winreason"), "win_reason")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "panel_style" => Ok(self.panel_style.clone().into()), + "winning_team" => Ok(self.winning_team.clone().into()), + "winreason" => Ok(self.win_reason.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PveWinPanel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct AirDashEvent { pub player: u8, } impl AirDashEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(AirDashEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "AirDash", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LandedEvent { pub player: u8, } impl LandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(LandedEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "Landed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDamageDodgedEvent { pub damage: u16, } impl PlayerDamageDodgedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDamageDodgedEvent { - damage: read_value::(stream, iter.next(), "damage")?, + damage: read_value::(stream, definition.get_entry("damage"), "damage")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "damage" => Ok(self.damage.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDamageDodged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerStunnedEvent { pub stunner: u16, pub victim: u16, @@ -2902,17 +8237,51 @@ pub struct PlayerStunnedEvent { impl PlayerStunnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerStunnedEvent { - stunner: read_value::(stream, iter.next(), "stunner")?, - victim: read_value::(stream, iter.next(), "victim")?, - victim_capping: read_value::(stream, iter.next(), "victim_capping")?, - big_stun: read_value::(stream, iter.next(), "big_stun")?, - }) + stunner: read_value::< + u16, + >(stream, definition.get_entry("stunner"), "stunner")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + victim_capping: read_value::< + bool, + >(stream, definition.get_entry("victim_capping"), "victim_capping")?, + big_stun: read_value::< + bool, + >(stream, definition.get_entry("big_stun"), "big_stun")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "stunner" => Ok(self.stunner.clone().into()), + "victim" => Ok(self.victim.clone().into()), + "victim_capping" => Ok(self.victim_capping.clone().into()), + "big_stun" => Ok(self.big_stun.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerStunned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ScoutGrandSlamEvent { pub scout_id: u16, pub target_id: u16, @@ -2920,15 +8289,45 @@ pub struct ScoutGrandSlamEvent { impl ScoutGrandSlamEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ScoutGrandSlamEvent { - scout_id: read_value::(stream, iter.next(), "scout_id")?, - target_id: read_value::(stream, iter.next(), "target_id")?, + scout_id: read_value::< + u16, + >(stream, definition.get_entry("scout_id"), "scout_id")?, + target_id: read_value::< + u16, + >(stream, definition.get_entry("target_id"), "target_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "scout_id" => Ok(self.scout_id.clone().into()), + "target_id" => Ok(self.target_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ScoutGrandSlam", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ScoutSlamdollLandedEvent { pub target_index: u16, pub x: f32, @@ -2938,17 +8337,47 @@ pub struct ScoutSlamdollLandedEvent { impl ScoutSlamdollLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ScoutSlamdollLandedEvent { - target_index: read_value::(stream, iter.next(), "target_index")?, - x: read_value::(stream, iter.next(), "x")?, - y: read_value::(stream, iter.next(), "y")?, - z: read_value::(stream, iter.next(), "z")?, - }) + target_index: read_value::< + u16, + >(stream, definition.get_entry("target_index"), "target_index")?, + x: read_value::(stream, definition.get_entry("x"), "x")?, + y: read_value::(stream, definition.get_entry("y"), "y")?, + z: read_value::(stream, definition.get_entry("z"), "z")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "target_index" => Ok(self.target_index.clone().into()), + "x" => Ok(self.x.clone().into()), + "y" => Ok(self.y.clone().into()), + "z" => Ok(self.z.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ScoutSlamdollLanded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ArrowImpactEvent { pub attached_entity: u16, pub shooter: u16, @@ -2965,24 +8394,81 @@ pub struct ArrowImpactEvent { impl ArrowImpactEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ArrowImpactEvent { - attached_entity: read_value::(stream, iter.next(), "attached_entity")?, - shooter: read_value::(stream, iter.next(), "shooter")?, - bone_index_attached: read_value::(stream, iter.next(), "bone_index_attached")?, - bone_position_x: read_value::(stream, iter.next(), "bone_position_x")?, - bone_position_y: read_value::(stream, iter.next(), "bone_position_y")?, - bone_position_z: read_value::(stream, iter.next(), "bone_position_z")?, - bone_angles_x: read_value::(stream, iter.next(), "bone_angles_x")?, - bone_angles_y: read_value::(stream, iter.next(), "bone_angles_y")?, - bone_angles_z: read_value::(stream, iter.next(), "bone_angles_z")?, - projectile_type: read_value::(stream, iter.next(), "projectile_type")?, - is_crit: read_value::(stream, iter.next(), "is_crit")?, - }) + attached_entity: read_value::< + u16, + >(stream, definition.get_entry("attachedEntity"), "attached_entity")?, + shooter: read_value::< + u16, + >(stream, definition.get_entry("shooter"), "shooter")?, + bone_index_attached: read_value::< + u16, + >(stream, definition.get_entry("boneIndexAttached"), "bone_index_attached")?, + bone_position_x: read_value::< + f32, + >(stream, definition.get_entry("bonePositionX"), "bone_position_x")?, + bone_position_y: read_value::< + f32, + >(stream, definition.get_entry("bonePositionY"), "bone_position_y")?, + bone_position_z: read_value::< + f32, + >(stream, definition.get_entry("bonePositionZ"), "bone_position_z")?, + bone_angles_x: read_value::< + f32, + >(stream, definition.get_entry("boneAnglesX"), "bone_angles_x")?, + bone_angles_y: read_value::< + f32, + >(stream, definition.get_entry("boneAnglesY"), "bone_angles_y")?, + bone_angles_z: read_value::< + f32, + >(stream, definition.get_entry("boneAnglesZ"), "bone_angles_z")?, + projectile_type: read_value::< + u16, + >(stream, definition.get_entry("projectileType"), "projectile_type")?, + is_crit: read_value::< + bool, + >(stream, definition.get_entry("isCrit"), "is_crit")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "attachedEntity" => Ok(self.attached_entity.clone().into()), + "shooter" => Ok(self.shooter.clone().into()), + "boneIndexAttached" => Ok(self.bone_index_attached.clone().into()), + "bonePositionX" => Ok(self.bone_position_x.clone().into()), + "bonePositionY" => Ok(self.bone_position_y.clone().into()), + "bonePositionZ" => Ok(self.bone_position_z.clone().into()), + "boneAnglesX" => Ok(self.bone_angles_x.clone().into()), + "boneAnglesY" => Ok(self.bone_angles_y.clone().into()), + "boneAnglesZ" => Ok(self.bone_angles_z.clone().into()), + "projectileType" => Ok(self.projectile_type.clone().into()), + "isCrit" => Ok(self.is_crit.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ArrowImpact", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerJaratedEvent { pub thrower_ent_index: u8, pub victim_ent_index: u8, @@ -2990,15 +8476,45 @@ pub struct PlayerJaratedEvent { impl PlayerJaratedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerJaratedEvent { - thrower_ent_index: read_value::(stream, iter.next(), "thrower_ent_index")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + thrower_ent_index: read_value::< + u8, + >(stream, definition.get_entry("thrower_entindex"), "thrower_ent_index")?, + victim_ent_index: read_value::< + u8, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "thrower_entindex" => Ok(self.thrower_ent_index.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerJarated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerJaratedFadeEvent { pub thrower_ent_index: u8, pub victim_ent_index: u8, @@ -3006,15 +8522,45 @@ pub struct PlayerJaratedFadeEvent { impl PlayerJaratedFadeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerJaratedFadeEvent { - thrower_ent_index: read_value::(stream, iter.next(), "thrower_ent_index")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, + thrower_ent_index: read_value::< + u8, + >(stream, definition.get_entry("thrower_entindex"), "thrower_ent_index")?, + victim_ent_index: read_value::< + u8, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "thrower_entindex" => Ok(self.thrower_ent_index.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerJaratedFade", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerShieldBlockedEvent { pub attacker_ent_index: u8, pub blocker_ent_index: u8, @@ -3022,43 +8568,123 @@ pub struct PlayerShieldBlockedEvent { impl PlayerShieldBlockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerShieldBlockedEvent { - attacker_ent_index: read_value::(stream, iter.next(), "attacker_ent_index")?, - blocker_ent_index: read_value::(stream, iter.next(), "blocker_ent_index")?, + attacker_ent_index: read_value::< + u8, + >(stream, definition.get_entry("attacker_entindex"), "attacker_ent_index")?, + blocker_ent_index: read_value::< + u8, + >(stream, definition.get_entry("blocker_entindex"), "blocker_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "attacker_entindex" => Ok(self.attacker_ent_index.clone().into()), + "blocker_entindex" => Ok(self.blocker_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerShieldBlocked", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerPinnedEvent { pub pinned: u8, } impl PlayerPinnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerPinnedEvent { - pinned: read_value::(stream, iter.next(), "pinned")?, + pinned: read_value::(stream, definition.get_entry("pinned"), "pinned")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "pinned" => Ok(self.pinned.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerPinned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHealedByMedicEvent { pub medic: u8, } impl PlayerHealedByMedicEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHealedByMedicEvent { - medic: read_value::(stream, iter.next(), "medic")?, + medic: read_value::(stream, definition.get_entry("medic"), "medic")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "medic" => Ok(self.medic.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHealedByMedic", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerSappedObjectEvent { pub user_id: u16, pub owner_id: u16, @@ -3068,17 +8694,51 @@ pub struct PlayerSappedObjectEvent { impl PlayerSappedObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerSappedObjectEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - owner_id: read_value::(stream, iter.next(), "owner_id")?, - object: read_value::(stream, iter.next(), "object")?, - sapper_id: read_value::(stream, iter.next(), "sapper_id")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + owner_id: read_value::< + u16, + >(stream, definition.get_entry("ownerid"), "owner_id")?, + object: read_value::(stream, definition.get_entry("object"), "object")?, + sapper_id: read_value::< + u16, + >(stream, definition.get_entry("sapperid"), "sapper_id")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "ownerid" => Ok(self.owner_id.clone().into()), + "object" => Ok(self.object.clone().into()), + "sapperid" => Ok(self.sapper_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerSappedObject", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ItemFoundEvent { pub player: u8, pub quality: u8, @@ -3091,20 +8751,59 @@ pub struct ItemFoundEvent { impl ItemFoundEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ItemFoundEvent { - player: read_value::(stream, iter.next(), "player")?, - quality: read_value::(stream, iter.next(), "quality")?, - method: read_value::(stream, iter.next(), "method")?, - item_def: read_value::(stream, iter.next(), "item_def")?, - is_strange: read_value::(stream, iter.next(), "is_strange")?, - is_unusual: read_value::(stream, iter.next(), "is_unusual")?, - wear: read_value::(stream, iter.next(), "wear")?, - }) + player: read_value::(stream, definition.get_entry("player"), "player")?, + quality: read_value::< + u8, + >(stream, definition.get_entry("quality"), "quality")?, + method: read_value::(stream, definition.get_entry("method"), "method")?, + item_def: read_value::< + u32, + >(stream, definition.get_entry("itemdef"), "item_def")?, + is_strange: read_value::< + u8, + >(stream, definition.get_entry("isstrange"), "is_strange")?, + is_unusual: read_value::< + u8, + >(stream, definition.get_entry("isunusual"), "is_unusual")?, + wear: read_value::(stream, definition.get_entry("wear"), "wear")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "quality" => Ok(self.quality.clone().into()), + "method" => Ok(self.method.clone().into()), + "itemdef" => Ok(self.item_def.clone().into()), + "isstrange" => Ok(self.is_strange.clone().into()), + "isunusual" => Ok(self.is_unusual.clone().into()), + "wear" => Ok(self.wear.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ItemFound", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ShowAnnotationEvent { pub world_pos_x: f32, pub world_pos_y: f32, @@ -3124,55 +8823,175 @@ pub struct ShowAnnotationEvent { impl ShowAnnotationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ShowAnnotationEvent { - world_pos_x: read_value::(stream, iter.next(), "world_pos_x")?, - world_pos_y: read_value::(stream, iter.next(), "world_pos_y")?, - world_pos_z: read_value::(stream, iter.next(), "world_pos_z")?, - world_normal_x: read_value::(stream, iter.next(), "world_normal_x")?, - world_normal_y: read_value::(stream, iter.next(), "world_normal_y")?, - world_normal_z: read_value::(stream, iter.next(), "world_normal_z")?, - id: read_value::(stream, iter.next(), "id")?, - text: read_value::(stream, iter.next(), "text")?, - lifetime: read_value::(stream, iter.next(), "lifetime")?, - visibility_bit_field: read_value::(stream, iter.next(), "visibility_bit_field")?, - follow_ent_index: read_value::(stream, iter.next(), "follow_ent_index")?, - show_distance: read_value::(stream, iter.next(), "show_distance")?, - play_sound: read_value::(stream, iter.next(), "play_sound")?, - show_effect: read_value::(stream, iter.next(), "show_effect")?, - }) + world_pos_x: read_value::< + f32, + >(stream, definition.get_entry("worldPosX"), "world_pos_x")?, + world_pos_y: read_value::< + f32, + >(stream, definition.get_entry("worldPosY"), "world_pos_y")?, + world_pos_z: read_value::< + f32, + >(stream, definition.get_entry("worldPosZ"), "world_pos_z")?, + world_normal_x: read_value::< + f32, + >(stream, definition.get_entry("worldNormalX"), "world_normal_x")?, + world_normal_y: read_value::< + f32, + >(stream, definition.get_entry("worldNormalY"), "world_normal_y")?, + world_normal_z: read_value::< + f32, + >(stream, definition.get_entry("worldNormalZ"), "world_normal_z")?, + id: read_value::(stream, definition.get_entry("id"), "id")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, + lifetime: read_value::< + f32, + >(stream, definition.get_entry("lifetime"), "lifetime")?, + visibility_bit_field: read_value::< + u32, + >( + stream, + definition.get_entry("visibilityBitfield"), + "visibility_bit_field", + )?, + follow_ent_index: read_value::< + u32, + >(stream, definition.get_entry("follow_entindex"), "follow_ent_index")?, + show_distance: read_value::< + bool, + >(stream, definition.get_entry("show_distance"), "show_distance")?, + play_sound: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("play_sound"), "play_sound")?, + show_effect: read_value::< + bool, + >(stream, definition.get_entry("show_effect"), "show_effect")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "worldPosX" => Ok(self.world_pos_x.clone().into()), + "worldPosY" => Ok(self.world_pos_y.clone().into()), + "worldPosZ" => Ok(self.world_pos_z.clone().into()), + "worldNormalX" => Ok(self.world_normal_x.clone().into()), + "worldNormalY" => Ok(self.world_normal_y.clone().into()), + "worldNormalZ" => Ok(self.world_normal_z.clone().into()), + "id" => Ok(self.id.clone().into()), + "text" => Ok(self.text.clone().into()), + "lifetime" => Ok(self.lifetime.clone().into()), + "visibilityBitfield" => Ok(self.visibility_bit_field.clone().into()), + "follow_entindex" => Ok(self.follow_ent_index.clone().into()), + "show_distance" => Ok(self.show_distance.clone().into()), + "play_sound" => Ok(self.play_sound.clone().into()), + "show_effect" => Ok(self.show_effect.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ShowAnnotation", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HideAnnotationEvent { pub id: u32, } impl HideAnnotationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HideAnnotationEvent { - id: read_value::(stream, iter.next(), "id")?, + id: read_value::(stream, definition.get_entry("id"), "id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "id" => Ok(self.id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HideAnnotation", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PostInventoryApplicationEvent { pub user_id: u16, } impl PostInventoryApplicationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PostInventoryApplicationEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PostInventoryApplication", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointUnlockUpdatedEvent { pub index: u16, pub time: f32, @@ -3180,15 +8999,41 @@ pub struct ControlPointUnlockUpdatedEvent { impl ControlPointUnlockUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointUnlockUpdatedEvent { - index: read_value::(stream, iter.next(), "index")?, - time: read_value::(stream, iter.next(), "time")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + time: read_value::(stream, definition.get_entry("time"), "time")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "time" => Ok(self.time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointUnlockUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DeployBuffBannerEvent { pub buff_type: u8, pub buff_owner: u16, @@ -3196,15 +9041,45 @@ pub struct DeployBuffBannerEvent { impl DeployBuffBannerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DeployBuffBannerEvent { - buff_type: read_value::(stream, iter.next(), "buff_type")?, - buff_owner: read_value::(stream, iter.next(), "buff_owner")?, + buff_type: read_value::< + u8, + >(stream, definition.get_entry("buff_type"), "buff_type")?, + buff_owner: read_value::< + u16, + >(stream, definition.get_entry("buff_owner"), "buff_owner")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "buff_type" => Ok(self.buff_type.clone().into()), + "buff_owner" => Ok(self.buff_owner.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DeployBuffBanner", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerBuffEvent { pub user_id: u16, pub buff_owner: u16, @@ -3213,16 +9088,49 @@ pub struct PlayerBuffEvent { impl PlayerBuffEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerBuffEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - buff_owner: read_value::(stream, iter.next(), "buff_owner")?, - buff_type: read_value::(stream, iter.next(), "buff_type")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + buff_owner: read_value::< + u16, + >(stream, definition.get_entry("buff_owner"), "buff_owner")?, + buff_type: read_value::< + u8, + >(stream, definition.get_entry("buff_type"), "buff_type")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "buff_owner" => Ok(self.buff_owner.clone().into()), + "buff_type" => Ok(self.buff_type.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerBuff", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MedicDeathEvent { pub user_id: u16, pub attacker: u16, @@ -3232,49 +9140,162 @@ pub struct MedicDeathEvent { impl MedicDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MedicDeathEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - healing: read_value::(stream, iter.next(), "healing")?, - charged: read_value::(stream, iter.next(), "charged")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + healing: read_value::< + u16, + >(stream, definition.get_entry("healing"), "healing")?, + charged: read_value::< + bool, + >(stream, definition.get_entry("charged"), "charged")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "healing" => Ok(self.healing.clone().into()), + "charged" => Ok(self.charged.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MedicDeath", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct OvertimeNagEvent {} impl OvertimeNagEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(OvertimeNagEvent {}) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] -pub struct TeamsChangedEvent {} -impl TeamsChangedEvent { + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "OvertimeNag", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] +pub struct TeamsChangedEvent {} +impl TeamsChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamsChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamsChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HalloweenPumpkinGrabEvent { pub user_id: u16, } impl HalloweenPumpkinGrabEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HalloweenPumpkinGrabEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HalloweenPumpkinGrab", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RocketJumpEvent { pub user_id: u16, pub play_sound: bool, @@ -3282,29 +9303,86 @@ pub struct RocketJumpEvent { impl RocketJumpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RocketJumpEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - play_sound: read_value::(stream, iter.next(), "play_sound")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + play_sound: read_value::< + bool, + >(stream, definition.get_entry("playsound"), "play_sound")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "playsound" => Ok(self.play_sound.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RocketJump", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RocketJumpLandedEvent { pub user_id: u16, } impl RocketJumpLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RocketJumpLandedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RocketJumpLanded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct StickyJumpEvent { pub user_id: u16, pub play_sound: bool, @@ -3312,29 +9390,86 @@ pub struct StickyJumpEvent { impl StickyJumpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(StickyJumpEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - play_sound: read_value::(stream, iter.next(), "play_sound")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + play_sound: read_value::< + bool, + >(stream, definition.get_entry("playsound"), "play_sound")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "playsound" => Ok(self.play_sound.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "StickyJump", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct StickyJumpLandedEvent { pub user_id: u16, } impl StickyJumpLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(StickyJumpLandedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "StickyJumpLanded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RocketPackLaunchEvent { pub user_id: u16, pub play_sound: bool, @@ -3342,29 +9477,86 @@ pub struct RocketPackLaunchEvent { impl RocketPackLaunchEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RocketPackLaunchEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - play_sound: read_value::(stream, iter.next(), "play_sound")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + play_sound: read_value::< + bool, + >(stream, definition.get_entry("playsound"), "play_sound")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "playsound" => Ok(self.play_sound.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RocketPackLaunch", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RocketPackLandedEvent { pub user_id: u16, } impl RocketPackLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RocketPackLandedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RocketPackLanded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MedicDefendedEvent { pub user_id: u16, pub medic: u16, @@ -3372,43 +9564,123 @@ pub struct MedicDefendedEvent { impl MedicDefendedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MedicDefendedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - medic: read_value::(stream, iter.next(), "medic")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + medic: read_value::(stream, definition.get_entry("medic"), "medic")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "medic" => Ok(self.medic.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MedicDefended", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerHealedEvent { pub amount: u16, } impl LocalPlayerHealedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(LocalPlayerHealedEvent { - amount: read_value::(stream, iter.next(), "amount")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "amount" => Ok(self.amount.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerHealed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDestroyedPipeBombEvent { pub user_id: u16, } impl PlayerDestroyedPipeBombEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDestroyedPipeBombEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDestroyedPipeBomb", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ObjectDeflectedEvent { pub user_id: u16, pub owner_id: u16, @@ -3418,49 +9690,160 @@ pub struct ObjectDeflectedEvent { impl ObjectDeflectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ObjectDeflectedEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - owner_id: read_value::(stream, iter.next(), "owner_id")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - object_ent_index: read_value::(stream, iter.next(), "object_ent_index")?, - }) + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + owner_id: read_value::< + u16, + >(stream, definition.get_entry("ownerid"), "owner_id")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + object_ent_index: read_value::< + u16, + >(stream, definition.get_entry("object_entindex"), "object_ent_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "ownerid" => Ok(self.owner_id.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "object_entindex" => Ok(self.object_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ObjectDeflected", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerMvpEvent { pub player: u16, } impl PlayerMvpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerMvpEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerMvp", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RaidSpawnMobEvent {} impl RaidSpawnMobEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RaidSpawnMobEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RaidSpawnMob", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RaidSpawnSquadEvent {} impl RaidSpawnSquadEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RaidSpawnSquadEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RaidSpawnSquad", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct NavBlockedEvent { pub area: u32, pub blocked: bool, @@ -3468,29 +9851,82 @@ pub struct NavBlockedEvent { impl NavBlockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(NavBlockedEvent { - area: read_value::(stream, iter.next(), "area")?, - blocked: read_value::(stream, iter.next(), "blocked")?, + area: read_value::(stream, definition.get_entry("area"), "area")?, + blocked: read_value::< + bool, + >(stream, definition.get_entry("blocked"), "blocked")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "area" => Ok(self.area.clone().into()), + "blocked" => Ok(self.blocked.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "NavBlocked", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PathTrackPassedEvent { pub index: u16, } impl PathTrackPassedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PathTrackPassedEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PathTrackPassed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct NumCappersChangedEvent { pub index: u16, pub count: u8, @@ -3498,24 +9934,75 @@ pub struct NumCappersChangedEvent { impl NumCappersChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(NumCappersChangedEvent { - index: read_value::(stream, iter.next(), "index")?, - count: read_value::(stream, iter.next(), "count")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + count: read_value::(stream, definition.get_entry("count"), "count")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "count" => Ok(self.count.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "NumCappersChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerRegenerateEvent {} impl PlayerRegenerateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerRegenerateEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerRegenerate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct UpdateStatusItemEvent { pub index: u8, pub object: u8, @@ -3523,56 +10010,185 @@ pub struct UpdateStatusItemEvent { impl UpdateStatusItemEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(UpdateStatusItemEvent { - index: read_value::(stream, iter.next(), "index")?, - object: read_value::(stream, iter.next(), "object")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + object: read_value::(stream, definition.get_entry("object"), "object")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "object" => Ok(self.object.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "UpdateStatusItem", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct StatsResetRoundEvent {} impl StatsResetRoundEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(StatsResetRoundEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "StatsResetRound", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ScoreStatsAccumulatedUpdateEvent {} impl ScoreStatsAccumulatedUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - Ok(ScoreStatsAccumulatedUpdateEvent {}) + Ok(ScoreStatsAccumulatedUpdateEvent { + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ScoreStatsAccumulatedUpdate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ScoreStatsAccumulatedResetEvent {} impl ScoreStatsAccumulatedResetEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ScoreStatsAccumulatedResetEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ScoreStatsAccumulatedReset", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct AchievementEarnedLocalEvent { pub achievement: u16, } impl AchievementEarnedLocalEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(AchievementEarnedLocalEvent { - achievement: read_value::(stream, iter.next(), "achievement")?, + achievement: read_value::< + u16, + >(stream, definition.get_entry("achievement"), "achievement")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "achievement" => Ok(self.achievement.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "AchievementEarnedLocal", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHealedEvent { pub patient: u16, pub healer: u16, @@ -3581,16 +10197,45 @@ pub struct PlayerHealedEvent { impl PlayerHealedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHealedEvent { - patient: read_value::(stream, iter.next(), "patient")?, - healer: read_value::(stream, iter.next(), "healer")?, - amount: read_value::(stream, iter.next(), "amount")?, + patient: read_value::< + u16, + >(stream, definition.get_entry("patient"), "patient")?, + healer: read_value::(stream, definition.get_entry("healer"), "healer")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "patient" => Ok(self.patient.clone().into()), + "healer" => Ok(self.healer.clone().into()), + "amount" => Ok(self.amount.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHealed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BuildingHealedEvent { pub building: u16, pub healer: u16, @@ -3599,16 +10244,45 @@ pub struct BuildingHealedEvent { impl BuildingHealedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(BuildingHealedEvent { - building: read_value::(stream, iter.next(), "building")?, - healer: read_value::(stream, iter.next(), "healer")?, - amount: read_value::(stream, iter.next(), "amount")?, + building: read_value::< + u16, + >(stream, definition.get_entry("building"), "building")?, + healer: read_value::(stream, definition.get_entry("healer"), "healer")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "building" => Ok(self.building.clone().into()), + "healer" => Ok(self.healer.clone().into()), + "amount" => Ok(self.amount.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BuildingHealed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ItemPickupEvent { pub user_id: u16, pub item: MaybeUtf8String, @@ -3616,15 +10290,45 @@ pub struct ItemPickupEvent { impl ItemPickupEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ItemPickupEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - item: read_value::(stream, iter.next(), "item")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + item: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("item"), "item")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "item" => Ok(self.item.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ItemPickup", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DuelStatusEvent { pub killer: u16, pub score_type: u16, @@ -3636,19 +10340,57 @@ pub struct DuelStatusEvent { impl DuelStatusEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DuelStatusEvent { - killer: read_value::(stream, iter.next(), "killer")?, - score_type: read_value::(stream, iter.next(), "score_type")?, - initiator: read_value::(stream, iter.next(), "initiator")?, - target: read_value::(stream, iter.next(), "target")?, - initiator_score: read_value::(stream, iter.next(), "initiator_score")?, - target_score: read_value::(stream, iter.next(), "target_score")?, - }) + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, + score_type: read_value::< + u16, + >(stream, definition.get_entry("score_type"), "score_type")?, + initiator: read_value::< + u16, + >(stream, definition.get_entry("initiator"), "initiator")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, + initiator_score: read_value::< + u16, + >(stream, definition.get_entry("initiator_score"), "initiator_score")?, + target_score: read_value::< + u16, + >(stream, definition.get_entry("target_score"), "target_score")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "killer" => Ok(self.killer.clone().into()), + "score_type" => Ok(self.score_type.clone().into()), + "initiator" => Ok(self.initiator.clone().into()), + "target" => Ok(self.target.clone().into()), + "initiator_score" => Ok(self.initiator_score.clone().into()), + "target_score" => Ok(self.target_score.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DuelStatus", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct FishNoticeEvent { pub user_id: u16, pub victim_ent_index: u32, @@ -3668,35 +10410,101 @@ pub struct FishNoticeEvent { impl FishNoticeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(FishNoticeEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, - custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::( + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::< + u32, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + inflictor_ent_index: read_value::< + u32, + >( stream, - iter.next(), - "weapon_log_class_name", + definition.get_entry("inflictor_entindex"), + "inflictor_ent_index", )?, - stun_flags: read_value::(stream, iter.next(), "stun_flags")?, - death_flags: read_value::(stream, iter.next(), "death_flags")?, - silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::( + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, + custom_kill: read_value::< + u16, + >(stream, definition.get_entry("customkill"), "custom_kill")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::< + MaybeUtf8String, + >( stream, - iter.next(), - "assister_fallback", + definition.get_entry("weapon_logclassname"), + "weapon_log_class_name", )?, - }) + stun_flags: read_value::< + u16, + >(stream, definition.get_entry("stun_flags"), "stun_flags")?, + death_flags: read_value::< + u16, + >(stream, definition.get_entry("death_flags"), "death_flags")?, + silent_kill: read_value::< + bool, + >(stream, definition.get_entry("silent_kill"), "silent_kill")?, + assister_fallback: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + "customkill" => Ok(self.custom_kill.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), + "stun_flags" => Ok(self.stun_flags.clone().into()), + "death_flags" => Ok(self.death_flags.clone().into()), + "silent_kill" => Ok(self.silent_kill.clone().into()), + "assister_fallback" => Ok(self.assister_fallback.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "FishNotice", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct FishNoticeArmEvent { pub user_id: u16, pub victim_ent_index: u32, @@ -3716,35 +10524,101 @@ pub struct FishNoticeArmEvent { impl FishNoticeArmEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(FishNoticeArmEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, - custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::( + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::< + u32, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + inflictor_ent_index: read_value::< + u32, + >( stream, - iter.next(), - "weapon_log_class_name", + definition.get_entry("inflictor_entindex"), + "inflictor_ent_index", )?, - stun_flags: read_value::(stream, iter.next(), "stun_flags")?, - death_flags: read_value::(stream, iter.next(), "death_flags")?, - silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::( + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, + custom_kill: read_value::< + u16, + >(stream, definition.get_entry("customkill"), "custom_kill")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::< + MaybeUtf8String, + >( stream, - iter.next(), - "assister_fallback", + definition.get_entry("weapon_logclassname"), + "weapon_log_class_name", )?, - }) + stun_flags: read_value::< + u16, + >(stream, definition.get_entry("stun_flags"), "stun_flags")?, + death_flags: read_value::< + u16, + >(stream, definition.get_entry("death_flags"), "death_flags")?, + silent_kill: read_value::< + bool, + >(stream, definition.get_entry("silent_kill"), "silent_kill")?, + assister_fallback: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + "customkill" => Ok(self.custom_kill.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), + "stun_flags" => Ok(self.stun_flags.clone().into()), + "death_flags" => Ok(self.death_flags.clone().into()), + "silent_kill" => Ok(self.silent_kill.clone().into()), + "assister_fallback" => Ok(self.assister_fallback.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "FishNoticeArm", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SlapNoticeEvent { pub user_id: u16, pub victim_ent_index: u32, @@ -3764,35 +10638,101 @@ pub struct SlapNoticeEvent { impl SlapNoticeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(SlapNoticeEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, - custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::( + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::< + u32, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + inflictor_ent_index: read_value::< + u32, + >( stream, - iter.next(), - "weapon_log_class_name", + definition.get_entry("inflictor_entindex"), + "inflictor_ent_index", )?, - stun_flags: read_value::(stream, iter.next(), "stun_flags")?, - death_flags: read_value::(stream, iter.next(), "death_flags")?, - silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::( + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, + custom_kill: read_value::< + u16, + >(stream, definition.get_entry("customkill"), "custom_kill")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::< + MaybeUtf8String, + >( stream, - iter.next(), - "assister_fallback", + definition.get_entry("weapon_logclassname"), + "weapon_log_class_name", )?, - }) + stun_flags: read_value::< + u16, + >(stream, definition.get_entry("stun_flags"), "stun_flags")?, + death_flags: read_value::< + u16, + >(stream, definition.get_entry("death_flags"), "death_flags")?, + silent_kill: read_value::< + bool, + >(stream, definition.get_entry("silent_kill"), "silent_kill")?, + assister_fallback: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + "customkill" => Ok(self.custom_kill.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), + "stun_flags" => Ok(self.stun_flags.clone().into()), + "death_flags" => Ok(self.death_flags.clone().into()), + "silent_kill" => Ok(self.silent_kill.clone().into()), + "assister_fallback" => Ok(self.assister_fallback.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SlapNotice", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ThrowableHitEvent { pub user_id: u16, pub victim_ent_index: u32, @@ -3813,82 +10753,251 @@ pub struct ThrowableHitEvent { impl ThrowableHitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ThrowableHitEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, - custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - assister: read_value::(stream, iter.next(), "assister")?, - weapon_log_class_name: read_value::( + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::< + u32, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + inflictor_ent_index: read_value::< + u32, + >( stream, - iter.next(), - "weapon_log_class_name", + definition.get_entry("inflictor_entindex"), + "inflictor_ent_index", )?, - stun_flags: read_value::(stream, iter.next(), "stun_flags")?, - death_flags: read_value::(stream, iter.next(), "death_flags")?, - silent_kill: read_value::(stream, iter.next(), "silent_kill")?, - assister_fallback: read_value::( + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, + custom_kill: read_value::< + u16, + >(stream, definition.get_entry("customkill"), "custom_kill")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::< + MaybeUtf8String, + >( stream, - iter.next(), - "assister_fallback", + definition.get_entry("weapon_logclassname"), + "weapon_log_class_name", )?, - total_hits: read_value::(stream, iter.next(), "total_hits")?, - }) + stun_flags: read_value::< + u16, + >(stream, definition.get_entry("stun_flags"), "stun_flags")?, + death_flags: read_value::< + u16, + >(stream, definition.get_entry("death_flags"), "death_flags")?, + silent_kill: read_value::< + bool, + >(stream, definition.get_entry("silent_kill"), "silent_kill")?, + assister_fallback: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + total_hits: read_value::< + u16, + >(stream, definition.get_entry("totalhits"), "total_hits")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + "customkill" => Ok(self.custom_kill.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), + "stun_flags" => Ok(self.stun_flags.clone().into()), + "death_flags" => Ok(self.death_flags.clone().into()), + "silent_kill" => Ok(self.silent_kill.clone().into()), + "assister_fallback" => Ok(self.assister_fallback.clone().into()), + "totalhits" => Ok(self.total_hits.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ThrowableHit", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PumpkinLordSummonedEvent {} impl PumpkinLordSummonedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PumpkinLordSummonedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PumpkinLordSummoned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PumpkinLordKilledEvent {} impl PumpkinLordKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PumpkinLordKilledEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PumpkinLordKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MerasmusSummonedEvent { pub level: u16, } impl MerasmusSummonedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MerasmusSummonedEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MerasmusSummoned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MerasmusKilledEvent { pub level: u16, } impl MerasmusKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MerasmusKilledEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MerasmusKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MerasmusEscapeWarningEvent { pub level: u16, pub time_remaining: u8, @@ -3896,43 +11005,121 @@ pub struct MerasmusEscapeWarningEvent { impl MerasmusEscapeWarningEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MerasmusEscapeWarningEvent { - level: read_value::(stream, iter.next(), "level")?, - time_remaining: read_value::(stream, iter.next(), "time_remaining")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, + time_remaining: read_value::< + u8, + >(stream, definition.get_entry("time_remaining"), "time_remaining")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + "time_remaining" => Ok(self.time_remaining.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MerasmusEscapeWarning", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MerasmusEscapedEvent { pub level: u16, } impl MerasmusEscapedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MerasmusEscapedEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MerasmusEscaped", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EyeballBossSummonedEvent { pub level: u16, } impl EyeballBossSummonedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EyeballBossSummonedEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EyeballBossSummoned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EyeballBossStunnedEvent { pub level: u16, pub player_ent_index: u8, @@ -3940,29 +11127,82 @@ pub struct EyeballBossStunnedEvent { impl EyeballBossStunnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EyeballBossStunnedEvent { - level: read_value::(stream, iter.next(), "level")?, - player_ent_index: read_value::(stream, iter.next(), "player_ent_index")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, + player_ent_index: read_value::< + u8, + >(stream, definition.get_entry("player_entindex"), "player_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + "player_entindex" => Ok(self.player_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EyeballBossStunned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EyeballBossKilledEvent { pub level: u16, } impl EyeballBossKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EyeballBossKilledEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EyeballBossKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EyeballBossKillerEvent { pub level: u16, pub player_ent_index: u8, @@ -3970,15 +11210,43 @@ pub struct EyeballBossKillerEvent { impl EyeballBossKillerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EyeballBossKillerEvent { - level: read_value::(stream, iter.next(), "level")?, - player_ent_index: read_value::(stream, iter.next(), "player_ent_index")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, + player_ent_index: read_value::< + u8, + >(stream, definition.get_entry("player_entindex"), "player_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + "player_entindex" => Ok(self.player_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EyeballBossKiller", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EyeballBossEscapeImminentEvent { pub level: u16, pub time_remaining: u8, @@ -3986,29 +11254,82 @@ pub struct EyeballBossEscapeImminentEvent { impl EyeballBossEscapeImminentEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EyeballBossEscapeImminentEvent { - level: read_value::(stream, iter.next(), "level")?, - time_remaining: read_value::(stream, iter.next(), "time_remaining")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, + time_remaining: read_value::< + u8, + >(stream, definition.get_entry("time_remaining"), "time_remaining")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + "time_remaining" => Ok(self.time_remaining.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EyeballBossEscapeImminent", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EyeballBossEscapedEvent { pub level: u16, } impl EyeballBossEscapedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EyeballBossEscapedEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EyeballBossEscaped", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct NpcHurtEvent { pub ent_index: u16, pub health: u16, @@ -4021,20 +11342,59 @@ pub struct NpcHurtEvent { impl NpcHurtEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(NpcHurtEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, - health: read_value::(stream, iter.next(), "health")?, - attacker_player: read_value::(stream, iter.next(), "attacker_player")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_amount: read_value::(stream, iter.next(), "damage_amount")?, - crit: read_value::(stream, iter.next(), "crit")?, - boss: read_value::(stream, iter.next(), "boss")?, - }) + ent_index: read_value::< + u16, + >(stream, definition.get_entry("entindex"), "ent_index")?, + health: read_value::(stream, definition.get_entry("health"), "health")?, + attacker_player: read_value::< + u16, + >(stream, definition.get_entry("attacker_player"), "attacker_player")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_amount: read_value::< + u16, + >(stream, definition.get_entry("damageamount"), "damage_amount")?, + crit: read_value::(stream, definition.get_entry("crit"), "crit")?, + boss: read_value::(stream, definition.get_entry("boss"), "boss")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + "health" => Ok(self.health.clone().into()), + "attacker_player" => Ok(self.attacker_player.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damageamount" => Ok(self.damage_amount.clone().into()), + "crit" => Ok(self.crit.clone().into()), + "boss" => Ok(self.boss.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "NpcHurt", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ControlPointTimerUpdatedEvent { pub index: u16, pub time: f32, @@ -4042,43 +11402,123 @@ pub struct ControlPointTimerUpdatedEvent { impl ControlPointTimerUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ControlPointTimerUpdatedEvent { - index: read_value::(stream, iter.next(), "index")?, - time: read_value::(stream, iter.next(), "time")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + time: read_value::(stream, definition.get_entry("time"), "time")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "time" => Ok(self.time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ControlPointTimerUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHighFiveStartEvent { pub ent_index: u8, } impl PlayerHighFiveStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHighFiveStartEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u8, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHighFiveStart", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHighFiveCancelEvent { pub ent_index: u8, } impl PlayerHighFiveCancelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHighFiveCancelEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u8, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHighFiveCancel", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerHighFiveSuccessEvent { pub initiator_ent_index: u8, pub partner_ent_index: u8, @@ -4086,15 +11526,49 @@ pub struct PlayerHighFiveSuccessEvent { impl PlayerHighFiveSuccessEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerHighFiveSuccessEvent { - initiator_ent_index: read_value::(stream, iter.next(), "initiator_ent_index")?, - partner_ent_index: read_value::(stream, iter.next(), "partner_ent_index")?, + initiator_ent_index: read_value::< + u8, + >( + stream, + definition.get_entry("initiator_entindex"), + "initiator_ent_index", + )?, + partner_ent_index: read_value::< + u8, + >(stream, definition.get_entry("partner_entindex"), "partner_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "initiator_entindex" => Ok(self.initiator_ent_index.clone().into()), + "partner_entindex" => Ok(self.partner_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerHighFiveSuccess", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerBonusPointsEvent { pub points: u16, pub player_ent_index: u16, @@ -4103,25 +11577,81 @@ pub struct PlayerBonusPointsEvent { impl PlayerBonusPointsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerBonusPointsEvent { - points: read_value::(stream, iter.next(), "points")?, - player_ent_index: read_value::(stream, iter.next(), "player_ent_index")?, - source_ent_index: read_value::(stream, iter.next(), "source_ent_index")?, - }) + points: read_value::(stream, definition.get_entry("points"), "points")?, + player_ent_index: read_value::< + u16, + >(stream, definition.get_entry("player_entindex"), "player_ent_index")?, + source_ent_index: read_value::< + u16, + >(stream, definition.get_entry("source_entindex"), "source_ent_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "points" => Ok(self.points.clone().into()), + "player_entindex" => Ok(self.player_ent_index.clone().into()), + "source_entindex" => Ok(self.source_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerBonusPoints", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerUpgradedEvent {} impl PlayerUpgradedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerUpgradedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerUpgraded", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerBuybackEvent { pub player: u16, pub cost: u16, @@ -4129,15 +11659,41 @@ pub struct PlayerBuybackEvent { impl PlayerBuybackEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerBuybackEvent { - player: read_value::(stream, iter.next(), "player")?, - cost: read_value::(stream, iter.next(), "cost")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + cost: read_value::(stream, definition.get_entry("cost"), "cost")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "cost" => Ok(self.cost.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerBuyback", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerUsedPowerUpBottleEvent { pub player: u16, pub kind: u16, @@ -4146,30 +11702,84 @@ pub struct PlayerUsedPowerUpBottleEvent { impl PlayerUsedPowerUpBottleEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerUsedPowerUpBottleEvent { - player: read_value::(stream, iter.next(), "player")?, - kind: read_value::(stream, iter.next(), "kind")?, - time: read_value::(stream, iter.next(), "time")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + kind: read_value::(stream, definition.get_entry("type"), "kind")?, + time: read_value::(stream, definition.get_entry("time"), "time")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "type" => Ok(self.kind.clone().into()), + "time" => Ok(self.time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerUsedPowerUpBottle", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ChristmasGiftGrabEvent { pub user_id: u16, } impl ChristmasGiftGrabEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ChristmasGiftGrabEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ChristmasGiftGrab", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerKilledAchievementZoneEvent { pub attacker: u16, pub victim: u16, @@ -4178,66 +11788,224 @@ pub struct PlayerKilledAchievementZoneEvent { impl PlayerKilledAchievementZoneEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerKilledAchievementZoneEvent { - attacker: read_value::(stream, iter.next(), "attacker")?, - victim: read_value::(stream, iter.next(), "victim")?, - zone_id: read_value::(stream, iter.next(), "zone_id")?, - }) + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + zone_id: read_value::< + u16, + >(stream, definition.get_entry("zone_id"), "zone_id")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "attacker" => Ok(self.attacker.clone().into()), + "victim" => Ok(self.victim.clone().into()), + "zone_id" => Ok(self.zone_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerKilledAchievementZone", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyUpdatedEvent {} impl PartyUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyPrefChangedEvent {} impl PartyPrefChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyPrefChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyPrefChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyCriteriaChangedEvent {} impl PartyCriteriaChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyCriteriaChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyCriteriaChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyInvitesChangedEvent {} impl PartyInvitesChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyInvitesChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyInvitesChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyQueueStateChangedEvent { pub match_group: u16, } impl PartyQueueStateChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PartyQueueStateChangedEvent { - match_group: read_value::(stream, iter.next(), "match_group")?, + match_group: read_value::< + u16, + >(stream, definition.get_entry("matchgroup"), "match_group")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "matchgroup" => Ok(self.match_group.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyQueueStateChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyChatEvent { pub steam_id: MaybeUtf8String, pub text: MaybeUtf8String, @@ -4246,62 +12014,197 @@ pub struct PartyChatEvent { impl PartyChatEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PartyChatEvent { - steam_id: read_value::(stream, iter.next(), "steam_id")?, - text: read_value::(stream, iter.next(), "text")?, - kind: read_value::(stream, iter.next(), "kind")?, - }) + steam_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("steamid"), "steam_id")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, + kind: read_value::(stream, definition.get_entry("type"), "kind")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "steamid" => Ok(self.steam_id.clone().into()), + "text" => Ok(self.text.clone().into()), + "type" => Ok(self.kind.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyChat", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyMemberJoinEvent { pub steam_id: MaybeUtf8String, } impl PartyMemberJoinEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PartyMemberJoinEvent { - steam_id: read_value::(stream, iter.next(), "steam_id")?, + steam_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("steamid"), "steam_id")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "steamid" => Ok(self.steam_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyMemberJoin", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PartyMemberLeaveEvent { pub steam_id: MaybeUtf8String, } impl PartyMemberLeaveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PartyMemberLeaveEvent { - steam_id: read_value::(stream, iter.next(), "steam_id")?, + steam_id: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("steamid"), "steam_id")?, }) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] -pub struct MatchInvitesUpdatedEvent {} + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "steamid" => Ok(self.steam_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PartyMemberLeave", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] +pub struct MatchInvitesUpdatedEvent {} impl MatchInvitesUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MatchInvitesUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MatchInvitesUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LobbyUpdatedEvent {} impl LobbyUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LobbyUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LobbyUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmMissionUpdateEvent { pub class: u16, pub count: u16, @@ -4309,130 +12212,408 @@ pub struct MvmMissionUpdateEvent { impl MvmMissionUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmMissionUpdateEvent { - class: read_value::(stream, iter.next(), "class")?, - count: read_value::(stream, iter.next(), "count")?, + class: read_value::(stream, definition.get_entry("class"), "class")?, + count: read_value::(stream, definition.get_entry("count"), "count")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "class" => Ok(self.class.clone().into()), + "count" => Ok(self.count.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmMissionUpdate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RecalculateHolidaysEvent {} impl RecalculateHolidaysEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RecalculateHolidaysEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RecalculateHolidays", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerCurrencyChangedEvent { pub currency: u16, } impl PlayerCurrencyChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerCurrencyChangedEvent { - currency: read_value::(stream, iter.next(), "currency")?, + currency: read_value::< + u16, + >(stream, definition.get_entry("currency"), "currency")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "currency" => Ok(self.currency.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerCurrencyChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DoomsdayRocketOpenEvent { pub team: u8, } impl DoomsdayRocketOpenEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DoomsdayRocketOpenEvent { - team: read_value::(stream, iter.next(), "team")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DoomsdayRocketOpen", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RemoveNemesisRelationshipsEvent { pub player: u16, } impl RemoveNemesisRelationshipsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RemoveNemesisRelationshipsEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RemoveNemesisRelationships", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmCreditBonusWaveEvent {} impl MvmCreditBonusWaveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmCreditBonusWaveEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmCreditBonusWave", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmCreditBonusAllEvent {} impl MvmCreditBonusAllEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmCreditBonusAllEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmCreditBonusAll", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmCreditBonusAllAdvancedEvent {} impl MvmCreditBonusAllAdvancedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmCreditBonusAllAdvancedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmCreditBonusAllAdvanced", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmQuickSentryUpgradeEvent { pub player: u16, } impl MvmQuickSentryUpgradeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmQuickSentryUpgradeEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmQuickSentryUpgrade", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmTankDestroyedByPlayersEvent {} impl MvmTankDestroyedByPlayersEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmTankDestroyedByPlayersEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmTankDestroyedByPlayers", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmKillRobotDeliveringBombEvent { pub player: u16, } impl MvmKillRobotDeliveringBombEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmKillRobotDeliveringBombEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmKillRobotDeliveringBomb", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmPickupCurrencyEvent { pub player: u16, pub currency: u16, @@ -4440,29 +12621,82 @@ pub struct MvmPickupCurrencyEvent { impl MvmPickupCurrencyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmPickupCurrencyEvent { - player: read_value::(stream, iter.next(), "player")?, - currency: read_value::(stream, iter.next(), "currency")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + currency: read_value::< + u16, + >(stream, definition.get_entry("currency"), "currency")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "currency" => Ok(self.currency.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmPickupCurrency", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmBombCarrierKilledEvent { pub level: u16, } impl MvmBombCarrierKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmBombCarrierKilledEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmBombCarrierKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmSentryBusterDetonateEvent { pub player: u16, pub det_x: f32, @@ -4472,45 +12706,123 @@ pub struct MvmSentryBusterDetonateEvent { impl MvmSentryBusterDetonateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmSentryBusterDetonateEvent { - player: read_value::(stream, iter.next(), "player")?, - det_x: read_value::(stream, iter.next(), "det_x")?, - det_y: read_value::(stream, iter.next(), "det_y")?, - det_z: read_value::(stream, iter.next(), "det_z")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + det_x: read_value::(stream, definition.get_entry("det_x"), "det_x")?, + det_y: read_value::(stream, definition.get_entry("det_y"), "det_y")?, + det_z: read_value::(stream, definition.get_entry("det_z"), "det_z")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "det_x" => Ok(self.det_x.clone().into()), + "det_y" => Ok(self.det_y.clone().into()), + "det_z" => Ok(self.det_z.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmSentryBusterDetonate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmScoutMarkedForDeathEvent { pub player: u16, } impl MvmScoutMarkedForDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmScoutMarkedForDeathEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmScoutMarkedForDeath", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmMedicPowerUpSharedEvent { pub player: u16, } impl MvmMedicPowerUpSharedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmMedicPowerUpSharedEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmMedicPowerUpShared", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmBeginWaveEvent { pub wave_index: u16, pub max_waves: u16, @@ -4519,113 +12831,352 @@ pub struct MvmBeginWaveEvent { impl MvmBeginWaveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmBeginWaveEvent { - wave_index: read_value::(stream, iter.next(), "wave_index")?, - max_waves: read_value::(stream, iter.next(), "max_waves")?, - advanced: read_value::(stream, iter.next(), "advanced")?, - }) + wave_index: read_value::< + u16, + >(stream, definition.get_entry("wave_index"), "wave_index")?, + max_waves: read_value::< + u16, + >(stream, definition.get_entry("max_waves"), "max_waves")?, + advanced: read_value::< + u16, + >(stream, definition.get_entry("advanced"), "advanced")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "wave_index" => Ok(self.wave_index.clone().into()), + "max_waves" => Ok(self.max_waves.clone().into()), + "advanced" => Ok(self.advanced.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmBeginWave", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmWaveCompleteEvent { pub advanced: bool, } impl MvmWaveCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmWaveCompleteEvent { - advanced: read_value::(stream, iter.next(), "advanced")?, + advanced: read_value::< + bool, + >(stream, definition.get_entry("advanced"), "advanced")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "advanced" => Ok(self.advanced.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmWaveComplete", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmMissionCompleteEvent { pub mission: MaybeUtf8String, } impl MvmMissionCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmMissionCompleteEvent { - mission: read_value::(stream, iter.next(), "mission")?, + mission: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("mission"), "mission")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "mission" => Ok(self.mission.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmMissionComplete", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmBombResetByPlayerEvent { pub player: u16, } impl MvmBombResetByPlayerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmBombResetByPlayerEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmBombResetByPlayer", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmBombAlarmTriggeredEvent {} impl MvmBombAlarmTriggeredEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmBombAlarmTriggeredEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmBombAlarmTriggered", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmBombDeployResetByPlayerEvent { pub player: u16, } impl MvmBombDeployResetByPlayerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmBombDeployResetByPlayerEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmBombDeployResetByPlayer", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmWaveFailedEvent {} impl MvmWaveFailedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmWaveFailedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmWaveFailed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmResetStatsEvent {} impl MvmResetStatsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmResetStatsEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmResetStats", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DamageResistedEvent { pub ent_index: u8, } impl DamageResistedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DamageResistedEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u8, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DamageResisted", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RevivePlayerNotifyEvent { pub ent_index: u16, pub marker_ent_index: u16, @@ -4633,87 +13184,251 @@ pub struct RevivePlayerNotifyEvent { impl RevivePlayerNotifyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RevivePlayerNotifyEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, - marker_ent_index: read_value::(stream, iter.next(), "marker_ent_index")?, + ent_index: read_value::< + u16, + >(stream, definition.get_entry("entindex"), "ent_index")?, + marker_ent_index: read_value::< + u16, + >(stream, definition.get_entry("marker_entindex"), "marker_ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + "marker_entindex" => Ok(self.marker_ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RevivePlayerNotify", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RevivePlayerStoppedEvent { pub ent_index: u16, } impl RevivePlayerStoppedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RevivePlayerStoppedEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u16, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RevivePlayerStopped", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RevivePlayerCompleteEvent { pub ent_index: u16, } impl RevivePlayerCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RevivePlayerCompleteEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, + ent_index: read_value::< + u16, + >(stream, definition.get_entry("entindex"), "ent_index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RevivePlayerComplete", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerTurnedToGhostEvent { pub user_id: u16, } impl PlayerTurnedToGhostEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerTurnedToGhostEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, }) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] -pub struct MedigunShieldBlockedDamageEvent { - pub user_id: u16, - pub damage: f32, -} + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerTurnedToGhost", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] +pub struct MedigunShieldBlockedDamageEvent { + pub user_id: u16, + pub damage: f32, +} impl MedigunShieldBlockedDamageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MedigunShieldBlockedDamageEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - damage: read_value::(stream, iter.next(), "damage")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + damage: read_value::(stream, definition.get_entry("damage"), "damage")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "damage" => Ok(self.damage.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MedigunShieldBlockedDamage", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmAdvWaveCompleteNoGatesEvent { pub index: u16, } impl MvmAdvWaveCompleteNoGatesEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmAdvWaveCompleteNoGatesEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmAdvWaveCompleteNoGates", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmSniperHeadshotCurrencyEvent { pub user_id: u16, pub currency: u16, @@ -4721,42 +13436,147 @@ pub struct MvmSniperHeadshotCurrencyEvent { impl MvmSniperHeadshotCurrencyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmSniperHeadshotCurrencyEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - currency: read_value::(stream, iter.next(), "currency")?, + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + currency: read_value::< + u16, + >(stream, definition.get_entry("currency"), "currency")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "currency" => Ok(self.currency.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmSniperHeadshotCurrency", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmMannhattanPitEvent {} impl MvmMannhattanPitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmMannhattanPitEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmMannhattanPit", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct FlagCarriedInDetectionZoneEvent {} impl FlagCarriedInDetectionZoneEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(FlagCarriedInDetectionZoneEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "FlagCarriedInDetectionZone", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmAdvWaveKilledStunRadioEvent {} impl MvmAdvWaveKilledStunRadioEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmAdvWaveKilledStunRadioEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmAdvWaveKilledStunRadio", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDirectHitStunEvent { pub attacker: u16, pub victim: u16, @@ -4764,43 +13584,125 @@ pub struct PlayerDirectHitStunEvent { impl PlayerDirectHitStunEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDirectHitStunEvent { - attacker: read_value::(stream, iter.next(), "attacker")?, - victim: read_value::(stream, iter.next(), "victim")?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "attacker" => Ok(self.attacker.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDirectHitStun", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MvmSentryBusterKilledEvent { pub sentry_buster: u16, } impl MvmSentryBusterKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MvmSentryBusterKilledEvent { - sentry_buster: read_value::(stream, iter.next(), "sentry_buster")?, + sentry_buster: read_value::< + u16, + >(stream, definition.get_entry("sentry_buster"), "sentry_buster")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "sentry_buster" => Ok(self.sentry_buster.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MvmSentryBusterKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct UpgradesFileChangedEvent { pub path: MaybeUtf8String, } impl UpgradesFileChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(UpgradesFileChangedEvent { - path: read_value::(stream, iter.next(), "path")?, + path: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("path"), "path")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "path" => Ok(self.path.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "UpgradesFileChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RdTeamPointsChangedEvent { pub points: u16, pub team: u8, @@ -4809,25 +13711,77 @@ pub struct RdTeamPointsChangedEvent { impl RdTeamPointsChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RdTeamPointsChangedEvent { - points: read_value::(stream, iter.next(), "points")?, - team: read_value::(stream, iter.next(), "team")?, - method: read_value::(stream, iter.next(), "method")?, + points: read_value::(stream, definition.get_entry("points"), "points")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + method: read_value::(stream, definition.get_entry("method"), "method")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "points" => Ok(self.points.clone().into()), + "team" => Ok(self.team.clone().into()), + "method" => Ok(self.method.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RdTeamPointsChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RdRulesStateChangedEvent {} impl RdRulesStateChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RdRulesStateChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RdRulesStateChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RdRobotKilledEvent { pub user_id: u16, pub victim_ent_index: u32, @@ -4842,26 +13796,81 @@ pub struct RdRobotKilledEvent { impl RdRobotKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RdRobotKilledEvent { - user_id: read_value::(stream, iter.next(), "user_id")?, - victim_ent_index: read_value::(stream, iter.next(), "victim_ent_index")?, - inflictor_ent_index: read_value::(stream, iter.next(), "inflictor_ent_index")?, - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon: read_value::(stream, iter.next(), "weapon")?, - weapon_id: read_value::(stream, iter.next(), "weapon_id")?, - damage_bits: read_value::(stream, iter.next(), "damage_bits")?, - custom_kill: read_value::(stream, iter.next(), "custom_kill")?, - weapon_log_class_name: read_value::( + user_id: read_value::< + u16, + >(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::< + u32, + >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + inflictor_ent_index: read_value::< + u32, + >( + stream, + definition.get_entry("inflictor_entindex"), + "inflictor_ent_index", + )?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("weapon"), "weapon")?, + weapon_id: read_value::< + u16, + >(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::< + u32, + >(stream, definition.get_entry("damagebits"), "damage_bits")?, + custom_kill: read_value::< + u16, + >(stream, definition.get_entry("customkill"), "custom_kill")?, + weapon_log_class_name: read_value::< + MaybeUtf8String, + >( stream, - iter.next(), + definition.get_entry("weapon_logclassname"), "weapon_log_class_name", )?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "userid" => Ok(self.user_id.clone().into()), + "victim_entindex" => Ok(self.victim_ent_index.clone().into()), + "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + "weapon" => Ok(self.weapon.clone().into()), + "weaponid" => Ok(self.weapon_id.clone().into()), + "damagebits" => Ok(self.damage_bits.clone().into()), + "customkill" => Ok(self.custom_kill.clone().into()), + "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RdRobotKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RdRobotImpactEvent { pub ent_index: u16, pub impulse_x: f32, @@ -4871,73 +13880,209 @@ pub struct RdRobotImpactEvent { impl RdRobotImpactEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RdRobotImpactEvent { - ent_index: read_value::(stream, iter.next(), "ent_index")?, - impulse_x: read_value::(stream, iter.next(), "impulse_x")?, - impulse_y: read_value::(stream, iter.next(), "impulse_y")?, - impulse_z: read_value::(stream, iter.next(), "impulse_z")?, - }) + ent_index: read_value::< + u16, + >(stream, definition.get_entry("entindex"), "ent_index")?, + impulse_x: read_value::< + f32, + >(stream, definition.get_entry("impulse_x"), "impulse_x")?, + impulse_y: read_value::< + f32, + >(stream, definition.get_entry("impulse_y"), "impulse_y")?, + impulse_z: read_value::< + f32, + >(stream, definition.get_entry("impulse_z"), "impulse_z")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "entindex" => Ok(self.ent_index.clone().into()), + "impulse_x" => Ok(self.impulse_x.clone().into()), + "impulse_y" => Ok(self.impulse_y.clone().into()), + "impulse_z" => Ok(self.impulse_z.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RdRobotImpact", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamPlayPreRoundTimeLeftEvent { pub time: u16, } impl TeamPlayPreRoundTimeLeftEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamPlayPreRoundTimeLeftEvent { - time: read_value::(stream, iter.next(), "time")?, + time: read_value::(stream, definition.get_entry("time"), "time")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "time" => Ok(self.time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPreRoundTimeLeft", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ParachuteDeployEvent { pub index: u16, } impl ParachuteDeployEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ParachuteDeployEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ParachuteDeploy", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ParachuteHolsterEvent { pub index: u16, } impl ParachuteHolsterEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ParachuteHolsterEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ParachuteHolster", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct KillRefillsMeterEvent { pub index: u16, } impl KillRefillsMeterEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(KillRefillsMeterEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "KillRefillsMeter", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RpsTauntEventEvent { pub winner: u16, pub winner_rps: u8, @@ -4947,54 +14092,161 @@ pub struct RpsTauntEventEvent { impl RpsTauntEventEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RpsTauntEventEvent { - winner: read_value::(stream, iter.next(), "winner")?, - winner_rps: read_value::(stream, iter.next(), "winner_rps")?, - loser: read_value::(stream, iter.next(), "loser")?, - loser_rps: read_value::(stream, iter.next(), "loser_rps")?, - }) + winner: read_value::(stream, definition.get_entry("winner"), "winner")?, + winner_rps: read_value::< + u8, + >(stream, definition.get_entry("winner_rps"), "winner_rps")?, + loser: read_value::(stream, definition.get_entry("loser"), "loser")?, + loser_rps: read_value::< + u8, + >(stream, definition.get_entry("loser_rps"), "loser_rps")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "winner" => Ok(self.winner.clone().into()), + "winner_rps" => Ok(self.winner_rps.clone().into()), + "loser" => Ok(self.loser.clone().into()), + "loser_rps" => Ok(self.loser_rps.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RpsTauntEvent", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CongaKillEvent { pub index: u16, } impl CongaKillEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(CongaKillEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CongaKill", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerInitialSpawnEvent { pub index: u16, } impl PlayerInitialSpawnEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerInitialSpawnEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerInitialSpawn", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CompetitiveVictoryEvent {} impl CompetitiveVictoryEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(CompetitiveVictoryEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CompetitiveVictory", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CompetitiveStatsUpdateEvent { pub index: u16, pub kills_rank: u8, @@ -5006,19 +14258,59 @@ pub struct CompetitiveStatsUpdateEvent { impl CompetitiveStatsUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(CompetitiveStatsUpdateEvent { - index: read_value::(stream, iter.next(), "index")?, - kills_rank: read_value::(stream, iter.next(), "kills_rank")?, - score_rank: read_value::(stream, iter.next(), "score_rank")?, - damage_rank: read_value::(stream, iter.next(), "damage_rank")?, - healing_rank: read_value::(stream, iter.next(), "healing_rank")?, - support_rank: read_value::(stream, iter.next(), "support_rank")?, - }) + index: read_value::(stream, definition.get_entry("index"), "index")?, + kills_rank: read_value::< + u8, + >(stream, definition.get_entry("kills_rank"), "kills_rank")?, + score_rank: read_value::< + u8, + >(stream, definition.get_entry("score_rank"), "score_rank")?, + damage_rank: read_value::< + u8, + >(stream, definition.get_entry("damage_rank"), "damage_rank")?, + healing_rank: read_value::< + u8, + >(stream, definition.get_entry("healing_rank"), "healing_rank")?, + support_rank: read_value::< + u8, + >(stream, definition.get_entry("support_rank"), "support_rank")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "kills_rank" => Ok(self.kills_rank.clone().into()), + "score_rank" => Ok(self.score_rank.clone().into()), + "damage_rank" => Ok(self.damage_rank.clone().into()), + "healing_rank" => Ok(self.healing_rank.clone().into()), + "support_rank" => Ok(self.support_rank.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CompetitiveStatsUpdate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MiniGameWinEvent { pub team: u8, pub kind: u8, @@ -5026,70 +14318,221 @@ pub struct MiniGameWinEvent { impl MiniGameWinEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MiniGameWinEvent { - team: read_value::(stream, iter.next(), "team")?, - kind: read_value::(stream, iter.next(), "kind")?, + team: read_value::(stream, definition.get_entry("team"), "team")?, + kind: read_value::(stream, definition.get_entry("type"), "kind")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "team" => Ok(self.team.clone().into()), + "type" => Ok(self.kind.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MiniGameWin", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SentryOnGoActiveEvent { pub index: u16, } impl SentryOnGoActiveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(SentryOnGoActiveEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SentryOnGoActive", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DuckXpLevelUpEvent { pub level: u16, } impl DuckXpLevelUpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DuckXpLevelUpEvent { - level: read_value::(stream, iter.next(), "level")?, + level: read_value::(stream, definition.get_entry("level"), "level")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "level" => Ok(self.level.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DuckXpLevelUp", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestLogOpenedEvent {} impl QuestLogOpenedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(QuestLogOpenedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestLogOpened", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SchemaUpdatedEvent {} impl SchemaUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(SchemaUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SchemaUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct LocalPlayerPickupWeaponEvent {} impl LocalPlayerPickupWeaponEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerPickupWeaponEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerPickupWeapon", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RdPlayerScorePointsEvent { pub player: u16, pub method: u16, @@ -5098,30 +14541,82 @@ pub struct RdPlayerScorePointsEvent { impl RdPlayerScorePointsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RdPlayerScorePointsEvent { - player: read_value::(stream, iter.next(), "player")?, - method: read_value::(stream, iter.next(), "method")?, - amount: read_value::(stream, iter.next(), "amount")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + method: read_value::(stream, definition.get_entry("method"), "method")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "method" => Ok(self.method.clone().into()), + "amount" => Ok(self.amount.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RdPlayerScorePoints", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DemomanDetStickiesEvent { pub player: u16, } impl DemomanDetStickiesEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DemomanDetStickiesEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DemomanDetStickies", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestObjectiveCompletedEvent { pub quest_item_id_low: u32, pub quest_item_id_hi: u32, @@ -5131,17 +14626,53 @@ pub struct QuestObjectiveCompletedEvent { impl QuestObjectiveCompletedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(QuestObjectiveCompletedEvent { - quest_item_id_low: read_value::(stream, iter.next(), "quest_item_id_low")?, - quest_item_id_hi: read_value::(stream, iter.next(), "quest_item_id_hi")?, - quest_objective_id: read_value::(stream, iter.next(), "quest_objective_id")?, - scorer_user_id: read_value::(stream, iter.next(), "scorer_user_id")?, - }) + quest_item_id_low: read_value::< + u32, + >(stream, definition.get_entry("quest_item_id_low"), "quest_item_id_low")?, + quest_item_id_hi: read_value::< + u32, + >(stream, definition.get_entry("quest_item_id_hi"), "quest_item_id_hi")?, + quest_objective_id: read_value::< + u32, + >(stream, definition.get_entry("quest_objective_id"), "quest_objective_id")?, + scorer_user_id: read_value::< + u16, + >(stream, definition.get_entry("scorer_user_id"), "scorer_user_id")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "quest_item_id_low" => Ok(self.quest_item_id_low.clone().into()), + "quest_item_id_hi" => Ok(self.quest_item_id_hi.clone().into()), + "quest_objective_id" => Ok(self.quest_objective_id.clone().into()), + "scorer_user_id" => Ok(self.scorer_user_id.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestObjectiveCompleted", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerScoreChangedEvent { pub player: u8, pub delta: u16, @@ -5149,15 +14680,41 @@ pub struct PlayerScoreChangedEvent { impl PlayerScoreChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerScoreChangedEvent { - player: read_value::(stream, iter.next(), "player")?, - delta: read_value::(stream, iter.next(), "delta")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + delta: read_value::(stream, definition.get_entry("delta"), "delta")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "delta" => Ok(self.delta.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerScoreChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct KilledCappingPlayerEvent { pub cp: u8, pub killer: u8, @@ -5167,17 +14724,47 @@ pub struct KilledCappingPlayerEvent { impl KilledCappingPlayerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(KilledCappingPlayerEvent { - cp: read_value::(stream, iter.next(), "cp")?, - killer: read_value::(stream, iter.next(), "killer")?, - victim: read_value::(stream, iter.next(), "victim")?, - assister: read_value::(stream, iter.next(), "assister")?, - }) + cp: read_value::(stream, definition.get_entry("cp"), "cp")?, + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + assister: read_value::< + u8, + >(stream, definition.get_entry("assister"), "assister")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "cp" => Ok(self.cp.clone().into()), + "killer" => Ok(self.killer.clone().into()), + "victim" => Ok(self.victim.clone().into()), + "assister" => Ok(self.assister.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "KilledCappingPlayer", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EnvironmentalDeathEvent { pub killer: u8, pub victim: u8, @@ -5185,15 +14772,41 @@ pub struct EnvironmentalDeathEvent { impl EnvironmentalDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EnvironmentalDeathEvent { - killer: read_value::(stream, iter.next(), "killer")?, - victim: read_value::(stream, iter.next(), "victim")?, + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "killer" => Ok(self.killer.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EnvironmentalDeath", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ProjectileDirectHitEvent { pub attacker: u8, pub victim: u8, @@ -5202,30 +14815,86 @@ pub struct ProjectileDirectHitEvent { impl ProjectileDirectHitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ProjectileDirectHitEvent { - attacker: read_value::(stream, iter.next(), "attacker")?, - victim: read_value::(stream, iter.next(), "victim")?, - weapon_def_index: read_value::(stream, iter.next(), "weapon_def_index")?, - }) + attacker: read_value::< + u8, + >(stream, definition.get_entry("attacker"), "attacker")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + weapon_def_index: read_value::< + u32, + >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "attacker" => Ok(self.attacker.clone().into()), + "victim" => Ok(self.victim.clone().into()), + "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ProjectileDirectHit", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PassGetEvent { pub owner: u16, } impl PassGetEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PassGetEvent { - owner: read_value::(stream, iter.next(), "owner")?, + owner: read_value::(stream, definition.get_entry("owner"), "owner")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "owner" => Ok(self.owner.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PassGet", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PassScoreEvent { pub scorer: u16, pub assister: u16, @@ -5234,16 +14903,45 @@ pub struct PassScoreEvent { impl PassScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PassScoreEvent { - scorer: read_value::(stream, iter.next(), "scorer")?, - assister: read_value::(stream, iter.next(), "assister")?, - points: read_value::(stream, iter.next(), "points")?, + scorer: read_value::(stream, definition.get_entry("scorer"), "scorer")?, + assister: read_value::< + u16, + >(stream, definition.get_entry("assister"), "assister")?, + points: read_value::(stream, definition.get_entry("points"), "points")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "scorer" => Ok(self.scorer.clone().into()), + "assister" => Ok(self.assister.clone().into()), + "points" => Ok(self.points.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PassScore", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PassFreeEvent { pub owner: u16, pub attacker: u16, @@ -5251,15 +14949,43 @@ pub struct PassFreeEvent { impl PassFreeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PassFreeEvent { - owner: read_value::(stream, iter.next(), "owner")?, - attacker: read_value::(stream, iter.next(), "attacker")?, + owner: read_value::(stream, definition.get_entry("owner"), "owner")?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "owner" => Ok(self.owner.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PassFree", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PassPassCaughtEvent { pub passer: u16, pub catcher: u16, @@ -5269,17 +14995,49 @@ pub struct PassPassCaughtEvent { impl PassPassCaughtEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PassPassCaughtEvent { - passer: read_value::(stream, iter.next(), "passer")?, - catcher: read_value::(stream, iter.next(), "catcher")?, - dist: read_value::(stream, iter.next(), "dist")?, - duration: read_value::(stream, iter.next(), "duration")?, - }) + passer: read_value::(stream, definition.get_entry("passer"), "passer")?, + catcher: read_value::< + u16, + >(stream, definition.get_entry("catcher"), "catcher")?, + dist: read_value::(stream, definition.get_entry("dist"), "dist")?, + duration: read_value::< + f32, + >(stream, definition.get_entry("duration"), "duration")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "passer" => Ok(self.passer.clone().into()), + "catcher" => Ok(self.catcher.clone().into()), + "dist" => Ok(self.dist.clone().into()), + "duration" => Ok(self.duration.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PassPassCaught", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PassBallStolenEvent { pub victim: u16, pub attacker: u16, @@ -5287,15 +15045,43 @@ pub struct PassBallStolenEvent { impl PassBallStolenEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PassBallStolenEvent { - victim: read_value::(stream, iter.next(), "victim")?, - attacker: read_value::(stream, iter.next(), "attacker")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + attacker: read_value::< + u16, + >(stream, definition.get_entry("attacker"), "attacker")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "victim" => Ok(self.victim.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PassBallStolen", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PassBallBlockedEvent { pub owner: u16, pub blocker: u16, @@ -5303,15 +15089,43 @@ pub struct PassBallBlockedEvent { impl PassBallBlockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PassBallBlockedEvent { - owner: read_value::(stream, iter.next(), "owner")?, - blocker: read_value::(stream, iter.next(), "blocker")?, + owner: read_value::(stream, definition.get_entry("owner"), "owner")?, + blocker: read_value::< + u16, + >(stream, definition.get_entry("blocker"), "blocker")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "owner" => Ok(self.owner.clone().into()), + "blocker" => Ok(self.blocker.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PassBallBlocked", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DamagePreventedEvent { pub preventor: u16, pub victim: u16, @@ -5321,17 +15135,49 @@ pub struct DamagePreventedEvent { impl DamagePreventedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DamagePreventedEvent { - preventor: read_value::(stream, iter.next(), "preventor")?, - victim: read_value::(stream, iter.next(), "victim")?, - amount: read_value::(stream, iter.next(), "amount")?, - condition: read_value::(stream, iter.next(), "condition")?, - }) + preventor: read_value::< + u16, + >(stream, definition.get_entry("preventor"), "preventor")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, + condition: read_value::< + u16, + >(stream, definition.get_entry("condition"), "condition")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "preventor" => Ok(self.preventor.clone().into()), + "victim" => Ok(self.victim.clone().into()), + "amount" => Ok(self.amount.clone().into()), + "condition" => Ok(self.condition.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DamagePrevented", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HalloweenBossKilledEvent { pub boss: u16, pub killer: u16, @@ -5339,141 +15185,392 @@ pub struct HalloweenBossKilledEvent { impl HalloweenBossKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HalloweenBossKilledEvent { - boss: read_value::(stream, iter.next(), "boss")?, - killer: read_value::(stream, iter.next(), "killer")?, + boss: read_value::(stream, definition.get_entry("boss"), "boss")?, + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "boss" => Ok(self.boss.clone().into()), + "killer" => Ok(self.killer.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HalloweenBossKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EscapedLootIslandEvent { pub player: u16, } impl EscapedLootIslandEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EscapedLootIslandEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EscapedLootIsland", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TaggedPlayerAsItEvent { pub player: u16, } impl TaggedPlayerAsItEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TaggedPlayerAsItEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TaggedPlayerAsIt", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MerasmusStunnedEvent { pub player: u16, } impl MerasmusStunnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MerasmusStunnedEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MerasmusStunned", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MerasmusPropFoundEvent { pub player: u16, } impl MerasmusPropFoundEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MerasmusPropFoundEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MerasmusPropFound", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HalloweenSkeletonKilledEvent { pub player: u16, } impl HalloweenSkeletonKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HalloweenSkeletonKilledEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HalloweenSkeletonKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SkeletonKilledQuestEvent { pub player: u16, } impl SkeletonKilledQuestEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(SkeletonKilledQuestEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SkeletonKilledQuest", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SkeletonKingKilledQuestEvent { pub player: u16, } impl SkeletonKingKilledQuestEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(SkeletonKingKilledQuestEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SkeletonKingKilledQuest", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct EscapeHellEvent { pub player: u16, } impl EscapeHellEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(EscapeHellEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "EscapeHell", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CrossSpectralBridgeEvent { pub player: u16, } impl CrossSpectralBridgeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(CrossSpectralBridgeEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CrossSpectralBridge", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MiniGameWonEvent { pub player: u16, pub game: u16, @@ -5481,15 +15578,41 @@ pub struct MiniGameWonEvent { impl MiniGameWonEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(MiniGameWonEvent { - player: read_value::(stream, iter.next(), "player")?, - game: read_value::(stream, iter.next(), "game")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, + game: read_value::(stream, definition.get_entry("game"), "game")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "game" => Ok(self.game.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MiniGameWon", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RespawnGhostEvent { pub reviver: u16, pub ghost: u16, @@ -5497,15 +15620,43 @@ pub struct RespawnGhostEvent { impl RespawnGhostEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RespawnGhostEvent { - reviver: read_value::(stream, iter.next(), "reviver")?, - ghost: read_value::(stream, iter.next(), "ghost")?, + reviver: read_value::< + u16, + >(stream, definition.get_entry("reviver"), "reviver")?, + ghost: read_value::(stream, definition.get_entry("ghost"), "ghost")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "reviver" => Ok(self.reviver.clone().into()), + "ghost" => Ok(self.ghost.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RespawnGhost", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct KillInHellEvent { pub killer: u16, pub victim: u16, @@ -5513,43 +15664,121 @@ pub struct KillInHellEvent { impl KillInHellEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(KillInHellEvent { - killer: read_value::(stream, iter.next(), "killer")?, - victim: read_value::(stream, iter.next(), "victim")?, + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "killer" => Ok(self.killer.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "KillInHell", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HalloweenDuckCollectedEvent { pub collector: u16, } impl HalloweenDuckCollectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HalloweenDuckCollectedEvent { - collector: read_value::(stream, iter.next(), "collector")?, + collector: read_value::< + u16, + >(stream, definition.get_entry("collector"), "collector")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "collector" => Ok(self.collector.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HalloweenDuckCollected", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct SpecialScoreEvent { pub player: u8, } impl SpecialScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(SpecialScoreEvent { - player: read_value::(stream, iter.next(), "player")?, + player: read_value::(stream, definition.get_entry("player"), "player")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "SpecialScore", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TeamLeaderKilledEvent { pub killer: u8, pub victim: u8, @@ -5557,15 +15786,41 @@ pub struct TeamLeaderKilledEvent { impl TeamLeaderKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(TeamLeaderKilledEvent { - killer: read_value::(stream, iter.next(), "killer")?, - victim: read_value::(stream, iter.next(), "victim")?, + killer: read_value::(stream, definition.get_entry("killer"), "killer")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "killer" => Ok(self.killer.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TeamLeaderKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HalloweenSoulCollectedEvent { pub intended_target: u8, pub collecting_player: u8, @@ -5574,25 +15829,83 @@ pub struct HalloweenSoulCollectedEvent { impl HalloweenSoulCollectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HalloweenSoulCollectedEvent { - intended_target: read_value::(stream, iter.next(), "intended_target")?, - collecting_player: read_value::(stream, iter.next(), "collecting_player")?, - soul_count: read_value::(stream, iter.next(), "soul_count")?, - }) + intended_target: read_value::< + u8, + >(stream, definition.get_entry("intended_target"), "intended_target")?, + collecting_player: read_value::< + u8, + >(stream, definition.get_entry("collecting_player"), "collecting_player")?, + soul_count: read_value::< + u8, + >(stream, definition.get_entry("soul_count"), "soul_count")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "intended_target" => Ok(self.intended_target.clone().into()), + "collecting_player" => Ok(self.collecting_player.clone().into()), + "soul_count" => Ok(self.soul_count.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HalloweenSoulCollected", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RecalculateTruceEvent {} impl RecalculateTruceEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RecalculateTruceEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RecalculateTruce", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DeadRingerCheatDeathEvent { pub spy: u8, pub attacker: u8, @@ -5600,15 +15913,43 @@ pub struct DeadRingerCheatDeathEvent { impl DeadRingerCheatDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DeadRingerCheatDeathEvent { - spy: read_value::(stream, iter.next(), "spy")?, - attacker: read_value::(stream, iter.next(), "attacker")?, + spy: read_value::(stream, definition.get_entry("spy"), "spy")?, + attacker: read_value::< + u8, + >(stream, definition.get_entry("attacker"), "attacker")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "spy" => Ok(self.spy.clone().into()), + "attacker" => Ok(self.attacker.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DeadRingerCheatDeath", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CrossbowHealEvent { pub healer: u8, pub target: u8, @@ -5617,16 +15958,43 @@ pub struct CrossbowHealEvent { impl CrossbowHealEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(CrossbowHealEvent { - healer: read_value::(stream, iter.next(), "healer")?, - target: read_value::(stream, iter.next(), "target")?, - amount: read_value::(stream, iter.next(), "amount")?, + healer: read_value::(stream, definition.get_entry("healer"), "healer")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "healer" => Ok(self.healer.clone().into()), + "target" => Ok(self.target.clone().into()), + "amount" => Ok(self.amount.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CrossbowHeal", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DamageMitigatedEvent { pub mitigator: u8, pub damaged: u8, @@ -5636,17 +16004,51 @@ pub struct DamageMitigatedEvent { impl DamageMitigatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DamageMitigatedEvent { - mitigator: read_value::(stream, iter.next(), "mitigator")?, - damaged: read_value::(stream, iter.next(), "damaged")?, - amount: read_value::(stream, iter.next(), "amount")?, - item_definition_index: read_value::(stream, iter.next(), "item_definition_index")?, - }) + mitigator: read_value::< + u8, + >(stream, definition.get_entry("mitigator"), "mitigator")?, + damaged: read_value::< + u8, + >(stream, definition.get_entry("damaged"), "damaged")?, + amount: read_value::(stream, definition.get_entry("amount"), "amount")?, + item_definition_index: read_value::< + u16, + >(stream, definition.get_entry("itemdefindex"), "item_definition_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "mitigator" => Ok(self.mitigator.clone().into()), + "damaged" => Ok(self.damaged.clone().into()), + "amount" => Ok(self.amount.clone().into()), + "itemdefindex" => Ok(self.item_definition_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DamageMitigated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PayloadPushedEvent { pub pusher: u8, pub distance: u16, @@ -5654,29 +16056,84 @@ pub struct PayloadPushedEvent { impl PayloadPushedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PayloadPushedEvent { - pusher: read_value::(stream, iter.next(), "pusher")?, - distance: read_value::(stream, iter.next(), "distance")?, + pusher: read_value::(stream, definition.get_entry("pusher"), "pusher")?, + distance: read_value::< + u16, + >(stream, definition.get_entry("distance"), "distance")?, }) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "pusher" => Ok(self.pusher.clone().into()), + "distance" => Ok(self.distance.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PayloadPushed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerAbandonedMatchEvent { pub game_over: bool, } impl PlayerAbandonedMatchEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerAbandonedMatchEvent { - game_over: read_value::(stream, iter.next(), "game_over")?, + game_over: read_value::< + bool, + >(stream, definition.get_entry("game_over"), "game_over")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "game_over" => Ok(self.game_over.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerAbandonedMatch", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ClDrawlineEvent { pub player: u8, pub panel: u8, @@ -5687,195 +16144,676 @@ pub struct ClDrawlineEvent { impl ClDrawlineEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ClDrawlineEvent { - player: read_value::(stream, iter.next(), "player")?, - panel: read_value::(stream, iter.next(), "panel")?, - line: read_value::(stream, iter.next(), "line")?, - x: read_value::(stream, iter.next(), "x")?, - y: read_value::(stream, iter.next(), "y")?, - }) + player: read_value::(stream, definition.get_entry("player"), "player")?, + panel: read_value::(stream, definition.get_entry("panel"), "panel")?, + line: read_value::(stream, definition.get_entry("line"), "line")?, + x: read_value::(stream, definition.get_entry("x"), "x")?, + y: read_value::(stream, definition.get_entry("y"), "y")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "player" => Ok(self.player.clone().into()), + "panel" => Ok(self.panel.clone().into()), + "line" => Ok(self.line.clone().into()), + "x" => Ok(self.x.clone().into()), + "y" => Ok(self.y.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ClDrawline", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RestartTimerTimeEvent { pub time: u8, } impl RestartTimerTimeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RestartTimerTimeEvent { - time: read_value::(stream, iter.next(), "time")?, + time: read_value::(stream, definition.get_entry("time"), "time")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "time" => Ok(self.time.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RestartTimerTime", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct WinLimitChangedEvent {} impl WinLimitChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(WinLimitChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "WinLimitChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct WinPanelShowScoresEvent {} impl WinPanelShowScoresEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(WinPanelShowScoresEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "WinPanelShowScores", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct TopStreamsRequestFinishedEvent {} impl TopStreamsRequestFinishedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TopStreamsRequestFinishedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "TopStreamsRequestFinished", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CompetitiveStateChangedEvent {} impl CompetitiveStateChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(CompetitiveStateChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CompetitiveStateChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GlobalWarDataUpdatedEvent {} impl GlobalWarDataUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GlobalWarDataUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GlobalWarDataUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct StopWatchChangedEvent {} impl StopWatchChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(StopWatchChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "StopWatchChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DsStopEvent {} impl DsStopEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DsStopEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DsStop", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct DsScreenshotEvent { pub delay: f32, } impl DsScreenshotEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(DsScreenshotEvent { - delay: read_value::(stream, iter.next(), "delay")?, + delay: read_value::(stream, definition.get_entry("delay"), "delay")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "delay" => Ok(self.delay.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "DsScreenshot", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ShowMatchSummaryEvent {} impl ShowMatchSummaryEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ShowMatchSummaryEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ShowMatchSummary", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ExperienceChangedEvent {} impl ExperienceChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ExperienceChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ExperienceChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct BeginXpLerpEvent {} impl BeginXpLerpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BeginXpLerpEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "BeginXpLerp", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MatchmakerStatsUpdatedEvent {} impl MatchmakerStatsUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MatchmakerStatsUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MatchmakerStatsUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RematchVotePeriodOverEvent { pub success: bool, } impl RematchVotePeriodOverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(RematchVotePeriodOverEvent { - success: read_value::(stream, iter.next(), "success")?, + success: read_value::< + bool, + >(stream, definition.get_entry("success"), "success")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "success" => Ok(self.success.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RematchVotePeriodOver", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct RematchFailedToCreateEvent {} impl RematchFailedToCreateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RematchFailedToCreateEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "RematchFailedToCreate", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerRematchChangeEvent {} impl PlayerRematchChangeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerRematchChangeEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerRematchChange", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PingUpdatedEvent {} impl PingUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PingUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PingUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MMStatsUpdatedEvent {} impl MMStatsUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MMStatsUpdatedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MMStatsUpdated", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerNextMapVoteChangeEvent { pub map_index: u8, pub vote: u8, @@ -5883,24 +16821,77 @@ pub struct PlayerNextMapVoteChangeEvent { impl PlayerNextMapVoteChangeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerNextMapVoteChangeEvent { - map_index: read_value::(stream, iter.next(), "map_index")?, - vote: read_value::(stream, iter.next(), "vote")?, + map_index: read_value::< + u8, + >(stream, definition.get_entry("map_index"), "map_index")?, + vote: read_value::(stream, definition.get_entry("vote"), "vote")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "map_index" => Ok(self.map_index.clone().into()), + "vote" => Ok(self.vote.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerNextMapVoteChange", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct VoteMapsChangedEvent {} impl VoteMapsChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteMapsChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "VoteMapsChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ProtoDefChangedEvent { pub kind: u8, pub definition_index: u32, @@ -5911,18 +16902,55 @@ pub struct ProtoDefChangedEvent { impl ProtoDefChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ProtoDefChangedEvent { - kind: read_value::(stream, iter.next(), "kind")?, - definition_index: read_value::(stream, iter.next(), "definition_index")?, - created: read_value::(stream, iter.next(), "created")?, - deleted: read_value::(stream, iter.next(), "deleted")?, - erase_history: read_value::(stream, iter.next(), "erase_history")?, - }) + kind: read_value::(stream, definition.get_entry("type"), "kind")?, + definition_index: read_value::< + u32, + >(stream, definition.get_entry("defindex"), "definition_index")?, + created: read_value::< + bool, + >(stream, definition.get_entry("created"), "created")?, + deleted: read_value::< + bool, + >(stream, definition.get_entry("deleted"), "deleted")?, + erase_history: read_value::< + bool, + >(stream, definition.get_entry("erase_history"), "erase_history")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "type" => Ok(self.kind.clone().into()), + "defindex" => Ok(self.definition_index.clone().into()), + "created" => Ok(self.created.clone().into()), + "deleted" => Ok(self.deleted.clone().into()), + "erase_history" => Ok(self.erase_history.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ProtoDefChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerDominationEvent { pub dominator: u16, pub dominated: u16, @@ -5931,16 +16959,49 @@ pub struct PlayerDominationEvent { impl PlayerDominationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerDominationEvent { - dominator: read_value::(stream, iter.next(), "dominator")?, - dominated: read_value::(stream, iter.next(), "dominated")?, - dominations: read_value::(stream, iter.next(), "dominations")?, - }) + dominator: read_value::< + u16, + >(stream, definition.get_entry("dominator"), "dominator")?, + dominated: read_value::< + u16, + >(stream, definition.get_entry("dominated"), "dominated")?, + dominations: read_value::< + u16, + >(stream, definition.get_entry("dominations"), "dominations")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "dominator" => Ok(self.dominator.clone().into()), + "dominated" => Ok(self.dominated.clone().into()), + "dominations" => Ok(self.dominations.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerDomination", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct PlayerRocketPackPushedEvent { pub pusher: u16, pub pushed: u16, @@ -5948,15 +17009,41 @@ pub struct PlayerRocketPackPushedEvent { impl PlayerRocketPackPushedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(PlayerRocketPackPushedEvent { - pusher: read_value::(stream, iter.next(), "pusher")?, - pushed: read_value::(stream, iter.next(), "pushed")?, + pusher: read_value::(stream, definition.get_entry("pusher"), "pusher")?, + pushed: read_value::(stream, definition.get_entry("pushed"), "pushed")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "pusher" => Ok(self.pusher.clone().into()), + "pushed" => Ok(self.pushed.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "PlayerRocketPackPushed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestRequestEvent { pub request: u32, pub msg: MaybeUtf8String, @@ -5964,15 +17051,45 @@ pub struct QuestRequestEvent { impl QuestRequestEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(QuestRequestEvent { - request: read_value::(stream, iter.next(), "request")?, - msg: read_value::(stream, iter.next(), "msg")?, + request: read_value::< + u32, + >(stream, definition.get_entry("request"), "request")?, + msg: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("msg"), "msg")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "request" => Ok(self.request.clone().into()), + "msg" => Ok(self.msg.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestRequest", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestResponseEvent { pub request: u32, pub success: bool, @@ -5981,16 +17098,49 @@ pub struct QuestResponseEvent { impl QuestResponseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(QuestResponseEvent { - request: read_value::(stream, iter.next(), "request")?, - success: read_value::(stream, iter.next(), "success")?, - msg: read_value::(stream, iter.next(), "msg")?, - }) + request: read_value::< + u32, + >(stream, definition.get_entry("request"), "request")?, + success: read_value::< + bool, + >(stream, definition.get_entry("success"), "success")?, + msg: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("msg"), "msg")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "request" => Ok(self.request.clone().into()), + "success" => Ok(self.success.clone().into()), + "msg" => Ok(self.msg.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestResponse", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestProgressEvent { pub owner: u16, pub scorer: u16, @@ -6001,22 +17151,51 @@ pub struct QuestProgressEvent { impl QuestProgressEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(QuestProgressEvent { - owner: read_value::(stream, iter.next(), "owner")?, - scorer: read_value::(stream, iter.next(), "scorer")?, - kind: read_value::(stream, iter.next(), "kind")?, - completed: read_value::(stream, iter.next(), "completed")?, - quest_definition_index: read_value::( - stream, - iter.next(), - "quest_definition_index", - )?, - }) + owner: read_value::(stream, definition.get_entry("owner"), "owner")?, + scorer: read_value::(stream, definition.get_entry("scorer"), "scorer")?, + kind: read_value::(stream, definition.get_entry("type"), "kind")?, + completed: read_value::< + bool, + >(stream, definition.get_entry("completed"), "completed")?, + quest_definition_index: read_value::< + u32, + >(stream, definition.get_entry("quest_defindex"), "quest_definition_index")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "owner" => Ok(self.owner.clone().into()), + "scorer" => Ok(self.scorer.clone().into()), + "type" => Ok(self.kind.clone().into()), + "completed" => Ok(self.completed.clone().into()), + "quest_defindex" => Ok(self.quest_definition_index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestProgress", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ProjectileRemovedEvent { pub attacker: u8, pub weapon_def_index: u32, @@ -6026,26 +17205,87 @@ pub struct ProjectileRemovedEvent { impl ProjectileRemovedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ProjectileRemovedEvent { - attacker: read_value::(stream, iter.next(), "attacker")?, - weapon_def_index: read_value::(stream, iter.next(), "weapon_def_index")?, - num_hit: read_value::(stream, iter.next(), "num_hit")?, - num_direct_hit: read_value::(stream, iter.next(), "num_direct_hit")?, - }) + attacker: read_value::< + u8, + >(stream, definition.get_entry("attacker"), "attacker")?, + weapon_def_index: read_value::< + u32, + >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, + num_hit: read_value::< + u8, + >(stream, definition.get_entry("num_hit"), "num_hit")?, + num_direct_hit: read_value::< + u8, + >(stream, definition.get_entry("num_direct_hit"), "num_direct_hit")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "attacker" => Ok(self.attacker.clone().into()), + "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), + "num_hit" => Ok(self.num_hit.clone().into()), + "num_direct_hit" => Ok(self.num_direct_hit.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ProjectileRemoved", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestMapDataChangedEvent {} impl QuestMapDataChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(QuestMapDataChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestMapDataChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct GasDousedPlayerIgnitedEvent { pub igniter: u16, pub douser: u16, @@ -6054,39 +17294,118 @@ pub struct GasDousedPlayerIgnitedEvent { impl GasDousedPlayerIgnitedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(GasDousedPlayerIgnitedEvent { - igniter: read_value::(stream, iter.next(), "igniter")?, - douser: read_value::(stream, iter.next(), "douser")?, - victim: read_value::(stream, iter.next(), "victim")?, + igniter: read_value::< + u16, + >(stream, definition.get_entry("igniter"), "igniter")?, + douser: read_value::(stream, definition.get_entry("douser"), "douser")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "igniter" => Ok(self.igniter.clone().into()), + "douser" => Ok(self.douser.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "GasDousedPlayerIgnited", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct QuestTurnInStateEvent { pub state: u16, } impl QuestTurnInStateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(QuestTurnInStateEvent { - state: read_value::(stream, iter.next(), "state")?, + state: read_value::(stream, definition.get_entry("state"), "state")?, }) } -} -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "state" => Ok(self.state.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "QuestTurnInState", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } +} +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ItemsAcknowledgedEvent {} impl ItemsAcknowledgedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ItemsAcknowledgedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ItemsAcknowledged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct CapperKilledEvent { pub blocker: u16, pub victim: u16, @@ -6094,33 +17413,111 @@ pub struct CapperKilledEvent { impl CapperKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(CapperKilledEvent { - blocker: read_value::(stream, iter.next(), "blocker")?, - victim: read_value::(stream, iter.next(), "victim")?, + blocker: read_value::< + u16, + >(stream, definition.get_entry("blocker"), "blocker")?, + victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "blocker" => Ok(self.blocker.clone().into()), + "victim" => Ok(self.victim.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "CapperKilled", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct MainMenuStabilizedEvent {} impl MainMenuStabilizedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MainMenuStabilizedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "MainMenuStabilized", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct WorldStatusChangedEvent {} impl WorldStatusChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(WorldStatusChangedEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "WorldStatusChanged", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVStatusEvent { pub clients: u32, pub slots: u32, @@ -6130,31 +17527,90 @@ pub struct HLTVStatusEvent { impl HLTVStatusEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVStatusEvent { - clients: read_value::(stream, iter.next(), "clients")?, - slots: read_value::(stream, iter.next(), "slots")?, - proxies: read_value::(stream, iter.next(), "proxies")?, - master: read_value::(stream, iter.next(), "master")?, - }) + clients: read_value::< + u32, + >(stream, definition.get_entry("clients"), "clients")?, + slots: read_value::(stream, definition.get_entry("slots"), "slots")?, + proxies: read_value::< + u16, + >(stream, definition.get_entry("proxies"), "proxies")?, + master: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("master"), "master")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "clients" => Ok(self.clients.clone().into()), + "slots" => Ok(self.slots.clone().into()), + "proxies" => Ok(self.proxies.clone().into()), + "master" => Ok(self.master.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVStatus", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVCameramanEvent { pub index: u16, } impl HLTVCameramanEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVCameramanEvent { - index: read_value::(stream, iter.next(), "index")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVCameraman", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVRankCameraEvent { pub index: u8, pub rank: f32, @@ -6163,16 +17619,43 @@ pub struct HLTVRankCameraEvent { impl HLTVRankCameraEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVRankCameraEvent { - index: read_value::(stream, iter.next(), "index")?, - rank: read_value::(stream, iter.next(), "rank")?, - target: read_value::(stream, iter.next(), "target")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + rank: read_value::(stream, definition.get_entry("rank"), "rank")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "rank" => Ok(self.rank.clone().into()), + "target" => Ok(self.target.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVRankCamera", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVRankEntityEvent { pub index: u16, pub rank: f32, @@ -6181,16 +17664,43 @@ pub struct HLTVRankEntityEvent { impl HLTVRankEntityEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVRankEntityEvent { - index: read_value::(stream, iter.next(), "index")?, - rank: read_value::(stream, iter.next(), "rank")?, - target: read_value::(stream, iter.next(), "target")?, + index: read_value::(stream, definition.get_entry("index"), "index")?, + rank: read_value::(stream, definition.get_entry("rank"), "rank")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "index" => Ok(self.index.clone().into()), + "rank" => Ok(self.rank.clone().into()), + "target" => Ok(self.target.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVRankEntity", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVFixedEvent { pub pos_x: u32, pub pos_y: u32, @@ -6204,21 +17714,53 @@ pub struct HLTVFixedEvent { impl HLTVFixedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVFixedEvent { - pos_x: read_value::(stream, iter.next(), "pos_x")?, - pos_y: read_value::(stream, iter.next(), "pos_y")?, - pos_z: read_value::(stream, iter.next(), "pos_z")?, - theta: read_value::(stream, iter.next(), "theta")?, - phi: read_value::(stream, iter.next(), "phi")?, - offset: read_value::(stream, iter.next(), "offset")?, - fov: read_value::(stream, iter.next(), "fov")?, - target: read_value::(stream, iter.next(), "target")?, - }) + pos_x: read_value::(stream, definition.get_entry("posx"), "pos_x")?, + pos_y: read_value::(stream, definition.get_entry("posy"), "pos_y")?, + pos_z: read_value::(stream, definition.get_entry("posz"), "pos_z")?, + theta: read_value::(stream, definition.get_entry("theta"), "theta")?, + phi: read_value::(stream, definition.get_entry("phi"), "phi")?, + offset: read_value::(stream, definition.get_entry("offset"), "offset")?, + fov: read_value::(stream, definition.get_entry("fov"), "fov")?, + target: read_value::(stream, definition.get_entry("target"), "target")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "posx" => Ok(self.pos_x.clone().into()), + "posy" => Ok(self.pos_y.clone().into()), + "posz" => Ok(self.pos_z.clone().into()), + "theta" => Ok(self.theta.clone().into()), + "phi" => Ok(self.phi.clone().into()), + "offset" => Ok(self.offset.clone().into()), + "fov" => Ok(self.fov.clone().into()), + "target" => Ok(self.target.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVFixed", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVChaseEvent { pub target_1: u16, pub target_2: u16, @@ -6231,71 +17773,216 @@ pub struct HLTVChaseEvent { impl HLTVChaseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVChaseEvent { - target_1: read_value::(stream, iter.next(), "target_1")?, - target_2: read_value::(stream, iter.next(), "target_2")?, - distance: read_value::(stream, iter.next(), "distance")?, - theta: read_value::(stream, iter.next(), "theta")?, - phi: read_value::(stream, iter.next(), "phi")?, - inertia: read_value::(stream, iter.next(), "inertia")?, - in_eye: read_value::(stream, iter.next(), "in_eye")?, - }) + target_1: read_value::< + u16, + >(stream, definition.get_entry("target1"), "target_1")?, + target_2: read_value::< + u16, + >(stream, definition.get_entry("target2"), "target_2")?, + distance: read_value::< + u16, + >(stream, definition.get_entry("distance"), "distance")?, + theta: read_value::(stream, definition.get_entry("theta"), "theta")?, + phi: read_value::(stream, definition.get_entry("phi"), "phi")?, + inertia: read_value::< + u8, + >(stream, definition.get_entry("inertia"), "inertia")?, + in_eye: read_value::(stream, definition.get_entry("ineye"), "in_eye")?, + }) + } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "target1" => Ok(self.target_1.clone().into()), + "target2" => Ok(self.target_2.clone().into()), + "distance" => Ok(self.distance.clone().into()), + "theta" => Ok(self.theta.clone().into()), + "phi" => Ok(self.phi.clone().into()), + "inertia" => Ok(self.inertia.clone().into()), + "ineye" => Ok(self.in_eye.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVChase", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVMessageEvent { pub text: MaybeUtf8String, } impl HLTVMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVMessageEvent { - text: read_value::(stream, iter.next(), "text")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVMessage", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVTitleEvent { pub text: MaybeUtf8String, } impl HLTVTitleEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVTitleEvent { - text: read_value::(stream, iter.next(), "text")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVTitle", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct HLTVChatEvent { pub text: MaybeUtf8String, } impl HLTVChatEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(HLTVChatEvent { - text: read_value::(stream, iter.next(), "text")?, + text: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("text"), "text")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "text" => Ok(self.text.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "HLTVChat", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplayStartRecordEvent {} impl ReplayStartRecordEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ReplayStartRecordEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplayStartRecord", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplaySessionInfoEvent { pub sn: MaybeUtf8String, pub di: u8, @@ -6305,46 +17992,151 @@ pub struct ReplaySessionInfoEvent { impl ReplaySessionInfoEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ReplaySessionInfoEvent { - sn: read_value::(stream, iter.next(), "sn")?, - di: read_value::(stream, iter.next(), "di")?, - cb: read_value::(stream, iter.next(), "cb")?, - st: read_value::(stream, iter.next(), "st")?, + sn: read_value::(stream, definition.get_entry("sn"), "sn")?, + di: read_value::(stream, definition.get_entry("di"), "di")?, + cb: read_value::(stream, definition.get_entry("cb"), "cb")?, + st: read_value::(stream, definition.get_entry("st"), "st")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "sn" => Ok(self.sn.clone().into()), + "di" => Ok(self.di.clone().into()), + "cb" => Ok(self.cb.clone().into()), + "st" => Ok(self.st.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplaySessionInfo", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplayEndRecordEvent {} impl ReplayEndRecordEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ReplayEndRecordEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplayEndRecord", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplayReplaysAvailableEvent {} impl ReplayReplaysAvailableEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ReplayReplaysAvailableEvent {}) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplayReplaysAvailable", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] -#[derive(Debug, BitWrite, PartialEq, Serialize, Deserialize, Clone)] +#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] pub struct ReplayServerErrorEvent { pub error: MaybeUtf8String, } impl ReplayServerErrorEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - let mut iter = definition.entries.iter(); Ok(ReplayServerErrorEvent { - error: read_value::(stream, iter.next(), "error")?, + error: read_value::< + MaybeUtf8String, + >(stream, definition.get_entry("error"), "error")?, }) } + #[allow(unused_variables)] + fn get_field(&self, field: &str) -> Result { + match field { + "error" => Ok(self.error.clone().into()), + _ => { + Err(ParseError::MissingGameEventValue { + ty: "ReplayServerError", + field: field.into(), + }) + } + } + } + #[allow(unused_variables)] + fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + for entry in &definition.entries { + let value = self + .get_field(&entry.name) + .unwrap_or_else(|_| entry.kind.default_value()); + stream.write(&value)?; + } + Ok(()) + } } #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(Debug, PartialEq, Serialize, Deserialize, Clone)] @@ -7655,7 +19447,9 @@ impl GameEventType { "controlpoint_endtouch" => GameEventType::ControlPointEndTouch, "controlpoint_pulse_element" => GameEventType::ControlPointPulseElement, "controlpoint_fake_capture" => GameEventType::ControlPointFakeCapture, - "controlpoint_fake_capture_mult" => GameEventType::ControlPointFakeCaptureMultiplier, + "controlpoint_fake_capture_mult" => { + GameEventType::ControlPointFakeCaptureMultiplier + } "teamplay_round_selected" => GameEventType::TeamPlayRoundSelected, "teamplay_round_start" => GameEventType::TeamPlayRoundStart, "teamplay_round_active" => GameEventType::TeamPlayRoundActive, @@ -7664,7 +19458,9 @@ impl GameEventType { "teamplay_waiting_abouttoend" => GameEventType::TeamPlayWaitingAboutToEnd, "teamplay_restart_round" => GameEventType::TeamPlayRestartRound, "teamplay_ready_restart" => GameEventType::TeamPlayReadyRestart, - "teamplay_round_restart_seconds" => GameEventType::TeamPlayRoundRestartSeconds, + "teamplay_round_restart_seconds" => { + GameEventType::TeamPlayRoundRestartSeconds + } "teamplay_team_ready" => GameEventType::TeamPlayTeamReady, "teamplay_round_win" => GameEventType::TeamPlayRoundWin, "teamplay_update_timer" => GameEventType::TeamPlayUpdateTimer, @@ -7818,7 +19614,9 @@ impl GameEventType { "player_buyback" => GameEventType::PlayerBuyback, "player_used_powerup_bottle" => GameEventType::PlayerUsedPowerUpBottle, "christmas_gift_grab" => GameEventType::ChristmasGiftGrab, - "player_killed_achievement_zone" => GameEventType::PlayerKilledAchievementZone, + "player_killed_achievement_zone" => { + GameEventType::PlayerKilledAchievementZone + } "party_updated" => GameEventType::PartyUpdated, "party_pref_changed" => GameEventType::PartyPrefChanged, "party_criteria_changed" => GameEventType::PartyCriteriaChanged, @@ -7850,7 +19648,9 @@ impl GameEventType { "mvm_mission_complete" => GameEventType::MvmMissionComplete, "mvm_bomb_reset_by_player" => GameEventType::MvmBombResetByPlayer, "mvm_bomb_alarm_triggered" => GameEventType::MvmBombAlarmTriggered, - "mvm_bomb_deploy_reset_by_player" => GameEventType::MvmBombDeployResetByPlayer, + "mvm_bomb_deploy_reset_by_player" => { + GameEventType::MvmBombDeployResetByPlayer + } "mvm_wave_failed" => GameEventType::MvmWaveFailed, "mvm_reset_stats" => GameEventType::MvmResetStats, "damage_resisted" => GameEventType::DamageResisted, @@ -8063,7 +19863,9 @@ impl GameEventType { GameEventType::ControlPointEndTouch => "controlpoint_endtouch", GameEventType::ControlPointPulseElement => "controlpoint_pulse_element", GameEventType::ControlPointFakeCapture => "controlpoint_fake_capture", - GameEventType::ControlPointFakeCaptureMultiplier => "controlpoint_fake_capture_mult", + GameEventType::ControlPointFakeCaptureMultiplier => { + "controlpoint_fake_capture_mult" + } GameEventType::TeamPlayRoundSelected => "teamplay_round_selected", GameEventType::TeamPlayRoundStart => "teamplay_round_start", GameEventType::TeamPlayRoundActive => "teamplay_round_active", @@ -8072,7 +19874,9 @@ impl GameEventType { GameEventType::TeamPlayWaitingAboutToEnd => "teamplay_waiting_abouttoend", GameEventType::TeamPlayRestartRound => "teamplay_restart_round", GameEventType::TeamPlayReadyRestart => "teamplay_ready_restart", - GameEventType::TeamPlayRoundRestartSeconds => "teamplay_round_restart_seconds", + GameEventType::TeamPlayRoundRestartSeconds => { + "teamplay_round_restart_seconds" + } GameEventType::TeamPlayTeamReady => "teamplay_team_ready", GameEventType::TeamPlayRoundWin => "teamplay_round_win", GameEventType::TeamPlayUpdateTimer => "teamplay_update_timer", @@ -8226,7 +20030,9 @@ impl GameEventType { GameEventType::PlayerBuyback => "player_buyback", GameEventType::PlayerUsedPowerUpBottle => "player_used_powerup_bottle", GameEventType::ChristmasGiftGrab => "christmas_gift_grab", - GameEventType::PlayerKilledAchievementZone => "player_killed_achievement_zone", + GameEventType::PlayerKilledAchievementZone => { + "player_killed_achievement_zone" + } GameEventType::PartyUpdated => "party_updated", GameEventType::PartyPrefChanged => "party_pref_changed", GameEventType::PartyCriteriaChanged => "party_criteria_changed", @@ -8258,7 +20064,9 @@ impl GameEventType { GameEventType::MvmMissionComplete => "mvm_mission_complete", GameEventType::MvmBombResetByPlayer => "mvm_bomb_reset_by_player", GameEventType::MvmBombAlarmTriggered => "mvm_bomb_alarm_triggered", - GameEventType::MvmBombDeployResetByPlayer => "mvm_bomb_deploy_reset_by_player", + GameEventType::MvmBombDeployResetByPlayer => { + "mvm_bomb_deploy_reset_by_player" + } GameEventType::MvmWaveFailed => "mvm_wave_failed", GameEventType::MvmResetStats => "mvm_reset_stats", GameEventType::DamageResisted => "damage_resisted", @@ -8386,1732 +20194,2460 @@ impl GameEventType { } impl GameEvent { pub fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - Ok(match definition.event_type { - GameEventType::ServerSpawn => { - GameEvent::ServerSpawn(Box::new(::read(stream, definition)?)) - } - GameEventType::ServerChangeLevelFailed => GameEvent::ServerChangeLevelFailed( - ServerChangeLevelFailedEvent::read(stream, definition)?, - ), - GameEventType::ServerShutdown => { - GameEvent::ServerShutdown(ServerShutdownEvent::read(stream, definition)?) - } - GameEventType::ServerCvar => { - GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?) - } - GameEventType::ServerMessage => { - GameEvent::ServerMessage(ServerMessageEvent::read(stream, definition)?) - } - GameEventType::ServerAddBan => { - GameEvent::ServerAddBan(Box::new(::read(stream, definition)?)) - } - GameEventType::ServerRemoveBan => { - GameEvent::ServerRemoveBan(ServerRemoveBanEvent::read(stream, definition)?) + Ok( + match definition.event_type { + GameEventType::ServerSpawn => { + GameEvent::ServerSpawn( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::ServerChangeLevelFailed => { + GameEvent::ServerChangeLevelFailed( + ServerChangeLevelFailedEvent::read(stream, definition)?, + ) + } + GameEventType::ServerShutdown => { + GameEvent::ServerShutdown( + ServerShutdownEvent::read(stream, definition)?, + ) + } + GameEventType::ServerCvar => { + GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?) + } + GameEventType::ServerMessage => { + GameEvent::ServerMessage( + ServerMessageEvent::read(stream, definition)?, + ) + } + GameEventType::ServerAddBan => { + GameEvent::ServerAddBan( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::ServerRemoveBan => { + GameEvent::ServerRemoveBan( + ServerRemoveBanEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerConnect => { + GameEvent::PlayerConnect( + PlayerConnectEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerConnectClient => { + GameEvent::PlayerConnectClient( + PlayerConnectClientEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerInfo => { + GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?) + } + GameEventType::PlayerDisconnect => { + GameEvent::PlayerDisconnect( + PlayerDisconnectEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerActivate => { + GameEvent::PlayerActivate( + PlayerActivateEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerSay => { + GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?) + } + GameEventType::ClientDisconnect => { + GameEvent::ClientDisconnect( + ClientDisconnectEvent::read(stream, definition)?, + ) + } + GameEventType::ClientBeginConnect => { + GameEvent::ClientBeginConnect( + ClientBeginConnectEvent::read(stream, definition)?, + ) + } + GameEventType::ClientConnected => { + GameEvent::ClientConnected( + ClientConnectedEvent::read(stream, definition)?, + ) + } + GameEventType::ClientFullConnect => { + GameEvent::ClientFullConnect( + ClientFullConnectEvent::read(stream, definition)?, + ) + } + GameEventType::HostQuit => { + GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?) + } + GameEventType::TeamInfo => { + GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?) + } + GameEventType::TeamScore => { + GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?) + } + GameEventType::TeamPlayBroadcastAudio => { + GameEvent::TeamPlayBroadcastAudio( + TeamPlayBroadcastAudioEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerTeam => { + GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?) + } + GameEventType::PlayerClass => { + GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?) + } + GameEventType::PlayerDeath => { + GameEvent::PlayerDeath( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::PlayerHurt => { + GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?) + } + GameEventType::PlayerChat => { + GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?) + } + GameEventType::PlayerScore => { + GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?) + } + GameEventType::PlayerSpawn => { + GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?) + } + GameEventType::PlayerShoot => { + GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?) + } + GameEventType::PlayerUse => { + GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?) + } + GameEventType::PlayerChangeName => { + GameEvent::PlayerChangeName( + PlayerChangeNameEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHintMessage => { + GameEvent::PlayerHintMessage( + PlayerHintMessageEvent::read(stream, definition)?, + ) + } + GameEventType::BasePlayerTeleported => { + GameEvent::BasePlayerTeleported( + BasePlayerTeleportedEvent::read(stream, definition)?, + ) + } + GameEventType::GameInit => { + GameEvent::GameInit(GameInitEvent::read(stream, definition)?) + } + GameEventType::GameNewMap => { + GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?) + } + GameEventType::GameStart => { + GameEvent::GameStart(GameStartEvent::read(stream, definition)?) + } + GameEventType::GameEnd => { + GameEvent::GameEnd(GameEndEvent::read(stream, definition)?) + } + GameEventType::RoundStart => { + GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?) + } + GameEventType::RoundEnd => { + GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?) + } + GameEventType::GameMessage => { + GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?) + } + GameEventType::BreakBreakable => { + GameEvent::BreakBreakable( + BreakBreakableEvent::read(stream, definition)?, + ) + } + GameEventType::BreakProp => { + GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?) + } + GameEventType::EntityKilled => { + GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?) + } + GameEventType::BonusUpdated => { + GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?) + } + GameEventType::AchievementEvent => { + GameEvent::AchievementEvent( + AchievementEventEvent::read(stream, definition)?, + ) + } + GameEventType::AchievementIncrement => { + GameEvent::AchievementIncrement( + AchievementIncrementEvent::read(stream, definition)?, + ) + } + GameEventType::PhysgunPickup => { + GameEvent::PhysgunPickup( + PhysgunPickupEvent::read(stream, definition)?, + ) + } + GameEventType::FlareIgniteNpc => { + GameEvent::FlareIgniteNpc( + FlareIgniteNpcEvent::read(stream, definition)?, + ) + } + GameEventType::HelicopterGrenadePuntMiss => { + GameEvent::HelicopterGrenadePuntMiss( + HelicopterGrenadePuntMissEvent::read(stream, definition)?, + ) + } + GameEventType::UserDataDownloaded => { + GameEvent::UserDataDownloaded( + UserDataDownloadedEvent::read(stream, definition)?, + ) + } + GameEventType::RagdollDissolved => { + GameEvent::RagdollDissolved( + RagdollDissolvedEvent::read(stream, definition)?, + ) + } + GameEventType::HLTVChangedMode => { + GameEvent::HLTVChangedMode( + HLTVChangedModeEvent::read(stream, definition)?, + ) + } + GameEventType::HLTVChangedTarget => { + GameEvent::HLTVChangedTarget( + HLTVChangedTargetEvent::read(stream, definition)?, + ) + } + GameEventType::VoteEnded => { + GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?) + } + GameEventType::VoteStarted => { + GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?) + } + GameEventType::VoteChanged => { + GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?) + } + GameEventType::VotePassed => { + GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?) + } + GameEventType::VoteFailed => { + GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?) + } + GameEventType::VoteCast => { + GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?) + } + GameEventType::VoteOptions => { + GameEvent::VoteOptions( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::ReplaySaved => { + GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?) + } + GameEventType::EnteredPerformanceMode => { + GameEvent::EnteredPerformanceMode( + EnteredPerformanceModeEvent::read(stream, definition)?, + ) + } + GameEventType::BrowseReplays => { + GameEvent::BrowseReplays( + BrowseReplaysEvent::read(stream, definition)?, + ) + } + GameEventType::ReplayYoutubeStats => { + GameEvent::ReplayYoutubeStats( + ReplayYoutubeStatsEvent::read(stream, definition)?, + ) + } + GameEventType::InventoryUpdated => { + GameEvent::InventoryUpdated( + InventoryUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::CartUpdated => { + GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?) + } + GameEventType::StorePriceSheetUpdated => { + GameEvent::StorePriceSheetUpdated( + StorePriceSheetUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::EconInventoryConnected => { + GameEvent::EconInventoryConnected( + EconInventoryConnectedEvent::read(stream, definition)?, + ) + } + GameEventType::ItemSchemaInitialized => { + GameEvent::ItemSchemaInitialized( + ItemSchemaInitializedEvent::read(stream, definition)?, + ) + } + GameEventType::GcNewSession => { + GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?) + } + GameEventType::GcLostSession => { + GameEvent::GcLostSession( + GcLostSessionEvent::read(stream, definition)?, + ) + } + GameEventType::IntroFinish => { + GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?) + } + GameEventType::IntroNextCamera => { + GameEvent::IntroNextCamera( + IntroNextCameraEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerChangeClass => { + GameEvent::PlayerChangeClass( + PlayerChangeClassEvent::read(stream, definition)?, + ) + } + GameEventType::TfMapTimeRemaining => { + GameEvent::TfMapTimeRemaining( + TfMapTimeRemainingEvent::read(stream, definition)?, + ) + } + GameEventType::TfGameOver => { + GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?) + } + GameEventType::CtfFlagCaptured => { + GameEvent::CtfFlagCaptured( + CtfFlagCapturedEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointInitialized => { + GameEvent::ControlPointInitialized( + ControlPointInitializedEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointUpdateImages => { + GameEvent::ControlPointUpdateImages( + ControlPointUpdateImagesEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointUpdateLayout => { + GameEvent::ControlPointUpdateLayout( + ControlPointUpdateLayoutEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointUpdateCapping => { + GameEvent::ControlPointUpdateCapping( + ControlPointUpdateCappingEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointUpdateOwner => { + GameEvent::ControlPointUpdateOwner( + ControlPointUpdateOwnerEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointStartTouch => { + GameEvent::ControlPointStartTouch( + ControlPointStartTouchEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointEndTouch => { + GameEvent::ControlPointEndTouch( + ControlPointEndTouchEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointPulseElement => { + GameEvent::ControlPointPulseElement( + ControlPointPulseElementEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointFakeCapture => { + GameEvent::ControlPointFakeCapture( + ControlPointFakeCaptureEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointFakeCaptureMultiplier => { + GameEvent::ControlPointFakeCaptureMultiplier( + ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundSelected => { + GameEvent::TeamPlayRoundSelected( + TeamPlayRoundSelectedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundStart => { + GameEvent::TeamPlayRoundStart( + TeamPlayRoundStartEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundActive => { + GameEvent::TeamPlayRoundActive( + TeamPlayRoundActiveEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayWaitingBegins => { + GameEvent::TeamPlayWaitingBegins( + TeamPlayWaitingBeginsEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayWaitingEnds => { + GameEvent::TeamPlayWaitingEnds( + TeamPlayWaitingEndsEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayWaitingAboutToEnd => { + GameEvent::TeamPlayWaitingAboutToEnd( + TeamPlayWaitingAboutToEndEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRestartRound => { + GameEvent::TeamPlayRestartRound( + TeamPlayRestartRoundEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayReadyRestart => { + GameEvent::TeamPlayReadyRestart( + TeamPlayReadyRestartEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundRestartSeconds => { + GameEvent::TeamPlayRoundRestartSeconds( + TeamPlayRoundRestartSecondsEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayTeamReady => { + GameEvent::TeamPlayTeamReady( + TeamPlayTeamReadyEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundWin => { + GameEvent::TeamPlayRoundWin( + TeamPlayRoundWinEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayUpdateTimer => { + GameEvent::TeamPlayUpdateTimer( + TeamPlayUpdateTimerEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundStalemate => { + GameEvent::TeamPlayRoundStalemate( + TeamPlayRoundStalemateEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayOvertimeBegin => { + GameEvent::TeamPlayOvertimeBegin( + TeamPlayOvertimeBeginEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayOvertimeEnd => { + GameEvent::TeamPlayOvertimeEnd( + TeamPlayOvertimeEndEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlaySuddenDeathBegin => { + GameEvent::TeamPlaySuddenDeathBegin( + TeamPlaySuddenDeathBeginEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlaySuddenDeathEnd => { + GameEvent::TeamPlaySuddenDeathEnd( + TeamPlaySuddenDeathEndEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayGameOver => { + GameEvent::TeamPlayGameOver( + TeamPlayGameOverEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayMapTimeRemaining => { + GameEvent::TeamPlayMapTimeRemaining( + TeamPlayMapTimeRemainingEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayTimerFlash => { + GameEvent::TeamPlayTimerFlash( + TeamPlayTimerFlashEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayTimerTimeAdded => { + GameEvent::TeamPlayTimerTimeAdded( + TeamPlayTimerTimeAddedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayPointStartCapture => { + GameEvent::TeamPlayPointStartCapture( + TeamPlayPointStartCaptureEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayPointCaptured => { + GameEvent::TeamPlayPointCaptured( + TeamPlayPointCapturedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayPointLocked => { + GameEvent::TeamPlayPointLocked( + TeamPlayPointLockedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayPointUnlocked => { + GameEvent::TeamPlayPointUnlocked( + TeamPlayPointUnlockedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayCaptureBroken => { + GameEvent::TeamPlayCaptureBroken( + TeamPlayCaptureBrokenEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayCaptureBlocked => { + GameEvent::TeamPlayCaptureBlocked( + TeamPlayCaptureBlockedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayFlagEvent => { + GameEvent::TeamPlayFlagEvent( + TeamPlayFlagEventEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayWinPanel => { + GameEvent::TeamPlayWinPanel( + TeamPlayWinPanelEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayTeamBalancedPlayer => { + GameEvent::TeamPlayTeamBalancedPlayer( + TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlaySetupFinished => { + GameEvent::TeamPlaySetupFinished( + TeamPlaySetupFinishedEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayAlert => { + GameEvent::TeamPlayAlert( + TeamPlayAlertEvent::read(stream, definition)?, + ) + } + GameEventType::TrainingComplete => { + GameEvent::TrainingComplete( + TrainingCompleteEvent::read(stream, definition)?, + ) + } + GameEventType::ShowFreezePanel => { + GameEvent::ShowFreezePanel( + ShowFreezePanelEvent::read(stream, definition)?, + ) + } + GameEventType::HideFreezePanel => { + GameEvent::HideFreezePanel( + HideFreezePanelEvent::read(stream, definition)?, + ) + } + GameEventType::FreezeCamStarted => { + GameEvent::FreezeCamStarted( + FreezeCamStartedEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerChangeTeam => { + GameEvent::LocalPlayerChangeTeam( + LocalPlayerChangeTeamEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerScoreChanged => { + GameEvent::LocalPlayerScoreChanged( + LocalPlayerScoreChangedEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerChangeClass => { + GameEvent::LocalPlayerChangeClass( + LocalPlayerChangeClassEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerRespawn => { + GameEvent::LocalPlayerRespawn( + LocalPlayerRespawnEvent::read(stream, definition)?, + ) + } + GameEventType::BuildingInfoChanged => { + GameEvent::BuildingInfoChanged( + BuildingInfoChangedEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerChangeDisguise => { + GameEvent::LocalPlayerChangeDisguise( + LocalPlayerChangeDisguiseEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerAccountChanged => { + GameEvent::PlayerAccountChanged( + PlayerAccountChangedEvent::read(stream, definition)?, + ) + } + GameEventType::SpyPdaReset => { + GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?) + } + GameEventType::FlagStatusUpdate => { + GameEvent::FlagStatusUpdate( + FlagStatusUpdateEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerStatsUpdated => { + GameEvent::PlayerStatsUpdated( + PlayerStatsUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayingCommentary => { + GameEvent::PlayingCommentary( + PlayingCommentaryEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerChargeDeployed => { + GameEvent::PlayerChargeDeployed( + PlayerChargeDeployedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerBuiltObject => { + GameEvent::PlayerBuiltObject( + PlayerBuiltObjectEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerUpgradedObject => { + GameEvent::PlayerUpgradedObject( + PlayerUpgradedObjectEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerCarryObject => { + GameEvent::PlayerCarryObject( + PlayerCarryObjectEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerDropObject => { + GameEvent::PlayerDropObject( + PlayerDropObjectEvent::read(stream, definition)?, + ) + } + GameEventType::ObjectRemoved => { + GameEvent::ObjectRemoved( + ObjectRemovedEvent::read(stream, definition)?, + ) + } + GameEventType::ObjectDestroyed => { + GameEvent::ObjectDestroyed( + ObjectDestroyedEvent::read(stream, definition)?, + ) + } + GameEventType::ObjectDetonated => { + GameEvent::ObjectDetonated( + ObjectDetonatedEvent::read(stream, definition)?, + ) + } + GameEventType::AchievementEarned => { + GameEvent::AchievementEarned( + AchievementEarnedEvent::read(stream, definition)?, + ) + } + GameEventType::SpecTargetUpdated => { + GameEvent::SpecTargetUpdated( + SpecTargetUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::TournamentStateUpdate => { + GameEvent::TournamentStateUpdate( + TournamentStateUpdateEvent::read(stream, definition)?, + ) + } + GameEventType::TournamentEnableCountdown => { + GameEvent::TournamentEnableCountdown( + TournamentEnableCountdownEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerCalledForMedic => { + GameEvent::PlayerCalledForMedic( + PlayerCalledForMedicEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerAskedForBall => { + GameEvent::PlayerAskedForBall( + PlayerAskedForBallEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerBecameObserver => { + GameEvent::LocalPlayerBecameObserver( + LocalPlayerBecameObserverEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerIgnitedInv => { + GameEvent::PlayerIgnitedInv( + PlayerIgnitedInvEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerIgnited => { + GameEvent::PlayerIgnited( + PlayerIgnitedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerExtinguished => { + GameEvent::PlayerExtinguished( + PlayerExtinguishedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerTeleported => { + GameEvent::PlayerTeleported( + PlayerTeleportedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHealedMedicCall => { + GameEvent::PlayerHealedMedicCall( + PlayerHealedMedicCallEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerChargeReady => { + GameEvent::LocalPlayerChargeReady( + LocalPlayerChargeReadyEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerWindDown => { + GameEvent::LocalPlayerWindDown( + LocalPlayerWindDownEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerInvulned => { + GameEvent::PlayerInvulned( + PlayerInvulnedEvent::read(stream, definition)?, + ) + } + GameEventType::EscortSpeed => { + GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?) + } + GameEventType::EscortProgress => { + GameEvent::EscortProgress( + EscortProgressEvent::read(stream, definition)?, + ) + } + GameEventType::EscortRecede => { + GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?) + } + GameEventType::GameUIActivated => { + GameEvent::GameUIActivated( + GameUIActivatedEvent::read(stream, definition)?, + ) + } + GameEventType::GameUIHidden => { + GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?) + } + GameEventType::PlayerEscortScore => { + GameEvent::PlayerEscortScore( + PlayerEscortScoreEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHealOnHit => { + GameEvent::PlayerHealOnHit( + PlayerHealOnHitEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerStealSandvich => { + GameEvent::PlayerStealSandvich( + PlayerStealSandvichEvent::read(stream, definition)?, + ) + } + GameEventType::ShowClassLayout => { + GameEvent::ShowClassLayout( + ShowClassLayoutEvent::read(stream, definition)?, + ) + } + GameEventType::ShowVsPanel => { + GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?) + } + GameEventType::PlayerDamaged => { + GameEvent::PlayerDamaged( + PlayerDamagedEvent::read(stream, definition)?, + ) + } + GameEventType::ArenaPlayerNotification => { + GameEvent::ArenaPlayerNotification( + ArenaPlayerNotificationEvent::read(stream, definition)?, + ) + } + GameEventType::ArenaMatchMaxStreak => { + GameEvent::ArenaMatchMaxStreak( + ArenaMatchMaxStreakEvent::read(stream, definition)?, + ) + } + GameEventType::ArenaRoundStart => { + GameEvent::ArenaRoundStart( + ArenaRoundStartEvent::read(stream, definition)?, + ) + } + GameEventType::ArenaWinPanel => { + GameEvent::ArenaWinPanel( + ArenaWinPanelEvent::read(stream, definition)?, + ) + } + GameEventType::PveWinPanel => { + GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?) + } + GameEventType::AirDash => { + GameEvent::AirDash(AirDashEvent::read(stream, definition)?) + } + GameEventType::Landed => { + GameEvent::Landed(LandedEvent::read(stream, definition)?) + } + GameEventType::PlayerDamageDodged => { + GameEvent::PlayerDamageDodged( + PlayerDamageDodgedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerStunned => { + GameEvent::PlayerStunned( + PlayerStunnedEvent::read(stream, definition)?, + ) + } + GameEventType::ScoutGrandSlam => { + GameEvent::ScoutGrandSlam( + ScoutGrandSlamEvent::read(stream, definition)?, + ) + } + GameEventType::ScoutSlamdollLanded => { + GameEvent::ScoutSlamdollLanded( + ScoutSlamdollLandedEvent::read(stream, definition)?, + ) + } + GameEventType::ArrowImpact => { + GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?) + } + GameEventType::PlayerJarated => { + GameEvent::PlayerJarated( + PlayerJaratedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerJaratedFade => { + GameEvent::PlayerJaratedFade( + PlayerJaratedFadeEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerShieldBlocked => { + GameEvent::PlayerShieldBlocked( + PlayerShieldBlockedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerPinned => { + GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?) + } + GameEventType::PlayerHealedByMedic => { + GameEvent::PlayerHealedByMedic( + PlayerHealedByMedicEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerSappedObject => { + GameEvent::PlayerSappedObject( + PlayerSappedObjectEvent::read(stream, definition)?, + ) + } + GameEventType::ItemFound => { + GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?) + } + GameEventType::ShowAnnotation => { + GameEvent::ShowAnnotation( + ShowAnnotationEvent::read(stream, definition)?, + ) + } + GameEventType::HideAnnotation => { + GameEvent::HideAnnotation( + HideAnnotationEvent::read(stream, definition)?, + ) + } + GameEventType::PostInventoryApplication => { + GameEvent::PostInventoryApplication( + PostInventoryApplicationEvent::read(stream, definition)?, + ) + } + GameEventType::ControlPointUnlockUpdated => { + GameEvent::ControlPointUnlockUpdated( + ControlPointUnlockUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::DeployBuffBanner => { + GameEvent::DeployBuffBanner( + DeployBuffBannerEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerBuff => { + GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?) + } + GameEventType::MedicDeath => { + GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?) + } + GameEventType::OvertimeNag => { + GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?) + } + GameEventType::TeamsChanged => { + GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?) + } + GameEventType::HalloweenPumpkinGrab => { + GameEvent::HalloweenPumpkinGrab( + HalloweenPumpkinGrabEvent::read(stream, definition)?, + ) + } + GameEventType::RocketJump => { + GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?) + } + GameEventType::RocketJumpLanded => { + GameEvent::RocketJumpLanded( + RocketJumpLandedEvent::read(stream, definition)?, + ) + } + GameEventType::StickyJump => { + GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?) + } + GameEventType::StickyJumpLanded => { + GameEvent::StickyJumpLanded( + StickyJumpLandedEvent::read(stream, definition)?, + ) + } + GameEventType::RocketPackLaunch => { + GameEvent::RocketPackLaunch( + RocketPackLaunchEvent::read(stream, definition)?, + ) + } + GameEventType::RocketPackLanded => { + GameEvent::RocketPackLanded( + RocketPackLandedEvent::read(stream, definition)?, + ) + } + GameEventType::MedicDefended => { + GameEvent::MedicDefended( + MedicDefendedEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerHealed => { + GameEvent::LocalPlayerHealed( + LocalPlayerHealedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerDestroyedPipeBomb => { + GameEvent::PlayerDestroyedPipeBomb( + PlayerDestroyedPipeBombEvent::read(stream, definition)?, + ) + } + GameEventType::ObjectDeflected => { + GameEvent::ObjectDeflected( + ObjectDeflectedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerMvp => { + GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?) + } + GameEventType::RaidSpawnMob => { + GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?) + } + GameEventType::RaidSpawnSquad => { + GameEvent::RaidSpawnSquad( + RaidSpawnSquadEvent::read(stream, definition)?, + ) + } + GameEventType::NavBlocked => { + GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?) + } + GameEventType::PathTrackPassed => { + GameEvent::PathTrackPassed( + PathTrackPassedEvent::read(stream, definition)?, + ) + } + GameEventType::NumCappersChanged => { + GameEvent::NumCappersChanged( + NumCappersChangedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerRegenerate => { + GameEvent::PlayerRegenerate( + PlayerRegenerateEvent::read(stream, definition)?, + ) + } + GameEventType::UpdateStatusItem => { + GameEvent::UpdateStatusItem( + UpdateStatusItemEvent::read(stream, definition)?, + ) + } + GameEventType::StatsResetRound => { + GameEvent::StatsResetRound( + StatsResetRoundEvent::read(stream, definition)?, + ) + } + GameEventType::ScoreStatsAccumulatedUpdate => { + GameEvent::ScoreStatsAccumulatedUpdate( + ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?, + ) + } + GameEventType::ScoreStatsAccumulatedReset => { + GameEvent::ScoreStatsAccumulatedReset( + ScoreStatsAccumulatedResetEvent::read(stream, definition)?, + ) + } + GameEventType::AchievementEarnedLocal => { + GameEvent::AchievementEarnedLocal( + AchievementEarnedLocalEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHealed => { + GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?) + } + GameEventType::BuildingHealed => { + GameEvent::BuildingHealed( + BuildingHealedEvent::read(stream, definition)?, + ) + } + GameEventType::ItemPickup => { + GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?) + } + GameEventType::DuelStatus => { + GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?) + } + GameEventType::FishNotice => { + GameEvent::FishNotice( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::FishNoticeArm => { + GameEvent::FishNoticeArm( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::SlapNotice => { + GameEvent::SlapNotice( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::ThrowableHit => { + GameEvent::ThrowableHit( + Box::new(::read(stream, definition)?), + ) + } + GameEventType::PumpkinLordSummoned => { + GameEvent::PumpkinLordSummoned( + PumpkinLordSummonedEvent::read(stream, definition)?, + ) + } + GameEventType::PumpkinLordKilled => { + GameEvent::PumpkinLordKilled( + PumpkinLordKilledEvent::read(stream, definition)?, + ) + } + GameEventType::MerasmusSummoned => { + GameEvent::MerasmusSummoned( + MerasmusSummonedEvent::read(stream, definition)?, + ) + } + GameEventType::MerasmusKilled => { + GameEvent::MerasmusKilled( + MerasmusKilledEvent::read(stream, definition)?, + ) + } + GameEventType::MerasmusEscapeWarning => { + GameEvent::MerasmusEscapeWarning( + MerasmusEscapeWarningEvent::read(stream, definition)?, + ) + } + GameEventType::MerasmusEscaped => { + GameEvent::MerasmusEscaped( + MerasmusEscapedEvent::read(stream, definition)?, + ) + } + GameEventType::EyeballBossSummoned => { + GameEvent::EyeballBossSummoned( + EyeballBossSummonedEvent::read(stream, definition)?, + ) + } + GameEventType::EyeballBossStunned => { + GameEvent::EyeballBossStunned( + EyeballBossStunnedEvent::read(stream, definition)?, + ) + } + GameEventType::EyeballBossKilled => { + GameEvent::EyeballBossKilled( + EyeballBossKilledEvent::read(stream, definition)?, + ) + } + GameEventType::EyeballBossKiller => { + GameEvent::EyeballBossKiller( + EyeballBossKillerEvent::read(stream, definition)?, + ) + } + GameEventType::EyeballBossEscapeImminent => { + GameEvent::EyeballBossEscapeImminent( + EyeballBossEscapeImminentEvent::read(stream, definition)?, + ) + } + GameEventType::EyeballBossEscaped => { + GameEvent::EyeballBossEscaped( + EyeballBossEscapedEvent::read(stream, definition)?, + ) + } + GameEventType::NpcHurt => { + GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?) + } + GameEventType::ControlPointTimerUpdated => { + GameEvent::ControlPointTimerUpdated( + ControlPointTimerUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHighFiveStart => { + GameEvent::PlayerHighFiveStart( + PlayerHighFiveStartEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHighFiveCancel => { + GameEvent::PlayerHighFiveCancel( + PlayerHighFiveCancelEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerHighFiveSuccess => { + GameEvent::PlayerHighFiveSuccess( + PlayerHighFiveSuccessEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerBonusPoints => { + GameEvent::PlayerBonusPoints( + PlayerBonusPointsEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerUpgraded => { + GameEvent::PlayerUpgraded( + PlayerUpgradedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerBuyback => { + GameEvent::PlayerBuyback( + PlayerBuybackEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerUsedPowerUpBottle => { + GameEvent::PlayerUsedPowerUpBottle( + PlayerUsedPowerUpBottleEvent::read(stream, definition)?, + ) + } + GameEventType::ChristmasGiftGrab => { + GameEvent::ChristmasGiftGrab( + ChristmasGiftGrabEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerKilledAchievementZone => { + GameEvent::PlayerKilledAchievementZone( + PlayerKilledAchievementZoneEvent::read(stream, definition)?, + ) + } + GameEventType::PartyUpdated => { + GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?) + } + GameEventType::PartyPrefChanged => { + GameEvent::PartyPrefChanged( + PartyPrefChangedEvent::read(stream, definition)?, + ) + } + GameEventType::PartyCriteriaChanged => { + GameEvent::PartyCriteriaChanged( + PartyCriteriaChangedEvent::read(stream, definition)?, + ) + } + GameEventType::PartyInvitesChanged => { + GameEvent::PartyInvitesChanged( + PartyInvitesChangedEvent::read(stream, definition)?, + ) + } + GameEventType::PartyQueueStateChanged => { + GameEvent::PartyQueueStateChanged( + PartyQueueStateChangedEvent::read(stream, definition)?, + ) + } + GameEventType::PartyChat => { + GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?) + } + GameEventType::PartyMemberJoin => { + GameEvent::PartyMemberJoin( + PartyMemberJoinEvent::read(stream, definition)?, + ) + } + GameEventType::PartyMemberLeave => { + GameEvent::PartyMemberLeave( + PartyMemberLeaveEvent::read(stream, definition)?, + ) + } + GameEventType::MatchInvitesUpdated => { + GameEvent::MatchInvitesUpdated( + MatchInvitesUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::LobbyUpdated => { + GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?) + } + GameEventType::MvmMissionUpdate => { + GameEvent::MvmMissionUpdate( + MvmMissionUpdateEvent::read(stream, definition)?, + ) + } + GameEventType::RecalculateHolidays => { + GameEvent::RecalculateHolidays( + RecalculateHolidaysEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerCurrencyChanged => { + GameEvent::PlayerCurrencyChanged( + PlayerCurrencyChangedEvent::read(stream, definition)?, + ) + } + GameEventType::DoomsdayRocketOpen => { + GameEvent::DoomsdayRocketOpen( + DoomsdayRocketOpenEvent::read(stream, definition)?, + ) + } + GameEventType::RemoveNemesisRelationships => { + GameEvent::RemoveNemesisRelationships( + RemoveNemesisRelationshipsEvent::read(stream, definition)?, + ) + } + GameEventType::MvmCreditBonusWave => { + GameEvent::MvmCreditBonusWave( + MvmCreditBonusWaveEvent::read(stream, definition)?, + ) + } + GameEventType::MvmCreditBonusAll => { + GameEvent::MvmCreditBonusAll( + MvmCreditBonusAllEvent::read(stream, definition)?, + ) + } + GameEventType::MvmCreditBonusAllAdvanced => { + GameEvent::MvmCreditBonusAllAdvanced( + MvmCreditBonusAllAdvancedEvent::read(stream, definition)?, + ) + } + GameEventType::MvmQuickSentryUpgrade => { + GameEvent::MvmQuickSentryUpgrade( + MvmQuickSentryUpgradeEvent::read(stream, definition)?, + ) + } + GameEventType::MvmTankDestroyedByPlayers => { + GameEvent::MvmTankDestroyedByPlayers( + MvmTankDestroyedByPlayersEvent::read(stream, definition)?, + ) + } + GameEventType::MvmKillRobotDeliveringBomb => { + GameEvent::MvmKillRobotDeliveringBomb( + MvmKillRobotDeliveringBombEvent::read(stream, definition)?, + ) + } + GameEventType::MvmPickupCurrency => { + GameEvent::MvmPickupCurrency( + MvmPickupCurrencyEvent::read(stream, definition)?, + ) + } + GameEventType::MvmBombCarrierKilled => { + GameEvent::MvmBombCarrierKilled( + MvmBombCarrierKilledEvent::read(stream, definition)?, + ) + } + GameEventType::MvmSentryBusterDetonate => { + GameEvent::MvmSentryBusterDetonate( + MvmSentryBusterDetonateEvent::read(stream, definition)?, + ) + } + GameEventType::MvmScoutMarkedForDeath => { + GameEvent::MvmScoutMarkedForDeath( + MvmScoutMarkedForDeathEvent::read(stream, definition)?, + ) + } + GameEventType::MvmMedicPowerUpShared => { + GameEvent::MvmMedicPowerUpShared( + MvmMedicPowerUpSharedEvent::read(stream, definition)?, + ) + } + GameEventType::MvmBeginWave => { + GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?) + } + GameEventType::MvmWaveComplete => { + GameEvent::MvmWaveComplete( + MvmWaveCompleteEvent::read(stream, definition)?, + ) + } + GameEventType::MvmMissionComplete => { + GameEvent::MvmMissionComplete( + MvmMissionCompleteEvent::read(stream, definition)?, + ) + } + GameEventType::MvmBombResetByPlayer => { + GameEvent::MvmBombResetByPlayer( + MvmBombResetByPlayerEvent::read(stream, definition)?, + ) + } + GameEventType::MvmBombAlarmTriggered => { + GameEvent::MvmBombAlarmTriggered( + MvmBombAlarmTriggeredEvent::read(stream, definition)?, + ) + } + GameEventType::MvmBombDeployResetByPlayer => { + GameEvent::MvmBombDeployResetByPlayer( + MvmBombDeployResetByPlayerEvent::read(stream, definition)?, + ) + } + GameEventType::MvmWaveFailed => { + GameEvent::MvmWaveFailed( + MvmWaveFailedEvent::read(stream, definition)?, + ) + } + GameEventType::MvmResetStats => { + GameEvent::MvmResetStats( + MvmResetStatsEvent::read(stream, definition)?, + ) + } + GameEventType::DamageResisted => { + GameEvent::DamageResisted( + DamageResistedEvent::read(stream, definition)?, + ) + } + GameEventType::RevivePlayerNotify => { + GameEvent::RevivePlayerNotify( + RevivePlayerNotifyEvent::read(stream, definition)?, + ) + } + GameEventType::RevivePlayerStopped => { + GameEvent::RevivePlayerStopped( + RevivePlayerStoppedEvent::read(stream, definition)?, + ) + } + GameEventType::RevivePlayerComplete => { + GameEvent::RevivePlayerComplete( + RevivePlayerCompleteEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerTurnedToGhost => { + GameEvent::PlayerTurnedToGhost( + PlayerTurnedToGhostEvent::read(stream, definition)?, + ) + } + GameEventType::MedigunShieldBlockedDamage => { + GameEvent::MedigunShieldBlockedDamage( + MedigunShieldBlockedDamageEvent::read(stream, definition)?, + ) + } + GameEventType::MvmAdvWaveCompleteNoGates => { + GameEvent::MvmAdvWaveCompleteNoGates( + MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?, + ) + } + GameEventType::MvmSniperHeadshotCurrency => { + GameEvent::MvmSniperHeadshotCurrency( + MvmSniperHeadshotCurrencyEvent::read(stream, definition)?, + ) + } + GameEventType::MvmMannhattanPit => { + GameEvent::MvmMannhattanPit( + MvmMannhattanPitEvent::read(stream, definition)?, + ) + } + GameEventType::FlagCarriedInDetectionZone => { + GameEvent::FlagCarriedInDetectionZone( + FlagCarriedInDetectionZoneEvent::read(stream, definition)?, + ) + } + GameEventType::MvmAdvWaveKilledStunRadio => { + GameEvent::MvmAdvWaveKilledStunRadio( + MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerDirectHitStun => { + GameEvent::PlayerDirectHitStun( + PlayerDirectHitStunEvent::read(stream, definition)?, + ) + } + GameEventType::MvmSentryBusterKilled => { + GameEvent::MvmSentryBusterKilled( + MvmSentryBusterKilledEvent::read(stream, definition)?, + ) + } + GameEventType::UpgradesFileChanged => { + GameEvent::UpgradesFileChanged( + UpgradesFileChangedEvent::read(stream, definition)?, + ) + } + GameEventType::RdTeamPointsChanged => { + GameEvent::RdTeamPointsChanged( + RdTeamPointsChangedEvent::read(stream, definition)?, + ) + } + GameEventType::RdRulesStateChanged => { + GameEvent::RdRulesStateChanged( + RdRulesStateChangedEvent::read(stream, definition)?, + ) + } + GameEventType::RdRobotKilled => { + GameEvent::RdRobotKilled( + RdRobotKilledEvent::read(stream, definition)?, + ) + } + GameEventType::RdRobotImpact => { + GameEvent::RdRobotImpact( + RdRobotImpactEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayPreRoundTimeLeft => { + GameEvent::TeamPlayPreRoundTimeLeft( + TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?, + ) + } + GameEventType::ParachuteDeploy => { + GameEvent::ParachuteDeploy( + ParachuteDeployEvent::read(stream, definition)?, + ) + } + GameEventType::ParachuteHolster => { + GameEvent::ParachuteHolster( + ParachuteHolsterEvent::read(stream, definition)?, + ) + } + GameEventType::KillRefillsMeter => { + GameEvent::KillRefillsMeter( + KillRefillsMeterEvent::read(stream, definition)?, + ) + } + GameEventType::RpsTauntEvent => { + GameEvent::RpsTauntEvent( + RpsTauntEventEvent::read(stream, definition)?, + ) + } + GameEventType::CongaKill => { + GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?) + } + GameEventType::PlayerInitialSpawn => { + GameEvent::PlayerInitialSpawn( + PlayerInitialSpawnEvent::read(stream, definition)?, + ) + } + GameEventType::CompetitiveVictory => { + GameEvent::CompetitiveVictory( + CompetitiveVictoryEvent::read(stream, definition)?, + ) + } + GameEventType::CompetitiveStatsUpdate => { + GameEvent::CompetitiveStatsUpdate( + CompetitiveStatsUpdateEvent::read(stream, definition)?, + ) + } + GameEventType::MiniGameWin => { + GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?) + } + GameEventType::SentryOnGoActive => { + GameEvent::SentryOnGoActive( + SentryOnGoActiveEvent::read(stream, definition)?, + ) + } + GameEventType::DuckXpLevelUp => { + GameEvent::DuckXpLevelUp( + DuckXpLevelUpEvent::read(stream, definition)?, + ) + } + GameEventType::QuestLogOpened => { + GameEvent::QuestLogOpened( + QuestLogOpenedEvent::read(stream, definition)?, + ) + } + GameEventType::SchemaUpdated => { + GameEvent::SchemaUpdated( + SchemaUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::LocalPlayerPickupWeapon => { + GameEvent::LocalPlayerPickupWeapon( + LocalPlayerPickupWeaponEvent::read(stream, definition)?, + ) + } + GameEventType::RdPlayerScorePoints => { + GameEvent::RdPlayerScorePoints( + RdPlayerScorePointsEvent::read(stream, definition)?, + ) + } + GameEventType::DemomanDetStickies => { + GameEvent::DemomanDetStickies( + DemomanDetStickiesEvent::read(stream, definition)?, + ) + } + GameEventType::QuestObjectiveCompleted => { + GameEvent::QuestObjectiveCompleted( + QuestObjectiveCompletedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerScoreChanged => { + GameEvent::PlayerScoreChanged( + PlayerScoreChangedEvent::read(stream, definition)?, + ) + } + GameEventType::KilledCappingPlayer => { + GameEvent::KilledCappingPlayer( + KilledCappingPlayerEvent::read(stream, definition)?, + ) + } + GameEventType::EnvironmentalDeath => { + GameEvent::EnvironmentalDeath( + EnvironmentalDeathEvent::read(stream, definition)?, + ) + } + GameEventType::ProjectileDirectHit => { + GameEvent::ProjectileDirectHit( + ProjectileDirectHitEvent::read(stream, definition)?, + ) + } + GameEventType::PassGet => { + GameEvent::PassGet(PassGetEvent::read(stream, definition)?) + } + GameEventType::PassScore => { + GameEvent::PassScore(PassScoreEvent::read(stream, definition)?) + } + GameEventType::PassFree => { + GameEvent::PassFree(PassFreeEvent::read(stream, definition)?) + } + GameEventType::PassPassCaught => { + GameEvent::PassPassCaught( + PassPassCaughtEvent::read(stream, definition)?, + ) + } + GameEventType::PassBallStolen => { + GameEvent::PassBallStolen( + PassBallStolenEvent::read(stream, definition)?, + ) + } + GameEventType::PassBallBlocked => { + GameEvent::PassBallBlocked( + PassBallBlockedEvent::read(stream, definition)?, + ) + } + GameEventType::DamagePrevented => { + GameEvent::DamagePrevented( + DamagePreventedEvent::read(stream, definition)?, + ) + } + GameEventType::HalloweenBossKilled => { + GameEvent::HalloweenBossKilled( + HalloweenBossKilledEvent::read(stream, definition)?, + ) + } + GameEventType::EscapedLootIsland => { + GameEvent::EscapedLootIsland( + EscapedLootIslandEvent::read(stream, definition)?, + ) + } + GameEventType::TaggedPlayerAsIt => { + GameEvent::TaggedPlayerAsIt( + TaggedPlayerAsItEvent::read(stream, definition)?, + ) + } + GameEventType::MerasmusStunned => { + GameEvent::MerasmusStunned( + MerasmusStunnedEvent::read(stream, definition)?, + ) + } + GameEventType::MerasmusPropFound => { + GameEvent::MerasmusPropFound( + MerasmusPropFoundEvent::read(stream, definition)?, + ) + } + GameEventType::HalloweenSkeletonKilled => { + GameEvent::HalloweenSkeletonKilled( + HalloweenSkeletonKilledEvent::read(stream, definition)?, + ) + } + GameEventType::SkeletonKilledQuest => { + GameEvent::SkeletonKilledQuest( + SkeletonKilledQuestEvent::read(stream, definition)?, + ) + } + GameEventType::SkeletonKingKilledQuest => { + GameEvent::SkeletonKingKilledQuest( + SkeletonKingKilledQuestEvent::read(stream, definition)?, + ) + } + GameEventType::EscapeHell => { + GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) + } + GameEventType::CrossSpectralBridge => { + GameEvent::CrossSpectralBridge( + CrossSpectralBridgeEvent::read(stream, definition)?, + ) + } + GameEventType::MiniGameWon => { + GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?) + } + GameEventType::RespawnGhost => { + GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?) + } + GameEventType::KillInHell => { + GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?) + } + GameEventType::HalloweenDuckCollected => { + GameEvent::HalloweenDuckCollected( + HalloweenDuckCollectedEvent::read(stream, definition)?, + ) + } + GameEventType::SpecialScore => { + GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?) + } + GameEventType::TeamLeaderKilled => { + GameEvent::TeamLeaderKilled( + TeamLeaderKilledEvent::read(stream, definition)?, + ) + } + GameEventType::HalloweenSoulCollected => { + GameEvent::HalloweenSoulCollected( + HalloweenSoulCollectedEvent::read(stream, definition)?, + ) + } + GameEventType::RecalculateTruce => { + GameEvent::RecalculateTruce( + RecalculateTruceEvent::read(stream, definition)?, + ) + } + GameEventType::DeadRingerCheatDeath => { + GameEvent::DeadRingerCheatDeath( + DeadRingerCheatDeathEvent::read(stream, definition)?, + ) + } + GameEventType::CrossbowHeal => { + GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?) + } + GameEventType::DamageMitigated => { + GameEvent::DamageMitigated( + DamageMitigatedEvent::read(stream, definition)?, + ) + } + GameEventType::PayloadPushed => { + GameEvent::PayloadPushed( + PayloadPushedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerAbandonedMatch => { + GameEvent::PlayerAbandonedMatch( + PlayerAbandonedMatchEvent::read(stream, definition)?, + ) + } + GameEventType::ClDrawline => { + GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?) + } + GameEventType::RestartTimerTime => { + GameEvent::RestartTimerTime( + RestartTimerTimeEvent::read(stream, definition)?, + ) + } + GameEventType::WinLimitChanged => { + GameEvent::WinLimitChanged( + WinLimitChangedEvent::read(stream, definition)?, + ) + } + GameEventType::WinPanelShowScores => { + GameEvent::WinPanelShowScores( + WinPanelShowScoresEvent::read(stream, definition)?, + ) + } + GameEventType::TopStreamsRequestFinished => { + GameEvent::TopStreamsRequestFinished( + TopStreamsRequestFinishedEvent::read(stream, definition)?, + ) + } + GameEventType::CompetitiveStateChanged => { + GameEvent::CompetitiveStateChanged( + CompetitiveStateChangedEvent::read(stream, definition)?, + ) + } + GameEventType::GlobalWarDataUpdated => { + GameEvent::GlobalWarDataUpdated( + GlobalWarDataUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::StopWatchChanged => { + GameEvent::StopWatchChanged( + StopWatchChangedEvent::read(stream, definition)?, + ) + } + GameEventType::DsStop => { + GameEvent::DsStop(DsStopEvent::read(stream, definition)?) + } + GameEventType::DsScreenshot => { + GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?) + } + GameEventType::ShowMatchSummary => { + GameEvent::ShowMatchSummary( + ShowMatchSummaryEvent::read(stream, definition)?, + ) + } + GameEventType::ExperienceChanged => { + GameEvent::ExperienceChanged( + ExperienceChangedEvent::read(stream, definition)?, + ) + } + GameEventType::BeginXpLerp => { + GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?) + } + GameEventType::MatchmakerStatsUpdated => { + GameEvent::MatchmakerStatsUpdated( + MatchmakerStatsUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::RematchVotePeriodOver => { + GameEvent::RematchVotePeriodOver( + RematchVotePeriodOverEvent::read(stream, definition)?, + ) + } + GameEventType::RematchFailedToCreate => { + GameEvent::RematchFailedToCreate( + RematchFailedToCreateEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerRematchChange => { + GameEvent::PlayerRematchChange( + PlayerRematchChangeEvent::read(stream, definition)?, + ) + } + GameEventType::PingUpdated => { + GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?) + } + GameEventType::MMStatsUpdated => { + GameEvent::MMStatsUpdated( + MMStatsUpdatedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerNextMapVoteChange => { + GameEvent::PlayerNextMapVoteChange( + PlayerNextMapVoteChangeEvent::read(stream, definition)?, + ) + } + GameEventType::VoteMapsChanged => { + GameEvent::VoteMapsChanged( + VoteMapsChangedEvent::read(stream, definition)?, + ) + } + GameEventType::ProtoDefChanged => { + GameEvent::ProtoDefChanged( + ProtoDefChangedEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerDomination => { + GameEvent::PlayerDomination( + PlayerDominationEvent::read(stream, definition)?, + ) + } + GameEventType::PlayerRocketPackPushed => { + GameEvent::PlayerRocketPackPushed( + PlayerRocketPackPushedEvent::read(stream, definition)?, + ) + } + GameEventType::QuestRequest => { + GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?) + } + GameEventType::QuestResponse => { + GameEvent::QuestResponse( + QuestResponseEvent::read(stream, definition)?, + ) + } + GameEventType::QuestProgress => { + GameEvent::QuestProgress( + QuestProgressEvent::read(stream, definition)?, + ) + } + GameEventType::ProjectileRemoved => { + GameEvent::ProjectileRemoved( + ProjectileRemovedEvent::read(stream, definition)?, + ) + } + GameEventType::QuestMapDataChanged => { + GameEvent::QuestMapDataChanged( + QuestMapDataChangedEvent::read(stream, definition)?, + ) + } + GameEventType::GasDousedPlayerIgnited => { + GameEvent::GasDousedPlayerIgnited( + GasDousedPlayerIgnitedEvent::read(stream, definition)?, + ) + } + GameEventType::QuestTurnInState => { + GameEvent::QuestTurnInState( + QuestTurnInStateEvent::read(stream, definition)?, + ) + } + GameEventType::ItemsAcknowledged => { + GameEvent::ItemsAcknowledged( + ItemsAcknowledgedEvent::read(stream, definition)?, + ) + } + GameEventType::CapperKilled => { + GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?) + } + GameEventType::MainMenuStabilized => { + GameEvent::MainMenuStabilized( + MainMenuStabilizedEvent::read(stream, definition)?, + ) + } + GameEventType::WorldStatusChanged => { + GameEvent::WorldStatusChanged( + WorldStatusChangedEvent::read(stream, definition)?, + ) + } + GameEventType::HLTVStatus => { + GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?) + } + GameEventType::HLTVCameraman => { + GameEvent::HLTVCameraman( + HLTVCameramanEvent::read(stream, definition)?, + ) + } + GameEventType::HLTVRankCamera => { + GameEvent::HLTVRankCamera( + HLTVRankCameraEvent::read(stream, definition)?, + ) + } + GameEventType::HLTVRankEntity => { + GameEvent::HLTVRankEntity( + HLTVRankEntityEvent::read(stream, definition)?, + ) + } + GameEventType::HLTVFixed => { + GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?) + } + GameEventType::HLTVChase => { + GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?) + } + GameEventType::HLTVMessage => { + GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?) + } + GameEventType::HLTVTitle => { + GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?) + } + GameEventType::HLTVChat => { + GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?) + } + GameEventType::ReplayStartRecord => { + GameEvent::ReplayStartRecord( + ReplayStartRecordEvent::read(stream, definition)?, + ) + } + GameEventType::ReplaySessionInfo => { + GameEvent::ReplaySessionInfo( + ReplaySessionInfoEvent::read(stream, definition)?, + ) + } + GameEventType::ReplayEndRecord => { + GameEvent::ReplayEndRecord( + ReplayEndRecordEvent::read(stream, definition)?, + ) + } + GameEventType::ReplayReplaysAvailable => { + GameEvent::ReplayReplaysAvailable( + ReplayReplaysAvailableEvent::read(stream, definition)?, + ) + } + GameEventType::ReplayServerError => { + GameEvent::ReplayServerError( + ReplayServerErrorEvent::read(stream, definition)?, + ) + } + GameEventType::Unknown(_) => { + GameEvent::Unknown(RawGameEvent::read(stream, definition)?) + } + }, + ) + } + pub fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + match &self { + GameEvent::ServerSpawn(event) => event.write(stream, definition), + GameEvent::ServerChangeLevelFailed(event) => event.write(stream, definition), + GameEvent::ServerShutdown(event) => event.write(stream, definition), + GameEvent::ServerCvar(event) => event.write(stream, definition), + GameEvent::ServerMessage(event) => event.write(stream, definition), + GameEvent::ServerAddBan(event) => event.write(stream, definition), + GameEvent::ServerRemoveBan(event) => event.write(stream, definition), + GameEvent::PlayerConnect(event) => event.write(stream, definition), + GameEvent::PlayerConnectClient(event) => event.write(stream, definition), + GameEvent::PlayerInfo(event) => event.write(stream, definition), + GameEvent::PlayerDisconnect(event) => event.write(stream, definition), + GameEvent::PlayerActivate(event) => event.write(stream, definition), + GameEvent::PlayerSay(event) => event.write(stream, definition), + GameEvent::ClientDisconnect(event) => event.write(stream, definition), + GameEvent::ClientBeginConnect(event) => event.write(stream, definition), + GameEvent::ClientConnected(event) => event.write(stream, definition), + GameEvent::ClientFullConnect(event) => event.write(stream, definition), + GameEvent::HostQuit(event) => event.write(stream, definition), + GameEvent::TeamInfo(event) => event.write(stream, definition), + GameEvent::TeamScore(event) => event.write(stream, definition), + GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream, definition), + GameEvent::PlayerTeam(event) => event.write(stream, definition), + GameEvent::PlayerClass(event) => event.write(stream, definition), + GameEvent::PlayerDeath(event) => event.write(stream, definition), + GameEvent::PlayerHurt(event) => event.write(stream, definition), + GameEvent::PlayerChat(event) => event.write(stream, definition), + GameEvent::PlayerScore(event) => event.write(stream, definition), + GameEvent::PlayerSpawn(event) => event.write(stream, definition), + GameEvent::PlayerShoot(event) => event.write(stream, definition), + GameEvent::PlayerUse(event) => event.write(stream, definition), + GameEvent::PlayerChangeName(event) => event.write(stream, definition), + GameEvent::PlayerHintMessage(event) => event.write(stream, definition), + GameEvent::BasePlayerTeleported(event) => event.write(stream, definition), + GameEvent::GameInit(event) => event.write(stream, definition), + GameEvent::GameNewMap(event) => event.write(stream, definition), + GameEvent::GameStart(event) => event.write(stream, definition), + GameEvent::GameEnd(event) => event.write(stream, definition), + GameEvent::RoundStart(event) => event.write(stream, definition), + GameEvent::RoundEnd(event) => event.write(stream, definition), + GameEvent::GameMessage(event) => event.write(stream, definition), + GameEvent::BreakBreakable(event) => event.write(stream, definition), + GameEvent::BreakProp(event) => event.write(stream, definition), + GameEvent::EntityKilled(event) => event.write(stream, definition), + GameEvent::BonusUpdated(event) => event.write(stream, definition), + GameEvent::AchievementEvent(event) => event.write(stream, definition), + GameEvent::AchievementIncrement(event) => event.write(stream, definition), + GameEvent::PhysgunPickup(event) => event.write(stream, definition), + GameEvent::FlareIgniteNpc(event) => event.write(stream, definition), + GameEvent::HelicopterGrenadePuntMiss(event) => { + event.write(stream, definition) + } + GameEvent::UserDataDownloaded(event) => event.write(stream, definition), + GameEvent::RagdollDissolved(event) => event.write(stream, definition), + GameEvent::HLTVChangedMode(event) => event.write(stream, definition), + GameEvent::HLTVChangedTarget(event) => event.write(stream, definition), + GameEvent::VoteEnded(event) => event.write(stream, definition), + GameEvent::VoteStarted(event) => event.write(stream, definition), + GameEvent::VoteChanged(event) => event.write(stream, definition), + GameEvent::VotePassed(event) => event.write(stream, definition), + GameEvent::VoteFailed(event) => event.write(stream, definition), + GameEvent::VoteCast(event) => event.write(stream, definition), + GameEvent::VoteOptions(event) => event.write(stream, definition), + GameEvent::ReplaySaved(event) => event.write(stream, definition), + GameEvent::EnteredPerformanceMode(event) => event.write(stream, definition), + GameEvent::BrowseReplays(event) => event.write(stream, definition), + GameEvent::ReplayYoutubeStats(event) => event.write(stream, definition), + GameEvent::InventoryUpdated(event) => event.write(stream, definition), + GameEvent::CartUpdated(event) => event.write(stream, definition), + GameEvent::StorePriceSheetUpdated(event) => event.write(stream, definition), + GameEvent::EconInventoryConnected(event) => event.write(stream, definition), + GameEvent::ItemSchemaInitialized(event) => event.write(stream, definition), + GameEvent::GcNewSession(event) => event.write(stream, definition), + GameEvent::GcLostSession(event) => event.write(stream, definition), + GameEvent::IntroFinish(event) => event.write(stream, definition), + GameEvent::IntroNextCamera(event) => event.write(stream, definition), + GameEvent::PlayerChangeClass(event) => event.write(stream, definition), + GameEvent::TfMapTimeRemaining(event) => event.write(stream, definition), + GameEvent::TfGameOver(event) => event.write(stream, definition), + GameEvent::CtfFlagCaptured(event) => event.write(stream, definition), + GameEvent::ControlPointInitialized(event) => event.write(stream, definition), + GameEvent::ControlPointUpdateImages(event) => event.write(stream, definition), + GameEvent::ControlPointUpdateLayout(event) => event.write(stream, definition), + GameEvent::ControlPointUpdateCapping(event) => { + event.write(stream, definition) + } + GameEvent::ControlPointUpdateOwner(event) => event.write(stream, definition), + GameEvent::ControlPointStartTouch(event) => event.write(stream, definition), + GameEvent::ControlPointEndTouch(event) => event.write(stream, definition), + GameEvent::ControlPointPulseElement(event) => event.write(stream, definition), + GameEvent::ControlPointFakeCapture(event) => event.write(stream, definition), + GameEvent::ControlPointFakeCaptureMultiplier(event) => { + event.write(stream, definition) + } + GameEvent::TeamPlayRoundSelected(event) => event.write(stream, definition), + GameEvent::TeamPlayRoundStart(event) => event.write(stream, definition), + GameEvent::TeamPlayRoundActive(event) => event.write(stream, definition), + GameEvent::TeamPlayWaitingBegins(event) => event.write(stream, definition), + GameEvent::TeamPlayWaitingEnds(event) => event.write(stream, definition), + GameEvent::TeamPlayWaitingAboutToEnd(event) => { + event.write(stream, definition) + } + GameEvent::TeamPlayRestartRound(event) => event.write(stream, definition), + GameEvent::TeamPlayReadyRestart(event) => event.write(stream, definition), + GameEvent::TeamPlayRoundRestartSeconds(event) => { + event.write(stream, definition) + } + GameEvent::TeamPlayTeamReady(event) => event.write(stream, definition), + GameEvent::TeamPlayRoundWin(event) => event.write(stream, definition), + GameEvent::TeamPlayUpdateTimer(event) => event.write(stream, definition), + GameEvent::TeamPlayRoundStalemate(event) => event.write(stream, definition), + GameEvent::TeamPlayOvertimeBegin(event) => event.write(stream, definition), + GameEvent::TeamPlayOvertimeEnd(event) => event.write(stream, definition), + GameEvent::TeamPlaySuddenDeathBegin(event) => event.write(stream, definition), + GameEvent::TeamPlaySuddenDeathEnd(event) => event.write(stream, definition), + GameEvent::TeamPlayGameOver(event) => event.write(stream, definition), + GameEvent::TeamPlayMapTimeRemaining(event) => event.write(stream, definition), + GameEvent::TeamPlayTimerFlash(event) => event.write(stream, definition), + GameEvent::TeamPlayTimerTimeAdded(event) => event.write(stream, definition), + GameEvent::TeamPlayPointStartCapture(event) => { + event.write(stream, definition) + } + GameEvent::TeamPlayPointCaptured(event) => event.write(stream, definition), + GameEvent::TeamPlayPointLocked(event) => event.write(stream, definition), + GameEvent::TeamPlayPointUnlocked(event) => event.write(stream, definition), + GameEvent::TeamPlayCaptureBroken(event) => event.write(stream, definition), + GameEvent::TeamPlayCaptureBlocked(event) => event.write(stream, definition), + GameEvent::TeamPlayFlagEvent(event) => event.write(stream, definition), + GameEvent::TeamPlayWinPanel(event) => event.write(stream, definition), + GameEvent::TeamPlayTeamBalancedPlayer(event) => { + event.write(stream, definition) + } + GameEvent::TeamPlaySetupFinished(event) => event.write(stream, definition), + GameEvent::TeamPlayAlert(event) => event.write(stream, definition), + GameEvent::TrainingComplete(event) => event.write(stream, definition), + GameEvent::ShowFreezePanel(event) => event.write(stream, definition), + GameEvent::HideFreezePanel(event) => event.write(stream, definition), + GameEvent::FreezeCamStarted(event) => event.write(stream, definition), + GameEvent::LocalPlayerChangeTeam(event) => event.write(stream, definition), + GameEvent::LocalPlayerScoreChanged(event) => event.write(stream, definition), + GameEvent::LocalPlayerChangeClass(event) => event.write(stream, definition), + GameEvent::LocalPlayerRespawn(event) => event.write(stream, definition), + GameEvent::BuildingInfoChanged(event) => event.write(stream, definition), + GameEvent::LocalPlayerChangeDisguise(event) => { + event.write(stream, definition) + } + GameEvent::PlayerAccountChanged(event) => event.write(stream, definition), + GameEvent::SpyPdaReset(event) => event.write(stream, definition), + GameEvent::FlagStatusUpdate(event) => event.write(stream, definition), + GameEvent::PlayerStatsUpdated(event) => event.write(stream, definition), + GameEvent::PlayingCommentary(event) => event.write(stream, definition), + GameEvent::PlayerChargeDeployed(event) => event.write(stream, definition), + GameEvent::PlayerBuiltObject(event) => event.write(stream, definition), + GameEvent::PlayerUpgradedObject(event) => event.write(stream, definition), + GameEvent::PlayerCarryObject(event) => event.write(stream, definition), + GameEvent::PlayerDropObject(event) => event.write(stream, definition), + GameEvent::ObjectRemoved(event) => event.write(stream, definition), + GameEvent::ObjectDestroyed(event) => event.write(stream, definition), + GameEvent::ObjectDetonated(event) => event.write(stream, definition), + GameEvent::AchievementEarned(event) => event.write(stream, definition), + GameEvent::SpecTargetUpdated(event) => event.write(stream, definition), + GameEvent::TournamentStateUpdate(event) => event.write(stream, definition), + GameEvent::TournamentEnableCountdown(event) => { + event.write(stream, definition) + } + GameEvent::PlayerCalledForMedic(event) => event.write(stream, definition), + GameEvent::PlayerAskedForBall(event) => event.write(stream, definition), + GameEvent::LocalPlayerBecameObserver(event) => { + event.write(stream, definition) + } + GameEvent::PlayerIgnitedInv(event) => event.write(stream, definition), + GameEvent::PlayerIgnited(event) => event.write(stream, definition), + GameEvent::PlayerExtinguished(event) => event.write(stream, definition), + GameEvent::PlayerTeleported(event) => event.write(stream, definition), + GameEvent::PlayerHealedMedicCall(event) => event.write(stream, definition), + GameEvent::LocalPlayerChargeReady(event) => event.write(stream, definition), + GameEvent::LocalPlayerWindDown(event) => event.write(stream, definition), + GameEvent::PlayerInvulned(event) => event.write(stream, definition), + GameEvent::EscortSpeed(event) => event.write(stream, definition), + GameEvent::EscortProgress(event) => event.write(stream, definition), + GameEvent::EscortRecede(event) => event.write(stream, definition), + GameEvent::GameUIActivated(event) => event.write(stream, definition), + GameEvent::GameUIHidden(event) => event.write(stream, definition), + GameEvent::PlayerEscortScore(event) => event.write(stream, definition), + GameEvent::PlayerHealOnHit(event) => event.write(stream, definition), + GameEvent::PlayerStealSandvich(event) => event.write(stream, definition), + GameEvent::ShowClassLayout(event) => event.write(stream, definition), + GameEvent::ShowVsPanel(event) => event.write(stream, definition), + GameEvent::PlayerDamaged(event) => event.write(stream, definition), + GameEvent::ArenaPlayerNotification(event) => event.write(stream, definition), + GameEvent::ArenaMatchMaxStreak(event) => event.write(stream, definition), + GameEvent::ArenaRoundStart(event) => event.write(stream, definition), + GameEvent::ArenaWinPanel(event) => event.write(stream, definition), + GameEvent::PveWinPanel(event) => event.write(stream, definition), + GameEvent::AirDash(event) => event.write(stream, definition), + GameEvent::Landed(event) => event.write(stream, definition), + GameEvent::PlayerDamageDodged(event) => event.write(stream, definition), + GameEvent::PlayerStunned(event) => event.write(stream, definition), + GameEvent::ScoutGrandSlam(event) => event.write(stream, definition), + GameEvent::ScoutSlamdollLanded(event) => event.write(stream, definition), + GameEvent::ArrowImpact(event) => event.write(stream, definition), + GameEvent::PlayerJarated(event) => event.write(stream, definition), + GameEvent::PlayerJaratedFade(event) => event.write(stream, definition), + GameEvent::PlayerShieldBlocked(event) => event.write(stream, definition), + GameEvent::PlayerPinned(event) => event.write(stream, definition), + GameEvent::PlayerHealedByMedic(event) => event.write(stream, definition), + GameEvent::PlayerSappedObject(event) => event.write(stream, definition), + GameEvent::ItemFound(event) => event.write(stream, definition), + GameEvent::ShowAnnotation(event) => event.write(stream, definition), + GameEvent::HideAnnotation(event) => event.write(stream, definition), + GameEvent::PostInventoryApplication(event) => event.write(stream, definition), + GameEvent::ControlPointUnlockUpdated(event) => { + event.write(stream, definition) + } + GameEvent::DeployBuffBanner(event) => event.write(stream, definition), + GameEvent::PlayerBuff(event) => event.write(stream, definition), + GameEvent::MedicDeath(event) => event.write(stream, definition), + GameEvent::OvertimeNag(event) => event.write(stream, definition), + GameEvent::TeamsChanged(event) => event.write(stream, definition), + GameEvent::HalloweenPumpkinGrab(event) => event.write(stream, definition), + GameEvent::RocketJump(event) => event.write(stream, definition), + GameEvent::RocketJumpLanded(event) => event.write(stream, definition), + GameEvent::StickyJump(event) => event.write(stream, definition), + GameEvent::StickyJumpLanded(event) => event.write(stream, definition), + GameEvent::RocketPackLaunch(event) => event.write(stream, definition), + GameEvent::RocketPackLanded(event) => event.write(stream, definition), + GameEvent::MedicDefended(event) => event.write(stream, definition), + GameEvent::LocalPlayerHealed(event) => event.write(stream, definition), + GameEvent::PlayerDestroyedPipeBomb(event) => event.write(stream, definition), + GameEvent::ObjectDeflected(event) => event.write(stream, definition), + GameEvent::PlayerMvp(event) => event.write(stream, definition), + GameEvent::RaidSpawnMob(event) => event.write(stream, definition), + GameEvent::RaidSpawnSquad(event) => event.write(stream, definition), + GameEvent::NavBlocked(event) => event.write(stream, definition), + GameEvent::PathTrackPassed(event) => event.write(stream, definition), + GameEvent::NumCappersChanged(event) => event.write(stream, definition), + GameEvent::PlayerRegenerate(event) => event.write(stream, definition), + GameEvent::UpdateStatusItem(event) => event.write(stream, definition), + GameEvent::StatsResetRound(event) => event.write(stream, definition), + GameEvent::ScoreStatsAccumulatedUpdate(event) => { + event.write(stream, definition) + } + GameEvent::ScoreStatsAccumulatedReset(event) => { + event.write(stream, definition) + } + GameEvent::AchievementEarnedLocal(event) => event.write(stream, definition), + GameEvent::PlayerHealed(event) => event.write(stream, definition), + GameEvent::BuildingHealed(event) => event.write(stream, definition), + GameEvent::ItemPickup(event) => event.write(stream, definition), + GameEvent::DuelStatus(event) => event.write(stream, definition), + GameEvent::FishNotice(event) => event.write(stream, definition), + GameEvent::FishNoticeArm(event) => event.write(stream, definition), + GameEvent::SlapNotice(event) => event.write(stream, definition), + GameEvent::ThrowableHit(event) => event.write(stream, definition), + GameEvent::PumpkinLordSummoned(event) => event.write(stream, definition), + GameEvent::PumpkinLordKilled(event) => event.write(stream, definition), + GameEvent::MerasmusSummoned(event) => event.write(stream, definition), + GameEvent::MerasmusKilled(event) => event.write(stream, definition), + GameEvent::MerasmusEscapeWarning(event) => event.write(stream, definition), + GameEvent::MerasmusEscaped(event) => event.write(stream, definition), + GameEvent::EyeballBossSummoned(event) => event.write(stream, definition), + GameEvent::EyeballBossStunned(event) => event.write(stream, definition), + GameEvent::EyeballBossKilled(event) => event.write(stream, definition), + GameEvent::EyeballBossKiller(event) => event.write(stream, definition), + GameEvent::EyeballBossEscapeImminent(event) => { + event.write(stream, definition) + } + GameEvent::EyeballBossEscaped(event) => event.write(stream, definition), + GameEvent::NpcHurt(event) => event.write(stream, definition), + GameEvent::ControlPointTimerUpdated(event) => event.write(stream, definition), + GameEvent::PlayerHighFiveStart(event) => event.write(stream, definition), + GameEvent::PlayerHighFiveCancel(event) => event.write(stream, definition), + GameEvent::PlayerHighFiveSuccess(event) => event.write(stream, definition), + GameEvent::PlayerBonusPoints(event) => event.write(stream, definition), + GameEvent::PlayerUpgraded(event) => event.write(stream, definition), + GameEvent::PlayerBuyback(event) => event.write(stream, definition), + GameEvent::PlayerUsedPowerUpBottle(event) => event.write(stream, definition), + GameEvent::ChristmasGiftGrab(event) => event.write(stream, definition), + GameEvent::PlayerKilledAchievementZone(event) => { + event.write(stream, definition) + } + GameEvent::PartyUpdated(event) => event.write(stream, definition), + GameEvent::PartyPrefChanged(event) => event.write(stream, definition), + GameEvent::PartyCriteriaChanged(event) => event.write(stream, definition), + GameEvent::PartyInvitesChanged(event) => event.write(stream, definition), + GameEvent::PartyQueueStateChanged(event) => event.write(stream, definition), + GameEvent::PartyChat(event) => event.write(stream, definition), + GameEvent::PartyMemberJoin(event) => event.write(stream, definition), + GameEvent::PartyMemberLeave(event) => event.write(stream, definition), + GameEvent::MatchInvitesUpdated(event) => event.write(stream, definition), + GameEvent::LobbyUpdated(event) => event.write(stream, definition), + GameEvent::MvmMissionUpdate(event) => event.write(stream, definition), + GameEvent::RecalculateHolidays(event) => event.write(stream, definition), + GameEvent::PlayerCurrencyChanged(event) => event.write(stream, definition), + GameEvent::DoomsdayRocketOpen(event) => event.write(stream, definition), + GameEvent::RemoveNemesisRelationships(event) => { + event.write(stream, definition) + } + GameEvent::MvmCreditBonusWave(event) => event.write(stream, definition), + GameEvent::MvmCreditBonusAll(event) => event.write(stream, definition), + GameEvent::MvmCreditBonusAllAdvanced(event) => { + event.write(stream, definition) + } + GameEvent::MvmQuickSentryUpgrade(event) => event.write(stream, definition), + GameEvent::MvmTankDestroyedByPlayers(event) => { + event.write(stream, definition) + } + GameEvent::MvmKillRobotDeliveringBomb(event) => { + event.write(stream, definition) + } + GameEvent::MvmPickupCurrency(event) => event.write(stream, definition), + GameEvent::MvmBombCarrierKilled(event) => event.write(stream, definition), + GameEvent::MvmSentryBusterDetonate(event) => event.write(stream, definition), + GameEvent::MvmScoutMarkedForDeath(event) => event.write(stream, definition), + GameEvent::MvmMedicPowerUpShared(event) => event.write(stream, definition), + GameEvent::MvmBeginWave(event) => event.write(stream, definition), + GameEvent::MvmWaveComplete(event) => event.write(stream, definition), + GameEvent::MvmMissionComplete(event) => event.write(stream, definition), + GameEvent::MvmBombResetByPlayer(event) => event.write(stream, definition), + GameEvent::MvmBombAlarmTriggered(event) => event.write(stream, definition), + GameEvent::MvmBombDeployResetByPlayer(event) => { + event.write(stream, definition) + } + GameEvent::MvmWaveFailed(event) => event.write(stream, definition), + GameEvent::MvmResetStats(event) => event.write(stream, definition), + GameEvent::DamageResisted(event) => event.write(stream, definition), + GameEvent::RevivePlayerNotify(event) => event.write(stream, definition), + GameEvent::RevivePlayerStopped(event) => event.write(stream, definition), + GameEvent::RevivePlayerComplete(event) => event.write(stream, definition), + GameEvent::PlayerTurnedToGhost(event) => event.write(stream, definition), + GameEvent::MedigunShieldBlockedDamage(event) => { + event.write(stream, definition) + } + GameEvent::MvmAdvWaveCompleteNoGates(event) => { + event.write(stream, definition) + } + GameEvent::MvmSniperHeadshotCurrency(event) => { + event.write(stream, definition) + } + GameEvent::MvmMannhattanPit(event) => event.write(stream, definition), + GameEvent::FlagCarriedInDetectionZone(event) => { + event.write(stream, definition) + } + GameEvent::MvmAdvWaveKilledStunRadio(event) => { + event.write(stream, definition) + } + GameEvent::PlayerDirectHitStun(event) => event.write(stream, definition), + GameEvent::MvmSentryBusterKilled(event) => event.write(stream, definition), + GameEvent::UpgradesFileChanged(event) => event.write(stream, definition), + GameEvent::RdTeamPointsChanged(event) => event.write(stream, definition), + GameEvent::RdRulesStateChanged(event) => event.write(stream, definition), + GameEvent::RdRobotKilled(event) => event.write(stream, definition), + GameEvent::RdRobotImpact(event) => event.write(stream, definition), + GameEvent::TeamPlayPreRoundTimeLeft(event) => event.write(stream, definition), + GameEvent::ParachuteDeploy(event) => event.write(stream, definition), + GameEvent::ParachuteHolster(event) => event.write(stream, definition), + GameEvent::KillRefillsMeter(event) => event.write(stream, definition), + GameEvent::RpsTauntEvent(event) => event.write(stream, definition), + GameEvent::CongaKill(event) => event.write(stream, definition), + GameEvent::PlayerInitialSpawn(event) => event.write(stream, definition), + GameEvent::CompetitiveVictory(event) => event.write(stream, definition), + GameEvent::CompetitiveStatsUpdate(event) => event.write(stream, definition), + GameEvent::MiniGameWin(event) => event.write(stream, definition), + GameEvent::SentryOnGoActive(event) => event.write(stream, definition), + GameEvent::DuckXpLevelUp(event) => event.write(stream, definition), + GameEvent::QuestLogOpened(event) => event.write(stream, definition), + GameEvent::SchemaUpdated(event) => event.write(stream, definition), + GameEvent::LocalPlayerPickupWeapon(event) => event.write(stream, definition), + GameEvent::RdPlayerScorePoints(event) => event.write(stream, definition), + GameEvent::DemomanDetStickies(event) => event.write(stream, definition), + GameEvent::QuestObjectiveCompleted(event) => event.write(stream, definition), + GameEvent::PlayerScoreChanged(event) => event.write(stream, definition), + GameEvent::KilledCappingPlayer(event) => event.write(stream, definition), + GameEvent::EnvironmentalDeath(event) => event.write(stream, definition), + GameEvent::ProjectileDirectHit(event) => event.write(stream, definition), + GameEvent::PassGet(event) => event.write(stream, definition), + GameEvent::PassScore(event) => event.write(stream, definition), + GameEvent::PassFree(event) => event.write(stream, definition), + GameEvent::PassPassCaught(event) => event.write(stream, definition), + GameEvent::PassBallStolen(event) => event.write(stream, definition), + GameEvent::PassBallBlocked(event) => event.write(stream, definition), + GameEvent::DamagePrevented(event) => event.write(stream, definition), + GameEvent::HalloweenBossKilled(event) => event.write(stream, definition), + GameEvent::EscapedLootIsland(event) => event.write(stream, definition), + GameEvent::TaggedPlayerAsIt(event) => event.write(stream, definition), + GameEvent::MerasmusStunned(event) => event.write(stream, definition), + GameEvent::MerasmusPropFound(event) => event.write(stream, definition), + GameEvent::HalloweenSkeletonKilled(event) => event.write(stream, definition), + GameEvent::SkeletonKilledQuest(event) => event.write(stream, definition), + GameEvent::SkeletonKingKilledQuest(event) => event.write(stream, definition), + GameEvent::EscapeHell(event) => event.write(stream, definition), + GameEvent::CrossSpectralBridge(event) => event.write(stream, definition), + GameEvent::MiniGameWon(event) => event.write(stream, definition), + GameEvent::RespawnGhost(event) => event.write(stream, definition), + GameEvent::KillInHell(event) => event.write(stream, definition), + GameEvent::HalloweenDuckCollected(event) => event.write(stream, definition), + GameEvent::SpecialScore(event) => event.write(stream, definition), + GameEvent::TeamLeaderKilled(event) => event.write(stream, definition), + GameEvent::HalloweenSoulCollected(event) => event.write(stream, definition), + GameEvent::RecalculateTruce(event) => event.write(stream, definition), + GameEvent::DeadRingerCheatDeath(event) => event.write(stream, definition), + GameEvent::CrossbowHeal(event) => event.write(stream, definition), + GameEvent::DamageMitigated(event) => event.write(stream, definition), + GameEvent::PayloadPushed(event) => event.write(stream, definition), + GameEvent::PlayerAbandonedMatch(event) => event.write(stream, definition), + GameEvent::ClDrawline(event) => event.write(stream, definition), + GameEvent::RestartTimerTime(event) => event.write(stream, definition), + GameEvent::WinLimitChanged(event) => event.write(stream, definition), + GameEvent::WinPanelShowScores(event) => event.write(stream, definition), + GameEvent::TopStreamsRequestFinished(event) => { + event.write(stream, definition) + } + GameEvent::CompetitiveStateChanged(event) => event.write(stream, definition), + GameEvent::GlobalWarDataUpdated(event) => event.write(stream, definition), + GameEvent::StopWatchChanged(event) => event.write(stream, definition), + GameEvent::DsStop(event) => event.write(stream, definition), + GameEvent::DsScreenshot(event) => event.write(stream, definition), + GameEvent::ShowMatchSummary(event) => event.write(stream, definition), + GameEvent::ExperienceChanged(event) => event.write(stream, definition), + GameEvent::BeginXpLerp(event) => event.write(stream, definition), + GameEvent::MatchmakerStatsUpdated(event) => event.write(stream, definition), + GameEvent::RematchVotePeriodOver(event) => event.write(stream, definition), + GameEvent::RematchFailedToCreate(event) => event.write(stream, definition), + GameEvent::PlayerRematchChange(event) => event.write(stream, definition), + GameEvent::PingUpdated(event) => event.write(stream, definition), + GameEvent::MMStatsUpdated(event) => event.write(stream, definition), + GameEvent::PlayerNextMapVoteChange(event) => event.write(stream, definition), + GameEvent::VoteMapsChanged(event) => event.write(stream, definition), + GameEvent::ProtoDefChanged(event) => event.write(stream, definition), + GameEvent::PlayerDomination(event) => event.write(stream, definition), + GameEvent::PlayerRocketPackPushed(event) => event.write(stream, definition), + GameEvent::QuestRequest(event) => event.write(stream, definition), + GameEvent::QuestResponse(event) => event.write(stream, definition), + GameEvent::QuestProgress(event) => event.write(stream, definition), + GameEvent::ProjectileRemoved(event) => event.write(stream, definition), + GameEvent::QuestMapDataChanged(event) => event.write(stream, definition), + GameEvent::GasDousedPlayerIgnited(event) => event.write(stream, definition), + GameEvent::QuestTurnInState(event) => event.write(stream, definition), + GameEvent::ItemsAcknowledged(event) => event.write(stream, definition), + GameEvent::CapperKilled(event) => event.write(stream, definition), + GameEvent::MainMenuStabilized(event) => event.write(stream, definition), + GameEvent::WorldStatusChanged(event) => event.write(stream, definition), + GameEvent::HLTVStatus(event) => event.write(stream, definition), + GameEvent::HLTVCameraman(event) => event.write(stream, definition), + GameEvent::HLTVRankCamera(event) => event.write(stream, definition), + GameEvent::HLTVRankEntity(event) => event.write(stream, definition), + GameEvent::HLTVFixed(event) => event.write(stream, definition), + GameEvent::HLTVChase(event) => event.write(stream, definition), + GameEvent::HLTVMessage(event) => event.write(stream, definition), + GameEvent::HLTVTitle(event) => event.write(stream, definition), + GameEvent::HLTVChat(event) => event.write(stream, definition), + GameEvent::ReplayStartRecord(event) => event.write(stream, definition), + GameEvent::ReplaySessionInfo(event) => event.write(stream, definition), + GameEvent::ReplayEndRecord(event) => event.write(stream, definition), + GameEvent::ReplayReplaysAvailable(event) => event.write(stream, definition), + GameEvent::ReplayServerError(event) => event.write(stream, definition), + GameEvent::Unknown(raw) => Ok(raw.write(stream)?), + } + } + pub fn event_type(&self) -> GameEventType { + match &self { + GameEvent::ServerSpawn(_) => GameEventType::ServerSpawn, + GameEvent::ServerChangeLevelFailed(_) => { + GameEventType::ServerChangeLevelFailed } - GameEventType::PlayerConnect => { - GameEvent::PlayerConnect(PlayerConnectEvent::read(stream, definition)?) + GameEvent::ServerShutdown(_) => GameEventType::ServerShutdown, + GameEvent::ServerCvar(_) => GameEventType::ServerCvar, + GameEvent::ServerMessage(_) => GameEventType::ServerMessage, + GameEvent::ServerAddBan(_) => GameEventType::ServerAddBan, + GameEvent::ServerRemoveBan(_) => GameEventType::ServerRemoveBan, + GameEvent::PlayerConnect(_) => GameEventType::PlayerConnect, + GameEvent::PlayerConnectClient(_) => GameEventType::PlayerConnectClient, + GameEvent::PlayerInfo(_) => GameEventType::PlayerInfo, + GameEvent::PlayerDisconnect(_) => GameEventType::PlayerDisconnect, + GameEvent::PlayerActivate(_) => GameEventType::PlayerActivate, + GameEvent::PlayerSay(_) => GameEventType::PlayerSay, + GameEvent::ClientDisconnect(_) => GameEventType::ClientDisconnect, + GameEvent::ClientBeginConnect(_) => GameEventType::ClientBeginConnect, + GameEvent::ClientConnected(_) => GameEventType::ClientConnected, + GameEvent::ClientFullConnect(_) => GameEventType::ClientFullConnect, + GameEvent::HostQuit(_) => GameEventType::HostQuit, + GameEvent::TeamInfo(_) => GameEventType::TeamInfo, + GameEvent::TeamScore(_) => GameEventType::TeamScore, + GameEvent::TeamPlayBroadcastAudio(_) => GameEventType::TeamPlayBroadcastAudio, + GameEvent::PlayerTeam(_) => GameEventType::PlayerTeam, + GameEvent::PlayerClass(_) => GameEventType::PlayerClass, + GameEvent::PlayerDeath(_) => GameEventType::PlayerDeath, + GameEvent::PlayerHurt(_) => GameEventType::PlayerHurt, + GameEvent::PlayerChat(_) => GameEventType::PlayerChat, + GameEvent::PlayerScore(_) => GameEventType::PlayerScore, + GameEvent::PlayerSpawn(_) => GameEventType::PlayerSpawn, + GameEvent::PlayerShoot(_) => GameEventType::PlayerShoot, + GameEvent::PlayerUse(_) => GameEventType::PlayerUse, + GameEvent::PlayerChangeName(_) => GameEventType::PlayerChangeName, + GameEvent::PlayerHintMessage(_) => GameEventType::PlayerHintMessage, + GameEvent::BasePlayerTeleported(_) => GameEventType::BasePlayerTeleported, + GameEvent::GameInit(_) => GameEventType::GameInit, + GameEvent::GameNewMap(_) => GameEventType::GameNewMap, + GameEvent::GameStart(_) => GameEventType::GameStart, + GameEvent::GameEnd(_) => GameEventType::GameEnd, + GameEvent::RoundStart(_) => GameEventType::RoundStart, + GameEvent::RoundEnd(_) => GameEventType::RoundEnd, + GameEvent::GameMessage(_) => GameEventType::GameMessage, + GameEvent::BreakBreakable(_) => GameEventType::BreakBreakable, + GameEvent::BreakProp(_) => GameEventType::BreakProp, + GameEvent::EntityKilled(_) => GameEventType::EntityKilled, + GameEvent::BonusUpdated(_) => GameEventType::BonusUpdated, + GameEvent::AchievementEvent(_) => GameEventType::AchievementEvent, + GameEvent::AchievementIncrement(_) => GameEventType::AchievementIncrement, + GameEvent::PhysgunPickup(_) => GameEventType::PhysgunPickup, + GameEvent::FlareIgniteNpc(_) => GameEventType::FlareIgniteNpc, + GameEvent::HelicopterGrenadePuntMiss(_) => { + GameEventType::HelicopterGrenadePuntMiss } - GameEventType::PlayerConnectClient => { - GameEvent::PlayerConnectClient(PlayerConnectClientEvent::read(stream, definition)?) + GameEvent::UserDataDownloaded(_) => GameEventType::UserDataDownloaded, + GameEvent::RagdollDissolved(_) => GameEventType::RagdollDissolved, + GameEvent::HLTVChangedMode(_) => GameEventType::HLTVChangedMode, + GameEvent::HLTVChangedTarget(_) => GameEventType::HLTVChangedTarget, + GameEvent::VoteEnded(_) => GameEventType::VoteEnded, + GameEvent::VoteStarted(_) => GameEventType::VoteStarted, + GameEvent::VoteChanged(_) => GameEventType::VoteChanged, + GameEvent::VotePassed(_) => GameEventType::VotePassed, + GameEvent::VoteFailed(_) => GameEventType::VoteFailed, + GameEvent::VoteCast(_) => GameEventType::VoteCast, + GameEvent::VoteOptions(_) => GameEventType::VoteOptions, + GameEvent::ReplaySaved(_) => GameEventType::ReplaySaved, + GameEvent::EnteredPerformanceMode(_) => GameEventType::EnteredPerformanceMode, + GameEvent::BrowseReplays(_) => GameEventType::BrowseReplays, + GameEvent::ReplayYoutubeStats(_) => GameEventType::ReplayYoutubeStats, + GameEvent::InventoryUpdated(_) => GameEventType::InventoryUpdated, + GameEvent::CartUpdated(_) => GameEventType::CartUpdated, + GameEvent::StorePriceSheetUpdated(_) => GameEventType::StorePriceSheetUpdated, + GameEvent::EconInventoryConnected(_) => GameEventType::EconInventoryConnected, + GameEvent::ItemSchemaInitialized(_) => GameEventType::ItemSchemaInitialized, + GameEvent::GcNewSession(_) => GameEventType::GcNewSession, + GameEvent::GcLostSession(_) => GameEventType::GcLostSession, + GameEvent::IntroFinish(_) => GameEventType::IntroFinish, + GameEvent::IntroNextCamera(_) => GameEventType::IntroNextCamera, + GameEvent::PlayerChangeClass(_) => GameEventType::PlayerChangeClass, + GameEvent::TfMapTimeRemaining(_) => GameEventType::TfMapTimeRemaining, + GameEvent::TfGameOver(_) => GameEventType::TfGameOver, + GameEvent::CtfFlagCaptured(_) => GameEventType::CtfFlagCaptured, + GameEvent::ControlPointInitialized(_) => { + GameEventType::ControlPointInitialized } - GameEventType::PlayerInfo => { - GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?) + GameEvent::ControlPointUpdateImages(_) => { + GameEventType::ControlPointUpdateImages } - GameEventType::PlayerDisconnect => { - GameEvent::PlayerDisconnect(PlayerDisconnectEvent::read(stream, definition)?) + GameEvent::ControlPointUpdateLayout(_) => { + GameEventType::ControlPointUpdateLayout } - GameEventType::PlayerActivate => { - GameEvent::PlayerActivate(PlayerActivateEvent::read(stream, definition)?) + GameEvent::ControlPointUpdateCapping(_) => { + GameEventType::ControlPointUpdateCapping } - GameEventType::PlayerSay => { - GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?) + GameEvent::ControlPointUpdateOwner(_) => { + GameEventType::ControlPointUpdateOwner } - GameEventType::ClientDisconnect => { - GameEvent::ClientDisconnect(ClientDisconnectEvent::read(stream, definition)?) + GameEvent::ControlPointStartTouch(_) => GameEventType::ControlPointStartTouch, + GameEvent::ControlPointEndTouch(_) => GameEventType::ControlPointEndTouch, + GameEvent::ControlPointPulseElement(_) => { + GameEventType::ControlPointPulseElement } - GameEventType::ClientBeginConnect => { - GameEvent::ClientBeginConnect(ClientBeginConnectEvent::read(stream, definition)?) + GameEvent::ControlPointFakeCapture(_) => { + GameEventType::ControlPointFakeCapture } - GameEventType::ClientConnected => { - GameEvent::ClientConnected(ClientConnectedEvent::read(stream, definition)?) + GameEvent::ControlPointFakeCaptureMultiplier(_) => { + GameEventType::ControlPointFakeCaptureMultiplier } - GameEventType::ClientFullConnect => { - GameEvent::ClientFullConnect(ClientFullConnectEvent::read(stream, definition)?) + GameEvent::TeamPlayRoundSelected(_) => GameEventType::TeamPlayRoundSelected, + GameEvent::TeamPlayRoundStart(_) => GameEventType::TeamPlayRoundStart, + GameEvent::TeamPlayRoundActive(_) => GameEventType::TeamPlayRoundActive, + GameEvent::TeamPlayWaitingBegins(_) => GameEventType::TeamPlayWaitingBegins, + GameEvent::TeamPlayWaitingEnds(_) => GameEventType::TeamPlayWaitingEnds, + GameEvent::TeamPlayWaitingAboutToEnd(_) => { + GameEventType::TeamPlayWaitingAboutToEnd } - GameEventType::HostQuit => { - GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?) + GameEvent::TeamPlayRestartRound(_) => GameEventType::TeamPlayRestartRound, + GameEvent::TeamPlayReadyRestart(_) => GameEventType::TeamPlayReadyRestart, + GameEvent::TeamPlayRoundRestartSeconds(_) => { + GameEventType::TeamPlayRoundRestartSeconds } - GameEventType::TeamInfo => { - GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?) - } - GameEventType::TeamScore => { - GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?) - } - GameEventType::TeamPlayBroadcastAudio => GameEvent::TeamPlayBroadcastAudio( - TeamPlayBroadcastAudioEvent::read(stream, definition)?, - ), - GameEventType::PlayerTeam => { - GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?) - } - GameEventType::PlayerClass => { - GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?) - } - GameEventType::PlayerDeath => { - GameEvent::PlayerDeath(Box::new(::read(stream, definition)?)) - } - GameEventType::PlayerHurt => { - GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?) - } - GameEventType::PlayerChat => { - GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?) - } - GameEventType::PlayerScore => { - GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?) - } - GameEventType::PlayerSpawn => { - GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?) - } - GameEventType::PlayerShoot => { - GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?) - } - GameEventType::PlayerUse => { - GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?) - } - GameEventType::PlayerChangeName => { - GameEvent::PlayerChangeName(PlayerChangeNameEvent::read(stream, definition)?) - } - GameEventType::PlayerHintMessage => { - GameEvent::PlayerHintMessage(PlayerHintMessageEvent::read(stream, definition)?) - } - GameEventType::BasePlayerTeleported => GameEvent::BasePlayerTeleported( - BasePlayerTeleportedEvent::read(stream, definition)?, - ), - GameEventType::GameInit => { - GameEvent::GameInit(GameInitEvent::read(stream, definition)?) - } - GameEventType::GameNewMap => { - GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?) - } - GameEventType::GameStart => { - GameEvent::GameStart(GameStartEvent::read(stream, definition)?) - } - GameEventType::GameEnd => GameEvent::GameEnd(GameEndEvent::read(stream, definition)?), - GameEventType::RoundStart => { - GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?) - } - GameEventType::RoundEnd => { - GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?) - } - GameEventType::GameMessage => { - GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?) - } - GameEventType::BreakBreakable => { - GameEvent::BreakBreakable(BreakBreakableEvent::read(stream, definition)?) - } - GameEventType::BreakProp => { - GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?) - } - GameEventType::EntityKilled => { - GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?) - } - GameEventType::BonusUpdated => { - GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?) - } - GameEventType::AchievementEvent => { - GameEvent::AchievementEvent(AchievementEventEvent::read(stream, definition)?) - } - GameEventType::AchievementIncrement => GameEvent::AchievementIncrement( - AchievementIncrementEvent::read(stream, definition)?, - ), - GameEventType::PhysgunPickup => { - GameEvent::PhysgunPickup(PhysgunPickupEvent::read(stream, definition)?) - } - GameEventType::FlareIgniteNpc => { - GameEvent::FlareIgniteNpc(FlareIgniteNpcEvent::read(stream, definition)?) - } - GameEventType::HelicopterGrenadePuntMiss => GameEvent::HelicopterGrenadePuntMiss( - HelicopterGrenadePuntMissEvent::read(stream, definition)?, - ), - GameEventType::UserDataDownloaded => { - GameEvent::UserDataDownloaded(UserDataDownloadedEvent::read(stream, definition)?) - } - GameEventType::RagdollDissolved => { - GameEvent::RagdollDissolved(RagdollDissolvedEvent::read(stream, definition)?) - } - GameEventType::HLTVChangedMode => { - GameEvent::HLTVChangedMode(HLTVChangedModeEvent::read(stream, definition)?) - } - GameEventType::HLTVChangedTarget => { - GameEvent::HLTVChangedTarget(HLTVChangedTargetEvent::read(stream, definition)?) - } - GameEventType::VoteEnded => { - GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?) - } - GameEventType::VoteStarted => { - GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?) - } - GameEventType::VoteChanged => { - GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?) - } - GameEventType::VotePassed => { - GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?) - } - GameEventType::VoteFailed => { - GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?) - } - GameEventType::VoteCast => { - GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?) - } - GameEventType::VoteOptions => { - GameEvent::VoteOptions(Box::new(::read(stream, definition)?)) - } - GameEventType::ReplaySaved => { - GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?) - } - GameEventType::EnteredPerformanceMode => GameEvent::EnteredPerformanceMode( - EnteredPerformanceModeEvent::read(stream, definition)?, - ), - GameEventType::BrowseReplays => { - GameEvent::BrowseReplays(BrowseReplaysEvent::read(stream, definition)?) - } - GameEventType::ReplayYoutubeStats => { - GameEvent::ReplayYoutubeStats(ReplayYoutubeStatsEvent::read(stream, definition)?) - } - GameEventType::InventoryUpdated => { - GameEvent::InventoryUpdated(InventoryUpdatedEvent::read(stream, definition)?) - } - GameEventType::CartUpdated => { - GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?) - } - GameEventType::StorePriceSheetUpdated => GameEvent::StorePriceSheetUpdated( - StorePriceSheetUpdatedEvent::read(stream, definition)?, - ), - GameEventType::EconInventoryConnected => GameEvent::EconInventoryConnected( - EconInventoryConnectedEvent::read(stream, definition)?, - ), - GameEventType::ItemSchemaInitialized => GameEvent::ItemSchemaInitialized( - ItemSchemaInitializedEvent::read(stream, definition)?, - ), - GameEventType::GcNewSession => { - GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?) - } - GameEventType::GcLostSession => { - GameEvent::GcLostSession(GcLostSessionEvent::read(stream, definition)?) - } - GameEventType::IntroFinish => { - GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?) - } - GameEventType::IntroNextCamera => { - GameEvent::IntroNextCamera(IntroNextCameraEvent::read(stream, definition)?) - } - GameEventType::PlayerChangeClass => { - GameEvent::PlayerChangeClass(PlayerChangeClassEvent::read(stream, definition)?) - } - GameEventType::TfMapTimeRemaining => { - GameEvent::TfMapTimeRemaining(TfMapTimeRemainingEvent::read(stream, definition)?) - } - GameEventType::TfGameOver => { - GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?) - } - GameEventType::CtfFlagCaptured => { - GameEvent::CtfFlagCaptured(CtfFlagCapturedEvent::read(stream, definition)?) - } - GameEventType::ControlPointInitialized => GameEvent::ControlPointInitialized( - ControlPointInitializedEvent::read(stream, definition)?, - ), - GameEventType::ControlPointUpdateImages => GameEvent::ControlPointUpdateImages( - ControlPointUpdateImagesEvent::read(stream, definition)?, - ), - GameEventType::ControlPointUpdateLayout => GameEvent::ControlPointUpdateLayout( - ControlPointUpdateLayoutEvent::read(stream, definition)?, - ), - GameEventType::ControlPointUpdateCapping => GameEvent::ControlPointUpdateCapping( - ControlPointUpdateCappingEvent::read(stream, definition)?, - ), - GameEventType::ControlPointUpdateOwner => GameEvent::ControlPointUpdateOwner( - ControlPointUpdateOwnerEvent::read(stream, definition)?, - ), - GameEventType::ControlPointStartTouch => GameEvent::ControlPointStartTouch( - ControlPointStartTouchEvent::read(stream, definition)?, - ), - GameEventType::ControlPointEndTouch => GameEvent::ControlPointEndTouch( - ControlPointEndTouchEvent::read(stream, definition)?, - ), - GameEventType::ControlPointPulseElement => GameEvent::ControlPointPulseElement( - ControlPointPulseElementEvent::read(stream, definition)?, - ), - GameEventType::ControlPointFakeCapture => GameEvent::ControlPointFakeCapture( - ControlPointFakeCaptureEvent::read(stream, definition)?, - ), - GameEventType::ControlPointFakeCaptureMultiplier => { - GameEvent::ControlPointFakeCaptureMultiplier( - ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundSelected => GameEvent::TeamPlayRoundSelected( - TeamPlayRoundSelectedEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayRoundStart => { - GameEvent::TeamPlayRoundStart(TeamPlayRoundStartEvent::read(stream, definition)?) - } - GameEventType::TeamPlayRoundActive => { - GameEvent::TeamPlayRoundActive(TeamPlayRoundActiveEvent::read(stream, definition)?) - } - GameEventType::TeamPlayWaitingBegins => GameEvent::TeamPlayWaitingBegins( - TeamPlayWaitingBeginsEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayWaitingEnds => { - GameEvent::TeamPlayWaitingEnds(TeamPlayWaitingEndsEvent::read(stream, definition)?) - } - GameEventType::TeamPlayWaitingAboutToEnd => GameEvent::TeamPlayWaitingAboutToEnd( - TeamPlayWaitingAboutToEndEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayRestartRound => GameEvent::TeamPlayRestartRound( - TeamPlayRestartRoundEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayReadyRestart => GameEvent::TeamPlayReadyRestart( - TeamPlayReadyRestartEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayRoundRestartSeconds => GameEvent::TeamPlayRoundRestartSeconds( - TeamPlayRoundRestartSecondsEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayTeamReady => { - GameEvent::TeamPlayTeamReady(TeamPlayTeamReadyEvent::read(stream, definition)?) - } - GameEventType::TeamPlayRoundWin => { - GameEvent::TeamPlayRoundWin(TeamPlayRoundWinEvent::read(stream, definition)?) - } - GameEventType::TeamPlayUpdateTimer => { - GameEvent::TeamPlayUpdateTimer(TeamPlayUpdateTimerEvent::read(stream, definition)?) - } - GameEventType::TeamPlayRoundStalemate => GameEvent::TeamPlayRoundStalemate( - TeamPlayRoundStalemateEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayOvertimeBegin => GameEvent::TeamPlayOvertimeBegin( - TeamPlayOvertimeBeginEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayOvertimeEnd => { - GameEvent::TeamPlayOvertimeEnd(TeamPlayOvertimeEndEvent::read(stream, definition)?) - } - GameEventType::TeamPlaySuddenDeathBegin => GameEvent::TeamPlaySuddenDeathBegin( - TeamPlaySuddenDeathBeginEvent::read(stream, definition)?, - ), - GameEventType::TeamPlaySuddenDeathEnd => GameEvent::TeamPlaySuddenDeathEnd( - TeamPlaySuddenDeathEndEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayGameOver => { - GameEvent::TeamPlayGameOver(TeamPlayGameOverEvent::read(stream, definition)?) - } - GameEventType::TeamPlayMapTimeRemaining => GameEvent::TeamPlayMapTimeRemaining( - TeamPlayMapTimeRemainingEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayTimerFlash => { - GameEvent::TeamPlayTimerFlash(TeamPlayTimerFlashEvent::read(stream, definition)?) - } - GameEventType::TeamPlayTimerTimeAdded => GameEvent::TeamPlayTimerTimeAdded( - TeamPlayTimerTimeAddedEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayPointStartCapture => GameEvent::TeamPlayPointStartCapture( - TeamPlayPointStartCaptureEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayPointCaptured => GameEvent::TeamPlayPointCaptured( - TeamPlayPointCapturedEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayPointLocked => { - GameEvent::TeamPlayPointLocked(TeamPlayPointLockedEvent::read(stream, definition)?) - } - GameEventType::TeamPlayPointUnlocked => GameEvent::TeamPlayPointUnlocked( - TeamPlayPointUnlockedEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayCaptureBroken => GameEvent::TeamPlayCaptureBroken( - TeamPlayCaptureBrokenEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayCaptureBlocked => GameEvent::TeamPlayCaptureBlocked( - TeamPlayCaptureBlockedEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayFlagEvent => { - GameEvent::TeamPlayFlagEvent(TeamPlayFlagEventEvent::read(stream, definition)?) - } - GameEventType::TeamPlayWinPanel => { - GameEvent::TeamPlayWinPanel(TeamPlayWinPanelEvent::read(stream, definition)?) - } - GameEventType::TeamPlayTeamBalancedPlayer => GameEvent::TeamPlayTeamBalancedPlayer( - TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?, - ), - GameEventType::TeamPlaySetupFinished => GameEvent::TeamPlaySetupFinished( - TeamPlaySetupFinishedEvent::read(stream, definition)?, - ), - GameEventType::TeamPlayAlert => { - GameEvent::TeamPlayAlert(TeamPlayAlertEvent::read(stream, definition)?) - } - GameEventType::TrainingComplete => { - GameEvent::TrainingComplete(TrainingCompleteEvent::read(stream, definition)?) - } - GameEventType::ShowFreezePanel => { - GameEvent::ShowFreezePanel(ShowFreezePanelEvent::read(stream, definition)?) - } - GameEventType::HideFreezePanel => { - GameEvent::HideFreezePanel(HideFreezePanelEvent::read(stream, definition)?) - } - GameEventType::FreezeCamStarted => { - GameEvent::FreezeCamStarted(FreezeCamStartedEvent::read(stream, definition)?) - } - GameEventType::LocalPlayerChangeTeam => GameEvent::LocalPlayerChangeTeam( - LocalPlayerChangeTeamEvent::read(stream, definition)?, - ), - GameEventType::LocalPlayerScoreChanged => GameEvent::LocalPlayerScoreChanged( - LocalPlayerScoreChangedEvent::read(stream, definition)?, - ), - GameEventType::LocalPlayerChangeClass => GameEvent::LocalPlayerChangeClass( - LocalPlayerChangeClassEvent::read(stream, definition)?, - ), - GameEventType::LocalPlayerRespawn => { - GameEvent::LocalPlayerRespawn(LocalPlayerRespawnEvent::read(stream, definition)?) - } - GameEventType::BuildingInfoChanged => { - GameEvent::BuildingInfoChanged(BuildingInfoChangedEvent::read(stream, definition)?) - } - GameEventType::LocalPlayerChangeDisguise => GameEvent::LocalPlayerChangeDisguise( - LocalPlayerChangeDisguiseEvent::read(stream, definition)?, - ), - GameEventType::PlayerAccountChanged => GameEvent::PlayerAccountChanged( - PlayerAccountChangedEvent::read(stream, definition)?, - ), - GameEventType::SpyPdaReset => { - GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?) - } - GameEventType::FlagStatusUpdate => { - GameEvent::FlagStatusUpdate(FlagStatusUpdateEvent::read(stream, definition)?) - } - GameEventType::PlayerStatsUpdated => { - GameEvent::PlayerStatsUpdated(PlayerStatsUpdatedEvent::read(stream, definition)?) - } - GameEventType::PlayingCommentary => { - GameEvent::PlayingCommentary(PlayingCommentaryEvent::read(stream, definition)?) - } - GameEventType::PlayerChargeDeployed => GameEvent::PlayerChargeDeployed( - PlayerChargeDeployedEvent::read(stream, definition)?, - ), - GameEventType::PlayerBuiltObject => { - GameEvent::PlayerBuiltObject(PlayerBuiltObjectEvent::read(stream, definition)?) - } - GameEventType::PlayerUpgradedObject => GameEvent::PlayerUpgradedObject( - PlayerUpgradedObjectEvent::read(stream, definition)?, - ), - GameEventType::PlayerCarryObject => { - GameEvent::PlayerCarryObject(PlayerCarryObjectEvent::read(stream, definition)?) - } - GameEventType::PlayerDropObject => { - GameEvent::PlayerDropObject(PlayerDropObjectEvent::read(stream, definition)?) - } - GameEventType::ObjectRemoved => { - GameEvent::ObjectRemoved(ObjectRemovedEvent::read(stream, definition)?) - } - GameEventType::ObjectDestroyed => { - GameEvent::ObjectDestroyed(ObjectDestroyedEvent::read(stream, definition)?) - } - GameEventType::ObjectDetonated => { - GameEvent::ObjectDetonated(ObjectDetonatedEvent::read(stream, definition)?) - } - GameEventType::AchievementEarned => { - GameEvent::AchievementEarned(AchievementEarnedEvent::read(stream, definition)?) - } - GameEventType::SpecTargetUpdated => { - GameEvent::SpecTargetUpdated(SpecTargetUpdatedEvent::read(stream, definition)?) - } - GameEventType::TournamentStateUpdate => GameEvent::TournamentStateUpdate( - TournamentStateUpdateEvent::read(stream, definition)?, - ), - GameEventType::TournamentEnableCountdown => GameEvent::TournamentEnableCountdown( - TournamentEnableCountdownEvent::read(stream, definition)?, - ), - GameEventType::PlayerCalledForMedic => GameEvent::PlayerCalledForMedic( - PlayerCalledForMedicEvent::read(stream, definition)?, - ), - GameEventType::PlayerAskedForBall => { - GameEvent::PlayerAskedForBall(PlayerAskedForBallEvent::read(stream, definition)?) - } - GameEventType::LocalPlayerBecameObserver => GameEvent::LocalPlayerBecameObserver( - LocalPlayerBecameObserverEvent::read(stream, definition)?, - ), - GameEventType::PlayerIgnitedInv => { - GameEvent::PlayerIgnitedInv(PlayerIgnitedInvEvent::read(stream, definition)?) - } - GameEventType::PlayerIgnited => { - GameEvent::PlayerIgnited(PlayerIgnitedEvent::read(stream, definition)?) - } - GameEventType::PlayerExtinguished => { - GameEvent::PlayerExtinguished(PlayerExtinguishedEvent::read(stream, definition)?) - } - GameEventType::PlayerTeleported => { - GameEvent::PlayerTeleported(PlayerTeleportedEvent::read(stream, definition)?) - } - GameEventType::PlayerHealedMedicCall => GameEvent::PlayerHealedMedicCall( - PlayerHealedMedicCallEvent::read(stream, definition)?, - ), - GameEventType::LocalPlayerChargeReady => GameEvent::LocalPlayerChargeReady( - LocalPlayerChargeReadyEvent::read(stream, definition)?, - ), - GameEventType::LocalPlayerWindDown => { - GameEvent::LocalPlayerWindDown(LocalPlayerWindDownEvent::read(stream, definition)?) - } - GameEventType::PlayerInvulned => { - GameEvent::PlayerInvulned(PlayerInvulnedEvent::read(stream, definition)?) - } - GameEventType::EscortSpeed => { - GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?) - } - GameEventType::EscortProgress => { - GameEvent::EscortProgress(EscortProgressEvent::read(stream, definition)?) - } - GameEventType::EscortRecede => { - GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?) - } - GameEventType::GameUIActivated => { - GameEvent::GameUIActivated(GameUIActivatedEvent::read(stream, definition)?) - } - GameEventType::GameUIHidden => { - GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?) - } - GameEventType::PlayerEscortScore => { - GameEvent::PlayerEscortScore(PlayerEscortScoreEvent::read(stream, definition)?) - } - GameEventType::PlayerHealOnHit => { - GameEvent::PlayerHealOnHit(PlayerHealOnHitEvent::read(stream, definition)?) - } - GameEventType::PlayerStealSandvich => { - GameEvent::PlayerStealSandvich(PlayerStealSandvichEvent::read(stream, definition)?) - } - GameEventType::ShowClassLayout => { - GameEvent::ShowClassLayout(ShowClassLayoutEvent::read(stream, definition)?) - } - GameEventType::ShowVsPanel => { - GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?) - } - GameEventType::PlayerDamaged => { - GameEvent::PlayerDamaged(PlayerDamagedEvent::read(stream, definition)?) - } - GameEventType::ArenaPlayerNotification => GameEvent::ArenaPlayerNotification( - ArenaPlayerNotificationEvent::read(stream, definition)?, - ), - GameEventType::ArenaMatchMaxStreak => { - GameEvent::ArenaMatchMaxStreak(ArenaMatchMaxStreakEvent::read(stream, definition)?) - } - GameEventType::ArenaRoundStart => { - GameEvent::ArenaRoundStart(ArenaRoundStartEvent::read(stream, definition)?) - } - GameEventType::ArenaWinPanel => { - GameEvent::ArenaWinPanel(ArenaWinPanelEvent::read(stream, definition)?) - } - GameEventType::PveWinPanel => { - GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?) - } - GameEventType::AirDash => GameEvent::AirDash(AirDashEvent::read(stream, definition)?), - GameEventType::Landed => GameEvent::Landed(LandedEvent::read(stream, definition)?), - GameEventType::PlayerDamageDodged => { - GameEvent::PlayerDamageDodged(PlayerDamageDodgedEvent::read(stream, definition)?) - } - GameEventType::PlayerStunned => { - GameEvent::PlayerStunned(PlayerStunnedEvent::read(stream, definition)?) - } - GameEventType::ScoutGrandSlam => { - GameEvent::ScoutGrandSlam(ScoutGrandSlamEvent::read(stream, definition)?) - } - GameEventType::ScoutSlamdollLanded => { - GameEvent::ScoutSlamdollLanded(ScoutSlamdollLandedEvent::read(stream, definition)?) - } - GameEventType::ArrowImpact => { - GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?) - } - GameEventType::PlayerJarated => { - GameEvent::PlayerJarated(PlayerJaratedEvent::read(stream, definition)?) - } - GameEventType::PlayerJaratedFade => { - GameEvent::PlayerJaratedFade(PlayerJaratedFadeEvent::read(stream, definition)?) - } - GameEventType::PlayerShieldBlocked => { - GameEvent::PlayerShieldBlocked(PlayerShieldBlockedEvent::read(stream, definition)?) - } - GameEventType::PlayerPinned => { - GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?) - } - GameEventType::PlayerHealedByMedic => { - GameEvent::PlayerHealedByMedic(PlayerHealedByMedicEvent::read(stream, definition)?) - } - GameEventType::PlayerSappedObject => { - GameEvent::PlayerSappedObject(PlayerSappedObjectEvent::read(stream, definition)?) - } - GameEventType::ItemFound => { - GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?) - } - GameEventType::ShowAnnotation => { - GameEvent::ShowAnnotation(ShowAnnotationEvent::read(stream, definition)?) - } - GameEventType::HideAnnotation => { - GameEvent::HideAnnotation(HideAnnotationEvent::read(stream, definition)?) - } - GameEventType::PostInventoryApplication => GameEvent::PostInventoryApplication( - PostInventoryApplicationEvent::read(stream, definition)?, - ), - GameEventType::ControlPointUnlockUpdated => GameEvent::ControlPointUnlockUpdated( - ControlPointUnlockUpdatedEvent::read(stream, definition)?, - ), - GameEventType::DeployBuffBanner => { - GameEvent::DeployBuffBanner(DeployBuffBannerEvent::read(stream, definition)?) - } - GameEventType::PlayerBuff => { - GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?) - } - GameEventType::MedicDeath => { - GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?) - } - GameEventType::OvertimeNag => { - GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?) - } - GameEventType::TeamsChanged => { - GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?) - } - GameEventType::HalloweenPumpkinGrab => GameEvent::HalloweenPumpkinGrab( - HalloweenPumpkinGrabEvent::read(stream, definition)?, - ), - GameEventType::RocketJump => { - GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?) - } - GameEventType::RocketJumpLanded => { - GameEvent::RocketJumpLanded(RocketJumpLandedEvent::read(stream, definition)?) - } - GameEventType::StickyJump => { - GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?) - } - GameEventType::StickyJumpLanded => { - GameEvent::StickyJumpLanded(StickyJumpLandedEvent::read(stream, definition)?) - } - GameEventType::RocketPackLaunch => { - GameEvent::RocketPackLaunch(RocketPackLaunchEvent::read(stream, definition)?) - } - GameEventType::RocketPackLanded => { - GameEvent::RocketPackLanded(RocketPackLandedEvent::read(stream, definition)?) - } - GameEventType::MedicDefended => { - GameEvent::MedicDefended(MedicDefendedEvent::read(stream, definition)?) - } - GameEventType::LocalPlayerHealed => { - GameEvent::LocalPlayerHealed(LocalPlayerHealedEvent::read(stream, definition)?) - } - GameEventType::PlayerDestroyedPipeBomb => GameEvent::PlayerDestroyedPipeBomb( - PlayerDestroyedPipeBombEvent::read(stream, definition)?, - ), - GameEventType::ObjectDeflected => { - GameEvent::ObjectDeflected(ObjectDeflectedEvent::read(stream, definition)?) - } - GameEventType::PlayerMvp => { - GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?) - } - GameEventType::RaidSpawnMob => { - GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?) - } - GameEventType::RaidSpawnSquad => { - GameEvent::RaidSpawnSquad(RaidSpawnSquadEvent::read(stream, definition)?) - } - GameEventType::NavBlocked => { - GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?) - } - GameEventType::PathTrackPassed => { - GameEvent::PathTrackPassed(PathTrackPassedEvent::read(stream, definition)?) - } - GameEventType::NumCappersChanged => { - GameEvent::NumCappersChanged(NumCappersChangedEvent::read(stream, definition)?) - } - GameEventType::PlayerRegenerate => { - GameEvent::PlayerRegenerate(PlayerRegenerateEvent::read(stream, definition)?) - } - GameEventType::UpdateStatusItem => { - GameEvent::UpdateStatusItem(UpdateStatusItemEvent::read(stream, definition)?) - } - GameEventType::StatsResetRound => { - GameEvent::StatsResetRound(StatsResetRoundEvent::read(stream, definition)?) - } - GameEventType::ScoreStatsAccumulatedUpdate => GameEvent::ScoreStatsAccumulatedUpdate( - ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?, - ), - GameEventType::ScoreStatsAccumulatedReset => GameEvent::ScoreStatsAccumulatedReset( - ScoreStatsAccumulatedResetEvent::read(stream, definition)?, - ), - GameEventType::AchievementEarnedLocal => GameEvent::AchievementEarnedLocal( - AchievementEarnedLocalEvent::read(stream, definition)?, - ), - GameEventType::PlayerHealed => { - GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?) - } - GameEventType::BuildingHealed => { - GameEvent::BuildingHealed(BuildingHealedEvent::read(stream, definition)?) - } - GameEventType::ItemPickup => { - GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?) - } - GameEventType::DuelStatus => { - GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?) - } - GameEventType::FishNotice => { - GameEvent::FishNotice(Box::new(::read(stream, definition)?)) - } - GameEventType::FishNoticeArm => { - GameEvent::FishNoticeArm(Box::new(::read(stream, definition)?)) - } - GameEventType::SlapNotice => { - GameEvent::SlapNotice(Box::new(::read(stream, definition)?)) - } - GameEventType::ThrowableHit => { - GameEvent::ThrowableHit(Box::new(::read(stream, definition)?)) - } - GameEventType::PumpkinLordSummoned => { - GameEvent::PumpkinLordSummoned(PumpkinLordSummonedEvent::read(stream, definition)?) - } - GameEventType::PumpkinLordKilled => { - GameEvent::PumpkinLordKilled(PumpkinLordKilledEvent::read(stream, definition)?) - } - GameEventType::MerasmusSummoned => { - GameEvent::MerasmusSummoned(MerasmusSummonedEvent::read(stream, definition)?) - } - GameEventType::MerasmusKilled => { - GameEvent::MerasmusKilled(MerasmusKilledEvent::read(stream, definition)?) - } - GameEventType::MerasmusEscapeWarning => GameEvent::MerasmusEscapeWarning( - MerasmusEscapeWarningEvent::read(stream, definition)?, - ), - GameEventType::MerasmusEscaped => { - GameEvent::MerasmusEscaped(MerasmusEscapedEvent::read(stream, definition)?) - } - GameEventType::EyeballBossSummoned => { - GameEvent::EyeballBossSummoned(EyeballBossSummonedEvent::read(stream, definition)?) - } - GameEventType::EyeballBossStunned => { - GameEvent::EyeballBossStunned(EyeballBossStunnedEvent::read(stream, definition)?) - } - GameEventType::EyeballBossKilled => { - GameEvent::EyeballBossKilled(EyeballBossKilledEvent::read(stream, definition)?) - } - GameEventType::EyeballBossKiller => { - GameEvent::EyeballBossKiller(EyeballBossKillerEvent::read(stream, definition)?) - } - GameEventType::EyeballBossEscapeImminent => GameEvent::EyeballBossEscapeImminent( - EyeballBossEscapeImminentEvent::read(stream, definition)?, - ), - GameEventType::EyeballBossEscaped => { - GameEvent::EyeballBossEscaped(EyeballBossEscapedEvent::read(stream, definition)?) - } - GameEventType::NpcHurt => GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?), - GameEventType::ControlPointTimerUpdated => GameEvent::ControlPointTimerUpdated( - ControlPointTimerUpdatedEvent::read(stream, definition)?, - ), - GameEventType::PlayerHighFiveStart => { - GameEvent::PlayerHighFiveStart(PlayerHighFiveStartEvent::read(stream, definition)?) - } - GameEventType::PlayerHighFiveCancel => GameEvent::PlayerHighFiveCancel( - PlayerHighFiveCancelEvent::read(stream, definition)?, - ), - GameEventType::PlayerHighFiveSuccess => GameEvent::PlayerHighFiveSuccess( - PlayerHighFiveSuccessEvent::read(stream, definition)?, - ), - GameEventType::PlayerBonusPoints => { - GameEvent::PlayerBonusPoints(PlayerBonusPointsEvent::read(stream, definition)?) - } - GameEventType::PlayerUpgraded => { - GameEvent::PlayerUpgraded(PlayerUpgradedEvent::read(stream, definition)?) - } - GameEventType::PlayerBuyback => { - GameEvent::PlayerBuyback(PlayerBuybackEvent::read(stream, definition)?) - } - GameEventType::PlayerUsedPowerUpBottle => GameEvent::PlayerUsedPowerUpBottle( - PlayerUsedPowerUpBottleEvent::read(stream, definition)?, - ), - GameEventType::ChristmasGiftGrab => { - GameEvent::ChristmasGiftGrab(ChristmasGiftGrabEvent::read(stream, definition)?) - } - GameEventType::PlayerKilledAchievementZone => GameEvent::PlayerKilledAchievementZone( - PlayerKilledAchievementZoneEvent::read(stream, definition)?, - ), - GameEventType::PartyUpdated => { - GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?) - } - GameEventType::PartyPrefChanged => { - GameEvent::PartyPrefChanged(PartyPrefChangedEvent::read(stream, definition)?) - } - GameEventType::PartyCriteriaChanged => GameEvent::PartyCriteriaChanged( - PartyCriteriaChangedEvent::read(stream, definition)?, - ), - GameEventType::PartyInvitesChanged => { - GameEvent::PartyInvitesChanged(PartyInvitesChangedEvent::read(stream, definition)?) - } - GameEventType::PartyQueueStateChanged => GameEvent::PartyQueueStateChanged( - PartyQueueStateChangedEvent::read(stream, definition)?, - ), - GameEventType::PartyChat => { - GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?) - } - GameEventType::PartyMemberJoin => { - GameEvent::PartyMemberJoin(PartyMemberJoinEvent::read(stream, definition)?) - } - GameEventType::PartyMemberLeave => { - GameEvent::PartyMemberLeave(PartyMemberLeaveEvent::read(stream, definition)?) - } - GameEventType::MatchInvitesUpdated => { - GameEvent::MatchInvitesUpdated(MatchInvitesUpdatedEvent::read(stream, definition)?) - } - GameEventType::LobbyUpdated => { - GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?) - } - GameEventType::MvmMissionUpdate => { - GameEvent::MvmMissionUpdate(MvmMissionUpdateEvent::read(stream, definition)?) - } - GameEventType::RecalculateHolidays => { - GameEvent::RecalculateHolidays(RecalculateHolidaysEvent::read(stream, definition)?) - } - GameEventType::PlayerCurrencyChanged => GameEvent::PlayerCurrencyChanged( - PlayerCurrencyChangedEvent::read(stream, definition)?, - ), - GameEventType::DoomsdayRocketOpen => { - GameEvent::DoomsdayRocketOpen(DoomsdayRocketOpenEvent::read(stream, definition)?) - } - GameEventType::RemoveNemesisRelationships => GameEvent::RemoveNemesisRelationships( - RemoveNemesisRelationshipsEvent::read(stream, definition)?, - ), - GameEventType::MvmCreditBonusWave => { - GameEvent::MvmCreditBonusWave(MvmCreditBonusWaveEvent::read(stream, definition)?) - } - GameEventType::MvmCreditBonusAll => { - GameEvent::MvmCreditBonusAll(MvmCreditBonusAllEvent::read(stream, definition)?) - } - GameEventType::MvmCreditBonusAllAdvanced => GameEvent::MvmCreditBonusAllAdvanced( - MvmCreditBonusAllAdvancedEvent::read(stream, definition)?, - ), - GameEventType::MvmQuickSentryUpgrade => GameEvent::MvmQuickSentryUpgrade( - MvmQuickSentryUpgradeEvent::read(stream, definition)?, - ), - GameEventType::MvmTankDestroyedByPlayers => GameEvent::MvmTankDestroyedByPlayers( - MvmTankDestroyedByPlayersEvent::read(stream, definition)?, - ), - GameEventType::MvmKillRobotDeliveringBomb => GameEvent::MvmKillRobotDeliveringBomb( - MvmKillRobotDeliveringBombEvent::read(stream, definition)?, - ), - GameEventType::MvmPickupCurrency => { - GameEvent::MvmPickupCurrency(MvmPickupCurrencyEvent::read(stream, definition)?) - } - GameEventType::MvmBombCarrierKilled => GameEvent::MvmBombCarrierKilled( - MvmBombCarrierKilledEvent::read(stream, definition)?, - ), - GameEventType::MvmSentryBusterDetonate => GameEvent::MvmSentryBusterDetonate( - MvmSentryBusterDetonateEvent::read(stream, definition)?, - ), - GameEventType::MvmScoutMarkedForDeath => GameEvent::MvmScoutMarkedForDeath( - MvmScoutMarkedForDeathEvent::read(stream, definition)?, - ), - GameEventType::MvmMedicPowerUpShared => GameEvent::MvmMedicPowerUpShared( - MvmMedicPowerUpSharedEvent::read(stream, definition)?, - ), - GameEventType::MvmBeginWave => { - GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?) - } - GameEventType::MvmWaveComplete => { - GameEvent::MvmWaveComplete(MvmWaveCompleteEvent::read(stream, definition)?) - } - GameEventType::MvmMissionComplete => { - GameEvent::MvmMissionComplete(MvmMissionCompleteEvent::read(stream, definition)?) - } - GameEventType::MvmBombResetByPlayer => GameEvent::MvmBombResetByPlayer( - MvmBombResetByPlayerEvent::read(stream, definition)?, - ), - GameEventType::MvmBombAlarmTriggered => GameEvent::MvmBombAlarmTriggered( - MvmBombAlarmTriggeredEvent::read(stream, definition)?, - ), - GameEventType::MvmBombDeployResetByPlayer => GameEvent::MvmBombDeployResetByPlayer( - MvmBombDeployResetByPlayerEvent::read(stream, definition)?, - ), - GameEventType::MvmWaveFailed => { - GameEvent::MvmWaveFailed(MvmWaveFailedEvent::read(stream, definition)?) - } - GameEventType::MvmResetStats => { - GameEvent::MvmResetStats(MvmResetStatsEvent::read(stream, definition)?) - } - GameEventType::DamageResisted => { - GameEvent::DamageResisted(DamageResistedEvent::read(stream, definition)?) - } - GameEventType::RevivePlayerNotify => { - GameEvent::RevivePlayerNotify(RevivePlayerNotifyEvent::read(stream, definition)?) - } - GameEventType::RevivePlayerStopped => { - GameEvent::RevivePlayerStopped(RevivePlayerStoppedEvent::read(stream, definition)?) - } - GameEventType::RevivePlayerComplete => GameEvent::RevivePlayerComplete( - RevivePlayerCompleteEvent::read(stream, definition)?, - ), - GameEventType::PlayerTurnedToGhost => { - GameEvent::PlayerTurnedToGhost(PlayerTurnedToGhostEvent::read(stream, definition)?) - } - GameEventType::MedigunShieldBlockedDamage => GameEvent::MedigunShieldBlockedDamage( - MedigunShieldBlockedDamageEvent::read(stream, definition)?, - ), - GameEventType::MvmAdvWaveCompleteNoGates => GameEvent::MvmAdvWaveCompleteNoGates( - MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?, - ), - GameEventType::MvmSniperHeadshotCurrency => GameEvent::MvmSniperHeadshotCurrency( - MvmSniperHeadshotCurrencyEvent::read(stream, definition)?, - ), - GameEventType::MvmMannhattanPit => { - GameEvent::MvmMannhattanPit(MvmMannhattanPitEvent::read(stream, definition)?) - } - GameEventType::FlagCarriedInDetectionZone => GameEvent::FlagCarriedInDetectionZone( - FlagCarriedInDetectionZoneEvent::read(stream, definition)?, - ), - GameEventType::MvmAdvWaveKilledStunRadio => GameEvent::MvmAdvWaveKilledStunRadio( - MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?, - ), - GameEventType::PlayerDirectHitStun => { - GameEvent::PlayerDirectHitStun(PlayerDirectHitStunEvent::read(stream, definition)?) - } - GameEventType::MvmSentryBusterKilled => GameEvent::MvmSentryBusterKilled( - MvmSentryBusterKilledEvent::read(stream, definition)?, - ), - GameEventType::UpgradesFileChanged => { - GameEvent::UpgradesFileChanged(UpgradesFileChangedEvent::read(stream, definition)?) - } - GameEventType::RdTeamPointsChanged => { - GameEvent::RdTeamPointsChanged(RdTeamPointsChangedEvent::read(stream, definition)?) - } - GameEventType::RdRulesStateChanged => { - GameEvent::RdRulesStateChanged(RdRulesStateChangedEvent::read(stream, definition)?) - } - GameEventType::RdRobotKilled => { - GameEvent::RdRobotKilled(RdRobotKilledEvent::read(stream, definition)?) - } - GameEventType::RdRobotImpact => { - GameEvent::RdRobotImpact(RdRobotImpactEvent::read(stream, definition)?) - } - GameEventType::TeamPlayPreRoundTimeLeft => GameEvent::TeamPlayPreRoundTimeLeft( - TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?, - ), - GameEventType::ParachuteDeploy => { - GameEvent::ParachuteDeploy(ParachuteDeployEvent::read(stream, definition)?) - } - GameEventType::ParachuteHolster => { - GameEvent::ParachuteHolster(ParachuteHolsterEvent::read(stream, definition)?) - } - GameEventType::KillRefillsMeter => { - GameEvent::KillRefillsMeter(KillRefillsMeterEvent::read(stream, definition)?) - } - GameEventType::RpsTauntEvent => { - GameEvent::RpsTauntEvent(RpsTauntEventEvent::read(stream, definition)?) - } - GameEventType::CongaKill => { - GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?) - } - GameEventType::PlayerInitialSpawn => { - GameEvent::PlayerInitialSpawn(PlayerInitialSpawnEvent::read(stream, definition)?) - } - GameEventType::CompetitiveVictory => { - GameEvent::CompetitiveVictory(CompetitiveVictoryEvent::read(stream, definition)?) - } - GameEventType::CompetitiveStatsUpdate => GameEvent::CompetitiveStatsUpdate( - CompetitiveStatsUpdateEvent::read(stream, definition)?, - ), - GameEventType::MiniGameWin => { - GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?) - } - GameEventType::SentryOnGoActive => { - GameEvent::SentryOnGoActive(SentryOnGoActiveEvent::read(stream, definition)?) - } - GameEventType::DuckXpLevelUp => { - GameEvent::DuckXpLevelUp(DuckXpLevelUpEvent::read(stream, definition)?) - } - GameEventType::QuestLogOpened => { - GameEvent::QuestLogOpened(QuestLogOpenedEvent::read(stream, definition)?) - } - GameEventType::SchemaUpdated => { - GameEvent::SchemaUpdated(SchemaUpdatedEvent::read(stream, definition)?) - } - GameEventType::LocalPlayerPickupWeapon => GameEvent::LocalPlayerPickupWeapon( - LocalPlayerPickupWeaponEvent::read(stream, definition)?, - ), - GameEventType::RdPlayerScorePoints => { - GameEvent::RdPlayerScorePoints(RdPlayerScorePointsEvent::read(stream, definition)?) - } - GameEventType::DemomanDetStickies => { - GameEvent::DemomanDetStickies(DemomanDetStickiesEvent::read(stream, definition)?) - } - GameEventType::QuestObjectiveCompleted => GameEvent::QuestObjectiveCompleted( - QuestObjectiveCompletedEvent::read(stream, definition)?, - ), - GameEventType::PlayerScoreChanged => { - GameEvent::PlayerScoreChanged(PlayerScoreChangedEvent::read(stream, definition)?) - } - GameEventType::KilledCappingPlayer => { - GameEvent::KilledCappingPlayer(KilledCappingPlayerEvent::read(stream, definition)?) - } - GameEventType::EnvironmentalDeath => { - GameEvent::EnvironmentalDeath(EnvironmentalDeathEvent::read(stream, definition)?) - } - GameEventType::ProjectileDirectHit => { - GameEvent::ProjectileDirectHit(ProjectileDirectHitEvent::read(stream, definition)?) - } - GameEventType::PassGet => GameEvent::PassGet(PassGetEvent::read(stream, definition)?), - GameEventType::PassScore => { - GameEvent::PassScore(PassScoreEvent::read(stream, definition)?) - } - GameEventType::PassFree => { - GameEvent::PassFree(PassFreeEvent::read(stream, definition)?) - } - GameEventType::PassPassCaught => { - GameEvent::PassPassCaught(PassPassCaughtEvent::read(stream, definition)?) - } - GameEventType::PassBallStolen => { - GameEvent::PassBallStolen(PassBallStolenEvent::read(stream, definition)?) - } - GameEventType::PassBallBlocked => { - GameEvent::PassBallBlocked(PassBallBlockedEvent::read(stream, definition)?) - } - GameEventType::DamagePrevented => { - GameEvent::DamagePrevented(DamagePreventedEvent::read(stream, definition)?) - } - GameEventType::HalloweenBossKilled => { - GameEvent::HalloweenBossKilled(HalloweenBossKilledEvent::read(stream, definition)?) - } - GameEventType::EscapedLootIsland => { - GameEvent::EscapedLootIsland(EscapedLootIslandEvent::read(stream, definition)?) - } - GameEventType::TaggedPlayerAsIt => { - GameEvent::TaggedPlayerAsIt(TaggedPlayerAsItEvent::read(stream, definition)?) - } - GameEventType::MerasmusStunned => { - GameEvent::MerasmusStunned(MerasmusStunnedEvent::read(stream, definition)?) - } - GameEventType::MerasmusPropFound => { - GameEvent::MerasmusPropFound(MerasmusPropFoundEvent::read(stream, definition)?) - } - GameEventType::HalloweenSkeletonKilled => GameEvent::HalloweenSkeletonKilled( - HalloweenSkeletonKilledEvent::read(stream, definition)?, - ), - GameEventType::SkeletonKilledQuest => { - GameEvent::SkeletonKilledQuest(SkeletonKilledQuestEvent::read(stream, definition)?) - } - GameEventType::SkeletonKingKilledQuest => GameEvent::SkeletonKingKilledQuest( - SkeletonKingKilledQuestEvent::read(stream, definition)?, - ), - GameEventType::EscapeHell => { - GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) - } - GameEventType::CrossSpectralBridge => { - GameEvent::CrossSpectralBridge(CrossSpectralBridgeEvent::read(stream, definition)?) - } - GameEventType::MiniGameWon => { - GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?) - } - GameEventType::RespawnGhost => { - GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?) - } - GameEventType::KillInHell => { - GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?) - } - GameEventType::HalloweenDuckCollected => GameEvent::HalloweenDuckCollected( - HalloweenDuckCollectedEvent::read(stream, definition)?, - ), - GameEventType::SpecialScore => { - GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?) - } - GameEventType::TeamLeaderKilled => { - GameEvent::TeamLeaderKilled(TeamLeaderKilledEvent::read(stream, definition)?) - } - GameEventType::HalloweenSoulCollected => GameEvent::HalloweenSoulCollected( - HalloweenSoulCollectedEvent::read(stream, definition)?, - ), - GameEventType::RecalculateTruce => { - GameEvent::RecalculateTruce(RecalculateTruceEvent::read(stream, definition)?) - } - GameEventType::DeadRingerCheatDeath => GameEvent::DeadRingerCheatDeath( - DeadRingerCheatDeathEvent::read(stream, definition)?, - ), - GameEventType::CrossbowHeal => { - GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?) - } - GameEventType::DamageMitigated => { - GameEvent::DamageMitigated(DamageMitigatedEvent::read(stream, definition)?) - } - GameEventType::PayloadPushed => { - GameEvent::PayloadPushed(PayloadPushedEvent::read(stream, definition)?) - } - GameEventType::PlayerAbandonedMatch => GameEvent::PlayerAbandonedMatch( - PlayerAbandonedMatchEvent::read(stream, definition)?, - ), - GameEventType::ClDrawline => { - GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?) - } - GameEventType::RestartTimerTime => { - GameEvent::RestartTimerTime(RestartTimerTimeEvent::read(stream, definition)?) - } - GameEventType::WinLimitChanged => { - GameEvent::WinLimitChanged(WinLimitChangedEvent::read(stream, definition)?) - } - GameEventType::WinPanelShowScores => { - GameEvent::WinPanelShowScores(WinPanelShowScoresEvent::read(stream, definition)?) - } - GameEventType::TopStreamsRequestFinished => GameEvent::TopStreamsRequestFinished( - TopStreamsRequestFinishedEvent::read(stream, definition)?, - ), - GameEventType::CompetitiveStateChanged => GameEvent::CompetitiveStateChanged( - CompetitiveStateChangedEvent::read(stream, definition)?, - ), - GameEventType::GlobalWarDataUpdated => GameEvent::GlobalWarDataUpdated( - GlobalWarDataUpdatedEvent::read(stream, definition)?, - ), - GameEventType::StopWatchChanged => { - GameEvent::StopWatchChanged(StopWatchChangedEvent::read(stream, definition)?) - } - GameEventType::DsStop => GameEvent::DsStop(DsStopEvent::read(stream, definition)?), - GameEventType::DsScreenshot => { - GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?) - } - GameEventType::ShowMatchSummary => { - GameEvent::ShowMatchSummary(ShowMatchSummaryEvent::read(stream, definition)?) - } - GameEventType::ExperienceChanged => { - GameEvent::ExperienceChanged(ExperienceChangedEvent::read(stream, definition)?) - } - GameEventType::BeginXpLerp => { - GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?) - } - GameEventType::MatchmakerStatsUpdated => GameEvent::MatchmakerStatsUpdated( - MatchmakerStatsUpdatedEvent::read(stream, definition)?, - ), - GameEventType::RematchVotePeriodOver => GameEvent::RematchVotePeriodOver( - RematchVotePeriodOverEvent::read(stream, definition)?, - ), - GameEventType::RematchFailedToCreate => GameEvent::RematchFailedToCreate( - RematchFailedToCreateEvent::read(stream, definition)?, - ), - GameEventType::PlayerRematchChange => { - GameEvent::PlayerRematchChange(PlayerRematchChangeEvent::read(stream, definition)?) - } - GameEventType::PingUpdated => { - GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?) - } - GameEventType::MMStatsUpdated => { - GameEvent::MMStatsUpdated(MMStatsUpdatedEvent::read(stream, definition)?) - } - GameEventType::PlayerNextMapVoteChange => GameEvent::PlayerNextMapVoteChange( - PlayerNextMapVoteChangeEvent::read(stream, definition)?, - ), - GameEventType::VoteMapsChanged => { - GameEvent::VoteMapsChanged(VoteMapsChangedEvent::read(stream, definition)?) - } - GameEventType::ProtoDefChanged => { - GameEvent::ProtoDefChanged(ProtoDefChangedEvent::read(stream, definition)?) - } - GameEventType::PlayerDomination => { - GameEvent::PlayerDomination(PlayerDominationEvent::read(stream, definition)?) - } - GameEventType::PlayerRocketPackPushed => GameEvent::PlayerRocketPackPushed( - PlayerRocketPackPushedEvent::read(stream, definition)?, - ), - GameEventType::QuestRequest => { - GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?) - } - GameEventType::QuestResponse => { - GameEvent::QuestResponse(QuestResponseEvent::read(stream, definition)?) - } - GameEventType::QuestProgress => { - GameEvent::QuestProgress(QuestProgressEvent::read(stream, definition)?) - } - GameEventType::ProjectileRemoved => { - GameEvent::ProjectileRemoved(ProjectileRemovedEvent::read(stream, definition)?) - } - GameEventType::QuestMapDataChanged => { - GameEvent::QuestMapDataChanged(QuestMapDataChangedEvent::read(stream, definition)?) - } - GameEventType::GasDousedPlayerIgnited => GameEvent::GasDousedPlayerIgnited( - GasDousedPlayerIgnitedEvent::read(stream, definition)?, - ), - GameEventType::QuestTurnInState => { - GameEvent::QuestTurnInState(QuestTurnInStateEvent::read(stream, definition)?) - } - GameEventType::ItemsAcknowledged => { - GameEvent::ItemsAcknowledged(ItemsAcknowledgedEvent::read(stream, definition)?) - } - GameEventType::CapperKilled => { - GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?) - } - GameEventType::MainMenuStabilized => { - GameEvent::MainMenuStabilized(MainMenuStabilizedEvent::read(stream, definition)?) - } - GameEventType::WorldStatusChanged => { - GameEvent::WorldStatusChanged(WorldStatusChangedEvent::read(stream, definition)?) - } - GameEventType::HLTVStatus => { - GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?) - } - GameEventType::HLTVCameraman => { - GameEvent::HLTVCameraman(HLTVCameramanEvent::read(stream, definition)?) - } - GameEventType::HLTVRankCamera => { - GameEvent::HLTVRankCamera(HLTVRankCameraEvent::read(stream, definition)?) - } - GameEventType::HLTVRankEntity => { - GameEvent::HLTVRankEntity(HLTVRankEntityEvent::read(stream, definition)?) - } - GameEventType::HLTVFixed => { - GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?) - } - GameEventType::HLTVChase => { - GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?) - } - GameEventType::HLTVMessage => { - GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?) - } - GameEventType::HLTVTitle => { - GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?) - } - GameEventType::HLTVChat => { - GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?) - } - GameEventType::ReplayStartRecord => { - GameEvent::ReplayStartRecord(ReplayStartRecordEvent::read(stream, definition)?) - } - GameEventType::ReplaySessionInfo => { - GameEvent::ReplaySessionInfo(ReplaySessionInfoEvent::read(stream, definition)?) - } - GameEventType::ReplayEndRecord => { - GameEvent::ReplayEndRecord(ReplayEndRecordEvent::read(stream, definition)?) - } - GameEventType::ReplayReplaysAvailable => GameEvent::ReplayReplaysAvailable( - ReplayReplaysAvailableEvent::read(stream, definition)?, - ), - GameEventType::ReplayServerError => { - GameEvent::ReplayServerError(ReplayServerErrorEvent::read(stream, definition)?) - } - GameEventType::Unknown(_) => { - GameEvent::Unknown(RawGameEvent::read(stream, definition)?) - } - }) - } - pub fn write(&self, stream: &mut BitWriteStream) -> bitbuffer::Result<()> { - match &self { - GameEvent::ServerSpawn(event) => event.write(stream), - GameEvent::ServerChangeLevelFailed(event) => event.write(stream), - GameEvent::ServerShutdown(event) => event.write(stream), - GameEvent::ServerCvar(event) => event.write(stream), - GameEvent::ServerMessage(event) => event.write(stream), - GameEvent::ServerAddBan(event) => event.write(stream), - GameEvent::ServerRemoveBan(event) => event.write(stream), - GameEvent::PlayerConnect(event) => event.write(stream), - GameEvent::PlayerConnectClient(event) => event.write(stream), - GameEvent::PlayerInfo(event) => event.write(stream), - GameEvent::PlayerDisconnect(event) => event.write(stream), - GameEvent::PlayerActivate(event) => event.write(stream), - GameEvent::PlayerSay(event) => event.write(stream), - GameEvent::ClientDisconnect(event) => event.write(stream), - GameEvent::ClientBeginConnect(event) => event.write(stream), - GameEvent::ClientConnected(event) => event.write(stream), - GameEvent::ClientFullConnect(event) => event.write(stream), - GameEvent::HostQuit(event) => event.write(stream), - GameEvent::TeamInfo(event) => event.write(stream), - GameEvent::TeamScore(event) => event.write(stream), - GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream), - GameEvent::PlayerTeam(event) => event.write(stream), - GameEvent::PlayerClass(event) => event.write(stream), - GameEvent::PlayerDeath(event) => event.write(stream), - GameEvent::PlayerHurt(event) => event.write(stream), - GameEvent::PlayerChat(event) => event.write(stream), - GameEvent::PlayerScore(event) => event.write(stream), - GameEvent::PlayerSpawn(event) => event.write(stream), - GameEvent::PlayerShoot(event) => event.write(stream), - GameEvent::PlayerUse(event) => event.write(stream), - GameEvent::PlayerChangeName(event) => event.write(stream), - GameEvent::PlayerHintMessage(event) => event.write(stream), - GameEvent::BasePlayerTeleported(event) => event.write(stream), - GameEvent::GameInit(event) => event.write(stream), - GameEvent::GameNewMap(event) => event.write(stream), - GameEvent::GameStart(event) => event.write(stream), - GameEvent::GameEnd(event) => event.write(stream), - GameEvent::RoundStart(event) => event.write(stream), - GameEvent::RoundEnd(event) => event.write(stream), - GameEvent::GameMessage(event) => event.write(stream), - GameEvent::BreakBreakable(event) => event.write(stream), - GameEvent::BreakProp(event) => event.write(stream), - GameEvent::EntityKilled(event) => event.write(stream), - GameEvent::BonusUpdated(event) => event.write(stream), - GameEvent::AchievementEvent(event) => event.write(stream), - GameEvent::AchievementIncrement(event) => event.write(stream), - GameEvent::PhysgunPickup(event) => event.write(stream), - GameEvent::FlareIgniteNpc(event) => event.write(stream), - GameEvent::HelicopterGrenadePuntMiss(event) => event.write(stream), - GameEvent::UserDataDownloaded(event) => event.write(stream), - GameEvent::RagdollDissolved(event) => event.write(stream), - GameEvent::HLTVChangedMode(event) => event.write(stream), - GameEvent::HLTVChangedTarget(event) => event.write(stream), - GameEvent::VoteEnded(event) => event.write(stream), - GameEvent::VoteStarted(event) => event.write(stream), - GameEvent::VoteChanged(event) => event.write(stream), - GameEvent::VotePassed(event) => event.write(stream), - GameEvent::VoteFailed(event) => event.write(stream), - GameEvent::VoteCast(event) => event.write(stream), - GameEvent::VoteOptions(event) => event.write(stream), - GameEvent::ReplaySaved(event) => event.write(stream), - GameEvent::EnteredPerformanceMode(event) => event.write(stream), - GameEvent::BrowseReplays(event) => event.write(stream), - GameEvent::ReplayYoutubeStats(event) => event.write(stream), - GameEvent::InventoryUpdated(event) => event.write(stream), - GameEvent::CartUpdated(event) => event.write(stream), - GameEvent::StorePriceSheetUpdated(event) => event.write(stream), - GameEvent::EconInventoryConnected(event) => event.write(stream), - GameEvent::ItemSchemaInitialized(event) => event.write(stream), - GameEvent::GcNewSession(event) => event.write(stream), - GameEvent::GcLostSession(event) => event.write(stream), - GameEvent::IntroFinish(event) => event.write(stream), - GameEvent::IntroNextCamera(event) => event.write(stream), - GameEvent::PlayerChangeClass(event) => event.write(stream), - GameEvent::TfMapTimeRemaining(event) => event.write(stream), - GameEvent::TfGameOver(event) => event.write(stream), - GameEvent::CtfFlagCaptured(event) => event.write(stream), - GameEvent::ControlPointInitialized(event) => event.write(stream), - GameEvent::ControlPointUpdateImages(event) => event.write(stream), - GameEvent::ControlPointUpdateLayout(event) => event.write(stream), - GameEvent::ControlPointUpdateCapping(event) => event.write(stream), - GameEvent::ControlPointUpdateOwner(event) => event.write(stream), - GameEvent::ControlPointStartTouch(event) => event.write(stream), - GameEvent::ControlPointEndTouch(event) => event.write(stream), - GameEvent::ControlPointPulseElement(event) => event.write(stream), - GameEvent::ControlPointFakeCapture(event) => event.write(stream), - GameEvent::ControlPointFakeCaptureMultiplier(event) => event.write(stream), - GameEvent::TeamPlayRoundSelected(event) => event.write(stream), - GameEvent::TeamPlayRoundStart(event) => event.write(stream), - GameEvent::TeamPlayRoundActive(event) => event.write(stream), - GameEvent::TeamPlayWaitingBegins(event) => event.write(stream), - GameEvent::TeamPlayWaitingEnds(event) => event.write(stream), - GameEvent::TeamPlayWaitingAboutToEnd(event) => event.write(stream), - GameEvent::TeamPlayRestartRound(event) => event.write(stream), - GameEvent::TeamPlayReadyRestart(event) => event.write(stream), - GameEvent::TeamPlayRoundRestartSeconds(event) => event.write(stream), - GameEvent::TeamPlayTeamReady(event) => event.write(stream), - GameEvent::TeamPlayRoundWin(event) => event.write(stream), - GameEvent::TeamPlayUpdateTimer(event) => event.write(stream), - GameEvent::TeamPlayRoundStalemate(event) => event.write(stream), - GameEvent::TeamPlayOvertimeBegin(event) => event.write(stream), - GameEvent::TeamPlayOvertimeEnd(event) => event.write(stream), - GameEvent::TeamPlaySuddenDeathBegin(event) => event.write(stream), - GameEvent::TeamPlaySuddenDeathEnd(event) => event.write(stream), - GameEvent::TeamPlayGameOver(event) => event.write(stream), - GameEvent::TeamPlayMapTimeRemaining(event) => event.write(stream), - GameEvent::TeamPlayTimerFlash(event) => event.write(stream), - GameEvent::TeamPlayTimerTimeAdded(event) => event.write(stream), - GameEvent::TeamPlayPointStartCapture(event) => event.write(stream), - GameEvent::TeamPlayPointCaptured(event) => event.write(stream), - GameEvent::TeamPlayPointLocked(event) => event.write(stream), - GameEvent::TeamPlayPointUnlocked(event) => event.write(stream), - GameEvent::TeamPlayCaptureBroken(event) => event.write(stream), - GameEvent::TeamPlayCaptureBlocked(event) => event.write(stream), - GameEvent::TeamPlayFlagEvent(event) => event.write(stream), - GameEvent::TeamPlayWinPanel(event) => event.write(stream), - GameEvent::TeamPlayTeamBalancedPlayer(event) => event.write(stream), - GameEvent::TeamPlaySetupFinished(event) => event.write(stream), - GameEvent::TeamPlayAlert(event) => event.write(stream), - GameEvent::TrainingComplete(event) => event.write(stream), - GameEvent::ShowFreezePanel(event) => event.write(stream), - GameEvent::HideFreezePanel(event) => event.write(stream), - GameEvent::FreezeCamStarted(event) => event.write(stream), - GameEvent::LocalPlayerChangeTeam(event) => event.write(stream), - GameEvent::LocalPlayerScoreChanged(event) => event.write(stream), - GameEvent::LocalPlayerChangeClass(event) => event.write(stream), - GameEvent::LocalPlayerRespawn(event) => event.write(stream), - GameEvent::BuildingInfoChanged(event) => event.write(stream), - GameEvent::LocalPlayerChangeDisguise(event) => event.write(stream), - GameEvent::PlayerAccountChanged(event) => event.write(stream), - GameEvent::SpyPdaReset(event) => event.write(stream), - GameEvent::FlagStatusUpdate(event) => event.write(stream), - GameEvent::PlayerStatsUpdated(event) => event.write(stream), - GameEvent::PlayingCommentary(event) => event.write(stream), - GameEvent::PlayerChargeDeployed(event) => event.write(stream), - GameEvent::PlayerBuiltObject(event) => event.write(stream), - GameEvent::PlayerUpgradedObject(event) => event.write(stream), - GameEvent::PlayerCarryObject(event) => event.write(stream), - GameEvent::PlayerDropObject(event) => event.write(stream), - GameEvent::ObjectRemoved(event) => event.write(stream), - GameEvent::ObjectDestroyed(event) => event.write(stream), - GameEvent::ObjectDetonated(event) => event.write(stream), - GameEvent::AchievementEarned(event) => event.write(stream), - GameEvent::SpecTargetUpdated(event) => event.write(stream), - GameEvent::TournamentStateUpdate(event) => event.write(stream), - GameEvent::TournamentEnableCountdown(event) => event.write(stream), - GameEvent::PlayerCalledForMedic(event) => event.write(stream), - GameEvent::PlayerAskedForBall(event) => event.write(stream), - GameEvent::LocalPlayerBecameObserver(event) => event.write(stream), - GameEvent::PlayerIgnitedInv(event) => event.write(stream), - GameEvent::PlayerIgnited(event) => event.write(stream), - GameEvent::PlayerExtinguished(event) => event.write(stream), - GameEvent::PlayerTeleported(event) => event.write(stream), - GameEvent::PlayerHealedMedicCall(event) => event.write(stream), - GameEvent::LocalPlayerChargeReady(event) => event.write(stream), - GameEvent::LocalPlayerWindDown(event) => event.write(stream), - GameEvent::PlayerInvulned(event) => event.write(stream), - GameEvent::EscortSpeed(event) => event.write(stream), - GameEvent::EscortProgress(event) => event.write(stream), - GameEvent::EscortRecede(event) => event.write(stream), - GameEvent::GameUIActivated(event) => event.write(stream), - GameEvent::GameUIHidden(event) => event.write(stream), - GameEvent::PlayerEscortScore(event) => event.write(stream), - GameEvent::PlayerHealOnHit(event) => event.write(stream), - GameEvent::PlayerStealSandvich(event) => event.write(stream), - GameEvent::ShowClassLayout(event) => event.write(stream), - GameEvent::ShowVsPanel(event) => event.write(stream), - GameEvent::PlayerDamaged(event) => event.write(stream), - GameEvent::ArenaPlayerNotification(event) => event.write(stream), - GameEvent::ArenaMatchMaxStreak(event) => event.write(stream), - GameEvent::ArenaRoundStart(event) => event.write(stream), - GameEvent::ArenaWinPanel(event) => event.write(stream), - GameEvent::PveWinPanel(event) => event.write(stream), - GameEvent::AirDash(event) => event.write(stream), - GameEvent::Landed(event) => event.write(stream), - GameEvent::PlayerDamageDodged(event) => event.write(stream), - GameEvent::PlayerStunned(event) => event.write(stream), - GameEvent::ScoutGrandSlam(event) => event.write(stream), - GameEvent::ScoutSlamdollLanded(event) => event.write(stream), - GameEvent::ArrowImpact(event) => event.write(stream), - GameEvent::PlayerJarated(event) => event.write(stream), - GameEvent::PlayerJaratedFade(event) => event.write(stream), - GameEvent::PlayerShieldBlocked(event) => event.write(stream), - GameEvent::PlayerPinned(event) => event.write(stream), - GameEvent::PlayerHealedByMedic(event) => event.write(stream), - GameEvent::PlayerSappedObject(event) => event.write(stream), - GameEvent::ItemFound(event) => event.write(stream), - GameEvent::ShowAnnotation(event) => event.write(stream), - GameEvent::HideAnnotation(event) => event.write(stream), - GameEvent::PostInventoryApplication(event) => event.write(stream), - GameEvent::ControlPointUnlockUpdated(event) => event.write(stream), - GameEvent::DeployBuffBanner(event) => event.write(stream), - GameEvent::PlayerBuff(event) => event.write(stream), - GameEvent::MedicDeath(event) => event.write(stream), - GameEvent::OvertimeNag(event) => event.write(stream), - GameEvent::TeamsChanged(event) => event.write(stream), - GameEvent::HalloweenPumpkinGrab(event) => event.write(stream), - GameEvent::RocketJump(event) => event.write(stream), - GameEvent::RocketJumpLanded(event) => event.write(stream), - GameEvent::StickyJump(event) => event.write(stream), - GameEvent::StickyJumpLanded(event) => event.write(stream), - GameEvent::RocketPackLaunch(event) => event.write(stream), - GameEvent::RocketPackLanded(event) => event.write(stream), - GameEvent::MedicDefended(event) => event.write(stream), - GameEvent::LocalPlayerHealed(event) => event.write(stream), - GameEvent::PlayerDestroyedPipeBomb(event) => event.write(stream), - GameEvent::ObjectDeflected(event) => event.write(stream), - GameEvent::PlayerMvp(event) => event.write(stream), - GameEvent::RaidSpawnMob(event) => event.write(stream), - GameEvent::RaidSpawnSquad(event) => event.write(stream), - GameEvent::NavBlocked(event) => event.write(stream), - GameEvent::PathTrackPassed(event) => event.write(stream), - GameEvent::NumCappersChanged(event) => event.write(stream), - GameEvent::PlayerRegenerate(event) => event.write(stream), - GameEvent::UpdateStatusItem(event) => event.write(stream), - GameEvent::StatsResetRound(event) => event.write(stream), - GameEvent::ScoreStatsAccumulatedUpdate(event) => event.write(stream), - GameEvent::ScoreStatsAccumulatedReset(event) => event.write(stream), - GameEvent::AchievementEarnedLocal(event) => event.write(stream), - GameEvent::PlayerHealed(event) => event.write(stream), - GameEvent::BuildingHealed(event) => event.write(stream), - GameEvent::ItemPickup(event) => event.write(stream), - GameEvent::DuelStatus(event) => event.write(stream), - GameEvent::FishNotice(event) => event.write(stream), - GameEvent::FishNoticeArm(event) => event.write(stream), - GameEvent::SlapNotice(event) => event.write(stream), - GameEvent::ThrowableHit(event) => event.write(stream), - GameEvent::PumpkinLordSummoned(event) => event.write(stream), - GameEvent::PumpkinLordKilled(event) => event.write(stream), - GameEvent::MerasmusSummoned(event) => event.write(stream), - GameEvent::MerasmusKilled(event) => event.write(stream), - GameEvent::MerasmusEscapeWarning(event) => event.write(stream), - GameEvent::MerasmusEscaped(event) => event.write(stream), - GameEvent::EyeballBossSummoned(event) => event.write(stream), - GameEvent::EyeballBossStunned(event) => event.write(stream), - GameEvent::EyeballBossKilled(event) => event.write(stream), - GameEvent::EyeballBossKiller(event) => event.write(stream), - GameEvent::EyeballBossEscapeImminent(event) => event.write(stream), - GameEvent::EyeballBossEscaped(event) => event.write(stream), - GameEvent::NpcHurt(event) => event.write(stream), - GameEvent::ControlPointTimerUpdated(event) => event.write(stream), - GameEvent::PlayerHighFiveStart(event) => event.write(stream), - GameEvent::PlayerHighFiveCancel(event) => event.write(stream), - GameEvent::PlayerHighFiveSuccess(event) => event.write(stream), - GameEvent::PlayerBonusPoints(event) => event.write(stream), - GameEvent::PlayerUpgraded(event) => event.write(stream), - GameEvent::PlayerBuyback(event) => event.write(stream), - GameEvent::PlayerUsedPowerUpBottle(event) => event.write(stream), - GameEvent::ChristmasGiftGrab(event) => event.write(stream), - GameEvent::PlayerKilledAchievementZone(event) => event.write(stream), - GameEvent::PartyUpdated(event) => event.write(stream), - GameEvent::PartyPrefChanged(event) => event.write(stream), - GameEvent::PartyCriteriaChanged(event) => event.write(stream), - GameEvent::PartyInvitesChanged(event) => event.write(stream), - GameEvent::PartyQueueStateChanged(event) => event.write(stream), - GameEvent::PartyChat(event) => event.write(stream), - GameEvent::PartyMemberJoin(event) => event.write(stream), - GameEvent::PartyMemberLeave(event) => event.write(stream), - GameEvent::MatchInvitesUpdated(event) => event.write(stream), - GameEvent::LobbyUpdated(event) => event.write(stream), - GameEvent::MvmMissionUpdate(event) => event.write(stream), - GameEvent::RecalculateHolidays(event) => event.write(stream), - GameEvent::PlayerCurrencyChanged(event) => event.write(stream), - GameEvent::DoomsdayRocketOpen(event) => event.write(stream), - GameEvent::RemoveNemesisRelationships(event) => event.write(stream), - GameEvent::MvmCreditBonusWave(event) => event.write(stream), - GameEvent::MvmCreditBonusAll(event) => event.write(stream), - GameEvent::MvmCreditBonusAllAdvanced(event) => event.write(stream), - GameEvent::MvmQuickSentryUpgrade(event) => event.write(stream), - GameEvent::MvmTankDestroyedByPlayers(event) => event.write(stream), - GameEvent::MvmKillRobotDeliveringBomb(event) => event.write(stream), - GameEvent::MvmPickupCurrency(event) => event.write(stream), - GameEvent::MvmBombCarrierKilled(event) => event.write(stream), - GameEvent::MvmSentryBusterDetonate(event) => event.write(stream), - GameEvent::MvmScoutMarkedForDeath(event) => event.write(stream), - GameEvent::MvmMedicPowerUpShared(event) => event.write(stream), - GameEvent::MvmBeginWave(event) => event.write(stream), - GameEvent::MvmWaveComplete(event) => event.write(stream), - GameEvent::MvmMissionComplete(event) => event.write(stream), - GameEvent::MvmBombResetByPlayer(event) => event.write(stream), - GameEvent::MvmBombAlarmTriggered(event) => event.write(stream), - GameEvent::MvmBombDeployResetByPlayer(event) => event.write(stream), - GameEvent::MvmWaveFailed(event) => event.write(stream), - GameEvent::MvmResetStats(event) => event.write(stream), - GameEvent::DamageResisted(event) => event.write(stream), - GameEvent::RevivePlayerNotify(event) => event.write(stream), - GameEvent::RevivePlayerStopped(event) => event.write(stream), - GameEvent::RevivePlayerComplete(event) => event.write(stream), - GameEvent::PlayerTurnedToGhost(event) => event.write(stream), - GameEvent::MedigunShieldBlockedDamage(event) => event.write(stream), - GameEvent::MvmAdvWaveCompleteNoGates(event) => event.write(stream), - GameEvent::MvmSniperHeadshotCurrency(event) => event.write(stream), - GameEvent::MvmMannhattanPit(event) => event.write(stream), - GameEvent::FlagCarriedInDetectionZone(event) => event.write(stream), - GameEvent::MvmAdvWaveKilledStunRadio(event) => event.write(stream), - GameEvent::PlayerDirectHitStun(event) => event.write(stream), - GameEvent::MvmSentryBusterKilled(event) => event.write(stream), - GameEvent::UpgradesFileChanged(event) => event.write(stream), - GameEvent::RdTeamPointsChanged(event) => event.write(stream), - GameEvent::RdRulesStateChanged(event) => event.write(stream), - GameEvent::RdRobotKilled(event) => event.write(stream), - GameEvent::RdRobotImpact(event) => event.write(stream), - GameEvent::TeamPlayPreRoundTimeLeft(event) => event.write(stream), - GameEvent::ParachuteDeploy(event) => event.write(stream), - GameEvent::ParachuteHolster(event) => event.write(stream), - GameEvent::KillRefillsMeter(event) => event.write(stream), - GameEvent::RpsTauntEvent(event) => event.write(stream), - GameEvent::CongaKill(event) => event.write(stream), - GameEvent::PlayerInitialSpawn(event) => event.write(stream), - GameEvent::CompetitiveVictory(event) => event.write(stream), - GameEvent::CompetitiveStatsUpdate(event) => event.write(stream), - GameEvent::MiniGameWin(event) => event.write(stream), - GameEvent::SentryOnGoActive(event) => event.write(stream), - GameEvent::DuckXpLevelUp(event) => event.write(stream), - GameEvent::QuestLogOpened(event) => event.write(stream), - GameEvent::SchemaUpdated(event) => event.write(stream), - GameEvent::LocalPlayerPickupWeapon(event) => event.write(stream), - GameEvent::RdPlayerScorePoints(event) => event.write(stream), - GameEvent::DemomanDetStickies(event) => event.write(stream), - GameEvent::QuestObjectiveCompleted(event) => event.write(stream), - GameEvent::PlayerScoreChanged(event) => event.write(stream), - GameEvent::KilledCappingPlayer(event) => event.write(stream), - GameEvent::EnvironmentalDeath(event) => event.write(stream), - GameEvent::ProjectileDirectHit(event) => event.write(stream), - GameEvent::PassGet(event) => event.write(stream), - GameEvent::PassScore(event) => event.write(stream), - GameEvent::PassFree(event) => event.write(stream), - GameEvent::PassPassCaught(event) => event.write(stream), - GameEvent::PassBallStolen(event) => event.write(stream), - GameEvent::PassBallBlocked(event) => event.write(stream), - GameEvent::DamagePrevented(event) => event.write(stream), - GameEvent::HalloweenBossKilled(event) => event.write(stream), - GameEvent::EscapedLootIsland(event) => event.write(stream), - GameEvent::TaggedPlayerAsIt(event) => event.write(stream), - GameEvent::MerasmusStunned(event) => event.write(stream), - GameEvent::MerasmusPropFound(event) => event.write(stream), - GameEvent::HalloweenSkeletonKilled(event) => event.write(stream), - GameEvent::SkeletonKilledQuest(event) => event.write(stream), - GameEvent::SkeletonKingKilledQuest(event) => event.write(stream), - GameEvent::EscapeHell(event) => event.write(stream), - GameEvent::CrossSpectralBridge(event) => event.write(stream), - GameEvent::MiniGameWon(event) => event.write(stream), - GameEvent::RespawnGhost(event) => event.write(stream), - GameEvent::KillInHell(event) => event.write(stream), - GameEvent::HalloweenDuckCollected(event) => event.write(stream), - GameEvent::SpecialScore(event) => event.write(stream), - GameEvent::TeamLeaderKilled(event) => event.write(stream), - GameEvent::HalloweenSoulCollected(event) => event.write(stream), - GameEvent::RecalculateTruce(event) => event.write(stream), - GameEvent::DeadRingerCheatDeath(event) => event.write(stream), - GameEvent::CrossbowHeal(event) => event.write(stream), - GameEvent::DamageMitigated(event) => event.write(stream), - GameEvent::PayloadPushed(event) => event.write(stream), - GameEvent::PlayerAbandonedMatch(event) => event.write(stream), - GameEvent::ClDrawline(event) => event.write(stream), - GameEvent::RestartTimerTime(event) => event.write(stream), - GameEvent::WinLimitChanged(event) => event.write(stream), - GameEvent::WinPanelShowScores(event) => event.write(stream), - GameEvent::TopStreamsRequestFinished(event) => event.write(stream), - GameEvent::CompetitiveStateChanged(event) => event.write(stream), - GameEvent::GlobalWarDataUpdated(event) => event.write(stream), - GameEvent::StopWatchChanged(event) => event.write(stream), - GameEvent::DsStop(event) => event.write(stream), - GameEvent::DsScreenshot(event) => event.write(stream), - GameEvent::ShowMatchSummary(event) => event.write(stream), - GameEvent::ExperienceChanged(event) => event.write(stream), - GameEvent::BeginXpLerp(event) => event.write(stream), - GameEvent::MatchmakerStatsUpdated(event) => event.write(stream), - GameEvent::RematchVotePeriodOver(event) => event.write(stream), - GameEvent::RematchFailedToCreate(event) => event.write(stream), - GameEvent::PlayerRematchChange(event) => event.write(stream), - GameEvent::PingUpdated(event) => event.write(stream), - GameEvent::MMStatsUpdated(event) => event.write(stream), - GameEvent::PlayerNextMapVoteChange(event) => event.write(stream), - GameEvent::VoteMapsChanged(event) => event.write(stream), - GameEvent::ProtoDefChanged(event) => event.write(stream), - GameEvent::PlayerDomination(event) => event.write(stream), - GameEvent::PlayerRocketPackPushed(event) => event.write(stream), - GameEvent::QuestRequest(event) => event.write(stream), - GameEvent::QuestResponse(event) => event.write(stream), - GameEvent::QuestProgress(event) => event.write(stream), - GameEvent::ProjectileRemoved(event) => event.write(stream), - GameEvent::QuestMapDataChanged(event) => event.write(stream), - GameEvent::GasDousedPlayerIgnited(event) => event.write(stream), - GameEvent::QuestTurnInState(event) => event.write(stream), - GameEvent::ItemsAcknowledged(event) => event.write(stream), - GameEvent::CapperKilled(event) => event.write(stream), - GameEvent::MainMenuStabilized(event) => event.write(stream), - GameEvent::WorldStatusChanged(event) => event.write(stream), - GameEvent::HLTVStatus(event) => event.write(stream), - GameEvent::HLTVCameraman(event) => event.write(stream), - GameEvent::HLTVRankCamera(event) => event.write(stream), - GameEvent::HLTVRankEntity(event) => event.write(stream), - GameEvent::HLTVFixed(event) => event.write(stream), - GameEvent::HLTVChase(event) => event.write(stream), - GameEvent::HLTVMessage(event) => event.write(stream), - GameEvent::HLTVTitle(event) => event.write(stream), - GameEvent::HLTVChat(event) => event.write(stream), - GameEvent::ReplayStartRecord(event) => event.write(stream), - GameEvent::ReplaySessionInfo(event) => event.write(stream), - GameEvent::ReplayEndRecord(event) => event.write(stream), - GameEvent::ReplayReplaysAvailable(event) => event.write(stream), - GameEvent::ReplayServerError(event) => event.write(stream), - GameEvent::Unknown(raw) => raw.write(stream), - } - } - pub fn event_type(&self) -> GameEventType { - match &self { - GameEvent::ServerSpawn(_) => GameEventType::ServerSpawn, - GameEvent::ServerChangeLevelFailed(_) => GameEventType::ServerChangeLevelFailed, - GameEvent::ServerShutdown(_) => GameEventType::ServerShutdown, - GameEvent::ServerCvar(_) => GameEventType::ServerCvar, - GameEvent::ServerMessage(_) => GameEventType::ServerMessage, - GameEvent::ServerAddBan(_) => GameEventType::ServerAddBan, - GameEvent::ServerRemoveBan(_) => GameEventType::ServerRemoveBan, - GameEvent::PlayerConnect(_) => GameEventType::PlayerConnect, - GameEvent::PlayerConnectClient(_) => GameEventType::PlayerConnectClient, - GameEvent::PlayerInfo(_) => GameEventType::PlayerInfo, - GameEvent::PlayerDisconnect(_) => GameEventType::PlayerDisconnect, - GameEvent::PlayerActivate(_) => GameEventType::PlayerActivate, - GameEvent::PlayerSay(_) => GameEventType::PlayerSay, - GameEvent::ClientDisconnect(_) => GameEventType::ClientDisconnect, - GameEvent::ClientBeginConnect(_) => GameEventType::ClientBeginConnect, - GameEvent::ClientConnected(_) => GameEventType::ClientConnected, - GameEvent::ClientFullConnect(_) => GameEventType::ClientFullConnect, - GameEvent::HostQuit(_) => GameEventType::HostQuit, - GameEvent::TeamInfo(_) => GameEventType::TeamInfo, - GameEvent::TeamScore(_) => GameEventType::TeamScore, - GameEvent::TeamPlayBroadcastAudio(_) => GameEventType::TeamPlayBroadcastAudio, - GameEvent::PlayerTeam(_) => GameEventType::PlayerTeam, - GameEvent::PlayerClass(_) => GameEventType::PlayerClass, - GameEvent::PlayerDeath(_) => GameEventType::PlayerDeath, - GameEvent::PlayerHurt(_) => GameEventType::PlayerHurt, - GameEvent::PlayerChat(_) => GameEventType::PlayerChat, - GameEvent::PlayerScore(_) => GameEventType::PlayerScore, - GameEvent::PlayerSpawn(_) => GameEventType::PlayerSpawn, - GameEvent::PlayerShoot(_) => GameEventType::PlayerShoot, - GameEvent::PlayerUse(_) => GameEventType::PlayerUse, - GameEvent::PlayerChangeName(_) => GameEventType::PlayerChangeName, - GameEvent::PlayerHintMessage(_) => GameEventType::PlayerHintMessage, - GameEvent::BasePlayerTeleported(_) => GameEventType::BasePlayerTeleported, - GameEvent::GameInit(_) => GameEventType::GameInit, - GameEvent::GameNewMap(_) => GameEventType::GameNewMap, - GameEvent::GameStart(_) => GameEventType::GameStart, - GameEvent::GameEnd(_) => GameEventType::GameEnd, - GameEvent::RoundStart(_) => GameEventType::RoundStart, - GameEvent::RoundEnd(_) => GameEventType::RoundEnd, - GameEvent::GameMessage(_) => GameEventType::GameMessage, - GameEvent::BreakBreakable(_) => GameEventType::BreakBreakable, - GameEvent::BreakProp(_) => GameEventType::BreakProp, - GameEvent::EntityKilled(_) => GameEventType::EntityKilled, - GameEvent::BonusUpdated(_) => GameEventType::BonusUpdated, - GameEvent::AchievementEvent(_) => GameEventType::AchievementEvent, - GameEvent::AchievementIncrement(_) => GameEventType::AchievementIncrement, - GameEvent::PhysgunPickup(_) => GameEventType::PhysgunPickup, - GameEvent::FlareIgniteNpc(_) => GameEventType::FlareIgniteNpc, - GameEvent::HelicopterGrenadePuntMiss(_) => GameEventType::HelicopterGrenadePuntMiss, - GameEvent::UserDataDownloaded(_) => GameEventType::UserDataDownloaded, - GameEvent::RagdollDissolved(_) => GameEventType::RagdollDissolved, - GameEvent::HLTVChangedMode(_) => GameEventType::HLTVChangedMode, - GameEvent::HLTVChangedTarget(_) => GameEventType::HLTVChangedTarget, - GameEvent::VoteEnded(_) => GameEventType::VoteEnded, - GameEvent::VoteStarted(_) => GameEventType::VoteStarted, - GameEvent::VoteChanged(_) => GameEventType::VoteChanged, - GameEvent::VotePassed(_) => GameEventType::VotePassed, - GameEvent::VoteFailed(_) => GameEventType::VoteFailed, - GameEvent::VoteCast(_) => GameEventType::VoteCast, - GameEvent::VoteOptions(_) => GameEventType::VoteOptions, - GameEvent::ReplaySaved(_) => GameEventType::ReplaySaved, - GameEvent::EnteredPerformanceMode(_) => GameEventType::EnteredPerformanceMode, - GameEvent::BrowseReplays(_) => GameEventType::BrowseReplays, - GameEvent::ReplayYoutubeStats(_) => GameEventType::ReplayYoutubeStats, - GameEvent::InventoryUpdated(_) => GameEventType::InventoryUpdated, - GameEvent::CartUpdated(_) => GameEventType::CartUpdated, - GameEvent::StorePriceSheetUpdated(_) => GameEventType::StorePriceSheetUpdated, - GameEvent::EconInventoryConnected(_) => GameEventType::EconInventoryConnected, - GameEvent::ItemSchemaInitialized(_) => GameEventType::ItemSchemaInitialized, - GameEvent::GcNewSession(_) => GameEventType::GcNewSession, - GameEvent::GcLostSession(_) => GameEventType::GcLostSession, - GameEvent::IntroFinish(_) => GameEventType::IntroFinish, - GameEvent::IntroNextCamera(_) => GameEventType::IntroNextCamera, - GameEvent::PlayerChangeClass(_) => GameEventType::PlayerChangeClass, - GameEvent::TfMapTimeRemaining(_) => GameEventType::TfMapTimeRemaining, - GameEvent::TfGameOver(_) => GameEventType::TfGameOver, - GameEvent::CtfFlagCaptured(_) => GameEventType::CtfFlagCaptured, - GameEvent::ControlPointInitialized(_) => GameEventType::ControlPointInitialized, - GameEvent::ControlPointUpdateImages(_) => GameEventType::ControlPointUpdateImages, - GameEvent::ControlPointUpdateLayout(_) => GameEventType::ControlPointUpdateLayout, - GameEvent::ControlPointUpdateCapping(_) => GameEventType::ControlPointUpdateCapping, - GameEvent::ControlPointUpdateOwner(_) => GameEventType::ControlPointUpdateOwner, - GameEvent::ControlPointStartTouch(_) => GameEventType::ControlPointStartTouch, - GameEvent::ControlPointEndTouch(_) => GameEventType::ControlPointEndTouch, - GameEvent::ControlPointPulseElement(_) => GameEventType::ControlPointPulseElement, - GameEvent::ControlPointFakeCapture(_) => GameEventType::ControlPointFakeCapture, - GameEvent::ControlPointFakeCaptureMultiplier(_) => { - GameEventType::ControlPointFakeCaptureMultiplier - } - GameEvent::TeamPlayRoundSelected(_) => GameEventType::TeamPlayRoundSelected, - GameEvent::TeamPlayRoundStart(_) => GameEventType::TeamPlayRoundStart, - GameEvent::TeamPlayRoundActive(_) => GameEventType::TeamPlayRoundActive, - GameEvent::TeamPlayWaitingBegins(_) => GameEventType::TeamPlayWaitingBegins, - GameEvent::TeamPlayWaitingEnds(_) => GameEventType::TeamPlayWaitingEnds, - GameEvent::TeamPlayWaitingAboutToEnd(_) => GameEventType::TeamPlayWaitingAboutToEnd, - GameEvent::TeamPlayRestartRound(_) => GameEventType::TeamPlayRestartRound, - GameEvent::TeamPlayReadyRestart(_) => GameEventType::TeamPlayReadyRestart, - GameEvent::TeamPlayRoundRestartSeconds(_) => GameEventType::TeamPlayRoundRestartSeconds, GameEvent::TeamPlayTeamReady(_) => GameEventType::TeamPlayTeamReady, GameEvent::TeamPlayRoundWin(_) => GameEventType::TeamPlayRoundWin, GameEvent::TeamPlayUpdateTimer(_) => GameEventType::TeamPlayUpdateTimer, GameEvent::TeamPlayRoundStalemate(_) => GameEventType::TeamPlayRoundStalemate, GameEvent::TeamPlayOvertimeBegin(_) => GameEventType::TeamPlayOvertimeBegin, GameEvent::TeamPlayOvertimeEnd(_) => GameEventType::TeamPlayOvertimeEnd, - GameEvent::TeamPlaySuddenDeathBegin(_) => GameEventType::TeamPlaySuddenDeathBegin, + GameEvent::TeamPlaySuddenDeathBegin(_) => { + GameEventType::TeamPlaySuddenDeathBegin + } GameEvent::TeamPlaySuddenDeathEnd(_) => GameEventType::TeamPlaySuddenDeathEnd, GameEvent::TeamPlayGameOver(_) => GameEventType::TeamPlayGameOver, - GameEvent::TeamPlayMapTimeRemaining(_) => GameEventType::TeamPlayMapTimeRemaining, + GameEvent::TeamPlayMapTimeRemaining(_) => { + GameEventType::TeamPlayMapTimeRemaining + } GameEvent::TeamPlayTimerFlash(_) => GameEventType::TeamPlayTimerFlash, GameEvent::TeamPlayTimerTimeAdded(_) => GameEventType::TeamPlayTimerTimeAdded, - GameEvent::TeamPlayPointStartCapture(_) => GameEventType::TeamPlayPointStartCapture, + GameEvent::TeamPlayPointStartCapture(_) => { + GameEventType::TeamPlayPointStartCapture + } GameEvent::TeamPlayPointCaptured(_) => GameEventType::TeamPlayPointCaptured, GameEvent::TeamPlayPointLocked(_) => GameEventType::TeamPlayPointLocked, GameEvent::TeamPlayPointUnlocked(_) => GameEventType::TeamPlayPointUnlocked, @@ -10119,7 +22655,9 @@ impl GameEvent { GameEvent::TeamPlayCaptureBlocked(_) => GameEventType::TeamPlayCaptureBlocked, GameEvent::TeamPlayFlagEvent(_) => GameEventType::TeamPlayFlagEvent, GameEvent::TeamPlayWinPanel(_) => GameEventType::TeamPlayWinPanel, - GameEvent::TeamPlayTeamBalancedPlayer(_) => GameEventType::TeamPlayTeamBalancedPlayer, + GameEvent::TeamPlayTeamBalancedPlayer(_) => { + GameEventType::TeamPlayTeamBalancedPlayer + } GameEvent::TeamPlaySetupFinished(_) => GameEventType::TeamPlaySetupFinished, GameEvent::TeamPlayAlert(_) => GameEventType::TeamPlayAlert, GameEvent::TrainingComplete(_) => GameEventType::TrainingComplete, @@ -10127,11 +22665,15 @@ impl GameEvent { GameEvent::HideFreezePanel(_) => GameEventType::HideFreezePanel, GameEvent::FreezeCamStarted(_) => GameEventType::FreezeCamStarted, GameEvent::LocalPlayerChangeTeam(_) => GameEventType::LocalPlayerChangeTeam, - GameEvent::LocalPlayerScoreChanged(_) => GameEventType::LocalPlayerScoreChanged, + GameEvent::LocalPlayerScoreChanged(_) => { + GameEventType::LocalPlayerScoreChanged + } GameEvent::LocalPlayerChangeClass(_) => GameEventType::LocalPlayerChangeClass, GameEvent::LocalPlayerRespawn(_) => GameEventType::LocalPlayerRespawn, GameEvent::BuildingInfoChanged(_) => GameEventType::BuildingInfoChanged, - GameEvent::LocalPlayerChangeDisguise(_) => GameEventType::LocalPlayerChangeDisguise, + GameEvent::LocalPlayerChangeDisguise(_) => { + GameEventType::LocalPlayerChangeDisguise + } GameEvent::PlayerAccountChanged(_) => GameEventType::PlayerAccountChanged, GameEvent::SpyPdaReset(_) => GameEventType::SpyPdaReset, GameEvent::FlagStatusUpdate(_) => GameEventType::FlagStatusUpdate, @@ -10148,10 +22690,14 @@ impl GameEvent { GameEvent::AchievementEarned(_) => GameEventType::AchievementEarned, GameEvent::SpecTargetUpdated(_) => GameEventType::SpecTargetUpdated, GameEvent::TournamentStateUpdate(_) => GameEventType::TournamentStateUpdate, - GameEvent::TournamentEnableCountdown(_) => GameEventType::TournamentEnableCountdown, + GameEvent::TournamentEnableCountdown(_) => { + GameEventType::TournamentEnableCountdown + } GameEvent::PlayerCalledForMedic(_) => GameEventType::PlayerCalledForMedic, GameEvent::PlayerAskedForBall(_) => GameEventType::PlayerAskedForBall, - GameEvent::LocalPlayerBecameObserver(_) => GameEventType::LocalPlayerBecameObserver, + GameEvent::LocalPlayerBecameObserver(_) => { + GameEventType::LocalPlayerBecameObserver + } GameEvent::PlayerIgnitedInv(_) => GameEventType::PlayerIgnitedInv, GameEvent::PlayerIgnited(_) => GameEventType::PlayerIgnited, GameEvent::PlayerExtinguished(_) => GameEventType::PlayerExtinguished, @@ -10171,7 +22717,9 @@ impl GameEvent { GameEvent::ShowClassLayout(_) => GameEventType::ShowClassLayout, GameEvent::ShowVsPanel(_) => GameEventType::ShowVsPanel, GameEvent::PlayerDamaged(_) => GameEventType::PlayerDamaged, - GameEvent::ArenaPlayerNotification(_) => GameEventType::ArenaPlayerNotification, + GameEvent::ArenaPlayerNotification(_) => { + GameEventType::ArenaPlayerNotification + } GameEvent::ArenaMatchMaxStreak(_) => GameEventType::ArenaMatchMaxStreak, GameEvent::ArenaRoundStart(_) => GameEventType::ArenaRoundStart, GameEvent::ArenaWinPanel(_) => GameEventType::ArenaWinPanel, @@ -10192,8 +22740,12 @@ impl GameEvent { GameEvent::ItemFound(_) => GameEventType::ItemFound, GameEvent::ShowAnnotation(_) => GameEventType::ShowAnnotation, GameEvent::HideAnnotation(_) => GameEventType::HideAnnotation, - GameEvent::PostInventoryApplication(_) => GameEventType::PostInventoryApplication, - GameEvent::ControlPointUnlockUpdated(_) => GameEventType::ControlPointUnlockUpdated, + GameEvent::PostInventoryApplication(_) => { + GameEventType::PostInventoryApplication + } + GameEvent::ControlPointUnlockUpdated(_) => { + GameEventType::ControlPointUnlockUpdated + } GameEvent::DeployBuffBanner(_) => GameEventType::DeployBuffBanner, GameEvent::PlayerBuff(_) => GameEventType::PlayerBuff, GameEvent::MedicDeath(_) => GameEventType::MedicDeath, @@ -10208,7 +22760,9 @@ impl GameEvent { GameEvent::RocketPackLanded(_) => GameEventType::RocketPackLanded, GameEvent::MedicDefended(_) => GameEventType::MedicDefended, GameEvent::LocalPlayerHealed(_) => GameEventType::LocalPlayerHealed, - GameEvent::PlayerDestroyedPipeBomb(_) => GameEventType::PlayerDestroyedPipeBomb, + GameEvent::PlayerDestroyedPipeBomb(_) => { + GameEventType::PlayerDestroyedPipeBomb + } GameEvent::ObjectDeflected(_) => GameEventType::ObjectDeflected, GameEvent::PlayerMvp(_) => GameEventType::PlayerMvp, GameEvent::RaidSpawnMob(_) => GameEventType::RaidSpawnMob, @@ -10219,8 +22773,12 @@ impl GameEvent { GameEvent::PlayerRegenerate(_) => GameEventType::PlayerRegenerate, GameEvent::UpdateStatusItem(_) => GameEventType::UpdateStatusItem, GameEvent::StatsResetRound(_) => GameEventType::StatsResetRound, - GameEvent::ScoreStatsAccumulatedUpdate(_) => GameEventType::ScoreStatsAccumulatedUpdate, - GameEvent::ScoreStatsAccumulatedReset(_) => GameEventType::ScoreStatsAccumulatedReset, + GameEvent::ScoreStatsAccumulatedUpdate(_) => { + GameEventType::ScoreStatsAccumulatedUpdate + } + GameEvent::ScoreStatsAccumulatedReset(_) => { + GameEventType::ScoreStatsAccumulatedReset + } GameEvent::AchievementEarnedLocal(_) => GameEventType::AchievementEarnedLocal, GameEvent::PlayerHealed(_) => GameEventType::PlayerHealed, GameEvent::BuildingHealed(_) => GameEventType::BuildingHealed, @@ -10240,19 +22798,27 @@ impl GameEvent { GameEvent::EyeballBossStunned(_) => GameEventType::EyeballBossStunned, GameEvent::EyeballBossKilled(_) => GameEventType::EyeballBossKilled, GameEvent::EyeballBossKiller(_) => GameEventType::EyeballBossKiller, - GameEvent::EyeballBossEscapeImminent(_) => GameEventType::EyeballBossEscapeImminent, + GameEvent::EyeballBossEscapeImminent(_) => { + GameEventType::EyeballBossEscapeImminent + } GameEvent::EyeballBossEscaped(_) => GameEventType::EyeballBossEscaped, GameEvent::NpcHurt(_) => GameEventType::NpcHurt, - GameEvent::ControlPointTimerUpdated(_) => GameEventType::ControlPointTimerUpdated, + GameEvent::ControlPointTimerUpdated(_) => { + GameEventType::ControlPointTimerUpdated + } GameEvent::PlayerHighFiveStart(_) => GameEventType::PlayerHighFiveStart, GameEvent::PlayerHighFiveCancel(_) => GameEventType::PlayerHighFiveCancel, GameEvent::PlayerHighFiveSuccess(_) => GameEventType::PlayerHighFiveSuccess, GameEvent::PlayerBonusPoints(_) => GameEventType::PlayerBonusPoints, GameEvent::PlayerUpgraded(_) => GameEventType::PlayerUpgraded, GameEvent::PlayerBuyback(_) => GameEventType::PlayerBuyback, - GameEvent::PlayerUsedPowerUpBottle(_) => GameEventType::PlayerUsedPowerUpBottle, + GameEvent::PlayerUsedPowerUpBottle(_) => { + GameEventType::PlayerUsedPowerUpBottle + } GameEvent::ChristmasGiftGrab(_) => GameEventType::ChristmasGiftGrab, - GameEvent::PlayerKilledAchievementZone(_) => GameEventType::PlayerKilledAchievementZone, + GameEvent::PlayerKilledAchievementZone(_) => { + GameEventType::PlayerKilledAchievementZone + } GameEvent::PartyUpdated(_) => GameEventType::PartyUpdated, GameEvent::PartyPrefChanged(_) => GameEventType::PartyPrefChanged, GameEvent::PartyCriteriaChanged(_) => GameEventType::PartyCriteriaChanged, @@ -10267,16 +22833,26 @@ impl GameEvent { GameEvent::RecalculateHolidays(_) => GameEventType::RecalculateHolidays, GameEvent::PlayerCurrencyChanged(_) => GameEventType::PlayerCurrencyChanged, GameEvent::DoomsdayRocketOpen(_) => GameEventType::DoomsdayRocketOpen, - GameEvent::RemoveNemesisRelationships(_) => GameEventType::RemoveNemesisRelationships, + GameEvent::RemoveNemesisRelationships(_) => { + GameEventType::RemoveNemesisRelationships + } GameEvent::MvmCreditBonusWave(_) => GameEventType::MvmCreditBonusWave, GameEvent::MvmCreditBonusAll(_) => GameEventType::MvmCreditBonusAll, - GameEvent::MvmCreditBonusAllAdvanced(_) => GameEventType::MvmCreditBonusAllAdvanced, + GameEvent::MvmCreditBonusAllAdvanced(_) => { + GameEventType::MvmCreditBonusAllAdvanced + } GameEvent::MvmQuickSentryUpgrade(_) => GameEventType::MvmQuickSentryUpgrade, - GameEvent::MvmTankDestroyedByPlayers(_) => GameEventType::MvmTankDestroyedByPlayers, - GameEvent::MvmKillRobotDeliveringBomb(_) => GameEventType::MvmKillRobotDeliveringBomb, + GameEvent::MvmTankDestroyedByPlayers(_) => { + GameEventType::MvmTankDestroyedByPlayers + } + GameEvent::MvmKillRobotDeliveringBomb(_) => { + GameEventType::MvmKillRobotDeliveringBomb + } GameEvent::MvmPickupCurrency(_) => GameEventType::MvmPickupCurrency, GameEvent::MvmBombCarrierKilled(_) => GameEventType::MvmBombCarrierKilled, - GameEvent::MvmSentryBusterDetonate(_) => GameEventType::MvmSentryBusterDetonate, + GameEvent::MvmSentryBusterDetonate(_) => { + GameEventType::MvmSentryBusterDetonate + } GameEvent::MvmScoutMarkedForDeath(_) => GameEventType::MvmScoutMarkedForDeath, GameEvent::MvmMedicPowerUpShared(_) => GameEventType::MvmMedicPowerUpShared, GameEvent::MvmBeginWave(_) => GameEventType::MvmBeginWave, @@ -10284,7 +22860,9 @@ impl GameEvent { GameEvent::MvmMissionComplete(_) => GameEventType::MvmMissionComplete, GameEvent::MvmBombResetByPlayer(_) => GameEventType::MvmBombResetByPlayer, GameEvent::MvmBombAlarmTriggered(_) => GameEventType::MvmBombAlarmTriggered, - GameEvent::MvmBombDeployResetByPlayer(_) => GameEventType::MvmBombDeployResetByPlayer, + GameEvent::MvmBombDeployResetByPlayer(_) => { + GameEventType::MvmBombDeployResetByPlayer + } GameEvent::MvmWaveFailed(_) => GameEventType::MvmWaveFailed, GameEvent::MvmResetStats(_) => GameEventType::MvmResetStats, GameEvent::DamageResisted(_) => GameEventType::DamageResisted, @@ -10292,12 +22870,22 @@ impl GameEvent { GameEvent::RevivePlayerStopped(_) => GameEventType::RevivePlayerStopped, GameEvent::RevivePlayerComplete(_) => GameEventType::RevivePlayerComplete, GameEvent::PlayerTurnedToGhost(_) => GameEventType::PlayerTurnedToGhost, - GameEvent::MedigunShieldBlockedDamage(_) => GameEventType::MedigunShieldBlockedDamage, - GameEvent::MvmAdvWaveCompleteNoGates(_) => GameEventType::MvmAdvWaveCompleteNoGates, - GameEvent::MvmSniperHeadshotCurrency(_) => GameEventType::MvmSniperHeadshotCurrency, + GameEvent::MedigunShieldBlockedDamage(_) => { + GameEventType::MedigunShieldBlockedDamage + } + GameEvent::MvmAdvWaveCompleteNoGates(_) => { + GameEventType::MvmAdvWaveCompleteNoGates + } + GameEvent::MvmSniperHeadshotCurrency(_) => { + GameEventType::MvmSniperHeadshotCurrency + } GameEvent::MvmMannhattanPit(_) => GameEventType::MvmMannhattanPit, - GameEvent::FlagCarriedInDetectionZone(_) => GameEventType::FlagCarriedInDetectionZone, - GameEvent::MvmAdvWaveKilledStunRadio(_) => GameEventType::MvmAdvWaveKilledStunRadio, + GameEvent::FlagCarriedInDetectionZone(_) => { + GameEventType::FlagCarriedInDetectionZone + } + GameEvent::MvmAdvWaveKilledStunRadio(_) => { + GameEventType::MvmAdvWaveKilledStunRadio + } GameEvent::PlayerDirectHitStun(_) => GameEventType::PlayerDirectHitStun, GameEvent::MvmSentryBusterKilled(_) => GameEventType::MvmSentryBusterKilled, GameEvent::UpgradesFileChanged(_) => GameEventType::UpgradesFileChanged, @@ -10305,7 +22893,9 @@ impl GameEvent { GameEvent::RdRulesStateChanged(_) => GameEventType::RdRulesStateChanged, GameEvent::RdRobotKilled(_) => GameEventType::RdRobotKilled, GameEvent::RdRobotImpact(_) => GameEventType::RdRobotImpact, - GameEvent::TeamPlayPreRoundTimeLeft(_) => GameEventType::TeamPlayPreRoundTimeLeft, + GameEvent::TeamPlayPreRoundTimeLeft(_) => { + GameEventType::TeamPlayPreRoundTimeLeft + } GameEvent::ParachuteDeploy(_) => GameEventType::ParachuteDeploy, GameEvent::ParachuteHolster(_) => GameEventType::ParachuteHolster, GameEvent::KillRefillsMeter(_) => GameEventType::KillRefillsMeter, @@ -10319,10 +22909,14 @@ impl GameEvent { GameEvent::DuckXpLevelUp(_) => GameEventType::DuckXpLevelUp, GameEvent::QuestLogOpened(_) => GameEventType::QuestLogOpened, GameEvent::SchemaUpdated(_) => GameEventType::SchemaUpdated, - GameEvent::LocalPlayerPickupWeapon(_) => GameEventType::LocalPlayerPickupWeapon, + GameEvent::LocalPlayerPickupWeapon(_) => { + GameEventType::LocalPlayerPickupWeapon + } GameEvent::RdPlayerScorePoints(_) => GameEventType::RdPlayerScorePoints, GameEvent::DemomanDetStickies(_) => GameEventType::DemomanDetStickies, - GameEvent::QuestObjectiveCompleted(_) => GameEventType::QuestObjectiveCompleted, + GameEvent::QuestObjectiveCompleted(_) => { + GameEventType::QuestObjectiveCompleted + } GameEvent::PlayerScoreChanged(_) => GameEventType::PlayerScoreChanged, GameEvent::KilledCappingPlayer(_) => GameEventType::KilledCappingPlayer, GameEvent::EnvironmentalDeath(_) => GameEventType::EnvironmentalDeath, @@ -10339,9 +22933,13 @@ impl GameEvent { GameEvent::TaggedPlayerAsIt(_) => GameEventType::TaggedPlayerAsIt, GameEvent::MerasmusStunned(_) => GameEventType::MerasmusStunned, GameEvent::MerasmusPropFound(_) => GameEventType::MerasmusPropFound, - GameEvent::HalloweenSkeletonKilled(_) => GameEventType::HalloweenSkeletonKilled, + GameEvent::HalloweenSkeletonKilled(_) => { + GameEventType::HalloweenSkeletonKilled + } GameEvent::SkeletonKilledQuest(_) => GameEventType::SkeletonKilledQuest, - GameEvent::SkeletonKingKilledQuest(_) => GameEventType::SkeletonKingKilledQuest, + GameEvent::SkeletonKingKilledQuest(_) => { + GameEventType::SkeletonKingKilledQuest + } GameEvent::EscapeHell(_) => GameEventType::EscapeHell, GameEvent::CrossSpectralBridge(_) => GameEventType::CrossSpectralBridge, GameEvent::MiniGameWon(_) => GameEventType::MiniGameWon, @@ -10361,8 +22959,12 @@ impl GameEvent { GameEvent::RestartTimerTime(_) => GameEventType::RestartTimerTime, GameEvent::WinLimitChanged(_) => GameEventType::WinLimitChanged, GameEvent::WinPanelShowScores(_) => GameEventType::WinPanelShowScores, - GameEvent::TopStreamsRequestFinished(_) => GameEventType::TopStreamsRequestFinished, - GameEvent::CompetitiveStateChanged(_) => GameEventType::CompetitiveStateChanged, + GameEvent::TopStreamsRequestFinished(_) => { + GameEventType::TopStreamsRequestFinished + } + GameEvent::CompetitiveStateChanged(_) => { + GameEventType::CompetitiveStateChanged + } GameEvent::GlobalWarDataUpdated(_) => GameEventType::GlobalWarDataUpdated, GameEvent::StopWatchChanged(_) => GameEventType::StopWatchChanged, GameEvent::DsStop(_) => GameEventType::DsStop, @@ -10376,7 +22978,9 @@ impl GameEvent { GameEvent::PlayerRematchChange(_) => GameEventType::PlayerRematchChange, GameEvent::PingUpdated(_) => GameEventType::PingUpdated, GameEvent::MMStatsUpdated(_) => GameEventType::MMStatsUpdated, - GameEvent::PlayerNextMapVoteChange(_) => GameEventType::PlayerNextMapVoteChange, + GameEvent::PlayerNextMapVoteChange(_) => { + GameEventType::PlayerNextMapVoteChange + } GameEvent::VoteMapsChanged(_) => GameEventType::VoteMapsChanged, GameEvent::ProtoDefChanged(_) => GameEventType::ProtoDefChanged, GameEvent::PlayerDomination(_) => GameEventType::PlayerDomination, @@ -10413,53 +23017,26 @@ impl GameEvent { pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { [ ("ServerSpawn", std::mem::size_of::()), - ( - "ServerChangeLevelFailed", - std::mem::size_of::(), - ), + ("ServerChangeLevelFailed", std::mem::size_of::()), ("ServerShutdown", std::mem::size_of::()), ("ServerCvar", std::mem::size_of::()), ("ServerMessage", std::mem::size_of::()), ("ServerAddBan", std::mem::size_of::()), - ( - "ServerRemoveBan", - std::mem::size_of::(), - ), + ("ServerRemoveBan", std::mem::size_of::()), ("PlayerConnect", std::mem::size_of::()), - ( - "PlayerConnectClient", - std::mem::size_of::(), - ), + ("PlayerConnectClient", std::mem::size_of::()), ("PlayerInfo", std::mem::size_of::()), - ( - "PlayerDisconnect", - std::mem::size_of::(), - ), + ("PlayerDisconnect", std::mem::size_of::()), ("PlayerActivate", std::mem::size_of::()), ("PlayerSay", std::mem::size_of::()), - ( - "ClientDisconnect", - std::mem::size_of::(), - ), - ( - "ClientBeginConnect", - std::mem::size_of::(), - ), - ( - "ClientConnected", - std::mem::size_of::(), - ), - ( - "ClientFullConnect", - std::mem::size_of::(), - ), + ("ClientDisconnect", std::mem::size_of::()), + ("ClientBeginConnect", std::mem::size_of::()), + ("ClientConnected", std::mem::size_of::()), + ("ClientFullConnect", std::mem::size_of::()), ("HostQuit", std::mem::size_of::()), ("TeamInfo", std::mem::size_of::()), ("TeamScore", std::mem::size_of::()), - ( - "TeamPlayBroadcastAudio", - std::mem::size_of::(), - ), + ("TeamPlayBroadcastAudio", std::mem::size_of::()), ("PlayerTeam", std::mem::size_of::()), ("PlayerClass", std::mem::size_of::()), ("PlayerDeath", std::mem::size_of::()), @@ -10469,18 +23046,9 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("PlayerSpawn", std::mem::size_of::()), ("PlayerShoot", std::mem::size_of::()), ("PlayerUse", std::mem::size_of::()), - ( - "PlayerChangeName", - std::mem::size_of::(), - ), - ( - "PlayerHintMessage", - std::mem::size_of::(), - ), - ( - "BasePlayerTeleported", - std::mem::size_of::(), - ), + ("PlayerChangeName", std::mem::size_of::()), + ("PlayerHintMessage", std::mem::size_of::()), + ("BasePlayerTeleported", std::mem::size_of::()), ("GameInit", std::mem::size_of::()), ("GameNewMap", std::mem::size_of::()), ("GameStart", std::mem::size_of::()), @@ -10492,36 +23060,18 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("BreakProp", std::mem::size_of::()), ("EntityKilled", std::mem::size_of::()), ("BonusUpdated", std::mem::size_of::()), - ( - "AchievementEvent", - std::mem::size_of::(), - ), - ( - "AchievementIncrement", - std::mem::size_of::(), - ), + ("AchievementEvent", std::mem::size_of::()), + ("AchievementIncrement", std::mem::size_of::()), ("PhysgunPickup", std::mem::size_of::()), ("FlareIgniteNpc", std::mem::size_of::()), ( "HelicopterGrenadePuntMiss", std::mem::size_of::(), ), - ( - "UserDataDownloaded", - std::mem::size_of::(), - ), - ( - "RagdollDissolved", - std::mem::size_of::(), - ), - ( - "HLTVChangedMode", - std::mem::size_of::(), - ), - ( - "HLTVChangedTarget", - std::mem::size_of::(), - ), + ("UserDataDownloaded", std::mem::size_of::()), + ("RagdollDissolved", std::mem::size_of::()), + ("HLTVChangedMode", std::mem::size_of::()), + ("HLTVChangedTarget", std::mem::size_of::()), ("VoteEnded", std::mem::size_of::()), ("VoteStarted", std::mem::size_of::()), ("VoteChanged", std::mem::size_of::()), @@ -10530,56 +23080,23 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("VoteCast", std::mem::size_of::()), ("VoteOptions", std::mem::size_of::()), ("ReplaySaved", std::mem::size_of::()), - ( - "EnteredPerformanceMode", - std::mem::size_of::(), - ), + ("EnteredPerformanceMode", std::mem::size_of::()), ("BrowseReplays", std::mem::size_of::()), - ( - "ReplayYoutubeStats", - std::mem::size_of::(), - ), - ( - "InventoryUpdated", - std::mem::size_of::(), - ), + ("ReplayYoutubeStats", std::mem::size_of::()), + ("InventoryUpdated", std::mem::size_of::()), ("CartUpdated", std::mem::size_of::()), - ( - "StorePriceSheetUpdated", - std::mem::size_of::(), - ), - ( - "EconInventoryConnected", - std::mem::size_of::(), - ), - ( - "ItemSchemaInitialized", - std::mem::size_of::(), - ), + ("StorePriceSheetUpdated", std::mem::size_of::()), + ("EconInventoryConnected", std::mem::size_of::()), + ("ItemSchemaInitialized", std::mem::size_of::()), ("GcNewSession", std::mem::size_of::()), ("GcLostSession", std::mem::size_of::()), ("IntroFinish", std::mem::size_of::()), - ( - "IntroNextCamera", - std::mem::size_of::(), - ), - ( - "PlayerChangeClass", - std::mem::size_of::(), - ), - ( - "TfMapTimeRemaining", - std::mem::size_of::(), - ), + ("IntroNextCamera", std::mem::size_of::()), + ("PlayerChangeClass", std::mem::size_of::()), + ("TfMapTimeRemaining", std::mem::size_of::()), ("TfGameOver", std::mem::size_of::()), - ( - "CtfFlagCaptured", - std::mem::size_of::(), - ), - ( - "ControlPointInitialized", - std::mem::size_of::(), - ), + ("CtfFlagCaptured", std::mem::size_of::()), + ("ControlPointInitialized", std::mem::size_of::()), ( "ControlPointUpdateImages", std::mem::size_of::(), @@ -10592,366 +23109,144 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ControlPointUpdateCapping", std::mem::size_of::(), ), - ( - "ControlPointUpdateOwner", - std::mem::size_of::(), - ), - ( - "ControlPointStartTouch", - std::mem::size_of::(), - ), - ( - "ControlPointEndTouch", - std::mem::size_of::(), - ), + ("ControlPointUpdateOwner", std::mem::size_of::()), + ("ControlPointStartTouch", std::mem::size_of::()), + ("ControlPointEndTouch", std::mem::size_of::()), ( "ControlPointPulseElement", std::mem::size_of::(), ), - ( - "ControlPointFakeCapture", - std::mem::size_of::(), - ), + ("ControlPointFakeCapture", std::mem::size_of::()), ( "ControlPointFakeCaptureMultiplier", std::mem::size_of::(), ), - ( - "TeamPlayRoundSelected", - std::mem::size_of::(), - ), - ( - "TeamPlayRoundStart", - std::mem::size_of::(), - ), - ( - "TeamPlayRoundActive", - std::mem::size_of::(), - ), - ( - "TeamPlayWaitingBegins", - std::mem::size_of::(), - ), - ( - "TeamPlayWaitingEnds", - std::mem::size_of::(), - ), + ("TeamPlayRoundSelected", std::mem::size_of::()), + ("TeamPlayRoundStart", std::mem::size_of::()), + ("TeamPlayRoundActive", std::mem::size_of::()), + ("TeamPlayWaitingBegins", std::mem::size_of::()), + ("TeamPlayWaitingEnds", std::mem::size_of::()), ( "TeamPlayWaitingAboutToEnd", std::mem::size_of::(), ), - ( - "TeamPlayRestartRound", - std::mem::size_of::(), - ), - ( - "TeamPlayReadyRestart", - std::mem::size_of::(), - ), + ("TeamPlayRestartRound", std::mem::size_of::()), + ("TeamPlayReadyRestart", std::mem::size_of::()), ( "TeamPlayRoundRestartSeconds", std::mem::size_of::(), ), - ( - "TeamPlayTeamReady", - std::mem::size_of::(), - ), - ( - "TeamPlayRoundWin", - std::mem::size_of::(), - ), - ( - "TeamPlayUpdateTimer", - std::mem::size_of::(), - ), - ( - "TeamPlayRoundStalemate", - std::mem::size_of::(), - ), - ( - "TeamPlayOvertimeBegin", - std::mem::size_of::(), - ), - ( - "TeamPlayOvertimeEnd", - std::mem::size_of::(), - ), + ("TeamPlayTeamReady", std::mem::size_of::()), + ("TeamPlayRoundWin", std::mem::size_of::()), + ("TeamPlayUpdateTimer", std::mem::size_of::()), + ("TeamPlayRoundStalemate", std::mem::size_of::()), + ("TeamPlayOvertimeBegin", std::mem::size_of::()), + ("TeamPlayOvertimeEnd", std::mem::size_of::()), ( "TeamPlaySuddenDeathBegin", std::mem::size_of::(), ), - ( - "TeamPlaySuddenDeathEnd", - std::mem::size_of::(), - ), - ( - "TeamPlayGameOver", - std::mem::size_of::(), - ), + ("TeamPlaySuddenDeathEnd", std::mem::size_of::()), + ("TeamPlayGameOver", std::mem::size_of::()), ( "TeamPlayMapTimeRemaining", std::mem::size_of::(), ), - ( - "TeamPlayTimerFlash", - std::mem::size_of::(), - ), - ( - "TeamPlayTimerTimeAdded", - std::mem::size_of::(), - ), + ("TeamPlayTimerFlash", std::mem::size_of::()), + ("TeamPlayTimerTimeAdded", std::mem::size_of::()), ( "TeamPlayPointStartCapture", std::mem::size_of::(), ), - ( - "TeamPlayPointCaptured", - std::mem::size_of::(), - ), - ( - "TeamPlayPointLocked", - std::mem::size_of::(), - ), - ( - "TeamPlayPointUnlocked", - std::mem::size_of::(), - ), - ( - "TeamPlayCaptureBroken", - std::mem::size_of::(), - ), - ( - "TeamPlayCaptureBlocked", - std::mem::size_of::(), - ), - ( - "TeamPlayFlagEvent", - std::mem::size_of::(), - ), - ( - "TeamPlayWinPanel", - std::mem::size_of::(), - ), + ("TeamPlayPointCaptured", std::mem::size_of::()), + ("TeamPlayPointLocked", std::mem::size_of::()), + ("TeamPlayPointUnlocked", std::mem::size_of::()), + ("TeamPlayCaptureBroken", std::mem::size_of::()), + ("TeamPlayCaptureBlocked", std::mem::size_of::()), + ("TeamPlayFlagEvent", std::mem::size_of::()), + ("TeamPlayWinPanel", std::mem::size_of::()), ( "TeamPlayTeamBalancedPlayer", std::mem::size_of::(), ), - ( - "TeamPlaySetupFinished", - std::mem::size_of::(), - ), + ("TeamPlaySetupFinished", std::mem::size_of::()), ("TeamPlayAlert", std::mem::size_of::()), - ( - "TrainingComplete", - std::mem::size_of::(), - ), - ( - "ShowFreezePanel", - std::mem::size_of::(), - ), - ( - "HideFreezePanel", - std::mem::size_of::(), - ), - ( - "FreezeCamStarted", - std::mem::size_of::(), - ), - ( - "LocalPlayerChangeTeam", - std::mem::size_of::(), - ), - ( - "LocalPlayerScoreChanged", - std::mem::size_of::(), - ), - ( - "LocalPlayerChangeClass", - std::mem::size_of::(), - ), - ( - "LocalPlayerRespawn", - std::mem::size_of::(), - ), - ( - "BuildingInfoChanged", - std::mem::size_of::(), - ), + ("TrainingComplete", std::mem::size_of::()), + ("ShowFreezePanel", std::mem::size_of::()), + ("HideFreezePanel", std::mem::size_of::()), + ("FreezeCamStarted", std::mem::size_of::()), + ("LocalPlayerChangeTeam", std::mem::size_of::()), + ("LocalPlayerScoreChanged", std::mem::size_of::()), + ("LocalPlayerChangeClass", std::mem::size_of::()), + ("LocalPlayerRespawn", std::mem::size_of::()), + ("BuildingInfoChanged", std::mem::size_of::()), ( "LocalPlayerChangeDisguise", std::mem::size_of::(), ), - ( - "PlayerAccountChanged", - std::mem::size_of::(), - ), + ("PlayerAccountChanged", std::mem::size_of::()), ("SpyPdaReset", std::mem::size_of::()), - ( - "FlagStatusUpdate", - std::mem::size_of::(), - ), - ( - "PlayerStatsUpdated", - std::mem::size_of::(), - ), - ( - "PlayingCommentary", - std::mem::size_of::(), - ), - ( - "PlayerChargeDeployed", - std::mem::size_of::(), - ), - ( - "PlayerBuiltObject", - std::mem::size_of::(), - ), - ( - "PlayerUpgradedObject", - std::mem::size_of::(), - ), - ( - "PlayerCarryObject", - std::mem::size_of::(), - ), - ( - "PlayerDropObject", - std::mem::size_of::(), - ), + ("FlagStatusUpdate", std::mem::size_of::()), + ("PlayerStatsUpdated", std::mem::size_of::()), + ("PlayingCommentary", std::mem::size_of::()), + ("PlayerChargeDeployed", std::mem::size_of::()), + ("PlayerBuiltObject", std::mem::size_of::()), + ("PlayerUpgradedObject", std::mem::size_of::()), + ("PlayerCarryObject", std::mem::size_of::()), + ("PlayerDropObject", std::mem::size_of::()), ("ObjectRemoved", std::mem::size_of::()), - ( - "ObjectDestroyed", - std::mem::size_of::(), - ), - ( - "ObjectDetonated", - std::mem::size_of::(), - ), - ( - "AchievementEarned", - std::mem::size_of::(), - ), - ( - "SpecTargetUpdated", - std::mem::size_of::(), - ), - ( - "TournamentStateUpdate", - std::mem::size_of::(), - ), + ("ObjectDestroyed", std::mem::size_of::()), + ("ObjectDetonated", std::mem::size_of::()), + ("AchievementEarned", std::mem::size_of::()), + ("SpecTargetUpdated", std::mem::size_of::()), + ("TournamentStateUpdate", std::mem::size_of::()), ( "TournamentEnableCountdown", std::mem::size_of::(), ), - ( - "PlayerCalledForMedic", - std::mem::size_of::(), - ), - ( - "PlayerAskedForBall", - std::mem::size_of::(), - ), + ("PlayerCalledForMedic", std::mem::size_of::()), + ("PlayerAskedForBall", std::mem::size_of::()), ( "LocalPlayerBecameObserver", std::mem::size_of::(), ), - ( - "PlayerIgnitedInv", - std::mem::size_of::(), - ), + ("PlayerIgnitedInv", std::mem::size_of::()), ("PlayerIgnited", std::mem::size_of::()), - ( - "PlayerExtinguished", - std::mem::size_of::(), - ), - ( - "PlayerTeleported", - std::mem::size_of::(), - ), - ( - "PlayerHealedMedicCall", - std::mem::size_of::(), - ), - ( - "LocalPlayerChargeReady", - std::mem::size_of::(), - ), - ( - "LocalPlayerWindDown", - std::mem::size_of::(), - ), + ("PlayerExtinguished", std::mem::size_of::()), + ("PlayerTeleported", std::mem::size_of::()), + ("PlayerHealedMedicCall", std::mem::size_of::()), + ("LocalPlayerChargeReady", std::mem::size_of::()), + ("LocalPlayerWindDown", std::mem::size_of::()), ("PlayerInvulned", std::mem::size_of::()), ("EscortSpeed", std::mem::size_of::()), ("EscortProgress", std::mem::size_of::()), ("EscortRecede", std::mem::size_of::()), - ( - "GameUIActivated", - std::mem::size_of::(), - ), + ("GameUIActivated", std::mem::size_of::()), ("GameUIHidden", std::mem::size_of::()), - ( - "PlayerEscortScore", - std::mem::size_of::(), - ), - ( - "PlayerHealOnHit", - std::mem::size_of::(), - ), - ( - "PlayerStealSandvich", - std::mem::size_of::(), - ), - ( - "ShowClassLayout", - std::mem::size_of::(), - ), + ("PlayerEscortScore", std::mem::size_of::()), + ("PlayerHealOnHit", std::mem::size_of::()), + ("PlayerStealSandvich", std::mem::size_of::()), + ("ShowClassLayout", std::mem::size_of::()), ("ShowVsPanel", std::mem::size_of::()), ("PlayerDamaged", std::mem::size_of::()), - ( - "ArenaPlayerNotification", - std::mem::size_of::(), - ), - ( - "ArenaMatchMaxStreak", - std::mem::size_of::(), - ), - ( - "ArenaRoundStart", - std::mem::size_of::(), - ), + ("ArenaPlayerNotification", std::mem::size_of::()), + ("ArenaMatchMaxStreak", std::mem::size_of::()), + ("ArenaRoundStart", std::mem::size_of::()), ("ArenaWinPanel", std::mem::size_of::()), ("PveWinPanel", std::mem::size_of::()), ("AirDash", std::mem::size_of::()), ("Landed", std::mem::size_of::()), - ( - "PlayerDamageDodged", - std::mem::size_of::(), - ), + ("PlayerDamageDodged", std::mem::size_of::()), ("PlayerStunned", std::mem::size_of::()), ("ScoutGrandSlam", std::mem::size_of::()), - ( - "ScoutSlamdollLanded", - std::mem::size_of::(), - ), + ("ScoutSlamdollLanded", std::mem::size_of::()), ("ArrowImpact", std::mem::size_of::()), ("PlayerJarated", std::mem::size_of::()), - ( - "PlayerJaratedFade", - std::mem::size_of::(), - ), - ( - "PlayerShieldBlocked", - std::mem::size_of::(), - ), + ("PlayerJaratedFade", std::mem::size_of::()), + ("PlayerShieldBlocked", std::mem::size_of::()), ("PlayerPinned", std::mem::size_of::()), - ( - "PlayerHealedByMedic", - std::mem::size_of::(), - ), - ( - "PlayerSappedObject", - std::mem::size_of::(), - ), + ("PlayerHealedByMedic", std::mem::size_of::()), + ("PlayerSappedObject", std::mem::size_of::()), ("ItemFound", std::mem::size_of::()), ("ShowAnnotation", std::mem::size_of::()), ("HideAnnotation", std::mem::size_of::()), @@ -10963,73 +23258,31 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ControlPointUnlockUpdated", std::mem::size_of::(), ), - ( - "DeployBuffBanner", - std::mem::size_of::(), - ), + ("DeployBuffBanner", std::mem::size_of::()), ("PlayerBuff", std::mem::size_of::()), ("MedicDeath", std::mem::size_of::()), ("OvertimeNag", std::mem::size_of::()), ("TeamsChanged", std::mem::size_of::()), - ( - "HalloweenPumpkinGrab", - std::mem::size_of::(), - ), + ("HalloweenPumpkinGrab", std::mem::size_of::()), ("RocketJump", std::mem::size_of::()), - ( - "RocketJumpLanded", - std::mem::size_of::(), - ), + ("RocketJumpLanded", std::mem::size_of::()), ("StickyJump", std::mem::size_of::()), - ( - "StickyJumpLanded", - std::mem::size_of::(), - ), - ( - "RocketPackLaunch", - std::mem::size_of::(), - ), - ( - "RocketPackLanded", - std::mem::size_of::(), - ), + ("StickyJumpLanded", std::mem::size_of::()), + ("RocketPackLaunch", std::mem::size_of::()), + ("RocketPackLanded", std::mem::size_of::()), ("MedicDefended", std::mem::size_of::()), - ( - "LocalPlayerHealed", - std::mem::size_of::(), - ), - ( - "PlayerDestroyedPipeBomb", - std::mem::size_of::(), - ), - ( - "ObjectDeflected", - std::mem::size_of::(), - ), + ("LocalPlayerHealed", std::mem::size_of::()), + ("PlayerDestroyedPipeBomb", std::mem::size_of::()), + ("ObjectDeflected", std::mem::size_of::()), ("PlayerMvp", std::mem::size_of::()), ("RaidSpawnMob", std::mem::size_of::()), ("RaidSpawnSquad", std::mem::size_of::()), ("NavBlocked", std::mem::size_of::()), - ( - "PathTrackPassed", - std::mem::size_of::(), - ), - ( - "NumCappersChanged", - std::mem::size_of::(), - ), - ( - "PlayerRegenerate", - std::mem::size_of::(), - ), - ( - "UpdateStatusItem", - std::mem::size_of::(), - ), - ( - "StatsResetRound", - std::mem::size_of::(), - ), + ("PathTrackPassed", std::mem::size_of::()), + ("NumCappersChanged", std::mem::size_of::()), + ("PlayerRegenerate", std::mem::size_of::()), + ("UpdateStatusItem", std::mem::size_of::()), + ("StatsResetRound", std::mem::size_of::()), ( "ScoreStatsAccumulatedUpdate", std::mem::size_of::(), @@ -11038,10 +23291,7 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ScoreStatsAccumulatedReset", std::mem::size_of::(), ), - ( - "AchievementEarnedLocal", - std::mem::size_of::(), - ), + ("AchievementEarnedLocal", std::mem::size_of::()), ("PlayerHealed", std::mem::size_of::()), ("BuildingHealed", std::mem::size_of::()), ("ItemPickup", std::mem::size_of::()), @@ -11050,153 +23300,63 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("FishNoticeArm", std::mem::size_of::()), ("SlapNotice", std::mem::size_of::()), ("ThrowableHit", std::mem::size_of::()), - ( - "PumpkinLordSummoned", - std::mem::size_of::(), - ), - ( - "PumpkinLordKilled", - std::mem::size_of::(), - ), - ( - "MerasmusSummoned", - std::mem::size_of::(), - ), + ("PumpkinLordSummoned", std::mem::size_of::()), + ("PumpkinLordKilled", std::mem::size_of::()), + ("MerasmusSummoned", std::mem::size_of::()), ("MerasmusKilled", std::mem::size_of::()), - ( - "MerasmusEscapeWarning", - std::mem::size_of::(), - ), - ( - "MerasmusEscaped", - std::mem::size_of::(), - ), - ( - "EyeballBossSummoned", - std::mem::size_of::(), - ), - ( - "EyeballBossStunned", - std::mem::size_of::(), - ), - ( - "EyeballBossKilled", - std::mem::size_of::(), - ), - ( - "EyeballBossKiller", - std::mem::size_of::(), - ), + ("MerasmusEscapeWarning", std::mem::size_of::()), + ("MerasmusEscaped", std::mem::size_of::()), + ("EyeballBossSummoned", std::mem::size_of::()), + ("EyeballBossStunned", std::mem::size_of::()), + ("EyeballBossKilled", std::mem::size_of::()), + ("EyeballBossKiller", std::mem::size_of::()), ( "EyeballBossEscapeImminent", std::mem::size_of::(), ), - ( - "EyeballBossEscaped", - std::mem::size_of::(), - ), + ("EyeballBossEscaped", std::mem::size_of::()), ("NpcHurt", std::mem::size_of::()), ( "ControlPointTimerUpdated", std::mem::size_of::(), ), - ( - "PlayerHighFiveStart", - std::mem::size_of::(), - ), - ( - "PlayerHighFiveCancel", - std::mem::size_of::(), - ), - ( - "PlayerHighFiveSuccess", - std::mem::size_of::(), - ), - ( - "PlayerBonusPoints", - std::mem::size_of::(), - ), + ("PlayerHighFiveStart", std::mem::size_of::()), + ("PlayerHighFiveCancel", std::mem::size_of::()), + ("PlayerHighFiveSuccess", std::mem::size_of::()), + ("PlayerBonusPoints", std::mem::size_of::()), ("PlayerUpgraded", std::mem::size_of::()), ("PlayerBuyback", std::mem::size_of::()), - ( - "PlayerUsedPowerUpBottle", - std::mem::size_of::(), - ), - ( - "ChristmasGiftGrab", - std::mem::size_of::(), - ), + ("PlayerUsedPowerUpBottle", std::mem::size_of::()), + ("ChristmasGiftGrab", std::mem::size_of::()), ( "PlayerKilledAchievementZone", std::mem::size_of::(), ), ("PartyUpdated", std::mem::size_of::()), - ( - "PartyPrefChanged", - std::mem::size_of::(), - ), - ( - "PartyCriteriaChanged", - std::mem::size_of::(), - ), - ( - "PartyInvitesChanged", - std::mem::size_of::(), - ), - ( - "PartyQueueStateChanged", - std::mem::size_of::(), - ), + ("PartyPrefChanged", std::mem::size_of::()), + ("PartyCriteriaChanged", std::mem::size_of::()), + ("PartyInvitesChanged", std::mem::size_of::()), + ("PartyQueueStateChanged", std::mem::size_of::()), ("PartyChat", std::mem::size_of::()), - ( - "PartyMemberJoin", - std::mem::size_of::(), - ), - ( - "PartyMemberLeave", - std::mem::size_of::(), - ), - ( - "MatchInvitesUpdated", - std::mem::size_of::(), - ), + ("PartyMemberJoin", std::mem::size_of::()), + ("PartyMemberLeave", std::mem::size_of::()), + ("MatchInvitesUpdated", std::mem::size_of::()), ("LobbyUpdated", std::mem::size_of::()), - ( - "MvmMissionUpdate", - std::mem::size_of::(), - ), - ( - "RecalculateHolidays", - std::mem::size_of::(), - ), - ( - "PlayerCurrencyChanged", - std::mem::size_of::(), - ), - ( - "DoomsdayRocketOpen", - std::mem::size_of::(), - ), + ("MvmMissionUpdate", std::mem::size_of::()), + ("RecalculateHolidays", std::mem::size_of::()), + ("PlayerCurrencyChanged", std::mem::size_of::()), + ("DoomsdayRocketOpen", std::mem::size_of::()), ( "RemoveNemesisRelationships", std::mem::size_of::(), ), - ( - "MvmCreditBonusWave", - std::mem::size_of::(), - ), - ( - "MvmCreditBonusAll", - std::mem::size_of::(), - ), + ("MvmCreditBonusWave", std::mem::size_of::()), + ("MvmCreditBonusAll", std::mem::size_of::()), ( "MvmCreditBonusAllAdvanced", std::mem::size_of::(), ), - ( - "MvmQuickSentryUpgrade", - std::mem::size_of::(), - ), + ("MvmQuickSentryUpgrade", std::mem::size_of::()), ( "MvmTankDestroyedByPlayers", std::mem::size_of::(), @@ -11205,43 +23365,16 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmKillRobotDeliveringBomb", std::mem::size_of::(), ), - ( - "MvmPickupCurrency", - std::mem::size_of::(), - ), - ( - "MvmBombCarrierKilled", - std::mem::size_of::(), - ), - ( - "MvmSentryBusterDetonate", - std::mem::size_of::(), - ), - ( - "MvmScoutMarkedForDeath", - std::mem::size_of::(), - ), - ( - "MvmMedicPowerUpShared", - std::mem::size_of::(), - ), + ("MvmPickupCurrency", std::mem::size_of::()), + ("MvmBombCarrierKilled", std::mem::size_of::()), + ("MvmSentryBusterDetonate", std::mem::size_of::()), + ("MvmScoutMarkedForDeath", std::mem::size_of::()), + ("MvmMedicPowerUpShared", std::mem::size_of::()), ("MvmBeginWave", std::mem::size_of::()), - ( - "MvmWaveComplete", - std::mem::size_of::(), - ), - ( - "MvmMissionComplete", - std::mem::size_of::(), - ), - ( - "MvmBombResetByPlayer", - std::mem::size_of::(), - ), - ( - "MvmBombAlarmTriggered", - std::mem::size_of::(), - ), + ("MvmWaveComplete", std::mem::size_of::()), + ("MvmMissionComplete", std::mem::size_of::()), + ("MvmBombResetByPlayer", std::mem::size_of::()), + ("MvmBombAlarmTriggered", std::mem::size_of::()), ( "MvmBombDeployResetByPlayer", std::mem::size_of::(), @@ -11249,22 +23382,10 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("MvmWaveFailed", std::mem::size_of::()), ("MvmResetStats", std::mem::size_of::()), ("DamageResisted", std::mem::size_of::()), - ( - "RevivePlayerNotify", - std::mem::size_of::(), - ), - ( - "RevivePlayerStopped", - std::mem::size_of::(), - ), - ( - "RevivePlayerComplete", - std::mem::size_of::(), - ), - ( - "PlayerTurnedToGhost", - std::mem::size_of::(), - ), + ("RevivePlayerNotify", std::mem::size_of::()), + ("RevivePlayerStopped", std::mem::size_of::()), + ("RevivePlayerComplete", std::mem::size_of::()), + ("PlayerTurnedToGhost", std::mem::size_of::()), ( "MedigunShieldBlockedDamage", std::mem::size_of::(), @@ -11277,10 +23398,7 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmSniperHeadshotCurrency", std::mem::size_of::(), ), - ( - "MvmMannhattanPit", - std::mem::size_of::(), - ), + ("MvmMannhattanPit", std::mem::size_of::()), ( "FlagCarriedInDetectionZone", std::mem::size_of::(), @@ -11289,292 +23407,106 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmAdvWaveKilledStunRadio", std::mem::size_of::(), ), - ( - "PlayerDirectHitStun", - std::mem::size_of::(), - ), - ( - "MvmSentryBusterKilled", - std::mem::size_of::(), - ), - ( - "UpgradesFileChanged", - std::mem::size_of::(), - ), - ( - "RdTeamPointsChanged", - std::mem::size_of::(), - ), - ( - "RdRulesStateChanged", - std::mem::size_of::(), - ), + ("PlayerDirectHitStun", std::mem::size_of::()), + ("MvmSentryBusterKilled", std::mem::size_of::()), + ("UpgradesFileChanged", std::mem::size_of::()), + ("RdTeamPointsChanged", std::mem::size_of::()), + ("RdRulesStateChanged", std::mem::size_of::()), ("RdRobotKilled", std::mem::size_of::()), ("RdRobotImpact", std::mem::size_of::()), ( "TeamPlayPreRoundTimeLeft", std::mem::size_of::(), ), - ( - "ParachuteDeploy", - std::mem::size_of::(), - ), - ( - "ParachuteHolster", - std::mem::size_of::(), - ), - ( - "KillRefillsMeter", - std::mem::size_of::(), - ), + ("ParachuteDeploy", std::mem::size_of::()), + ("ParachuteHolster", std::mem::size_of::()), + ("KillRefillsMeter", std::mem::size_of::()), ("RpsTauntEvent", std::mem::size_of::()), ("CongaKill", std::mem::size_of::()), - ( - "PlayerInitialSpawn", - std::mem::size_of::(), - ), - ( - "CompetitiveVictory", - std::mem::size_of::(), - ), - ( - "CompetitiveStatsUpdate", - std::mem::size_of::(), - ), + ("PlayerInitialSpawn", std::mem::size_of::()), + ("CompetitiveVictory", std::mem::size_of::()), + ("CompetitiveStatsUpdate", std::mem::size_of::()), ("MiniGameWin", std::mem::size_of::()), - ( - "SentryOnGoActive", - std::mem::size_of::(), - ), + ("SentryOnGoActive", std::mem::size_of::()), ("DuckXpLevelUp", std::mem::size_of::()), ("QuestLogOpened", std::mem::size_of::()), ("SchemaUpdated", std::mem::size_of::()), - ( - "LocalPlayerPickupWeapon", - std::mem::size_of::(), - ), - ( - "RdPlayerScorePoints", - std::mem::size_of::(), - ), - ( - "DemomanDetStickies", - std::mem::size_of::(), - ), - ( - "QuestObjectiveCompleted", - std::mem::size_of::(), - ), - ( - "PlayerScoreChanged", - std::mem::size_of::(), - ), - ( - "KilledCappingPlayer", - std::mem::size_of::(), - ), - ( - "EnvironmentalDeath", - std::mem::size_of::(), - ), - ( - "ProjectileDirectHit", - std::mem::size_of::(), - ), + ("LocalPlayerPickupWeapon", std::mem::size_of::()), + ("RdPlayerScorePoints", std::mem::size_of::()), + ("DemomanDetStickies", std::mem::size_of::()), + ("QuestObjectiveCompleted", std::mem::size_of::()), + ("PlayerScoreChanged", std::mem::size_of::()), + ("KilledCappingPlayer", std::mem::size_of::()), + ("EnvironmentalDeath", std::mem::size_of::()), + ("ProjectileDirectHit", std::mem::size_of::()), ("PassGet", std::mem::size_of::()), ("PassScore", std::mem::size_of::()), ("PassFree", std::mem::size_of::()), ("PassPassCaught", std::mem::size_of::()), ("PassBallStolen", std::mem::size_of::()), - ( - "PassBallBlocked", - std::mem::size_of::(), - ), - ( - "DamagePrevented", - std::mem::size_of::(), - ), - ( - "HalloweenBossKilled", - std::mem::size_of::(), - ), - ( - "EscapedLootIsland", - std::mem::size_of::(), - ), - ( - "TaggedPlayerAsIt", - std::mem::size_of::(), - ), - ( - "MerasmusStunned", - std::mem::size_of::(), - ), - ( - "MerasmusPropFound", - std::mem::size_of::(), - ), - ( - "HalloweenSkeletonKilled", - std::mem::size_of::(), - ), - ( - "SkeletonKilledQuest", - std::mem::size_of::(), - ), - ( - "SkeletonKingKilledQuest", - std::mem::size_of::(), - ), + ("PassBallBlocked", std::mem::size_of::()), + ("DamagePrevented", std::mem::size_of::()), + ("HalloweenBossKilled", std::mem::size_of::()), + ("EscapedLootIsland", std::mem::size_of::()), + ("TaggedPlayerAsIt", std::mem::size_of::()), + ("MerasmusStunned", std::mem::size_of::()), + ("MerasmusPropFound", std::mem::size_of::()), + ("HalloweenSkeletonKilled", std::mem::size_of::()), + ("SkeletonKilledQuest", std::mem::size_of::()), + ("SkeletonKingKilledQuest", std::mem::size_of::()), ("EscapeHell", std::mem::size_of::()), - ( - "CrossSpectralBridge", - std::mem::size_of::(), - ), + ("CrossSpectralBridge", std::mem::size_of::()), ("MiniGameWon", std::mem::size_of::()), ("RespawnGhost", std::mem::size_of::()), ("KillInHell", std::mem::size_of::()), - ( - "HalloweenDuckCollected", - std::mem::size_of::(), - ), + ("HalloweenDuckCollected", std::mem::size_of::()), ("SpecialScore", std::mem::size_of::()), - ( - "TeamLeaderKilled", - std::mem::size_of::(), - ), - ( - "HalloweenSoulCollected", - std::mem::size_of::(), - ), - ( - "RecalculateTruce", - std::mem::size_of::(), - ), - ( - "DeadRingerCheatDeath", - std::mem::size_of::(), - ), + ("TeamLeaderKilled", std::mem::size_of::()), + ("HalloweenSoulCollected", std::mem::size_of::()), + ("RecalculateTruce", std::mem::size_of::()), + ("DeadRingerCheatDeath", std::mem::size_of::()), ("CrossbowHeal", std::mem::size_of::()), - ( - "DamageMitigated", - std::mem::size_of::(), - ), + ("DamageMitigated", std::mem::size_of::()), ("PayloadPushed", std::mem::size_of::()), - ( - "PlayerAbandonedMatch", - std::mem::size_of::(), - ), + ("PlayerAbandonedMatch", std::mem::size_of::()), ("ClDrawline", std::mem::size_of::()), - ( - "RestartTimerTime", - std::mem::size_of::(), - ), - ( - "WinLimitChanged", - std::mem::size_of::(), - ), - ( - "WinPanelShowScores", - std::mem::size_of::(), - ), + ("RestartTimerTime", std::mem::size_of::()), + ("WinLimitChanged", std::mem::size_of::()), + ("WinPanelShowScores", std::mem::size_of::()), ( "TopStreamsRequestFinished", std::mem::size_of::(), ), - ( - "CompetitiveStateChanged", - std::mem::size_of::(), - ), - ( - "GlobalWarDataUpdated", - std::mem::size_of::(), - ), - ( - "StopWatchChanged", - std::mem::size_of::(), - ), + ("CompetitiveStateChanged", std::mem::size_of::()), + ("GlobalWarDataUpdated", std::mem::size_of::()), + ("StopWatchChanged", std::mem::size_of::()), ("DsStop", std::mem::size_of::()), ("DsScreenshot", std::mem::size_of::()), - ( - "ShowMatchSummary", - std::mem::size_of::(), - ), - ( - "ExperienceChanged", - std::mem::size_of::(), - ), + ("ShowMatchSummary", std::mem::size_of::()), + ("ExperienceChanged", std::mem::size_of::()), ("BeginXpLerp", std::mem::size_of::()), - ( - "MatchmakerStatsUpdated", - std::mem::size_of::(), - ), - ( - "RematchVotePeriodOver", - std::mem::size_of::(), - ), - ( - "RematchFailedToCreate", - std::mem::size_of::(), - ), - ( - "PlayerRematchChange", - std::mem::size_of::(), - ), + ("MatchmakerStatsUpdated", std::mem::size_of::()), + ("RematchVotePeriodOver", std::mem::size_of::()), + ("RematchFailedToCreate", std::mem::size_of::()), + ("PlayerRematchChange", std::mem::size_of::()), ("PingUpdated", std::mem::size_of::()), ("MMStatsUpdated", std::mem::size_of::()), - ( - "PlayerNextMapVoteChange", - std::mem::size_of::(), - ), - ( - "VoteMapsChanged", - std::mem::size_of::(), - ), - ( - "ProtoDefChanged", - std::mem::size_of::(), - ), - ( - "PlayerDomination", - std::mem::size_of::(), - ), - ( - "PlayerRocketPackPushed", - std::mem::size_of::(), - ), + ("PlayerNextMapVoteChange", std::mem::size_of::()), + ("VoteMapsChanged", std::mem::size_of::()), + ("ProtoDefChanged", std::mem::size_of::()), + ("PlayerDomination", std::mem::size_of::()), + ("PlayerRocketPackPushed", std::mem::size_of::()), ("QuestRequest", std::mem::size_of::()), ("QuestResponse", std::mem::size_of::()), ("QuestProgress", std::mem::size_of::()), - ( - "ProjectileRemoved", - std::mem::size_of::(), - ), - ( - "QuestMapDataChanged", - std::mem::size_of::(), - ), - ( - "GasDousedPlayerIgnited", - std::mem::size_of::(), - ), - ( - "QuestTurnInState", - std::mem::size_of::(), - ), - ( - "ItemsAcknowledged", - std::mem::size_of::(), - ), + ("ProjectileRemoved", std::mem::size_of::()), + ("QuestMapDataChanged", std::mem::size_of::()), + ("GasDousedPlayerIgnited", std::mem::size_of::()), + ("QuestTurnInState", std::mem::size_of::()), + ("ItemsAcknowledged", std::mem::size_of::()), ("CapperKilled", std::mem::size_of::()), - ( - "MainMenuStabilized", - std::mem::size_of::(), - ), - ( - "WorldStatusChanged", - std::mem::size_of::(), - ), + ("MainMenuStabilized", std::mem::size_of::()), + ("WorldStatusChanged", std::mem::size_of::()), ("HLTVStatus", std::mem::size_of::()), ("HLTVCameraman", std::mem::size_of::()), ("HLTVRankCamera", std::mem::size_of::()), @@ -11584,28 +23516,14 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("HLTVMessage", std::mem::size_of::()), ("HLTVTitle", std::mem::size_of::()), ("HLTVChat", std::mem::size_of::()), - ( - "ReplayStartRecord", - std::mem::size_of::(), - ), - ( - "ReplaySessionInfo", - std::mem::size_of::(), - ), - ( - "ReplayEndRecord", - std::mem::size_of::(), - ), - ( - "ReplayReplaysAvailable", - std::mem::size_of::(), - ), - ( - "ReplayServerError", - std::mem::size_of::(), - ), + ("ReplayStartRecord", std::mem::size_of::()), + ("ReplaySessionInfo", std::mem::size_of::()), + ("ReplayEndRecord", std::mem::size_of::()), + ("ReplayReplaysAvailable", std::mem::size_of::()), + ("ReplayServerError", std::mem::size_of::()), ] - .iter() - .copied() - .collect() + .iter() + .copied() + .collect() } + diff --git a/src/demo/gamevent.rs b/src/demo/gamevent.rs index 2cca1ae..716484f 100644 --- a/src/demo/gamevent.rs +++ b/src/demo/gamevent.rs @@ -15,6 +15,12 @@ pub struct GameEventDefinition { pub entries: Vec, } +impl GameEventDefinition { + pub fn get_entry(&self, name: &str) -> Option<&GameEventEntry> { + self.entries.iter().find(|entry| entry.name == name) + } +} + impl PartialEq for GameEventDefinition { fn eq(&self, other: &Self) -> bool { self.id.eq(&other.id) @@ -56,6 +62,21 @@ pub enum GameEventValueType { Local = 7, } +impl GameEventValueType { + pub fn default_value(&self) -> GameEventValue { + match self { + GameEventValueType::None => GameEventValue::Local, + GameEventValueType::String => GameEventValue::String(Default::default()), + GameEventValueType::Float => GameEventValue::Float(Default::default()), + GameEventValueType::Long => GameEventValue::Long(Default::default()), + GameEventValueType::Short => GameEventValue::Short(Default::default()), + GameEventValueType::Byte => GameEventValue::Byte(Default::default()), + GameEventValueType::Boolean => GameEventValue::Boolean(Default::default()), + GameEventValueType::Local => GameEventValue::Local, + } + } +} + #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub enum GameEventValue { @@ -68,6 +89,42 @@ pub enum GameEventValue { Local, } +impl From for GameEventValue { + fn from(value: MaybeUtf8String) -> Self { + GameEventValue::String(value) + } +} + +impl From for GameEventValue { + fn from(value: f32) -> Self { + GameEventValue::Float(value) + } +} + +impl From for GameEventValue { + fn from(value: u32) -> Self { + GameEventValue::Long(value) + } +} + +impl From for GameEventValue { + fn from(value: u16) -> Self { + GameEventValue::Short(value) + } +} + +impl From for GameEventValue { + fn from(value: u8) -> Self { + GameEventValue::Byte(value) + } +} + +impl From for GameEventValue { + fn from(value: bool) -> Self { + GameEventValue::Boolean(value) + } +} + fn read_event_value(stream: &mut Stream, definition: &GameEventEntry) -> Result { Ok(match definition.kind { GameEventValueType::String => GameEventValue::String(stream.read()?), diff --git a/src/demo/message/gameevent.rs b/src/demo/message/gameevent.rs index 063f5ad..17cf218 100644 --- a/src/demo/message/gameevent.rs +++ b/src/demo/message/gameevent.rs @@ -52,14 +52,17 @@ impl Parse<'_> for GameEventMessage { } impl Encode for GameEventMessage { - fn encode( - &self, - stream: &mut BitWriteStream, - _state: &ParserState, - ) -> Result<()> { + fn encode(&self, stream: &mut BitWriteStream, state: &ParserState) -> Result<()> { + let definition = state + .event_definitions + .iter() + .find(|def| def.event_type == self.event_type) + .ok_or_else(|| { + ParseError::MalformedGameEvent(GameEventError::UnknownType(self.event_type_id)) + })?; Ok(stream.reserve_length(11, |stream| { self.event_type_id.write(stream)?; - self.event.write(stream) + self.event.write(stream, definition) })?) } } diff --git a/src/demo/parser/error.rs b/src/demo/parser/error.rs index 818d89a..9df995b 100644 --- a/src/demo/parser/error.rs +++ b/src/demo/parser/error.rs @@ -63,6 +63,12 @@ pub enum ParseError { name: &'static str, found_type: GameEventValueType, }, + #[error( + display = "Game event of type {} does not contain a {} value", + ty, + field + )] + MissingGameEventValue { ty: &'static str, field: String }, #[error(display = "An entity with an unknown server class({}) was read", _0)] UnknownServerClass(ClassId), #[error(display = "Unknown send table: {}", _0)] From 448e22b8da16ce2e5c3ba393cd73a64c74501cdf Mon Sep 17 00:00:00 2001 From: Lilith <__lilith@discord> Date: Tue, 23 Apr 2024 16:32:39 +1000 Subject: [PATCH 37/45] complete merge oopsies --- flake.nix | 7 ------- 1 file changed, 7 deletions(-) diff --git a/flake.nix b/flake.nix index 1da5798..9dd3aa8 100644 --- a/flake.nix +++ b/flake.nix @@ -115,13 +115,10 @@ release = false; mode = "test"; }); -<<<<<<< HEAD -======= msrv = naerskMsrv.buildPackage (nearskOpt // { mode = "check"; }); ->>>>>>> ab87b34de8b6f7186befe1619c0d0fb81bf77529 default = demostf-parser; }; @@ -161,11 +158,7 @@ // { overlays.default = import ./overlay.nix; hydraJobs = eachSystem ["x86_64-linux" "aarch64-linux"] (system: { -<<<<<<< HEAD - parser = self.packages.${system}.tf-demo-parser; -======= parser = self.packages.${system}.demostf-parser; ->>>>>>> ab87b34de8b6f7186befe1619c0d0fb81bf77529 }); }); } From b35daf5c12e290a8ddfeb23622063097197b8791 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 4 May 2024 16:44:13 +0200 Subject: [PATCH 38/45] store classlist as u16s --- src/demo/parser/analyser.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/demo/parser/analyser.rs b/src/demo/parser/analyser.rs index c83bfc5..4b35aa7 100644 --- a/src/demo/parser/analyser.rs +++ b/src/demo/parser/analyser.rs @@ -148,12 +148,12 @@ impl Class { } #[derive(Default, Debug, Eq, PartialEq, Deserialize, Clone)] -#[serde(from = "HashMap")] -pub struct ClassList([u8; 10]); +#[serde(from = "HashMap")] +pub struct ClassList([u16; 10]); impl ClassList { /// Get an iterator for all classes played and the number of spawn on the class - pub fn iter(&self) -> impl Iterator + '_ { + pub fn iter(&self) -> impl Iterator + '_ { self.0 .iter() .copied() @@ -163,19 +163,19 @@ impl ClassList { } /// Get an iterator for all classes played and the number of spawn on the class, sorted by the number of spawns - pub fn sorted(&self) -> impl Iterator { - let mut classes = self.iter().collect::>(); + pub fn sorted(&self) -> impl Iterator { + let mut classes = self.iter().collect::>(); classes.sort_by(|a, b| a.1.cmp(&b.1).reverse()); classes.into_iter() } - pub fn get(&self, class: Class) -> u8 { + pub fn get(&self, class: Class) -> u16 { // class number is always in bounds #[allow(clippy::indexing_slicing)] self.0[class as u8 as usize] } - pub fn get_mut(&mut self, class: Class) -> &mut u8 { + pub fn get_mut(&mut self, class: Class) -> &mut u16 { // class number is always in bounds #[allow(clippy::indexing_slicing)] &mut self.0[class as u8 as usize] @@ -208,8 +208,8 @@ impl Serialize for ClassList { } } -impl From> for ClassList { - fn from(map: HashMap) -> Self { +impl From> for ClassList { + fn from(map: HashMap) -> Self { let mut classes = ClassList::default(); for (class, count) in map.into_iter() { From c2985d13f2dc58c729890a047f88638656e15f63 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 15:15:23 +0200 Subject: [PATCH 39/45] upstream schemars --- Cargo.lock | 18 ++++++++++-------- Cargo.toml | 6 +----- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1925914..142d2d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -951,8 +951,9 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.16" -source = "git+https://github.com/icewind1991/schemars?branch=simplify-generated-enum-code#1a82a9f045bc0b1ebd7e9466877ffbb7d45a6eef" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0afe01b987fac84253ce8acd5c05af9941975e4dee5b4f2d826b6947be8ec2c7" dependencies = [ "dyn-clone", "schemars_derive", @@ -962,13 +963,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.16" -source = "git+https://github.com/icewind1991/schemars?branch=simplify-generated-enum-code#1a82a9f045bc0b1ebd7e9466877ffbb7d45a6eef" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d253e72f060451e9e5615a1686f3cb4ff87c4e70504c79bdab8fb3b010cd4e97" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.58", ] [[package]] @@ -993,13 +995,13 @@ dependencies = [ [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.58", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 84ba3ad..099db19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,7 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter"], optional = itertools = "0.12.1" # schema -schemars = { version = "0.8.16", optional = true } +schemars = { version = "0.8.18", optional = true } # codegen quote = { version = "1", optional = true } @@ -69,10 +69,6 @@ tempfile = { version = "3", optional = true } lazy_static = { version = "1", optional = true } prettyplease = { version = "0.2", optional = true } -[patch.crates-io] -schemars = { git = 'https://github.com/icewind1991/schemars', branch = "simplify-generated-enum-code" } -schemars_derive = { git = 'https://github.com/icewind1991/schemars', branch = "simplify-generated-enum-code" } - [features] schema = ["schemars", "bitbuffer/schemars"] trace = ["tracing", "tracing-subscriber"] From 4e6d6e4b3a7265c73572af5dd0b0ef496082be0e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 15:16:48 +0200 Subject: [PATCH 40/45] move nix --- flake.nix | 4 ++-- codegen.nix => nix/codegen.nix | 11 ++++++----- overlay.nix => nix/overlay.nix | 4 ++-- parser.nix => nix/parser.nix | 7 ++----- nix/schema.nix | 27 +++++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 14 deletions(-) rename codegen.nix => nix/codegen.nix (60%) rename overlay.nix => nix/overlay.nix (66%) rename parser.nix => nix/parser.nix (63%) create mode 100644 nix/schema.nix diff --git a/flake.nix b/flake.nix index 9dd3aa8..0a56a7d 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,7 @@ in (eachDefaultSystem (system: let overlays = [ (import rust-overlay) - (import ./overlay.nix) + (import ./nix/overlay.nix) ]; pkgs = (import nixpkgs) { inherit system overlays; @@ -156,7 +156,7 @@ }; }) // { - overlays.default = import ./overlay.nix; + overlays.default = import ./nix/overlay.nix; hydraJobs = eachSystem ["x86_64-linux" "aarch64-linux"] (system: { parser = self.packages.${system}.demostf-parser; }); diff --git a/codegen.nix b/nix/codegen.nix similarity index 60% rename from codegen.nix rename to nix/codegen.nix index 81562e9..ef3d41f 100644 --- a/codegen.nix +++ b/nix/codegen.nix @@ -4,12 +4,16 @@ lib, }: let inherit (lib.sources) sourceByRegex; - src = sourceByRegex ./. ["Cargo.*" "(src|benches)(/.*)?"]; + src = sourceByRegex ../. ["Cargo.*" "(src|benches)(/.*)?"]; in rustPlatform.buildRustPackage { pname = "demostf-parser-codegen"; version = "0.1.0"; + cargoBuildFlags = '' + --bin codegen + ''; + src = lib.traceVal src; buildType = "debug"; @@ -18,9 +22,6 @@ in doCheck = false; cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "schemars-0.8.16" = "sha256-mQR56Ym76gSRulZrThmZHHw2JfhEgYhWXabwaYmyMYs="; - }; + lockFile = ../Cargo.lock; }; } diff --git a/overlay.nix b/nix/overlay.nix similarity index 66% rename from overlay.nix rename to nix/overlay.nix index 915c97a..750be5d 100644 --- a/overlay.nix +++ b/nix/overlay.nix @@ -2,11 +2,11 @@ final: prev: { demostf-parser = final.callPackage ./parser.nix {}; demostf-parser-codegen = final.callPackage ./codegen.nix {}; demostf-parser-codegen-events = final.runCommand "gameevent_gen.rs" {} '' - ${final.demostf-parser-codegen}/bin/codegen ${./test_data/short-2024.dem} events > $out + ${final.demostf-parser-codegen}/bin/codegen ${../test_data/short-2024.dem} events > $out ${final.rustfmt}/bin/rustfmt $out ''; demostf-parser-codegen-props = final.runCommand "sendprop_gen.rs" {} '' - ${final.demostf-parser-codegen}/bin/codegen ${./test_data/short-2024.dem} props > $out + ${final.demostf-parser-codegen}/bin/codegen ${../test_data/short-2024.dem} props > $out ${final.rustfmt}/bin/rustfmt $out ''; } diff --git a/parser.nix b/nix/parser.nix similarity index 63% rename from parser.nix rename to nix/parser.nix index fbe910d..752c6d9 100644 --- a/parser.nix +++ b/nix/parser.nix @@ -4,7 +4,7 @@ lib, }: let inherit (lib.sources) sourceByRegex; - src = sourceByRegex ./. ["Cargo.*" "(src|benches|tests|test_data)(/.*)?"]; + src = sourceByRegex ../. ["Cargo.*" "(src|benches|tests|test_data)(/.*)?"]; in rustPlatform.buildRustPackage rec { pname = "demostf-parser"; @@ -19,9 +19,6 @@ in doCheck = stdenv.system == "x86_64-linux"; # building the tests takes +- forever on aarch64 for some reason cargoLock = { - lockFile = ./Cargo.lock; - outputHashes = { - "schemars-0.8.16" = "sha256-mQR56Ym76gSRulZrThmZHHw2JfhEgYhWXabwaYmyMYs="; - }; + lockFile = ../Cargo.lock; }; } diff --git a/nix/schema.nix b/nix/schema.nix new file mode 100644 index 0000000..6ee6834 --- /dev/null +++ b/nix/schema.nix @@ -0,0 +1,27 @@ +{ + stdenv, + rustPlatform, + lib, +}: let + inherit (lib.sources) sourceByRegex; + src = sourceByRegex ../. ["Cargo.*" "(src|benches)(/.*)?"]; +in + rustPlatform.buildRustPackage { + pname = "demostf-parser-schema"; + version = "0.1.0"; + + cargoBuildFlags = '' + --bin schema + ''; + + src = lib.traceVal src; + + buildType = "debug"; + buildFeatures = ["schema"]; + + doCheck = false; + + cargoLock = { + lockFile = ../Cargo.lock; + }; + } From f8651c22ffc247a9247949ef0fa4f89f281fdf05 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 15:34:49 +0200 Subject: [PATCH 41/45] add ci job to check if schema is up to date --- .github/workflows/ci.yml | 16 ++++++++++++++++ flake.nix | 3 ++- nix/codegen.nix | 5 +++-- nix/overlay.nix | 2 ++ nix/schema.nix | 5 +++-- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd339b6..7a24474 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,3 +91,19 @@ jobs: instance: https://cache.icewind.me authToken: '${{ secrets.ATTIC_TOKEN }}' - run: nix build .#test + + check-schema: + runs-on: ubuntu-latest + needs: check + steps: + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v25 + - uses: icewind1991/attic-action@v1 + with: + name: ci + instance: https://cache.icewind.me + authToken: '${{ secrets.ATTIC_TOKEN }}' + - run: nix run .#demostf-parser-schema > schema.json + - run: | + git diff + git diff-index --quiet HEAD -- diff --git a/flake.nix b/flake.nix index 0a56a7d..377b0a9 100644 --- a/flake.nix +++ b/flake.nix @@ -87,6 +87,7 @@ }; }; }; + overlayPackages = builtins.attrNames ((import ./nix/overlay.nix) {} {}); in rec { packages = lib.attrsets.genAttrs targets (target: @@ -101,7 +102,7 @@ }; })) // rec { - inherit (pkgs) demostf-parser demostf-parser-codegen demostf-parser-codegen-events demostf-parser-codegen-props; + inherit (pkgs) demostf-parser demostf-parser-codegen demostf-parser-codegen-events demostf-parser-codegen-props demostf-parser-schema; check = hostNaersk.buildPackage (nearskOpt // { mode = "check"; diff --git a/nix/codegen.nix b/nix/codegen.nix index ef3d41f..182ad03 100644 --- a/nix/codegen.nix +++ b/nix/codegen.nix @@ -4,7 +4,6 @@ lib, }: let inherit (lib.sources) sourceByRegex; - src = sourceByRegex ../. ["Cargo.*" "(src|benches)(/.*)?"]; in rustPlatform.buildRustPackage { pname = "demostf-parser-codegen"; @@ -14,7 +13,7 @@ in --bin codegen ''; - src = lib.traceVal src; + src = sourceByRegex ../. ["Cargo.*" "(src|benches)(/.*)?"]; buildType = "debug"; buildFeatures = ["codegen"]; @@ -24,4 +23,6 @@ in cargoLock = { lockFile = ../Cargo.lock; }; + + meta.mainProgram = "codegen"; } diff --git a/nix/overlay.nix b/nix/overlay.nix index 750be5d..834a6e0 100644 --- a/nix/overlay.nix +++ b/nix/overlay.nix @@ -9,4 +9,6 @@ final: prev: { ${final.demostf-parser-codegen}/bin/codegen ${../test_data/short-2024.dem} props > $out ${final.rustfmt}/bin/rustfmt $out ''; + demostf-parser-schema = final.callPackage ./schema.nix {}; + } diff --git a/nix/schema.nix b/nix/schema.nix index 6ee6834..d820159 100644 --- a/nix/schema.nix +++ b/nix/schema.nix @@ -4,7 +4,6 @@ lib, }: let inherit (lib.sources) sourceByRegex; - src = sourceByRegex ../. ["Cargo.*" "(src|benches)(/.*)?"]; in rustPlatform.buildRustPackage { pname = "demostf-parser-schema"; @@ -14,7 +13,7 @@ in --bin schema ''; - src = lib.traceVal src; + src = sourceByRegex ../. ["Cargo.*" "(src|benches)(/.*)?"]; buildType = "debug"; buildFeatures = ["schema"]; @@ -24,4 +23,6 @@ in cargoLock = { lockFile = ../Cargo.lock; }; + + meta.mainProgram = "schema"; } From a7f3f419c1e2d88303e79f514523fe02746264a0 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 15:41:53 +0200 Subject: [PATCH 42/45] update schema --- schema.json | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/schema.json b/schema.json index fa65a80..faaafbc 100644 --- a/schema.json +++ b/schema.json @@ -205,6 +205,13 @@ } ], "definitions": { + "BaselineIndex": { + "type": "string", + "enum": [ + "First", + "Second" + ] + }, "BitReadStream": { "type": "object", "required": [ @@ -12410,9 +12417,7 @@ ], "properties": { "base_line": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 + "$ref": "#/definitions/BaselineIndex" }, "delta": { "anyOf": [ @@ -12641,9 +12646,7 @@ ], "properties": { "baseline_index": { - "type": "integer", - "format": "uint", - "minimum": 0.0 + "$ref": "#/definitions/BaselineIndex" }, "delay": { "type": [ From dd3cd6364ec536562c03d037ebc02665164dfd71 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 15:47:02 +0200 Subject: [PATCH 43/45] fix schema for serde_repr usage --- schema.json | 16 ++++++++-------- src/demo/message/mod.rs | 2 +- src/demo/message/packetentities.rs | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/schema.json b/schema.json index faaafbc..63c633e 100644 --- a/schema.json +++ b/schema.json @@ -206,10 +206,10 @@ ], "definitions": { "BaselineIndex": { - "type": "string", + "type": "integer", "enum": [ - "First", - "Second" + 0, + 1 ] }, "BitReadStream": { @@ -12993,12 +12993,12 @@ } }, "UpdateType": { - "type": "string", + "type": "integer", "enum": [ - "Preserve", - "Leave", - "Enter", - "Delete" + 0, + 1, + 2, + 3 ] }, "UserCmd": { diff --git a/src/demo/message/mod.rs b/src/demo/message/mod.rs index a6a010b..6a9f765 100644 --- a/src/demo/message/mod.rs +++ b/src/demo/message/mod.rs @@ -26,7 +26,7 @@ pub mod tempentities; pub mod usermessage; pub mod voice; -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema_repr))] #[derive( BitRead, BitWrite, Debug, Clone, Copy, PartialEq, Eq, Serialize_repr, Deserialize_repr, )] diff --git a/src/demo/message/packetentities.rs b/src/demo/message/packetentities.rs index 642cd9b..44d5366 100644 --- a/src/demo/message/packetentities.rs +++ b/src/demo/message/packetentities.rs @@ -75,7 +75,7 @@ impl PartialOrd for EntityId { } } -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema_repr))] #[derive( BitRead, BitWrite, Clone, Copy, Debug, PartialEq, Eq, Serialize_repr, Deserialize_repr, )] @@ -88,7 +88,7 @@ pub enum UpdateType { Delete = 0b11, } -#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] +#[cfg_attr(feature = "schema", derive(schemars::JsonSchema_repr))] #[derive(Debug, Eq, PartialEq, Copy, Clone, Serialize_repr, Deserialize_repr, Default)] #[repr(u8)] pub enum BaselineIndex { From 490ebae2c67c5fb2ac0ba6df26d6abfac0d46f91 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 16:00:59 +0200 Subject: [PATCH 44/45] clippy fixes --- src/codegen/gameevent.rs | 1 + src/demo/gameevent_gen.rs | 12456 +++++++++++++++----------------- src/demo/message/gameevent.rs | 10 +- 3 files changed, 5956 insertions(+), 6511 deletions(-) diff --git a/src/codegen/gameevent.rs b/src/codegen/gameevent.rs index 2a23a64..3f5865f 100644 --- a/src/codegen/gameevent.rs +++ b/src/codegen/gameevent.rs @@ -282,6 +282,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream { #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { #(#field_getters,)* _ => Err(ParseError::MissingGameEventValue { diff --git a/src/demo/gameevent_gen.rs b/src/demo/gameevent_gen.rs index 9d5f994..e64f49c 100644 --- a/src/demo/gameevent_gen.rs +++ b/src/demo/gameevent_gen.rs @@ -1,11 +1,11 @@ use super::gamevent::{ - EventValue, GameEventDefinition, GameEventEntry, RawGameEvent, GameEventValue, + EventValue, GameEventDefinition, GameEventEntry, GameEventValue, RawGameEvent, }; +use crate::demo::data::MaybeUtf8String; use crate::demo::Stream; use crate::{ParseError, Result}; -use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; +use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian}; use serde::{Deserialize, Serialize}; -use crate::demo::data::MaybeUtf8String; fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>( stream: &mut Stream<'a>, entry: Option<&GameEventEntry>, @@ -44,34 +44,37 @@ impl ServerSpawnEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerSpawnEvent { - hostname: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("hostname"), "hostname")?, - address: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("address"), "address")?, + hostname: read_value::( + stream, + definition.get_entry("hostname"), + "hostname", + )?, + address: read_value::( + stream, + definition.get_entry("address"), + "address", + )?, ip: read_value::(stream, definition.get_entry("ip"), "ip")?, port: read_value::(stream, definition.get_entry("port"), "port")?, - game: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("game"), "game")?, - map_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("mapname"), "map_name")?, - max_players: read_value::< - u32, - >(stream, definition.get_entry("maxplayers"), "max_players")?, + game: read_value::(stream, definition.get_entry("game"), "game")?, + map_name: read_value::( + stream, + definition.get_entry("mapname"), + "map_name", + )?, + max_players: read_value::( + stream, + definition.get_entry("maxplayers"), + "max_players", + )?, os: read_value::(stream, definition.get_entry("os"), "os")?, - dedicated: read_value::< - bool, - >(stream, definition.get_entry("dedicated"), "dedicated")?, - password: read_value::< - bool, - >(stream, definition.get_entry("password"), "password")?, + dedicated: read_value::(stream, definition.get_entry("dedicated"), "dedicated")?, + password: read_value::(stream, definition.get_entry("password"), "password")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "hostname" => Ok(self.hostname.clone().into()), "address" => Ok(self.address.clone().into()), @@ -83,12 +86,10 @@ impl ServerSpawnEvent { "os" => Ok(self.os.clone().into()), "dedicated" => Ok(self.dedicated.clone().into()), "password" => Ok(self.password.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerSpawn", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerSpawn", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -115,21 +116,22 @@ impl ServerChangeLevelFailedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerChangeLevelFailedEvent { - level_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("levelname"), "level_name")?, + level_name: read_value::( + stream, + definition.get_entry("levelname"), + "level_name", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "levelname" => Ok(self.level_name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerChangeLevelFailed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerChangeLevelFailed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -156,21 +158,22 @@ impl ServerShutdownEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerShutdownEvent { - reason: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("reason"), "reason")?, + reason: read_value::( + stream, + definition.get_entry("reason"), + "reason", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "reason" => Ok(self.reason.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerShutdown", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerShutdown", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -198,25 +201,28 @@ impl ServerCvarEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerCvarEvent { - cvar_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cvarname"), "cvar_name")?, - cvar_value: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cvarvalue"), "cvar_value")?, + cvar_name: read_value::( + stream, + definition.get_entry("cvarname"), + "cvar_name", + )?, + cvar_value: read_value::( + stream, + definition.get_entry("cvarvalue"), + "cvar_value", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cvarname" => Ok(self.cvar_name.clone().into()), "cvarvalue" => Ok(self.cvar_value.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerCvar", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerCvar", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -243,21 +249,18 @@ impl ServerMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerMessageEvent { - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerMessage", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerMessage", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -290,25 +293,26 @@ impl ServerAddBanEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerAddBanEvent { - name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("name"), "name")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("networkid"), "network_id")?, + name: read_value::(stream, definition.get_entry("name"), "name")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::( + stream, + definition.get_entry("networkid"), + "network_id", + )?, ip: read_value::(stream, definition.get_entry("ip"), "ip")?, - duration: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("duration"), "duration")?, + duration: read_value::( + stream, + definition.get_entry("duration"), + "duration", + )?, by: read_value::(stream, definition.get_entry("by"), "by")?, kicked: read_value::(stream, definition.get_entry("kicked"), "kicked")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "name" => Ok(self.name.clone().into()), "userid" => Ok(self.user_id.clone().into()), @@ -317,12 +321,10 @@ impl ServerAddBanEvent { "duration" => Ok(self.duration.clone().into()), "by" => Ok(self.by.clone().into()), "kicked" => Ok(self.kicked.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerAddBan", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerAddBan", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -351,25 +353,26 @@ impl ServerRemoveBanEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ServerRemoveBanEvent { - network_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("networkid"), "network_id")?, + network_id: read_value::( + stream, + definition.get_entry("networkid"), + "network_id", + )?, ip: read_value::(stream, definition.get_entry("ip"), "ip")?, by: read_value::(stream, definition.get_entry("by"), "by")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "networkid" => Ok(self.network_id.clone().into()), "ip" => Ok(self.ip.clone().into()), "by" => Ok(self.by.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ServerRemoveBan", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ServerRemoveBan", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -401,24 +404,25 @@ impl PlayerConnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerConnectEvent { - name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("name"), "name")?, + name: read_value::(stream, definition.get_entry("name"), "name")?, index: read_value::(stream, definition.get_entry("index"), "index")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("networkid"), "network_id")?, - address: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("address"), "address")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::( + stream, + definition.get_entry("networkid"), + "network_id", + )?, + address: read_value::( + stream, + definition.get_entry("address"), + "address", + )?, bot: read_value::(stream, definition.get_entry("bot"), "bot")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "name" => Ok(self.name.clone().into()), "index" => Ok(self.index.clone().into()), @@ -426,12 +430,10 @@ impl PlayerConnectEvent { "networkid" => Ok(self.network_id.clone().into()), "address" => Ok(self.address.clone().into()), "bot" => Ok(self.bot.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerConnect", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerConnect", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -462,33 +464,30 @@ impl PlayerConnectClientEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerConnectClientEvent { - name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("name"), "name")?, + name: read_value::(stream, definition.get_entry("name"), "name")?, index: read_value::(stream, definition.get_entry("index"), "index")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("networkid"), "network_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::( + stream, + definition.get_entry("networkid"), + "network_id", + )?, bot: read_value::(stream, definition.get_entry("bot"), "bot")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "name" => Ok(self.name.clone().into()), "index" => Ok(self.index.clone().into()), "userid" => Ok(self.user_id.clone().into()), "networkid" => Ok(self.network_id.clone().into()), "bot" => Ok(self.bot.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerConnectClient", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerConnectClient", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -519,33 +518,30 @@ impl PlayerInfoEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerInfoEvent { - name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("name"), "name")?, + name: read_value::(stream, definition.get_entry("name"), "name")?, index: read_value::(stream, definition.get_entry("index"), "index")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("networkid"), "network_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + network_id: read_value::( + stream, + definition.get_entry("networkid"), + "network_id", + )?, bot: read_value::(stream, definition.get_entry("bot"), "bot")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "name" => Ok(self.name.clone().into()), "index" => Ok(self.index.clone().into()), "userid" => Ok(self.user_id.clone().into()), "networkid" => Ok(self.network_id.clone().into()), "bot" => Ok(self.bot.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerInfo", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerInfo", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -576,35 +572,34 @@ impl PlayerDisconnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerDisconnectEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - reason: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("reason"), "reason")?, - name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("name"), "name")?, - network_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("networkid"), "network_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + reason: read_value::( + stream, + definition.get_entry("reason"), + "reason", + )?, + name: read_value::(stream, definition.get_entry("name"), "name")?, + network_id: read_value::( + stream, + definition.get_entry("networkid"), + "network_id", + )?, bot: read_value::(stream, definition.get_entry("bot"), "bot")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "reason" => Ok(self.reason.clone().into()), "name" => Ok(self.name.clone().into()), "networkid" => Ok(self.network_id.clone().into()), "bot" => Ok(self.bot.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDisconnect", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDisconnect", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -631,21 +626,18 @@ impl PlayerActivateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerActivateEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerActivate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerActivate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -673,25 +665,20 @@ impl PlayerSayEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerSayEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerSay", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerSay", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -718,21 +705,22 @@ impl ClientDisconnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ClientDisconnectEvent { - message: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("message"), "message")?, + message: read_value::( + stream, + definition.get_entry("message"), + "message", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "message" => Ok(self.message.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ClientDisconnect", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ClientDisconnect", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -762,29 +750,32 @@ impl ClientBeginConnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ClientBeginConnectEvent { - address: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("address"), "address")?, + address: read_value::( + stream, + definition.get_entry("address"), + "address", + )?, ip: read_value::(stream, definition.get_entry("ip"), "ip")?, port: read_value::(stream, definition.get_entry("port"), "port")?, - source: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("source"), "source")?, + source: read_value::( + stream, + definition.get_entry("source"), + "source", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "address" => Ok(self.address.clone().into()), "ip" => Ok(self.ip.clone().into()), "port" => Ok(self.port.clone().into()), "source" => Ok(self.source.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ClientBeginConnect", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ClientBeginConnect", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -813,25 +804,26 @@ impl ClientConnectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ClientConnectedEvent { - address: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("address"), "address")?, + address: read_value::( + stream, + definition.get_entry("address"), + "address", + )?, ip: read_value::(stream, definition.get_entry("ip"), "ip")?, port: read_value::(stream, definition.get_entry("port"), "port")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "address" => Ok(self.address.clone().into()), "ip" => Ok(self.ip.clone().into()), "port" => Ok(self.port.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ClientConnected", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ClientConnected", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -860,25 +852,26 @@ impl ClientFullConnectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ClientFullConnectEvent { - address: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("address"), "address")?, + address: read_value::( + stream, + definition.get_entry("address"), + "address", + )?, ip: read_value::(stream, definition.get_entry("ip"), "ip")?, port: read_value::(stream, definition.get_entry("port"), "port")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "address" => Ok(self.address.clone().into()), "ip" => Ok(self.ip.clone().into()), "port" => Ok(self.port.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ClientFullConnect", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ClientFullConnect", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -906,13 +899,12 @@ impl HostQuitEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HostQuit", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HostQuit", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -940,25 +932,24 @@ impl TeamInfoEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamInfoEvent { - team_id: read_value::< - u8, - >(stream, definition.get_entry("teamid"), "team_id")?, - team_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("teamname"), "team_name")?, + team_id: read_value::(stream, definition.get_entry("teamid"), "team_id")?, + team_name: read_value::( + stream, + definition.get_entry("teamname"), + "team_name", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "teamid" => Ok(self.team_id.clone().into()), "teamname" => Ok(self.team_name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamInfo", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamInfo", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -986,23 +977,20 @@ impl TeamScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamScoreEvent { - team_id: read_value::< - u8, - >(stream, definition.get_entry("teamid"), "team_id")?, + team_id: read_value::(stream, definition.get_entry("teamid"), "team_id")?, score: read_value::(stream, definition.get_entry("score"), "score")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "teamid" => Ok(self.team_id.clone().into()), "score" => Ok(self.score.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamScore", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamScore", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1033,28 +1021,27 @@ impl TeamPlayBroadcastAudioEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayBroadcastAudioEvent { team: read_value::(stream, definition.get_entry("team"), "team")?, - sound: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("sound"), "sound")?, - additional_flags: read_value::< - u16, - >(stream, definition.get_entry("additional_flags"), "additional_flags")?, + sound: read_value::(stream, definition.get_entry("sound"), "sound")?, + additional_flags: read_value::( + stream, + definition.get_entry("additional_flags"), + "additional_flags", + )?, player: read_value::(stream, definition.get_entry("player"), "player")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "sound" => Ok(self.sound.clone().into()), "additional_flags" => Ok(self.additional_flags.clone().into()), "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayBroadcastAudio", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayBroadcastAudio", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1087,29 +1074,22 @@ impl PlayerTeamEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerTeamEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, team: read_value::(stream, definition.get_entry("team"), "team")?, - old_team: read_value::< - u8, - >(stream, definition.get_entry("oldteam"), "old_team")?, - disconnect: read_value::< - bool, - >(stream, definition.get_entry("disconnect"), "disconnect")?, - auto_team: read_value::< - bool, - >(stream, definition.get_entry("autoteam"), "auto_team")?, - silent: read_value::< - bool, - >(stream, definition.get_entry("silent"), "silent")?, - name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("name"), "name")?, + old_team: read_value::(stream, definition.get_entry("oldteam"), "old_team")?, + disconnect: read_value::( + stream, + definition.get_entry("disconnect"), + "disconnect", + )?, + auto_team: read_value::(stream, definition.get_entry("autoteam"), "auto_team")?, + silent: read_value::(stream, definition.get_entry("silent"), "silent")?, + name: read_value::(stream, definition.get_entry("name"), "name")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "team" => Ok(self.team.clone().into()), @@ -1118,12 +1098,10 @@ impl PlayerTeamEvent { "autoteam" => Ok(self.auto_team.clone().into()), "silent" => Ok(self.silent.clone().into()), "name" => Ok(self.name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerTeam", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerTeam", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1151,25 +1129,20 @@ impl PlayerClassEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerClassEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - class: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("class"), "class")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + class: read_value::(stream, definition.get_entry("class"), "class")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "class" => Ok(self.class.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerClass", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerClass", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1221,100 +1194,121 @@ impl PlayerDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerDeathEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >( + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + inflictor_ent_index: read_value::( stream, definition.get_entry("inflictor_entindex"), "inflictor_ent_index", )?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, - custom_kill: read_value::< - u16, - >(stream, definition.get_entry("customkill"), "custom_kill")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >( + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, + custom_kill: read_value::( + stream, + definition.get_entry("customkill"), + "custom_kill", + )?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::( stream, definition.get_entry("weapon_logclassname"), "weapon_log_class_name", )?, - stun_flags: read_value::< - u16, - >(stream, definition.get_entry("stun_flags"), "stun_flags")?, - death_flags: read_value::< - u16, - >(stream, definition.get_entry("death_flags"), "death_flags")?, - silent_kill: read_value::< - bool, - >(stream, definition.get_entry("silent_kill"), "silent_kill")?, - player_penetrate_count: read_value::< - u16, - >( + stun_flags: read_value::( + stream, + definition.get_entry("stun_flags"), + "stun_flags", + )?, + death_flags: read_value::( + stream, + definition.get_entry("death_flags"), + "death_flags", + )?, + silent_kill: read_value::( + stream, + definition.get_entry("silent_kill"), + "silent_kill", + )?, + player_penetrate_count: read_value::( stream, definition.get_entry("playerpenetratecount"), "player_penetrate_count", )?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, - kill_streak_total: read_value::< - u16, - >(stream, definition.get_entry("kill_streak_total"), "kill_streak_total")?, - kill_streak_wep: read_value::< - u16, - >(stream, definition.get_entry("kill_streak_wep"), "kill_streak_wep")?, - kill_streak_assist: read_value::< - u16, - >(stream, definition.get_entry("kill_streak_assist"), "kill_streak_assist")?, - kill_streak_victim: read_value::< - u16, - >(stream, definition.get_entry("kill_streak_victim"), "kill_streak_victim")?, - ducks_streaked: read_value::< - u16, - >(stream, definition.get_entry("ducks_streaked"), "ducks_streaked")?, - duck_streak_total: read_value::< - u16, - >(stream, definition.get_entry("duck_streak_total"), "duck_streak_total")?, - duck_streak_assist: read_value::< - u16, - >(stream, definition.get_entry("duck_streak_assist"), "duck_streak_assist")?, - duck_streak_victim: read_value::< - u16, - >(stream, definition.get_entry("duck_streak_victim"), "duck_streak_victim")?, - rocket_jump: read_value::< - bool, - >(stream, definition.get_entry("rocket_jump"), "rocket_jump")?, - weapon_def_index: read_value::< - u32, - >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, - crit_type: read_value::< - u16, - >(stream, definition.get_entry("crit_type"), "crit_type")?, + assister_fallback: read_value::( + stream, + definition.get_entry("assister_fallback"), + "assister_fallback", + )?, + kill_streak_total: read_value::( + stream, + definition.get_entry("kill_streak_total"), + "kill_streak_total", + )?, + kill_streak_wep: read_value::( + stream, + definition.get_entry("kill_streak_wep"), + "kill_streak_wep", + )?, + kill_streak_assist: read_value::( + stream, + definition.get_entry("kill_streak_assist"), + "kill_streak_assist", + )?, + kill_streak_victim: read_value::( + stream, + definition.get_entry("kill_streak_victim"), + "kill_streak_victim", + )?, + ducks_streaked: read_value::( + stream, + definition.get_entry("ducks_streaked"), + "ducks_streaked", + )?, + duck_streak_total: read_value::( + stream, + definition.get_entry("duck_streak_total"), + "duck_streak_total", + )?, + duck_streak_assist: read_value::( + stream, + definition.get_entry("duck_streak_assist"), + "duck_streak_assist", + )?, + duck_streak_victim: read_value::( + stream, + definition.get_entry("duck_streak_victim"), + "duck_streak_victim", + )?, + rocket_jump: read_value::( + stream, + definition.get_entry("rocket_jump"), + "rocket_jump", + )?, + weapon_def_index: read_value::( + stream, + definition.get_entry("weapon_def_index"), + "weapon_def_index", + )?, + crit_type: read_value::(stream, definition.get_entry("crit_type"), "crit_type")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), @@ -1342,12 +1336,10 @@ impl PlayerDeathEvent { "rocket_jump" => Ok(self.rocket_jump.clone().into()), "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), "crit_type" => Ok(self.crit_type.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDeath", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDeath", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1384,37 +1376,38 @@ impl PlayerHurtEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHurtEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, health: read_value::(stream, definition.get_entry("health"), "health")?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - damage_amount: read_value::< - u16, - >(stream, definition.get_entry("damageamount"), "damage_amount")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + damage_amount: read_value::( + stream, + definition.get_entry("damageamount"), + "damage_amount", + )?, custom: read_value::(stream, definition.get_entry("custom"), "custom")?, - show_disguised_crit: read_value::< - bool, - >(stream, definition.get_entry("showdisguisedcrit"), "show_disguised_crit")?, + show_disguised_crit: read_value::( + stream, + definition.get_entry("showdisguisedcrit"), + "show_disguised_crit", + )?, crit: read_value::(stream, definition.get_entry("crit"), "crit")?, - mini_crit: read_value::< - bool, - >(stream, definition.get_entry("minicrit"), "mini_crit")?, - all_see_crit: read_value::< - bool, - >(stream, definition.get_entry("allseecrit"), "all_see_crit")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - bonus_effect: read_value::< - u8, - >(stream, definition.get_entry("bonuseffect"), "bonus_effect")?, + mini_crit: read_value::(stream, definition.get_entry("minicrit"), "mini_crit")?, + all_see_crit: read_value::( + stream, + definition.get_entry("allseecrit"), + "all_see_crit", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + bonus_effect: read_value::( + stream, + definition.get_entry("bonuseffect"), + "bonus_effect", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "health" => Ok(self.health.clone().into()), @@ -1427,12 +1420,10 @@ impl PlayerHurtEvent { "allseecrit" => Ok(self.all_see_crit.clone().into()), "weaponid" => Ok(self.weapon_id.clone().into()), "bonuseffect" => Ok(self.bonus_effect.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHurt", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHurt", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1461,29 +1452,22 @@ impl PlayerChatEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerChatEvent { - team_only: read_value::< - bool, - >(stream, definition.get_entry("teamonly"), "team_only")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + team_only: read_value::(stream, definition.get_entry("teamonly"), "team_only")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "teamonly" => Ok(self.team_only.clone().into()), "userid" => Ok(self.user_id.clone().into()), "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerChat", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerChat", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1513,9 +1497,7 @@ impl PlayerScoreEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerScoreEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, kills: read_value::(stream, definition.get_entry("kills"), "kills")?, deaths: read_value::(stream, definition.get_entry("deaths"), "deaths")?, score: read_value::(stream, definition.get_entry("score"), "score")?, @@ -1523,17 +1505,16 @@ impl PlayerScoreEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "kills" => Ok(self.kills.clone().into()), "deaths" => Ok(self.deaths.clone().into()), "score" => Ok(self.score.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerScore", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerScore", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1562,25 +1543,22 @@ impl PlayerSpawnEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerSpawnEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, team: read_value::(stream, definition.get_entry("team"), "team")?, class: read_value::(stream, definition.get_entry("class"), "class")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "team" => Ok(self.team.clone().into()), "class" => Ok(self.class.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerSpawn", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerSpawn", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1609,25 +1587,22 @@ impl PlayerShootEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerShootEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, weapon: read_value::(stream, definition.get_entry("weapon"), "weapon")?, mode: read_value::(stream, definition.get_entry("mode"), "mode")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "weapon" => Ok(self.weapon.clone().into()), "mode" => Ok(self.mode.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerShoot", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerShoot", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1655,23 +1630,20 @@ impl PlayerUseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerUseEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, entity: read_value::(stream, definition.get_entry("entity"), "entity")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "entity" => Ok(self.entity.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerUse", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerUse", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1700,29 +1672,30 @@ impl PlayerChangeNameEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerChangeNameEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - old_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("oldname"), "old_name")?, - new_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("newname"), "new_name")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + old_name: read_value::( + stream, + definition.get_entry("oldname"), + "old_name", + )?, + new_name: read_value::( + stream, + definition.get_entry("newname"), + "new_name", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "oldname" => Ok(self.old_name.clone().into()), "newname" => Ok(self.new_name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerChangeName", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerChangeName", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1749,21 +1722,22 @@ impl PlayerHintMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHintMessageEvent { - hint_message: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("hintmessage"), "hint_message")?, + hint_message: read_value::( + stream, + definition.get_entry("hintmessage"), + "hint_message", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "hintmessage" => Ok(self.hint_message.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHintMessage", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHintMessage", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1790,21 +1764,18 @@ impl BasePlayerTeleportedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BasePlayerTeleportedEvent { - ent_index: read_value::< - u16, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BasePlayerTeleported", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BasePlayerTeleported", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1832,13 +1803,12 @@ impl GameInitEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameInit", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameInit", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1865,21 +1835,22 @@ impl GameNewMapEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GameNewMapEvent { - map_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("mapname"), "map_name")?, + map_name: read_value::( + stream, + definition.get_entry("mapname"), + "map_name", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "mapname" => Ok(self.map_name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameNewMap", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameNewMap", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1909,33 +1880,32 @@ impl GameStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GameStartEvent { - rounds_limit: read_value::< - u32, - >(stream, definition.get_entry("roundslimit"), "rounds_limit")?, - time_limit: read_value::< - u32, - >(stream, definition.get_entry("timelimit"), "time_limit")?, - frag_limit: read_value::< - u32, - >(stream, definition.get_entry("fraglimit"), "frag_limit")?, - objective: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("objective"), "objective")?, + rounds_limit: read_value::( + stream, + definition.get_entry("roundslimit"), + "rounds_limit", + )?, + time_limit: read_value::(stream, definition.get_entry("timelimit"), "time_limit")?, + frag_limit: read_value::(stream, definition.get_entry("fraglimit"), "frag_limit")?, + objective: read_value::( + stream, + definition.get_entry("objective"), + "objective", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "roundslimit" => Ok(self.rounds_limit.clone().into()), "timelimit" => Ok(self.time_limit.clone().into()), "fraglimit" => Ok(self.frag_limit.clone().into()), "objective" => Ok(self.objective.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameStart", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameStart", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -1967,14 +1937,13 @@ impl GameEndEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "winner" => Ok(self.winner.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameEnd", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameEnd", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2003,29 +1972,26 @@ impl RoundStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RoundStartEvent { - time_limit: read_value::< - u32, - >(stream, definition.get_entry("timelimit"), "time_limit")?, - frag_limit: read_value::< - u32, - >(stream, definition.get_entry("fraglimit"), "frag_limit")?, - objective: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("objective"), "objective")?, + time_limit: read_value::(stream, definition.get_entry("timelimit"), "time_limit")?, + frag_limit: read_value::(stream, definition.get_entry("fraglimit"), "frag_limit")?, + objective: read_value::( + stream, + definition.get_entry("objective"), + "objective", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "timelimit" => Ok(self.time_limit.clone().into()), "fraglimit" => Ok(self.frag_limit.clone().into()), "objective" => Ok(self.objective.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RoundStart", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RoundStart", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2056,23 +2022,24 @@ impl RoundEndEvent { Ok(RoundEndEvent { winner: read_value::(stream, definition.get_entry("winner"), "winner")?, reason: read_value::(stream, definition.get_entry("reason"), "reason")?, - message: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("message"), "message")?, + message: read_value::( + stream, + definition.get_entry("message"), + "message", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "winner" => Ok(self.winner.clone().into()), "reason" => Ok(self.reason.clone().into()), "message" => Ok(self.message.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RoundEnd", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RoundEnd", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2101,22 +2068,19 @@ impl GameMessageEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GameMessageEvent { target: read_value::(stream, definition.get_entry("target"), "target")?, - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "target" => Ok(self.target.clone().into()), "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameMessage", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameMessage", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2145,29 +2109,22 @@ impl BreakBreakableEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BreakBreakableEvent { - ent_index: read_value::< - u32, - >(stream, definition.get_entry("entindex"), "ent_index")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - material: read_value::< - u8, - >(stream, definition.get_entry("material"), "material")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + material: read_value::(stream, definition.get_entry("material"), "material")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), "userid" => Ok(self.user_id.clone().into()), "material" => Ok(self.material.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BreakBreakable", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BreakBreakable", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2195,25 +2152,20 @@ impl BreakPropEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BreakPropEvent { - ent_index: read_value::< - u32, - >(stream, definition.get_entry("entindex"), "ent_index")?, - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BreakProp", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BreakProp", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2243,37 +2195,40 @@ impl EntityKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EntityKilledEvent { - ent_index_killed: read_value::< - u32, - >(stream, definition.get_entry("entindex_killed"), "ent_index_killed")?, - ent_index_attacker: read_value::< - u32, - >(stream, definition.get_entry("entindex_attacker"), "ent_index_attacker")?, - ent_index_inflictor: read_value::< - u32, - >( + ent_index_killed: read_value::( + stream, + definition.get_entry("entindex_killed"), + "ent_index_killed", + )?, + ent_index_attacker: read_value::( + stream, + definition.get_entry("entindex_attacker"), + "ent_index_attacker", + )?, + ent_index_inflictor: read_value::( stream, definition.get_entry("entindex_inflictor"), "ent_index_inflictor", )?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex_killed" => Ok(self.ent_index_killed.clone().into()), "entindex_attacker" => Ok(self.ent_index_attacker.clone().into()), "entindex_inflictor" => Ok(self.ent_index_inflictor.clone().into()), "damagebits" => Ok(self.damage_bits.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EntityKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EntityKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2303,33 +2258,28 @@ impl BonusUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BonusUpdatedEvent { - num_advanced: read_value::< - u16, - >(stream, definition.get_entry("numadvanced"), "num_advanced")?, - num_bronze: read_value::< - u16, - >(stream, definition.get_entry("numbronze"), "num_bronze")?, - num_silver: read_value::< - u16, - >(stream, definition.get_entry("numsilver"), "num_silver")?, - num_gold: read_value::< - u16, - >(stream, definition.get_entry("numgold"), "num_gold")?, + num_advanced: read_value::( + stream, + definition.get_entry("numadvanced"), + "num_advanced", + )?, + num_bronze: read_value::(stream, definition.get_entry("numbronze"), "num_bronze")?, + num_silver: read_value::(stream, definition.get_entry("numsilver"), "num_silver")?, + num_gold: read_value::(stream, definition.get_entry("numgold"), "num_gold")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "numadvanced" => Ok(self.num_advanced.clone().into()), "numbronze" => Ok(self.num_bronze.clone().into()), "numsilver" => Ok(self.num_silver.clone().into()), "numgold" => Ok(self.num_gold.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BonusUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BonusUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2358,29 +2308,26 @@ impl AchievementEventEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(AchievementEventEvent { - achievement_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("achievement_name"), "achievement_name")?, - cur_val: read_value::< - u16, - >(stream, definition.get_entry("cur_val"), "cur_val")?, - max_val: read_value::< - u16, - >(stream, definition.get_entry("max_val"), "max_val")?, + achievement_name: read_value::( + stream, + definition.get_entry("achievement_name"), + "achievement_name", + )?, + cur_val: read_value::(stream, definition.get_entry("cur_val"), "cur_val")?, + max_val: read_value::(stream, definition.get_entry("max_val"), "max_val")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "achievement_name" => Ok(self.achievement_name.clone().into()), "cur_val" => Ok(self.cur_val.clone().into()), "max_val" => Ok(self.max_val.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "AchievementEvent", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "AchievementEvent", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2409,29 +2356,26 @@ impl AchievementIncrementEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(AchievementIncrementEvent { - achievement_id: read_value::< - u32, - >(stream, definition.get_entry("achievement_id"), "achievement_id")?, - cur_val: read_value::< - u16, - >(stream, definition.get_entry("cur_val"), "cur_val")?, - max_val: read_value::< - u16, - >(stream, definition.get_entry("max_val"), "max_val")?, + achievement_id: read_value::( + stream, + definition.get_entry("achievement_id"), + "achievement_id", + )?, + cur_val: read_value::(stream, definition.get_entry("cur_val"), "cur_val")?, + max_val: read_value::(stream, definition.get_entry("max_val"), "max_val")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "achievement_id" => Ok(self.achievement_id.clone().into()), "cur_val" => Ok(self.cur_val.clone().into()), "max_val" => Ok(self.max_val.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "AchievementIncrement", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "AchievementIncrement", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2458,21 +2402,18 @@ impl PhysgunPickupEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PhysgunPickupEvent { - ent_index: read_value::< - u32, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PhysgunPickup", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PhysgunPickup", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2499,21 +2440,18 @@ impl FlareIgniteNpcEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(FlareIgniteNpcEvent { - ent_index: read_value::< - u32, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "FlareIgniteNpc", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "FlareIgniteNpc", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2541,13 +2479,12 @@ impl HelicopterGrenadePuntMissEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HelicopterGrenadePuntMiss", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HelicopterGrenadePuntMiss", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2575,13 +2512,12 @@ impl UserDataDownloadedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "UserDataDownloaded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "UserDataDownloaded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2608,21 +2544,18 @@ impl RagdollDissolvedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RagdollDissolvedEvent { - ent_index: read_value::< - u32, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RagdollDissolved", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RagdollDissolved", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2651,29 +2584,26 @@ impl HLTVChangedModeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVChangedModeEvent { - old_mode: read_value::< - u16, - >(stream, definition.get_entry("oldmode"), "old_mode")?, - new_mode: read_value::< - u16, - >(stream, definition.get_entry("newmode"), "new_mode")?, - obs_target: read_value::< - u16, - >(stream, definition.get_entry("obs_target"), "obs_target")?, + old_mode: read_value::(stream, definition.get_entry("oldmode"), "old_mode")?, + new_mode: read_value::(stream, definition.get_entry("newmode"), "new_mode")?, + obs_target: read_value::( + stream, + definition.get_entry("obs_target"), + "obs_target", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "oldmode" => Ok(self.old_mode.clone().into()), "newmode" => Ok(self.new_mode.clone().into()), "obs_target" => Ok(self.obs_target.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVChangedMode", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVChangedMode", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2703,26 +2633,29 @@ impl HLTVChangedTargetEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVChangedTargetEvent { mode: read_value::(stream, definition.get_entry("mode"), "mode")?, - old_target: read_value::< - u16, - >(stream, definition.get_entry("old_target"), "old_target")?, - obs_target: read_value::< - u16, - >(stream, definition.get_entry("obs_target"), "obs_target")?, + old_target: read_value::( + stream, + definition.get_entry("old_target"), + "old_target", + )?, + obs_target: read_value::( + stream, + definition.get_entry("obs_target"), + "obs_target", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "mode" => Ok(self.mode.clone().into()), "old_target" => Ok(self.old_target.clone().into()), "obs_target" => Ok(self.obs_target.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVChangedTarget", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVChangedTarget", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2750,13 +2683,12 @@ impl VoteEndedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteEnded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteEnded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2787,35 +2719,30 @@ impl VoteStartedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteStartedEvent { - issue: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("issue"), "issue")?, - param_1: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("param1"), "param_1")?, + issue: read_value::(stream, definition.get_entry("issue"), "issue")?, + param_1: read_value::( + stream, + definition.get_entry("param1"), + "param_1", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, - initiator: read_value::< - u32, - >(stream, definition.get_entry("initiator"), "initiator")?, - voteidx: read_value::< - u32, - >(stream, definition.get_entry("voteidx"), "voteidx")?, + initiator: read_value::(stream, definition.get_entry("initiator"), "initiator")?, + voteidx: read_value::(stream, definition.get_entry("voteidx"), "voteidx")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "issue" => Ok(self.issue.clone().into()), "param1" => Ok(self.param_1.clone().into()), "team" => Ok(self.team.clone().into()), "initiator" => Ok(self.initiator.clone().into()), "voteidx" => Ok(self.voteidx.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteStarted", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteStarted", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2848,31 +2775,42 @@ impl VoteChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteChangedEvent { - vote_option_1: read_value::< - u8, - >(stream, definition.get_entry("vote_option1"), "vote_option_1")?, - vote_option_2: read_value::< - u8, - >(stream, definition.get_entry("vote_option2"), "vote_option_2")?, - vote_option_3: read_value::< - u8, - >(stream, definition.get_entry("vote_option3"), "vote_option_3")?, - vote_option_4: read_value::< - u8, - >(stream, definition.get_entry("vote_option4"), "vote_option_4")?, - vote_option_5: read_value::< - u8, - >(stream, definition.get_entry("vote_option5"), "vote_option_5")?, - potential_votes: read_value::< - u8, - >(stream, definition.get_entry("potentialVotes"), "potential_votes")?, - voteidx: read_value::< - u32, - >(stream, definition.get_entry("voteidx"), "voteidx")?, + vote_option_1: read_value::( + stream, + definition.get_entry("vote_option1"), + "vote_option_1", + )?, + vote_option_2: read_value::( + stream, + definition.get_entry("vote_option2"), + "vote_option_2", + )?, + vote_option_3: read_value::( + stream, + definition.get_entry("vote_option3"), + "vote_option_3", + )?, + vote_option_4: read_value::( + stream, + definition.get_entry("vote_option4"), + "vote_option_4", + )?, + vote_option_5: read_value::( + stream, + definition.get_entry("vote_option5"), + "vote_option_5", + )?, + potential_votes: read_value::( + stream, + definition.get_entry("potentialVotes"), + "potential_votes", + )?, + voteidx: read_value::(stream, definition.get_entry("voteidx"), "voteidx")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "vote_option1" => Ok(self.vote_option_1.clone().into()), "vote_option2" => Ok(self.vote_option_2.clone().into()), @@ -2881,12 +2819,10 @@ impl VoteChangedEvent { "vote_option5" => Ok(self.vote_option_5.clone().into()), "potentialVotes" => Ok(self.potential_votes.clone().into()), "voteidx" => Ok(self.voteidx.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2916,31 +2852,32 @@ impl VotePassedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VotePassedEvent { - details: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("details"), "details")?, - param_1: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("param1"), "param_1")?, + details: read_value::( + stream, + definition.get_entry("details"), + "details", + )?, + param_1: read_value::( + stream, + definition.get_entry("param1"), + "param_1", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, - voteidx: read_value::< - u32, - >(stream, definition.get_entry("voteidx"), "voteidx")?, + voteidx: read_value::(stream, definition.get_entry("voteidx"), "voteidx")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "details" => Ok(self.details.clone().into()), "param1" => Ok(self.param_1.clone().into()), "team" => Ok(self.team.clone().into()), "voteidx" => Ok(self.voteidx.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VotePassed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VotePassed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -2969,22 +2906,19 @@ impl VoteFailedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteFailedEvent { team: read_value::(stream, definition.get_entry("team"), "team")?, - voteidx: read_value::< - u32, - >(stream, definition.get_entry("voteidx"), "voteidx")?, + voteidx: read_value::(stream, definition.get_entry("voteidx"), "voteidx")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "voteidx" => Ok(self.voteidx.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteFailed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteFailed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3014,31 +2948,28 @@ impl VoteCastEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteCastEvent { - vote_option: read_value::< - u8, - >(stream, definition.get_entry("vote_option"), "vote_option")?, + vote_option: read_value::( + stream, + definition.get_entry("vote_option"), + "vote_option", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, - entity_id: read_value::< - u32, - >(stream, definition.get_entry("entityid"), "entity_id")?, - voteidx: read_value::< - u32, - >(stream, definition.get_entry("voteidx"), "voteidx")?, + entity_id: read_value::(stream, definition.get_entry("entityid"), "entity_id")?, + voteidx: read_value::(stream, definition.get_entry("voteidx"), "voteidx")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "vote_option" => Ok(self.vote_option.clone().into()), "team" => Ok(self.team.clone().into()), "entityid" => Ok(self.entity_id.clone().into()), "voteidx" => Ok(self.voteidx.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteCast", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteCast", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3072,28 +3003,37 @@ impl VoteOptionsEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(VoteOptionsEvent { count: read_value::(stream, definition.get_entry("count"), "count")?, - option_1: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("option1"), "option_1")?, - option_2: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("option2"), "option_2")?, - option_3: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("option3"), "option_3")?, - option_4: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("option4"), "option_4")?, - option_5: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("option5"), "option_5")?, - voteidx: read_value::< - u32, - >(stream, definition.get_entry("voteidx"), "voteidx")?, + option_1: read_value::( + stream, + definition.get_entry("option1"), + "option_1", + )?, + option_2: read_value::( + stream, + definition.get_entry("option2"), + "option_2", + )?, + option_3: read_value::( + stream, + definition.get_entry("option3"), + "option_3", + )?, + option_4: read_value::( + stream, + definition.get_entry("option4"), + "option_4", + )?, + option_5: read_value::( + stream, + definition.get_entry("option5"), + "option_5", + )?, + voteidx: read_value::(stream, definition.get_entry("voteidx"), "voteidx")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "count" => Ok(self.count.clone().into()), "option1" => Ok(self.option_1.clone().into()), @@ -3102,12 +3042,10 @@ impl VoteOptionsEvent { "option4" => Ok(self.option_4.clone().into()), "option5" => Ok(self.option_5.clone().into()), "voteidx" => Ok(self.voteidx.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteOptions", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteOptions", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3135,13 +3073,12 @@ impl ReplaySavedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplaySaved", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplaySaved", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3169,13 +3106,12 @@ impl EnteredPerformanceModeEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EnteredPerformanceMode", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EnteredPerformanceMode", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3203,13 +3139,12 @@ impl BrowseReplaysEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BrowseReplays", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BrowseReplays", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3240,23 +3175,20 @@ impl ReplayYoutubeStatsEvent { Ok(ReplayYoutubeStatsEvent { views: read_value::(stream, definition.get_entry("views"), "views")?, likes: read_value::(stream, definition.get_entry("likes"), "likes")?, - favorited: read_value::< - u32, - >(stream, definition.get_entry("favorited"), "favorited")?, + favorited: read_value::(stream, definition.get_entry("favorited"), "favorited")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "views" => Ok(self.views.clone().into()), "likes" => Ok(self.likes.clone().into()), "favorited" => Ok(self.favorited.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplayYoutubeStats", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplayYoutubeStats", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3284,13 +3216,12 @@ impl InventoryUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "InventoryUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "InventoryUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3318,13 +3249,12 @@ impl CartUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CartUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CartUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3352,13 +3282,12 @@ impl StorePriceSheetUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "StorePriceSheetUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "StorePriceSheetUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3386,13 +3315,12 @@ impl EconInventoryConnectedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EconInventoryConnected", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EconInventoryConnected", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3420,13 +3348,12 @@ impl ItemSchemaInitializedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ItemSchemaInitialized", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ItemSchemaInitialized", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3454,13 +3381,12 @@ impl GcNewSessionEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GcNewSession", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GcNewSession", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3488,13 +3414,12 @@ impl GcLostSessionEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GcLostSession", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GcLostSession", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3526,14 +3451,13 @@ impl IntroFinishEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "IntroFinish", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "IntroFinish", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3565,14 +3489,13 @@ impl IntroNextCameraEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "IntroNextCamera", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "IntroNextCamera", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3600,23 +3523,20 @@ impl PlayerChangeClassEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerChangeClassEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, class: read_value::(stream, definition.get_entry("class"), "class")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "class" => Ok(self.class.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerChangeClass", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerChangeClass", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3643,21 +3563,18 @@ impl TfMapTimeRemainingEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TfMapTimeRemainingEvent { - seconds: read_value::< - u32, - >(stream, definition.get_entry("seconds"), "seconds")?, + seconds: read_value::(stream, definition.get_entry("seconds"), "seconds")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "seconds" => Ok(self.seconds.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TfMapTimeRemaining", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TfMapTimeRemaining", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3684,21 +3601,22 @@ impl TfGameOverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TfGameOverEvent { - reason: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("reason"), "reason")?, + reason: read_value::( + stream, + definition.get_entry("reason"), + "reason", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "reason" => Ok(self.reason.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TfGameOver", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TfGameOver", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3726,25 +3644,28 @@ impl CtfFlagCapturedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(CtfFlagCapturedEvent { - capping_team: read_value::< - u16, - >(stream, definition.get_entry("capping_team"), "capping_team")?, - capping_team_score: read_value::< - u16, - >(stream, definition.get_entry("capping_team_score"), "capping_team_score")?, + capping_team: read_value::( + stream, + definition.get_entry("capping_team"), + "capping_team", + )?, + capping_team_score: read_value::( + stream, + definition.get_entry("capping_team_score"), + "capping_team_score", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "capping_team" => Ok(self.capping_team.clone().into()), "capping_team_score" => Ok(self.capping_team_score.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CtfFlagCaptured", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CtfFlagCaptured", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3772,13 +3693,12 @@ impl ControlPointInitializedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointInitialized", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointInitialized", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3810,14 +3730,13 @@ impl ControlPointUpdateImagesEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointUpdateImages", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateImages", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3849,14 +3768,13 @@ impl ControlPointUpdateLayoutEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointUpdateLayout", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateLayout", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3888,14 +3806,13 @@ impl ControlPointUpdateCappingEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointUpdateCapping", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateCapping", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3927,14 +3844,13 @@ impl ControlPointUpdateOwnerEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointUpdateOwner", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointUpdateOwner", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -3968,15 +3884,14 @@ impl ControlPointStartTouchEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "area" => Ok(self.area.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointStartTouch", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointStartTouch", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4010,15 +3925,14 @@ impl ControlPointEndTouchEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "area" => Ok(self.area.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointEndTouch", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointEndTouch", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4050,14 +3964,13 @@ impl ControlPointPulseElementEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointPulseElement", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointPulseElement", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4086,22 +3999,19 @@ impl ControlPointFakeCaptureEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ControlPointFakeCaptureEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - int_data: read_value::< - u16, - >(stream, definition.get_entry("int_data"), "int_data")?, + int_data: read_value::(stream, definition.get_entry("int_data"), "int_data")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "int_data" => Ok(self.int_data.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointFakeCapture", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointFakeCapture", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4130,22 +4040,19 @@ impl ControlPointFakeCaptureMultiplierEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ControlPointFakeCaptureMultiplierEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - int_data: read_value::< - u16, - >(stream, definition.get_entry("int_data"), "int_data")?, + int_data: read_value::(stream, definition.get_entry("int_data"), "int_data")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "int_data" => Ok(self.int_data.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointFakeCaptureMultiplier", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointFakeCaptureMultiplier", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4172,21 +4079,18 @@ impl TeamPlayRoundSelectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayRoundSelectedEvent { - round: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("round"), "round")?, + round: read_value::(stream, definition.get_entry("round"), "round")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "round" => Ok(self.round.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRoundSelected", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundSelected", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4213,21 +4117,22 @@ impl TeamPlayRoundStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayRoundStartEvent { - full_reset: read_value::< - bool, - >(stream, definition.get_entry("full_reset"), "full_reset")?, + full_reset: read_value::( + stream, + definition.get_entry("full_reset"), + "full_reset", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "full_reset" => Ok(self.full_reset.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRoundStart", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundStart", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4255,13 +4160,12 @@ impl TeamPlayRoundActiveEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRoundActive", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundActive", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4289,13 +4193,12 @@ impl TeamPlayWaitingBeginsEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayWaitingBegins", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWaitingBegins", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4323,13 +4226,12 @@ impl TeamPlayWaitingEndsEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayWaitingEnds", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWaitingEnds", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4357,13 +4259,12 @@ impl TeamPlayWaitingAboutToEndEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayWaitingAboutToEnd", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWaitingAboutToEnd", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4391,13 +4292,12 @@ impl TeamPlayRestartRoundEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRestartRound", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRestartRound", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4425,13 +4325,12 @@ impl TeamPlayReadyRestartEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayReadyRestart", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayReadyRestart", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4458,21 +4357,18 @@ impl TeamPlayRoundRestartSecondsEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayRoundRestartSecondsEvent { - seconds: read_value::< - u16, - >(stream, definition.get_entry("seconds"), "seconds")?, + seconds: read_value::(stream, definition.get_entry("seconds"), "seconds")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "seconds" => Ok(self.seconds.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRoundRestartSeconds", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundRestartSeconds", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4504,14 +4400,13 @@ impl TeamPlayTeamReadyEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayTeamReady", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTeamReady", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4545,32 +4440,37 @@ impl TeamPlayRoundWinEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayRoundWinEvent { team: read_value::(stream, definition.get_entry("team"), "team")?, - win_reason: read_value::< - u8, - >(stream, definition.get_entry("winreason"), "win_reason")?, - flag_cap_limit: read_value::< - u16, - >(stream, definition.get_entry("flagcaplimit"), "flag_cap_limit")?, - full_round: read_value::< - u16, - >(stream, definition.get_entry("full_round"), "full_round")?, - round_time: read_value::< - f32, - >(stream, definition.get_entry("round_time"), "round_time")?, - losing_team_num_caps: read_value::< - u16, - >( + win_reason: read_value::(stream, definition.get_entry("winreason"), "win_reason")?, + flag_cap_limit: read_value::( + stream, + definition.get_entry("flagcaplimit"), + "flag_cap_limit", + )?, + full_round: read_value::( + stream, + definition.get_entry("full_round"), + "full_round", + )?, + round_time: read_value::( + stream, + definition.get_entry("round_time"), + "round_time", + )?, + losing_team_num_caps: read_value::( stream, definition.get_entry("losing_team_num_caps"), "losing_team_num_caps", )?, - was_sudden_death: read_value::< - u8, - >(stream, definition.get_entry("was_sudden_death"), "was_sudden_death")?, + was_sudden_death: read_value::( + stream, + definition.get_entry("was_sudden_death"), + "was_sudden_death", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "winreason" => Ok(self.win_reason.clone().into()), @@ -4579,12 +4479,10 @@ impl TeamPlayRoundWinEvent { "round_time" => Ok(self.round_time.clone().into()), "losing_team_num_caps" => Ok(self.losing_team_num_caps.clone().into()), "was_sudden_death" => Ok(self.was_sudden_death.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRoundWin", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundWin", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4612,13 +4510,12 @@ impl TeamPlayUpdateTimerEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayUpdateTimer", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayUpdateTimer", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4650,14 +4547,13 @@ impl TeamPlayRoundStalemateEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "reason" => Ok(self.reason.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayRoundStalemate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayRoundStalemate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4685,13 +4581,12 @@ impl TeamPlayOvertimeBeginEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayOvertimeBegin", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayOvertimeBegin", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4719,13 +4614,12 @@ impl TeamPlayOvertimeEndEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayOvertimeEnd", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayOvertimeEnd", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4753,13 +4647,12 @@ impl TeamPlaySuddenDeathBeginEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlaySuddenDeathBegin", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlaySuddenDeathBegin", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4787,13 +4680,12 @@ impl TeamPlaySuddenDeathEndEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlaySuddenDeathEnd", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlaySuddenDeathEnd", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4820,21 +4712,22 @@ impl TeamPlayGameOverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayGameOverEvent { - reason: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("reason"), "reason")?, + reason: read_value::( + stream, + definition.get_entry("reason"), + "reason", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "reason" => Ok(self.reason.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayGameOver", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayGameOver", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4861,21 +4754,18 @@ impl TeamPlayMapTimeRemainingEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayMapTimeRemainingEvent { - seconds: read_value::< - u16, - >(stream, definition.get_entry("seconds"), "seconds")?, + seconds: read_value::(stream, definition.get_entry("seconds"), "seconds")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "seconds" => Ok(self.seconds.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayMapTimeRemaining", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayMapTimeRemaining", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4902,21 +4792,22 @@ impl TeamPlayTimerFlashEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayTimerFlashEvent { - time_remaining: read_value::< - u16, - >(stream, definition.get_entry("time_remaining"), "time_remaining")?, + time_remaining: read_value::( + stream, + definition.get_entry("time_remaining"), + "time_remaining", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "time_remaining" => Ok(self.time_remaining.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayTimerFlash", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTimerFlash", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4945,22 +4836,23 @@ impl TeamPlayTimerTimeAddedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayTimerTimeAddedEvent { timer: read_value::(stream, definition.get_entry("timer"), "timer")?, - seconds_added: read_value::< - u16, - >(stream, definition.get_entry("seconds_added"), "seconds_added")?, + seconds_added: read_value::( + stream, + definition.get_entry("seconds_added"), + "seconds_added", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "timer" => Ok(self.timer.clone().into()), "seconds_added" => Ok(self.seconds_added.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayTimerTimeAdded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTimerTimeAdded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -4993,23 +4885,24 @@ impl TeamPlayPointStartCaptureEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayPointStartCaptureEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, - cp_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cpname"), "cp_name")?, + cp_name: read_value::( + stream, + definition.get_entry("cpname"), + "cp_name", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, - cap_team: read_value::< - u8, - >(stream, definition.get_entry("capteam"), "cap_team")?, - cappers: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cappers"), "cappers")?, - cap_time: read_value::< - f32, - >(stream, definition.get_entry("captime"), "cap_time")?, + cap_team: read_value::(stream, definition.get_entry("capteam"), "cap_team")?, + cappers: read_value::( + stream, + definition.get_entry("cappers"), + "cappers", + )?, + cap_time: read_value::(stream, definition.get_entry("captime"), "cap_time")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "cpname" => Ok(self.cp_name.clone().into()), @@ -5017,12 +4910,10 @@ impl TeamPlayPointStartCaptureEvent { "capteam" => Ok(self.cap_team.clone().into()), "cappers" => Ok(self.cappers.clone().into()), "captime" => Ok(self.cap_time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayPointStartCapture", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointStartCapture", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5053,28 +4944,31 @@ impl TeamPlayPointCapturedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayPointCapturedEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, - cp_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cpname"), "cp_name")?, + cp_name: read_value::( + stream, + definition.get_entry("cpname"), + "cp_name", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, - cappers: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cappers"), "cappers")?, + cappers: read_value::( + stream, + definition.get_entry("cappers"), + "cappers", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "cpname" => Ok(self.cp_name.clone().into()), "team" => Ok(self.team.clone().into()), "cappers" => Ok(self.cappers.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayPointCaptured", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointCaptured", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5104,24 +4998,25 @@ impl TeamPlayPointLockedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayPointLockedEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, - cp_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cpname"), "cp_name")?, + cp_name: read_value::( + stream, + definition.get_entry("cpname"), + "cp_name", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "cpname" => Ok(self.cp_name.clone().into()), "team" => Ok(self.team.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayPointLocked", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointLocked", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5151,24 +5046,25 @@ impl TeamPlayPointUnlockedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayPointUnlockedEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, - cp_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cpname"), "cp_name")?, + cp_name: read_value::( + stream, + definition.get_entry("cpname"), + "cp_name", + )?, team: read_value::(stream, definition.get_entry("team"), "team")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "cpname" => Ok(self.cp_name.clone().into()), "team" => Ok(self.team.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayPointUnlocked", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPointUnlocked", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5198,26 +5094,29 @@ impl TeamPlayCaptureBrokenEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayCaptureBrokenEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, - cp_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cpname"), "cp_name")?, - time_remaining: read_value::< - f32, - >(stream, definition.get_entry("time_remaining"), "time_remaining")?, + cp_name: read_value::( + stream, + definition.get_entry("cpname"), + "cp_name", + )?, + time_remaining: read_value::( + stream, + definition.get_entry("time_remaining"), + "time_remaining", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "cpname" => Ok(self.cp_name.clone().into()), "time_remaining" => Ok(self.time_remaining.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayCaptureBroken", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayCaptureBroken", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5248,28 +5147,27 @@ impl TeamPlayCaptureBlockedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayCaptureBlockedEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, - cp_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cpname"), "cp_name")?, - blocker: read_value::< - u8, - >(stream, definition.get_entry("blocker"), "blocker")?, + cp_name: read_value::( + stream, + definition.get_entry("cpname"), + "cp_name", + )?, + blocker: read_value::(stream, definition.get_entry("blocker"), "blocker")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "cpname" => Ok(self.cp_name.clone().into()), "blocker" => Ok(self.blocker.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayCaptureBlocked", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayCaptureBlocked", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5301,30 +5199,25 @@ impl TeamPlayFlagEventEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayFlagEventEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - carrier: read_value::< - u16, - >(stream, definition.get_entry("carrier"), "carrier")?, - event_type: read_value::< - u16, - >(stream, definition.get_entry("eventtype"), "event_type")?, + carrier: read_value::(stream, definition.get_entry("carrier"), "carrier")?, + event_type: read_value::(stream, definition.get_entry("eventtype"), "event_type")?, home: read_value::(stream, definition.get_entry("home"), "home")?, team: read_value::(stream, definition.get_entry("team"), "team")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "carrier" => Ok(self.carrier.clone().into()), "eventtype" => Ok(self.event_type.clone().into()), "home" => Ok(self.home.clone().into()), "team" => Ok(self.team.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayFlagEvent", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayFlagEvent", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5370,78 +5263,87 @@ impl TeamPlayWinPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayWinPanelEvent { - panel_style: read_value::< - u8, - >(stream, definition.get_entry("panel_style"), "panel_style")?, - winning_team: read_value::< - u8, - >(stream, definition.get_entry("winning_team"), "winning_team")?, - win_reason: read_value::< - u8, - >(stream, definition.get_entry("winreason"), "win_reason")?, - cappers: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cappers"), "cappers")?, - flag_cap_limit: read_value::< - u16, - >(stream, definition.get_entry("flagcaplimit"), "flag_cap_limit")?, - blue_score: read_value::< - u16, - >(stream, definition.get_entry("blue_score"), "blue_score")?, - red_score: read_value::< - u16, - >(stream, definition.get_entry("red_score"), "red_score")?, - blue_score_prev: read_value::< - u16, - >(stream, definition.get_entry("blue_score_prev"), "blue_score_prev")?, - red_score_prev: read_value::< - u16, - >(stream, definition.get_entry("red_score_prev"), "red_score_prev")?, - round_complete: read_value::< - u16, - >(stream, definition.get_entry("round_complete"), "round_complete")?, - rounds_remaining: read_value::< - u16, - >(stream, definition.get_entry("rounds_remaining"), "rounds_remaining")?, - player_1: read_value::< - u16, - >(stream, definition.get_entry("player_1"), "player_1")?, - player_1_points: read_value::< - u16, - >(stream, definition.get_entry("player_1_points"), "player_1_points")?, - player_2: read_value::< - u16, - >(stream, definition.get_entry("player_2"), "player_2")?, - player_2_points: read_value::< - u16, - >(stream, definition.get_entry("player_2_points"), "player_2_points")?, - player_3: read_value::< - u16, - >(stream, definition.get_entry("player_3"), "player_3")?, - player_3_points: read_value::< - u16, - >(stream, definition.get_entry("player_3_points"), "player_3_points")?, - kill_stream_player_1: read_value::< - u16, - >( + panel_style: read_value::( + stream, + definition.get_entry("panel_style"), + "panel_style", + )?, + winning_team: read_value::( + stream, + definition.get_entry("winning_team"), + "winning_team", + )?, + win_reason: read_value::(stream, definition.get_entry("winreason"), "win_reason")?, + cappers: read_value::( + stream, + definition.get_entry("cappers"), + "cappers", + )?, + flag_cap_limit: read_value::( + stream, + definition.get_entry("flagcaplimit"), + "flag_cap_limit", + )?, + blue_score: read_value::( + stream, + definition.get_entry("blue_score"), + "blue_score", + )?, + red_score: read_value::(stream, definition.get_entry("red_score"), "red_score")?, + blue_score_prev: read_value::( + stream, + definition.get_entry("blue_score_prev"), + "blue_score_prev", + )?, + red_score_prev: read_value::( + stream, + definition.get_entry("red_score_prev"), + "red_score_prev", + )?, + round_complete: read_value::( + stream, + definition.get_entry("round_complete"), + "round_complete", + )?, + rounds_remaining: read_value::( + stream, + definition.get_entry("rounds_remaining"), + "rounds_remaining", + )?, + player_1: read_value::(stream, definition.get_entry("player_1"), "player_1")?, + player_1_points: read_value::( + stream, + definition.get_entry("player_1_points"), + "player_1_points", + )?, + player_2: read_value::(stream, definition.get_entry("player_2"), "player_2")?, + player_2_points: read_value::( + stream, + definition.get_entry("player_2_points"), + "player_2_points", + )?, + player_3: read_value::(stream, definition.get_entry("player_3"), "player_3")?, + player_3_points: read_value::( + stream, + definition.get_entry("player_3_points"), + "player_3_points", + )?, + kill_stream_player_1: read_value::( stream, definition.get_entry("killstreak_player_1"), "kill_stream_player_1", )?, - kill_stream_player_1_count: read_value::< - u16, - >( + kill_stream_player_1_count: read_value::( stream, definition.get_entry("killstreak_player_1_count"), "kill_stream_player_1_count", )?, - game_over: read_value::< - u8, - >(stream, definition.get_entry("game_over"), "game_over")?, + game_over: read_value::(stream, definition.get_entry("game_over"), "game_over")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "panel_style" => Ok(self.panel_style.clone().into()), "winning_team" => Ok(self.winning_team.clone().into()), @@ -5461,16 +5363,12 @@ impl TeamPlayWinPanelEvent { "player_3" => Ok(self.player_3.clone().into()), "player_3_points" => Ok(self.player_3_points.clone().into()), "killstreak_player_1" => Ok(self.kill_stream_player_1.clone().into()), - "killstreak_player_1_count" => { - Ok(self.kill_stream_player_1_count.clone().into()) - } + "killstreak_player_1_count" => Ok(self.kill_stream_player_1_count.clone().into()), "game_over" => Ok(self.game_over.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayWinPanel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayWinPanel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5504,15 +5402,14 @@ impl TeamPlayTeamBalancedPlayerEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "team" => Ok(self.team.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayTeamBalancedPlayer", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayTeamBalancedPlayer", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5540,13 +5437,12 @@ impl TeamPlaySetupFinishedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlaySetupFinished", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlaySetupFinished", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5573,21 +5469,22 @@ impl TeamPlayAlertEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TeamPlayAlertEvent { - alert_type: read_value::< - u16, - >(stream, definition.get_entry("alert_type"), "alert_type")?, + alert_type: read_value::( + stream, + definition.get_entry("alert_type"), + "alert_type", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "alert_type" => Ok(self.alert_type.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayAlert", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayAlert", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5616,29 +5513,26 @@ impl TrainingCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TrainingCompleteEvent { - next_map: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("next_map"), "next_map")?, - map: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("map"), "map")?, - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + next_map: read_value::( + stream, + definition.get_entry("next_map"), + "next_map", + )?, + map: read_value::(stream, definition.get_entry("map"), "map")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "next_map" => Ok(self.next_map.clone().into()), "map" => Ok(self.map.clone().into()), "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TrainingComplete", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TrainingComplete", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5670,14 +5564,13 @@ impl ShowFreezePanelEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "killer" => Ok(self.killer.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ShowFreezePanel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ShowFreezePanel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5705,13 +5598,12 @@ impl HideFreezePanelEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HideFreezePanel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HideFreezePanel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5739,13 +5631,12 @@ impl FreezeCamStartedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "FreezeCamStarted", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "FreezeCamStarted", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5773,13 +5664,12 @@ impl LocalPlayerChangeTeamEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerChangeTeam", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChangeTeam", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5811,14 +5701,13 @@ impl LocalPlayerScoreChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "score" => Ok(self.score.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerScoreChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerScoreChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5846,13 +5735,12 @@ impl LocalPlayerChangeClassEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerChangeClass", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChangeClass", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5880,13 +5768,12 @@ impl LocalPlayerRespawnEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerRespawn", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerRespawn", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5915,27 +5802,30 @@ impl BuildingInfoChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BuildingInfoChangedEvent { - building_type: read_value::< - u8, - >(stream, definition.get_entry("building_type"), "building_type")?, - object_mode: read_value::< - u8, - >(stream, definition.get_entry("object_mode"), "object_mode")?, + building_type: read_value::( + stream, + definition.get_entry("building_type"), + "building_type", + )?, + object_mode: read_value::( + stream, + definition.get_entry("object_mode"), + "object_mode", + )?, remove: read_value::(stream, definition.get_entry("remove"), "remove")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "building_type" => Ok(self.building_type.clone().into()), "object_mode" => Ok(self.object_mode.clone().into()), "remove" => Ok(self.remove.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BuildingInfoChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BuildingInfoChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -5962,21 +5852,18 @@ impl LocalPlayerChangeDisguiseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(LocalPlayerChangeDisguiseEvent { - disguised: read_value::< - bool, - >(stream, definition.get_entry("disguised"), "disguised")?, + disguised: read_value::(stream, definition.get_entry("disguised"), "disguised")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "disguised" => Ok(self.disguised.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerChangeDisguise", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChangeDisguise", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6004,25 +5891,20 @@ impl PlayerAccountChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerAccountChangedEvent { - old_value: read_value::< - u16, - >(stream, definition.get_entry("old_value"), "old_value")?, - new_value: read_value::< - u16, - >(stream, definition.get_entry("new_value"), "new_value")?, + old_value: read_value::(stream, definition.get_entry("old_value"), "old_value")?, + new_value: read_value::(stream, definition.get_entry("new_value"), "new_value")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "old_value" => Ok(self.old_value.clone().into()), "new_value" => Ok(self.new_value.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerAccountChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerAccountChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6050,13 +5932,12 @@ impl SpyPdaResetEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SpyPdaReset", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SpyPdaReset", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6084,25 +5965,20 @@ impl FlagStatusUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(FlagStatusUpdateEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - ent_index: read_value::< - u32, - >(stream, definition.get_entry("entindex"), "ent_index")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "FlagStatusUpdate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "FlagStatusUpdate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6129,21 +6005,22 @@ impl PlayerStatsUpdatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerStatsUpdatedEvent { - force_upload: read_value::< - bool, - >(stream, definition.get_entry("forceupload"), "force_upload")?, + force_upload: read_value::( + stream, + definition.get_entry("forceupload"), + "force_upload", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "forceupload" => Ok(self.force_upload.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerStatsUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerStatsUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6171,13 +6048,12 @@ impl PlayingCommentaryEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayingCommentary", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayingCommentary", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6205,25 +6081,20 @@ impl PlayerChargeDeployedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerChargeDeployedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - target_id: read_value::< - u16, - >(stream, definition.get_entry("targetid"), "target_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + target_id: read_value::(stream, definition.get_entry("targetid"), "target_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "targetid" => Ok(self.target_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerChargeDeployed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerChargeDeployed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6252,25 +6123,22 @@ impl PlayerBuiltObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerBuiltObjectEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, object: read_value::(stream, definition.get_entry("object"), "object")?, index: read_value::(stream, definition.get_entry("index"), "index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "object" => Ok(self.object.clone().into()), "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerBuiltObject", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerBuiltObject", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6300,29 +6168,28 @@ impl PlayerUpgradedObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerUpgradedObjectEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, object: read_value::(stream, definition.get_entry("object"), "object")?, index: read_value::(stream, definition.get_entry("index"), "index")?, - is_builder: read_value::< - bool, - >(stream, definition.get_entry("isbuilder"), "is_builder")?, + is_builder: read_value::( + stream, + definition.get_entry("isbuilder"), + "is_builder", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "object" => Ok(self.object.clone().into()), "index" => Ok(self.index.clone().into()), "isbuilder" => Ok(self.is_builder.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerUpgradedObject", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerUpgradedObject", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6351,25 +6218,22 @@ impl PlayerCarryObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerCarryObjectEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, object: read_value::(stream, definition.get_entry("object"), "object")?, index: read_value::(stream, definition.get_entry("index"), "index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "object" => Ok(self.object.clone().into()), "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerCarryObject", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerCarryObject", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6398,25 +6262,22 @@ impl PlayerDropObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerDropObjectEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, object: read_value::(stream, definition.get_entry("object"), "object")?, index: read_value::(stream, definition.get_entry("index"), "index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "object" => Ok(self.object.clone().into()), "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDropObject", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDropObject", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6445,27 +6306,26 @@ impl ObjectRemovedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ObjectRemovedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - object_type: read_value::< - u16, - >(stream, definition.get_entry("objecttype"), "object_type")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + object_type: read_value::( + stream, + definition.get_entry("objecttype"), + "object_type", + )?, index: read_value::(stream, definition.get_entry("index"), "index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "objecttype" => Ok(self.object_type.clone().into()), "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ObjectRemoved", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ObjectRemoved", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6499,32 +6359,31 @@ impl ObjectDestroyedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ObjectDestroyedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - object_type: read_value::< - u16, - >(stream, definition.get_entry("objecttype"), "object_type")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + object_type: read_value::( + stream, + definition.get_entry("objecttype"), + "object_type", + )?, index: read_value::(stream, definition.get_entry("index"), "index")?, - was_building: read_value::< - bool, - >(stream, definition.get_entry("was_building"), "was_building")?, + was_building: read_value::( + stream, + definition.get_entry("was_building"), + "was_building", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "attacker" => Ok(self.attacker.clone().into()), @@ -6534,12 +6393,10 @@ impl ObjectDestroyedEvent { "objecttype" => Ok(self.object_type.clone().into()), "index" => Ok(self.index.clone().into()), "was_building" => Ok(self.was_building.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ObjectDestroyed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ObjectDestroyed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6568,27 +6425,26 @@ impl ObjectDetonatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ObjectDetonatedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - object_type: read_value::< - u16, - >(stream, definition.get_entry("objecttype"), "object_type")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + object_type: read_value::( + stream, + definition.get_entry("objecttype"), + "object_type", + )?, index: read_value::(stream, definition.get_entry("index"), "index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "objecttype" => Ok(self.object_type.clone().into()), "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ObjectDetonated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ObjectDetonated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6617,22 +6473,23 @@ impl AchievementEarnedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(AchievementEarnedEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - achievement: read_value::< - u16, - >(stream, definition.get_entry("achievement"), "achievement")?, + achievement: read_value::( + stream, + definition.get_entry("achievement"), + "achievement", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "achievement" => Ok(self.achievement.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "AchievementEarned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "AchievementEarned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6660,13 +6517,12 @@ impl SpecTargetUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SpecTargetUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SpecTargetUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6696,33 +6552,36 @@ impl TournamentStateUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(TournamentStateUpdateEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - name_change: read_value::< - bool, - >(stream, definition.get_entry("namechange"), "name_change")?, - ready_state: read_value::< - u16, - >(stream, definition.get_entry("readystate"), "ready_state")?, - new_name: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("newname"), "new_name")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + name_change: read_value::( + stream, + definition.get_entry("namechange"), + "name_change", + )?, + ready_state: read_value::( + stream, + definition.get_entry("readystate"), + "ready_state", + )?, + new_name: read_value::( + stream, + definition.get_entry("newname"), + "new_name", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "namechange" => Ok(self.name_change.clone().into()), "readystate" => Ok(self.ready_state.clone().into()), "newname" => Ok(self.new_name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TournamentStateUpdate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TournamentStateUpdate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6750,13 +6609,12 @@ impl TournamentEnableCountdownEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TournamentEnableCountdown", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TournamentEnableCountdown", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6783,21 +6641,18 @@ impl PlayerCalledForMedicEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerCalledForMedicEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerCalledForMedic", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerCalledForMedic", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6824,21 +6679,18 @@ impl PlayerAskedForBallEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerAskedForBallEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerAskedForBall", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerAskedForBall", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6866,13 +6718,12 @@ impl LocalPlayerBecameObserverEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerBecameObserver", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerBecameObserver", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6901,29 +6752,34 @@ impl PlayerIgnitedInvEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerIgnitedInvEvent { - pyro_ent_index: read_value::< - u8, - >(stream, definition.get_entry("pyro_entindex"), "pyro_ent_index")?, - victim_ent_index: read_value::< - u8, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - medic_ent_index: read_value::< - u8, - >(stream, definition.get_entry("medic_entindex"), "medic_ent_index")?, + pyro_ent_index: read_value::( + stream, + definition.get_entry("pyro_entindex"), + "pyro_ent_index", + )?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + medic_ent_index: read_value::( + stream, + definition.get_entry("medic_entindex"), + "medic_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "pyro_entindex" => Ok(self.pyro_ent_index.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), "medic_entindex" => Ok(self.medic_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerIgnitedInv", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerIgnitedInv", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -6952,29 +6808,30 @@ impl PlayerIgnitedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerIgnitedEvent { - pyro_ent_index: read_value::< - u8, - >(stream, definition.get_entry("pyro_entindex"), "pyro_ent_index")?, - victim_ent_index: read_value::< - u8, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - weapon_id: read_value::< - u8, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, + pyro_ent_index: read_value::( + stream, + definition.get_entry("pyro_entindex"), + "pyro_ent_index", + )?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "pyro_entindex" => Ok(self.pyro_ent_index.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), "weaponid" => Ok(self.weapon_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerIgnited", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerIgnited", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7005,23 +6862,24 @@ impl PlayerExtinguishedEvent { Ok(PlayerExtinguishedEvent { victim: read_value::(stream, definition.get_entry("victim"), "victim")?, healer: read_value::(stream, definition.get_entry("healer"), "healer")?, - item_definition_index: read_value::< - u16, - >(stream, definition.get_entry("itemdefindex"), "item_definition_index")?, + item_definition_index: read_value::( + stream, + definition.get_entry("itemdefindex"), + "item_definition_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "victim" => Ok(self.victim.clone().into()), "healer" => Ok(self.healer.clone().into()), "itemdefindex" => Ok(self.item_definition_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerExtinguished", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerExtinguished", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7050,27 +6908,22 @@ impl PlayerTeleportedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerTeleportedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - builder_id: read_value::< - u16, - >(stream, definition.get_entry("builderid"), "builder_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + builder_id: read_value::(stream, definition.get_entry("builderid"), "builder_id")?, dist: read_value::(stream, definition.get_entry("dist"), "dist")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "builderid" => Ok(self.builder_id.clone().into()), "dist" => Ok(self.dist.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerTeleported", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerTeleported", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7097,21 +6950,18 @@ impl PlayerHealedMedicCallEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHealedMedicCallEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHealedMedicCall", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHealedMedicCall", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7139,13 +6989,12 @@ impl LocalPlayerChargeReadyEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerChargeReady", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerChargeReady", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7173,13 +7022,12 @@ impl LocalPlayerWindDownEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerWindDown", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerWindDown", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7207,25 +7055,24 @@ impl PlayerInvulnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerInvulnedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - medic_user_id: read_value::< - u16, - >(stream, definition.get_entry("medic_userid"), "medic_user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + medic_user_id: read_value::( + stream, + definition.get_entry("medic_userid"), + "medic_user_id", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "medic_userid" => Ok(self.medic_user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerInvulned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerInvulned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7256,23 +7103,20 @@ impl EscortSpeedEvent { Ok(EscortSpeedEvent { team: read_value::(stream, definition.get_entry("team"), "team")?, speed: read_value::(stream, definition.get_entry("speed"), "speed")?, - players: read_value::< - u8, - >(stream, definition.get_entry("players"), "players")?, + players: read_value::(stream, definition.get_entry("players"), "players")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "speed" => Ok(self.speed.clone().into()), "players" => Ok(self.players.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EscortSpeed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EscortSpeed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7302,24 +7146,21 @@ impl EscortProgressEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EscortProgressEvent { team: read_value::(stream, definition.get_entry("team"), "team")?, - progress: read_value::< - f32, - >(stream, definition.get_entry("progress"), "progress")?, + progress: read_value::(stream, definition.get_entry("progress"), "progress")?, reset: read_value::(stream, definition.get_entry("reset"), "reset")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "progress" => Ok(self.progress.clone().into()), "reset" => Ok(self.reset.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EscortProgress", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EscortProgress", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7348,22 +7189,23 @@ impl EscortRecedeEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EscortRecedeEvent { team: read_value::(stream, definition.get_entry("team"), "team")?, - recede_time: read_value::< - f32, - >(stream, definition.get_entry("recedetime"), "recede_time")?, + recede_time: read_value::( + stream, + definition.get_entry("recedetime"), + "recede_time", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "recedetime" => Ok(self.recede_time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EscortRecede", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EscortRecede", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7391,13 +7233,12 @@ impl GameUIActivatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameUIActivated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameUIActivated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7425,13 +7266,12 @@ impl GameUIHiddenEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GameUIHidden", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GameUIHidden", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7465,15 +7305,14 @@ impl PlayerEscortScoreEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "points" => Ok(self.points.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerEscortScore", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerEscortScore", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7503,26 +7342,25 @@ impl PlayerHealOnHitEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHealOnHitEvent { amount: read_value::(stream, definition.get_entry("amount"), "amount")?, - ent_index: read_value::< - u8, - >(stream, definition.get_entry("entindex"), "ent_index")?, - weapon_def_index: read_value::< - u32, - >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, + weapon_def_index: read_value::( + stream, + definition.get_entry("weapon_def_index"), + "weapon_def_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "amount" => Ok(self.amount.clone().into()), "entindex" => Ok(self.ent_index.clone().into()), "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHealOnHit", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHealOnHit", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7556,15 +7394,14 @@ impl PlayerStealSandvichEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "owner" => Ok(self.owner.clone().into()), "target" => Ok(self.target.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerStealSandvich", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerStealSandvich", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7596,14 +7433,13 @@ impl ShowClassLayoutEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "show" => Ok(self.show.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ShowClassLayout", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ShowClassLayout", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7635,14 +7471,13 @@ impl ShowVsPanelEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "show" => Ok(self.show.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ShowVsPanel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ShowVsPanel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7676,15 +7511,14 @@ impl PlayerDamagedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "amount" => Ok(self.amount.clone().into()), "type" => Ok(self.kind.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDamaged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDamaged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7713,22 +7547,19 @@ impl ArenaPlayerNotificationEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ArenaPlayerNotificationEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - message: read_value::< - u8, - >(stream, definition.get_entry("message"), "message")?, + message: read_value::(stream, definition.get_entry("message"), "message")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "message" => Ok(self.message.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ArenaPlayerNotification", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ArenaPlayerNotification", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7762,15 +7593,14 @@ impl ArenaMatchMaxStreakEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "streak" => Ok(self.streak.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ArenaMatchMaxStreak", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ArenaMatchMaxStreak", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7798,13 +7628,12 @@ impl ArenaRoundStartEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ArenaRoundStart", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ArenaRoundStart", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -7870,130 +7699,179 @@ impl ArenaWinPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ArenaWinPanelEvent { - panel_style: read_value::< - u8, - >(stream, definition.get_entry("panel_style"), "panel_style")?, - winning_team: read_value::< - u8, - >(stream, definition.get_entry("winning_team"), "winning_team")?, - win_reason: read_value::< - u8, - >(stream, definition.get_entry("winreason"), "win_reason")?, - cappers: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("cappers"), "cappers")?, - flag_cap_limit: read_value::< - u16, - >(stream, definition.get_entry("flagcaplimit"), "flag_cap_limit")?, - blue_score: read_value::< - u16, - >(stream, definition.get_entry("blue_score"), "blue_score")?, - red_score: read_value::< - u16, - >(stream, definition.get_entry("red_score"), "red_score")?, - blue_score_prev: read_value::< - u16, - >(stream, definition.get_entry("blue_score_prev"), "blue_score_prev")?, - red_score_prev: read_value::< - u16, - >(stream, definition.get_entry("red_score_prev"), "red_score_prev")?, - round_complete: read_value::< - u16, - >(stream, definition.get_entry("round_complete"), "round_complete")?, - player_1: read_value::< - u16, - >(stream, definition.get_entry("player_1"), "player_1")?, - player_1_damage: read_value::< - u16, - >(stream, definition.get_entry("player_1_damage"), "player_1_damage")?, - player_1_healing: read_value::< - u16, - >(stream, definition.get_entry("player_1_healing"), "player_1_healing")?, - player_1_lifetime: read_value::< - u16, - >(stream, definition.get_entry("player_1_lifetime"), "player_1_lifetime")?, - player_1_kills: read_value::< - u16, - >(stream, definition.get_entry("player_1_kills"), "player_1_kills")?, - player_2: read_value::< - u16, - >(stream, definition.get_entry("player_2"), "player_2")?, - player_2_damage: read_value::< - u16, - >(stream, definition.get_entry("player_2_damage"), "player_2_damage")?, - player_2_healing: read_value::< - u16, - >(stream, definition.get_entry("player_2_healing"), "player_2_healing")?, - player_2_lifetime: read_value::< - u16, - >(stream, definition.get_entry("player_2_lifetime"), "player_2_lifetime")?, - player_2_kills: read_value::< - u16, - >(stream, definition.get_entry("player_2_kills"), "player_2_kills")?, - player_3: read_value::< - u16, - >(stream, definition.get_entry("player_3"), "player_3")?, - player_3_damage: read_value::< - u16, - >(stream, definition.get_entry("player_3_damage"), "player_3_damage")?, - player_3_healing: read_value::< - u16, - >(stream, definition.get_entry("player_3_healing"), "player_3_healing")?, - player_3_lifetime: read_value::< - u16, - >(stream, definition.get_entry("player_3_lifetime"), "player_3_lifetime")?, - player_3_kills: read_value::< - u16, - >(stream, definition.get_entry("player_3_kills"), "player_3_kills")?, - player_4: read_value::< - u16, - >(stream, definition.get_entry("player_4"), "player_4")?, - player_4_damage: read_value::< - u16, - >(stream, definition.get_entry("player_4_damage"), "player_4_damage")?, - player_4_healing: read_value::< - u16, - >(stream, definition.get_entry("player_4_healing"), "player_4_healing")?, - player_4_lifetime: read_value::< - u16, - >(stream, definition.get_entry("player_4_lifetime"), "player_4_lifetime")?, - player_4_kills: read_value::< - u16, - >(stream, definition.get_entry("player_4_kills"), "player_4_kills")?, - player_5: read_value::< - u16, - >(stream, definition.get_entry("player_5"), "player_5")?, - player_5_damage: read_value::< - u16, - >(stream, definition.get_entry("player_5_damage"), "player_5_damage")?, - player_5_healing: read_value::< - u16, - >(stream, definition.get_entry("player_5_healing"), "player_5_healing")?, - player_5_lifetime: read_value::< - u16, - >(stream, definition.get_entry("player_5_lifetime"), "player_5_lifetime")?, - player_5_kills: read_value::< - u16, - >(stream, definition.get_entry("player_5_kills"), "player_5_kills")?, - player_6: read_value::< - u16, - >(stream, definition.get_entry("player_6"), "player_6")?, - player_6_damage: read_value::< - u16, - >(stream, definition.get_entry("player_6_damage"), "player_6_damage")?, - player_6_healing: read_value::< - u16, - >(stream, definition.get_entry("player_6_healing"), "player_6_healing")?, - player_6_lifetime: read_value::< - u16, - >(stream, definition.get_entry("player_6_lifetime"), "player_6_lifetime")?, - player_6_kills: read_value::< - u16, - >(stream, definition.get_entry("player_6_kills"), "player_6_kills")?, + panel_style: read_value::( + stream, + definition.get_entry("panel_style"), + "panel_style", + )?, + winning_team: read_value::( + stream, + definition.get_entry("winning_team"), + "winning_team", + )?, + win_reason: read_value::(stream, definition.get_entry("winreason"), "win_reason")?, + cappers: read_value::( + stream, + definition.get_entry("cappers"), + "cappers", + )?, + flag_cap_limit: read_value::( + stream, + definition.get_entry("flagcaplimit"), + "flag_cap_limit", + )?, + blue_score: read_value::( + stream, + definition.get_entry("blue_score"), + "blue_score", + )?, + red_score: read_value::(stream, definition.get_entry("red_score"), "red_score")?, + blue_score_prev: read_value::( + stream, + definition.get_entry("blue_score_prev"), + "blue_score_prev", + )?, + red_score_prev: read_value::( + stream, + definition.get_entry("red_score_prev"), + "red_score_prev", + )?, + round_complete: read_value::( + stream, + definition.get_entry("round_complete"), + "round_complete", + )?, + player_1: read_value::(stream, definition.get_entry("player_1"), "player_1")?, + player_1_damage: read_value::( + stream, + definition.get_entry("player_1_damage"), + "player_1_damage", + )?, + player_1_healing: read_value::( + stream, + definition.get_entry("player_1_healing"), + "player_1_healing", + )?, + player_1_lifetime: read_value::( + stream, + definition.get_entry("player_1_lifetime"), + "player_1_lifetime", + )?, + player_1_kills: read_value::( + stream, + definition.get_entry("player_1_kills"), + "player_1_kills", + )?, + player_2: read_value::(stream, definition.get_entry("player_2"), "player_2")?, + player_2_damage: read_value::( + stream, + definition.get_entry("player_2_damage"), + "player_2_damage", + )?, + player_2_healing: read_value::( + stream, + definition.get_entry("player_2_healing"), + "player_2_healing", + )?, + player_2_lifetime: read_value::( + stream, + definition.get_entry("player_2_lifetime"), + "player_2_lifetime", + )?, + player_2_kills: read_value::( + stream, + definition.get_entry("player_2_kills"), + "player_2_kills", + )?, + player_3: read_value::(stream, definition.get_entry("player_3"), "player_3")?, + player_3_damage: read_value::( + stream, + definition.get_entry("player_3_damage"), + "player_3_damage", + )?, + player_3_healing: read_value::( + stream, + definition.get_entry("player_3_healing"), + "player_3_healing", + )?, + player_3_lifetime: read_value::( + stream, + definition.get_entry("player_3_lifetime"), + "player_3_lifetime", + )?, + player_3_kills: read_value::( + stream, + definition.get_entry("player_3_kills"), + "player_3_kills", + )?, + player_4: read_value::(stream, definition.get_entry("player_4"), "player_4")?, + player_4_damage: read_value::( + stream, + definition.get_entry("player_4_damage"), + "player_4_damage", + )?, + player_4_healing: read_value::( + stream, + definition.get_entry("player_4_healing"), + "player_4_healing", + )?, + player_4_lifetime: read_value::( + stream, + definition.get_entry("player_4_lifetime"), + "player_4_lifetime", + )?, + player_4_kills: read_value::( + stream, + definition.get_entry("player_4_kills"), + "player_4_kills", + )?, + player_5: read_value::(stream, definition.get_entry("player_5"), "player_5")?, + player_5_damage: read_value::( + stream, + definition.get_entry("player_5_damage"), + "player_5_damage", + )?, + player_5_healing: read_value::( + stream, + definition.get_entry("player_5_healing"), + "player_5_healing", + )?, + player_5_lifetime: read_value::( + stream, + definition.get_entry("player_5_lifetime"), + "player_5_lifetime", + )?, + player_5_kills: read_value::( + stream, + definition.get_entry("player_5_kills"), + "player_5_kills", + )?, + player_6: read_value::(stream, definition.get_entry("player_6"), "player_6")?, + player_6_damage: read_value::( + stream, + definition.get_entry("player_6_damage"), + "player_6_damage", + )?, + player_6_healing: read_value::( + stream, + definition.get_entry("player_6_healing"), + "player_6_healing", + )?, + player_6_lifetime: read_value::( + stream, + definition.get_entry("player_6_lifetime"), + "player_6_lifetime", + )?, + player_6_kills: read_value::( + stream, + definition.get_entry("player_6_kills"), + "player_6_kills", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "panel_style" => Ok(self.panel_style.clone().into()), "winning_team" => Ok(self.winning_team.clone().into()), @@ -8035,12 +7913,10 @@ impl ArenaWinPanelEvent { "player_6_healing" => Ok(self.player_6_healing.clone().into()), "player_6_lifetime" => Ok(self.player_6_lifetime.clone().into()), "player_6_kills" => Ok(self.player_6_kills.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ArenaWinPanel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ArenaWinPanel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8069,29 +7945,30 @@ impl PveWinPanelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PveWinPanelEvent { - panel_style: read_value::< - u8, - >(stream, definition.get_entry("panel_style"), "panel_style")?, - winning_team: read_value::< - u8, - >(stream, definition.get_entry("winning_team"), "winning_team")?, - win_reason: read_value::< - u8, - >(stream, definition.get_entry("winreason"), "win_reason")?, - }) - } - #[allow(unused_variables)] + panel_style: read_value::( + stream, + definition.get_entry("panel_style"), + "panel_style", + )?, + winning_team: read_value::( + stream, + definition.get_entry("winning_team"), + "winning_team", + )?, + win_reason: read_value::(stream, definition.get_entry("winreason"), "win_reason")?, + }) + } + #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "panel_style" => Ok(self.panel_style.clone().into()), "winning_team" => Ok(self.winning_team.clone().into()), "winreason" => Ok(self.win_reason.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PveWinPanel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PveWinPanel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8123,14 +8000,13 @@ impl AirDashEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "AirDash", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "AirDash", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8162,14 +8038,13 @@ impl LandedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "Landed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "Landed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8201,14 +8076,13 @@ impl PlayerDamageDodgedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "damage" => Ok(self.damage.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDamageDodged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDamageDodged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8238,31 +8112,28 @@ impl PlayerStunnedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerStunnedEvent { - stunner: read_value::< - u16, - >(stream, definition.get_entry("stunner"), "stunner")?, + stunner: read_value::(stream, definition.get_entry("stunner"), "stunner")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, - victim_capping: read_value::< - bool, - >(stream, definition.get_entry("victim_capping"), "victim_capping")?, - big_stun: read_value::< - bool, - >(stream, definition.get_entry("big_stun"), "big_stun")?, + victim_capping: read_value::( + stream, + definition.get_entry("victim_capping"), + "victim_capping", + )?, + big_stun: read_value::(stream, definition.get_entry("big_stun"), "big_stun")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "stunner" => Ok(self.stunner.clone().into()), "victim" => Ok(self.victim.clone().into()), "victim_capping" => Ok(self.victim_capping.clone().into()), "big_stun" => Ok(self.big_stun.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerStunned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerStunned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8290,25 +8161,20 @@ impl ScoutGrandSlamEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ScoutGrandSlamEvent { - scout_id: read_value::< - u16, - >(stream, definition.get_entry("scout_id"), "scout_id")?, - target_id: read_value::< - u16, - >(stream, definition.get_entry("target_id"), "target_id")?, + scout_id: read_value::(stream, definition.get_entry("scout_id"), "scout_id")?, + target_id: read_value::(stream, definition.get_entry("target_id"), "target_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "scout_id" => Ok(self.scout_id.clone().into()), "target_id" => Ok(self.target_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ScoutGrandSlam", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ScoutGrandSlam", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8338,9 +8204,11 @@ impl ScoutSlamdollLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ScoutSlamdollLandedEvent { - target_index: read_value::< - u16, - >(stream, definition.get_entry("target_index"), "target_index")?, + target_index: read_value::( + stream, + definition.get_entry("target_index"), + "target_index", + )?, x: read_value::(stream, definition.get_entry("x"), "x")?, y: read_value::(stream, definition.get_entry("y"), "y")?, z: read_value::(stream, definition.get_entry("z"), "z")?, @@ -8348,17 +8216,16 @@ impl ScoutSlamdollLandedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "target_index" => Ok(self.target_index.clone().into()), "x" => Ok(self.x.clone().into()), "y" => Ok(self.y.clone().into()), "z" => Ok(self.z.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ScoutSlamdollLanded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ScoutSlamdollLanded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8395,43 +8262,58 @@ impl ArrowImpactEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ArrowImpactEvent { - attached_entity: read_value::< - u16, - >(stream, definition.get_entry("attachedEntity"), "attached_entity")?, - shooter: read_value::< - u16, - >(stream, definition.get_entry("shooter"), "shooter")?, - bone_index_attached: read_value::< - u16, - >(stream, definition.get_entry("boneIndexAttached"), "bone_index_attached")?, - bone_position_x: read_value::< - f32, - >(stream, definition.get_entry("bonePositionX"), "bone_position_x")?, - bone_position_y: read_value::< - f32, - >(stream, definition.get_entry("bonePositionY"), "bone_position_y")?, - bone_position_z: read_value::< - f32, - >(stream, definition.get_entry("bonePositionZ"), "bone_position_z")?, - bone_angles_x: read_value::< - f32, - >(stream, definition.get_entry("boneAnglesX"), "bone_angles_x")?, - bone_angles_y: read_value::< - f32, - >(stream, definition.get_entry("boneAnglesY"), "bone_angles_y")?, - bone_angles_z: read_value::< - f32, - >(stream, definition.get_entry("boneAnglesZ"), "bone_angles_z")?, - projectile_type: read_value::< - u16, - >(stream, definition.get_entry("projectileType"), "projectile_type")?, - is_crit: read_value::< - bool, - >(stream, definition.get_entry("isCrit"), "is_crit")?, + attached_entity: read_value::( + stream, + definition.get_entry("attachedEntity"), + "attached_entity", + )?, + shooter: read_value::(stream, definition.get_entry("shooter"), "shooter")?, + bone_index_attached: read_value::( + stream, + definition.get_entry("boneIndexAttached"), + "bone_index_attached", + )?, + bone_position_x: read_value::( + stream, + definition.get_entry("bonePositionX"), + "bone_position_x", + )?, + bone_position_y: read_value::( + stream, + definition.get_entry("bonePositionY"), + "bone_position_y", + )?, + bone_position_z: read_value::( + stream, + definition.get_entry("bonePositionZ"), + "bone_position_z", + )?, + bone_angles_x: read_value::( + stream, + definition.get_entry("boneAnglesX"), + "bone_angles_x", + )?, + bone_angles_y: read_value::( + stream, + definition.get_entry("boneAnglesY"), + "bone_angles_y", + )?, + bone_angles_z: read_value::( + stream, + definition.get_entry("boneAnglesZ"), + "bone_angles_z", + )?, + projectile_type: read_value::( + stream, + definition.get_entry("projectileType"), + "projectile_type", + )?, + is_crit: read_value::(stream, definition.get_entry("isCrit"), "is_crit")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "attachedEntity" => Ok(self.attached_entity.clone().into()), "shooter" => Ok(self.shooter.clone().into()), @@ -8444,12 +8326,10 @@ impl ArrowImpactEvent { "boneAnglesZ" => Ok(self.bone_angles_z.clone().into()), "projectileType" => Ok(self.projectile_type.clone().into()), "isCrit" => Ok(self.is_crit.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ArrowImpact", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ArrowImpact", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8477,25 +8357,28 @@ impl PlayerJaratedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerJaratedEvent { - thrower_ent_index: read_value::< - u8, - >(stream, definition.get_entry("thrower_entindex"), "thrower_ent_index")?, - victim_ent_index: read_value::< - u8, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + thrower_ent_index: read_value::( + stream, + definition.get_entry("thrower_entindex"), + "thrower_ent_index", + )?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "thrower_entindex" => Ok(self.thrower_ent_index.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerJarated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerJarated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8523,25 +8406,28 @@ impl PlayerJaratedFadeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerJaratedFadeEvent { - thrower_ent_index: read_value::< - u8, - >(stream, definition.get_entry("thrower_entindex"), "thrower_ent_index")?, - victim_ent_index: read_value::< - u8, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, + thrower_ent_index: read_value::( + stream, + definition.get_entry("thrower_entindex"), + "thrower_ent_index", + )?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "thrower_entindex" => Ok(self.thrower_ent_index.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerJaratedFade", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerJaratedFade", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8569,25 +8455,28 @@ impl PlayerShieldBlockedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerShieldBlockedEvent { - attacker_ent_index: read_value::< - u8, - >(stream, definition.get_entry("attacker_entindex"), "attacker_ent_index")?, - blocker_ent_index: read_value::< - u8, - >(stream, definition.get_entry("blocker_entindex"), "blocker_ent_index")?, + attacker_ent_index: read_value::( + stream, + definition.get_entry("attacker_entindex"), + "attacker_ent_index", + )?, + blocker_ent_index: read_value::( + stream, + definition.get_entry("blocker_entindex"), + "blocker_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "attacker_entindex" => Ok(self.attacker_ent_index.clone().into()), "blocker_entindex" => Ok(self.blocker_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerShieldBlocked", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerShieldBlocked", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8619,14 +8508,13 @@ impl PlayerPinnedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "pinned" => Ok(self.pinned.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerPinned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerPinned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8658,14 +8546,13 @@ impl PlayerHealedByMedicEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "medic" => Ok(self.medic.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHealedByMedic", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHealedByMedic", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8695,31 +8582,24 @@ impl PlayerSappedObjectEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerSappedObjectEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - owner_id: read_value::< - u16, - >(stream, definition.get_entry("ownerid"), "owner_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + owner_id: read_value::(stream, definition.get_entry("ownerid"), "owner_id")?, object: read_value::(stream, definition.get_entry("object"), "object")?, - sapper_id: read_value::< - u16, - >(stream, definition.get_entry("sapperid"), "sapper_id")?, + sapper_id: read_value::(stream, definition.get_entry("sapperid"), "sapper_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "ownerid" => Ok(self.owner_id.clone().into()), "object" => Ok(self.object.clone().into()), "sapperid" => Ok(self.sapper_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerSappedObject", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerSappedObject", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8753,24 +8633,17 @@ impl ItemFoundEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ItemFoundEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - quality: read_value::< - u8, - >(stream, definition.get_entry("quality"), "quality")?, + quality: read_value::(stream, definition.get_entry("quality"), "quality")?, method: read_value::(stream, definition.get_entry("method"), "method")?, - item_def: read_value::< - u32, - >(stream, definition.get_entry("itemdef"), "item_def")?, - is_strange: read_value::< - u8, - >(stream, definition.get_entry("isstrange"), "is_strange")?, - is_unusual: read_value::< - u8, - >(stream, definition.get_entry("isunusual"), "is_unusual")?, + item_def: read_value::(stream, definition.get_entry("itemdef"), "item_def")?, + is_strange: read_value::(stream, definition.get_entry("isstrange"), "is_strange")?, + is_unusual: read_value::(stream, definition.get_entry("isunusual"), "is_unusual")?, wear: read_value::(stream, definition.get_entry("wear"), "wear")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "quality" => Ok(self.quality.clone().into()), @@ -8779,12 +8652,10 @@ impl ItemFoundEvent { "isstrange" => Ok(self.is_strange.clone().into()), "isunusual" => Ok(self.is_unusual.clone().into()), "wear" => Ok(self.wear.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ItemFound", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ItemFound", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8824,54 +8695,69 @@ impl ShowAnnotationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ShowAnnotationEvent { - world_pos_x: read_value::< - f32, - >(stream, definition.get_entry("worldPosX"), "world_pos_x")?, - world_pos_y: read_value::< - f32, - >(stream, definition.get_entry("worldPosY"), "world_pos_y")?, - world_pos_z: read_value::< - f32, - >(stream, definition.get_entry("worldPosZ"), "world_pos_z")?, - world_normal_x: read_value::< - f32, - >(stream, definition.get_entry("worldNormalX"), "world_normal_x")?, - world_normal_y: read_value::< - f32, - >(stream, definition.get_entry("worldNormalY"), "world_normal_y")?, - world_normal_z: read_value::< - f32, - >(stream, definition.get_entry("worldNormalZ"), "world_normal_z")?, + world_pos_x: read_value::( + stream, + definition.get_entry("worldPosX"), + "world_pos_x", + )?, + world_pos_y: read_value::( + stream, + definition.get_entry("worldPosY"), + "world_pos_y", + )?, + world_pos_z: read_value::( + stream, + definition.get_entry("worldPosZ"), + "world_pos_z", + )?, + world_normal_x: read_value::( + stream, + definition.get_entry("worldNormalX"), + "world_normal_x", + )?, + world_normal_y: read_value::( + stream, + definition.get_entry("worldNormalY"), + "world_normal_y", + )?, + world_normal_z: read_value::( + stream, + definition.get_entry("worldNormalZ"), + "world_normal_z", + )?, id: read_value::(stream, definition.get_entry("id"), "id")?, - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, - lifetime: read_value::< - f32, - >(stream, definition.get_entry("lifetime"), "lifetime")?, - visibility_bit_field: read_value::< - u32, - >( + text: read_value::(stream, definition.get_entry("text"), "text")?, + lifetime: read_value::(stream, definition.get_entry("lifetime"), "lifetime")?, + visibility_bit_field: read_value::( stream, definition.get_entry("visibilityBitfield"), "visibility_bit_field", )?, - follow_ent_index: read_value::< - u32, - >(stream, definition.get_entry("follow_entindex"), "follow_ent_index")?, - show_distance: read_value::< - bool, - >(stream, definition.get_entry("show_distance"), "show_distance")?, - play_sound: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("play_sound"), "play_sound")?, - show_effect: read_value::< - bool, - >(stream, definition.get_entry("show_effect"), "show_effect")?, + follow_ent_index: read_value::( + stream, + definition.get_entry("follow_entindex"), + "follow_ent_index", + )?, + show_distance: read_value::( + stream, + definition.get_entry("show_distance"), + "show_distance", + )?, + play_sound: read_value::( + stream, + definition.get_entry("play_sound"), + "play_sound", + )?, + show_effect: read_value::( + stream, + definition.get_entry("show_effect"), + "show_effect", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "worldPosX" => Ok(self.world_pos_x.clone().into()), "worldPosY" => Ok(self.world_pos_y.clone().into()), @@ -8887,12 +8773,10 @@ impl ShowAnnotationEvent { "show_distance" => Ok(self.show_distance.clone().into()), "play_sound" => Ok(self.play_sound.clone().into()), "show_effect" => Ok(self.show_effect.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ShowAnnotation", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ShowAnnotation", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8924,14 +8808,13 @@ impl HideAnnotationEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "id" => Ok(self.id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HideAnnotation", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HideAnnotation", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -8958,21 +8841,18 @@ impl PostInventoryApplicationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PostInventoryApplicationEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PostInventoryApplication", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PostInventoryApplication", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9006,15 +8886,14 @@ impl ControlPointUnlockUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "time" => Ok(self.time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointUnlockUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointUnlockUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9042,25 +8921,24 @@ impl DeployBuffBannerEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DeployBuffBannerEvent { - buff_type: read_value::< - u8, - >(stream, definition.get_entry("buff_type"), "buff_type")?, - buff_owner: read_value::< - u16, - >(stream, definition.get_entry("buff_owner"), "buff_owner")?, + buff_type: read_value::(stream, definition.get_entry("buff_type"), "buff_type")?, + buff_owner: read_value::( + stream, + definition.get_entry("buff_owner"), + "buff_owner", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "buff_type" => Ok(self.buff_type.clone().into()), "buff_owner" => Ok(self.buff_owner.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DeployBuffBanner", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DeployBuffBanner", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9089,29 +8967,26 @@ impl PlayerBuffEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerBuffEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - buff_owner: read_value::< - u16, - >(stream, definition.get_entry("buff_owner"), "buff_owner")?, - buff_type: read_value::< - u8, - >(stream, definition.get_entry("buff_type"), "buff_type")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + buff_owner: read_value::( + stream, + definition.get_entry("buff_owner"), + "buff_owner", + )?, + buff_type: read_value::(stream, definition.get_entry("buff_type"), "buff_type")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "buff_owner" => Ok(self.buff_owner.clone().into()), "buff_type" => Ok(self.buff_type.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerBuff", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerBuff", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9141,33 +9016,24 @@ impl MedicDeathEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MedicDeathEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - healing: read_value::< - u16, - >(stream, definition.get_entry("healing"), "healing")?, - charged: read_value::< - bool, - >(stream, definition.get_entry("charged"), "charged")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + healing: read_value::(stream, definition.get_entry("healing"), "healing")?, + charged: read_value::(stream, definition.get_entry("charged"), "charged")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "attacker" => Ok(self.attacker.clone().into()), "healing" => Ok(self.healing.clone().into()), "charged" => Ok(self.charged.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MedicDeath", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MedicDeath", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9195,13 +9061,12 @@ impl OvertimeNagEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "OvertimeNag", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "OvertimeNag", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9229,13 +9094,12 @@ impl TeamsChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamsChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamsChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9262,21 +9126,18 @@ impl HalloweenPumpkinGrabEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HalloweenPumpkinGrabEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HalloweenPumpkinGrab", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HalloweenPumpkinGrab", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9304,25 +9165,24 @@ impl RocketJumpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RocketJumpEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - play_sound: read_value::< - bool, - >(stream, definition.get_entry("playsound"), "play_sound")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + play_sound: read_value::( + stream, + definition.get_entry("playsound"), + "play_sound", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "playsound" => Ok(self.play_sound.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RocketJump", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RocketJump", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9349,21 +9209,18 @@ impl RocketJumpLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RocketJumpLandedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RocketJumpLanded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RocketJumpLanded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9391,25 +9248,24 @@ impl StickyJumpEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(StickyJumpEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - play_sound: read_value::< - bool, - >(stream, definition.get_entry("playsound"), "play_sound")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + play_sound: read_value::( + stream, + definition.get_entry("playsound"), + "play_sound", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "playsound" => Ok(self.play_sound.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "StickyJump", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "StickyJump", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9436,21 +9292,18 @@ impl StickyJumpLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(StickyJumpLandedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "StickyJumpLanded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "StickyJumpLanded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9478,25 +9331,24 @@ impl RocketPackLaunchEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RocketPackLaunchEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - play_sound: read_value::< - bool, - >(stream, definition.get_entry("playsound"), "play_sound")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + play_sound: read_value::( + stream, + definition.get_entry("playsound"), + "play_sound", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "playsound" => Ok(self.play_sound.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RocketPackLaunch", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RocketPackLaunch", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9523,21 +9375,18 @@ impl RocketPackLandedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RocketPackLandedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RocketPackLanded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RocketPackLanded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9565,23 +9414,20 @@ impl MedicDefendedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MedicDefendedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, medic: read_value::(stream, definition.get_entry("medic"), "medic")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "medic" => Ok(self.medic.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MedicDefended", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MedicDefended", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9613,14 +9459,13 @@ impl LocalPlayerHealedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "amount" => Ok(self.amount.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerHealed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerHealed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9647,21 +9492,18 @@ impl PlayerDestroyedPipeBombEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerDestroyedPipeBombEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDestroyedPipeBomb", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDestroyedPipeBomb", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9691,33 +9533,28 @@ impl ObjectDeflectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ObjectDeflectedEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - owner_id: read_value::< - u16, - >(stream, definition.get_entry("ownerid"), "owner_id")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - object_ent_index: read_value::< - u16, - >(stream, definition.get_entry("object_entindex"), "object_ent_index")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + owner_id: read_value::(stream, definition.get_entry("ownerid"), "owner_id")?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + object_ent_index: read_value::( + stream, + definition.get_entry("object_entindex"), + "object_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "ownerid" => Ok(self.owner_id.clone().into()), "weaponid" => Ok(self.weapon_id.clone().into()), "object_entindex" => Ok(self.object_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ObjectDeflected", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ObjectDeflected", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9749,14 +9586,13 @@ impl PlayerMvpEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerMvp", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerMvp", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9784,13 +9620,12 @@ impl RaidSpawnMobEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RaidSpawnMob", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RaidSpawnMob", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9818,13 +9653,12 @@ impl RaidSpawnSquadEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RaidSpawnSquad", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RaidSpawnSquad", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9853,22 +9687,19 @@ impl NavBlockedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(NavBlockedEvent { area: read_value::(stream, definition.get_entry("area"), "area")?, - blocked: read_value::< - bool, - >(stream, definition.get_entry("blocked"), "blocked")?, + blocked: read_value::(stream, definition.get_entry("blocked"), "blocked")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "area" => Ok(self.area.clone().into()), "blocked" => Ok(self.blocked.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "NavBlocked", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "NavBlocked", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9900,14 +9731,13 @@ impl PathTrackPassedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PathTrackPassed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PathTrackPassed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9941,15 +9771,14 @@ impl NumCappersChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "count" => Ok(self.count.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "NumCappersChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "NumCappersChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -9977,13 +9806,12 @@ impl PlayerRegenerateEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerRegenerate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerRegenerate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10017,15 +9845,14 @@ impl UpdateStatusItemEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "object" => Ok(self.object.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "UpdateStatusItem", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "UpdateStatusItem", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10053,13 +9880,12 @@ impl StatsResetRoundEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "StatsResetRound", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "StatsResetRound", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10083,18 +9909,16 @@ pub struct ScoreStatsAccumulatedUpdateEvent {} impl ScoreStatsAccumulatedUpdateEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - Ok(ScoreStatsAccumulatedUpdateEvent { - }) + Ok(ScoreStatsAccumulatedUpdateEvent {}) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ScoreStatsAccumulatedUpdate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ScoreStatsAccumulatedUpdate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10122,13 +9946,12 @@ impl ScoreStatsAccumulatedResetEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ScoreStatsAccumulatedReset", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ScoreStatsAccumulatedReset", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10155,21 +9978,22 @@ impl AchievementEarnedLocalEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(AchievementEarnedLocalEvent { - achievement: read_value::< - u16, - >(stream, definition.get_entry("achievement"), "achievement")?, + achievement: read_value::( + stream, + definition.get_entry("achievement"), + "achievement", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "achievement" => Ok(self.achievement.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "AchievementEarnedLocal", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "AchievementEarnedLocal", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10198,25 +10022,22 @@ impl PlayerHealedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHealedEvent { - patient: read_value::< - u16, - >(stream, definition.get_entry("patient"), "patient")?, + patient: read_value::(stream, definition.get_entry("patient"), "patient")?, healer: read_value::(stream, definition.get_entry("healer"), "healer")?, amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "patient" => Ok(self.patient.clone().into()), "healer" => Ok(self.healer.clone().into()), "amount" => Ok(self.amount.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHealed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHealed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10245,25 +10066,22 @@ impl BuildingHealedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(BuildingHealedEvent { - building: read_value::< - u16, - >(stream, definition.get_entry("building"), "building")?, + building: read_value::(stream, definition.get_entry("building"), "building")?, healer: read_value::(stream, definition.get_entry("healer"), "healer")?, amount: read_value::(stream, definition.get_entry("amount"), "amount")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "building" => Ok(self.building.clone().into()), "healer" => Ok(self.healer.clone().into()), "amount" => Ok(self.amount.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BuildingHealed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BuildingHealed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10291,25 +10109,20 @@ impl ItemPickupEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ItemPickupEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - item: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("item"), "item")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + item: read_value::(stream, definition.get_entry("item"), "item")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "item" => Ok(self.item.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ItemPickup", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ItemPickup", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10342,23 +10155,28 @@ impl DuelStatusEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DuelStatusEvent { killer: read_value::(stream, definition.get_entry("killer"), "killer")?, - score_type: read_value::< - u16, - >(stream, definition.get_entry("score_type"), "score_type")?, - initiator: read_value::< - u16, - >(stream, definition.get_entry("initiator"), "initiator")?, + score_type: read_value::( + stream, + definition.get_entry("score_type"), + "score_type", + )?, + initiator: read_value::(stream, definition.get_entry("initiator"), "initiator")?, target: read_value::(stream, definition.get_entry("target"), "target")?, - initiator_score: read_value::< - u16, - >(stream, definition.get_entry("initiator_score"), "initiator_score")?, - target_score: read_value::< - u16, - >(stream, definition.get_entry("target_score"), "target_score")?, + initiator_score: read_value::( + stream, + definition.get_entry("initiator_score"), + "initiator_score", + )?, + target_score: read_value::( + stream, + definition.get_entry("target_score"), + "target_score", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "killer" => Ok(self.killer.clone().into()), "score_type" => Ok(self.score_type.clone().into()), @@ -10366,12 +10184,10 @@ impl DuelStatusEvent { "target" => Ok(self.target.clone().into()), "initiator_score" => Ok(self.initiator_score.clone().into()), "target_score" => Ok(self.target_score.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DuelStatus", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DuelStatus", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10411,60 +10227,65 @@ impl FishNoticeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(FishNoticeEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >( + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + inflictor_ent_index: read_value::( stream, definition.get_entry("inflictor_entindex"), "inflictor_ent_index", )?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, - custom_kill: read_value::< - u16, - >(stream, definition.get_entry("customkill"), "custom_kill")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >( + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, + custom_kill: read_value::( + stream, + definition.get_entry("customkill"), + "custom_kill", + )?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::( stream, definition.get_entry("weapon_logclassname"), "weapon_log_class_name", )?, - stun_flags: read_value::< - u16, - >(stream, definition.get_entry("stun_flags"), "stun_flags")?, - death_flags: read_value::< - u16, - >(stream, definition.get_entry("death_flags"), "death_flags")?, - silent_kill: read_value::< - bool, - >(stream, definition.get_entry("silent_kill"), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + stun_flags: read_value::( + stream, + definition.get_entry("stun_flags"), + "stun_flags", + )?, + death_flags: read_value::( + stream, + definition.get_entry("death_flags"), + "death_flags", + )?, + silent_kill: read_value::( + stream, + definition.get_entry("silent_kill"), + "silent_kill", + )?, + assister_fallback: read_value::( + stream, + definition.get_entry("assister_fallback"), + "assister_fallback", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), @@ -10480,12 +10301,10 @@ impl FishNoticeEvent { "death_flags" => Ok(self.death_flags.clone().into()), "silent_kill" => Ok(self.silent_kill.clone().into()), "assister_fallback" => Ok(self.assister_fallback.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "FishNotice", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "FishNotice", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10525,60 +10344,65 @@ impl FishNoticeArmEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(FishNoticeArmEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >( + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + inflictor_ent_index: read_value::( stream, definition.get_entry("inflictor_entindex"), "inflictor_ent_index", )?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, - custom_kill: read_value::< - u16, - >(stream, definition.get_entry("customkill"), "custom_kill")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >( + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, + custom_kill: read_value::( + stream, + definition.get_entry("customkill"), + "custom_kill", + )?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::( stream, definition.get_entry("weapon_logclassname"), "weapon_log_class_name", )?, - stun_flags: read_value::< - u16, - >(stream, definition.get_entry("stun_flags"), "stun_flags")?, - death_flags: read_value::< - u16, - >(stream, definition.get_entry("death_flags"), "death_flags")?, - silent_kill: read_value::< - bool, - >(stream, definition.get_entry("silent_kill"), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + stun_flags: read_value::( + stream, + definition.get_entry("stun_flags"), + "stun_flags", + )?, + death_flags: read_value::( + stream, + definition.get_entry("death_flags"), + "death_flags", + )?, + silent_kill: read_value::( + stream, + definition.get_entry("silent_kill"), + "silent_kill", + )?, + assister_fallback: read_value::( + stream, + definition.get_entry("assister_fallback"), + "assister_fallback", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), @@ -10594,12 +10418,10 @@ impl FishNoticeArmEvent { "death_flags" => Ok(self.death_flags.clone().into()), "silent_kill" => Ok(self.silent_kill.clone().into()), "assister_fallback" => Ok(self.assister_fallback.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "FishNoticeArm", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "FishNoticeArm", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10639,60 +10461,65 @@ impl SlapNoticeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(SlapNoticeEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >( + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + inflictor_ent_index: read_value::( stream, definition.get_entry("inflictor_entindex"), "inflictor_ent_index", )?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, - custom_kill: read_value::< - u16, - >(stream, definition.get_entry("customkill"), "custom_kill")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >( + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, + custom_kill: read_value::( + stream, + definition.get_entry("customkill"), + "custom_kill", + )?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::( stream, definition.get_entry("weapon_logclassname"), "weapon_log_class_name", )?, - stun_flags: read_value::< - u16, - >(stream, definition.get_entry("stun_flags"), "stun_flags")?, - death_flags: read_value::< - u16, - >(stream, definition.get_entry("death_flags"), "death_flags")?, - silent_kill: read_value::< - bool, - >(stream, definition.get_entry("silent_kill"), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, + stun_flags: read_value::( + stream, + definition.get_entry("stun_flags"), + "stun_flags", + )?, + death_flags: read_value::( + stream, + definition.get_entry("death_flags"), + "death_flags", + )?, + silent_kill: read_value::( + stream, + definition.get_entry("silent_kill"), + "silent_kill", + )?, + assister_fallback: read_value::( + stream, + definition.get_entry("assister_fallback"), + "assister_fallback", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), @@ -10708,12 +10535,10 @@ impl SlapNoticeEvent { "death_flags" => Ok(self.death_flags.clone().into()), "silent_kill" => Ok(self.silent_kill.clone().into()), "assister_fallback" => Ok(self.assister_fallback.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SlapNotice", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SlapNotice", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10754,63 +10579,66 @@ impl ThrowableHitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ThrowableHitEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >( + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + inflictor_ent_index: read_value::( stream, definition.get_entry("inflictor_entindex"), "inflictor_ent_index", )?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, - custom_kill: read_value::< - u16, - >(stream, definition.get_entry("customkill"), "custom_kill")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >( + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, + custom_kill: read_value::( + stream, + definition.get_entry("customkill"), + "custom_kill", + )?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, + weapon_log_class_name: read_value::( stream, definition.get_entry("weapon_logclassname"), "weapon_log_class_name", )?, - stun_flags: read_value::< - u16, - >(stream, definition.get_entry("stun_flags"), "stun_flags")?, - death_flags: read_value::< - u16, - >(stream, definition.get_entry("death_flags"), "death_flags")?, - silent_kill: read_value::< - bool, - >(stream, definition.get_entry("silent_kill"), "silent_kill")?, - assister_fallback: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("assister_fallback"), "assister_fallback")?, - total_hits: read_value::< - u16, - >(stream, definition.get_entry("totalhits"), "total_hits")?, + stun_flags: read_value::( + stream, + definition.get_entry("stun_flags"), + "stun_flags", + )?, + death_flags: read_value::( + stream, + definition.get_entry("death_flags"), + "death_flags", + )?, + silent_kill: read_value::( + stream, + definition.get_entry("silent_kill"), + "silent_kill", + )?, + assister_fallback: read_value::( + stream, + definition.get_entry("assister_fallback"), + "assister_fallback", + )?, + total_hits: read_value::(stream, definition.get_entry("totalhits"), "total_hits")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), @@ -10827,12 +10655,10 @@ impl ThrowableHitEvent { "silent_kill" => Ok(self.silent_kill.clone().into()), "assister_fallback" => Ok(self.assister_fallback.clone().into()), "totalhits" => Ok(self.total_hits.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ThrowableHit", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ThrowableHit", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10860,13 +10686,12 @@ impl PumpkinLordSummonedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PumpkinLordSummoned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PumpkinLordSummoned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10894,13 +10719,12 @@ impl PumpkinLordKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PumpkinLordKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PumpkinLordKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10932,14 +10756,13 @@ impl MerasmusSummonedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MerasmusSummoned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MerasmusSummoned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -10971,14 +10794,13 @@ impl MerasmusKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MerasmusKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MerasmusKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11007,22 +10829,23 @@ impl MerasmusEscapeWarningEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MerasmusEscapeWarningEvent { level: read_value::(stream, definition.get_entry("level"), "level")?, - time_remaining: read_value::< - u8, - >(stream, definition.get_entry("time_remaining"), "time_remaining")?, + time_remaining: read_value::( + stream, + definition.get_entry("time_remaining"), + "time_remaining", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), "time_remaining" => Ok(self.time_remaining.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MerasmusEscapeWarning", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MerasmusEscapeWarning", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11054,14 +10877,13 @@ impl MerasmusEscapedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MerasmusEscaped", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MerasmusEscaped", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11093,14 +10915,13 @@ impl EyeballBossSummonedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EyeballBossSummoned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EyeballBossSummoned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11129,22 +10950,23 @@ impl EyeballBossStunnedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EyeballBossStunnedEvent { level: read_value::(stream, definition.get_entry("level"), "level")?, - player_ent_index: read_value::< - u8, - >(stream, definition.get_entry("player_entindex"), "player_ent_index")?, + player_ent_index: read_value::( + stream, + definition.get_entry("player_entindex"), + "player_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), "player_entindex" => Ok(self.player_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EyeballBossStunned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EyeballBossStunned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11176,14 +10998,13 @@ impl EyeballBossKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EyeballBossKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EyeballBossKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11212,22 +11033,23 @@ impl EyeballBossKillerEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EyeballBossKillerEvent { level: read_value::(stream, definition.get_entry("level"), "level")?, - player_ent_index: read_value::< - u8, - >(stream, definition.get_entry("player_entindex"), "player_ent_index")?, + player_ent_index: read_value::( + stream, + definition.get_entry("player_entindex"), + "player_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), "player_entindex" => Ok(self.player_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EyeballBossKiller", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EyeballBossKiller", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11256,22 +11078,23 @@ impl EyeballBossEscapeImminentEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(EyeballBossEscapeImminentEvent { level: read_value::(stream, definition.get_entry("level"), "level")?, - time_remaining: read_value::< - u8, - >(stream, definition.get_entry("time_remaining"), "time_remaining")?, + time_remaining: read_value::( + stream, + definition.get_entry("time_remaining"), + "time_remaining", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), "time_remaining" => Ok(self.time_remaining.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EyeballBossEscapeImminent", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EyeballBossEscapeImminent", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11303,14 +11126,13 @@ impl EyeballBossEscapedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EyeballBossEscaped", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EyeballBossEscaped", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11343,25 +11165,26 @@ impl NpcHurtEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(NpcHurtEvent { - ent_index: read_value::< - u16, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, health: read_value::(stream, definition.get_entry("health"), "health")?, - attacker_player: read_value::< - u16, - >(stream, definition.get_entry("attacker_player"), "attacker_player")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_amount: read_value::< - u16, - >(stream, definition.get_entry("damageamount"), "damage_amount")?, + attacker_player: read_value::( + stream, + definition.get_entry("attacker_player"), + "attacker_player", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_amount: read_value::( + stream, + definition.get_entry("damageamount"), + "damage_amount", + )?, crit: read_value::(stream, definition.get_entry("crit"), "crit")?, boss: read_value::(stream, definition.get_entry("boss"), "boss")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), "health" => Ok(self.health.clone().into()), @@ -11370,12 +11193,10 @@ impl NpcHurtEvent { "damageamount" => Ok(self.damage_amount.clone().into()), "crit" => Ok(self.crit.clone().into()), "boss" => Ok(self.boss.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "NpcHurt", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "NpcHurt", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11409,15 +11230,14 @@ impl ControlPointTimerUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "time" => Ok(self.time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ControlPointTimerUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ControlPointTimerUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11444,21 +11264,18 @@ impl PlayerHighFiveStartEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHighFiveStartEvent { - ent_index: read_value::< - u8, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHighFiveStart", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHighFiveStart", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11485,21 +11302,18 @@ impl PlayerHighFiveCancelEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHighFiveCancelEvent { - ent_index: read_value::< - u8, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHighFiveCancel", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHighFiveCancel", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11527,29 +11341,28 @@ impl PlayerHighFiveSuccessEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerHighFiveSuccessEvent { - initiator_ent_index: read_value::< - u8, - >( + initiator_ent_index: read_value::( stream, definition.get_entry("initiator_entindex"), "initiator_ent_index", )?, - partner_ent_index: read_value::< - u8, - >(stream, definition.get_entry("partner_entindex"), "partner_ent_index")?, + partner_ent_index: read_value::( + stream, + definition.get_entry("partner_entindex"), + "partner_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "initiator_entindex" => Ok(self.initiator_ent_index.clone().into()), "partner_entindex" => Ok(self.partner_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerHighFiveSuccess", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerHighFiveSuccess", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11579,26 +11392,29 @@ impl PlayerBonusPointsEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerBonusPointsEvent { points: read_value::(stream, definition.get_entry("points"), "points")?, - player_ent_index: read_value::< - u16, - >(stream, definition.get_entry("player_entindex"), "player_ent_index")?, - source_ent_index: read_value::< - u16, - >(stream, definition.get_entry("source_entindex"), "source_ent_index")?, + player_ent_index: read_value::( + stream, + definition.get_entry("player_entindex"), + "player_ent_index", + )?, + source_ent_index: read_value::( + stream, + definition.get_entry("source_entindex"), + "source_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "points" => Ok(self.points.clone().into()), "player_entindex" => Ok(self.player_ent_index.clone().into()), "source_entindex" => Ok(self.source_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerBonusPoints", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerBonusPoints", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11626,13 +11442,12 @@ impl PlayerUpgradedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerUpgraded", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerUpgraded", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11666,15 +11481,14 @@ impl PlayerBuybackEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "cost" => Ok(self.cost.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerBuyback", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerBuyback", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11710,16 +11524,15 @@ impl PlayerUsedPowerUpBottleEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "type" => Ok(self.kind.clone().into()), "time" => Ok(self.time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerUsedPowerUpBottle", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerUsedPowerUpBottle", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11746,21 +11559,18 @@ impl ChristmasGiftGrabEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ChristmasGiftGrabEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ChristmasGiftGrab", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ChristmasGiftGrab", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11789,27 +11599,22 @@ impl PlayerKilledAchievementZoneEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerKilledAchievementZoneEvent { - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, - zone_id: read_value::< - u16, - >(stream, definition.get_entry("zone_id"), "zone_id")?, + zone_id: read_value::(stream, definition.get_entry("zone_id"), "zone_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "attacker" => Ok(self.attacker.clone().into()), "victim" => Ok(self.victim.clone().into()), "zone_id" => Ok(self.zone_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerKilledAchievementZone", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerKilledAchievementZone", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11837,13 +11642,12 @@ impl PartyUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11871,13 +11675,12 @@ impl PartyPrefChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyPrefChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyPrefChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11905,13 +11708,12 @@ impl PartyCriteriaChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyCriteriaChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyCriteriaChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11939,13 +11741,12 @@ impl PartyInvitesChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyInvitesChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyInvitesChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -11972,21 +11773,22 @@ impl PartyQueueStateChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyQueueStateChangedEvent { - match_group: read_value::< - u16, - >(stream, definition.get_entry("matchgroup"), "match_group")?, + match_group: read_value::( + stream, + definition.get_entry("matchgroup"), + "match_group", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "matchgroup" => Ok(self.match_group.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyQueueStateChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyQueueStateChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12015,27 +11817,26 @@ impl PartyChatEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyChatEvent { - steam_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("steamid"), "steam_id")?, - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + steam_id: read_value::( + stream, + definition.get_entry("steamid"), + "steam_id", + )?, + text: read_value::(stream, definition.get_entry("text"), "text")?, kind: read_value::(stream, definition.get_entry("type"), "kind")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "steamid" => Ok(self.steam_id.clone().into()), "text" => Ok(self.text.clone().into()), "type" => Ok(self.kind.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyChat", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyChat", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12062,21 +11863,22 @@ impl PartyMemberJoinEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyMemberJoinEvent { - steam_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("steamid"), "steam_id")?, + steam_id: read_value::( + stream, + definition.get_entry("steamid"), + "steam_id", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "steamid" => Ok(self.steam_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyMemberJoin", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyMemberJoin", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12103,21 +11905,22 @@ impl PartyMemberLeaveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PartyMemberLeaveEvent { - steam_id: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("steamid"), "steam_id")?, - }) + steam_id: read_value::( + stream, + definition.get_entry("steamid"), + "steam_id", + )?, + }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "steamid" => Ok(self.steam_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PartyMemberLeave", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PartyMemberLeave", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12145,13 +11948,12 @@ impl MatchInvitesUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MatchInvitesUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MatchInvitesUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12179,13 +11981,12 @@ impl LobbyUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LobbyUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LobbyUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12219,15 +12020,14 @@ impl MvmMissionUpdateEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "class" => Ok(self.class.clone().into()), "count" => Ok(self.count.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmMissionUpdate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmMissionUpdate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12255,13 +12055,12 @@ impl RecalculateHolidaysEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RecalculateHolidays", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RecalculateHolidays", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12288,21 +12087,18 @@ impl PlayerCurrencyChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerCurrencyChangedEvent { - currency: read_value::< - u16, - >(stream, definition.get_entry("currency"), "currency")?, + currency: read_value::(stream, definition.get_entry("currency"), "currency")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "currency" => Ok(self.currency.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerCurrencyChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerCurrencyChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12334,14 +12130,13 @@ impl DoomsdayRocketOpenEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DoomsdayRocketOpen", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DoomsdayRocketOpen", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12373,14 +12168,13 @@ impl RemoveNemesisRelationshipsEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RemoveNemesisRelationships", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RemoveNemesisRelationships", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12408,13 +12202,12 @@ impl MvmCreditBonusWaveEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmCreditBonusWave", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmCreditBonusWave", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12442,13 +12235,12 @@ impl MvmCreditBonusAllEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmCreditBonusAll", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmCreditBonusAll", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12476,13 +12268,12 @@ impl MvmCreditBonusAllAdvancedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmCreditBonusAllAdvanced", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmCreditBonusAllAdvanced", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12514,14 +12305,13 @@ impl MvmQuickSentryUpgradeEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmQuickSentryUpgrade", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmQuickSentryUpgrade", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12549,13 +12339,12 @@ impl MvmTankDestroyedByPlayersEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmTankDestroyedByPlayers", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmTankDestroyedByPlayers", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12587,14 +12376,13 @@ impl MvmKillRobotDeliveringBombEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmKillRobotDeliveringBomb", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmKillRobotDeliveringBomb", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12623,22 +12411,19 @@ impl MvmPickupCurrencyEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmPickupCurrencyEvent { player: read_value::(stream, definition.get_entry("player"), "player")?, - currency: read_value::< - u16, - >(stream, definition.get_entry("currency"), "currency")?, + currency: read_value::(stream, definition.get_entry("currency"), "currency")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "currency" => Ok(self.currency.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmPickupCurrency", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmPickupCurrency", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12670,14 +12455,13 @@ impl MvmBombCarrierKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmBombCarrierKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmBombCarrierKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12715,17 +12499,16 @@ impl MvmSentryBusterDetonateEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "det_x" => Ok(self.det_x.clone().into()), "det_y" => Ok(self.det_y.clone().into()), "det_z" => Ok(self.det_z.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmSentryBusterDetonate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmSentryBusterDetonate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12757,14 +12540,13 @@ impl MvmScoutMarkedForDeathEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmScoutMarkedForDeath", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmScoutMarkedForDeath", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12796,14 +12578,13 @@ impl MvmMedicPowerUpSharedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmMedicPowerUpShared", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmMedicPowerUpShared", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12832,29 +12613,26 @@ impl MvmBeginWaveEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmBeginWaveEvent { - wave_index: read_value::< - u16, - >(stream, definition.get_entry("wave_index"), "wave_index")?, - max_waves: read_value::< - u16, - >(stream, definition.get_entry("max_waves"), "max_waves")?, - advanced: read_value::< - u16, - >(stream, definition.get_entry("advanced"), "advanced")?, + wave_index: read_value::( + stream, + definition.get_entry("wave_index"), + "wave_index", + )?, + max_waves: read_value::(stream, definition.get_entry("max_waves"), "max_waves")?, + advanced: read_value::(stream, definition.get_entry("advanced"), "advanced")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "wave_index" => Ok(self.wave_index.clone().into()), "max_waves" => Ok(self.max_waves.clone().into()), "advanced" => Ok(self.advanced.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmBeginWave", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmBeginWave", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12881,21 +12659,18 @@ impl MvmWaveCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmWaveCompleteEvent { - advanced: read_value::< - bool, - >(stream, definition.get_entry("advanced"), "advanced")?, + advanced: read_value::(stream, definition.get_entry("advanced"), "advanced")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "advanced" => Ok(self.advanced.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmWaveComplete", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmWaveComplete", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12922,21 +12697,22 @@ impl MvmMissionCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmMissionCompleteEvent { - mission: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("mission"), "mission")?, + mission: read_value::( + stream, + definition.get_entry("mission"), + "mission", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "mission" => Ok(self.mission.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmMissionComplete", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmMissionComplete", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -12968,14 +12744,13 @@ impl MvmBombResetByPlayerEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmBombResetByPlayer", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmBombResetByPlayer", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13003,13 +12778,12 @@ impl MvmBombAlarmTriggeredEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmBombAlarmTriggered", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmBombAlarmTriggered", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13041,14 +12815,13 @@ impl MvmBombDeployResetByPlayerEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmBombDeployResetByPlayer", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmBombDeployResetByPlayer", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13076,13 +12849,12 @@ impl MvmWaveFailedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmWaveFailed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmWaveFailed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13110,13 +12882,12 @@ impl MvmResetStatsEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmResetStats", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmResetStats", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13143,21 +12914,18 @@ impl DamageResistedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DamageResistedEvent { - ent_index: read_value::< - u8, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DamageResisted", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DamageResisted", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13185,25 +12953,24 @@ impl RevivePlayerNotifyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RevivePlayerNotifyEvent { - ent_index: read_value::< - u16, - >(stream, definition.get_entry("entindex"), "ent_index")?, - marker_ent_index: read_value::< - u16, - >(stream, definition.get_entry("marker_entindex"), "marker_ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, + marker_ent_index: read_value::( + stream, + definition.get_entry("marker_entindex"), + "marker_ent_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), "marker_entindex" => Ok(self.marker_ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RevivePlayerNotify", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RevivePlayerNotify", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13230,21 +12997,18 @@ impl RevivePlayerStoppedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RevivePlayerStoppedEvent { - ent_index: read_value::< - u16, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RevivePlayerStopped", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RevivePlayerStopped", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13271,21 +13035,18 @@ impl RevivePlayerCompleteEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RevivePlayerCompleteEvent { - ent_index: read_value::< - u16, - >(stream, definition.get_entry("entindex"), "ent_index")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RevivePlayerComplete", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RevivePlayerComplete", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13312,21 +13073,18 @@ impl PlayerTurnedToGhostEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerTurnedToGhostEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerTurnedToGhost", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerTurnedToGhost", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13354,23 +13112,20 @@ impl MedigunShieldBlockedDamageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MedigunShieldBlockedDamageEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, damage: read_value::(stream, definition.get_entry("damage"), "damage")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "damage" => Ok(self.damage.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MedigunShieldBlockedDamage", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MedigunShieldBlockedDamage", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13402,14 +13157,13 @@ impl MvmAdvWaveCompleteNoGatesEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmAdvWaveCompleteNoGates", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmAdvWaveCompleteNoGates", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13437,25 +13191,20 @@ impl MvmSniperHeadshotCurrencyEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmSniperHeadshotCurrencyEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - currency: read_value::< - u16, - >(stream, definition.get_entry("currency"), "currency")?, + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + currency: read_value::(stream, definition.get_entry("currency"), "currency")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "currency" => Ok(self.currency.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmSniperHeadshotCurrency", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmSniperHeadshotCurrency", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13483,13 +13232,12 @@ impl MvmMannhattanPitEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmMannhattanPit", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmMannhattanPit", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13517,13 +13265,12 @@ impl FlagCarriedInDetectionZoneEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "FlagCarriedInDetectionZone", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "FlagCarriedInDetectionZone", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13551,13 +13298,12 @@ impl MvmAdvWaveKilledStunRadioEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmAdvWaveKilledStunRadio", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmAdvWaveKilledStunRadio", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13585,23 +13331,20 @@ impl PlayerDirectHitStunEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerDirectHitStunEvent { - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "attacker" => Ok(self.attacker.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDirectHitStun", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDirectHitStun", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13628,21 +13371,22 @@ impl MvmSentryBusterKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(MvmSentryBusterKilledEvent { - sentry_buster: read_value::< - u16, - >(stream, definition.get_entry("sentry_buster"), "sentry_buster")?, + sentry_buster: read_value::( + stream, + definition.get_entry("sentry_buster"), + "sentry_buster", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "sentry_buster" => Ok(self.sentry_buster.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MvmSentryBusterKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MvmSentryBusterKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13669,21 +13413,18 @@ impl UpgradesFileChangedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(UpgradesFileChangedEvent { - path: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("path"), "path")?, + path: read_value::(stream, definition.get_entry("path"), "path")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "path" => Ok(self.path.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "UpgradesFileChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "UpgradesFileChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13719,16 +13460,15 @@ impl RdTeamPointsChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "points" => Ok(self.points.clone().into()), "team" => Ok(self.team.clone().into()), "method" => Ok(self.method.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RdTeamPointsChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RdTeamPointsChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13756,13 +13496,12 @@ impl RdRulesStateChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RdRulesStateChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RdRulesStateChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13797,37 +13536,35 @@ impl RdRobotKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RdRobotKilledEvent { - user_id: read_value::< - u16, - >(stream, definition.get_entry("userid"), "user_id")?, - victim_ent_index: read_value::< - u32, - >(stream, definition.get_entry("victim_entindex"), "victim_ent_index")?, - inflictor_ent_index: read_value::< - u32, - >( + user_id: read_value::(stream, definition.get_entry("userid"), "user_id")?, + victim_ent_index: read_value::( + stream, + definition.get_entry("victim_entindex"), + "victim_ent_index", + )?, + inflictor_ent_index: read_value::( stream, definition.get_entry("inflictor_entindex"), "inflictor_ent_index", )?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("weapon"), "weapon")?, - weapon_id: read_value::< - u16, - >(stream, definition.get_entry("weaponid"), "weapon_id")?, - damage_bits: read_value::< - u32, - >(stream, definition.get_entry("damagebits"), "damage_bits")?, - custom_kill: read_value::< - u16, - >(stream, definition.get_entry("customkill"), "custom_kill")?, - weapon_log_class_name: read_value::< - MaybeUtf8String, - >( + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon: read_value::( + stream, + definition.get_entry("weapon"), + "weapon", + )?, + weapon_id: read_value::(stream, definition.get_entry("weaponid"), "weapon_id")?, + damage_bits: read_value::( + stream, + definition.get_entry("damagebits"), + "damage_bits", + )?, + custom_kill: read_value::( + stream, + definition.get_entry("customkill"), + "custom_kill", + )?, + weapon_log_class_name: read_value::( stream, definition.get_entry("weapon_logclassname"), "weapon_log_class_name", @@ -13836,6 +13573,7 @@ impl RdRobotKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "userid" => Ok(self.user_id.clone().into()), "victim_entindex" => Ok(self.victim_ent_index.clone().into()), @@ -13846,12 +13584,10 @@ impl RdRobotKilledEvent { "damagebits" => Ok(self.damage_bits.clone().into()), "customkill" => Ok(self.custom_kill.clone().into()), "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RdRobotKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RdRobotKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13881,33 +13617,24 @@ impl RdRobotImpactEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RdRobotImpactEvent { - ent_index: read_value::< - u16, - >(stream, definition.get_entry("entindex"), "ent_index")?, - impulse_x: read_value::< - f32, - >(stream, definition.get_entry("impulse_x"), "impulse_x")?, - impulse_y: read_value::< - f32, - >(stream, definition.get_entry("impulse_y"), "impulse_y")?, - impulse_z: read_value::< - f32, - >(stream, definition.get_entry("impulse_z"), "impulse_z")?, + ent_index: read_value::(stream, definition.get_entry("entindex"), "ent_index")?, + impulse_x: read_value::(stream, definition.get_entry("impulse_x"), "impulse_x")?, + impulse_y: read_value::(stream, definition.get_entry("impulse_y"), "impulse_y")?, + impulse_z: read_value::(stream, definition.get_entry("impulse_z"), "impulse_z")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "entindex" => Ok(self.ent_index.clone().into()), "impulse_x" => Ok(self.impulse_x.clone().into()), "impulse_y" => Ok(self.impulse_y.clone().into()), "impulse_z" => Ok(self.impulse_z.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RdRobotImpact", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RdRobotImpact", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13939,14 +13666,13 @@ impl TeamPlayPreRoundTimeLeftEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "time" => Ok(self.time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamPlayPreRoundTimeLeft", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamPlayPreRoundTimeLeft", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -13978,14 +13704,13 @@ impl ParachuteDeployEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ParachuteDeploy", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ParachuteDeploy", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14017,14 +13742,13 @@ impl ParachuteHolsterEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ParachuteHolster", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ParachuteHolster", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14056,14 +13780,13 @@ impl KillRefillsMeterEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "KillRefillsMeter", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "KillRefillsMeter", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14094,28 +13817,23 @@ impl RpsTauntEventEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RpsTauntEventEvent { winner: read_value::(stream, definition.get_entry("winner"), "winner")?, - winner_rps: read_value::< - u8, - >(stream, definition.get_entry("winner_rps"), "winner_rps")?, + winner_rps: read_value::(stream, definition.get_entry("winner_rps"), "winner_rps")?, loser: read_value::(stream, definition.get_entry("loser"), "loser")?, - loser_rps: read_value::< - u8, - >(stream, definition.get_entry("loser_rps"), "loser_rps")?, + loser_rps: read_value::(stream, definition.get_entry("loser_rps"), "loser_rps")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "winner" => Ok(self.winner.clone().into()), "winner_rps" => Ok(self.winner_rps.clone().into()), "loser" => Ok(self.loser.clone().into()), "loser_rps" => Ok(self.loser_rps.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RpsTauntEvent", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RpsTauntEvent", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14147,14 +13865,13 @@ impl CongaKillEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CongaKill", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CongaKill", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14186,14 +13903,13 @@ impl PlayerInitialSpawnEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerInitialSpawn", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerInitialSpawn", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14221,13 +13937,12 @@ impl CompetitiveVictoryEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CompetitiveVictory", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CompetitiveVictory", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14260,25 +13975,28 @@ impl CompetitiveStatsUpdateEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(CompetitiveStatsUpdateEvent { index: read_value::(stream, definition.get_entry("index"), "index")?, - kills_rank: read_value::< - u8, - >(stream, definition.get_entry("kills_rank"), "kills_rank")?, - score_rank: read_value::< - u8, - >(stream, definition.get_entry("score_rank"), "score_rank")?, - damage_rank: read_value::< - u8, - >(stream, definition.get_entry("damage_rank"), "damage_rank")?, - healing_rank: read_value::< - u8, - >(stream, definition.get_entry("healing_rank"), "healing_rank")?, - support_rank: read_value::< - u8, - >(stream, definition.get_entry("support_rank"), "support_rank")?, + kills_rank: read_value::(stream, definition.get_entry("kills_rank"), "kills_rank")?, + score_rank: read_value::(stream, definition.get_entry("score_rank"), "score_rank")?, + damage_rank: read_value::( + stream, + definition.get_entry("damage_rank"), + "damage_rank", + )?, + healing_rank: read_value::( + stream, + definition.get_entry("healing_rank"), + "healing_rank", + )?, + support_rank: read_value::( + stream, + definition.get_entry("support_rank"), + "support_rank", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "kills_rank" => Ok(self.kills_rank.clone().into()), @@ -14286,12 +14004,10 @@ impl CompetitiveStatsUpdateEvent { "damage_rank" => Ok(self.damage_rank.clone().into()), "healing_rank" => Ok(self.healing_rank.clone().into()), "support_rank" => Ok(self.support_rank.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CompetitiveStatsUpdate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CompetitiveStatsUpdate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14325,15 +14041,14 @@ impl MiniGameWinEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "team" => Ok(self.team.clone().into()), "type" => Ok(self.kind.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MiniGameWin", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MiniGameWin", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14365,14 +14080,13 @@ impl SentryOnGoActiveEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SentryOnGoActive", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SentryOnGoActive", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14404,14 +14118,13 @@ impl DuckXpLevelUpEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "level" => Ok(self.level.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DuckXpLevelUp", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DuckXpLevelUp", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14439,13 +14152,12 @@ impl QuestLogOpenedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestLogOpened", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestLogOpened", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14473,13 +14185,12 @@ impl SchemaUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SchemaUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SchemaUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14507,13 +14218,12 @@ impl LocalPlayerPickupWeaponEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "LocalPlayerPickupWeapon", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "LocalPlayerPickupWeapon", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14549,16 +14259,15 @@ impl RdPlayerScorePointsEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "method" => Ok(self.method.clone().into()), "amount" => Ok(self.amount.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RdPlayerScorePoints", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RdPlayerScorePoints", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14590,14 +14299,13 @@ impl DemomanDetStickiesEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DemomanDetStickies", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DemomanDetStickies", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14627,33 +14335,40 @@ impl QuestObjectiveCompletedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(QuestObjectiveCompletedEvent { - quest_item_id_low: read_value::< - u32, - >(stream, definition.get_entry("quest_item_id_low"), "quest_item_id_low")?, - quest_item_id_hi: read_value::< - u32, - >(stream, definition.get_entry("quest_item_id_hi"), "quest_item_id_hi")?, - quest_objective_id: read_value::< - u32, - >(stream, definition.get_entry("quest_objective_id"), "quest_objective_id")?, - scorer_user_id: read_value::< - u16, - >(stream, definition.get_entry("scorer_user_id"), "scorer_user_id")?, + quest_item_id_low: read_value::( + stream, + definition.get_entry("quest_item_id_low"), + "quest_item_id_low", + )?, + quest_item_id_hi: read_value::( + stream, + definition.get_entry("quest_item_id_hi"), + "quest_item_id_hi", + )?, + quest_objective_id: read_value::( + stream, + definition.get_entry("quest_objective_id"), + "quest_objective_id", + )?, + scorer_user_id: read_value::( + stream, + definition.get_entry("scorer_user_id"), + "scorer_user_id", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "quest_item_id_low" => Ok(self.quest_item_id_low.clone().into()), "quest_item_id_hi" => Ok(self.quest_item_id_hi.clone().into()), "quest_objective_id" => Ok(self.quest_objective_id.clone().into()), "scorer_user_id" => Ok(self.scorer_user_id.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestObjectiveCompleted", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestObjectiveCompleted", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14687,15 +14402,14 @@ impl PlayerScoreChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "delta" => Ok(self.delta.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerScoreChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerScoreChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14728,24 +14442,21 @@ impl KilledCappingPlayerEvent { cp: read_value::(stream, definition.get_entry("cp"), "cp")?, killer: read_value::(stream, definition.get_entry("killer"), "killer")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, - assister: read_value::< - u8, - >(stream, definition.get_entry("assister"), "assister")?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "cp" => Ok(self.cp.clone().into()), "killer" => Ok(self.killer.clone().into()), "victim" => Ok(self.victim.clone().into()), "assister" => Ok(self.assister.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "KilledCappingPlayer", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "KilledCappingPlayer", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14779,15 +14490,14 @@ impl EnvironmentalDeathEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "killer" => Ok(self.killer.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EnvironmentalDeath", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EnvironmentalDeath", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14816,27 +14526,26 @@ impl ProjectileDirectHitEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ProjectileDirectHitEvent { - attacker: read_value::< - u8, - >(stream, definition.get_entry("attacker"), "attacker")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, - weapon_def_index: read_value::< - u32, - >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, + weapon_def_index: read_value::( + stream, + definition.get_entry("weapon_def_index"), + "weapon_def_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "attacker" => Ok(self.attacker.clone().into()), "victim" => Ok(self.victim.clone().into()), "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ProjectileDirectHit", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ProjectileDirectHit", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14868,14 +14577,13 @@ impl PassGetEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "owner" => Ok(self.owner.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PassGet", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PassGet", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14905,24 +14613,21 @@ impl PassScoreEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PassScoreEvent { scorer: read_value::(stream, definition.get_entry("scorer"), "scorer")?, - assister: read_value::< - u16, - >(stream, definition.get_entry("assister"), "assister")?, + assister: read_value::(stream, definition.get_entry("assister"), "assister")?, points: read_value::(stream, definition.get_entry("points"), "points")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "scorer" => Ok(self.scorer.clone().into()), "assister" => Ok(self.assister.clone().into()), "points" => Ok(self.points.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PassScore", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PassScore", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14951,22 +14656,19 @@ impl PassFreeEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PassFreeEvent { owner: read_value::(stream, definition.get_entry("owner"), "owner")?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "owner" => Ok(self.owner.clone().into()), "attacker" => Ok(self.attacker.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PassFree", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PassFree", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -14997,28 +14699,23 @@ impl PassPassCaughtEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PassPassCaughtEvent { passer: read_value::(stream, definition.get_entry("passer"), "passer")?, - catcher: read_value::< - u16, - >(stream, definition.get_entry("catcher"), "catcher")?, + catcher: read_value::(stream, definition.get_entry("catcher"), "catcher")?, dist: read_value::(stream, definition.get_entry("dist"), "dist")?, - duration: read_value::< - f32, - >(stream, definition.get_entry("duration"), "duration")?, + duration: read_value::(stream, definition.get_entry("duration"), "duration")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "passer" => Ok(self.passer.clone().into()), "catcher" => Ok(self.catcher.clone().into()), "dist" => Ok(self.dist.clone().into()), "duration" => Ok(self.duration.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PassPassCaught", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PassPassCaught", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15047,22 +14744,19 @@ impl PassBallStolenEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PassBallStolenEvent { victim: read_value::(stream, definition.get_entry("victim"), "victim")?, - attacker: read_value::< - u16, - >(stream, definition.get_entry("attacker"), "attacker")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "victim" => Ok(self.victim.clone().into()), "attacker" => Ok(self.attacker.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PassBallStolen", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PassBallStolen", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15091,22 +14785,19 @@ impl PassBallBlockedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PassBallBlockedEvent { owner: read_value::(stream, definition.get_entry("owner"), "owner")?, - blocker: read_value::< - u16, - >(stream, definition.get_entry("blocker"), "blocker")?, + blocker: read_value::(stream, definition.get_entry("blocker"), "blocker")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "owner" => Ok(self.owner.clone().into()), "blocker" => Ok(self.blocker.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PassBallBlocked", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PassBallBlocked", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15136,29 +14827,24 @@ impl DamagePreventedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DamagePreventedEvent { - preventor: read_value::< - u16, - >(stream, definition.get_entry("preventor"), "preventor")?, + preventor: read_value::(stream, definition.get_entry("preventor"), "preventor")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, amount: read_value::(stream, definition.get_entry("amount"), "amount")?, - condition: read_value::< - u16, - >(stream, definition.get_entry("condition"), "condition")?, + condition: read_value::(stream, definition.get_entry("condition"), "condition")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "preventor" => Ok(self.preventor.clone().into()), "victim" => Ok(self.victim.clone().into()), "amount" => Ok(self.amount.clone().into()), "condition" => Ok(self.condition.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DamagePrevented", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DamagePrevented", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15192,15 +14878,14 @@ impl HalloweenBossKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "boss" => Ok(self.boss.clone().into()), "killer" => Ok(self.killer.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HalloweenBossKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HalloweenBossKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15232,14 +14917,13 @@ impl EscapedLootIslandEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EscapedLootIsland", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EscapedLootIsland", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15271,14 +14955,13 @@ impl TaggedPlayerAsItEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TaggedPlayerAsIt", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TaggedPlayerAsIt", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15310,14 +14993,13 @@ impl MerasmusStunnedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MerasmusStunned", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MerasmusStunned", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15349,14 +15031,13 @@ impl MerasmusPropFoundEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MerasmusPropFound", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MerasmusPropFound", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15388,14 +15069,13 @@ impl HalloweenSkeletonKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HalloweenSkeletonKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HalloweenSkeletonKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15427,14 +15107,13 @@ impl SkeletonKilledQuestEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SkeletonKilledQuest", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SkeletonKilledQuest", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15466,14 +15145,13 @@ impl SkeletonKingKilledQuestEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SkeletonKingKilledQuest", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SkeletonKingKilledQuest", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15505,14 +15183,13 @@ impl EscapeHellEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "EscapeHell", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "EscapeHell", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15544,14 +15221,13 @@ impl CrossSpectralBridgeEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CrossSpectralBridge", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CrossSpectralBridge", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15585,15 +15261,14 @@ impl MiniGameWonEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "game" => Ok(self.game.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MiniGameWon", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MiniGameWon", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15621,23 +15296,20 @@ impl RespawnGhostEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RespawnGhostEvent { - reviver: read_value::< - u16, - >(stream, definition.get_entry("reviver"), "reviver")?, + reviver: read_value::(stream, definition.get_entry("reviver"), "reviver")?, ghost: read_value::(stream, definition.get_entry("ghost"), "ghost")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "reviver" => Ok(self.reviver.clone().into()), "ghost" => Ok(self.ghost.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RespawnGhost", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RespawnGhost", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15671,15 +15343,14 @@ impl KillInHellEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "killer" => Ok(self.killer.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "KillInHell", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "KillInHell", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15706,21 +15377,18 @@ impl HalloweenDuckCollectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HalloweenDuckCollectedEvent { - collector: read_value::< - u16, - >(stream, definition.get_entry("collector"), "collector")?, + collector: read_value::(stream, definition.get_entry("collector"), "collector")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "collector" => Ok(self.collector.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HalloweenDuckCollected", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HalloweenDuckCollected", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15752,14 +15420,13 @@ impl SpecialScoreEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "SpecialScore", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "SpecialScore", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15793,15 +15460,14 @@ impl TeamLeaderKilledEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "killer" => Ok(self.killer.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TeamLeaderKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TeamLeaderKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15830,29 +15496,30 @@ impl HalloweenSoulCollectedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HalloweenSoulCollectedEvent { - intended_target: read_value::< - u8, - >(stream, definition.get_entry("intended_target"), "intended_target")?, - collecting_player: read_value::< - u8, - >(stream, definition.get_entry("collecting_player"), "collecting_player")?, - soul_count: read_value::< - u8, - >(stream, definition.get_entry("soul_count"), "soul_count")?, + intended_target: read_value::( + stream, + definition.get_entry("intended_target"), + "intended_target", + )?, + collecting_player: read_value::( + stream, + definition.get_entry("collecting_player"), + "collecting_player", + )?, + soul_count: read_value::(stream, definition.get_entry("soul_count"), "soul_count")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "intended_target" => Ok(self.intended_target.clone().into()), "collecting_player" => Ok(self.collecting_player.clone().into()), "soul_count" => Ok(self.soul_count.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HalloweenSoulCollected", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HalloweenSoulCollected", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15880,13 +15547,12 @@ impl RecalculateTruceEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RecalculateTruce", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RecalculateTruce", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15915,22 +15581,19 @@ impl DeadRingerCheatDeathEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DeadRingerCheatDeathEvent { spy: read_value::(stream, definition.get_entry("spy"), "spy")?, - attacker: read_value::< - u8, - >(stream, definition.get_entry("attacker"), "attacker")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "spy" => Ok(self.spy.clone().into()), "attacker" => Ok(self.attacker.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DeadRingerCheatDeath", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DeadRingerCheatDeath", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -15966,16 +15629,15 @@ impl CrossbowHealEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "healer" => Ok(self.healer.clone().into()), "target" => Ok(self.target.clone().into()), "amount" => Ok(self.amount.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CrossbowHeal", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CrossbowHeal", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16005,31 +15667,28 @@ impl DamageMitigatedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(DamageMitigatedEvent { - mitigator: read_value::< - u8, - >(stream, definition.get_entry("mitigator"), "mitigator")?, - damaged: read_value::< - u8, - >(stream, definition.get_entry("damaged"), "damaged")?, + mitigator: read_value::(stream, definition.get_entry("mitigator"), "mitigator")?, + damaged: read_value::(stream, definition.get_entry("damaged"), "damaged")?, amount: read_value::(stream, definition.get_entry("amount"), "amount")?, - item_definition_index: read_value::< - u16, - >(stream, definition.get_entry("itemdefindex"), "item_definition_index")?, + item_definition_index: read_value::( + stream, + definition.get_entry("itemdefindex"), + "item_definition_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "mitigator" => Ok(self.mitigator.clone().into()), "damaged" => Ok(self.damaged.clone().into()), "amount" => Ok(self.amount.clone().into()), "itemdefindex" => Ok(self.item_definition_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DamageMitigated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DamageMitigated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16058,22 +15717,19 @@ impl PayloadPushedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PayloadPushedEvent { pusher: read_value::(stream, definition.get_entry("pusher"), "pusher")?, - distance: read_value::< - u16, - >(stream, definition.get_entry("distance"), "distance")?, + distance: read_value::(stream, definition.get_entry("distance"), "distance")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "pusher" => Ok(self.pusher.clone().into()), "distance" => Ok(self.distance.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PayloadPushed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PayloadPushed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16100,21 +15756,18 @@ impl PlayerAbandonedMatchEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerAbandonedMatchEvent { - game_over: read_value::< - bool, - >(stream, definition.get_entry("game_over"), "game_over")?, + game_over: read_value::(stream, definition.get_entry("game_over"), "game_over")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "game_over" => Ok(self.game_over.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerAbandonedMatch", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerAbandonedMatch", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16154,18 +15807,17 @@ impl ClDrawlineEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "player" => Ok(self.player.clone().into()), "panel" => Ok(self.panel.clone().into()), "line" => Ok(self.line.clone().into()), "x" => Ok(self.x.clone().into()), "y" => Ok(self.y.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ClDrawline", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ClDrawline", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16197,14 +15849,13 @@ impl RestartTimerTimeEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "time" => Ok(self.time.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RestartTimerTime", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RestartTimerTime", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16232,13 +15883,12 @@ impl WinLimitChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "WinLimitChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "WinLimitChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16266,13 +15916,12 @@ impl WinPanelShowScoresEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "WinPanelShowScores", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "WinPanelShowScores", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16300,13 +15949,12 @@ impl TopStreamsRequestFinishedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "TopStreamsRequestFinished", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "TopStreamsRequestFinished", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16334,13 +15982,12 @@ impl CompetitiveStateChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CompetitiveStateChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CompetitiveStateChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16368,13 +16015,12 @@ impl GlobalWarDataUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GlobalWarDataUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GlobalWarDataUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16402,13 +16048,12 @@ impl StopWatchChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "StopWatchChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "StopWatchChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16436,13 +16081,12 @@ impl DsStopEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DsStop", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DsStop", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16474,14 +16118,13 @@ impl DsScreenshotEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "delay" => Ok(self.delay.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "DsScreenshot", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "DsScreenshot", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16509,13 +16152,12 @@ impl ShowMatchSummaryEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ShowMatchSummary", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ShowMatchSummary", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16543,13 +16185,12 @@ impl ExperienceChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ExperienceChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ExperienceChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16577,13 +16218,12 @@ impl BeginXpLerpEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "BeginXpLerp", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "BeginXpLerp", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16611,13 +16251,12 @@ impl MatchmakerStatsUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MatchmakerStatsUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MatchmakerStatsUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16644,21 +16283,18 @@ impl RematchVotePeriodOverEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(RematchVotePeriodOverEvent { - success: read_value::< - bool, - >(stream, definition.get_entry("success"), "success")?, + success: read_value::(stream, definition.get_entry("success"), "success")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "success" => Ok(self.success.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RematchVotePeriodOver", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RematchVotePeriodOver", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16686,13 +16322,12 @@ impl RematchFailedToCreateEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "RematchFailedToCreate", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "RematchFailedToCreate", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16720,13 +16355,12 @@ impl PlayerRematchChangeEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerRematchChange", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerRematchChange", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16754,13 +16388,12 @@ impl PingUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PingUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PingUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16788,13 +16421,12 @@ impl MMStatsUpdatedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MMStatsUpdated", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MMStatsUpdated", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16822,23 +16454,20 @@ impl PlayerNextMapVoteChangeEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerNextMapVoteChangeEvent { - map_index: read_value::< - u8, - >(stream, definition.get_entry("map_index"), "map_index")?, + map_index: read_value::(stream, definition.get_entry("map_index"), "map_index")?, vote: read_value::(stream, definition.get_entry("vote"), "vote")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "map_index" => Ok(self.map_index.clone().into()), "vote" => Ok(self.vote.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerNextMapVoteChange", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerNextMapVoteChange", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16866,13 +16495,12 @@ impl VoteMapsChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "VoteMapsChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "VoteMapsChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16904,34 +16532,33 @@ impl ProtoDefChangedEvent { fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ProtoDefChangedEvent { kind: read_value::(stream, definition.get_entry("type"), "kind")?, - definition_index: read_value::< - u32, - >(stream, definition.get_entry("defindex"), "definition_index")?, - created: read_value::< - bool, - >(stream, definition.get_entry("created"), "created")?, - deleted: read_value::< - bool, - >(stream, definition.get_entry("deleted"), "deleted")?, - erase_history: read_value::< - bool, - >(stream, definition.get_entry("erase_history"), "erase_history")?, + definition_index: read_value::( + stream, + definition.get_entry("defindex"), + "definition_index", + )?, + created: read_value::(stream, definition.get_entry("created"), "created")?, + deleted: read_value::(stream, definition.get_entry("deleted"), "deleted")?, + erase_history: read_value::( + stream, + definition.get_entry("erase_history"), + "erase_history", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "type" => Ok(self.kind.clone().into()), "defindex" => Ok(self.definition_index.clone().into()), "created" => Ok(self.created.clone().into()), "deleted" => Ok(self.deleted.clone().into()), "erase_history" => Ok(self.erase_history.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ProtoDefChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ProtoDefChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -16960,29 +16587,26 @@ impl PlayerDominationEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(PlayerDominationEvent { - dominator: read_value::< - u16, - >(stream, definition.get_entry("dominator"), "dominator")?, - dominated: read_value::< - u16, - >(stream, definition.get_entry("dominated"), "dominated")?, - dominations: read_value::< - u16, - >(stream, definition.get_entry("dominations"), "dominations")?, + dominator: read_value::(stream, definition.get_entry("dominator"), "dominator")?, + dominated: read_value::(stream, definition.get_entry("dominated"), "dominated")?, + dominations: read_value::( + stream, + definition.get_entry("dominations"), + "dominations", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "dominator" => Ok(self.dominator.clone().into()), "dominated" => Ok(self.dominated.clone().into()), "dominations" => Ok(self.dominations.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerDomination", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerDomination", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17016,15 +16640,14 @@ impl PlayerRocketPackPushedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "pusher" => Ok(self.pusher.clone().into()), "pushed" => Ok(self.pushed.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "PlayerRocketPackPushed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "PlayerRocketPackPushed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17052,25 +16675,20 @@ impl QuestRequestEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(QuestRequestEvent { - request: read_value::< - u32, - >(stream, definition.get_entry("request"), "request")?, - msg: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("msg"), "msg")?, + request: read_value::(stream, definition.get_entry("request"), "request")?, + msg: read_value::(stream, definition.get_entry("msg"), "msg")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "request" => Ok(self.request.clone().into()), "msg" => Ok(self.msg.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestRequest", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestRequest", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17099,29 +16717,22 @@ impl QuestResponseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(QuestResponseEvent { - request: read_value::< - u32, - >(stream, definition.get_entry("request"), "request")?, - success: read_value::< - bool, - >(stream, definition.get_entry("success"), "success")?, - msg: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("msg"), "msg")?, + request: read_value::(stream, definition.get_entry("request"), "request")?, + success: read_value::(stream, definition.get_entry("success"), "success")?, + msg: read_value::(stream, definition.get_entry("msg"), "msg")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "request" => Ok(self.request.clone().into()), "success" => Ok(self.success.clone().into()), "msg" => Ok(self.msg.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestResponse", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestResponse", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17155,28 +16766,27 @@ impl QuestProgressEvent { owner: read_value::(stream, definition.get_entry("owner"), "owner")?, scorer: read_value::(stream, definition.get_entry("scorer"), "scorer")?, kind: read_value::(stream, definition.get_entry("type"), "kind")?, - completed: read_value::< - bool, - >(stream, definition.get_entry("completed"), "completed")?, - quest_definition_index: read_value::< - u32, - >(stream, definition.get_entry("quest_defindex"), "quest_definition_index")?, + completed: read_value::(stream, definition.get_entry("completed"), "completed")?, + quest_definition_index: read_value::( + stream, + definition.get_entry("quest_defindex"), + "quest_definition_index", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "owner" => Ok(self.owner.clone().into()), "scorer" => Ok(self.scorer.clone().into()), "type" => Ok(self.kind.clone().into()), "completed" => Ok(self.completed.clone().into()), "quest_defindex" => Ok(self.quest_definition_index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestProgress", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestProgress", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17206,33 +16816,32 @@ impl ProjectileRemovedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ProjectileRemovedEvent { - attacker: read_value::< - u8, - >(stream, definition.get_entry("attacker"), "attacker")?, - weapon_def_index: read_value::< - u32, - >(stream, definition.get_entry("weapon_def_index"), "weapon_def_index")?, - num_hit: read_value::< - u8, - >(stream, definition.get_entry("num_hit"), "num_hit")?, - num_direct_hit: read_value::< - u8, - >(stream, definition.get_entry("num_direct_hit"), "num_direct_hit")?, + attacker: read_value::(stream, definition.get_entry("attacker"), "attacker")?, + weapon_def_index: read_value::( + stream, + definition.get_entry("weapon_def_index"), + "weapon_def_index", + )?, + num_hit: read_value::(stream, definition.get_entry("num_hit"), "num_hit")?, + num_direct_hit: read_value::( + stream, + definition.get_entry("num_direct_hit"), + "num_direct_hit", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "attacker" => Ok(self.attacker.clone().into()), "weapon_def_index" => Ok(self.weapon_def_index.clone().into()), "num_hit" => Ok(self.num_hit.clone().into()), "num_direct_hit" => Ok(self.num_direct_hit.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ProjectileRemoved", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ProjectileRemoved", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17260,13 +16869,12 @@ impl QuestMapDataChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestMapDataChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestMapDataChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17295,25 +16903,22 @@ impl GasDousedPlayerIgnitedEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(GasDousedPlayerIgnitedEvent { - igniter: read_value::< - u16, - >(stream, definition.get_entry("igniter"), "igniter")?, + igniter: read_value::(stream, definition.get_entry("igniter"), "igniter")?, douser: read_value::(stream, definition.get_entry("douser"), "douser")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "igniter" => Ok(self.igniter.clone().into()), "douser" => Ok(self.douser.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "GasDousedPlayerIgnited", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "GasDousedPlayerIgnited", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17345,14 +16950,13 @@ impl QuestTurnInStateEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "state" => Ok(self.state.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "QuestTurnInState", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "QuestTurnInState", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17380,13 +16984,12 @@ impl ItemsAcknowledgedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ItemsAcknowledged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ItemsAcknowledged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17414,23 +17017,20 @@ impl CapperKilledEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(CapperKilledEvent { - blocker: read_value::< - u16, - >(stream, definition.get_entry("blocker"), "blocker")?, + blocker: read_value::(stream, definition.get_entry("blocker"), "blocker")?, victim: read_value::(stream, definition.get_entry("victim"), "victim")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "blocker" => Ok(self.blocker.clone().into()), "victim" => Ok(self.victim.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "CapperKilled", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "CapperKilled", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17458,13 +17058,12 @@ impl MainMenuStabilizedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "MainMenuStabilized", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "MainMenuStabilized", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17492,13 +17091,12 @@ impl WorldStatusChangedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "WorldStatusChanged", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "WorldStatusChanged", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17528,31 +17126,28 @@ impl HLTVStatusEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVStatusEvent { - clients: read_value::< - u32, - >(stream, definition.get_entry("clients"), "clients")?, + clients: read_value::(stream, definition.get_entry("clients"), "clients")?, slots: read_value::(stream, definition.get_entry("slots"), "slots")?, - proxies: read_value::< - u16, - >(stream, definition.get_entry("proxies"), "proxies")?, - master: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("master"), "master")?, + proxies: read_value::(stream, definition.get_entry("proxies"), "proxies")?, + master: read_value::( + stream, + definition.get_entry("master"), + "master", + )?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "clients" => Ok(self.clients.clone().into()), "slots" => Ok(self.slots.clone().into()), "proxies" => Ok(self.proxies.clone().into()), "master" => Ok(self.master.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVStatus", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVStatus", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17584,14 +17179,13 @@ impl HLTVCameramanEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVCameraman", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVCameraman", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17627,16 +17221,15 @@ impl HLTVRankCameraEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "rank" => Ok(self.rank.clone().into()), "target" => Ok(self.target.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVRankCamera", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVRankCamera", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17672,16 +17265,15 @@ impl HLTVRankEntityEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "index" => Ok(self.index.clone().into()), "rank" => Ok(self.rank.clone().into()), "target" => Ok(self.target.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVRankEntity", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVRankEntity", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17727,6 +17319,7 @@ impl HLTVFixedEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "posx" => Ok(self.pos_x.clone().into()), "posy" => Ok(self.pos_y.clone().into()), @@ -17736,12 +17329,10 @@ impl HLTVFixedEvent { "offset" => Ok(self.offset.clone().into()), "fov" => Ok(self.fov.clone().into()), "target" => Ok(self.target.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVFixed", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVFixed", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17774,25 +17365,18 @@ impl HLTVChaseEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVChaseEvent { - target_1: read_value::< - u16, - >(stream, definition.get_entry("target1"), "target_1")?, - target_2: read_value::< - u16, - >(stream, definition.get_entry("target2"), "target_2")?, - distance: read_value::< - u16, - >(stream, definition.get_entry("distance"), "distance")?, + target_1: read_value::(stream, definition.get_entry("target1"), "target_1")?, + target_2: read_value::(stream, definition.get_entry("target2"), "target_2")?, + distance: read_value::(stream, definition.get_entry("distance"), "distance")?, theta: read_value::(stream, definition.get_entry("theta"), "theta")?, phi: read_value::(stream, definition.get_entry("phi"), "phi")?, - inertia: read_value::< - u8, - >(stream, definition.get_entry("inertia"), "inertia")?, + inertia: read_value::(stream, definition.get_entry("inertia"), "inertia")?, in_eye: read_value::(stream, definition.get_entry("ineye"), "in_eye")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "target1" => Ok(self.target_1.clone().into()), "target2" => Ok(self.target_2.clone().into()), @@ -17801,12 +17385,10 @@ impl HLTVChaseEvent { "phi" => Ok(self.phi.clone().into()), "inertia" => Ok(self.inertia.clone().into()), "ineye" => Ok(self.in_eye.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVChase", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVChase", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17833,21 +17415,18 @@ impl HLTVMessageEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVMessageEvent { - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVMessage", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVMessage", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17874,21 +17453,18 @@ impl HLTVTitleEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVTitleEvent { - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVTitle", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVTitle", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17915,21 +17491,18 @@ impl HLTVChatEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(HLTVChatEvent { - text: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("text"), "text")?, + text: read_value::(stream, definition.get_entry("text"), "text")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "text" => Ok(self.text.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "HLTVChat", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "HLTVChat", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -17957,13 +17530,12 @@ impl ReplayStartRecordEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplayStartRecord", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplayStartRecord", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -18001,17 +17573,16 @@ impl ReplaySessionInfoEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "sn" => Ok(self.sn.clone().into()), "di" => Ok(self.di.clone().into()), "cb" => Ok(self.cb.clone().into()), "st" => Ok(self.st.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplaySessionInfo", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplaySessionInfo", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -18039,13 +17610,12 @@ impl ReplayEndRecordEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplayEndRecord", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplayEndRecord", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -18073,13 +17643,12 @@ impl ReplayReplaysAvailableEvent { } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplayReplaysAvailable", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplayReplaysAvailable", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -18106,21 +17675,18 @@ impl ReplayServerErrorEvent { #[allow(unused_variables)] fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { Ok(ReplayServerErrorEvent { - error: read_value::< - MaybeUtf8String, - >(stream, definition.get_entry("error"), "error")?, + error: read_value::(stream, definition.get_entry("error"), "error")?, }) } #[allow(unused_variables)] fn get_field(&self, field: &str) -> Result { + #[allow(clippy::clone_on_copy, clippy::match_single_binding)] match field { "error" => Ok(self.error.clone().into()), - _ => { - Err(ParseError::MissingGameEventValue { - ty: "ReplayServerError", - field: field.into(), - }) - } + _ => Err(ParseError::MissingGameEventValue { + ty: "ReplayServerError", + field: field.into(), + }), } } #[allow(unused_variables)] @@ -19447,9 +19013,7 @@ impl GameEventType { "controlpoint_endtouch" => GameEventType::ControlPointEndTouch, "controlpoint_pulse_element" => GameEventType::ControlPointPulseElement, "controlpoint_fake_capture" => GameEventType::ControlPointFakeCapture, - "controlpoint_fake_capture_mult" => { - GameEventType::ControlPointFakeCaptureMultiplier - } + "controlpoint_fake_capture_mult" => GameEventType::ControlPointFakeCaptureMultiplier, "teamplay_round_selected" => GameEventType::TeamPlayRoundSelected, "teamplay_round_start" => GameEventType::TeamPlayRoundStart, "teamplay_round_active" => GameEventType::TeamPlayRoundActive, @@ -19458,9 +19022,7 @@ impl GameEventType { "teamplay_waiting_abouttoend" => GameEventType::TeamPlayWaitingAboutToEnd, "teamplay_restart_round" => GameEventType::TeamPlayRestartRound, "teamplay_ready_restart" => GameEventType::TeamPlayReadyRestart, - "teamplay_round_restart_seconds" => { - GameEventType::TeamPlayRoundRestartSeconds - } + "teamplay_round_restart_seconds" => GameEventType::TeamPlayRoundRestartSeconds, "teamplay_team_ready" => GameEventType::TeamPlayTeamReady, "teamplay_round_win" => GameEventType::TeamPlayRoundWin, "teamplay_update_timer" => GameEventType::TeamPlayUpdateTimer, @@ -19614,9 +19176,7 @@ impl GameEventType { "player_buyback" => GameEventType::PlayerBuyback, "player_used_powerup_bottle" => GameEventType::PlayerUsedPowerUpBottle, "christmas_gift_grab" => GameEventType::ChristmasGiftGrab, - "player_killed_achievement_zone" => { - GameEventType::PlayerKilledAchievementZone - } + "player_killed_achievement_zone" => GameEventType::PlayerKilledAchievementZone, "party_updated" => GameEventType::PartyUpdated, "party_pref_changed" => GameEventType::PartyPrefChanged, "party_criteria_changed" => GameEventType::PartyCriteriaChanged, @@ -19648,9 +19208,7 @@ impl GameEventType { "mvm_mission_complete" => GameEventType::MvmMissionComplete, "mvm_bomb_reset_by_player" => GameEventType::MvmBombResetByPlayer, "mvm_bomb_alarm_triggered" => GameEventType::MvmBombAlarmTriggered, - "mvm_bomb_deploy_reset_by_player" => { - GameEventType::MvmBombDeployResetByPlayer - } + "mvm_bomb_deploy_reset_by_player" => GameEventType::MvmBombDeployResetByPlayer, "mvm_wave_failed" => GameEventType::MvmWaveFailed, "mvm_reset_stats" => GameEventType::MvmResetStats, "damage_resisted" => GameEventType::DamageResisted, @@ -19863,9 +19421,7 @@ impl GameEventType { GameEventType::ControlPointEndTouch => "controlpoint_endtouch", GameEventType::ControlPointPulseElement => "controlpoint_pulse_element", GameEventType::ControlPointFakeCapture => "controlpoint_fake_capture", - GameEventType::ControlPointFakeCaptureMultiplier => { - "controlpoint_fake_capture_mult" - } + GameEventType::ControlPointFakeCaptureMultiplier => "controlpoint_fake_capture_mult", GameEventType::TeamPlayRoundSelected => "teamplay_round_selected", GameEventType::TeamPlayRoundStart => "teamplay_round_start", GameEventType::TeamPlayRoundActive => "teamplay_round_active", @@ -19874,9 +19430,7 @@ impl GameEventType { GameEventType::TeamPlayWaitingAboutToEnd => "teamplay_waiting_abouttoend", GameEventType::TeamPlayRestartRound => "teamplay_restart_round", GameEventType::TeamPlayReadyRestart => "teamplay_ready_restart", - GameEventType::TeamPlayRoundRestartSeconds => { - "teamplay_round_restart_seconds" - } + GameEventType::TeamPlayRoundRestartSeconds => "teamplay_round_restart_seconds", GameEventType::TeamPlayTeamReady => "teamplay_team_ready", GameEventType::TeamPlayRoundWin => "teamplay_round_win", GameEventType::TeamPlayUpdateTimer => "teamplay_update_timer", @@ -20030,9 +19584,7 @@ impl GameEventType { GameEventType::PlayerBuyback => "player_buyback", GameEventType::PlayerUsedPowerUpBottle => "player_used_powerup_bottle", GameEventType::ChristmasGiftGrab => "christmas_gift_grab", - GameEventType::PlayerKilledAchievementZone => { - "player_killed_achievement_zone" - } + GameEventType::PlayerKilledAchievementZone => "player_killed_achievement_zone", GameEventType::PartyUpdated => "party_updated", GameEventType::PartyPrefChanged => "party_pref_changed", GameEventType::PartyCriteriaChanged => "party_criteria_changed", @@ -20064,9 +19616,7 @@ impl GameEventType { GameEventType::MvmMissionComplete => "mvm_mission_complete", GameEventType::MvmBombResetByPlayer => "mvm_bomb_reset_by_player", GameEventType::MvmBombAlarmTriggered => "mvm_bomb_alarm_triggered", - GameEventType::MvmBombDeployResetByPlayer => { - "mvm_bomb_deploy_reset_by_player" - } + GameEventType::MvmBombDeployResetByPlayer => "mvm_bomb_deploy_reset_by_player", GameEventType::MvmWaveFailed => "mvm_wave_failed", GameEventType::MvmResetStats => "mvm_reset_stats", GameEventType::DamageResisted => "damage_resisted", @@ -20194,1899 +19744,1255 @@ impl GameEventType { } impl GameEvent { pub fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result { - Ok( - match definition.event_type { - GameEventType::ServerSpawn => { - GameEvent::ServerSpawn( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ServerChangeLevelFailed => { - GameEvent::ServerChangeLevelFailed( - ServerChangeLevelFailedEvent::read(stream, definition)?, - ) - } - GameEventType::ServerShutdown => { - GameEvent::ServerShutdown( - ServerShutdownEvent::read(stream, definition)?, - ) - } - GameEventType::ServerCvar => { - GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?) - } - GameEventType::ServerMessage => { - GameEvent::ServerMessage( - ServerMessageEvent::read(stream, definition)?, - ) - } - GameEventType::ServerAddBan => { - GameEvent::ServerAddBan( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ServerRemoveBan => { - GameEvent::ServerRemoveBan( - ServerRemoveBanEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerConnect => { - GameEvent::PlayerConnect( - PlayerConnectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerConnectClient => { - GameEvent::PlayerConnectClient( - PlayerConnectClientEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerInfo => { - GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?) - } - GameEventType::PlayerDisconnect => { - GameEvent::PlayerDisconnect( - PlayerDisconnectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerActivate => { - GameEvent::PlayerActivate( - PlayerActivateEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerSay => { - GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?) - } - GameEventType::ClientDisconnect => { - GameEvent::ClientDisconnect( - ClientDisconnectEvent::read(stream, definition)?, - ) - } - GameEventType::ClientBeginConnect => { - GameEvent::ClientBeginConnect( - ClientBeginConnectEvent::read(stream, definition)?, - ) - } - GameEventType::ClientConnected => { - GameEvent::ClientConnected( - ClientConnectedEvent::read(stream, definition)?, - ) - } - GameEventType::ClientFullConnect => { - GameEvent::ClientFullConnect( - ClientFullConnectEvent::read(stream, definition)?, - ) - } - GameEventType::HostQuit => { - GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?) - } - GameEventType::TeamInfo => { - GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?) - } - GameEventType::TeamScore => { - GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?) - } - GameEventType::TeamPlayBroadcastAudio => { - GameEvent::TeamPlayBroadcastAudio( - TeamPlayBroadcastAudioEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerTeam => { - GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?) - } - GameEventType::PlayerClass => { - GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?) - } - GameEventType::PlayerDeath => { - GameEvent::PlayerDeath( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::PlayerHurt => { - GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?) - } - GameEventType::PlayerChat => { - GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?) - } - GameEventType::PlayerScore => { - GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?) - } - GameEventType::PlayerSpawn => { - GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?) - } - GameEventType::PlayerShoot => { - GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?) - } - GameEventType::PlayerUse => { - GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?) - } - GameEventType::PlayerChangeName => { - GameEvent::PlayerChangeName( - PlayerChangeNameEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHintMessage => { - GameEvent::PlayerHintMessage( - PlayerHintMessageEvent::read(stream, definition)?, - ) - } - GameEventType::BasePlayerTeleported => { - GameEvent::BasePlayerTeleported( - BasePlayerTeleportedEvent::read(stream, definition)?, - ) - } - GameEventType::GameInit => { - GameEvent::GameInit(GameInitEvent::read(stream, definition)?) - } - GameEventType::GameNewMap => { - GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?) - } - GameEventType::GameStart => { - GameEvent::GameStart(GameStartEvent::read(stream, definition)?) - } - GameEventType::GameEnd => { - GameEvent::GameEnd(GameEndEvent::read(stream, definition)?) - } - GameEventType::RoundStart => { - GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?) - } - GameEventType::RoundEnd => { - GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?) - } - GameEventType::GameMessage => { - GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?) - } - GameEventType::BreakBreakable => { - GameEvent::BreakBreakable( - BreakBreakableEvent::read(stream, definition)?, - ) - } - GameEventType::BreakProp => { - GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?) - } - GameEventType::EntityKilled => { - GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?) - } - GameEventType::BonusUpdated => { - GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?) - } - GameEventType::AchievementEvent => { - GameEvent::AchievementEvent( - AchievementEventEvent::read(stream, definition)?, - ) - } - GameEventType::AchievementIncrement => { - GameEvent::AchievementIncrement( - AchievementIncrementEvent::read(stream, definition)?, - ) - } - GameEventType::PhysgunPickup => { - GameEvent::PhysgunPickup( - PhysgunPickupEvent::read(stream, definition)?, - ) - } - GameEventType::FlareIgniteNpc => { - GameEvent::FlareIgniteNpc( - FlareIgniteNpcEvent::read(stream, definition)?, - ) - } - GameEventType::HelicopterGrenadePuntMiss => { - GameEvent::HelicopterGrenadePuntMiss( - HelicopterGrenadePuntMissEvent::read(stream, definition)?, - ) - } - GameEventType::UserDataDownloaded => { - GameEvent::UserDataDownloaded( - UserDataDownloadedEvent::read(stream, definition)?, - ) - } - GameEventType::RagdollDissolved => { - GameEvent::RagdollDissolved( - RagdollDissolvedEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVChangedMode => { - GameEvent::HLTVChangedMode( - HLTVChangedModeEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVChangedTarget => { - GameEvent::HLTVChangedTarget( - HLTVChangedTargetEvent::read(stream, definition)?, - ) - } - GameEventType::VoteEnded => { - GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?) - } - GameEventType::VoteStarted => { - GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?) - } - GameEventType::VoteChanged => { - GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?) - } - GameEventType::VotePassed => { - GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?) - } - GameEventType::VoteFailed => { - GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?) - } - GameEventType::VoteCast => { - GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?) - } - GameEventType::VoteOptions => { - GameEvent::VoteOptions( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ReplaySaved => { - GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?) - } - GameEventType::EnteredPerformanceMode => { - GameEvent::EnteredPerformanceMode( - EnteredPerformanceModeEvent::read(stream, definition)?, - ) - } - GameEventType::BrowseReplays => { - GameEvent::BrowseReplays( - BrowseReplaysEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayYoutubeStats => { - GameEvent::ReplayYoutubeStats( - ReplayYoutubeStatsEvent::read(stream, definition)?, - ) - } - GameEventType::InventoryUpdated => { - GameEvent::InventoryUpdated( - InventoryUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::CartUpdated => { - GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?) - } - GameEventType::StorePriceSheetUpdated => { - GameEvent::StorePriceSheetUpdated( - StorePriceSheetUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::EconInventoryConnected => { - GameEvent::EconInventoryConnected( - EconInventoryConnectedEvent::read(stream, definition)?, - ) - } - GameEventType::ItemSchemaInitialized => { - GameEvent::ItemSchemaInitialized( - ItemSchemaInitializedEvent::read(stream, definition)?, - ) - } - GameEventType::GcNewSession => { - GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?) - } - GameEventType::GcLostSession => { - GameEvent::GcLostSession( - GcLostSessionEvent::read(stream, definition)?, - ) - } - GameEventType::IntroFinish => { - GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?) - } - GameEventType::IntroNextCamera => { - GameEvent::IntroNextCamera( - IntroNextCameraEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerChangeClass => { - GameEvent::PlayerChangeClass( - PlayerChangeClassEvent::read(stream, definition)?, - ) - } - GameEventType::TfMapTimeRemaining => { - GameEvent::TfMapTimeRemaining( - TfMapTimeRemainingEvent::read(stream, definition)?, - ) - } - GameEventType::TfGameOver => { - GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?) - } - GameEventType::CtfFlagCaptured => { - GameEvent::CtfFlagCaptured( - CtfFlagCapturedEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointInitialized => { - GameEvent::ControlPointInitialized( - ControlPointInitializedEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateImages => { - GameEvent::ControlPointUpdateImages( - ControlPointUpdateImagesEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateLayout => { - GameEvent::ControlPointUpdateLayout( - ControlPointUpdateLayoutEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateCapping => { - GameEvent::ControlPointUpdateCapping( - ControlPointUpdateCappingEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUpdateOwner => { - GameEvent::ControlPointUpdateOwner( - ControlPointUpdateOwnerEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointStartTouch => { - GameEvent::ControlPointStartTouch( - ControlPointStartTouchEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointEndTouch => { - GameEvent::ControlPointEndTouch( - ControlPointEndTouchEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointPulseElement => { - GameEvent::ControlPointPulseElement( - ControlPointPulseElementEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointFakeCapture => { - GameEvent::ControlPointFakeCapture( - ControlPointFakeCaptureEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointFakeCaptureMultiplier => { - GameEvent::ControlPointFakeCaptureMultiplier( - ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundSelected => { - GameEvent::TeamPlayRoundSelected( - TeamPlayRoundSelectedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundStart => { - GameEvent::TeamPlayRoundStart( - TeamPlayRoundStartEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundActive => { - GameEvent::TeamPlayRoundActive( - TeamPlayRoundActiveEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWaitingBegins => { - GameEvent::TeamPlayWaitingBegins( - TeamPlayWaitingBeginsEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWaitingEnds => { - GameEvent::TeamPlayWaitingEnds( - TeamPlayWaitingEndsEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWaitingAboutToEnd => { - GameEvent::TeamPlayWaitingAboutToEnd( - TeamPlayWaitingAboutToEndEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRestartRound => { - GameEvent::TeamPlayRestartRound( - TeamPlayRestartRoundEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayReadyRestart => { - GameEvent::TeamPlayReadyRestart( - TeamPlayReadyRestartEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundRestartSeconds => { - GameEvent::TeamPlayRoundRestartSeconds( - TeamPlayRoundRestartSecondsEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTeamReady => { - GameEvent::TeamPlayTeamReady( - TeamPlayTeamReadyEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundWin => { - GameEvent::TeamPlayRoundWin( - TeamPlayRoundWinEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayUpdateTimer => { - GameEvent::TeamPlayUpdateTimer( - TeamPlayUpdateTimerEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayRoundStalemate => { - GameEvent::TeamPlayRoundStalemate( - TeamPlayRoundStalemateEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayOvertimeBegin => { - GameEvent::TeamPlayOvertimeBegin( - TeamPlayOvertimeBeginEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayOvertimeEnd => { - GameEvent::TeamPlayOvertimeEnd( - TeamPlayOvertimeEndEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlaySuddenDeathBegin => { - GameEvent::TeamPlaySuddenDeathBegin( - TeamPlaySuddenDeathBeginEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlaySuddenDeathEnd => { - GameEvent::TeamPlaySuddenDeathEnd( - TeamPlaySuddenDeathEndEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayGameOver => { - GameEvent::TeamPlayGameOver( - TeamPlayGameOverEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayMapTimeRemaining => { - GameEvent::TeamPlayMapTimeRemaining( - TeamPlayMapTimeRemainingEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTimerFlash => { - GameEvent::TeamPlayTimerFlash( - TeamPlayTimerFlashEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTimerTimeAdded => { - GameEvent::TeamPlayTimerTimeAdded( - TeamPlayTimerTimeAddedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointStartCapture => { - GameEvent::TeamPlayPointStartCapture( - TeamPlayPointStartCaptureEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointCaptured => { - GameEvent::TeamPlayPointCaptured( - TeamPlayPointCapturedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointLocked => { - GameEvent::TeamPlayPointLocked( - TeamPlayPointLockedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPointUnlocked => { - GameEvent::TeamPlayPointUnlocked( - TeamPlayPointUnlockedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayCaptureBroken => { - GameEvent::TeamPlayCaptureBroken( - TeamPlayCaptureBrokenEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayCaptureBlocked => { - GameEvent::TeamPlayCaptureBlocked( - TeamPlayCaptureBlockedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayFlagEvent => { - GameEvent::TeamPlayFlagEvent( - TeamPlayFlagEventEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayWinPanel => { - GameEvent::TeamPlayWinPanel( - TeamPlayWinPanelEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayTeamBalancedPlayer => { - GameEvent::TeamPlayTeamBalancedPlayer( - TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlaySetupFinished => { - GameEvent::TeamPlaySetupFinished( - TeamPlaySetupFinishedEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayAlert => { - GameEvent::TeamPlayAlert( - TeamPlayAlertEvent::read(stream, definition)?, - ) - } - GameEventType::TrainingComplete => { - GameEvent::TrainingComplete( - TrainingCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::ShowFreezePanel => { - GameEvent::ShowFreezePanel( - ShowFreezePanelEvent::read(stream, definition)?, - ) - } - GameEventType::HideFreezePanel => { - GameEvent::HideFreezePanel( - HideFreezePanelEvent::read(stream, definition)?, - ) - } - GameEventType::FreezeCamStarted => { - GameEvent::FreezeCamStarted( - FreezeCamStartedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChangeTeam => { - GameEvent::LocalPlayerChangeTeam( - LocalPlayerChangeTeamEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerScoreChanged => { - GameEvent::LocalPlayerScoreChanged( - LocalPlayerScoreChangedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChangeClass => { - GameEvent::LocalPlayerChangeClass( - LocalPlayerChangeClassEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerRespawn => { - GameEvent::LocalPlayerRespawn( - LocalPlayerRespawnEvent::read(stream, definition)?, - ) - } - GameEventType::BuildingInfoChanged => { - GameEvent::BuildingInfoChanged( - BuildingInfoChangedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChangeDisguise => { - GameEvent::LocalPlayerChangeDisguise( - LocalPlayerChangeDisguiseEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerAccountChanged => { - GameEvent::PlayerAccountChanged( - PlayerAccountChangedEvent::read(stream, definition)?, - ) - } - GameEventType::SpyPdaReset => { - GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?) - } - GameEventType::FlagStatusUpdate => { - GameEvent::FlagStatusUpdate( - FlagStatusUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerStatsUpdated => { - GameEvent::PlayerStatsUpdated( - PlayerStatsUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayingCommentary => { - GameEvent::PlayingCommentary( - PlayingCommentaryEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerChargeDeployed => { - GameEvent::PlayerChargeDeployed( - PlayerChargeDeployedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBuiltObject => { - GameEvent::PlayerBuiltObject( - PlayerBuiltObjectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerUpgradedObject => { - GameEvent::PlayerUpgradedObject( - PlayerUpgradedObjectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerCarryObject => { - GameEvent::PlayerCarryObject( - PlayerCarryObjectEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDropObject => { - GameEvent::PlayerDropObject( - PlayerDropObjectEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectRemoved => { - GameEvent::ObjectRemoved( - ObjectRemovedEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectDestroyed => { - GameEvent::ObjectDestroyed( - ObjectDestroyedEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectDetonated => { - GameEvent::ObjectDetonated( - ObjectDetonatedEvent::read(stream, definition)?, - ) - } - GameEventType::AchievementEarned => { - GameEvent::AchievementEarned( - AchievementEarnedEvent::read(stream, definition)?, - ) - } - GameEventType::SpecTargetUpdated => { - GameEvent::SpecTargetUpdated( - SpecTargetUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::TournamentStateUpdate => { - GameEvent::TournamentStateUpdate( - TournamentStateUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::TournamentEnableCountdown => { - GameEvent::TournamentEnableCountdown( - TournamentEnableCountdownEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerCalledForMedic => { - GameEvent::PlayerCalledForMedic( - PlayerCalledForMedicEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerAskedForBall => { - GameEvent::PlayerAskedForBall( - PlayerAskedForBallEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerBecameObserver => { - GameEvent::LocalPlayerBecameObserver( - LocalPlayerBecameObserverEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerIgnitedInv => { - GameEvent::PlayerIgnitedInv( - PlayerIgnitedInvEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerIgnited => { - GameEvent::PlayerIgnited( - PlayerIgnitedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerExtinguished => { - GameEvent::PlayerExtinguished( - PlayerExtinguishedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerTeleported => { - GameEvent::PlayerTeleported( - PlayerTeleportedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHealedMedicCall => { - GameEvent::PlayerHealedMedicCall( - PlayerHealedMedicCallEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerChargeReady => { - GameEvent::LocalPlayerChargeReady( - LocalPlayerChargeReadyEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerWindDown => { - GameEvent::LocalPlayerWindDown( - LocalPlayerWindDownEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerInvulned => { - GameEvent::PlayerInvulned( - PlayerInvulnedEvent::read(stream, definition)?, - ) - } - GameEventType::EscortSpeed => { - GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?) - } - GameEventType::EscortProgress => { - GameEvent::EscortProgress( - EscortProgressEvent::read(stream, definition)?, - ) - } - GameEventType::EscortRecede => { - GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?) - } - GameEventType::GameUIActivated => { - GameEvent::GameUIActivated( - GameUIActivatedEvent::read(stream, definition)?, - ) - } - GameEventType::GameUIHidden => { - GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?) - } - GameEventType::PlayerEscortScore => { - GameEvent::PlayerEscortScore( - PlayerEscortScoreEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHealOnHit => { - GameEvent::PlayerHealOnHit( - PlayerHealOnHitEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerStealSandvich => { - GameEvent::PlayerStealSandvich( - PlayerStealSandvichEvent::read(stream, definition)?, - ) - } - GameEventType::ShowClassLayout => { - GameEvent::ShowClassLayout( - ShowClassLayoutEvent::read(stream, definition)?, - ) - } - GameEventType::ShowVsPanel => { - GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?) - } - GameEventType::PlayerDamaged => { - GameEvent::PlayerDamaged( - PlayerDamagedEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaPlayerNotification => { - GameEvent::ArenaPlayerNotification( - ArenaPlayerNotificationEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaMatchMaxStreak => { - GameEvent::ArenaMatchMaxStreak( - ArenaMatchMaxStreakEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaRoundStart => { - GameEvent::ArenaRoundStart( - ArenaRoundStartEvent::read(stream, definition)?, - ) - } - GameEventType::ArenaWinPanel => { - GameEvent::ArenaWinPanel( - ArenaWinPanelEvent::read(stream, definition)?, - ) - } - GameEventType::PveWinPanel => { - GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?) - } - GameEventType::AirDash => { - GameEvent::AirDash(AirDashEvent::read(stream, definition)?) - } - GameEventType::Landed => { - GameEvent::Landed(LandedEvent::read(stream, definition)?) - } - GameEventType::PlayerDamageDodged => { - GameEvent::PlayerDamageDodged( - PlayerDamageDodgedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerStunned => { - GameEvent::PlayerStunned( - PlayerStunnedEvent::read(stream, definition)?, - ) - } - GameEventType::ScoutGrandSlam => { - GameEvent::ScoutGrandSlam( - ScoutGrandSlamEvent::read(stream, definition)?, - ) - } - GameEventType::ScoutSlamdollLanded => { - GameEvent::ScoutSlamdollLanded( - ScoutSlamdollLandedEvent::read(stream, definition)?, - ) - } - GameEventType::ArrowImpact => { - GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?) - } - GameEventType::PlayerJarated => { - GameEvent::PlayerJarated( - PlayerJaratedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerJaratedFade => { - GameEvent::PlayerJaratedFade( - PlayerJaratedFadeEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerShieldBlocked => { - GameEvent::PlayerShieldBlocked( - PlayerShieldBlockedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerPinned => { - GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?) - } - GameEventType::PlayerHealedByMedic => { - GameEvent::PlayerHealedByMedic( - PlayerHealedByMedicEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerSappedObject => { - GameEvent::PlayerSappedObject( - PlayerSappedObjectEvent::read(stream, definition)?, - ) - } - GameEventType::ItemFound => { - GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?) - } - GameEventType::ShowAnnotation => { - GameEvent::ShowAnnotation( - ShowAnnotationEvent::read(stream, definition)?, - ) - } - GameEventType::HideAnnotation => { - GameEvent::HideAnnotation( - HideAnnotationEvent::read(stream, definition)?, - ) - } - GameEventType::PostInventoryApplication => { - GameEvent::PostInventoryApplication( - PostInventoryApplicationEvent::read(stream, definition)?, - ) - } - GameEventType::ControlPointUnlockUpdated => { - GameEvent::ControlPointUnlockUpdated( - ControlPointUnlockUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::DeployBuffBanner => { - GameEvent::DeployBuffBanner( - DeployBuffBannerEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBuff => { - GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?) - } - GameEventType::MedicDeath => { - GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?) - } - GameEventType::OvertimeNag => { - GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?) - } - GameEventType::TeamsChanged => { - GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?) - } - GameEventType::HalloweenPumpkinGrab => { - GameEvent::HalloweenPumpkinGrab( - HalloweenPumpkinGrabEvent::read(stream, definition)?, - ) - } - GameEventType::RocketJump => { - GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?) - } - GameEventType::RocketJumpLanded => { - GameEvent::RocketJumpLanded( - RocketJumpLandedEvent::read(stream, definition)?, - ) - } - GameEventType::StickyJump => { - GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?) - } - GameEventType::StickyJumpLanded => { - GameEvent::StickyJumpLanded( - StickyJumpLandedEvent::read(stream, definition)?, - ) - } - GameEventType::RocketPackLaunch => { - GameEvent::RocketPackLaunch( - RocketPackLaunchEvent::read(stream, definition)?, - ) - } - GameEventType::RocketPackLanded => { - GameEvent::RocketPackLanded( - RocketPackLandedEvent::read(stream, definition)?, - ) - } - GameEventType::MedicDefended => { - GameEvent::MedicDefended( - MedicDefendedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerHealed => { - GameEvent::LocalPlayerHealed( - LocalPlayerHealedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDestroyedPipeBomb => { - GameEvent::PlayerDestroyedPipeBomb( - PlayerDestroyedPipeBombEvent::read(stream, definition)?, - ) - } - GameEventType::ObjectDeflected => { - GameEvent::ObjectDeflected( - ObjectDeflectedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerMvp => { - GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?) - } - GameEventType::RaidSpawnMob => { - GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?) - } - GameEventType::RaidSpawnSquad => { - GameEvent::RaidSpawnSquad( - RaidSpawnSquadEvent::read(stream, definition)?, - ) - } - GameEventType::NavBlocked => { - GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?) - } - GameEventType::PathTrackPassed => { - GameEvent::PathTrackPassed( - PathTrackPassedEvent::read(stream, definition)?, - ) - } - GameEventType::NumCappersChanged => { - GameEvent::NumCappersChanged( - NumCappersChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerRegenerate => { - GameEvent::PlayerRegenerate( - PlayerRegenerateEvent::read(stream, definition)?, - ) - } - GameEventType::UpdateStatusItem => { - GameEvent::UpdateStatusItem( - UpdateStatusItemEvent::read(stream, definition)?, - ) - } - GameEventType::StatsResetRound => { - GameEvent::StatsResetRound( - StatsResetRoundEvent::read(stream, definition)?, - ) - } - GameEventType::ScoreStatsAccumulatedUpdate => { - GameEvent::ScoreStatsAccumulatedUpdate( - ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::ScoreStatsAccumulatedReset => { - GameEvent::ScoreStatsAccumulatedReset( - ScoreStatsAccumulatedResetEvent::read(stream, definition)?, - ) - } - GameEventType::AchievementEarnedLocal => { - GameEvent::AchievementEarnedLocal( - AchievementEarnedLocalEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHealed => { - GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?) - } - GameEventType::BuildingHealed => { - GameEvent::BuildingHealed( - BuildingHealedEvent::read(stream, definition)?, - ) - } - GameEventType::ItemPickup => { - GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?) - } - GameEventType::DuelStatus => { - GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?) - } - GameEventType::FishNotice => { - GameEvent::FishNotice( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::FishNoticeArm => { - GameEvent::FishNoticeArm( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::SlapNotice => { - GameEvent::SlapNotice( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::ThrowableHit => { - GameEvent::ThrowableHit( - Box::new(::read(stream, definition)?), - ) - } - GameEventType::PumpkinLordSummoned => { - GameEvent::PumpkinLordSummoned( - PumpkinLordSummonedEvent::read(stream, definition)?, - ) - } - GameEventType::PumpkinLordKilled => { - GameEvent::PumpkinLordKilled( - PumpkinLordKilledEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusSummoned => { - GameEvent::MerasmusSummoned( - MerasmusSummonedEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusKilled => { - GameEvent::MerasmusKilled( - MerasmusKilledEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusEscapeWarning => { - GameEvent::MerasmusEscapeWarning( - MerasmusEscapeWarningEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusEscaped => { - GameEvent::MerasmusEscaped( - MerasmusEscapedEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossSummoned => { - GameEvent::EyeballBossSummoned( - EyeballBossSummonedEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossStunned => { - GameEvent::EyeballBossStunned( - EyeballBossStunnedEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossKilled => { - GameEvent::EyeballBossKilled( - EyeballBossKilledEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossKiller => { - GameEvent::EyeballBossKiller( - EyeballBossKillerEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossEscapeImminent => { - GameEvent::EyeballBossEscapeImminent( - EyeballBossEscapeImminentEvent::read(stream, definition)?, - ) - } - GameEventType::EyeballBossEscaped => { - GameEvent::EyeballBossEscaped( - EyeballBossEscapedEvent::read(stream, definition)?, - ) - } - GameEventType::NpcHurt => { - GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?) - } - GameEventType::ControlPointTimerUpdated => { - GameEvent::ControlPointTimerUpdated( - ControlPointTimerUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHighFiveStart => { - GameEvent::PlayerHighFiveStart( - PlayerHighFiveStartEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHighFiveCancel => { - GameEvent::PlayerHighFiveCancel( - PlayerHighFiveCancelEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerHighFiveSuccess => { - GameEvent::PlayerHighFiveSuccess( - PlayerHighFiveSuccessEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBonusPoints => { - GameEvent::PlayerBonusPoints( - PlayerBonusPointsEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerUpgraded => { - GameEvent::PlayerUpgraded( - PlayerUpgradedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerBuyback => { - GameEvent::PlayerBuyback( - PlayerBuybackEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerUsedPowerUpBottle => { - GameEvent::PlayerUsedPowerUpBottle( - PlayerUsedPowerUpBottleEvent::read(stream, definition)?, - ) - } - GameEventType::ChristmasGiftGrab => { - GameEvent::ChristmasGiftGrab( - ChristmasGiftGrabEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerKilledAchievementZone => { - GameEvent::PlayerKilledAchievementZone( - PlayerKilledAchievementZoneEvent::read(stream, definition)?, - ) - } - GameEventType::PartyUpdated => { - GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?) - } - GameEventType::PartyPrefChanged => { - GameEvent::PartyPrefChanged( - PartyPrefChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyCriteriaChanged => { - GameEvent::PartyCriteriaChanged( - PartyCriteriaChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyInvitesChanged => { - GameEvent::PartyInvitesChanged( - PartyInvitesChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyQueueStateChanged => { - GameEvent::PartyQueueStateChanged( - PartyQueueStateChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PartyChat => { - GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?) - } - GameEventType::PartyMemberJoin => { - GameEvent::PartyMemberJoin( - PartyMemberJoinEvent::read(stream, definition)?, - ) - } - GameEventType::PartyMemberLeave => { - GameEvent::PartyMemberLeave( - PartyMemberLeaveEvent::read(stream, definition)?, - ) - } - GameEventType::MatchInvitesUpdated => { - GameEvent::MatchInvitesUpdated( - MatchInvitesUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::LobbyUpdated => { - GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?) - } - GameEventType::MvmMissionUpdate => { - GameEvent::MvmMissionUpdate( - MvmMissionUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::RecalculateHolidays => { - GameEvent::RecalculateHolidays( - RecalculateHolidaysEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerCurrencyChanged => { - GameEvent::PlayerCurrencyChanged( - PlayerCurrencyChangedEvent::read(stream, definition)?, - ) - } - GameEventType::DoomsdayRocketOpen => { - GameEvent::DoomsdayRocketOpen( - DoomsdayRocketOpenEvent::read(stream, definition)?, - ) - } - GameEventType::RemoveNemesisRelationships => { - GameEvent::RemoveNemesisRelationships( - RemoveNemesisRelationshipsEvent::read(stream, definition)?, - ) - } - GameEventType::MvmCreditBonusWave => { - GameEvent::MvmCreditBonusWave( - MvmCreditBonusWaveEvent::read(stream, definition)?, - ) - } - GameEventType::MvmCreditBonusAll => { - GameEvent::MvmCreditBonusAll( - MvmCreditBonusAllEvent::read(stream, definition)?, - ) - } - GameEventType::MvmCreditBonusAllAdvanced => { - GameEvent::MvmCreditBonusAllAdvanced( - MvmCreditBonusAllAdvancedEvent::read(stream, definition)?, - ) - } - GameEventType::MvmQuickSentryUpgrade => { - GameEvent::MvmQuickSentryUpgrade( - MvmQuickSentryUpgradeEvent::read(stream, definition)?, - ) - } - GameEventType::MvmTankDestroyedByPlayers => { - GameEvent::MvmTankDestroyedByPlayers( - MvmTankDestroyedByPlayersEvent::read(stream, definition)?, - ) - } - GameEventType::MvmKillRobotDeliveringBomb => { - GameEvent::MvmKillRobotDeliveringBomb( - MvmKillRobotDeliveringBombEvent::read(stream, definition)?, - ) - } - GameEventType::MvmPickupCurrency => { - GameEvent::MvmPickupCurrency( - MvmPickupCurrencyEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombCarrierKilled => { - GameEvent::MvmBombCarrierKilled( - MvmBombCarrierKilledEvent::read(stream, definition)?, - ) - } - GameEventType::MvmSentryBusterDetonate => { - GameEvent::MvmSentryBusterDetonate( - MvmSentryBusterDetonateEvent::read(stream, definition)?, - ) - } - GameEventType::MvmScoutMarkedForDeath => { - GameEvent::MvmScoutMarkedForDeath( - MvmScoutMarkedForDeathEvent::read(stream, definition)?, - ) - } - GameEventType::MvmMedicPowerUpShared => { - GameEvent::MvmMedicPowerUpShared( - MvmMedicPowerUpSharedEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBeginWave => { - GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?) - } - GameEventType::MvmWaveComplete => { - GameEvent::MvmWaveComplete( - MvmWaveCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::MvmMissionComplete => { - GameEvent::MvmMissionComplete( - MvmMissionCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombResetByPlayer => { - GameEvent::MvmBombResetByPlayer( - MvmBombResetByPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombAlarmTriggered => { - GameEvent::MvmBombAlarmTriggered( - MvmBombAlarmTriggeredEvent::read(stream, definition)?, - ) - } - GameEventType::MvmBombDeployResetByPlayer => { - GameEvent::MvmBombDeployResetByPlayer( - MvmBombDeployResetByPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::MvmWaveFailed => { - GameEvent::MvmWaveFailed( - MvmWaveFailedEvent::read(stream, definition)?, - ) - } - GameEventType::MvmResetStats => { - GameEvent::MvmResetStats( - MvmResetStatsEvent::read(stream, definition)?, - ) - } - GameEventType::DamageResisted => { - GameEvent::DamageResisted( - DamageResistedEvent::read(stream, definition)?, - ) - } - GameEventType::RevivePlayerNotify => { - GameEvent::RevivePlayerNotify( - RevivePlayerNotifyEvent::read(stream, definition)?, - ) - } - GameEventType::RevivePlayerStopped => { - GameEvent::RevivePlayerStopped( - RevivePlayerStoppedEvent::read(stream, definition)?, - ) - } - GameEventType::RevivePlayerComplete => { - GameEvent::RevivePlayerComplete( - RevivePlayerCompleteEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerTurnedToGhost => { - GameEvent::PlayerTurnedToGhost( - PlayerTurnedToGhostEvent::read(stream, definition)?, - ) - } - GameEventType::MedigunShieldBlockedDamage => { - GameEvent::MedigunShieldBlockedDamage( - MedigunShieldBlockedDamageEvent::read(stream, definition)?, - ) - } - GameEventType::MvmAdvWaveCompleteNoGates => { - GameEvent::MvmAdvWaveCompleteNoGates( - MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?, - ) - } - GameEventType::MvmSniperHeadshotCurrency => { - GameEvent::MvmSniperHeadshotCurrency( - MvmSniperHeadshotCurrencyEvent::read(stream, definition)?, - ) - } - GameEventType::MvmMannhattanPit => { - GameEvent::MvmMannhattanPit( - MvmMannhattanPitEvent::read(stream, definition)?, - ) - } - GameEventType::FlagCarriedInDetectionZone => { - GameEvent::FlagCarriedInDetectionZone( - FlagCarriedInDetectionZoneEvent::read(stream, definition)?, - ) - } - GameEventType::MvmAdvWaveKilledStunRadio => { - GameEvent::MvmAdvWaveKilledStunRadio( - MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDirectHitStun => { - GameEvent::PlayerDirectHitStun( - PlayerDirectHitStunEvent::read(stream, definition)?, - ) - } - GameEventType::MvmSentryBusterKilled => { - GameEvent::MvmSentryBusterKilled( - MvmSentryBusterKilledEvent::read(stream, definition)?, - ) - } - GameEventType::UpgradesFileChanged => { - GameEvent::UpgradesFileChanged( - UpgradesFileChangedEvent::read(stream, definition)?, - ) - } - GameEventType::RdTeamPointsChanged => { - GameEvent::RdTeamPointsChanged( - RdTeamPointsChangedEvent::read(stream, definition)?, - ) - } - GameEventType::RdRulesStateChanged => { - GameEvent::RdRulesStateChanged( - RdRulesStateChangedEvent::read(stream, definition)?, - ) - } - GameEventType::RdRobotKilled => { - GameEvent::RdRobotKilled( - RdRobotKilledEvent::read(stream, definition)?, - ) - } - GameEventType::RdRobotImpact => { - GameEvent::RdRobotImpact( - RdRobotImpactEvent::read(stream, definition)?, - ) - } - GameEventType::TeamPlayPreRoundTimeLeft => { - GameEvent::TeamPlayPreRoundTimeLeft( - TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?, - ) - } - GameEventType::ParachuteDeploy => { - GameEvent::ParachuteDeploy( - ParachuteDeployEvent::read(stream, definition)?, - ) - } - GameEventType::ParachuteHolster => { - GameEvent::ParachuteHolster( - ParachuteHolsterEvent::read(stream, definition)?, - ) - } - GameEventType::KillRefillsMeter => { - GameEvent::KillRefillsMeter( - KillRefillsMeterEvent::read(stream, definition)?, - ) - } - GameEventType::RpsTauntEvent => { - GameEvent::RpsTauntEvent( - RpsTauntEventEvent::read(stream, definition)?, - ) - } - GameEventType::CongaKill => { - GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?) - } - GameEventType::PlayerInitialSpawn => { - GameEvent::PlayerInitialSpawn( - PlayerInitialSpawnEvent::read(stream, definition)?, - ) - } - GameEventType::CompetitiveVictory => { - GameEvent::CompetitiveVictory( - CompetitiveVictoryEvent::read(stream, definition)?, - ) - } - GameEventType::CompetitiveStatsUpdate => { - GameEvent::CompetitiveStatsUpdate( - CompetitiveStatsUpdateEvent::read(stream, definition)?, - ) - } - GameEventType::MiniGameWin => { - GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?) - } - GameEventType::SentryOnGoActive => { - GameEvent::SentryOnGoActive( - SentryOnGoActiveEvent::read(stream, definition)?, - ) - } - GameEventType::DuckXpLevelUp => { - GameEvent::DuckXpLevelUp( - DuckXpLevelUpEvent::read(stream, definition)?, - ) - } - GameEventType::QuestLogOpened => { - GameEvent::QuestLogOpened( - QuestLogOpenedEvent::read(stream, definition)?, - ) - } - GameEventType::SchemaUpdated => { - GameEvent::SchemaUpdated( - SchemaUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::LocalPlayerPickupWeapon => { - GameEvent::LocalPlayerPickupWeapon( - LocalPlayerPickupWeaponEvent::read(stream, definition)?, - ) - } - GameEventType::RdPlayerScorePoints => { - GameEvent::RdPlayerScorePoints( - RdPlayerScorePointsEvent::read(stream, definition)?, - ) - } - GameEventType::DemomanDetStickies => { - GameEvent::DemomanDetStickies( - DemomanDetStickiesEvent::read(stream, definition)?, - ) - } - GameEventType::QuestObjectiveCompleted => { - GameEvent::QuestObjectiveCompleted( - QuestObjectiveCompletedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerScoreChanged => { - GameEvent::PlayerScoreChanged( - PlayerScoreChangedEvent::read(stream, definition)?, - ) - } - GameEventType::KilledCappingPlayer => { - GameEvent::KilledCappingPlayer( - KilledCappingPlayerEvent::read(stream, definition)?, - ) - } - GameEventType::EnvironmentalDeath => { - GameEvent::EnvironmentalDeath( - EnvironmentalDeathEvent::read(stream, definition)?, - ) - } - GameEventType::ProjectileDirectHit => { - GameEvent::ProjectileDirectHit( - ProjectileDirectHitEvent::read(stream, definition)?, - ) - } - GameEventType::PassGet => { - GameEvent::PassGet(PassGetEvent::read(stream, definition)?) - } - GameEventType::PassScore => { - GameEvent::PassScore(PassScoreEvent::read(stream, definition)?) - } - GameEventType::PassFree => { - GameEvent::PassFree(PassFreeEvent::read(stream, definition)?) - } - GameEventType::PassPassCaught => { - GameEvent::PassPassCaught( - PassPassCaughtEvent::read(stream, definition)?, - ) - } - GameEventType::PassBallStolen => { - GameEvent::PassBallStolen( - PassBallStolenEvent::read(stream, definition)?, - ) - } - GameEventType::PassBallBlocked => { - GameEvent::PassBallBlocked( - PassBallBlockedEvent::read(stream, definition)?, - ) - } - GameEventType::DamagePrevented => { - GameEvent::DamagePrevented( - DamagePreventedEvent::read(stream, definition)?, - ) - } - GameEventType::HalloweenBossKilled => { - GameEvent::HalloweenBossKilled( - HalloweenBossKilledEvent::read(stream, definition)?, - ) - } - GameEventType::EscapedLootIsland => { - GameEvent::EscapedLootIsland( - EscapedLootIslandEvent::read(stream, definition)?, - ) - } - GameEventType::TaggedPlayerAsIt => { - GameEvent::TaggedPlayerAsIt( - TaggedPlayerAsItEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusStunned => { - GameEvent::MerasmusStunned( - MerasmusStunnedEvent::read(stream, definition)?, - ) - } - GameEventType::MerasmusPropFound => { - GameEvent::MerasmusPropFound( - MerasmusPropFoundEvent::read(stream, definition)?, - ) - } - GameEventType::HalloweenSkeletonKilled => { - GameEvent::HalloweenSkeletonKilled( - HalloweenSkeletonKilledEvent::read(stream, definition)?, - ) - } - GameEventType::SkeletonKilledQuest => { - GameEvent::SkeletonKilledQuest( - SkeletonKilledQuestEvent::read(stream, definition)?, - ) - } - GameEventType::SkeletonKingKilledQuest => { - GameEvent::SkeletonKingKilledQuest( - SkeletonKingKilledQuestEvent::read(stream, definition)?, - ) - } - GameEventType::EscapeHell => { - GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) - } - GameEventType::CrossSpectralBridge => { - GameEvent::CrossSpectralBridge( - CrossSpectralBridgeEvent::read(stream, definition)?, - ) - } - GameEventType::MiniGameWon => { - GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?) - } - GameEventType::RespawnGhost => { - GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?) - } - GameEventType::KillInHell => { - GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?) - } - GameEventType::HalloweenDuckCollected => { - GameEvent::HalloweenDuckCollected( - HalloweenDuckCollectedEvent::read(stream, definition)?, - ) - } - GameEventType::SpecialScore => { - GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?) - } - GameEventType::TeamLeaderKilled => { - GameEvent::TeamLeaderKilled( - TeamLeaderKilledEvent::read(stream, definition)?, - ) - } - GameEventType::HalloweenSoulCollected => { - GameEvent::HalloweenSoulCollected( - HalloweenSoulCollectedEvent::read(stream, definition)?, - ) - } - GameEventType::RecalculateTruce => { - GameEvent::RecalculateTruce( - RecalculateTruceEvent::read(stream, definition)?, - ) - } - GameEventType::DeadRingerCheatDeath => { - GameEvent::DeadRingerCheatDeath( - DeadRingerCheatDeathEvent::read(stream, definition)?, - ) - } - GameEventType::CrossbowHeal => { - GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?) - } - GameEventType::DamageMitigated => { - GameEvent::DamageMitigated( - DamageMitigatedEvent::read(stream, definition)?, - ) - } - GameEventType::PayloadPushed => { - GameEvent::PayloadPushed( - PayloadPushedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerAbandonedMatch => { - GameEvent::PlayerAbandonedMatch( - PlayerAbandonedMatchEvent::read(stream, definition)?, - ) - } - GameEventType::ClDrawline => { - GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?) - } - GameEventType::RestartTimerTime => { - GameEvent::RestartTimerTime( - RestartTimerTimeEvent::read(stream, definition)?, - ) - } - GameEventType::WinLimitChanged => { - GameEvent::WinLimitChanged( - WinLimitChangedEvent::read(stream, definition)?, - ) - } - GameEventType::WinPanelShowScores => { - GameEvent::WinPanelShowScores( - WinPanelShowScoresEvent::read(stream, definition)?, - ) - } - GameEventType::TopStreamsRequestFinished => { - GameEvent::TopStreamsRequestFinished( - TopStreamsRequestFinishedEvent::read(stream, definition)?, - ) - } - GameEventType::CompetitiveStateChanged => { - GameEvent::CompetitiveStateChanged( - CompetitiveStateChangedEvent::read(stream, definition)?, - ) - } - GameEventType::GlobalWarDataUpdated => { - GameEvent::GlobalWarDataUpdated( - GlobalWarDataUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::StopWatchChanged => { - GameEvent::StopWatchChanged( - StopWatchChangedEvent::read(stream, definition)?, - ) - } - GameEventType::DsStop => { - GameEvent::DsStop(DsStopEvent::read(stream, definition)?) - } - GameEventType::DsScreenshot => { - GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?) - } - GameEventType::ShowMatchSummary => { - GameEvent::ShowMatchSummary( - ShowMatchSummaryEvent::read(stream, definition)?, - ) - } - GameEventType::ExperienceChanged => { - GameEvent::ExperienceChanged( - ExperienceChangedEvent::read(stream, definition)?, - ) - } - GameEventType::BeginXpLerp => { - GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?) - } - GameEventType::MatchmakerStatsUpdated => { - GameEvent::MatchmakerStatsUpdated( - MatchmakerStatsUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::RematchVotePeriodOver => { - GameEvent::RematchVotePeriodOver( - RematchVotePeriodOverEvent::read(stream, definition)?, - ) - } - GameEventType::RematchFailedToCreate => { - GameEvent::RematchFailedToCreate( - RematchFailedToCreateEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerRematchChange => { - GameEvent::PlayerRematchChange( - PlayerRematchChangeEvent::read(stream, definition)?, - ) - } - GameEventType::PingUpdated => { - GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?) - } - GameEventType::MMStatsUpdated => { - GameEvent::MMStatsUpdated( - MMStatsUpdatedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerNextMapVoteChange => { - GameEvent::PlayerNextMapVoteChange( - PlayerNextMapVoteChangeEvent::read(stream, definition)?, - ) - } - GameEventType::VoteMapsChanged => { - GameEvent::VoteMapsChanged( - VoteMapsChangedEvent::read(stream, definition)?, - ) - } - GameEventType::ProtoDefChanged => { - GameEvent::ProtoDefChanged( - ProtoDefChangedEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerDomination => { - GameEvent::PlayerDomination( - PlayerDominationEvent::read(stream, definition)?, - ) - } - GameEventType::PlayerRocketPackPushed => { - GameEvent::PlayerRocketPackPushed( - PlayerRocketPackPushedEvent::read(stream, definition)?, - ) - } - GameEventType::QuestRequest => { - GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?) - } - GameEventType::QuestResponse => { - GameEvent::QuestResponse( - QuestResponseEvent::read(stream, definition)?, - ) - } - GameEventType::QuestProgress => { - GameEvent::QuestProgress( - QuestProgressEvent::read(stream, definition)?, - ) - } - GameEventType::ProjectileRemoved => { - GameEvent::ProjectileRemoved( - ProjectileRemovedEvent::read(stream, definition)?, - ) - } - GameEventType::QuestMapDataChanged => { - GameEvent::QuestMapDataChanged( - QuestMapDataChangedEvent::read(stream, definition)?, - ) - } - GameEventType::GasDousedPlayerIgnited => { - GameEvent::GasDousedPlayerIgnited( - GasDousedPlayerIgnitedEvent::read(stream, definition)?, - ) - } - GameEventType::QuestTurnInState => { - GameEvent::QuestTurnInState( - QuestTurnInStateEvent::read(stream, definition)?, - ) - } - GameEventType::ItemsAcknowledged => { - GameEvent::ItemsAcknowledged( - ItemsAcknowledgedEvent::read(stream, definition)?, - ) - } - GameEventType::CapperKilled => { - GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?) - } - GameEventType::MainMenuStabilized => { - GameEvent::MainMenuStabilized( - MainMenuStabilizedEvent::read(stream, definition)?, - ) - } - GameEventType::WorldStatusChanged => { - GameEvent::WorldStatusChanged( - WorldStatusChangedEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVStatus => { - GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?) - } - GameEventType::HLTVCameraman => { - GameEvent::HLTVCameraman( - HLTVCameramanEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVRankCamera => { - GameEvent::HLTVRankCamera( - HLTVRankCameraEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVRankEntity => { - GameEvent::HLTVRankEntity( - HLTVRankEntityEvent::read(stream, definition)?, - ) - } - GameEventType::HLTVFixed => { - GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?) - } - GameEventType::HLTVChase => { - GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?) - } - GameEventType::HLTVMessage => { - GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?) - } - GameEventType::HLTVTitle => { - GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?) - } - GameEventType::HLTVChat => { - GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?) - } - GameEventType::ReplayStartRecord => { - GameEvent::ReplayStartRecord( - ReplayStartRecordEvent::read(stream, definition)?, - ) - } - GameEventType::ReplaySessionInfo => { - GameEvent::ReplaySessionInfo( - ReplaySessionInfoEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayEndRecord => { - GameEvent::ReplayEndRecord( - ReplayEndRecordEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayReplaysAvailable => { - GameEvent::ReplayReplaysAvailable( - ReplayReplaysAvailableEvent::read(stream, definition)?, - ) - } - GameEventType::ReplayServerError => { - GameEvent::ReplayServerError( - ReplayServerErrorEvent::read(stream, definition)?, - ) - } - GameEventType::Unknown(_) => { - GameEvent::Unknown(RawGameEvent::read(stream, definition)?) - } - }, - ) - } - pub fn write( - &self, - stream: &mut BitWriteStream, - definition: &GameEventDefinition, - ) -> Result<()> { - match &self { - GameEvent::ServerSpawn(event) => event.write(stream, definition), - GameEvent::ServerChangeLevelFailed(event) => event.write(stream, definition), - GameEvent::ServerShutdown(event) => event.write(stream, definition), - GameEvent::ServerCvar(event) => event.write(stream, definition), - GameEvent::ServerMessage(event) => event.write(stream, definition), - GameEvent::ServerAddBan(event) => event.write(stream, definition), - GameEvent::ServerRemoveBan(event) => event.write(stream, definition), - GameEvent::PlayerConnect(event) => event.write(stream, definition), - GameEvent::PlayerConnectClient(event) => event.write(stream, definition), - GameEvent::PlayerInfo(event) => event.write(stream, definition), - GameEvent::PlayerDisconnect(event) => event.write(stream, definition), - GameEvent::PlayerActivate(event) => event.write(stream, definition), - GameEvent::PlayerSay(event) => event.write(stream, definition), - GameEvent::ClientDisconnect(event) => event.write(stream, definition), - GameEvent::ClientBeginConnect(event) => event.write(stream, definition), - GameEvent::ClientConnected(event) => event.write(stream, definition), - GameEvent::ClientFullConnect(event) => event.write(stream, definition), - GameEvent::HostQuit(event) => event.write(stream, definition), - GameEvent::TeamInfo(event) => event.write(stream, definition), - GameEvent::TeamScore(event) => event.write(stream, definition), - GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream, definition), - GameEvent::PlayerTeam(event) => event.write(stream, definition), - GameEvent::PlayerClass(event) => event.write(stream, definition), - GameEvent::PlayerDeath(event) => event.write(stream, definition), - GameEvent::PlayerHurt(event) => event.write(stream, definition), - GameEvent::PlayerChat(event) => event.write(stream, definition), - GameEvent::PlayerScore(event) => event.write(stream, definition), - GameEvent::PlayerSpawn(event) => event.write(stream, definition), - GameEvent::PlayerShoot(event) => event.write(stream, definition), - GameEvent::PlayerUse(event) => event.write(stream, definition), - GameEvent::PlayerChangeName(event) => event.write(stream, definition), - GameEvent::PlayerHintMessage(event) => event.write(stream, definition), - GameEvent::BasePlayerTeleported(event) => event.write(stream, definition), - GameEvent::GameInit(event) => event.write(stream, definition), - GameEvent::GameNewMap(event) => event.write(stream, definition), - GameEvent::GameStart(event) => event.write(stream, definition), - GameEvent::GameEnd(event) => event.write(stream, definition), - GameEvent::RoundStart(event) => event.write(stream, definition), + Ok(match definition.event_type { + GameEventType::ServerSpawn => { + GameEvent::ServerSpawn(Box::new(::read(stream, definition)?)) + } + GameEventType::ServerChangeLevelFailed => GameEvent::ServerChangeLevelFailed( + ServerChangeLevelFailedEvent::read(stream, definition)?, + ), + GameEventType::ServerShutdown => { + GameEvent::ServerShutdown(ServerShutdownEvent::read(stream, definition)?) + } + GameEventType::ServerCvar => { + GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?) + } + GameEventType::ServerMessage => { + GameEvent::ServerMessage(ServerMessageEvent::read(stream, definition)?) + } + GameEventType::ServerAddBan => { + GameEvent::ServerAddBan(Box::new(::read(stream, definition)?)) + } + GameEventType::ServerRemoveBan => { + GameEvent::ServerRemoveBan(ServerRemoveBanEvent::read(stream, definition)?) + } + GameEventType::PlayerConnect => { + GameEvent::PlayerConnect(PlayerConnectEvent::read(stream, definition)?) + } + GameEventType::PlayerConnectClient => { + GameEvent::PlayerConnectClient(PlayerConnectClientEvent::read(stream, definition)?) + } + GameEventType::PlayerInfo => { + GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?) + } + GameEventType::PlayerDisconnect => { + GameEvent::PlayerDisconnect(PlayerDisconnectEvent::read(stream, definition)?) + } + GameEventType::PlayerActivate => { + GameEvent::PlayerActivate(PlayerActivateEvent::read(stream, definition)?) + } + GameEventType::PlayerSay => { + GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?) + } + GameEventType::ClientDisconnect => { + GameEvent::ClientDisconnect(ClientDisconnectEvent::read(stream, definition)?) + } + GameEventType::ClientBeginConnect => { + GameEvent::ClientBeginConnect(ClientBeginConnectEvent::read(stream, definition)?) + } + GameEventType::ClientConnected => { + GameEvent::ClientConnected(ClientConnectedEvent::read(stream, definition)?) + } + GameEventType::ClientFullConnect => { + GameEvent::ClientFullConnect(ClientFullConnectEvent::read(stream, definition)?) + } + GameEventType::HostQuit => { + GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?) + } + GameEventType::TeamInfo => { + GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?) + } + GameEventType::TeamScore => { + GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?) + } + GameEventType::TeamPlayBroadcastAudio => GameEvent::TeamPlayBroadcastAudio( + TeamPlayBroadcastAudioEvent::read(stream, definition)?, + ), + GameEventType::PlayerTeam => { + GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?) + } + GameEventType::PlayerClass => { + GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?) + } + GameEventType::PlayerDeath => { + GameEvent::PlayerDeath(Box::new(::read(stream, definition)?)) + } + GameEventType::PlayerHurt => { + GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?) + } + GameEventType::PlayerChat => { + GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?) + } + GameEventType::PlayerScore => { + GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?) + } + GameEventType::PlayerSpawn => { + GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?) + } + GameEventType::PlayerShoot => { + GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?) + } + GameEventType::PlayerUse => { + GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?) + } + GameEventType::PlayerChangeName => { + GameEvent::PlayerChangeName(PlayerChangeNameEvent::read(stream, definition)?) + } + GameEventType::PlayerHintMessage => { + GameEvent::PlayerHintMessage(PlayerHintMessageEvent::read(stream, definition)?) + } + GameEventType::BasePlayerTeleported => GameEvent::BasePlayerTeleported( + BasePlayerTeleportedEvent::read(stream, definition)?, + ), + GameEventType::GameInit => { + GameEvent::GameInit(GameInitEvent::read(stream, definition)?) + } + GameEventType::GameNewMap => { + GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?) + } + GameEventType::GameStart => { + GameEvent::GameStart(GameStartEvent::read(stream, definition)?) + } + GameEventType::GameEnd => GameEvent::GameEnd(GameEndEvent::read(stream, definition)?), + GameEventType::RoundStart => { + GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?) + } + GameEventType::RoundEnd => { + GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?) + } + GameEventType::GameMessage => { + GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?) + } + GameEventType::BreakBreakable => { + GameEvent::BreakBreakable(BreakBreakableEvent::read(stream, definition)?) + } + GameEventType::BreakProp => { + GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?) + } + GameEventType::EntityKilled => { + GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?) + } + GameEventType::BonusUpdated => { + GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?) + } + GameEventType::AchievementEvent => { + GameEvent::AchievementEvent(AchievementEventEvent::read(stream, definition)?) + } + GameEventType::AchievementIncrement => GameEvent::AchievementIncrement( + AchievementIncrementEvent::read(stream, definition)?, + ), + GameEventType::PhysgunPickup => { + GameEvent::PhysgunPickup(PhysgunPickupEvent::read(stream, definition)?) + } + GameEventType::FlareIgniteNpc => { + GameEvent::FlareIgniteNpc(FlareIgniteNpcEvent::read(stream, definition)?) + } + GameEventType::HelicopterGrenadePuntMiss => GameEvent::HelicopterGrenadePuntMiss( + HelicopterGrenadePuntMissEvent::read(stream, definition)?, + ), + GameEventType::UserDataDownloaded => { + GameEvent::UserDataDownloaded(UserDataDownloadedEvent::read(stream, definition)?) + } + GameEventType::RagdollDissolved => { + GameEvent::RagdollDissolved(RagdollDissolvedEvent::read(stream, definition)?) + } + GameEventType::HLTVChangedMode => { + GameEvent::HLTVChangedMode(HLTVChangedModeEvent::read(stream, definition)?) + } + GameEventType::HLTVChangedTarget => { + GameEvent::HLTVChangedTarget(HLTVChangedTargetEvent::read(stream, definition)?) + } + GameEventType::VoteEnded => { + GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?) + } + GameEventType::VoteStarted => { + GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?) + } + GameEventType::VoteChanged => { + GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?) + } + GameEventType::VotePassed => { + GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?) + } + GameEventType::VoteFailed => { + GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?) + } + GameEventType::VoteCast => { + GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?) + } + GameEventType::VoteOptions => { + GameEvent::VoteOptions(Box::new(::read(stream, definition)?)) + } + GameEventType::ReplaySaved => { + GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?) + } + GameEventType::EnteredPerformanceMode => GameEvent::EnteredPerformanceMode( + EnteredPerformanceModeEvent::read(stream, definition)?, + ), + GameEventType::BrowseReplays => { + GameEvent::BrowseReplays(BrowseReplaysEvent::read(stream, definition)?) + } + GameEventType::ReplayYoutubeStats => { + GameEvent::ReplayYoutubeStats(ReplayYoutubeStatsEvent::read(stream, definition)?) + } + GameEventType::InventoryUpdated => { + GameEvent::InventoryUpdated(InventoryUpdatedEvent::read(stream, definition)?) + } + GameEventType::CartUpdated => { + GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?) + } + GameEventType::StorePriceSheetUpdated => GameEvent::StorePriceSheetUpdated( + StorePriceSheetUpdatedEvent::read(stream, definition)?, + ), + GameEventType::EconInventoryConnected => GameEvent::EconInventoryConnected( + EconInventoryConnectedEvent::read(stream, definition)?, + ), + GameEventType::ItemSchemaInitialized => GameEvent::ItemSchemaInitialized( + ItemSchemaInitializedEvent::read(stream, definition)?, + ), + GameEventType::GcNewSession => { + GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?) + } + GameEventType::GcLostSession => { + GameEvent::GcLostSession(GcLostSessionEvent::read(stream, definition)?) + } + GameEventType::IntroFinish => { + GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?) + } + GameEventType::IntroNextCamera => { + GameEvent::IntroNextCamera(IntroNextCameraEvent::read(stream, definition)?) + } + GameEventType::PlayerChangeClass => { + GameEvent::PlayerChangeClass(PlayerChangeClassEvent::read(stream, definition)?) + } + GameEventType::TfMapTimeRemaining => { + GameEvent::TfMapTimeRemaining(TfMapTimeRemainingEvent::read(stream, definition)?) + } + GameEventType::TfGameOver => { + GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?) + } + GameEventType::CtfFlagCaptured => { + GameEvent::CtfFlagCaptured(CtfFlagCapturedEvent::read(stream, definition)?) + } + GameEventType::ControlPointInitialized => GameEvent::ControlPointInitialized( + ControlPointInitializedEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateImages => GameEvent::ControlPointUpdateImages( + ControlPointUpdateImagesEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateLayout => GameEvent::ControlPointUpdateLayout( + ControlPointUpdateLayoutEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateCapping => GameEvent::ControlPointUpdateCapping( + ControlPointUpdateCappingEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUpdateOwner => GameEvent::ControlPointUpdateOwner( + ControlPointUpdateOwnerEvent::read(stream, definition)?, + ), + GameEventType::ControlPointStartTouch => GameEvent::ControlPointStartTouch( + ControlPointStartTouchEvent::read(stream, definition)?, + ), + GameEventType::ControlPointEndTouch => GameEvent::ControlPointEndTouch( + ControlPointEndTouchEvent::read(stream, definition)?, + ), + GameEventType::ControlPointPulseElement => GameEvent::ControlPointPulseElement( + ControlPointPulseElementEvent::read(stream, definition)?, + ), + GameEventType::ControlPointFakeCapture => GameEvent::ControlPointFakeCapture( + ControlPointFakeCaptureEvent::read(stream, definition)?, + ), + GameEventType::ControlPointFakeCaptureMultiplier => { + GameEvent::ControlPointFakeCaptureMultiplier( + ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?, + ) + } + GameEventType::TeamPlayRoundSelected => GameEvent::TeamPlayRoundSelected( + TeamPlayRoundSelectedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayRoundStart => { + GameEvent::TeamPlayRoundStart(TeamPlayRoundStartEvent::read(stream, definition)?) + } + GameEventType::TeamPlayRoundActive => { + GameEvent::TeamPlayRoundActive(TeamPlayRoundActiveEvent::read(stream, definition)?) + } + GameEventType::TeamPlayWaitingBegins => GameEvent::TeamPlayWaitingBegins( + TeamPlayWaitingBeginsEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayWaitingEnds => { + GameEvent::TeamPlayWaitingEnds(TeamPlayWaitingEndsEvent::read(stream, definition)?) + } + GameEventType::TeamPlayWaitingAboutToEnd => GameEvent::TeamPlayWaitingAboutToEnd( + TeamPlayWaitingAboutToEndEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayRestartRound => GameEvent::TeamPlayRestartRound( + TeamPlayRestartRoundEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayReadyRestart => GameEvent::TeamPlayReadyRestart( + TeamPlayReadyRestartEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayRoundRestartSeconds => GameEvent::TeamPlayRoundRestartSeconds( + TeamPlayRoundRestartSecondsEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayTeamReady => { + GameEvent::TeamPlayTeamReady(TeamPlayTeamReadyEvent::read(stream, definition)?) + } + GameEventType::TeamPlayRoundWin => { + GameEvent::TeamPlayRoundWin(TeamPlayRoundWinEvent::read(stream, definition)?) + } + GameEventType::TeamPlayUpdateTimer => { + GameEvent::TeamPlayUpdateTimer(TeamPlayUpdateTimerEvent::read(stream, definition)?) + } + GameEventType::TeamPlayRoundStalemate => GameEvent::TeamPlayRoundStalemate( + TeamPlayRoundStalemateEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayOvertimeBegin => GameEvent::TeamPlayOvertimeBegin( + TeamPlayOvertimeBeginEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayOvertimeEnd => { + GameEvent::TeamPlayOvertimeEnd(TeamPlayOvertimeEndEvent::read(stream, definition)?) + } + GameEventType::TeamPlaySuddenDeathBegin => GameEvent::TeamPlaySuddenDeathBegin( + TeamPlaySuddenDeathBeginEvent::read(stream, definition)?, + ), + GameEventType::TeamPlaySuddenDeathEnd => GameEvent::TeamPlaySuddenDeathEnd( + TeamPlaySuddenDeathEndEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayGameOver => { + GameEvent::TeamPlayGameOver(TeamPlayGameOverEvent::read(stream, definition)?) + } + GameEventType::TeamPlayMapTimeRemaining => GameEvent::TeamPlayMapTimeRemaining( + TeamPlayMapTimeRemainingEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayTimerFlash => { + GameEvent::TeamPlayTimerFlash(TeamPlayTimerFlashEvent::read(stream, definition)?) + } + GameEventType::TeamPlayTimerTimeAdded => GameEvent::TeamPlayTimerTimeAdded( + TeamPlayTimerTimeAddedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayPointStartCapture => GameEvent::TeamPlayPointStartCapture( + TeamPlayPointStartCaptureEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayPointCaptured => GameEvent::TeamPlayPointCaptured( + TeamPlayPointCapturedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayPointLocked => { + GameEvent::TeamPlayPointLocked(TeamPlayPointLockedEvent::read(stream, definition)?) + } + GameEventType::TeamPlayPointUnlocked => GameEvent::TeamPlayPointUnlocked( + TeamPlayPointUnlockedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayCaptureBroken => GameEvent::TeamPlayCaptureBroken( + TeamPlayCaptureBrokenEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayCaptureBlocked => GameEvent::TeamPlayCaptureBlocked( + TeamPlayCaptureBlockedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayFlagEvent => { + GameEvent::TeamPlayFlagEvent(TeamPlayFlagEventEvent::read(stream, definition)?) + } + GameEventType::TeamPlayWinPanel => { + GameEvent::TeamPlayWinPanel(TeamPlayWinPanelEvent::read(stream, definition)?) + } + GameEventType::TeamPlayTeamBalancedPlayer => GameEvent::TeamPlayTeamBalancedPlayer( + TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?, + ), + GameEventType::TeamPlaySetupFinished => GameEvent::TeamPlaySetupFinished( + TeamPlaySetupFinishedEvent::read(stream, definition)?, + ), + GameEventType::TeamPlayAlert => { + GameEvent::TeamPlayAlert(TeamPlayAlertEvent::read(stream, definition)?) + } + GameEventType::TrainingComplete => { + GameEvent::TrainingComplete(TrainingCompleteEvent::read(stream, definition)?) + } + GameEventType::ShowFreezePanel => { + GameEvent::ShowFreezePanel(ShowFreezePanelEvent::read(stream, definition)?) + } + GameEventType::HideFreezePanel => { + GameEvent::HideFreezePanel(HideFreezePanelEvent::read(stream, definition)?) + } + GameEventType::FreezeCamStarted => { + GameEvent::FreezeCamStarted(FreezeCamStartedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerChangeTeam => GameEvent::LocalPlayerChangeTeam( + LocalPlayerChangeTeamEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerScoreChanged => GameEvent::LocalPlayerScoreChanged( + LocalPlayerScoreChangedEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerChangeClass => GameEvent::LocalPlayerChangeClass( + LocalPlayerChangeClassEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerRespawn => { + GameEvent::LocalPlayerRespawn(LocalPlayerRespawnEvent::read(stream, definition)?) + } + GameEventType::BuildingInfoChanged => { + GameEvent::BuildingInfoChanged(BuildingInfoChangedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerChangeDisguise => GameEvent::LocalPlayerChangeDisguise( + LocalPlayerChangeDisguiseEvent::read(stream, definition)?, + ), + GameEventType::PlayerAccountChanged => GameEvent::PlayerAccountChanged( + PlayerAccountChangedEvent::read(stream, definition)?, + ), + GameEventType::SpyPdaReset => { + GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?) + } + GameEventType::FlagStatusUpdate => { + GameEvent::FlagStatusUpdate(FlagStatusUpdateEvent::read(stream, definition)?) + } + GameEventType::PlayerStatsUpdated => { + GameEvent::PlayerStatsUpdated(PlayerStatsUpdatedEvent::read(stream, definition)?) + } + GameEventType::PlayingCommentary => { + GameEvent::PlayingCommentary(PlayingCommentaryEvent::read(stream, definition)?) + } + GameEventType::PlayerChargeDeployed => GameEvent::PlayerChargeDeployed( + PlayerChargeDeployedEvent::read(stream, definition)?, + ), + GameEventType::PlayerBuiltObject => { + GameEvent::PlayerBuiltObject(PlayerBuiltObjectEvent::read(stream, definition)?) + } + GameEventType::PlayerUpgradedObject => GameEvent::PlayerUpgradedObject( + PlayerUpgradedObjectEvent::read(stream, definition)?, + ), + GameEventType::PlayerCarryObject => { + GameEvent::PlayerCarryObject(PlayerCarryObjectEvent::read(stream, definition)?) + } + GameEventType::PlayerDropObject => { + GameEvent::PlayerDropObject(PlayerDropObjectEvent::read(stream, definition)?) + } + GameEventType::ObjectRemoved => { + GameEvent::ObjectRemoved(ObjectRemovedEvent::read(stream, definition)?) + } + GameEventType::ObjectDestroyed => { + GameEvent::ObjectDestroyed(ObjectDestroyedEvent::read(stream, definition)?) + } + GameEventType::ObjectDetonated => { + GameEvent::ObjectDetonated(ObjectDetonatedEvent::read(stream, definition)?) + } + GameEventType::AchievementEarned => { + GameEvent::AchievementEarned(AchievementEarnedEvent::read(stream, definition)?) + } + GameEventType::SpecTargetUpdated => { + GameEvent::SpecTargetUpdated(SpecTargetUpdatedEvent::read(stream, definition)?) + } + GameEventType::TournamentStateUpdate => GameEvent::TournamentStateUpdate( + TournamentStateUpdateEvent::read(stream, definition)?, + ), + GameEventType::TournamentEnableCountdown => GameEvent::TournamentEnableCountdown( + TournamentEnableCountdownEvent::read(stream, definition)?, + ), + GameEventType::PlayerCalledForMedic => GameEvent::PlayerCalledForMedic( + PlayerCalledForMedicEvent::read(stream, definition)?, + ), + GameEventType::PlayerAskedForBall => { + GameEvent::PlayerAskedForBall(PlayerAskedForBallEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerBecameObserver => GameEvent::LocalPlayerBecameObserver( + LocalPlayerBecameObserverEvent::read(stream, definition)?, + ), + GameEventType::PlayerIgnitedInv => { + GameEvent::PlayerIgnitedInv(PlayerIgnitedInvEvent::read(stream, definition)?) + } + GameEventType::PlayerIgnited => { + GameEvent::PlayerIgnited(PlayerIgnitedEvent::read(stream, definition)?) + } + GameEventType::PlayerExtinguished => { + GameEvent::PlayerExtinguished(PlayerExtinguishedEvent::read(stream, definition)?) + } + GameEventType::PlayerTeleported => { + GameEvent::PlayerTeleported(PlayerTeleportedEvent::read(stream, definition)?) + } + GameEventType::PlayerHealedMedicCall => GameEvent::PlayerHealedMedicCall( + PlayerHealedMedicCallEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerChargeReady => GameEvent::LocalPlayerChargeReady( + LocalPlayerChargeReadyEvent::read(stream, definition)?, + ), + GameEventType::LocalPlayerWindDown => { + GameEvent::LocalPlayerWindDown(LocalPlayerWindDownEvent::read(stream, definition)?) + } + GameEventType::PlayerInvulned => { + GameEvent::PlayerInvulned(PlayerInvulnedEvent::read(stream, definition)?) + } + GameEventType::EscortSpeed => { + GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?) + } + GameEventType::EscortProgress => { + GameEvent::EscortProgress(EscortProgressEvent::read(stream, definition)?) + } + GameEventType::EscortRecede => { + GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?) + } + GameEventType::GameUIActivated => { + GameEvent::GameUIActivated(GameUIActivatedEvent::read(stream, definition)?) + } + GameEventType::GameUIHidden => { + GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?) + } + GameEventType::PlayerEscortScore => { + GameEvent::PlayerEscortScore(PlayerEscortScoreEvent::read(stream, definition)?) + } + GameEventType::PlayerHealOnHit => { + GameEvent::PlayerHealOnHit(PlayerHealOnHitEvent::read(stream, definition)?) + } + GameEventType::PlayerStealSandvich => { + GameEvent::PlayerStealSandvich(PlayerStealSandvichEvent::read(stream, definition)?) + } + GameEventType::ShowClassLayout => { + GameEvent::ShowClassLayout(ShowClassLayoutEvent::read(stream, definition)?) + } + GameEventType::ShowVsPanel => { + GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?) + } + GameEventType::PlayerDamaged => { + GameEvent::PlayerDamaged(PlayerDamagedEvent::read(stream, definition)?) + } + GameEventType::ArenaPlayerNotification => GameEvent::ArenaPlayerNotification( + ArenaPlayerNotificationEvent::read(stream, definition)?, + ), + GameEventType::ArenaMatchMaxStreak => { + GameEvent::ArenaMatchMaxStreak(ArenaMatchMaxStreakEvent::read(stream, definition)?) + } + GameEventType::ArenaRoundStart => { + GameEvent::ArenaRoundStart(ArenaRoundStartEvent::read(stream, definition)?) + } + GameEventType::ArenaWinPanel => { + GameEvent::ArenaWinPanel(ArenaWinPanelEvent::read(stream, definition)?) + } + GameEventType::PveWinPanel => { + GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?) + } + GameEventType::AirDash => GameEvent::AirDash(AirDashEvent::read(stream, definition)?), + GameEventType::Landed => GameEvent::Landed(LandedEvent::read(stream, definition)?), + GameEventType::PlayerDamageDodged => { + GameEvent::PlayerDamageDodged(PlayerDamageDodgedEvent::read(stream, definition)?) + } + GameEventType::PlayerStunned => { + GameEvent::PlayerStunned(PlayerStunnedEvent::read(stream, definition)?) + } + GameEventType::ScoutGrandSlam => { + GameEvent::ScoutGrandSlam(ScoutGrandSlamEvent::read(stream, definition)?) + } + GameEventType::ScoutSlamdollLanded => { + GameEvent::ScoutSlamdollLanded(ScoutSlamdollLandedEvent::read(stream, definition)?) + } + GameEventType::ArrowImpact => { + GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?) + } + GameEventType::PlayerJarated => { + GameEvent::PlayerJarated(PlayerJaratedEvent::read(stream, definition)?) + } + GameEventType::PlayerJaratedFade => { + GameEvent::PlayerJaratedFade(PlayerJaratedFadeEvent::read(stream, definition)?) + } + GameEventType::PlayerShieldBlocked => { + GameEvent::PlayerShieldBlocked(PlayerShieldBlockedEvent::read(stream, definition)?) + } + GameEventType::PlayerPinned => { + GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?) + } + GameEventType::PlayerHealedByMedic => { + GameEvent::PlayerHealedByMedic(PlayerHealedByMedicEvent::read(stream, definition)?) + } + GameEventType::PlayerSappedObject => { + GameEvent::PlayerSappedObject(PlayerSappedObjectEvent::read(stream, definition)?) + } + GameEventType::ItemFound => { + GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?) + } + GameEventType::ShowAnnotation => { + GameEvent::ShowAnnotation(ShowAnnotationEvent::read(stream, definition)?) + } + GameEventType::HideAnnotation => { + GameEvent::HideAnnotation(HideAnnotationEvent::read(stream, definition)?) + } + GameEventType::PostInventoryApplication => GameEvent::PostInventoryApplication( + PostInventoryApplicationEvent::read(stream, definition)?, + ), + GameEventType::ControlPointUnlockUpdated => GameEvent::ControlPointUnlockUpdated( + ControlPointUnlockUpdatedEvent::read(stream, definition)?, + ), + GameEventType::DeployBuffBanner => { + GameEvent::DeployBuffBanner(DeployBuffBannerEvent::read(stream, definition)?) + } + GameEventType::PlayerBuff => { + GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?) + } + GameEventType::MedicDeath => { + GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?) + } + GameEventType::OvertimeNag => { + GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?) + } + GameEventType::TeamsChanged => { + GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?) + } + GameEventType::HalloweenPumpkinGrab => GameEvent::HalloweenPumpkinGrab( + HalloweenPumpkinGrabEvent::read(stream, definition)?, + ), + GameEventType::RocketJump => { + GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?) + } + GameEventType::RocketJumpLanded => { + GameEvent::RocketJumpLanded(RocketJumpLandedEvent::read(stream, definition)?) + } + GameEventType::StickyJump => { + GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?) + } + GameEventType::StickyJumpLanded => { + GameEvent::StickyJumpLanded(StickyJumpLandedEvent::read(stream, definition)?) + } + GameEventType::RocketPackLaunch => { + GameEvent::RocketPackLaunch(RocketPackLaunchEvent::read(stream, definition)?) + } + GameEventType::RocketPackLanded => { + GameEvent::RocketPackLanded(RocketPackLandedEvent::read(stream, definition)?) + } + GameEventType::MedicDefended => { + GameEvent::MedicDefended(MedicDefendedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerHealed => { + GameEvent::LocalPlayerHealed(LocalPlayerHealedEvent::read(stream, definition)?) + } + GameEventType::PlayerDestroyedPipeBomb => GameEvent::PlayerDestroyedPipeBomb( + PlayerDestroyedPipeBombEvent::read(stream, definition)?, + ), + GameEventType::ObjectDeflected => { + GameEvent::ObjectDeflected(ObjectDeflectedEvent::read(stream, definition)?) + } + GameEventType::PlayerMvp => { + GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?) + } + GameEventType::RaidSpawnMob => { + GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?) + } + GameEventType::RaidSpawnSquad => { + GameEvent::RaidSpawnSquad(RaidSpawnSquadEvent::read(stream, definition)?) + } + GameEventType::NavBlocked => { + GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?) + } + GameEventType::PathTrackPassed => { + GameEvent::PathTrackPassed(PathTrackPassedEvent::read(stream, definition)?) + } + GameEventType::NumCappersChanged => { + GameEvent::NumCappersChanged(NumCappersChangedEvent::read(stream, definition)?) + } + GameEventType::PlayerRegenerate => { + GameEvent::PlayerRegenerate(PlayerRegenerateEvent::read(stream, definition)?) + } + GameEventType::UpdateStatusItem => { + GameEvent::UpdateStatusItem(UpdateStatusItemEvent::read(stream, definition)?) + } + GameEventType::StatsResetRound => { + GameEvent::StatsResetRound(StatsResetRoundEvent::read(stream, definition)?) + } + GameEventType::ScoreStatsAccumulatedUpdate => GameEvent::ScoreStatsAccumulatedUpdate( + ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?, + ), + GameEventType::ScoreStatsAccumulatedReset => GameEvent::ScoreStatsAccumulatedReset( + ScoreStatsAccumulatedResetEvent::read(stream, definition)?, + ), + GameEventType::AchievementEarnedLocal => GameEvent::AchievementEarnedLocal( + AchievementEarnedLocalEvent::read(stream, definition)?, + ), + GameEventType::PlayerHealed => { + GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?) + } + GameEventType::BuildingHealed => { + GameEvent::BuildingHealed(BuildingHealedEvent::read(stream, definition)?) + } + GameEventType::ItemPickup => { + GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?) + } + GameEventType::DuelStatus => { + GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?) + } + GameEventType::FishNotice => { + GameEvent::FishNotice(Box::new(::read(stream, definition)?)) + } + GameEventType::FishNoticeArm => { + GameEvent::FishNoticeArm(Box::new(::read(stream, definition)?)) + } + GameEventType::SlapNotice => { + GameEvent::SlapNotice(Box::new(::read(stream, definition)?)) + } + GameEventType::ThrowableHit => { + GameEvent::ThrowableHit(Box::new(::read(stream, definition)?)) + } + GameEventType::PumpkinLordSummoned => { + GameEvent::PumpkinLordSummoned(PumpkinLordSummonedEvent::read(stream, definition)?) + } + GameEventType::PumpkinLordKilled => { + GameEvent::PumpkinLordKilled(PumpkinLordKilledEvent::read(stream, definition)?) + } + GameEventType::MerasmusSummoned => { + GameEvent::MerasmusSummoned(MerasmusSummonedEvent::read(stream, definition)?) + } + GameEventType::MerasmusKilled => { + GameEvent::MerasmusKilled(MerasmusKilledEvent::read(stream, definition)?) + } + GameEventType::MerasmusEscapeWarning => GameEvent::MerasmusEscapeWarning( + MerasmusEscapeWarningEvent::read(stream, definition)?, + ), + GameEventType::MerasmusEscaped => { + GameEvent::MerasmusEscaped(MerasmusEscapedEvent::read(stream, definition)?) + } + GameEventType::EyeballBossSummoned => { + GameEvent::EyeballBossSummoned(EyeballBossSummonedEvent::read(stream, definition)?) + } + GameEventType::EyeballBossStunned => { + GameEvent::EyeballBossStunned(EyeballBossStunnedEvent::read(stream, definition)?) + } + GameEventType::EyeballBossKilled => { + GameEvent::EyeballBossKilled(EyeballBossKilledEvent::read(stream, definition)?) + } + GameEventType::EyeballBossKiller => { + GameEvent::EyeballBossKiller(EyeballBossKillerEvent::read(stream, definition)?) + } + GameEventType::EyeballBossEscapeImminent => GameEvent::EyeballBossEscapeImminent( + EyeballBossEscapeImminentEvent::read(stream, definition)?, + ), + GameEventType::EyeballBossEscaped => { + GameEvent::EyeballBossEscaped(EyeballBossEscapedEvent::read(stream, definition)?) + } + GameEventType::NpcHurt => GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?), + GameEventType::ControlPointTimerUpdated => GameEvent::ControlPointTimerUpdated( + ControlPointTimerUpdatedEvent::read(stream, definition)?, + ), + GameEventType::PlayerHighFiveStart => { + GameEvent::PlayerHighFiveStart(PlayerHighFiveStartEvent::read(stream, definition)?) + } + GameEventType::PlayerHighFiveCancel => GameEvent::PlayerHighFiveCancel( + PlayerHighFiveCancelEvent::read(stream, definition)?, + ), + GameEventType::PlayerHighFiveSuccess => GameEvent::PlayerHighFiveSuccess( + PlayerHighFiveSuccessEvent::read(stream, definition)?, + ), + GameEventType::PlayerBonusPoints => { + GameEvent::PlayerBonusPoints(PlayerBonusPointsEvent::read(stream, definition)?) + } + GameEventType::PlayerUpgraded => { + GameEvent::PlayerUpgraded(PlayerUpgradedEvent::read(stream, definition)?) + } + GameEventType::PlayerBuyback => { + GameEvent::PlayerBuyback(PlayerBuybackEvent::read(stream, definition)?) + } + GameEventType::PlayerUsedPowerUpBottle => GameEvent::PlayerUsedPowerUpBottle( + PlayerUsedPowerUpBottleEvent::read(stream, definition)?, + ), + GameEventType::ChristmasGiftGrab => { + GameEvent::ChristmasGiftGrab(ChristmasGiftGrabEvent::read(stream, definition)?) + } + GameEventType::PlayerKilledAchievementZone => GameEvent::PlayerKilledAchievementZone( + PlayerKilledAchievementZoneEvent::read(stream, definition)?, + ), + GameEventType::PartyUpdated => { + GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?) + } + GameEventType::PartyPrefChanged => { + GameEvent::PartyPrefChanged(PartyPrefChangedEvent::read(stream, definition)?) + } + GameEventType::PartyCriteriaChanged => GameEvent::PartyCriteriaChanged( + PartyCriteriaChangedEvent::read(stream, definition)?, + ), + GameEventType::PartyInvitesChanged => { + GameEvent::PartyInvitesChanged(PartyInvitesChangedEvent::read(stream, definition)?) + } + GameEventType::PartyQueueStateChanged => GameEvent::PartyQueueStateChanged( + PartyQueueStateChangedEvent::read(stream, definition)?, + ), + GameEventType::PartyChat => { + GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?) + } + GameEventType::PartyMemberJoin => { + GameEvent::PartyMemberJoin(PartyMemberJoinEvent::read(stream, definition)?) + } + GameEventType::PartyMemberLeave => { + GameEvent::PartyMemberLeave(PartyMemberLeaveEvent::read(stream, definition)?) + } + GameEventType::MatchInvitesUpdated => { + GameEvent::MatchInvitesUpdated(MatchInvitesUpdatedEvent::read(stream, definition)?) + } + GameEventType::LobbyUpdated => { + GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?) + } + GameEventType::MvmMissionUpdate => { + GameEvent::MvmMissionUpdate(MvmMissionUpdateEvent::read(stream, definition)?) + } + GameEventType::RecalculateHolidays => { + GameEvent::RecalculateHolidays(RecalculateHolidaysEvent::read(stream, definition)?) + } + GameEventType::PlayerCurrencyChanged => GameEvent::PlayerCurrencyChanged( + PlayerCurrencyChangedEvent::read(stream, definition)?, + ), + GameEventType::DoomsdayRocketOpen => { + GameEvent::DoomsdayRocketOpen(DoomsdayRocketOpenEvent::read(stream, definition)?) + } + GameEventType::RemoveNemesisRelationships => GameEvent::RemoveNemesisRelationships( + RemoveNemesisRelationshipsEvent::read(stream, definition)?, + ), + GameEventType::MvmCreditBonusWave => { + GameEvent::MvmCreditBonusWave(MvmCreditBonusWaveEvent::read(stream, definition)?) + } + GameEventType::MvmCreditBonusAll => { + GameEvent::MvmCreditBonusAll(MvmCreditBonusAllEvent::read(stream, definition)?) + } + GameEventType::MvmCreditBonusAllAdvanced => GameEvent::MvmCreditBonusAllAdvanced( + MvmCreditBonusAllAdvancedEvent::read(stream, definition)?, + ), + GameEventType::MvmQuickSentryUpgrade => GameEvent::MvmQuickSentryUpgrade( + MvmQuickSentryUpgradeEvent::read(stream, definition)?, + ), + GameEventType::MvmTankDestroyedByPlayers => GameEvent::MvmTankDestroyedByPlayers( + MvmTankDestroyedByPlayersEvent::read(stream, definition)?, + ), + GameEventType::MvmKillRobotDeliveringBomb => GameEvent::MvmKillRobotDeliveringBomb( + MvmKillRobotDeliveringBombEvent::read(stream, definition)?, + ), + GameEventType::MvmPickupCurrency => { + GameEvent::MvmPickupCurrency(MvmPickupCurrencyEvent::read(stream, definition)?) + } + GameEventType::MvmBombCarrierKilled => GameEvent::MvmBombCarrierKilled( + MvmBombCarrierKilledEvent::read(stream, definition)?, + ), + GameEventType::MvmSentryBusterDetonate => GameEvent::MvmSentryBusterDetonate( + MvmSentryBusterDetonateEvent::read(stream, definition)?, + ), + GameEventType::MvmScoutMarkedForDeath => GameEvent::MvmScoutMarkedForDeath( + MvmScoutMarkedForDeathEvent::read(stream, definition)?, + ), + GameEventType::MvmMedicPowerUpShared => GameEvent::MvmMedicPowerUpShared( + MvmMedicPowerUpSharedEvent::read(stream, definition)?, + ), + GameEventType::MvmBeginWave => { + GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?) + } + GameEventType::MvmWaveComplete => { + GameEvent::MvmWaveComplete(MvmWaveCompleteEvent::read(stream, definition)?) + } + GameEventType::MvmMissionComplete => { + GameEvent::MvmMissionComplete(MvmMissionCompleteEvent::read(stream, definition)?) + } + GameEventType::MvmBombResetByPlayer => GameEvent::MvmBombResetByPlayer( + MvmBombResetByPlayerEvent::read(stream, definition)?, + ), + GameEventType::MvmBombAlarmTriggered => GameEvent::MvmBombAlarmTriggered( + MvmBombAlarmTriggeredEvent::read(stream, definition)?, + ), + GameEventType::MvmBombDeployResetByPlayer => GameEvent::MvmBombDeployResetByPlayer( + MvmBombDeployResetByPlayerEvent::read(stream, definition)?, + ), + GameEventType::MvmWaveFailed => { + GameEvent::MvmWaveFailed(MvmWaveFailedEvent::read(stream, definition)?) + } + GameEventType::MvmResetStats => { + GameEvent::MvmResetStats(MvmResetStatsEvent::read(stream, definition)?) + } + GameEventType::DamageResisted => { + GameEvent::DamageResisted(DamageResistedEvent::read(stream, definition)?) + } + GameEventType::RevivePlayerNotify => { + GameEvent::RevivePlayerNotify(RevivePlayerNotifyEvent::read(stream, definition)?) + } + GameEventType::RevivePlayerStopped => { + GameEvent::RevivePlayerStopped(RevivePlayerStoppedEvent::read(stream, definition)?) + } + GameEventType::RevivePlayerComplete => GameEvent::RevivePlayerComplete( + RevivePlayerCompleteEvent::read(stream, definition)?, + ), + GameEventType::PlayerTurnedToGhost => { + GameEvent::PlayerTurnedToGhost(PlayerTurnedToGhostEvent::read(stream, definition)?) + } + GameEventType::MedigunShieldBlockedDamage => GameEvent::MedigunShieldBlockedDamage( + MedigunShieldBlockedDamageEvent::read(stream, definition)?, + ), + GameEventType::MvmAdvWaveCompleteNoGates => GameEvent::MvmAdvWaveCompleteNoGates( + MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?, + ), + GameEventType::MvmSniperHeadshotCurrency => GameEvent::MvmSniperHeadshotCurrency( + MvmSniperHeadshotCurrencyEvent::read(stream, definition)?, + ), + GameEventType::MvmMannhattanPit => { + GameEvent::MvmMannhattanPit(MvmMannhattanPitEvent::read(stream, definition)?) + } + GameEventType::FlagCarriedInDetectionZone => GameEvent::FlagCarriedInDetectionZone( + FlagCarriedInDetectionZoneEvent::read(stream, definition)?, + ), + GameEventType::MvmAdvWaveKilledStunRadio => GameEvent::MvmAdvWaveKilledStunRadio( + MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?, + ), + GameEventType::PlayerDirectHitStun => { + GameEvent::PlayerDirectHitStun(PlayerDirectHitStunEvent::read(stream, definition)?) + } + GameEventType::MvmSentryBusterKilled => GameEvent::MvmSentryBusterKilled( + MvmSentryBusterKilledEvent::read(stream, definition)?, + ), + GameEventType::UpgradesFileChanged => { + GameEvent::UpgradesFileChanged(UpgradesFileChangedEvent::read(stream, definition)?) + } + GameEventType::RdTeamPointsChanged => { + GameEvent::RdTeamPointsChanged(RdTeamPointsChangedEvent::read(stream, definition)?) + } + GameEventType::RdRulesStateChanged => { + GameEvent::RdRulesStateChanged(RdRulesStateChangedEvent::read(stream, definition)?) + } + GameEventType::RdRobotKilled => { + GameEvent::RdRobotKilled(RdRobotKilledEvent::read(stream, definition)?) + } + GameEventType::RdRobotImpact => { + GameEvent::RdRobotImpact(RdRobotImpactEvent::read(stream, definition)?) + } + GameEventType::TeamPlayPreRoundTimeLeft => GameEvent::TeamPlayPreRoundTimeLeft( + TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?, + ), + GameEventType::ParachuteDeploy => { + GameEvent::ParachuteDeploy(ParachuteDeployEvent::read(stream, definition)?) + } + GameEventType::ParachuteHolster => { + GameEvent::ParachuteHolster(ParachuteHolsterEvent::read(stream, definition)?) + } + GameEventType::KillRefillsMeter => { + GameEvent::KillRefillsMeter(KillRefillsMeterEvent::read(stream, definition)?) + } + GameEventType::RpsTauntEvent => { + GameEvent::RpsTauntEvent(RpsTauntEventEvent::read(stream, definition)?) + } + GameEventType::CongaKill => { + GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?) + } + GameEventType::PlayerInitialSpawn => { + GameEvent::PlayerInitialSpawn(PlayerInitialSpawnEvent::read(stream, definition)?) + } + GameEventType::CompetitiveVictory => { + GameEvent::CompetitiveVictory(CompetitiveVictoryEvent::read(stream, definition)?) + } + GameEventType::CompetitiveStatsUpdate => GameEvent::CompetitiveStatsUpdate( + CompetitiveStatsUpdateEvent::read(stream, definition)?, + ), + GameEventType::MiniGameWin => { + GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?) + } + GameEventType::SentryOnGoActive => { + GameEvent::SentryOnGoActive(SentryOnGoActiveEvent::read(stream, definition)?) + } + GameEventType::DuckXpLevelUp => { + GameEvent::DuckXpLevelUp(DuckXpLevelUpEvent::read(stream, definition)?) + } + GameEventType::QuestLogOpened => { + GameEvent::QuestLogOpened(QuestLogOpenedEvent::read(stream, definition)?) + } + GameEventType::SchemaUpdated => { + GameEvent::SchemaUpdated(SchemaUpdatedEvent::read(stream, definition)?) + } + GameEventType::LocalPlayerPickupWeapon => GameEvent::LocalPlayerPickupWeapon( + LocalPlayerPickupWeaponEvent::read(stream, definition)?, + ), + GameEventType::RdPlayerScorePoints => { + GameEvent::RdPlayerScorePoints(RdPlayerScorePointsEvent::read(stream, definition)?) + } + GameEventType::DemomanDetStickies => { + GameEvent::DemomanDetStickies(DemomanDetStickiesEvent::read(stream, definition)?) + } + GameEventType::QuestObjectiveCompleted => GameEvent::QuestObjectiveCompleted( + QuestObjectiveCompletedEvent::read(stream, definition)?, + ), + GameEventType::PlayerScoreChanged => { + GameEvent::PlayerScoreChanged(PlayerScoreChangedEvent::read(stream, definition)?) + } + GameEventType::KilledCappingPlayer => { + GameEvent::KilledCappingPlayer(KilledCappingPlayerEvent::read(stream, definition)?) + } + GameEventType::EnvironmentalDeath => { + GameEvent::EnvironmentalDeath(EnvironmentalDeathEvent::read(stream, definition)?) + } + GameEventType::ProjectileDirectHit => { + GameEvent::ProjectileDirectHit(ProjectileDirectHitEvent::read(stream, definition)?) + } + GameEventType::PassGet => GameEvent::PassGet(PassGetEvent::read(stream, definition)?), + GameEventType::PassScore => { + GameEvent::PassScore(PassScoreEvent::read(stream, definition)?) + } + GameEventType::PassFree => { + GameEvent::PassFree(PassFreeEvent::read(stream, definition)?) + } + GameEventType::PassPassCaught => { + GameEvent::PassPassCaught(PassPassCaughtEvent::read(stream, definition)?) + } + GameEventType::PassBallStolen => { + GameEvent::PassBallStolen(PassBallStolenEvent::read(stream, definition)?) + } + GameEventType::PassBallBlocked => { + GameEvent::PassBallBlocked(PassBallBlockedEvent::read(stream, definition)?) + } + GameEventType::DamagePrevented => { + GameEvent::DamagePrevented(DamagePreventedEvent::read(stream, definition)?) + } + GameEventType::HalloweenBossKilled => { + GameEvent::HalloweenBossKilled(HalloweenBossKilledEvent::read(stream, definition)?) + } + GameEventType::EscapedLootIsland => { + GameEvent::EscapedLootIsland(EscapedLootIslandEvent::read(stream, definition)?) + } + GameEventType::TaggedPlayerAsIt => { + GameEvent::TaggedPlayerAsIt(TaggedPlayerAsItEvent::read(stream, definition)?) + } + GameEventType::MerasmusStunned => { + GameEvent::MerasmusStunned(MerasmusStunnedEvent::read(stream, definition)?) + } + GameEventType::MerasmusPropFound => { + GameEvent::MerasmusPropFound(MerasmusPropFoundEvent::read(stream, definition)?) + } + GameEventType::HalloweenSkeletonKilled => GameEvent::HalloweenSkeletonKilled( + HalloweenSkeletonKilledEvent::read(stream, definition)?, + ), + GameEventType::SkeletonKilledQuest => { + GameEvent::SkeletonKilledQuest(SkeletonKilledQuestEvent::read(stream, definition)?) + } + GameEventType::SkeletonKingKilledQuest => GameEvent::SkeletonKingKilledQuest( + SkeletonKingKilledQuestEvent::read(stream, definition)?, + ), + GameEventType::EscapeHell => { + GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?) + } + GameEventType::CrossSpectralBridge => { + GameEvent::CrossSpectralBridge(CrossSpectralBridgeEvent::read(stream, definition)?) + } + GameEventType::MiniGameWon => { + GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?) + } + GameEventType::RespawnGhost => { + GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?) + } + GameEventType::KillInHell => { + GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?) + } + GameEventType::HalloweenDuckCollected => GameEvent::HalloweenDuckCollected( + HalloweenDuckCollectedEvent::read(stream, definition)?, + ), + GameEventType::SpecialScore => { + GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?) + } + GameEventType::TeamLeaderKilled => { + GameEvent::TeamLeaderKilled(TeamLeaderKilledEvent::read(stream, definition)?) + } + GameEventType::HalloweenSoulCollected => GameEvent::HalloweenSoulCollected( + HalloweenSoulCollectedEvent::read(stream, definition)?, + ), + GameEventType::RecalculateTruce => { + GameEvent::RecalculateTruce(RecalculateTruceEvent::read(stream, definition)?) + } + GameEventType::DeadRingerCheatDeath => GameEvent::DeadRingerCheatDeath( + DeadRingerCheatDeathEvent::read(stream, definition)?, + ), + GameEventType::CrossbowHeal => { + GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?) + } + GameEventType::DamageMitigated => { + GameEvent::DamageMitigated(DamageMitigatedEvent::read(stream, definition)?) + } + GameEventType::PayloadPushed => { + GameEvent::PayloadPushed(PayloadPushedEvent::read(stream, definition)?) + } + GameEventType::PlayerAbandonedMatch => GameEvent::PlayerAbandonedMatch( + PlayerAbandonedMatchEvent::read(stream, definition)?, + ), + GameEventType::ClDrawline => { + GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?) + } + GameEventType::RestartTimerTime => { + GameEvent::RestartTimerTime(RestartTimerTimeEvent::read(stream, definition)?) + } + GameEventType::WinLimitChanged => { + GameEvent::WinLimitChanged(WinLimitChangedEvent::read(stream, definition)?) + } + GameEventType::WinPanelShowScores => { + GameEvent::WinPanelShowScores(WinPanelShowScoresEvent::read(stream, definition)?) + } + GameEventType::TopStreamsRequestFinished => GameEvent::TopStreamsRequestFinished( + TopStreamsRequestFinishedEvent::read(stream, definition)?, + ), + GameEventType::CompetitiveStateChanged => GameEvent::CompetitiveStateChanged( + CompetitiveStateChangedEvent::read(stream, definition)?, + ), + GameEventType::GlobalWarDataUpdated => GameEvent::GlobalWarDataUpdated( + GlobalWarDataUpdatedEvent::read(stream, definition)?, + ), + GameEventType::StopWatchChanged => { + GameEvent::StopWatchChanged(StopWatchChangedEvent::read(stream, definition)?) + } + GameEventType::DsStop => GameEvent::DsStop(DsStopEvent::read(stream, definition)?), + GameEventType::DsScreenshot => { + GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?) + } + GameEventType::ShowMatchSummary => { + GameEvent::ShowMatchSummary(ShowMatchSummaryEvent::read(stream, definition)?) + } + GameEventType::ExperienceChanged => { + GameEvent::ExperienceChanged(ExperienceChangedEvent::read(stream, definition)?) + } + GameEventType::BeginXpLerp => { + GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?) + } + GameEventType::MatchmakerStatsUpdated => GameEvent::MatchmakerStatsUpdated( + MatchmakerStatsUpdatedEvent::read(stream, definition)?, + ), + GameEventType::RematchVotePeriodOver => GameEvent::RematchVotePeriodOver( + RematchVotePeriodOverEvent::read(stream, definition)?, + ), + GameEventType::RematchFailedToCreate => GameEvent::RematchFailedToCreate( + RematchFailedToCreateEvent::read(stream, definition)?, + ), + GameEventType::PlayerRematchChange => { + GameEvent::PlayerRematchChange(PlayerRematchChangeEvent::read(stream, definition)?) + } + GameEventType::PingUpdated => { + GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?) + } + GameEventType::MMStatsUpdated => { + GameEvent::MMStatsUpdated(MMStatsUpdatedEvent::read(stream, definition)?) + } + GameEventType::PlayerNextMapVoteChange => GameEvent::PlayerNextMapVoteChange( + PlayerNextMapVoteChangeEvent::read(stream, definition)?, + ), + GameEventType::VoteMapsChanged => { + GameEvent::VoteMapsChanged(VoteMapsChangedEvent::read(stream, definition)?) + } + GameEventType::ProtoDefChanged => { + GameEvent::ProtoDefChanged(ProtoDefChangedEvent::read(stream, definition)?) + } + GameEventType::PlayerDomination => { + GameEvent::PlayerDomination(PlayerDominationEvent::read(stream, definition)?) + } + GameEventType::PlayerRocketPackPushed => GameEvent::PlayerRocketPackPushed( + PlayerRocketPackPushedEvent::read(stream, definition)?, + ), + GameEventType::QuestRequest => { + GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?) + } + GameEventType::QuestResponse => { + GameEvent::QuestResponse(QuestResponseEvent::read(stream, definition)?) + } + GameEventType::QuestProgress => { + GameEvent::QuestProgress(QuestProgressEvent::read(stream, definition)?) + } + GameEventType::ProjectileRemoved => { + GameEvent::ProjectileRemoved(ProjectileRemovedEvent::read(stream, definition)?) + } + GameEventType::QuestMapDataChanged => { + GameEvent::QuestMapDataChanged(QuestMapDataChangedEvent::read(stream, definition)?) + } + GameEventType::GasDousedPlayerIgnited => GameEvent::GasDousedPlayerIgnited( + GasDousedPlayerIgnitedEvent::read(stream, definition)?, + ), + GameEventType::QuestTurnInState => { + GameEvent::QuestTurnInState(QuestTurnInStateEvent::read(stream, definition)?) + } + GameEventType::ItemsAcknowledged => { + GameEvent::ItemsAcknowledged(ItemsAcknowledgedEvent::read(stream, definition)?) + } + GameEventType::CapperKilled => { + GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?) + } + GameEventType::MainMenuStabilized => { + GameEvent::MainMenuStabilized(MainMenuStabilizedEvent::read(stream, definition)?) + } + GameEventType::WorldStatusChanged => { + GameEvent::WorldStatusChanged(WorldStatusChangedEvent::read(stream, definition)?) + } + GameEventType::HLTVStatus => { + GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?) + } + GameEventType::HLTVCameraman => { + GameEvent::HLTVCameraman(HLTVCameramanEvent::read(stream, definition)?) + } + GameEventType::HLTVRankCamera => { + GameEvent::HLTVRankCamera(HLTVRankCameraEvent::read(stream, definition)?) + } + GameEventType::HLTVRankEntity => { + GameEvent::HLTVRankEntity(HLTVRankEntityEvent::read(stream, definition)?) + } + GameEventType::HLTVFixed => { + GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?) + } + GameEventType::HLTVChase => { + GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?) + } + GameEventType::HLTVMessage => { + GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?) + } + GameEventType::HLTVTitle => { + GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?) + } + GameEventType::HLTVChat => { + GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?) + } + GameEventType::ReplayStartRecord => { + GameEvent::ReplayStartRecord(ReplayStartRecordEvent::read(stream, definition)?) + } + GameEventType::ReplaySessionInfo => { + GameEvent::ReplaySessionInfo(ReplaySessionInfoEvent::read(stream, definition)?) + } + GameEventType::ReplayEndRecord => { + GameEvent::ReplayEndRecord(ReplayEndRecordEvent::read(stream, definition)?) + } + GameEventType::ReplayReplaysAvailable => GameEvent::ReplayReplaysAvailable( + ReplayReplaysAvailableEvent::read(stream, definition)?, + ), + GameEventType::ReplayServerError => { + GameEvent::ReplayServerError(ReplayServerErrorEvent::read(stream, definition)?) + } + GameEventType::Unknown(_) => { + GameEvent::Unknown(RawGameEvent::read(stream, definition)?) + } + }) + } + pub fn write( + &self, + stream: &mut BitWriteStream, + definition: &GameEventDefinition, + ) -> Result<()> { + match &self { + GameEvent::ServerSpawn(event) => event.write(stream, definition), + GameEvent::ServerChangeLevelFailed(event) => event.write(stream, definition), + GameEvent::ServerShutdown(event) => event.write(stream, definition), + GameEvent::ServerCvar(event) => event.write(stream, definition), + GameEvent::ServerMessage(event) => event.write(stream, definition), + GameEvent::ServerAddBan(event) => event.write(stream, definition), + GameEvent::ServerRemoveBan(event) => event.write(stream, definition), + GameEvent::PlayerConnect(event) => event.write(stream, definition), + GameEvent::PlayerConnectClient(event) => event.write(stream, definition), + GameEvent::PlayerInfo(event) => event.write(stream, definition), + GameEvent::PlayerDisconnect(event) => event.write(stream, definition), + GameEvent::PlayerActivate(event) => event.write(stream, definition), + GameEvent::PlayerSay(event) => event.write(stream, definition), + GameEvent::ClientDisconnect(event) => event.write(stream, definition), + GameEvent::ClientBeginConnect(event) => event.write(stream, definition), + GameEvent::ClientConnected(event) => event.write(stream, definition), + GameEvent::ClientFullConnect(event) => event.write(stream, definition), + GameEvent::HostQuit(event) => event.write(stream, definition), + GameEvent::TeamInfo(event) => event.write(stream, definition), + GameEvent::TeamScore(event) => event.write(stream, definition), + GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream, definition), + GameEvent::PlayerTeam(event) => event.write(stream, definition), + GameEvent::PlayerClass(event) => event.write(stream, definition), + GameEvent::PlayerDeath(event) => event.write(stream, definition), + GameEvent::PlayerHurt(event) => event.write(stream, definition), + GameEvent::PlayerChat(event) => event.write(stream, definition), + GameEvent::PlayerScore(event) => event.write(stream, definition), + GameEvent::PlayerSpawn(event) => event.write(stream, definition), + GameEvent::PlayerShoot(event) => event.write(stream, definition), + GameEvent::PlayerUse(event) => event.write(stream, definition), + GameEvent::PlayerChangeName(event) => event.write(stream, definition), + GameEvent::PlayerHintMessage(event) => event.write(stream, definition), + GameEvent::BasePlayerTeleported(event) => event.write(stream, definition), + GameEvent::GameInit(event) => event.write(stream, definition), + GameEvent::GameNewMap(event) => event.write(stream, definition), + GameEvent::GameStart(event) => event.write(stream, definition), + GameEvent::GameEnd(event) => event.write(stream, definition), + GameEvent::RoundStart(event) => event.write(stream, definition), GameEvent::RoundEnd(event) => event.write(stream, definition), GameEvent::GameMessage(event) => event.write(stream, definition), GameEvent::BreakBreakable(event) => event.write(stream, definition), @@ -22097,9 +21003,7 @@ impl GameEvent { GameEvent::AchievementIncrement(event) => event.write(stream, definition), GameEvent::PhysgunPickup(event) => event.write(stream, definition), GameEvent::FlareIgniteNpc(event) => event.write(stream, definition), - GameEvent::HelicopterGrenadePuntMiss(event) => { - event.write(stream, definition) - } + GameEvent::HelicopterGrenadePuntMiss(event) => event.write(stream, definition), GameEvent::UserDataDownloaded(event) => event.write(stream, definition), GameEvent::RagdollDissolved(event) => event.write(stream, definition), GameEvent::HLTVChangedMode(event) => event.write(stream, definition), @@ -22131,30 +21035,22 @@ impl GameEvent { GameEvent::ControlPointInitialized(event) => event.write(stream, definition), GameEvent::ControlPointUpdateImages(event) => event.write(stream, definition), GameEvent::ControlPointUpdateLayout(event) => event.write(stream, definition), - GameEvent::ControlPointUpdateCapping(event) => { - event.write(stream, definition) - } + GameEvent::ControlPointUpdateCapping(event) => event.write(stream, definition), GameEvent::ControlPointUpdateOwner(event) => event.write(stream, definition), GameEvent::ControlPointStartTouch(event) => event.write(stream, definition), GameEvent::ControlPointEndTouch(event) => event.write(stream, definition), GameEvent::ControlPointPulseElement(event) => event.write(stream, definition), GameEvent::ControlPointFakeCapture(event) => event.write(stream, definition), - GameEvent::ControlPointFakeCaptureMultiplier(event) => { - event.write(stream, definition) - } + GameEvent::ControlPointFakeCaptureMultiplier(event) => event.write(stream, definition), GameEvent::TeamPlayRoundSelected(event) => event.write(stream, definition), GameEvent::TeamPlayRoundStart(event) => event.write(stream, definition), GameEvent::TeamPlayRoundActive(event) => event.write(stream, definition), GameEvent::TeamPlayWaitingBegins(event) => event.write(stream, definition), GameEvent::TeamPlayWaitingEnds(event) => event.write(stream, definition), - GameEvent::TeamPlayWaitingAboutToEnd(event) => { - event.write(stream, definition) - } + GameEvent::TeamPlayWaitingAboutToEnd(event) => event.write(stream, definition), GameEvent::TeamPlayRestartRound(event) => event.write(stream, definition), GameEvent::TeamPlayReadyRestart(event) => event.write(stream, definition), - GameEvent::TeamPlayRoundRestartSeconds(event) => { - event.write(stream, definition) - } + GameEvent::TeamPlayRoundRestartSeconds(event) => event.write(stream, definition), GameEvent::TeamPlayTeamReady(event) => event.write(stream, definition), GameEvent::TeamPlayRoundWin(event) => event.write(stream, definition), GameEvent::TeamPlayUpdateTimer(event) => event.write(stream, definition), @@ -22167,9 +21063,7 @@ impl GameEvent { GameEvent::TeamPlayMapTimeRemaining(event) => event.write(stream, definition), GameEvent::TeamPlayTimerFlash(event) => event.write(stream, definition), GameEvent::TeamPlayTimerTimeAdded(event) => event.write(stream, definition), - GameEvent::TeamPlayPointStartCapture(event) => { - event.write(stream, definition) - } + GameEvent::TeamPlayPointStartCapture(event) => event.write(stream, definition), GameEvent::TeamPlayPointCaptured(event) => event.write(stream, definition), GameEvent::TeamPlayPointLocked(event) => event.write(stream, definition), GameEvent::TeamPlayPointUnlocked(event) => event.write(stream, definition), @@ -22177,9 +21071,7 @@ impl GameEvent { GameEvent::TeamPlayCaptureBlocked(event) => event.write(stream, definition), GameEvent::TeamPlayFlagEvent(event) => event.write(stream, definition), GameEvent::TeamPlayWinPanel(event) => event.write(stream, definition), - GameEvent::TeamPlayTeamBalancedPlayer(event) => { - event.write(stream, definition) - } + GameEvent::TeamPlayTeamBalancedPlayer(event) => event.write(stream, definition), GameEvent::TeamPlaySetupFinished(event) => event.write(stream, definition), GameEvent::TeamPlayAlert(event) => event.write(stream, definition), GameEvent::TrainingComplete(event) => event.write(stream, definition), @@ -22191,9 +21083,7 @@ impl GameEvent { GameEvent::LocalPlayerChangeClass(event) => event.write(stream, definition), GameEvent::LocalPlayerRespawn(event) => event.write(stream, definition), GameEvent::BuildingInfoChanged(event) => event.write(stream, definition), - GameEvent::LocalPlayerChangeDisguise(event) => { - event.write(stream, definition) - } + GameEvent::LocalPlayerChangeDisguise(event) => event.write(stream, definition), GameEvent::PlayerAccountChanged(event) => event.write(stream, definition), GameEvent::SpyPdaReset(event) => event.write(stream, definition), GameEvent::FlagStatusUpdate(event) => event.write(stream, definition), @@ -22210,14 +21100,10 @@ impl GameEvent { GameEvent::AchievementEarned(event) => event.write(stream, definition), GameEvent::SpecTargetUpdated(event) => event.write(stream, definition), GameEvent::TournamentStateUpdate(event) => event.write(stream, definition), - GameEvent::TournamentEnableCountdown(event) => { - event.write(stream, definition) - } + GameEvent::TournamentEnableCountdown(event) => event.write(stream, definition), GameEvent::PlayerCalledForMedic(event) => event.write(stream, definition), GameEvent::PlayerAskedForBall(event) => event.write(stream, definition), - GameEvent::LocalPlayerBecameObserver(event) => { - event.write(stream, definition) - } + GameEvent::LocalPlayerBecameObserver(event) => event.write(stream, definition), GameEvent::PlayerIgnitedInv(event) => event.write(stream, definition), GameEvent::PlayerIgnited(event) => event.write(stream, definition), GameEvent::PlayerExtinguished(event) => event.write(stream, definition), @@ -22259,9 +21145,7 @@ impl GameEvent { GameEvent::ShowAnnotation(event) => event.write(stream, definition), GameEvent::HideAnnotation(event) => event.write(stream, definition), GameEvent::PostInventoryApplication(event) => event.write(stream, definition), - GameEvent::ControlPointUnlockUpdated(event) => { - event.write(stream, definition) - } + GameEvent::ControlPointUnlockUpdated(event) => event.write(stream, definition), GameEvent::DeployBuffBanner(event) => event.write(stream, definition), GameEvent::PlayerBuff(event) => event.write(stream, definition), GameEvent::MedicDeath(event) => event.write(stream, definition), @@ -22287,12 +21171,8 @@ impl GameEvent { GameEvent::PlayerRegenerate(event) => event.write(stream, definition), GameEvent::UpdateStatusItem(event) => event.write(stream, definition), GameEvent::StatsResetRound(event) => event.write(stream, definition), - GameEvent::ScoreStatsAccumulatedUpdate(event) => { - event.write(stream, definition) - } - GameEvent::ScoreStatsAccumulatedReset(event) => { - event.write(stream, definition) - } + GameEvent::ScoreStatsAccumulatedUpdate(event) => event.write(stream, definition), + GameEvent::ScoreStatsAccumulatedReset(event) => event.write(stream, definition), GameEvent::AchievementEarnedLocal(event) => event.write(stream, definition), GameEvent::PlayerHealed(event) => event.write(stream, definition), GameEvent::BuildingHealed(event) => event.write(stream, definition), @@ -22312,9 +21192,7 @@ impl GameEvent { GameEvent::EyeballBossStunned(event) => event.write(stream, definition), GameEvent::EyeballBossKilled(event) => event.write(stream, definition), GameEvent::EyeballBossKiller(event) => event.write(stream, definition), - GameEvent::EyeballBossEscapeImminent(event) => { - event.write(stream, definition) - } + GameEvent::EyeballBossEscapeImminent(event) => event.write(stream, definition), GameEvent::EyeballBossEscaped(event) => event.write(stream, definition), GameEvent::NpcHurt(event) => event.write(stream, definition), GameEvent::ControlPointTimerUpdated(event) => event.write(stream, definition), @@ -22326,9 +21204,7 @@ impl GameEvent { GameEvent::PlayerBuyback(event) => event.write(stream, definition), GameEvent::PlayerUsedPowerUpBottle(event) => event.write(stream, definition), GameEvent::ChristmasGiftGrab(event) => event.write(stream, definition), - GameEvent::PlayerKilledAchievementZone(event) => { - event.write(stream, definition) - } + GameEvent::PlayerKilledAchievementZone(event) => event.write(stream, definition), GameEvent::PartyUpdated(event) => event.write(stream, definition), GameEvent::PartyPrefChanged(event) => event.write(stream, definition), GameEvent::PartyCriteriaChanged(event) => event.write(stream, definition), @@ -22343,21 +21219,13 @@ impl GameEvent { GameEvent::RecalculateHolidays(event) => event.write(stream, definition), GameEvent::PlayerCurrencyChanged(event) => event.write(stream, definition), GameEvent::DoomsdayRocketOpen(event) => event.write(stream, definition), - GameEvent::RemoveNemesisRelationships(event) => { - event.write(stream, definition) - } + GameEvent::RemoveNemesisRelationships(event) => event.write(stream, definition), GameEvent::MvmCreditBonusWave(event) => event.write(stream, definition), GameEvent::MvmCreditBonusAll(event) => event.write(stream, definition), - GameEvent::MvmCreditBonusAllAdvanced(event) => { - event.write(stream, definition) - } + GameEvent::MvmCreditBonusAllAdvanced(event) => event.write(stream, definition), GameEvent::MvmQuickSentryUpgrade(event) => event.write(stream, definition), - GameEvent::MvmTankDestroyedByPlayers(event) => { - event.write(stream, definition) - } - GameEvent::MvmKillRobotDeliveringBomb(event) => { - event.write(stream, definition) - } + GameEvent::MvmTankDestroyedByPlayers(event) => event.write(stream, definition), + GameEvent::MvmKillRobotDeliveringBomb(event) => event.write(stream, definition), GameEvent::MvmPickupCurrency(event) => event.write(stream, definition), GameEvent::MvmBombCarrierKilled(event) => event.write(stream, definition), GameEvent::MvmSentryBusterDetonate(event) => event.write(stream, definition), @@ -22368,9 +21236,7 @@ impl GameEvent { GameEvent::MvmMissionComplete(event) => event.write(stream, definition), GameEvent::MvmBombResetByPlayer(event) => event.write(stream, definition), GameEvent::MvmBombAlarmTriggered(event) => event.write(stream, definition), - GameEvent::MvmBombDeployResetByPlayer(event) => { - event.write(stream, definition) - } + GameEvent::MvmBombDeployResetByPlayer(event) => event.write(stream, definition), GameEvent::MvmWaveFailed(event) => event.write(stream, definition), GameEvent::MvmResetStats(event) => event.write(stream, definition), GameEvent::DamageResisted(event) => event.write(stream, definition), @@ -22378,22 +21244,12 @@ impl GameEvent { GameEvent::RevivePlayerStopped(event) => event.write(stream, definition), GameEvent::RevivePlayerComplete(event) => event.write(stream, definition), GameEvent::PlayerTurnedToGhost(event) => event.write(stream, definition), - GameEvent::MedigunShieldBlockedDamage(event) => { - event.write(stream, definition) - } - GameEvent::MvmAdvWaveCompleteNoGates(event) => { - event.write(stream, definition) - } - GameEvent::MvmSniperHeadshotCurrency(event) => { - event.write(stream, definition) - } + GameEvent::MedigunShieldBlockedDamage(event) => event.write(stream, definition), + GameEvent::MvmAdvWaveCompleteNoGates(event) => event.write(stream, definition), + GameEvent::MvmSniperHeadshotCurrency(event) => event.write(stream, definition), GameEvent::MvmMannhattanPit(event) => event.write(stream, definition), - GameEvent::FlagCarriedInDetectionZone(event) => { - event.write(stream, definition) - } - GameEvent::MvmAdvWaveKilledStunRadio(event) => { - event.write(stream, definition) - } + GameEvent::FlagCarriedInDetectionZone(event) => event.write(stream, definition), + GameEvent::MvmAdvWaveKilledStunRadio(event) => event.write(stream, definition), GameEvent::PlayerDirectHitStun(event) => event.write(stream, definition), GameEvent::MvmSentryBusterKilled(event) => event.write(stream, definition), GameEvent::UpgradesFileChanged(event) => event.write(stream, definition), @@ -22457,9 +21313,7 @@ impl GameEvent { GameEvent::RestartTimerTime(event) => event.write(stream, definition), GameEvent::WinLimitChanged(event) => event.write(stream, definition), GameEvent::WinPanelShowScores(event) => event.write(stream, definition), - GameEvent::TopStreamsRequestFinished(event) => { - event.write(stream, definition) - } + GameEvent::TopStreamsRequestFinished(event) => event.write(stream, definition), GameEvent::CompetitiveStateChanged(event) => event.write(stream, definition), GameEvent::GlobalWarDataUpdated(event) => event.write(stream, definition), GameEvent::StopWatchChanged(event) => event.write(stream, definition), @@ -22510,9 +21364,7 @@ impl GameEvent { pub fn event_type(&self) -> GameEventType { match &self { GameEvent::ServerSpawn(_) => GameEventType::ServerSpawn, - GameEvent::ServerChangeLevelFailed(_) => { - GameEventType::ServerChangeLevelFailed - } + GameEvent::ServerChangeLevelFailed(_) => GameEventType::ServerChangeLevelFailed, GameEvent::ServerShutdown(_) => GameEventType::ServerShutdown, GameEvent::ServerCvar(_) => GameEventType::ServerCvar, GameEvent::ServerMessage(_) => GameEventType::ServerMessage, @@ -22559,9 +21411,7 @@ impl GameEvent { GameEvent::AchievementIncrement(_) => GameEventType::AchievementIncrement, GameEvent::PhysgunPickup(_) => GameEventType::PhysgunPickup, GameEvent::FlareIgniteNpc(_) => GameEventType::FlareIgniteNpc, - GameEvent::HelicopterGrenadePuntMiss(_) => { - GameEventType::HelicopterGrenadePuntMiss - } + GameEvent::HelicopterGrenadePuntMiss(_) => GameEventType::HelicopterGrenadePuntMiss, GameEvent::UserDataDownloaded(_) => GameEventType::UserDataDownloaded, GameEvent::RagdollDissolved(_) => GameEventType::RagdollDissolved, GameEvent::HLTVChangedMode(_) => GameEventType::HLTVChangedMode, @@ -22590,29 +21440,15 @@ impl GameEvent { GameEvent::TfMapTimeRemaining(_) => GameEventType::TfMapTimeRemaining, GameEvent::TfGameOver(_) => GameEventType::TfGameOver, GameEvent::CtfFlagCaptured(_) => GameEventType::CtfFlagCaptured, - GameEvent::ControlPointInitialized(_) => { - GameEventType::ControlPointInitialized - } - GameEvent::ControlPointUpdateImages(_) => { - GameEventType::ControlPointUpdateImages - } - GameEvent::ControlPointUpdateLayout(_) => { - GameEventType::ControlPointUpdateLayout - } - GameEvent::ControlPointUpdateCapping(_) => { - GameEventType::ControlPointUpdateCapping - } - GameEvent::ControlPointUpdateOwner(_) => { - GameEventType::ControlPointUpdateOwner - } + GameEvent::ControlPointInitialized(_) => GameEventType::ControlPointInitialized, + GameEvent::ControlPointUpdateImages(_) => GameEventType::ControlPointUpdateImages, + GameEvent::ControlPointUpdateLayout(_) => GameEventType::ControlPointUpdateLayout, + GameEvent::ControlPointUpdateCapping(_) => GameEventType::ControlPointUpdateCapping, + GameEvent::ControlPointUpdateOwner(_) => GameEventType::ControlPointUpdateOwner, GameEvent::ControlPointStartTouch(_) => GameEventType::ControlPointStartTouch, GameEvent::ControlPointEndTouch(_) => GameEventType::ControlPointEndTouch, - GameEvent::ControlPointPulseElement(_) => { - GameEventType::ControlPointPulseElement - } - GameEvent::ControlPointFakeCapture(_) => { - GameEventType::ControlPointFakeCapture - } + GameEvent::ControlPointPulseElement(_) => GameEventType::ControlPointPulseElement, + GameEvent::ControlPointFakeCapture(_) => GameEventType::ControlPointFakeCapture, GameEvent::ControlPointFakeCaptureMultiplier(_) => { GameEventType::ControlPointFakeCaptureMultiplier } @@ -22621,33 +21457,23 @@ impl GameEvent { GameEvent::TeamPlayRoundActive(_) => GameEventType::TeamPlayRoundActive, GameEvent::TeamPlayWaitingBegins(_) => GameEventType::TeamPlayWaitingBegins, GameEvent::TeamPlayWaitingEnds(_) => GameEventType::TeamPlayWaitingEnds, - GameEvent::TeamPlayWaitingAboutToEnd(_) => { - GameEventType::TeamPlayWaitingAboutToEnd - } + GameEvent::TeamPlayWaitingAboutToEnd(_) => GameEventType::TeamPlayWaitingAboutToEnd, GameEvent::TeamPlayRestartRound(_) => GameEventType::TeamPlayRestartRound, GameEvent::TeamPlayReadyRestart(_) => GameEventType::TeamPlayReadyRestart, - GameEvent::TeamPlayRoundRestartSeconds(_) => { - GameEventType::TeamPlayRoundRestartSeconds - } + GameEvent::TeamPlayRoundRestartSeconds(_) => GameEventType::TeamPlayRoundRestartSeconds, GameEvent::TeamPlayTeamReady(_) => GameEventType::TeamPlayTeamReady, GameEvent::TeamPlayRoundWin(_) => GameEventType::TeamPlayRoundWin, GameEvent::TeamPlayUpdateTimer(_) => GameEventType::TeamPlayUpdateTimer, GameEvent::TeamPlayRoundStalemate(_) => GameEventType::TeamPlayRoundStalemate, GameEvent::TeamPlayOvertimeBegin(_) => GameEventType::TeamPlayOvertimeBegin, GameEvent::TeamPlayOvertimeEnd(_) => GameEventType::TeamPlayOvertimeEnd, - GameEvent::TeamPlaySuddenDeathBegin(_) => { - GameEventType::TeamPlaySuddenDeathBegin - } + GameEvent::TeamPlaySuddenDeathBegin(_) => GameEventType::TeamPlaySuddenDeathBegin, GameEvent::TeamPlaySuddenDeathEnd(_) => GameEventType::TeamPlaySuddenDeathEnd, GameEvent::TeamPlayGameOver(_) => GameEventType::TeamPlayGameOver, - GameEvent::TeamPlayMapTimeRemaining(_) => { - GameEventType::TeamPlayMapTimeRemaining - } + GameEvent::TeamPlayMapTimeRemaining(_) => GameEventType::TeamPlayMapTimeRemaining, GameEvent::TeamPlayTimerFlash(_) => GameEventType::TeamPlayTimerFlash, GameEvent::TeamPlayTimerTimeAdded(_) => GameEventType::TeamPlayTimerTimeAdded, - GameEvent::TeamPlayPointStartCapture(_) => { - GameEventType::TeamPlayPointStartCapture - } + GameEvent::TeamPlayPointStartCapture(_) => GameEventType::TeamPlayPointStartCapture, GameEvent::TeamPlayPointCaptured(_) => GameEventType::TeamPlayPointCaptured, GameEvent::TeamPlayPointLocked(_) => GameEventType::TeamPlayPointLocked, GameEvent::TeamPlayPointUnlocked(_) => GameEventType::TeamPlayPointUnlocked, @@ -22655,9 +21481,7 @@ impl GameEvent { GameEvent::TeamPlayCaptureBlocked(_) => GameEventType::TeamPlayCaptureBlocked, GameEvent::TeamPlayFlagEvent(_) => GameEventType::TeamPlayFlagEvent, GameEvent::TeamPlayWinPanel(_) => GameEventType::TeamPlayWinPanel, - GameEvent::TeamPlayTeamBalancedPlayer(_) => { - GameEventType::TeamPlayTeamBalancedPlayer - } + GameEvent::TeamPlayTeamBalancedPlayer(_) => GameEventType::TeamPlayTeamBalancedPlayer, GameEvent::TeamPlaySetupFinished(_) => GameEventType::TeamPlaySetupFinished, GameEvent::TeamPlayAlert(_) => GameEventType::TeamPlayAlert, GameEvent::TrainingComplete(_) => GameEventType::TrainingComplete, @@ -22665,15 +21489,11 @@ impl GameEvent { GameEvent::HideFreezePanel(_) => GameEventType::HideFreezePanel, GameEvent::FreezeCamStarted(_) => GameEventType::FreezeCamStarted, GameEvent::LocalPlayerChangeTeam(_) => GameEventType::LocalPlayerChangeTeam, - GameEvent::LocalPlayerScoreChanged(_) => { - GameEventType::LocalPlayerScoreChanged - } + GameEvent::LocalPlayerScoreChanged(_) => GameEventType::LocalPlayerScoreChanged, GameEvent::LocalPlayerChangeClass(_) => GameEventType::LocalPlayerChangeClass, GameEvent::LocalPlayerRespawn(_) => GameEventType::LocalPlayerRespawn, GameEvent::BuildingInfoChanged(_) => GameEventType::BuildingInfoChanged, - GameEvent::LocalPlayerChangeDisguise(_) => { - GameEventType::LocalPlayerChangeDisguise - } + GameEvent::LocalPlayerChangeDisguise(_) => GameEventType::LocalPlayerChangeDisguise, GameEvent::PlayerAccountChanged(_) => GameEventType::PlayerAccountChanged, GameEvent::SpyPdaReset(_) => GameEventType::SpyPdaReset, GameEvent::FlagStatusUpdate(_) => GameEventType::FlagStatusUpdate, @@ -22690,14 +21510,10 @@ impl GameEvent { GameEvent::AchievementEarned(_) => GameEventType::AchievementEarned, GameEvent::SpecTargetUpdated(_) => GameEventType::SpecTargetUpdated, GameEvent::TournamentStateUpdate(_) => GameEventType::TournamentStateUpdate, - GameEvent::TournamentEnableCountdown(_) => { - GameEventType::TournamentEnableCountdown - } + GameEvent::TournamentEnableCountdown(_) => GameEventType::TournamentEnableCountdown, GameEvent::PlayerCalledForMedic(_) => GameEventType::PlayerCalledForMedic, GameEvent::PlayerAskedForBall(_) => GameEventType::PlayerAskedForBall, - GameEvent::LocalPlayerBecameObserver(_) => { - GameEventType::LocalPlayerBecameObserver - } + GameEvent::LocalPlayerBecameObserver(_) => GameEventType::LocalPlayerBecameObserver, GameEvent::PlayerIgnitedInv(_) => GameEventType::PlayerIgnitedInv, GameEvent::PlayerIgnited(_) => GameEventType::PlayerIgnited, GameEvent::PlayerExtinguished(_) => GameEventType::PlayerExtinguished, @@ -22717,9 +21533,7 @@ impl GameEvent { GameEvent::ShowClassLayout(_) => GameEventType::ShowClassLayout, GameEvent::ShowVsPanel(_) => GameEventType::ShowVsPanel, GameEvent::PlayerDamaged(_) => GameEventType::PlayerDamaged, - GameEvent::ArenaPlayerNotification(_) => { - GameEventType::ArenaPlayerNotification - } + GameEvent::ArenaPlayerNotification(_) => GameEventType::ArenaPlayerNotification, GameEvent::ArenaMatchMaxStreak(_) => GameEventType::ArenaMatchMaxStreak, GameEvent::ArenaRoundStart(_) => GameEventType::ArenaRoundStart, GameEvent::ArenaWinPanel(_) => GameEventType::ArenaWinPanel, @@ -22740,12 +21554,8 @@ impl GameEvent { GameEvent::ItemFound(_) => GameEventType::ItemFound, GameEvent::ShowAnnotation(_) => GameEventType::ShowAnnotation, GameEvent::HideAnnotation(_) => GameEventType::HideAnnotation, - GameEvent::PostInventoryApplication(_) => { - GameEventType::PostInventoryApplication - } - GameEvent::ControlPointUnlockUpdated(_) => { - GameEventType::ControlPointUnlockUpdated - } + GameEvent::PostInventoryApplication(_) => GameEventType::PostInventoryApplication, + GameEvent::ControlPointUnlockUpdated(_) => GameEventType::ControlPointUnlockUpdated, GameEvent::DeployBuffBanner(_) => GameEventType::DeployBuffBanner, GameEvent::PlayerBuff(_) => GameEventType::PlayerBuff, GameEvent::MedicDeath(_) => GameEventType::MedicDeath, @@ -22760,9 +21570,7 @@ impl GameEvent { GameEvent::RocketPackLanded(_) => GameEventType::RocketPackLanded, GameEvent::MedicDefended(_) => GameEventType::MedicDefended, GameEvent::LocalPlayerHealed(_) => GameEventType::LocalPlayerHealed, - GameEvent::PlayerDestroyedPipeBomb(_) => { - GameEventType::PlayerDestroyedPipeBomb - } + GameEvent::PlayerDestroyedPipeBomb(_) => GameEventType::PlayerDestroyedPipeBomb, GameEvent::ObjectDeflected(_) => GameEventType::ObjectDeflected, GameEvent::PlayerMvp(_) => GameEventType::PlayerMvp, GameEvent::RaidSpawnMob(_) => GameEventType::RaidSpawnMob, @@ -22773,12 +21581,8 @@ impl GameEvent { GameEvent::PlayerRegenerate(_) => GameEventType::PlayerRegenerate, GameEvent::UpdateStatusItem(_) => GameEventType::UpdateStatusItem, GameEvent::StatsResetRound(_) => GameEventType::StatsResetRound, - GameEvent::ScoreStatsAccumulatedUpdate(_) => { - GameEventType::ScoreStatsAccumulatedUpdate - } - GameEvent::ScoreStatsAccumulatedReset(_) => { - GameEventType::ScoreStatsAccumulatedReset - } + GameEvent::ScoreStatsAccumulatedUpdate(_) => GameEventType::ScoreStatsAccumulatedUpdate, + GameEvent::ScoreStatsAccumulatedReset(_) => GameEventType::ScoreStatsAccumulatedReset, GameEvent::AchievementEarnedLocal(_) => GameEventType::AchievementEarnedLocal, GameEvent::PlayerHealed(_) => GameEventType::PlayerHealed, GameEvent::BuildingHealed(_) => GameEventType::BuildingHealed, @@ -22798,27 +21602,19 @@ impl GameEvent { GameEvent::EyeballBossStunned(_) => GameEventType::EyeballBossStunned, GameEvent::EyeballBossKilled(_) => GameEventType::EyeballBossKilled, GameEvent::EyeballBossKiller(_) => GameEventType::EyeballBossKiller, - GameEvent::EyeballBossEscapeImminent(_) => { - GameEventType::EyeballBossEscapeImminent - } + GameEvent::EyeballBossEscapeImminent(_) => GameEventType::EyeballBossEscapeImminent, GameEvent::EyeballBossEscaped(_) => GameEventType::EyeballBossEscaped, GameEvent::NpcHurt(_) => GameEventType::NpcHurt, - GameEvent::ControlPointTimerUpdated(_) => { - GameEventType::ControlPointTimerUpdated - } + GameEvent::ControlPointTimerUpdated(_) => GameEventType::ControlPointTimerUpdated, GameEvent::PlayerHighFiveStart(_) => GameEventType::PlayerHighFiveStart, GameEvent::PlayerHighFiveCancel(_) => GameEventType::PlayerHighFiveCancel, GameEvent::PlayerHighFiveSuccess(_) => GameEventType::PlayerHighFiveSuccess, GameEvent::PlayerBonusPoints(_) => GameEventType::PlayerBonusPoints, GameEvent::PlayerUpgraded(_) => GameEventType::PlayerUpgraded, GameEvent::PlayerBuyback(_) => GameEventType::PlayerBuyback, - GameEvent::PlayerUsedPowerUpBottle(_) => { - GameEventType::PlayerUsedPowerUpBottle - } + GameEvent::PlayerUsedPowerUpBottle(_) => GameEventType::PlayerUsedPowerUpBottle, GameEvent::ChristmasGiftGrab(_) => GameEventType::ChristmasGiftGrab, - GameEvent::PlayerKilledAchievementZone(_) => { - GameEventType::PlayerKilledAchievementZone - } + GameEvent::PlayerKilledAchievementZone(_) => GameEventType::PlayerKilledAchievementZone, GameEvent::PartyUpdated(_) => GameEventType::PartyUpdated, GameEvent::PartyPrefChanged(_) => GameEventType::PartyPrefChanged, GameEvent::PartyCriteriaChanged(_) => GameEventType::PartyCriteriaChanged, @@ -22833,26 +21629,16 @@ impl GameEvent { GameEvent::RecalculateHolidays(_) => GameEventType::RecalculateHolidays, GameEvent::PlayerCurrencyChanged(_) => GameEventType::PlayerCurrencyChanged, GameEvent::DoomsdayRocketOpen(_) => GameEventType::DoomsdayRocketOpen, - GameEvent::RemoveNemesisRelationships(_) => { - GameEventType::RemoveNemesisRelationships - } + GameEvent::RemoveNemesisRelationships(_) => GameEventType::RemoveNemesisRelationships, GameEvent::MvmCreditBonusWave(_) => GameEventType::MvmCreditBonusWave, GameEvent::MvmCreditBonusAll(_) => GameEventType::MvmCreditBonusAll, - GameEvent::MvmCreditBonusAllAdvanced(_) => { - GameEventType::MvmCreditBonusAllAdvanced - } + GameEvent::MvmCreditBonusAllAdvanced(_) => GameEventType::MvmCreditBonusAllAdvanced, GameEvent::MvmQuickSentryUpgrade(_) => GameEventType::MvmQuickSentryUpgrade, - GameEvent::MvmTankDestroyedByPlayers(_) => { - GameEventType::MvmTankDestroyedByPlayers - } - GameEvent::MvmKillRobotDeliveringBomb(_) => { - GameEventType::MvmKillRobotDeliveringBomb - } + GameEvent::MvmTankDestroyedByPlayers(_) => GameEventType::MvmTankDestroyedByPlayers, + GameEvent::MvmKillRobotDeliveringBomb(_) => GameEventType::MvmKillRobotDeliveringBomb, GameEvent::MvmPickupCurrency(_) => GameEventType::MvmPickupCurrency, GameEvent::MvmBombCarrierKilled(_) => GameEventType::MvmBombCarrierKilled, - GameEvent::MvmSentryBusterDetonate(_) => { - GameEventType::MvmSentryBusterDetonate - } + GameEvent::MvmSentryBusterDetonate(_) => GameEventType::MvmSentryBusterDetonate, GameEvent::MvmScoutMarkedForDeath(_) => GameEventType::MvmScoutMarkedForDeath, GameEvent::MvmMedicPowerUpShared(_) => GameEventType::MvmMedicPowerUpShared, GameEvent::MvmBeginWave(_) => GameEventType::MvmBeginWave, @@ -22860,9 +21646,7 @@ impl GameEvent { GameEvent::MvmMissionComplete(_) => GameEventType::MvmMissionComplete, GameEvent::MvmBombResetByPlayer(_) => GameEventType::MvmBombResetByPlayer, GameEvent::MvmBombAlarmTriggered(_) => GameEventType::MvmBombAlarmTriggered, - GameEvent::MvmBombDeployResetByPlayer(_) => { - GameEventType::MvmBombDeployResetByPlayer - } + GameEvent::MvmBombDeployResetByPlayer(_) => GameEventType::MvmBombDeployResetByPlayer, GameEvent::MvmWaveFailed(_) => GameEventType::MvmWaveFailed, GameEvent::MvmResetStats(_) => GameEventType::MvmResetStats, GameEvent::DamageResisted(_) => GameEventType::DamageResisted, @@ -22870,22 +21654,12 @@ impl GameEvent { GameEvent::RevivePlayerStopped(_) => GameEventType::RevivePlayerStopped, GameEvent::RevivePlayerComplete(_) => GameEventType::RevivePlayerComplete, GameEvent::PlayerTurnedToGhost(_) => GameEventType::PlayerTurnedToGhost, - GameEvent::MedigunShieldBlockedDamage(_) => { - GameEventType::MedigunShieldBlockedDamage - } - GameEvent::MvmAdvWaveCompleteNoGates(_) => { - GameEventType::MvmAdvWaveCompleteNoGates - } - GameEvent::MvmSniperHeadshotCurrency(_) => { - GameEventType::MvmSniperHeadshotCurrency - } + GameEvent::MedigunShieldBlockedDamage(_) => GameEventType::MedigunShieldBlockedDamage, + GameEvent::MvmAdvWaveCompleteNoGates(_) => GameEventType::MvmAdvWaveCompleteNoGates, + GameEvent::MvmSniperHeadshotCurrency(_) => GameEventType::MvmSniperHeadshotCurrency, GameEvent::MvmMannhattanPit(_) => GameEventType::MvmMannhattanPit, - GameEvent::FlagCarriedInDetectionZone(_) => { - GameEventType::FlagCarriedInDetectionZone - } - GameEvent::MvmAdvWaveKilledStunRadio(_) => { - GameEventType::MvmAdvWaveKilledStunRadio - } + GameEvent::FlagCarriedInDetectionZone(_) => GameEventType::FlagCarriedInDetectionZone, + GameEvent::MvmAdvWaveKilledStunRadio(_) => GameEventType::MvmAdvWaveKilledStunRadio, GameEvent::PlayerDirectHitStun(_) => GameEventType::PlayerDirectHitStun, GameEvent::MvmSentryBusterKilled(_) => GameEventType::MvmSentryBusterKilled, GameEvent::UpgradesFileChanged(_) => GameEventType::UpgradesFileChanged, @@ -22893,9 +21667,7 @@ impl GameEvent { GameEvent::RdRulesStateChanged(_) => GameEventType::RdRulesStateChanged, GameEvent::RdRobotKilled(_) => GameEventType::RdRobotKilled, GameEvent::RdRobotImpact(_) => GameEventType::RdRobotImpact, - GameEvent::TeamPlayPreRoundTimeLeft(_) => { - GameEventType::TeamPlayPreRoundTimeLeft - } + GameEvent::TeamPlayPreRoundTimeLeft(_) => GameEventType::TeamPlayPreRoundTimeLeft, GameEvent::ParachuteDeploy(_) => GameEventType::ParachuteDeploy, GameEvent::ParachuteHolster(_) => GameEventType::ParachuteHolster, GameEvent::KillRefillsMeter(_) => GameEventType::KillRefillsMeter, @@ -22909,14 +21681,10 @@ impl GameEvent { GameEvent::DuckXpLevelUp(_) => GameEventType::DuckXpLevelUp, GameEvent::QuestLogOpened(_) => GameEventType::QuestLogOpened, GameEvent::SchemaUpdated(_) => GameEventType::SchemaUpdated, - GameEvent::LocalPlayerPickupWeapon(_) => { - GameEventType::LocalPlayerPickupWeapon - } + GameEvent::LocalPlayerPickupWeapon(_) => GameEventType::LocalPlayerPickupWeapon, GameEvent::RdPlayerScorePoints(_) => GameEventType::RdPlayerScorePoints, GameEvent::DemomanDetStickies(_) => GameEventType::DemomanDetStickies, - GameEvent::QuestObjectiveCompleted(_) => { - GameEventType::QuestObjectiveCompleted - } + GameEvent::QuestObjectiveCompleted(_) => GameEventType::QuestObjectiveCompleted, GameEvent::PlayerScoreChanged(_) => GameEventType::PlayerScoreChanged, GameEvent::KilledCappingPlayer(_) => GameEventType::KilledCappingPlayer, GameEvent::EnvironmentalDeath(_) => GameEventType::EnvironmentalDeath, @@ -22933,13 +21701,9 @@ impl GameEvent { GameEvent::TaggedPlayerAsIt(_) => GameEventType::TaggedPlayerAsIt, GameEvent::MerasmusStunned(_) => GameEventType::MerasmusStunned, GameEvent::MerasmusPropFound(_) => GameEventType::MerasmusPropFound, - GameEvent::HalloweenSkeletonKilled(_) => { - GameEventType::HalloweenSkeletonKilled - } + GameEvent::HalloweenSkeletonKilled(_) => GameEventType::HalloweenSkeletonKilled, GameEvent::SkeletonKilledQuest(_) => GameEventType::SkeletonKilledQuest, - GameEvent::SkeletonKingKilledQuest(_) => { - GameEventType::SkeletonKingKilledQuest - } + GameEvent::SkeletonKingKilledQuest(_) => GameEventType::SkeletonKingKilledQuest, GameEvent::EscapeHell(_) => GameEventType::EscapeHell, GameEvent::CrossSpectralBridge(_) => GameEventType::CrossSpectralBridge, GameEvent::MiniGameWon(_) => GameEventType::MiniGameWon, @@ -22959,12 +21723,8 @@ impl GameEvent { GameEvent::RestartTimerTime(_) => GameEventType::RestartTimerTime, GameEvent::WinLimitChanged(_) => GameEventType::WinLimitChanged, GameEvent::WinPanelShowScores(_) => GameEventType::WinPanelShowScores, - GameEvent::TopStreamsRequestFinished(_) => { - GameEventType::TopStreamsRequestFinished - } - GameEvent::CompetitiveStateChanged(_) => { - GameEventType::CompetitiveStateChanged - } + GameEvent::TopStreamsRequestFinished(_) => GameEventType::TopStreamsRequestFinished, + GameEvent::CompetitiveStateChanged(_) => GameEventType::CompetitiveStateChanged, GameEvent::GlobalWarDataUpdated(_) => GameEventType::GlobalWarDataUpdated, GameEvent::StopWatchChanged(_) => GameEventType::StopWatchChanged, GameEvent::DsStop(_) => GameEventType::DsStop, @@ -22978,9 +21738,7 @@ impl GameEvent { GameEvent::PlayerRematchChange(_) => GameEventType::PlayerRematchChange, GameEvent::PingUpdated(_) => GameEventType::PingUpdated, GameEvent::MMStatsUpdated(_) => GameEventType::MMStatsUpdated, - GameEvent::PlayerNextMapVoteChange(_) => { - GameEventType::PlayerNextMapVoteChange - } + GameEvent::PlayerNextMapVoteChange(_) => GameEventType::PlayerNextMapVoteChange, GameEvent::VoteMapsChanged(_) => GameEventType::VoteMapsChanged, GameEvent::ProtoDefChanged(_) => GameEventType::ProtoDefChanged, GameEvent::PlayerDomination(_) => GameEventType::PlayerDomination, @@ -23017,26 +21775,53 @@ impl GameEvent { pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { [ ("ServerSpawn", std::mem::size_of::()), - ("ServerChangeLevelFailed", std::mem::size_of::()), + ( + "ServerChangeLevelFailed", + std::mem::size_of::(), + ), ("ServerShutdown", std::mem::size_of::()), ("ServerCvar", std::mem::size_of::()), ("ServerMessage", std::mem::size_of::()), ("ServerAddBan", std::mem::size_of::()), - ("ServerRemoveBan", std::mem::size_of::()), + ( + "ServerRemoveBan", + std::mem::size_of::(), + ), ("PlayerConnect", std::mem::size_of::()), - ("PlayerConnectClient", std::mem::size_of::()), + ( + "PlayerConnectClient", + std::mem::size_of::(), + ), ("PlayerInfo", std::mem::size_of::()), - ("PlayerDisconnect", std::mem::size_of::()), + ( + "PlayerDisconnect", + std::mem::size_of::(), + ), ("PlayerActivate", std::mem::size_of::()), ("PlayerSay", std::mem::size_of::()), - ("ClientDisconnect", std::mem::size_of::()), - ("ClientBeginConnect", std::mem::size_of::()), - ("ClientConnected", std::mem::size_of::()), - ("ClientFullConnect", std::mem::size_of::()), + ( + "ClientDisconnect", + std::mem::size_of::(), + ), + ( + "ClientBeginConnect", + std::mem::size_of::(), + ), + ( + "ClientConnected", + std::mem::size_of::(), + ), + ( + "ClientFullConnect", + std::mem::size_of::(), + ), ("HostQuit", std::mem::size_of::()), ("TeamInfo", std::mem::size_of::()), ("TeamScore", std::mem::size_of::()), - ("TeamPlayBroadcastAudio", std::mem::size_of::()), + ( + "TeamPlayBroadcastAudio", + std::mem::size_of::(), + ), ("PlayerTeam", std::mem::size_of::()), ("PlayerClass", std::mem::size_of::()), ("PlayerDeath", std::mem::size_of::()), @@ -23046,9 +21831,18 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("PlayerSpawn", std::mem::size_of::()), ("PlayerShoot", std::mem::size_of::()), ("PlayerUse", std::mem::size_of::()), - ("PlayerChangeName", std::mem::size_of::()), - ("PlayerHintMessage", std::mem::size_of::()), - ("BasePlayerTeleported", std::mem::size_of::()), + ( + "PlayerChangeName", + std::mem::size_of::(), + ), + ( + "PlayerHintMessage", + std::mem::size_of::(), + ), + ( + "BasePlayerTeleported", + std::mem::size_of::(), + ), ("GameInit", std::mem::size_of::()), ("GameNewMap", std::mem::size_of::()), ("GameStart", std::mem::size_of::()), @@ -23060,18 +21854,36 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("BreakProp", std::mem::size_of::()), ("EntityKilled", std::mem::size_of::()), ("BonusUpdated", std::mem::size_of::()), - ("AchievementEvent", std::mem::size_of::()), - ("AchievementIncrement", std::mem::size_of::()), + ( + "AchievementEvent", + std::mem::size_of::(), + ), + ( + "AchievementIncrement", + std::mem::size_of::(), + ), ("PhysgunPickup", std::mem::size_of::()), ("FlareIgniteNpc", std::mem::size_of::()), ( "HelicopterGrenadePuntMiss", std::mem::size_of::(), ), - ("UserDataDownloaded", std::mem::size_of::()), - ("RagdollDissolved", std::mem::size_of::()), - ("HLTVChangedMode", std::mem::size_of::()), - ("HLTVChangedTarget", std::mem::size_of::()), + ( + "UserDataDownloaded", + std::mem::size_of::(), + ), + ( + "RagdollDissolved", + std::mem::size_of::(), + ), + ( + "HLTVChangedMode", + std::mem::size_of::(), + ), + ( + "HLTVChangedTarget", + std::mem::size_of::(), + ), ("VoteEnded", std::mem::size_of::()), ("VoteStarted", std::mem::size_of::()), ("VoteChanged", std::mem::size_of::()), @@ -23080,23 +21892,56 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("VoteCast", std::mem::size_of::()), ("VoteOptions", std::mem::size_of::()), ("ReplaySaved", std::mem::size_of::()), - ("EnteredPerformanceMode", std::mem::size_of::()), + ( + "EnteredPerformanceMode", + std::mem::size_of::(), + ), ("BrowseReplays", std::mem::size_of::()), - ("ReplayYoutubeStats", std::mem::size_of::()), - ("InventoryUpdated", std::mem::size_of::()), + ( + "ReplayYoutubeStats", + std::mem::size_of::(), + ), + ( + "InventoryUpdated", + std::mem::size_of::(), + ), ("CartUpdated", std::mem::size_of::()), - ("StorePriceSheetUpdated", std::mem::size_of::()), - ("EconInventoryConnected", std::mem::size_of::()), - ("ItemSchemaInitialized", std::mem::size_of::()), + ( + "StorePriceSheetUpdated", + std::mem::size_of::(), + ), + ( + "EconInventoryConnected", + std::mem::size_of::(), + ), + ( + "ItemSchemaInitialized", + std::mem::size_of::(), + ), ("GcNewSession", std::mem::size_of::()), ("GcLostSession", std::mem::size_of::()), ("IntroFinish", std::mem::size_of::()), - ("IntroNextCamera", std::mem::size_of::()), - ("PlayerChangeClass", std::mem::size_of::()), - ("TfMapTimeRemaining", std::mem::size_of::()), + ( + "IntroNextCamera", + std::mem::size_of::(), + ), + ( + "PlayerChangeClass", + std::mem::size_of::(), + ), + ( + "TfMapTimeRemaining", + std::mem::size_of::(), + ), ("TfGameOver", std::mem::size_of::()), - ("CtfFlagCaptured", std::mem::size_of::()), - ("ControlPointInitialized", std::mem::size_of::()), + ( + "CtfFlagCaptured", + std::mem::size_of::(), + ), + ( + "ControlPointInitialized", + std::mem::size_of::(), + ), ( "ControlPointUpdateImages", std::mem::size_of::(), @@ -23109,144 +21954,366 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ControlPointUpdateCapping", std::mem::size_of::(), ), - ("ControlPointUpdateOwner", std::mem::size_of::()), - ("ControlPointStartTouch", std::mem::size_of::()), - ("ControlPointEndTouch", std::mem::size_of::()), + ( + "ControlPointUpdateOwner", + std::mem::size_of::(), + ), + ( + "ControlPointStartTouch", + std::mem::size_of::(), + ), + ( + "ControlPointEndTouch", + std::mem::size_of::(), + ), ( "ControlPointPulseElement", std::mem::size_of::(), ), - ("ControlPointFakeCapture", std::mem::size_of::()), + ( + "ControlPointFakeCapture", + std::mem::size_of::(), + ), ( "ControlPointFakeCaptureMultiplier", std::mem::size_of::(), ), - ("TeamPlayRoundSelected", std::mem::size_of::()), - ("TeamPlayRoundStart", std::mem::size_of::()), - ("TeamPlayRoundActive", std::mem::size_of::()), - ("TeamPlayWaitingBegins", std::mem::size_of::()), - ("TeamPlayWaitingEnds", std::mem::size_of::()), + ( + "TeamPlayRoundSelected", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundStart", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundActive", + std::mem::size_of::(), + ), + ( + "TeamPlayWaitingBegins", + std::mem::size_of::(), + ), + ( + "TeamPlayWaitingEnds", + std::mem::size_of::(), + ), ( "TeamPlayWaitingAboutToEnd", std::mem::size_of::(), ), - ("TeamPlayRestartRound", std::mem::size_of::()), - ("TeamPlayReadyRestart", std::mem::size_of::()), + ( + "TeamPlayRestartRound", + std::mem::size_of::(), + ), + ( + "TeamPlayReadyRestart", + std::mem::size_of::(), + ), ( "TeamPlayRoundRestartSeconds", std::mem::size_of::(), ), - ("TeamPlayTeamReady", std::mem::size_of::()), - ("TeamPlayRoundWin", std::mem::size_of::()), - ("TeamPlayUpdateTimer", std::mem::size_of::()), - ("TeamPlayRoundStalemate", std::mem::size_of::()), - ("TeamPlayOvertimeBegin", std::mem::size_of::()), - ("TeamPlayOvertimeEnd", std::mem::size_of::()), + ( + "TeamPlayTeamReady", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundWin", + std::mem::size_of::(), + ), + ( + "TeamPlayUpdateTimer", + std::mem::size_of::(), + ), + ( + "TeamPlayRoundStalemate", + std::mem::size_of::(), + ), + ( + "TeamPlayOvertimeBegin", + std::mem::size_of::(), + ), + ( + "TeamPlayOvertimeEnd", + std::mem::size_of::(), + ), ( "TeamPlaySuddenDeathBegin", std::mem::size_of::(), ), - ("TeamPlaySuddenDeathEnd", std::mem::size_of::()), - ("TeamPlayGameOver", std::mem::size_of::()), + ( + "TeamPlaySuddenDeathEnd", + std::mem::size_of::(), + ), + ( + "TeamPlayGameOver", + std::mem::size_of::(), + ), ( "TeamPlayMapTimeRemaining", std::mem::size_of::(), ), - ("TeamPlayTimerFlash", std::mem::size_of::()), - ("TeamPlayTimerTimeAdded", std::mem::size_of::()), + ( + "TeamPlayTimerFlash", + std::mem::size_of::(), + ), + ( + "TeamPlayTimerTimeAdded", + std::mem::size_of::(), + ), ( "TeamPlayPointStartCapture", std::mem::size_of::(), ), - ("TeamPlayPointCaptured", std::mem::size_of::()), - ("TeamPlayPointLocked", std::mem::size_of::()), - ("TeamPlayPointUnlocked", std::mem::size_of::()), - ("TeamPlayCaptureBroken", std::mem::size_of::()), - ("TeamPlayCaptureBlocked", std::mem::size_of::()), - ("TeamPlayFlagEvent", std::mem::size_of::()), - ("TeamPlayWinPanel", std::mem::size_of::()), + ( + "TeamPlayPointCaptured", + std::mem::size_of::(), + ), + ( + "TeamPlayPointLocked", + std::mem::size_of::(), + ), + ( + "TeamPlayPointUnlocked", + std::mem::size_of::(), + ), + ( + "TeamPlayCaptureBroken", + std::mem::size_of::(), + ), + ( + "TeamPlayCaptureBlocked", + std::mem::size_of::(), + ), + ( + "TeamPlayFlagEvent", + std::mem::size_of::(), + ), + ( + "TeamPlayWinPanel", + std::mem::size_of::(), + ), ( "TeamPlayTeamBalancedPlayer", std::mem::size_of::(), ), - ("TeamPlaySetupFinished", std::mem::size_of::()), + ( + "TeamPlaySetupFinished", + std::mem::size_of::(), + ), ("TeamPlayAlert", std::mem::size_of::()), - ("TrainingComplete", std::mem::size_of::()), - ("ShowFreezePanel", std::mem::size_of::()), - ("HideFreezePanel", std::mem::size_of::()), - ("FreezeCamStarted", std::mem::size_of::()), - ("LocalPlayerChangeTeam", std::mem::size_of::()), - ("LocalPlayerScoreChanged", std::mem::size_of::()), - ("LocalPlayerChangeClass", std::mem::size_of::()), - ("LocalPlayerRespawn", std::mem::size_of::()), - ("BuildingInfoChanged", std::mem::size_of::()), + ( + "TrainingComplete", + std::mem::size_of::(), + ), + ( + "ShowFreezePanel", + std::mem::size_of::(), + ), + ( + "HideFreezePanel", + std::mem::size_of::(), + ), + ( + "FreezeCamStarted", + std::mem::size_of::(), + ), + ( + "LocalPlayerChangeTeam", + std::mem::size_of::(), + ), + ( + "LocalPlayerScoreChanged", + std::mem::size_of::(), + ), + ( + "LocalPlayerChangeClass", + std::mem::size_of::(), + ), + ( + "LocalPlayerRespawn", + std::mem::size_of::(), + ), + ( + "BuildingInfoChanged", + std::mem::size_of::(), + ), ( "LocalPlayerChangeDisguise", std::mem::size_of::(), ), - ("PlayerAccountChanged", std::mem::size_of::()), + ( + "PlayerAccountChanged", + std::mem::size_of::(), + ), ("SpyPdaReset", std::mem::size_of::()), - ("FlagStatusUpdate", std::mem::size_of::()), - ("PlayerStatsUpdated", std::mem::size_of::()), - ("PlayingCommentary", std::mem::size_of::()), - ("PlayerChargeDeployed", std::mem::size_of::()), - ("PlayerBuiltObject", std::mem::size_of::()), - ("PlayerUpgradedObject", std::mem::size_of::()), - ("PlayerCarryObject", std::mem::size_of::()), - ("PlayerDropObject", std::mem::size_of::()), + ( + "FlagStatusUpdate", + std::mem::size_of::(), + ), + ( + "PlayerStatsUpdated", + std::mem::size_of::(), + ), + ( + "PlayingCommentary", + std::mem::size_of::(), + ), + ( + "PlayerChargeDeployed", + std::mem::size_of::(), + ), + ( + "PlayerBuiltObject", + std::mem::size_of::(), + ), + ( + "PlayerUpgradedObject", + std::mem::size_of::(), + ), + ( + "PlayerCarryObject", + std::mem::size_of::(), + ), + ( + "PlayerDropObject", + std::mem::size_of::(), + ), ("ObjectRemoved", std::mem::size_of::()), - ("ObjectDestroyed", std::mem::size_of::()), - ("ObjectDetonated", std::mem::size_of::()), - ("AchievementEarned", std::mem::size_of::()), - ("SpecTargetUpdated", std::mem::size_of::()), - ("TournamentStateUpdate", std::mem::size_of::()), + ( + "ObjectDestroyed", + std::mem::size_of::(), + ), + ( + "ObjectDetonated", + std::mem::size_of::(), + ), + ( + "AchievementEarned", + std::mem::size_of::(), + ), + ( + "SpecTargetUpdated", + std::mem::size_of::(), + ), + ( + "TournamentStateUpdate", + std::mem::size_of::(), + ), ( "TournamentEnableCountdown", std::mem::size_of::(), ), - ("PlayerCalledForMedic", std::mem::size_of::()), - ("PlayerAskedForBall", std::mem::size_of::()), + ( + "PlayerCalledForMedic", + std::mem::size_of::(), + ), + ( + "PlayerAskedForBall", + std::mem::size_of::(), + ), ( "LocalPlayerBecameObserver", std::mem::size_of::(), ), - ("PlayerIgnitedInv", std::mem::size_of::()), + ( + "PlayerIgnitedInv", + std::mem::size_of::(), + ), ("PlayerIgnited", std::mem::size_of::()), - ("PlayerExtinguished", std::mem::size_of::()), - ("PlayerTeleported", std::mem::size_of::()), - ("PlayerHealedMedicCall", std::mem::size_of::()), - ("LocalPlayerChargeReady", std::mem::size_of::()), - ("LocalPlayerWindDown", std::mem::size_of::()), + ( + "PlayerExtinguished", + std::mem::size_of::(), + ), + ( + "PlayerTeleported", + std::mem::size_of::(), + ), + ( + "PlayerHealedMedicCall", + std::mem::size_of::(), + ), + ( + "LocalPlayerChargeReady", + std::mem::size_of::(), + ), + ( + "LocalPlayerWindDown", + std::mem::size_of::(), + ), ("PlayerInvulned", std::mem::size_of::()), ("EscortSpeed", std::mem::size_of::()), ("EscortProgress", std::mem::size_of::()), ("EscortRecede", std::mem::size_of::()), - ("GameUIActivated", std::mem::size_of::()), + ( + "GameUIActivated", + std::mem::size_of::(), + ), ("GameUIHidden", std::mem::size_of::()), - ("PlayerEscortScore", std::mem::size_of::()), - ("PlayerHealOnHit", std::mem::size_of::()), - ("PlayerStealSandvich", std::mem::size_of::()), - ("ShowClassLayout", std::mem::size_of::()), + ( + "PlayerEscortScore", + std::mem::size_of::(), + ), + ( + "PlayerHealOnHit", + std::mem::size_of::(), + ), + ( + "PlayerStealSandvich", + std::mem::size_of::(), + ), + ( + "ShowClassLayout", + std::mem::size_of::(), + ), ("ShowVsPanel", std::mem::size_of::()), ("PlayerDamaged", std::mem::size_of::()), - ("ArenaPlayerNotification", std::mem::size_of::()), - ("ArenaMatchMaxStreak", std::mem::size_of::()), - ("ArenaRoundStart", std::mem::size_of::()), + ( + "ArenaPlayerNotification", + std::mem::size_of::(), + ), + ( + "ArenaMatchMaxStreak", + std::mem::size_of::(), + ), + ( + "ArenaRoundStart", + std::mem::size_of::(), + ), ("ArenaWinPanel", std::mem::size_of::()), ("PveWinPanel", std::mem::size_of::()), ("AirDash", std::mem::size_of::()), ("Landed", std::mem::size_of::()), - ("PlayerDamageDodged", std::mem::size_of::()), + ( + "PlayerDamageDodged", + std::mem::size_of::(), + ), ("PlayerStunned", std::mem::size_of::()), ("ScoutGrandSlam", std::mem::size_of::()), - ("ScoutSlamdollLanded", std::mem::size_of::()), + ( + "ScoutSlamdollLanded", + std::mem::size_of::(), + ), ("ArrowImpact", std::mem::size_of::()), ("PlayerJarated", std::mem::size_of::()), - ("PlayerJaratedFade", std::mem::size_of::()), - ("PlayerShieldBlocked", std::mem::size_of::()), + ( + "PlayerJaratedFade", + std::mem::size_of::(), + ), + ( + "PlayerShieldBlocked", + std::mem::size_of::(), + ), ("PlayerPinned", std::mem::size_of::()), - ("PlayerHealedByMedic", std::mem::size_of::()), - ("PlayerSappedObject", std::mem::size_of::()), + ( + "PlayerHealedByMedic", + std::mem::size_of::(), + ), + ( + "PlayerSappedObject", + std::mem::size_of::(), + ), ("ItemFound", std::mem::size_of::()), ("ShowAnnotation", std::mem::size_of::()), ("HideAnnotation", std::mem::size_of::()), @@ -23258,31 +22325,73 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ControlPointUnlockUpdated", std::mem::size_of::(), ), - ("DeployBuffBanner", std::mem::size_of::()), + ( + "DeployBuffBanner", + std::mem::size_of::(), + ), ("PlayerBuff", std::mem::size_of::()), ("MedicDeath", std::mem::size_of::()), ("OvertimeNag", std::mem::size_of::()), ("TeamsChanged", std::mem::size_of::()), - ("HalloweenPumpkinGrab", std::mem::size_of::()), + ( + "HalloweenPumpkinGrab", + std::mem::size_of::(), + ), ("RocketJump", std::mem::size_of::()), - ("RocketJumpLanded", std::mem::size_of::()), + ( + "RocketJumpLanded", + std::mem::size_of::(), + ), ("StickyJump", std::mem::size_of::()), - ("StickyJumpLanded", std::mem::size_of::()), - ("RocketPackLaunch", std::mem::size_of::()), - ("RocketPackLanded", std::mem::size_of::()), + ( + "StickyJumpLanded", + std::mem::size_of::(), + ), + ( + "RocketPackLaunch", + std::mem::size_of::(), + ), + ( + "RocketPackLanded", + std::mem::size_of::(), + ), ("MedicDefended", std::mem::size_of::()), - ("LocalPlayerHealed", std::mem::size_of::()), - ("PlayerDestroyedPipeBomb", std::mem::size_of::()), - ("ObjectDeflected", std::mem::size_of::()), + ( + "LocalPlayerHealed", + std::mem::size_of::(), + ), + ( + "PlayerDestroyedPipeBomb", + std::mem::size_of::(), + ), + ( + "ObjectDeflected", + std::mem::size_of::(), + ), ("PlayerMvp", std::mem::size_of::()), ("RaidSpawnMob", std::mem::size_of::()), ("RaidSpawnSquad", std::mem::size_of::()), ("NavBlocked", std::mem::size_of::()), - ("PathTrackPassed", std::mem::size_of::()), - ("NumCappersChanged", std::mem::size_of::()), - ("PlayerRegenerate", std::mem::size_of::()), - ("UpdateStatusItem", std::mem::size_of::()), - ("StatsResetRound", std::mem::size_of::()), + ( + "PathTrackPassed", + std::mem::size_of::(), + ), + ( + "NumCappersChanged", + std::mem::size_of::(), + ), + ( + "PlayerRegenerate", + std::mem::size_of::(), + ), + ( + "UpdateStatusItem", + std::mem::size_of::(), + ), + ( + "StatsResetRound", + std::mem::size_of::(), + ), ( "ScoreStatsAccumulatedUpdate", std::mem::size_of::(), @@ -23291,7 +22400,10 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "ScoreStatsAccumulatedReset", std::mem::size_of::(), ), - ("AchievementEarnedLocal", std::mem::size_of::()), + ( + "AchievementEarnedLocal", + std::mem::size_of::(), + ), ("PlayerHealed", std::mem::size_of::()), ("BuildingHealed", std::mem::size_of::()), ("ItemPickup", std::mem::size_of::()), @@ -23300,63 +22412,153 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("FishNoticeArm", std::mem::size_of::()), ("SlapNotice", std::mem::size_of::()), ("ThrowableHit", std::mem::size_of::()), - ("PumpkinLordSummoned", std::mem::size_of::()), - ("PumpkinLordKilled", std::mem::size_of::()), - ("MerasmusSummoned", std::mem::size_of::()), + ( + "PumpkinLordSummoned", + std::mem::size_of::(), + ), + ( + "PumpkinLordKilled", + std::mem::size_of::(), + ), + ( + "MerasmusSummoned", + std::mem::size_of::(), + ), ("MerasmusKilled", std::mem::size_of::()), - ("MerasmusEscapeWarning", std::mem::size_of::()), - ("MerasmusEscaped", std::mem::size_of::()), - ("EyeballBossSummoned", std::mem::size_of::()), - ("EyeballBossStunned", std::mem::size_of::()), - ("EyeballBossKilled", std::mem::size_of::()), - ("EyeballBossKiller", std::mem::size_of::()), + ( + "MerasmusEscapeWarning", + std::mem::size_of::(), + ), + ( + "MerasmusEscaped", + std::mem::size_of::(), + ), + ( + "EyeballBossSummoned", + std::mem::size_of::(), + ), + ( + "EyeballBossStunned", + std::mem::size_of::(), + ), + ( + "EyeballBossKilled", + std::mem::size_of::(), + ), + ( + "EyeballBossKiller", + std::mem::size_of::(), + ), ( "EyeballBossEscapeImminent", std::mem::size_of::(), ), - ("EyeballBossEscaped", std::mem::size_of::()), + ( + "EyeballBossEscaped", + std::mem::size_of::(), + ), ("NpcHurt", std::mem::size_of::()), ( "ControlPointTimerUpdated", std::mem::size_of::(), ), - ("PlayerHighFiveStart", std::mem::size_of::()), - ("PlayerHighFiveCancel", std::mem::size_of::()), - ("PlayerHighFiveSuccess", std::mem::size_of::()), - ("PlayerBonusPoints", std::mem::size_of::()), + ( + "PlayerHighFiveStart", + std::mem::size_of::(), + ), + ( + "PlayerHighFiveCancel", + std::mem::size_of::(), + ), + ( + "PlayerHighFiveSuccess", + std::mem::size_of::(), + ), + ( + "PlayerBonusPoints", + std::mem::size_of::(), + ), ("PlayerUpgraded", std::mem::size_of::()), ("PlayerBuyback", std::mem::size_of::()), - ("PlayerUsedPowerUpBottle", std::mem::size_of::()), - ("ChristmasGiftGrab", std::mem::size_of::()), + ( + "PlayerUsedPowerUpBottle", + std::mem::size_of::(), + ), + ( + "ChristmasGiftGrab", + std::mem::size_of::(), + ), ( "PlayerKilledAchievementZone", std::mem::size_of::(), ), ("PartyUpdated", std::mem::size_of::()), - ("PartyPrefChanged", std::mem::size_of::()), - ("PartyCriteriaChanged", std::mem::size_of::()), - ("PartyInvitesChanged", std::mem::size_of::()), - ("PartyQueueStateChanged", std::mem::size_of::()), + ( + "PartyPrefChanged", + std::mem::size_of::(), + ), + ( + "PartyCriteriaChanged", + std::mem::size_of::(), + ), + ( + "PartyInvitesChanged", + std::mem::size_of::(), + ), + ( + "PartyQueueStateChanged", + std::mem::size_of::(), + ), ("PartyChat", std::mem::size_of::()), - ("PartyMemberJoin", std::mem::size_of::()), - ("PartyMemberLeave", std::mem::size_of::()), - ("MatchInvitesUpdated", std::mem::size_of::()), + ( + "PartyMemberJoin", + std::mem::size_of::(), + ), + ( + "PartyMemberLeave", + std::mem::size_of::(), + ), + ( + "MatchInvitesUpdated", + std::mem::size_of::(), + ), ("LobbyUpdated", std::mem::size_of::()), - ("MvmMissionUpdate", std::mem::size_of::()), - ("RecalculateHolidays", std::mem::size_of::()), - ("PlayerCurrencyChanged", std::mem::size_of::()), - ("DoomsdayRocketOpen", std::mem::size_of::()), + ( + "MvmMissionUpdate", + std::mem::size_of::(), + ), + ( + "RecalculateHolidays", + std::mem::size_of::(), + ), + ( + "PlayerCurrencyChanged", + std::mem::size_of::(), + ), + ( + "DoomsdayRocketOpen", + std::mem::size_of::(), + ), ( "RemoveNemesisRelationships", std::mem::size_of::(), ), - ("MvmCreditBonusWave", std::mem::size_of::()), - ("MvmCreditBonusAll", std::mem::size_of::()), + ( + "MvmCreditBonusWave", + std::mem::size_of::(), + ), + ( + "MvmCreditBonusAll", + std::mem::size_of::(), + ), ( "MvmCreditBonusAllAdvanced", std::mem::size_of::(), ), - ("MvmQuickSentryUpgrade", std::mem::size_of::()), + ( + "MvmQuickSentryUpgrade", + std::mem::size_of::(), + ), ( "MvmTankDestroyedByPlayers", std::mem::size_of::(), @@ -23365,16 +22567,43 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmKillRobotDeliveringBomb", std::mem::size_of::(), ), - ("MvmPickupCurrency", std::mem::size_of::()), - ("MvmBombCarrierKilled", std::mem::size_of::()), - ("MvmSentryBusterDetonate", std::mem::size_of::()), - ("MvmScoutMarkedForDeath", std::mem::size_of::()), - ("MvmMedicPowerUpShared", std::mem::size_of::()), + ( + "MvmPickupCurrency", + std::mem::size_of::(), + ), + ( + "MvmBombCarrierKilled", + std::mem::size_of::(), + ), + ( + "MvmSentryBusterDetonate", + std::mem::size_of::(), + ), + ( + "MvmScoutMarkedForDeath", + std::mem::size_of::(), + ), + ( + "MvmMedicPowerUpShared", + std::mem::size_of::(), + ), ("MvmBeginWave", std::mem::size_of::()), - ("MvmWaveComplete", std::mem::size_of::()), - ("MvmMissionComplete", std::mem::size_of::()), - ("MvmBombResetByPlayer", std::mem::size_of::()), - ("MvmBombAlarmTriggered", std::mem::size_of::()), + ( + "MvmWaveComplete", + std::mem::size_of::(), + ), + ( + "MvmMissionComplete", + std::mem::size_of::(), + ), + ( + "MvmBombResetByPlayer", + std::mem::size_of::(), + ), + ( + "MvmBombAlarmTriggered", + std::mem::size_of::(), + ), ( "MvmBombDeployResetByPlayer", std::mem::size_of::(), @@ -23382,10 +22611,22 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("MvmWaveFailed", std::mem::size_of::()), ("MvmResetStats", std::mem::size_of::()), ("DamageResisted", std::mem::size_of::()), - ("RevivePlayerNotify", std::mem::size_of::()), - ("RevivePlayerStopped", std::mem::size_of::()), - ("RevivePlayerComplete", std::mem::size_of::()), - ("PlayerTurnedToGhost", std::mem::size_of::()), + ( + "RevivePlayerNotify", + std::mem::size_of::(), + ), + ( + "RevivePlayerStopped", + std::mem::size_of::(), + ), + ( + "RevivePlayerComplete", + std::mem::size_of::(), + ), + ( + "PlayerTurnedToGhost", + std::mem::size_of::(), + ), ( "MedigunShieldBlockedDamage", std::mem::size_of::(), @@ -23398,7 +22639,10 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmSniperHeadshotCurrency", std::mem::size_of::(), ), - ("MvmMannhattanPit", std::mem::size_of::()), + ( + "MvmMannhattanPit", + std::mem::size_of::(), + ), ( "FlagCarriedInDetectionZone", std::mem::size_of::(), @@ -23407,106 +22651,292 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { "MvmAdvWaveKilledStunRadio", std::mem::size_of::(), ), - ("PlayerDirectHitStun", std::mem::size_of::()), - ("MvmSentryBusterKilled", std::mem::size_of::()), - ("UpgradesFileChanged", std::mem::size_of::()), - ("RdTeamPointsChanged", std::mem::size_of::()), - ("RdRulesStateChanged", std::mem::size_of::()), + ( + "PlayerDirectHitStun", + std::mem::size_of::(), + ), + ( + "MvmSentryBusterKilled", + std::mem::size_of::(), + ), + ( + "UpgradesFileChanged", + std::mem::size_of::(), + ), + ( + "RdTeamPointsChanged", + std::mem::size_of::(), + ), + ( + "RdRulesStateChanged", + std::mem::size_of::(), + ), ("RdRobotKilled", std::mem::size_of::()), ("RdRobotImpact", std::mem::size_of::()), ( "TeamPlayPreRoundTimeLeft", std::mem::size_of::(), ), - ("ParachuteDeploy", std::mem::size_of::()), - ("ParachuteHolster", std::mem::size_of::()), - ("KillRefillsMeter", std::mem::size_of::()), + ( + "ParachuteDeploy", + std::mem::size_of::(), + ), + ( + "ParachuteHolster", + std::mem::size_of::(), + ), + ( + "KillRefillsMeter", + std::mem::size_of::(), + ), ("RpsTauntEvent", std::mem::size_of::()), ("CongaKill", std::mem::size_of::()), - ("PlayerInitialSpawn", std::mem::size_of::()), - ("CompetitiveVictory", std::mem::size_of::()), - ("CompetitiveStatsUpdate", std::mem::size_of::()), + ( + "PlayerInitialSpawn", + std::mem::size_of::(), + ), + ( + "CompetitiveVictory", + std::mem::size_of::(), + ), + ( + "CompetitiveStatsUpdate", + std::mem::size_of::(), + ), ("MiniGameWin", std::mem::size_of::()), - ("SentryOnGoActive", std::mem::size_of::()), + ( + "SentryOnGoActive", + std::mem::size_of::(), + ), ("DuckXpLevelUp", std::mem::size_of::()), ("QuestLogOpened", std::mem::size_of::()), ("SchemaUpdated", std::mem::size_of::()), - ("LocalPlayerPickupWeapon", std::mem::size_of::()), - ("RdPlayerScorePoints", std::mem::size_of::()), - ("DemomanDetStickies", std::mem::size_of::()), - ("QuestObjectiveCompleted", std::mem::size_of::()), - ("PlayerScoreChanged", std::mem::size_of::()), - ("KilledCappingPlayer", std::mem::size_of::()), - ("EnvironmentalDeath", std::mem::size_of::()), - ("ProjectileDirectHit", std::mem::size_of::()), + ( + "LocalPlayerPickupWeapon", + std::mem::size_of::(), + ), + ( + "RdPlayerScorePoints", + std::mem::size_of::(), + ), + ( + "DemomanDetStickies", + std::mem::size_of::(), + ), + ( + "QuestObjectiveCompleted", + std::mem::size_of::(), + ), + ( + "PlayerScoreChanged", + std::mem::size_of::(), + ), + ( + "KilledCappingPlayer", + std::mem::size_of::(), + ), + ( + "EnvironmentalDeath", + std::mem::size_of::(), + ), + ( + "ProjectileDirectHit", + std::mem::size_of::(), + ), ("PassGet", std::mem::size_of::()), ("PassScore", std::mem::size_of::()), ("PassFree", std::mem::size_of::()), ("PassPassCaught", std::mem::size_of::()), ("PassBallStolen", std::mem::size_of::()), - ("PassBallBlocked", std::mem::size_of::()), - ("DamagePrevented", std::mem::size_of::()), - ("HalloweenBossKilled", std::mem::size_of::()), - ("EscapedLootIsland", std::mem::size_of::()), - ("TaggedPlayerAsIt", std::mem::size_of::()), - ("MerasmusStunned", std::mem::size_of::()), - ("MerasmusPropFound", std::mem::size_of::()), - ("HalloweenSkeletonKilled", std::mem::size_of::()), - ("SkeletonKilledQuest", std::mem::size_of::()), - ("SkeletonKingKilledQuest", std::mem::size_of::()), + ( + "PassBallBlocked", + std::mem::size_of::(), + ), + ( + "DamagePrevented", + std::mem::size_of::(), + ), + ( + "HalloweenBossKilled", + std::mem::size_of::(), + ), + ( + "EscapedLootIsland", + std::mem::size_of::(), + ), + ( + "TaggedPlayerAsIt", + std::mem::size_of::(), + ), + ( + "MerasmusStunned", + std::mem::size_of::(), + ), + ( + "MerasmusPropFound", + std::mem::size_of::(), + ), + ( + "HalloweenSkeletonKilled", + std::mem::size_of::(), + ), + ( + "SkeletonKilledQuest", + std::mem::size_of::(), + ), + ( + "SkeletonKingKilledQuest", + std::mem::size_of::(), + ), ("EscapeHell", std::mem::size_of::()), - ("CrossSpectralBridge", std::mem::size_of::()), + ( + "CrossSpectralBridge", + std::mem::size_of::(), + ), ("MiniGameWon", std::mem::size_of::()), ("RespawnGhost", std::mem::size_of::()), ("KillInHell", std::mem::size_of::()), - ("HalloweenDuckCollected", std::mem::size_of::()), + ( + "HalloweenDuckCollected", + std::mem::size_of::(), + ), ("SpecialScore", std::mem::size_of::()), - ("TeamLeaderKilled", std::mem::size_of::()), - ("HalloweenSoulCollected", std::mem::size_of::()), - ("RecalculateTruce", std::mem::size_of::()), - ("DeadRingerCheatDeath", std::mem::size_of::()), + ( + "TeamLeaderKilled", + std::mem::size_of::(), + ), + ( + "HalloweenSoulCollected", + std::mem::size_of::(), + ), + ( + "RecalculateTruce", + std::mem::size_of::(), + ), + ( + "DeadRingerCheatDeath", + std::mem::size_of::(), + ), ("CrossbowHeal", std::mem::size_of::()), - ("DamageMitigated", std::mem::size_of::()), + ( + "DamageMitigated", + std::mem::size_of::(), + ), ("PayloadPushed", std::mem::size_of::()), - ("PlayerAbandonedMatch", std::mem::size_of::()), + ( + "PlayerAbandonedMatch", + std::mem::size_of::(), + ), ("ClDrawline", std::mem::size_of::()), - ("RestartTimerTime", std::mem::size_of::()), - ("WinLimitChanged", std::mem::size_of::()), - ("WinPanelShowScores", std::mem::size_of::()), + ( + "RestartTimerTime", + std::mem::size_of::(), + ), + ( + "WinLimitChanged", + std::mem::size_of::(), + ), + ( + "WinPanelShowScores", + std::mem::size_of::(), + ), ( "TopStreamsRequestFinished", std::mem::size_of::(), ), - ("CompetitiveStateChanged", std::mem::size_of::()), - ("GlobalWarDataUpdated", std::mem::size_of::()), - ("StopWatchChanged", std::mem::size_of::()), + ( + "CompetitiveStateChanged", + std::mem::size_of::(), + ), + ( + "GlobalWarDataUpdated", + std::mem::size_of::(), + ), + ( + "StopWatchChanged", + std::mem::size_of::(), + ), ("DsStop", std::mem::size_of::()), ("DsScreenshot", std::mem::size_of::()), - ("ShowMatchSummary", std::mem::size_of::()), - ("ExperienceChanged", std::mem::size_of::()), + ( + "ShowMatchSummary", + std::mem::size_of::(), + ), + ( + "ExperienceChanged", + std::mem::size_of::(), + ), ("BeginXpLerp", std::mem::size_of::()), - ("MatchmakerStatsUpdated", std::mem::size_of::()), - ("RematchVotePeriodOver", std::mem::size_of::()), - ("RematchFailedToCreate", std::mem::size_of::()), - ("PlayerRematchChange", std::mem::size_of::()), + ( + "MatchmakerStatsUpdated", + std::mem::size_of::(), + ), + ( + "RematchVotePeriodOver", + std::mem::size_of::(), + ), + ( + "RematchFailedToCreate", + std::mem::size_of::(), + ), + ( + "PlayerRematchChange", + std::mem::size_of::(), + ), ("PingUpdated", std::mem::size_of::()), ("MMStatsUpdated", std::mem::size_of::()), - ("PlayerNextMapVoteChange", std::mem::size_of::()), - ("VoteMapsChanged", std::mem::size_of::()), - ("ProtoDefChanged", std::mem::size_of::()), - ("PlayerDomination", std::mem::size_of::()), - ("PlayerRocketPackPushed", std::mem::size_of::()), + ( + "PlayerNextMapVoteChange", + std::mem::size_of::(), + ), + ( + "VoteMapsChanged", + std::mem::size_of::(), + ), + ( + "ProtoDefChanged", + std::mem::size_of::(), + ), + ( + "PlayerDomination", + std::mem::size_of::(), + ), + ( + "PlayerRocketPackPushed", + std::mem::size_of::(), + ), ("QuestRequest", std::mem::size_of::()), ("QuestResponse", std::mem::size_of::()), ("QuestProgress", std::mem::size_of::()), - ("ProjectileRemoved", std::mem::size_of::()), - ("QuestMapDataChanged", std::mem::size_of::()), - ("GasDousedPlayerIgnited", std::mem::size_of::()), - ("QuestTurnInState", std::mem::size_of::()), - ("ItemsAcknowledged", std::mem::size_of::()), + ( + "ProjectileRemoved", + std::mem::size_of::(), + ), + ( + "QuestMapDataChanged", + std::mem::size_of::(), + ), + ( + "GasDousedPlayerIgnited", + std::mem::size_of::(), + ), + ( + "QuestTurnInState", + std::mem::size_of::(), + ), + ( + "ItemsAcknowledged", + std::mem::size_of::(), + ), ("CapperKilled", std::mem::size_of::()), - ("MainMenuStabilized", std::mem::size_of::()), - ("WorldStatusChanged", std::mem::size_of::()), + ( + "MainMenuStabilized", + std::mem::size_of::(), + ), + ( + "WorldStatusChanged", + std::mem::size_of::(), + ), ("HLTVStatus", std::mem::size_of::()), ("HLTVCameraman", std::mem::size_of::()), ("HLTVRankCamera", std::mem::size_of::()), @@ -23516,14 +22946,28 @@ pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> { ("HLTVMessage", std::mem::size_of::()), ("HLTVTitle", std::mem::size_of::()), ("HLTVChat", std::mem::size_of::()), - ("ReplayStartRecord", std::mem::size_of::()), - ("ReplaySessionInfo", std::mem::size_of::()), - ("ReplayEndRecord", std::mem::size_of::()), - ("ReplayReplaysAvailable", std::mem::size_of::()), - ("ReplayServerError", std::mem::size_of::()), + ( + "ReplayStartRecord", + std::mem::size_of::(), + ), + ( + "ReplaySessionInfo", + std::mem::size_of::(), + ), + ( + "ReplayEndRecord", + std::mem::size_of::(), + ), + ( + "ReplayReplaysAvailable", + std::mem::size_of::(), + ), + ( + "ReplayServerError", + std::mem::size_of::(), + ), ] - .iter() - .copied() - .collect() + .iter() + .copied() + .collect() } - diff --git a/src/demo/message/gameevent.rs b/src/demo/message/gameevent.rs index 17cf218..1ca8d59 100644 --- a/src/demo/message/gameevent.rs +++ b/src/demo/message/gameevent.rs @@ -57,13 +57,13 @@ impl Encode for GameEventMessage { .event_definitions .iter() .find(|def| def.event_type == self.event_type) - .ok_or_else(|| { - ParseError::MalformedGameEvent(GameEventError::UnknownType(self.event_type_id)) - })?; - Ok(stream.reserve_length(11, |stream| { + .ok_or(ParseError::MalformedGameEvent(GameEventError::UnknownType( + self.event_type_id, + )))?; + stream.reserve_length(11, |stream| { self.event_type_id.write(stream)?; self.event.write(stream, definition) - })?) + }) } } From 0aaf5db8e5998eca1535655e47f2ea97f230bdd7 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 6 May 2024 18:39:49 +0200 Subject: [PATCH 45/45] nix fmt --- flake.nix | 2 ++ nix/overlay.nix | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 377b0a9..00578eb 100644 --- a/flake.nix +++ b/flake.nix @@ -152,6 +152,8 @@ }; }; + formatter = pkgs.alejandra; + devShells.default = pkgs.mkShell { nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind cargo-insta cargo-semver-checks]; }; diff --git a/nix/overlay.nix b/nix/overlay.nix index 834a6e0..41d3585 100644 --- a/nix/overlay.nix +++ b/nix/overlay.nix @@ -10,5 +10,4 @@ final: prev: { ${final.rustfmt}/bin/rustfmt $out ''; demostf-parser-schema = final.callPackage ./schema.nix {}; - }