1use super::gamevent::{
2 EventValue, GameEventDefinition, GameEventEntry, GameEventValue, RawGameEvent,
3};
4use crate::demo::data::MaybeUtf8String;
5use crate::demo::Stream;
6use crate::{ParseError, Result};
7use bitbuffer::{BitRead, BitWrite, BitWriteStream, LittleEndian};
8use serde::{Deserialize, Serialize};
9fn read_value<'a, T: EventValue + BitRead<'a, LittleEndian> + Default>(
10 stream: &mut Stream<'a>,
11 entry: Option<&GameEventEntry>,
12 name: &'static str,
13) -> Result<T> {
14 let entry = match entry {
15 Some(entry) => entry,
16 None => {
17 return Ok(T::default());
18 }
19 };
20 if T::value_type() != entry.kind {
21 return Err(ParseError::InvalidGameEvent {
22 expected_type: T::value_type(),
23 name,
24 found_type: entry.kind,
25 });
26 }
27 Ok(T::read(stream)?)
28}
29#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
30#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
31pub struct ServerSpawnEvent {
32 pub hostname: MaybeUtf8String,
33 pub address: MaybeUtf8String,
34 pub ip: u32,
35 pub port: u16,
36 pub game: MaybeUtf8String,
37 pub map_name: MaybeUtf8String,
38 pub max_players: u32,
39 pub os: MaybeUtf8String,
40 pub dedicated: bool,
41 pub password: bool,
42}
43impl ServerSpawnEvent {
44 #[allow(unused_variables)]
45 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
46 Ok(ServerSpawnEvent {
47 hostname: read_value::<MaybeUtf8String>(
48 stream,
49 definition.get_entry("hostname"),
50 "hostname",
51 )?,
52 address: read_value::<MaybeUtf8String>(
53 stream,
54 definition.get_entry("address"),
55 "address",
56 )?,
57 ip: read_value::<u32>(stream, definition.get_entry("ip"), "ip")?,
58 port: read_value::<u16>(stream, definition.get_entry("port"), "port")?,
59 game: read_value::<MaybeUtf8String>(stream, definition.get_entry("game"), "game")?,
60 map_name: read_value::<MaybeUtf8String>(
61 stream,
62 definition.get_entry("mapname"),
63 "map_name",
64 )?,
65 max_players: read_value::<u32>(
66 stream,
67 definition.get_entry("maxplayers"),
68 "max_players",
69 )?,
70 os: read_value::<MaybeUtf8String>(stream, definition.get_entry("os"), "os")?,
71 dedicated: read_value::<bool>(stream, definition.get_entry("dedicated"), "dedicated")?,
72 password: read_value::<bool>(stream, definition.get_entry("password"), "password")?,
73 })
74 }
75 #[allow(unused_variables)]
76 fn get_field(&self, field: &str) -> Result<GameEventValue> {
77 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
78 match field {
79 "hostname" => Ok(self.hostname.clone().into()),
80 "address" => Ok(self.address.clone().into()),
81 "ip" => Ok(self.ip.clone().into()),
82 "port" => Ok(self.port.clone().into()),
83 "game" => Ok(self.game.clone().into()),
84 "mapname" => Ok(self.map_name.clone().into()),
85 "maxplayers" => Ok(self.max_players.clone().into()),
86 "os" => Ok(self.os.clone().into()),
87 "dedicated" => Ok(self.dedicated.clone().into()),
88 "password" => Ok(self.password.clone().into()),
89 _ => Err(ParseError::MissingGameEventValue {
90 ty: "ServerSpawn",
91 field: field.into(),
92 }),
93 }
94 }
95 #[allow(unused_variables)]
96 fn write(
97 &self,
98 stream: &mut BitWriteStream<LittleEndian>,
99 definition: &GameEventDefinition,
100 ) -> Result<()> {
101 for entry in &definition.entries {
102 let value = self
103 .get_field(&entry.name)
104 .unwrap_or_else(|_| entry.kind.default_value());
105 stream.write(&value)?;
106 }
107 Ok(())
108 }
109}
110#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
111#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
112pub struct ServerChangeLevelFailedEvent {
113 pub level_name: MaybeUtf8String,
114}
115impl ServerChangeLevelFailedEvent {
116 #[allow(unused_variables)]
117 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
118 Ok(ServerChangeLevelFailedEvent {
119 level_name: read_value::<MaybeUtf8String>(
120 stream,
121 definition.get_entry("levelname"),
122 "level_name",
123 )?,
124 })
125 }
126 #[allow(unused_variables)]
127 fn get_field(&self, field: &str) -> Result<GameEventValue> {
128 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
129 match field {
130 "levelname" => Ok(self.level_name.clone().into()),
131 _ => Err(ParseError::MissingGameEventValue {
132 ty: "ServerChangeLevelFailed",
133 field: field.into(),
134 }),
135 }
136 }
137 #[allow(unused_variables)]
138 fn write(
139 &self,
140 stream: &mut BitWriteStream<LittleEndian>,
141 definition: &GameEventDefinition,
142 ) -> Result<()> {
143 for entry in &definition.entries {
144 let value = self
145 .get_field(&entry.name)
146 .unwrap_or_else(|_| entry.kind.default_value());
147 stream.write(&value)?;
148 }
149 Ok(())
150 }
151}
152#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
153#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
154pub struct ServerShutdownEvent {
155 pub reason: MaybeUtf8String,
156}
157impl ServerShutdownEvent {
158 #[allow(unused_variables)]
159 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
160 Ok(ServerShutdownEvent {
161 reason: read_value::<MaybeUtf8String>(
162 stream,
163 definition.get_entry("reason"),
164 "reason",
165 )?,
166 })
167 }
168 #[allow(unused_variables)]
169 fn get_field(&self, field: &str) -> Result<GameEventValue> {
170 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
171 match field {
172 "reason" => Ok(self.reason.clone().into()),
173 _ => Err(ParseError::MissingGameEventValue {
174 ty: "ServerShutdown",
175 field: field.into(),
176 }),
177 }
178 }
179 #[allow(unused_variables)]
180 fn write(
181 &self,
182 stream: &mut BitWriteStream<LittleEndian>,
183 definition: &GameEventDefinition,
184 ) -> Result<()> {
185 for entry in &definition.entries {
186 let value = self
187 .get_field(&entry.name)
188 .unwrap_or_else(|_| entry.kind.default_value());
189 stream.write(&value)?;
190 }
191 Ok(())
192 }
193}
194#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
195#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
196pub struct ServerCvarEvent {
197 pub cvar_name: MaybeUtf8String,
198 pub cvar_value: MaybeUtf8String,
199}
200impl ServerCvarEvent {
201 #[allow(unused_variables)]
202 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
203 Ok(ServerCvarEvent {
204 cvar_name: read_value::<MaybeUtf8String>(
205 stream,
206 definition.get_entry("cvarname"),
207 "cvar_name",
208 )?,
209 cvar_value: read_value::<MaybeUtf8String>(
210 stream,
211 definition.get_entry("cvarvalue"),
212 "cvar_value",
213 )?,
214 })
215 }
216 #[allow(unused_variables)]
217 fn get_field(&self, field: &str) -> Result<GameEventValue> {
218 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
219 match field {
220 "cvarname" => Ok(self.cvar_name.clone().into()),
221 "cvarvalue" => Ok(self.cvar_value.clone().into()),
222 _ => Err(ParseError::MissingGameEventValue {
223 ty: "ServerCvar",
224 field: field.into(),
225 }),
226 }
227 }
228 #[allow(unused_variables)]
229 fn write(
230 &self,
231 stream: &mut BitWriteStream<LittleEndian>,
232 definition: &GameEventDefinition,
233 ) -> Result<()> {
234 for entry in &definition.entries {
235 let value = self
236 .get_field(&entry.name)
237 .unwrap_or_else(|_| entry.kind.default_value());
238 stream.write(&value)?;
239 }
240 Ok(())
241 }
242}
243#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
244#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
245pub struct ServerMessageEvent {
246 pub text: MaybeUtf8String,
247}
248impl ServerMessageEvent {
249 #[allow(unused_variables)]
250 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
251 Ok(ServerMessageEvent {
252 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
253 })
254 }
255 #[allow(unused_variables)]
256 fn get_field(&self, field: &str) -> Result<GameEventValue> {
257 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
258 match field {
259 "text" => Ok(self.text.clone().into()),
260 _ => Err(ParseError::MissingGameEventValue {
261 ty: "ServerMessage",
262 field: field.into(),
263 }),
264 }
265 }
266 #[allow(unused_variables)]
267 fn write(
268 &self,
269 stream: &mut BitWriteStream<LittleEndian>,
270 definition: &GameEventDefinition,
271 ) -> Result<()> {
272 for entry in &definition.entries {
273 let value = self
274 .get_field(&entry.name)
275 .unwrap_or_else(|_| entry.kind.default_value());
276 stream.write(&value)?;
277 }
278 Ok(())
279 }
280}
281#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
282#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
283pub struct ServerAddBanEvent {
284 pub name: MaybeUtf8String,
285 pub user_id: u16,
286 pub network_id: MaybeUtf8String,
287 pub ip: MaybeUtf8String,
288 pub duration: MaybeUtf8String,
289 pub by: MaybeUtf8String,
290 pub kicked: bool,
291}
292impl ServerAddBanEvent {
293 #[allow(unused_variables)]
294 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
295 Ok(ServerAddBanEvent {
296 name: read_value::<MaybeUtf8String>(stream, definition.get_entry("name"), "name")?,
297 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
298 network_id: read_value::<MaybeUtf8String>(
299 stream,
300 definition.get_entry("networkid"),
301 "network_id",
302 )?,
303 ip: read_value::<MaybeUtf8String>(stream, definition.get_entry("ip"), "ip")?,
304 duration: read_value::<MaybeUtf8String>(
305 stream,
306 definition.get_entry("duration"),
307 "duration",
308 )?,
309 by: read_value::<MaybeUtf8String>(stream, definition.get_entry("by"), "by")?,
310 kicked: read_value::<bool>(stream, definition.get_entry("kicked"), "kicked")?,
311 })
312 }
313 #[allow(unused_variables)]
314 fn get_field(&self, field: &str) -> Result<GameEventValue> {
315 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
316 match field {
317 "name" => Ok(self.name.clone().into()),
318 "userid" => Ok(self.user_id.clone().into()),
319 "networkid" => Ok(self.network_id.clone().into()),
320 "ip" => Ok(self.ip.clone().into()),
321 "duration" => Ok(self.duration.clone().into()),
322 "by" => Ok(self.by.clone().into()),
323 "kicked" => Ok(self.kicked.clone().into()),
324 _ => Err(ParseError::MissingGameEventValue {
325 ty: "ServerAddBan",
326 field: field.into(),
327 }),
328 }
329 }
330 #[allow(unused_variables)]
331 fn write(
332 &self,
333 stream: &mut BitWriteStream<LittleEndian>,
334 definition: &GameEventDefinition,
335 ) -> Result<()> {
336 for entry in &definition.entries {
337 let value = self
338 .get_field(&entry.name)
339 .unwrap_or_else(|_| entry.kind.default_value());
340 stream.write(&value)?;
341 }
342 Ok(())
343 }
344}
345#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
346#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
347pub struct ServerRemoveBanEvent {
348 pub network_id: MaybeUtf8String,
349 pub ip: MaybeUtf8String,
350 pub by: MaybeUtf8String,
351}
352impl ServerRemoveBanEvent {
353 #[allow(unused_variables)]
354 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
355 Ok(ServerRemoveBanEvent {
356 network_id: read_value::<MaybeUtf8String>(
357 stream,
358 definition.get_entry("networkid"),
359 "network_id",
360 )?,
361 ip: read_value::<MaybeUtf8String>(stream, definition.get_entry("ip"), "ip")?,
362 by: read_value::<MaybeUtf8String>(stream, definition.get_entry("by"), "by")?,
363 })
364 }
365 #[allow(unused_variables)]
366 fn get_field(&self, field: &str) -> Result<GameEventValue> {
367 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
368 match field {
369 "networkid" => Ok(self.network_id.clone().into()),
370 "ip" => Ok(self.ip.clone().into()),
371 "by" => Ok(self.by.clone().into()),
372 _ => Err(ParseError::MissingGameEventValue {
373 ty: "ServerRemoveBan",
374 field: field.into(),
375 }),
376 }
377 }
378 #[allow(unused_variables)]
379 fn write(
380 &self,
381 stream: &mut BitWriteStream<LittleEndian>,
382 definition: &GameEventDefinition,
383 ) -> Result<()> {
384 for entry in &definition.entries {
385 let value = self
386 .get_field(&entry.name)
387 .unwrap_or_else(|_| entry.kind.default_value());
388 stream.write(&value)?;
389 }
390 Ok(())
391 }
392}
393#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
394#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
395pub struct PlayerConnectEvent {
396 pub name: MaybeUtf8String,
397 pub index: u8,
398 pub user_id: u16,
399 pub network_id: MaybeUtf8String,
400 pub address: MaybeUtf8String,
401 pub bot: u16,
402}
403impl PlayerConnectEvent {
404 #[allow(unused_variables)]
405 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
406 Ok(PlayerConnectEvent {
407 name: read_value::<MaybeUtf8String>(stream, definition.get_entry("name"), "name")?,
408 index: read_value::<u8>(stream, definition.get_entry("index"), "index")?,
409 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
410 network_id: read_value::<MaybeUtf8String>(
411 stream,
412 definition.get_entry("networkid"),
413 "network_id",
414 )?,
415 address: read_value::<MaybeUtf8String>(
416 stream,
417 definition.get_entry("address"),
418 "address",
419 )?,
420 bot: read_value::<u16>(stream, definition.get_entry("bot"), "bot")?,
421 })
422 }
423 #[allow(unused_variables)]
424 fn get_field(&self, field: &str) -> Result<GameEventValue> {
425 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
426 match field {
427 "name" => Ok(self.name.clone().into()),
428 "index" => Ok(self.index.clone().into()),
429 "userid" => Ok(self.user_id.clone().into()),
430 "networkid" => Ok(self.network_id.clone().into()),
431 "address" => Ok(self.address.clone().into()),
432 "bot" => Ok(self.bot.clone().into()),
433 _ => Err(ParseError::MissingGameEventValue {
434 ty: "PlayerConnect",
435 field: field.into(),
436 }),
437 }
438 }
439 #[allow(unused_variables)]
440 fn write(
441 &self,
442 stream: &mut BitWriteStream<LittleEndian>,
443 definition: &GameEventDefinition,
444 ) -> Result<()> {
445 for entry in &definition.entries {
446 let value = self
447 .get_field(&entry.name)
448 .unwrap_or_else(|_| entry.kind.default_value());
449 stream.write(&value)?;
450 }
451 Ok(())
452 }
453}
454#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
455#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
456pub struct PlayerConnectClientEvent {
457 pub name: MaybeUtf8String,
458 pub index: u8,
459 pub user_id: u16,
460 pub network_id: MaybeUtf8String,
461 pub bot: u16,
462}
463impl PlayerConnectClientEvent {
464 #[allow(unused_variables)]
465 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
466 Ok(PlayerConnectClientEvent {
467 name: read_value::<MaybeUtf8String>(stream, definition.get_entry("name"), "name")?,
468 index: read_value::<u8>(stream, definition.get_entry("index"), "index")?,
469 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
470 network_id: read_value::<MaybeUtf8String>(
471 stream,
472 definition.get_entry("networkid"),
473 "network_id",
474 )?,
475 bot: read_value::<u16>(stream, definition.get_entry("bot"), "bot")?,
476 })
477 }
478 #[allow(unused_variables)]
479 fn get_field(&self, field: &str) -> Result<GameEventValue> {
480 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
481 match field {
482 "name" => Ok(self.name.clone().into()),
483 "index" => Ok(self.index.clone().into()),
484 "userid" => Ok(self.user_id.clone().into()),
485 "networkid" => Ok(self.network_id.clone().into()),
486 "bot" => Ok(self.bot.clone().into()),
487 _ => Err(ParseError::MissingGameEventValue {
488 ty: "PlayerConnectClient",
489 field: field.into(),
490 }),
491 }
492 }
493 #[allow(unused_variables)]
494 fn write(
495 &self,
496 stream: &mut BitWriteStream<LittleEndian>,
497 definition: &GameEventDefinition,
498 ) -> Result<()> {
499 for entry in &definition.entries {
500 let value = self
501 .get_field(&entry.name)
502 .unwrap_or_else(|_| entry.kind.default_value());
503 stream.write(&value)?;
504 }
505 Ok(())
506 }
507}
508#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
509#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
510pub struct PlayerInfoEvent {
511 pub name: MaybeUtf8String,
512 pub index: u8,
513 pub user_id: u16,
514 pub network_id: MaybeUtf8String,
515 pub bot: bool,
516}
517impl PlayerInfoEvent {
518 #[allow(unused_variables)]
519 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
520 Ok(PlayerInfoEvent {
521 name: read_value::<MaybeUtf8String>(stream, definition.get_entry("name"), "name")?,
522 index: read_value::<u8>(stream, definition.get_entry("index"), "index")?,
523 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
524 network_id: read_value::<MaybeUtf8String>(
525 stream,
526 definition.get_entry("networkid"),
527 "network_id",
528 )?,
529 bot: read_value::<bool>(stream, definition.get_entry("bot"), "bot")?,
530 })
531 }
532 #[allow(unused_variables)]
533 fn get_field(&self, field: &str) -> Result<GameEventValue> {
534 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
535 match field {
536 "name" => Ok(self.name.clone().into()),
537 "index" => Ok(self.index.clone().into()),
538 "userid" => Ok(self.user_id.clone().into()),
539 "networkid" => Ok(self.network_id.clone().into()),
540 "bot" => Ok(self.bot.clone().into()),
541 _ => Err(ParseError::MissingGameEventValue {
542 ty: "PlayerInfo",
543 field: field.into(),
544 }),
545 }
546 }
547 #[allow(unused_variables)]
548 fn write(
549 &self,
550 stream: &mut BitWriteStream<LittleEndian>,
551 definition: &GameEventDefinition,
552 ) -> Result<()> {
553 for entry in &definition.entries {
554 let value = self
555 .get_field(&entry.name)
556 .unwrap_or_else(|_| entry.kind.default_value());
557 stream.write(&value)?;
558 }
559 Ok(())
560 }
561}
562#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
563#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
564pub struct PlayerDisconnectEvent {
565 pub user_id: u16,
566 pub reason: MaybeUtf8String,
567 pub name: MaybeUtf8String,
568 pub network_id: MaybeUtf8String,
569 pub bot: u16,
570}
571impl PlayerDisconnectEvent {
572 #[allow(unused_variables)]
573 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
574 Ok(PlayerDisconnectEvent {
575 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
576 reason: read_value::<MaybeUtf8String>(
577 stream,
578 definition.get_entry("reason"),
579 "reason",
580 )?,
581 name: read_value::<MaybeUtf8String>(stream, definition.get_entry("name"), "name")?,
582 network_id: read_value::<MaybeUtf8String>(
583 stream,
584 definition.get_entry("networkid"),
585 "network_id",
586 )?,
587 bot: read_value::<u16>(stream, definition.get_entry("bot"), "bot")?,
588 })
589 }
590 #[allow(unused_variables)]
591 fn get_field(&self, field: &str) -> Result<GameEventValue> {
592 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
593 match field {
594 "userid" => Ok(self.user_id.clone().into()),
595 "reason" => Ok(self.reason.clone().into()),
596 "name" => Ok(self.name.clone().into()),
597 "networkid" => Ok(self.network_id.clone().into()),
598 "bot" => Ok(self.bot.clone().into()),
599 _ => Err(ParseError::MissingGameEventValue {
600 ty: "PlayerDisconnect",
601 field: field.into(),
602 }),
603 }
604 }
605 #[allow(unused_variables)]
606 fn write(
607 &self,
608 stream: &mut BitWriteStream<LittleEndian>,
609 definition: &GameEventDefinition,
610 ) -> Result<()> {
611 for entry in &definition.entries {
612 let value = self
613 .get_field(&entry.name)
614 .unwrap_or_else(|_| entry.kind.default_value());
615 stream.write(&value)?;
616 }
617 Ok(())
618 }
619}
620#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
621#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
622pub struct PlayerActivateEvent {
623 pub user_id: u16,
624}
625impl PlayerActivateEvent {
626 #[allow(unused_variables)]
627 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
628 Ok(PlayerActivateEvent {
629 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
630 })
631 }
632 #[allow(unused_variables)]
633 fn get_field(&self, field: &str) -> Result<GameEventValue> {
634 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
635 match field {
636 "userid" => Ok(self.user_id.clone().into()),
637 _ => Err(ParseError::MissingGameEventValue {
638 ty: "PlayerActivate",
639 field: field.into(),
640 }),
641 }
642 }
643 #[allow(unused_variables)]
644 fn write(
645 &self,
646 stream: &mut BitWriteStream<LittleEndian>,
647 definition: &GameEventDefinition,
648 ) -> Result<()> {
649 for entry in &definition.entries {
650 let value = self
651 .get_field(&entry.name)
652 .unwrap_or_else(|_| entry.kind.default_value());
653 stream.write(&value)?;
654 }
655 Ok(())
656 }
657}
658#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
659#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
660pub struct PlayerSayEvent {
661 pub user_id: u16,
662 pub text: MaybeUtf8String,
663}
664impl PlayerSayEvent {
665 #[allow(unused_variables)]
666 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
667 Ok(PlayerSayEvent {
668 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
669 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
670 })
671 }
672 #[allow(unused_variables)]
673 fn get_field(&self, field: &str) -> Result<GameEventValue> {
674 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
675 match field {
676 "userid" => Ok(self.user_id.clone().into()),
677 "text" => Ok(self.text.clone().into()),
678 _ => Err(ParseError::MissingGameEventValue {
679 ty: "PlayerSay",
680 field: field.into(),
681 }),
682 }
683 }
684 #[allow(unused_variables)]
685 fn write(
686 &self,
687 stream: &mut BitWriteStream<LittleEndian>,
688 definition: &GameEventDefinition,
689 ) -> Result<()> {
690 for entry in &definition.entries {
691 let value = self
692 .get_field(&entry.name)
693 .unwrap_or_else(|_| entry.kind.default_value());
694 stream.write(&value)?;
695 }
696 Ok(())
697 }
698}
699#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
700#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
701pub struct ClientDisconnectEvent {
702 pub message: MaybeUtf8String,
703}
704impl ClientDisconnectEvent {
705 #[allow(unused_variables)]
706 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
707 Ok(ClientDisconnectEvent {
708 message: read_value::<MaybeUtf8String>(
709 stream,
710 definition.get_entry("message"),
711 "message",
712 )?,
713 })
714 }
715 #[allow(unused_variables)]
716 fn get_field(&self, field: &str) -> Result<GameEventValue> {
717 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
718 match field {
719 "message" => Ok(self.message.clone().into()),
720 _ => Err(ParseError::MissingGameEventValue {
721 ty: "ClientDisconnect",
722 field: field.into(),
723 }),
724 }
725 }
726 #[allow(unused_variables)]
727 fn write(
728 &self,
729 stream: &mut BitWriteStream<LittleEndian>,
730 definition: &GameEventDefinition,
731 ) -> Result<()> {
732 for entry in &definition.entries {
733 let value = self
734 .get_field(&entry.name)
735 .unwrap_or_else(|_| entry.kind.default_value());
736 stream.write(&value)?;
737 }
738 Ok(())
739 }
740}
741#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
742#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
743pub struct ClientBeginConnectEvent {
744 pub address: MaybeUtf8String,
745 pub ip: u32,
746 pub port: u16,
747 pub source: MaybeUtf8String,
748}
749impl ClientBeginConnectEvent {
750 #[allow(unused_variables)]
751 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
752 Ok(ClientBeginConnectEvent {
753 address: read_value::<MaybeUtf8String>(
754 stream,
755 definition.get_entry("address"),
756 "address",
757 )?,
758 ip: read_value::<u32>(stream, definition.get_entry("ip"), "ip")?,
759 port: read_value::<u16>(stream, definition.get_entry("port"), "port")?,
760 source: read_value::<MaybeUtf8String>(
761 stream,
762 definition.get_entry("source"),
763 "source",
764 )?,
765 })
766 }
767 #[allow(unused_variables)]
768 fn get_field(&self, field: &str) -> Result<GameEventValue> {
769 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
770 match field {
771 "address" => Ok(self.address.clone().into()),
772 "ip" => Ok(self.ip.clone().into()),
773 "port" => Ok(self.port.clone().into()),
774 "source" => Ok(self.source.clone().into()),
775 _ => Err(ParseError::MissingGameEventValue {
776 ty: "ClientBeginConnect",
777 field: field.into(),
778 }),
779 }
780 }
781 #[allow(unused_variables)]
782 fn write(
783 &self,
784 stream: &mut BitWriteStream<LittleEndian>,
785 definition: &GameEventDefinition,
786 ) -> Result<()> {
787 for entry in &definition.entries {
788 let value = self
789 .get_field(&entry.name)
790 .unwrap_or_else(|_| entry.kind.default_value());
791 stream.write(&value)?;
792 }
793 Ok(())
794 }
795}
796#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
797#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
798pub struct ClientConnectedEvent {
799 pub address: MaybeUtf8String,
800 pub ip: u32,
801 pub port: u16,
802}
803impl ClientConnectedEvent {
804 #[allow(unused_variables)]
805 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
806 Ok(ClientConnectedEvent {
807 address: read_value::<MaybeUtf8String>(
808 stream,
809 definition.get_entry("address"),
810 "address",
811 )?,
812 ip: read_value::<u32>(stream, definition.get_entry("ip"), "ip")?,
813 port: read_value::<u16>(stream, definition.get_entry("port"), "port")?,
814 })
815 }
816 #[allow(unused_variables)]
817 fn get_field(&self, field: &str) -> Result<GameEventValue> {
818 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
819 match field {
820 "address" => Ok(self.address.clone().into()),
821 "ip" => Ok(self.ip.clone().into()),
822 "port" => Ok(self.port.clone().into()),
823 _ => Err(ParseError::MissingGameEventValue {
824 ty: "ClientConnected",
825 field: field.into(),
826 }),
827 }
828 }
829 #[allow(unused_variables)]
830 fn write(
831 &self,
832 stream: &mut BitWriteStream<LittleEndian>,
833 definition: &GameEventDefinition,
834 ) -> Result<()> {
835 for entry in &definition.entries {
836 let value = self
837 .get_field(&entry.name)
838 .unwrap_or_else(|_| entry.kind.default_value());
839 stream.write(&value)?;
840 }
841 Ok(())
842 }
843}
844#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
845#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
846pub struct ClientFullConnectEvent {
847 pub address: MaybeUtf8String,
848 pub ip: u32,
849 pub port: u16,
850}
851impl ClientFullConnectEvent {
852 #[allow(unused_variables)]
853 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
854 Ok(ClientFullConnectEvent {
855 address: read_value::<MaybeUtf8String>(
856 stream,
857 definition.get_entry("address"),
858 "address",
859 )?,
860 ip: read_value::<u32>(stream, definition.get_entry("ip"), "ip")?,
861 port: read_value::<u16>(stream, definition.get_entry("port"), "port")?,
862 })
863 }
864 #[allow(unused_variables)]
865 fn get_field(&self, field: &str) -> Result<GameEventValue> {
866 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
867 match field {
868 "address" => Ok(self.address.clone().into()),
869 "ip" => Ok(self.ip.clone().into()),
870 "port" => Ok(self.port.clone().into()),
871 _ => Err(ParseError::MissingGameEventValue {
872 ty: "ClientFullConnect",
873 field: field.into(),
874 }),
875 }
876 }
877 #[allow(unused_variables)]
878 fn write(
879 &self,
880 stream: &mut BitWriteStream<LittleEndian>,
881 definition: &GameEventDefinition,
882 ) -> Result<()> {
883 for entry in &definition.entries {
884 let value = self
885 .get_field(&entry.name)
886 .unwrap_or_else(|_| entry.kind.default_value());
887 stream.write(&value)?;
888 }
889 Ok(())
890 }
891}
892#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
893#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
894pub struct HostQuitEvent {}
895impl HostQuitEvent {
896 #[allow(unused_variables)]
897 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
898 Ok(HostQuitEvent {})
899 }
900 #[allow(unused_variables)]
901 fn get_field(&self, field: &str) -> Result<GameEventValue> {
902 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
903 match field {
904 _ => Err(ParseError::MissingGameEventValue {
905 ty: "HostQuit",
906 field: field.into(),
907 }),
908 }
909 }
910 #[allow(unused_variables)]
911 fn write(
912 &self,
913 stream: &mut BitWriteStream<LittleEndian>,
914 definition: &GameEventDefinition,
915 ) -> Result<()> {
916 for entry in &definition.entries {
917 let value = self
918 .get_field(&entry.name)
919 .unwrap_or_else(|_| entry.kind.default_value());
920 stream.write(&value)?;
921 }
922 Ok(())
923 }
924}
925#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
926#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
927pub struct TeamInfoEvent {
928 pub team_id: u8,
929 pub team_name: MaybeUtf8String,
930}
931impl TeamInfoEvent {
932 #[allow(unused_variables)]
933 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
934 Ok(TeamInfoEvent {
935 team_id: read_value::<u8>(stream, definition.get_entry("teamid"), "team_id")?,
936 team_name: read_value::<MaybeUtf8String>(
937 stream,
938 definition.get_entry("teamname"),
939 "team_name",
940 )?,
941 })
942 }
943 #[allow(unused_variables)]
944 fn get_field(&self, field: &str) -> Result<GameEventValue> {
945 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
946 match field {
947 "teamid" => Ok(self.team_id.clone().into()),
948 "teamname" => Ok(self.team_name.clone().into()),
949 _ => Err(ParseError::MissingGameEventValue {
950 ty: "TeamInfo",
951 field: field.into(),
952 }),
953 }
954 }
955 #[allow(unused_variables)]
956 fn write(
957 &self,
958 stream: &mut BitWriteStream<LittleEndian>,
959 definition: &GameEventDefinition,
960 ) -> Result<()> {
961 for entry in &definition.entries {
962 let value = self
963 .get_field(&entry.name)
964 .unwrap_or_else(|_| entry.kind.default_value());
965 stream.write(&value)?;
966 }
967 Ok(())
968 }
969}
970#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
971#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
972pub struct TeamScoreEvent {
973 pub team_id: u8,
974 pub score: u16,
975}
976impl TeamScoreEvent {
977 #[allow(unused_variables)]
978 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
979 Ok(TeamScoreEvent {
980 team_id: read_value::<u8>(stream, definition.get_entry("teamid"), "team_id")?,
981 score: read_value::<u16>(stream, definition.get_entry("score"), "score")?,
982 })
983 }
984 #[allow(unused_variables)]
985 fn get_field(&self, field: &str) -> Result<GameEventValue> {
986 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
987 match field {
988 "teamid" => Ok(self.team_id.clone().into()),
989 "score" => Ok(self.score.clone().into()),
990 _ => Err(ParseError::MissingGameEventValue {
991 ty: "TeamScore",
992 field: field.into(),
993 }),
994 }
995 }
996 #[allow(unused_variables)]
997 fn write(
998 &self,
999 stream: &mut BitWriteStream<LittleEndian>,
1000 definition: &GameEventDefinition,
1001 ) -> Result<()> {
1002 for entry in &definition.entries {
1003 let value = self
1004 .get_field(&entry.name)
1005 .unwrap_or_else(|_| entry.kind.default_value());
1006 stream.write(&value)?;
1007 }
1008 Ok(())
1009 }
1010}
1011#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1012#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1013pub struct TeamPlayBroadcastAudioEvent {
1014 pub team: u8,
1015 pub sound: MaybeUtf8String,
1016 pub additional_flags: u16,
1017 pub player: u16,
1018}
1019impl TeamPlayBroadcastAudioEvent {
1020 #[allow(unused_variables)]
1021 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1022 Ok(TeamPlayBroadcastAudioEvent {
1023 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
1024 sound: read_value::<MaybeUtf8String>(stream, definition.get_entry("sound"), "sound")?,
1025 additional_flags: read_value::<u16>(
1026 stream,
1027 definition.get_entry("additional_flags"),
1028 "additional_flags",
1029 )?,
1030 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
1031 })
1032 }
1033 #[allow(unused_variables)]
1034 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1035 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1036 match field {
1037 "team" => Ok(self.team.clone().into()),
1038 "sound" => Ok(self.sound.clone().into()),
1039 "additional_flags" => Ok(self.additional_flags.clone().into()),
1040 "player" => Ok(self.player.clone().into()),
1041 _ => Err(ParseError::MissingGameEventValue {
1042 ty: "TeamPlayBroadcastAudio",
1043 field: field.into(),
1044 }),
1045 }
1046 }
1047 #[allow(unused_variables)]
1048 fn write(
1049 &self,
1050 stream: &mut BitWriteStream<LittleEndian>,
1051 definition: &GameEventDefinition,
1052 ) -> Result<()> {
1053 for entry in &definition.entries {
1054 let value = self
1055 .get_field(&entry.name)
1056 .unwrap_or_else(|_| entry.kind.default_value());
1057 stream.write(&value)?;
1058 }
1059 Ok(())
1060 }
1061}
1062#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1063#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1064pub struct PlayerTeamEvent {
1065 pub user_id: u16,
1066 pub team: u8,
1067 pub old_team: u8,
1068 pub disconnect: bool,
1069 pub auto_team: bool,
1070 pub silent: bool,
1071 pub name: MaybeUtf8String,
1072}
1073impl PlayerTeamEvent {
1074 #[allow(unused_variables)]
1075 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1076 Ok(PlayerTeamEvent {
1077 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1078 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
1079 old_team: read_value::<u8>(stream, definition.get_entry("oldteam"), "old_team")?,
1080 disconnect: read_value::<bool>(
1081 stream,
1082 definition.get_entry("disconnect"),
1083 "disconnect",
1084 )?,
1085 auto_team: read_value::<bool>(stream, definition.get_entry("autoteam"), "auto_team")?,
1086 silent: read_value::<bool>(stream, definition.get_entry("silent"), "silent")?,
1087 name: read_value::<MaybeUtf8String>(stream, definition.get_entry("name"), "name")?,
1088 })
1089 }
1090 #[allow(unused_variables)]
1091 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1092 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1093 match field {
1094 "userid" => Ok(self.user_id.clone().into()),
1095 "team" => Ok(self.team.clone().into()),
1096 "oldteam" => Ok(self.old_team.clone().into()),
1097 "disconnect" => Ok(self.disconnect.clone().into()),
1098 "autoteam" => Ok(self.auto_team.clone().into()),
1099 "silent" => Ok(self.silent.clone().into()),
1100 "name" => Ok(self.name.clone().into()),
1101 _ => Err(ParseError::MissingGameEventValue {
1102 ty: "PlayerTeam",
1103 field: field.into(),
1104 }),
1105 }
1106 }
1107 #[allow(unused_variables)]
1108 fn write(
1109 &self,
1110 stream: &mut BitWriteStream<LittleEndian>,
1111 definition: &GameEventDefinition,
1112 ) -> Result<()> {
1113 for entry in &definition.entries {
1114 let value = self
1115 .get_field(&entry.name)
1116 .unwrap_or_else(|_| entry.kind.default_value());
1117 stream.write(&value)?;
1118 }
1119 Ok(())
1120 }
1121}
1122#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1123#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1124pub struct PlayerClassEvent {
1125 pub user_id: u16,
1126 pub class: MaybeUtf8String,
1127}
1128impl PlayerClassEvent {
1129 #[allow(unused_variables)]
1130 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1131 Ok(PlayerClassEvent {
1132 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1133 class: read_value::<MaybeUtf8String>(stream, definition.get_entry("class"), "class")?,
1134 })
1135 }
1136 #[allow(unused_variables)]
1137 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1138 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1139 match field {
1140 "userid" => Ok(self.user_id.clone().into()),
1141 "class" => Ok(self.class.clone().into()),
1142 _ => Err(ParseError::MissingGameEventValue {
1143 ty: "PlayerClass",
1144 field: field.into(),
1145 }),
1146 }
1147 }
1148 #[allow(unused_variables)]
1149 fn write(
1150 &self,
1151 stream: &mut BitWriteStream<LittleEndian>,
1152 definition: &GameEventDefinition,
1153 ) -> Result<()> {
1154 for entry in &definition.entries {
1155 let value = self
1156 .get_field(&entry.name)
1157 .unwrap_or_else(|_| entry.kind.default_value());
1158 stream.write(&value)?;
1159 }
1160 Ok(())
1161 }
1162}
1163#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1164#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1165pub struct PlayerDeathEvent {
1166 pub user_id: u16,
1167 pub victim_ent_index: u32,
1168 pub inflictor_ent_index: u32,
1169 pub attacker: u16,
1170 pub weapon: MaybeUtf8String,
1171 pub weapon_id: u16,
1172 pub damage_bits: u32,
1173 pub custom_kill: u16,
1174 pub assister: u16,
1175 pub weapon_log_class_name: MaybeUtf8String,
1176 pub stun_flags: u16,
1177 pub death_flags: u16,
1178 pub silent_kill: bool,
1179 pub player_penetrate_count: u16,
1180 pub assister_fallback: MaybeUtf8String,
1181 pub kill_streak_total: u16,
1182 pub kill_streak_wep: u16,
1183 pub kill_streak_assist: u16,
1184 pub kill_streak_victim: u16,
1185 pub ducks_streaked: u16,
1186 pub duck_streak_total: u16,
1187 pub duck_streak_assist: u16,
1188 pub duck_streak_victim: u16,
1189 pub rocket_jump: bool,
1190 pub weapon_def_index: u32,
1191 pub crit_type: u16,
1192}
1193impl PlayerDeathEvent {
1194 #[allow(unused_variables)]
1195 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1196 Ok(PlayerDeathEvent {
1197 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1198 victim_ent_index: read_value::<u32>(
1199 stream,
1200 definition.get_entry("victim_entindex"),
1201 "victim_ent_index",
1202 )?,
1203 inflictor_ent_index: read_value::<u32>(
1204 stream,
1205 definition.get_entry("inflictor_entindex"),
1206 "inflictor_ent_index",
1207 )?,
1208 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
1209 weapon: read_value::<MaybeUtf8String>(
1210 stream,
1211 definition.get_entry("weapon"),
1212 "weapon",
1213 )?,
1214 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
1215 damage_bits: read_value::<u32>(
1216 stream,
1217 definition.get_entry("damagebits"),
1218 "damage_bits",
1219 )?,
1220 custom_kill: read_value::<u16>(
1221 stream,
1222 definition.get_entry("customkill"),
1223 "custom_kill",
1224 )?,
1225 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
1226 weapon_log_class_name: read_value::<MaybeUtf8String>(
1227 stream,
1228 definition.get_entry("weapon_logclassname"),
1229 "weapon_log_class_name",
1230 )?,
1231 stun_flags: read_value::<u16>(
1232 stream,
1233 definition.get_entry("stun_flags"),
1234 "stun_flags",
1235 )?,
1236 death_flags: read_value::<u16>(
1237 stream,
1238 definition.get_entry("death_flags"),
1239 "death_flags",
1240 )?,
1241 silent_kill: read_value::<bool>(
1242 stream,
1243 definition.get_entry("silent_kill"),
1244 "silent_kill",
1245 )?,
1246 player_penetrate_count: read_value::<u16>(
1247 stream,
1248 definition.get_entry("playerpenetratecount"),
1249 "player_penetrate_count",
1250 )?,
1251 assister_fallback: read_value::<MaybeUtf8String>(
1252 stream,
1253 definition.get_entry("assister_fallback"),
1254 "assister_fallback",
1255 )?,
1256 kill_streak_total: read_value::<u16>(
1257 stream,
1258 definition.get_entry("kill_streak_total"),
1259 "kill_streak_total",
1260 )?,
1261 kill_streak_wep: read_value::<u16>(
1262 stream,
1263 definition.get_entry("kill_streak_wep"),
1264 "kill_streak_wep",
1265 )?,
1266 kill_streak_assist: read_value::<u16>(
1267 stream,
1268 definition.get_entry("kill_streak_assist"),
1269 "kill_streak_assist",
1270 )?,
1271 kill_streak_victim: read_value::<u16>(
1272 stream,
1273 definition.get_entry("kill_streak_victim"),
1274 "kill_streak_victim",
1275 )?,
1276 ducks_streaked: read_value::<u16>(
1277 stream,
1278 definition.get_entry("ducks_streaked"),
1279 "ducks_streaked",
1280 )?,
1281 duck_streak_total: read_value::<u16>(
1282 stream,
1283 definition.get_entry("duck_streak_total"),
1284 "duck_streak_total",
1285 )?,
1286 duck_streak_assist: read_value::<u16>(
1287 stream,
1288 definition.get_entry("duck_streak_assist"),
1289 "duck_streak_assist",
1290 )?,
1291 duck_streak_victim: read_value::<u16>(
1292 stream,
1293 definition.get_entry("duck_streak_victim"),
1294 "duck_streak_victim",
1295 )?,
1296 rocket_jump: read_value::<bool>(
1297 stream,
1298 definition.get_entry("rocket_jump"),
1299 "rocket_jump",
1300 )?,
1301 weapon_def_index: read_value::<u32>(
1302 stream,
1303 definition.get_entry("weapon_def_index"),
1304 "weapon_def_index",
1305 )?,
1306 crit_type: read_value::<u16>(stream, definition.get_entry("crit_type"), "crit_type")?,
1307 })
1308 }
1309 #[allow(unused_variables)]
1310 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1311 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1312 match field {
1313 "userid" => Ok(self.user_id.clone().into()),
1314 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
1315 "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()),
1316 "attacker" => Ok(self.attacker.clone().into()),
1317 "weapon" => Ok(self.weapon.clone().into()),
1318 "weaponid" => Ok(self.weapon_id.clone().into()),
1319 "damagebits" => Ok(self.damage_bits.clone().into()),
1320 "customkill" => Ok(self.custom_kill.clone().into()),
1321 "assister" => Ok(self.assister.clone().into()),
1322 "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()),
1323 "stun_flags" => Ok(self.stun_flags.clone().into()),
1324 "death_flags" => Ok(self.death_flags.clone().into()),
1325 "silent_kill" => Ok(self.silent_kill.clone().into()),
1326 "playerpenetratecount" => Ok(self.player_penetrate_count.clone().into()),
1327 "assister_fallback" => Ok(self.assister_fallback.clone().into()),
1328 "kill_streak_total" => Ok(self.kill_streak_total.clone().into()),
1329 "kill_streak_wep" => Ok(self.kill_streak_wep.clone().into()),
1330 "kill_streak_assist" => Ok(self.kill_streak_assist.clone().into()),
1331 "kill_streak_victim" => Ok(self.kill_streak_victim.clone().into()),
1332 "ducks_streaked" => Ok(self.ducks_streaked.clone().into()),
1333 "duck_streak_total" => Ok(self.duck_streak_total.clone().into()),
1334 "duck_streak_assist" => Ok(self.duck_streak_assist.clone().into()),
1335 "duck_streak_victim" => Ok(self.duck_streak_victim.clone().into()),
1336 "rocket_jump" => Ok(self.rocket_jump.clone().into()),
1337 "weapon_def_index" => Ok(self.weapon_def_index.clone().into()),
1338 "crit_type" => Ok(self.crit_type.clone().into()),
1339 _ => Err(ParseError::MissingGameEventValue {
1340 ty: "PlayerDeath",
1341 field: field.into(),
1342 }),
1343 }
1344 }
1345 #[allow(unused_variables)]
1346 fn write(
1347 &self,
1348 stream: &mut BitWriteStream<LittleEndian>,
1349 definition: &GameEventDefinition,
1350 ) -> Result<()> {
1351 for entry in &definition.entries {
1352 let value = self
1353 .get_field(&entry.name)
1354 .unwrap_or_else(|_| entry.kind.default_value());
1355 stream.write(&value)?;
1356 }
1357 Ok(())
1358 }
1359}
1360#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1361#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1362pub struct PlayerHurtEvent {
1363 pub user_id: u16,
1364 pub health: u16,
1365 pub attacker: u16,
1366 pub damage_amount: u16,
1367 pub custom: u16,
1368 pub show_disguised_crit: bool,
1369 pub crit: bool,
1370 pub mini_crit: bool,
1371 pub all_see_crit: bool,
1372 pub weapon_id: u16,
1373 pub bonus_effect: u8,
1374}
1375impl PlayerHurtEvent {
1376 #[allow(unused_variables)]
1377 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1378 Ok(PlayerHurtEvent {
1379 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1380 health: read_value::<u16>(stream, definition.get_entry("health"), "health")?,
1381 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
1382 damage_amount: read_value::<u16>(
1383 stream,
1384 definition.get_entry("damageamount"),
1385 "damage_amount",
1386 )?,
1387 custom: read_value::<u16>(stream, definition.get_entry("custom"), "custom")?,
1388 show_disguised_crit: read_value::<bool>(
1389 stream,
1390 definition.get_entry("showdisguisedcrit"),
1391 "show_disguised_crit",
1392 )?,
1393 crit: read_value::<bool>(stream, definition.get_entry("crit"), "crit")?,
1394 mini_crit: read_value::<bool>(stream, definition.get_entry("minicrit"), "mini_crit")?,
1395 all_see_crit: read_value::<bool>(
1396 stream,
1397 definition.get_entry("allseecrit"),
1398 "all_see_crit",
1399 )?,
1400 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
1401 bonus_effect: read_value::<u8>(
1402 stream,
1403 definition.get_entry("bonuseffect"),
1404 "bonus_effect",
1405 )?,
1406 })
1407 }
1408 #[allow(unused_variables)]
1409 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1410 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1411 match field {
1412 "userid" => Ok(self.user_id.clone().into()),
1413 "health" => Ok(self.health.clone().into()),
1414 "attacker" => Ok(self.attacker.clone().into()),
1415 "damageamount" => Ok(self.damage_amount.clone().into()),
1416 "custom" => Ok(self.custom.clone().into()),
1417 "showdisguisedcrit" => Ok(self.show_disguised_crit.clone().into()),
1418 "crit" => Ok(self.crit.clone().into()),
1419 "minicrit" => Ok(self.mini_crit.clone().into()),
1420 "allseecrit" => Ok(self.all_see_crit.clone().into()),
1421 "weaponid" => Ok(self.weapon_id.clone().into()),
1422 "bonuseffect" => Ok(self.bonus_effect.clone().into()),
1423 _ => Err(ParseError::MissingGameEventValue {
1424 ty: "PlayerHurt",
1425 field: field.into(),
1426 }),
1427 }
1428 }
1429 #[allow(unused_variables)]
1430 fn write(
1431 &self,
1432 stream: &mut BitWriteStream<LittleEndian>,
1433 definition: &GameEventDefinition,
1434 ) -> Result<()> {
1435 for entry in &definition.entries {
1436 let value = self
1437 .get_field(&entry.name)
1438 .unwrap_or_else(|_| entry.kind.default_value());
1439 stream.write(&value)?;
1440 }
1441 Ok(())
1442 }
1443}
1444#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1445#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1446pub struct PlayerChatEvent {
1447 pub team_only: bool,
1448 pub user_id: u16,
1449 pub text: MaybeUtf8String,
1450}
1451impl PlayerChatEvent {
1452 #[allow(unused_variables)]
1453 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1454 Ok(PlayerChatEvent {
1455 team_only: read_value::<bool>(stream, definition.get_entry("teamonly"), "team_only")?,
1456 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1457 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
1458 })
1459 }
1460 #[allow(unused_variables)]
1461 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1462 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1463 match field {
1464 "teamonly" => Ok(self.team_only.clone().into()),
1465 "userid" => Ok(self.user_id.clone().into()),
1466 "text" => Ok(self.text.clone().into()),
1467 _ => Err(ParseError::MissingGameEventValue {
1468 ty: "PlayerChat",
1469 field: field.into(),
1470 }),
1471 }
1472 }
1473 #[allow(unused_variables)]
1474 fn write(
1475 &self,
1476 stream: &mut BitWriteStream<LittleEndian>,
1477 definition: &GameEventDefinition,
1478 ) -> Result<()> {
1479 for entry in &definition.entries {
1480 let value = self
1481 .get_field(&entry.name)
1482 .unwrap_or_else(|_| entry.kind.default_value());
1483 stream.write(&value)?;
1484 }
1485 Ok(())
1486 }
1487}
1488#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1489#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1490pub struct PlayerScoreEvent {
1491 pub user_id: u16,
1492 pub kills: u16,
1493 pub deaths: u16,
1494 pub score: u16,
1495}
1496impl PlayerScoreEvent {
1497 #[allow(unused_variables)]
1498 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1499 Ok(PlayerScoreEvent {
1500 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1501 kills: read_value::<u16>(stream, definition.get_entry("kills"), "kills")?,
1502 deaths: read_value::<u16>(stream, definition.get_entry("deaths"), "deaths")?,
1503 score: read_value::<u16>(stream, definition.get_entry("score"), "score")?,
1504 })
1505 }
1506 #[allow(unused_variables)]
1507 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1508 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1509 match field {
1510 "userid" => Ok(self.user_id.clone().into()),
1511 "kills" => Ok(self.kills.clone().into()),
1512 "deaths" => Ok(self.deaths.clone().into()),
1513 "score" => Ok(self.score.clone().into()),
1514 _ => Err(ParseError::MissingGameEventValue {
1515 ty: "PlayerScore",
1516 field: field.into(),
1517 }),
1518 }
1519 }
1520 #[allow(unused_variables)]
1521 fn write(
1522 &self,
1523 stream: &mut BitWriteStream<LittleEndian>,
1524 definition: &GameEventDefinition,
1525 ) -> Result<()> {
1526 for entry in &definition.entries {
1527 let value = self
1528 .get_field(&entry.name)
1529 .unwrap_or_else(|_| entry.kind.default_value());
1530 stream.write(&value)?;
1531 }
1532 Ok(())
1533 }
1534}
1535#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1536#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1537pub struct PlayerSpawnEvent {
1538 pub user_id: u16,
1539 pub team: u16,
1540 pub class: u16,
1541}
1542impl PlayerSpawnEvent {
1543 #[allow(unused_variables)]
1544 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1545 Ok(PlayerSpawnEvent {
1546 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1547 team: read_value::<u16>(stream, definition.get_entry("team"), "team")?,
1548 class: read_value::<u16>(stream, definition.get_entry("class"), "class")?,
1549 })
1550 }
1551 #[allow(unused_variables)]
1552 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1553 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1554 match field {
1555 "userid" => Ok(self.user_id.clone().into()),
1556 "team" => Ok(self.team.clone().into()),
1557 "class" => Ok(self.class.clone().into()),
1558 _ => Err(ParseError::MissingGameEventValue {
1559 ty: "PlayerSpawn",
1560 field: field.into(),
1561 }),
1562 }
1563 }
1564 #[allow(unused_variables)]
1565 fn write(
1566 &self,
1567 stream: &mut BitWriteStream<LittleEndian>,
1568 definition: &GameEventDefinition,
1569 ) -> Result<()> {
1570 for entry in &definition.entries {
1571 let value = self
1572 .get_field(&entry.name)
1573 .unwrap_or_else(|_| entry.kind.default_value());
1574 stream.write(&value)?;
1575 }
1576 Ok(())
1577 }
1578}
1579#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1580#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1581pub struct PlayerShootEvent {
1582 pub user_id: u16,
1583 pub weapon: u8,
1584 pub mode: u8,
1585}
1586impl PlayerShootEvent {
1587 #[allow(unused_variables)]
1588 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1589 Ok(PlayerShootEvent {
1590 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1591 weapon: read_value::<u8>(stream, definition.get_entry("weapon"), "weapon")?,
1592 mode: read_value::<u8>(stream, definition.get_entry("mode"), "mode")?,
1593 })
1594 }
1595 #[allow(unused_variables)]
1596 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1597 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1598 match field {
1599 "userid" => Ok(self.user_id.clone().into()),
1600 "weapon" => Ok(self.weapon.clone().into()),
1601 "mode" => Ok(self.mode.clone().into()),
1602 _ => Err(ParseError::MissingGameEventValue {
1603 ty: "PlayerShoot",
1604 field: field.into(),
1605 }),
1606 }
1607 }
1608 #[allow(unused_variables)]
1609 fn write(
1610 &self,
1611 stream: &mut BitWriteStream<LittleEndian>,
1612 definition: &GameEventDefinition,
1613 ) -> Result<()> {
1614 for entry in &definition.entries {
1615 let value = self
1616 .get_field(&entry.name)
1617 .unwrap_or_else(|_| entry.kind.default_value());
1618 stream.write(&value)?;
1619 }
1620 Ok(())
1621 }
1622}
1623#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1624#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1625pub struct PlayerUseEvent {
1626 pub user_id: u16,
1627 pub entity: u16,
1628}
1629impl PlayerUseEvent {
1630 #[allow(unused_variables)]
1631 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1632 Ok(PlayerUseEvent {
1633 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1634 entity: read_value::<u16>(stream, definition.get_entry("entity"), "entity")?,
1635 })
1636 }
1637 #[allow(unused_variables)]
1638 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1639 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1640 match field {
1641 "userid" => Ok(self.user_id.clone().into()),
1642 "entity" => Ok(self.entity.clone().into()),
1643 _ => Err(ParseError::MissingGameEventValue {
1644 ty: "PlayerUse",
1645 field: field.into(),
1646 }),
1647 }
1648 }
1649 #[allow(unused_variables)]
1650 fn write(
1651 &self,
1652 stream: &mut BitWriteStream<LittleEndian>,
1653 definition: &GameEventDefinition,
1654 ) -> Result<()> {
1655 for entry in &definition.entries {
1656 let value = self
1657 .get_field(&entry.name)
1658 .unwrap_or_else(|_| entry.kind.default_value());
1659 stream.write(&value)?;
1660 }
1661 Ok(())
1662 }
1663}
1664#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1665#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1666pub struct PlayerChangeNameEvent {
1667 pub user_id: u16,
1668 pub old_name: MaybeUtf8String,
1669 pub new_name: MaybeUtf8String,
1670}
1671impl PlayerChangeNameEvent {
1672 #[allow(unused_variables)]
1673 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1674 Ok(PlayerChangeNameEvent {
1675 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
1676 old_name: read_value::<MaybeUtf8String>(
1677 stream,
1678 definition.get_entry("oldname"),
1679 "old_name",
1680 )?,
1681 new_name: read_value::<MaybeUtf8String>(
1682 stream,
1683 definition.get_entry("newname"),
1684 "new_name",
1685 )?,
1686 })
1687 }
1688 #[allow(unused_variables)]
1689 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1690 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1691 match field {
1692 "userid" => Ok(self.user_id.clone().into()),
1693 "oldname" => Ok(self.old_name.clone().into()),
1694 "newname" => Ok(self.new_name.clone().into()),
1695 _ => Err(ParseError::MissingGameEventValue {
1696 ty: "PlayerChangeName",
1697 field: field.into(),
1698 }),
1699 }
1700 }
1701 #[allow(unused_variables)]
1702 fn write(
1703 &self,
1704 stream: &mut BitWriteStream<LittleEndian>,
1705 definition: &GameEventDefinition,
1706 ) -> Result<()> {
1707 for entry in &definition.entries {
1708 let value = self
1709 .get_field(&entry.name)
1710 .unwrap_or_else(|_| entry.kind.default_value());
1711 stream.write(&value)?;
1712 }
1713 Ok(())
1714 }
1715}
1716#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1717#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1718pub struct PlayerHintMessageEvent {
1719 pub hint_message: MaybeUtf8String,
1720}
1721impl PlayerHintMessageEvent {
1722 #[allow(unused_variables)]
1723 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1724 Ok(PlayerHintMessageEvent {
1725 hint_message: read_value::<MaybeUtf8String>(
1726 stream,
1727 definition.get_entry("hintmessage"),
1728 "hint_message",
1729 )?,
1730 })
1731 }
1732 #[allow(unused_variables)]
1733 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1734 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1735 match field {
1736 "hintmessage" => Ok(self.hint_message.clone().into()),
1737 _ => Err(ParseError::MissingGameEventValue {
1738 ty: "PlayerHintMessage",
1739 field: field.into(),
1740 }),
1741 }
1742 }
1743 #[allow(unused_variables)]
1744 fn write(
1745 &self,
1746 stream: &mut BitWriteStream<LittleEndian>,
1747 definition: &GameEventDefinition,
1748 ) -> Result<()> {
1749 for entry in &definition.entries {
1750 let value = self
1751 .get_field(&entry.name)
1752 .unwrap_or_else(|_| entry.kind.default_value());
1753 stream.write(&value)?;
1754 }
1755 Ok(())
1756 }
1757}
1758#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1759#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1760pub struct BasePlayerTeleportedEvent {
1761 pub ent_index: u16,
1762}
1763impl BasePlayerTeleportedEvent {
1764 #[allow(unused_variables)]
1765 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1766 Ok(BasePlayerTeleportedEvent {
1767 ent_index: read_value::<u16>(stream, definition.get_entry("entindex"), "ent_index")?,
1768 })
1769 }
1770 #[allow(unused_variables)]
1771 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1772 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1773 match field {
1774 "entindex" => Ok(self.ent_index.clone().into()),
1775 _ => Err(ParseError::MissingGameEventValue {
1776 ty: "BasePlayerTeleported",
1777 field: field.into(),
1778 }),
1779 }
1780 }
1781 #[allow(unused_variables)]
1782 fn write(
1783 &self,
1784 stream: &mut BitWriteStream<LittleEndian>,
1785 definition: &GameEventDefinition,
1786 ) -> Result<()> {
1787 for entry in &definition.entries {
1788 let value = self
1789 .get_field(&entry.name)
1790 .unwrap_or_else(|_| entry.kind.default_value());
1791 stream.write(&value)?;
1792 }
1793 Ok(())
1794 }
1795}
1796#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1797#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1798pub struct GameInitEvent {}
1799impl GameInitEvent {
1800 #[allow(unused_variables)]
1801 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1802 Ok(GameInitEvent {})
1803 }
1804 #[allow(unused_variables)]
1805 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1806 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1807 match field {
1808 _ => Err(ParseError::MissingGameEventValue {
1809 ty: "GameInit",
1810 field: field.into(),
1811 }),
1812 }
1813 }
1814 #[allow(unused_variables)]
1815 fn write(
1816 &self,
1817 stream: &mut BitWriteStream<LittleEndian>,
1818 definition: &GameEventDefinition,
1819 ) -> Result<()> {
1820 for entry in &definition.entries {
1821 let value = self
1822 .get_field(&entry.name)
1823 .unwrap_or_else(|_| entry.kind.default_value());
1824 stream.write(&value)?;
1825 }
1826 Ok(())
1827 }
1828}
1829#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1830#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1831pub struct GameNewMapEvent {
1832 pub map_name: MaybeUtf8String,
1833}
1834impl GameNewMapEvent {
1835 #[allow(unused_variables)]
1836 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1837 Ok(GameNewMapEvent {
1838 map_name: read_value::<MaybeUtf8String>(
1839 stream,
1840 definition.get_entry("mapname"),
1841 "map_name",
1842 )?,
1843 })
1844 }
1845 #[allow(unused_variables)]
1846 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1847 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1848 match field {
1849 "mapname" => Ok(self.map_name.clone().into()),
1850 _ => Err(ParseError::MissingGameEventValue {
1851 ty: "GameNewMap",
1852 field: field.into(),
1853 }),
1854 }
1855 }
1856 #[allow(unused_variables)]
1857 fn write(
1858 &self,
1859 stream: &mut BitWriteStream<LittleEndian>,
1860 definition: &GameEventDefinition,
1861 ) -> Result<()> {
1862 for entry in &definition.entries {
1863 let value = self
1864 .get_field(&entry.name)
1865 .unwrap_or_else(|_| entry.kind.default_value());
1866 stream.write(&value)?;
1867 }
1868 Ok(())
1869 }
1870}
1871#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1872#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1873pub struct GameStartEvent {
1874 pub rounds_limit: u32,
1875 pub time_limit: u32,
1876 pub frag_limit: u32,
1877 pub objective: MaybeUtf8String,
1878}
1879impl GameStartEvent {
1880 #[allow(unused_variables)]
1881 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1882 Ok(GameStartEvent {
1883 rounds_limit: read_value::<u32>(
1884 stream,
1885 definition.get_entry("roundslimit"),
1886 "rounds_limit",
1887 )?,
1888 time_limit: read_value::<u32>(stream, definition.get_entry("timelimit"), "time_limit")?,
1889 frag_limit: read_value::<u32>(stream, definition.get_entry("fraglimit"), "frag_limit")?,
1890 objective: read_value::<MaybeUtf8String>(
1891 stream,
1892 definition.get_entry("objective"),
1893 "objective",
1894 )?,
1895 })
1896 }
1897 #[allow(unused_variables)]
1898 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1899 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1900 match field {
1901 "roundslimit" => Ok(self.rounds_limit.clone().into()),
1902 "timelimit" => Ok(self.time_limit.clone().into()),
1903 "fraglimit" => Ok(self.frag_limit.clone().into()),
1904 "objective" => Ok(self.objective.clone().into()),
1905 _ => Err(ParseError::MissingGameEventValue {
1906 ty: "GameStart",
1907 field: field.into(),
1908 }),
1909 }
1910 }
1911 #[allow(unused_variables)]
1912 fn write(
1913 &self,
1914 stream: &mut BitWriteStream<LittleEndian>,
1915 definition: &GameEventDefinition,
1916 ) -> Result<()> {
1917 for entry in &definition.entries {
1918 let value = self
1919 .get_field(&entry.name)
1920 .unwrap_or_else(|_| entry.kind.default_value());
1921 stream.write(&value)?;
1922 }
1923 Ok(())
1924 }
1925}
1926#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1927#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1928pub struct GameEndEvent {
1929 pub winner: u8,
1930}
1931impl GameEndEvent {
1932 #[allow(unused_variables)]
1933 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1934 Ok(GameEndEvent {
1935 winner: read_value::<u8>(stream, definition.get_entry("winner"), "winner")?,
1936 })
1937 }
1938 #[allow(unused_variables)]
1939 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1940 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1941 match field {
1942 "winner" => Ok(self.winner.clone().into()),
1943 _ => Err(ParseError::MissingGameEventValue {
1944 ty: "GameEnd",
1945 field: field.into(),
1946 }),
1947 }
1948 }
1949 #[allow(unused_variables)]
1950 fn write(
1951 &self,
1952 stream: &mut BitWriteStream<LittleEndian>,
1953 definition: &GameEventDefinition,
1954 ) -> Result<()> {
1955 for entry in &definition.entries {
1956 let value = self
1957 .get_field(&entry.name)
1958 .unwrap_or_else(|_| entry.kind.default_value());
1959 stream.write(&value)?;
1960 }
1961 Ok(())
1962 }
1963}
1964#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
1965#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
1966pub struct RoundStartEvent {
1967 pub time_limit: u32,
1968 pub frag_limit: u32,
1969 pub objective: MaybeUtf8String,
1970}
1971impl RoundStartEvent {
1972 #[allow(unused_variables)]
1973 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
1974 Ok(RoundStartEvent {
1975 time_limit: read_value::<u32>(stream, definition.get_entry("timelimit"), "time_limit")?,
1976 frag_limit: read_value::<u32>(stream, definition.get_entry("fraglimit"), "frag_limit")?,
1977 objective: read_value::<MaybeUtf8String>(
1978 stream,
1979 definition.get_entry("objective"),
1980 "objective",
1981 )?,
1982 })
1983 }
1984 #[allow(unused_variables)]
1985 fn get_field(&self, field: &str) -> Result<GameEventValue> {
1986 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
1987 match field {
1988 "timelimit" => Ok(self.time_limit.clone().into()),
1989 "fraglimit" => Ok(self.frag_limit.clone().into()),
1990 "objective" => Ok(self.objective.clone().into()),
1991 _ => Err(ParseError::MissingGameEventValue {
1992 ty: "RoundStart",
1993 field: field.into(),
1994 }),
1995 }
1996 }
1997 #[allow(unused_variables)]
1998 fn write(
1999 &self,
2000 stream: &mut BitWriteStream<LittleEndian>,
2001 definition: &GameEventDefinition,
2002 ) -> Result<()> {
2003 for entry in &definition.entries {
2004 let value = self
2005 .get_field(&entry.name)
2006 .unwrap_or_else(|_| entry.kind.default_value());
2007 stream.write(&value)?;
2008 }
2009 Ok(())
2010 }
2011}
2012#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2013#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2014pub struct RoundEndEvent {
2015 pub winner: u8,
2016 pub reason: u8,
2017 pub message: MaybeUtf8String,
2018}
2019impl RoundEndEvent {
2020 #[allow(unused_variables)]
2021 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2022 Ok(RoundEndEvent {
2023 winner: read_value::<u8>(stream, definition.get_entry("winner"), "winner")?,
2024 reason: read_value::<u8>(stream, definition.get_entry("reason"), "reason")?,
2025 message: read_value::<MaybeUtf8String>(
2026 stream,
2027 definition.get_entry("message"),
2028 "message",
2029 )?,
2030 })
2031 }
2032 #[allow(unused_variables)]
2033 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2034 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2035 match field {
2036 "winner" => Ok(self.winner.clone().into()),
2037 "reason" => Ok(self.reason.clone().into()),
2038 "message" => Ok(self.message.clone().into()),
2039 _ => Err(ParseError::MissingGameEventValue {
2040 ty: "RoundEnd",
2041 field: field.into(),
2042 }),
2043 }
2044 }
2045 #[allow(unused_variables)]
2046 fn write(
2047 &self,
2048 stream: &mut BitWriteStream<LittleEndian>,
2049 definition: &GameEventDefinition,
2050 ) -> Result<()> {
2051 for entry in &definition.entries {
2052 let value = self
2053 .get_field(&entry.name)
2054 .unwrap_or_else(|_| entry.kind.default_value());
2055 stream.write(&value)?;
2056 }
2057 Ok(())
2058 }
2059}
2060#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2061#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2062pub struct GameMessageEvent {
2063 pub target: u8,
2064 pub text: MaybeUtf8String,
2065}
2066impl GameMessageEvent {
2067 #[allow(unused_variables)]
2068 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2069 Ok(GameMessageEvent {
2070 target: read_value::<u8>(stream, definition.get_entry("target"), "target")?,
2071 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
2072 })
2073 }
2074 #[allow(unused_variables)]
2075 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2076 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2077 match field {
2078 "target" => Ok(self.target.clone().into()),
2079 "text" => Ok(self.text.clone().into()),
2080 _ => Err(ParseError::MissingGameEventValue {
2081 ty: "GameMessage",
2082 field: field.into(),
2083 }),
2084 }
2085 }
2086 #[allow(unused_variables)]
2087 fn write(
2088 &self,
2089 stream: &mut BitWriteStream<LittleEndian>,
2090 definition: &GameEventDefinition,
2091 ) -> Result<()> {
2092 for entry in &definition.entries {
2093 let value = self
2094 .get_field(&entry.name)
2095 .unwrap_or_else(|_| entry.kind.default_value());
2096 stream.write(&value)?;
2097 }
2098 Ok(())
2099 }
2100}
2101#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2102#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2103pub struct BreakBreakableEvent {
2104 pub ent_index: u32,
2105 pub user_id: u16,
2106 pub material: u8,
2107}
2108impl BreakBreakableEvent {
2109 #[allow(unused_variables)]
2110 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2111 Ok(BreakBreakableEvent {
2112 ent_index: read_value::<u32>(stream, definition.get_entry("entindex"), "ent_index")?,
2113 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
2114 material: read_value::<u8>(stream, definition.get_entry("material"), "material")?,
2115 })
2116 }
2117 #[allow(unused_variables)]
2118 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2119 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2120 match field {
2121 "entindex" => Ok(self.ent_index.clone().into()),
2122 "userid" => Ok(self.user_id.clone().into()),
2123 "material" => Ok(self.material.clone().into()),
2124 _ => Err(ParseError::MissingGameEventValue {
2125 ty: "BreakBreakable",
2126 field: field.into(),
2127 }),
2128 }
2129 }
2130 #[allow(unused_variables)]
2131 fn write(
2132 &self,
2133 stream: &mut BitWriteStream<LittleEndian>,
2134 definition: &GameEventDefinition,
2135 ) -> Result<()> {
2136 for entry in &definition.entries {
2137 let value = self
2138 .get_field(&entry.name)
2139 .unwrap_or_else(|_| entry.kind.default_value());
2140 stream.write(&value)?;
2141 }
2142 Ok(())
2143 }
2144}
2145#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2146#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2147pub struct BreakPropEvent {
2148 pub ent_index: u32,
2149 pub user_id: u16,
2150}
2151impl BreakPropEvent {
2152 #[allow(unused_variables)]
2153 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2154 Ok(BreakPropEvent {
2155 ent_index: read_value::<u32>(stream, definition.get_entry("entindex"), "ent_index")?,
2156 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
2157 })
2158 }
2159 #[allow(unused_variables)]
2160 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2161 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2162 match field {
2163 "entindex" => Ok(self.ent_index.clone().into()),
2164 "userid" => Ok(self.user_id.clone().into()),
2165 _ => Err(ParseError::MissingGameEventValue {
2166 ty: "BreakProp",
2167 field: field.into(),
2168 }),
2169 }
2170 }
2171 #[allow(unused_variables)]
2172 fn write(
2173 &self,
2174 stream: &mut BitWriteStream<LittleEndian>,
2175 definition: &GameEventDefinition,
2176 ) -> Result<()> {
2177 for entry in &definition.entries {
2178 let value = self
2179 .get_field(&entry.name)
2180 .unwrap_or_else(|_| entry.kind.default_value());
2181 stream.write(&value)?;
2182 }
2183 Ok(())
2184 }
2185}
2186#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2187#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2188pub struct EntityKilledEvent {
2189 pub ent_index_killed: u32,
2190 pub ent_index_attacker: u32,
2191 pub ent_index_inflictor: u32,
2192 pub damage_bits: u32,
2193}
2194impl EntityKilledEvent {
2195 #[allow(unused_variables)]
2196 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2197 Ok(EntityKilledEvent {
2198 ent_index_killed: read_value::<u32>(
2199 stream,
2200 definition.get_entry("entindex_killed"),
2201 "ent_index_killed",
2202 )?,
2203 ent_index_attacker: read_value::<u32>(
2204 stream,
2205 definition.get_entry("entindex_attacker"),
2206 "ent_index_attacker",
2207 )?,
2208 ent_index_inflictor: read_value::<u32>(
2209 stream,
2210 definition.get_entry("entindex_inflictor"),
2211 "ent_index_inflictor",
2212 )?,
2213 damage_bits: read_value::<u32>(
2214 stream,
2215 definition.get_entry("damagebits"),
2216 "damage_bits",
2217 )?,
2218 })
2219 }
2220 #[allow(unused_variables)]
2221 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2222 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2223 match field {
2224 "entindex_killed" => Ok(self.ent_index_killed.clone().into()),
2225 "entindex_attacker" => Ok(self.ent_index_attacker.clone().into()),
2226 "entindex_inflictor" => Ok(self.ent_index_inflictor.clone().into()),
2227 "damagebits" => Ok(self.damage_bits.clone().into()),
2228 _ => Err(ParseError::MissingGameEventValue {
2229 ty: "EntityKilled",
2230 field: field.into(),
2231 }),
2232 }
2233 }
2234 #[allow(unused_variables)]
2235 fn write(
2236 &self,
2237 stream: &mut BitWriteStream<LittleEndian>,
2238 definition: &GameEventDefinition,
2239 ) -> Result<()> {
2240 for entry in &definition.entries {
2241 let value = self
2242 .get_field(&entry.name)
2243 .unwrap_or_else(|_| entry.kind.default_value());
2244 stream.write(&value)?;
2245 }
2246 Ok(())
2247 }
2248}
2249#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2250#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2251pub struct BonusUpdatedEvent {
2252 pub num_advanced: u16,
2253 pub num_bronze: u16,
2254 pub num_silver: u16,
2255 pub num_gold: u16,
2256}
2257impl BonusUpdatedEvent {
2258 #[allow(unused_variables)]
2259 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2260 Ok(BonusUpdatedEvent {
2261 num_advanced: read_value::<u16>(
2262 stream,
2263 definition.get_entry("numadvanced"),
2264 "num_advanced",
2265 )?,
2266 num_bronze: read_value::<u16>(stream, definition.get_entry("numbronze"), "num_bronze")?,
2267 num_silver: read_value::<u16>(stream, definition.get_entry("numsilver"), "num_silver")?,
2268 num_gold: read_value::<u16>(stream, definition.get_entry("numgold"), "num_gold")?,
2269 })
2270 }
2271 #[allow(unused_variables)]
2272 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2273 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2274 match field {
2275 "numadvanced" => Ok(self.num_advanced.clone().into()),
2276 "numbronze" => Ok(self.num_bronze.clone().into()),
2277 "numsilver" => Ok(self.num_silver.clone().into()),
2278 "numgold" => Ok(self.num_gold.clone().into()),
2279 _ => Err(ParseError::MissingGameEventValue {
2280 ty: "BonusUpdated",
2281 field: field.into(),
2282 }),
2283 }
2284 }
2285 #[allow(unused_variables)]
2286 fn write(
2287 &self,
2288 stream: &mut BitWriteStream<LittleEndian>,
2289 definition: &GameEventDefinition,
2290 ) -> Result<()> {
2291 for entry in &definition.entries {
2292 let value = self
2293 .get_field(&entry.name)
2294 .unwrap_or_else(|_| entry.kind.default_value());
2295 stream.write(&value)?;
2296 }
2297 Ok(())
2298 }
2299}
2300#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2301#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2302pub struct AchievementEventEvent {
2303 pub achievement_name: MaybeUtf8String,
2304 pub cur_val: u16,
2305 pub max_val: u16,
2306}
2307impl AchievementEventEvent {
2308 #[allow(unused_variables)]
2309 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2310 Ok(AchievementEventEvent {
2311 achievement_name: read_value::<MaybeUtf8String>(
2312 stream,
2313 definition.get_entry("achievement_name"),
2314 "achievement_name",
2315 )?,
2316 cur_val: read_value::<u16>(stream, definition.get_entry("cur_val"), "cur_val")?,
2317 max_val: read_value::<u16>(stream, definition.get_entry("max_val"), "max_val")?,
2318 })
2319 }
2320 #[allow(unused_variables)]
2321 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2322 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2323 match field {
2324 "achievement_name" => Ok(self.achievement_name.clone().into()),
2325 "cur_val" => Ok(self.cur_val.clone().into()),
2326 "max_val" => Ok(self.max_val.clone().into()),
2327 _ => Err(ParseError::MissingGameEventValue {
2328 ty: "AchievementEvent",
2329 field: field.into(),
2330 }),
2331 }
2332 }
2333 #[allow(unused_variables)]
2334 fn write(
2335 &self,
2336 stream: &mut BitWriteStream<LittleEndian>,
2337 definition: &GameEventDefinition,
2338 ) -> Result<()> {
2339 for entry in &definition.entries {
2340 let value = self
2341 .get_field(&entry.name)
2342 .unwrap_or_else(|_| entry.kind.default_value());
2343 stream.write(&value)?;
2344 }
2345 Ok(())
2346 }
2347}
2348#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2349#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2350pub struct AchievementIncrementEvent {
2351 pub achievement_id: u32,
2352 pub cur_val: u16,
2353 pub max_val: u16,
2354}
2355impl AchievementIncrementEvent {
2356 #[allow(unused_variables)]
2357 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2358 Ok(AchievementIncrementEvent {
2359 achievement_id: read_value::<u32>(
2360 stream,
2361 definition.get_entry("achievement_id"),
2362 "achievement_id",
2363 )?,
2364 cur_val: read_value::<u16>(stream, definition.get_entry("cur_val"), "cur_val")?,
2365 max_val: read_value::<u16>(stream, definition.get_entry("max_val"), "max_val")?,
2366 })
2367 }
2368 #[allow(unused_variables)]
2369 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2370 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2371 match field {
2372 "achievement_id" => Ok(self.achievement_id.clone().into()),
2373 "cur_val" => Ok(self.cur_val.clone().into()),
2374 "max_val" => Ok(self.max_val.clone().into()),
2375 _ => Err(ParseError::MissingGameEventValue {
2376 ty: "AchievementIncrement",
2377 field: field.into(),
2378 }),
2379 }
2380 }
2381 #[allow(unused_variables)]
2382 fn write(
2383 &self,
2384 stream: &mut BitWriteStream<LittleEndian>,
2385 definition: &GameEventDefinition,
2386 ) -> Result<()> {
2387 for entry in &definition.entries {
2388 let value = self
2389 .get_field(&entry.name)
2390 .unwrap_or_else(|_| entry.kind.default_value());
2391 stream.write(&value)?;
2392 }
2393 Ok(())
2394 }
2395}
2396#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2397#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2398pub struct PhysgunPickupEvent {
2399 pub ent_index: u32,
2400}
2401impl PhysgunPickupEvent {
2402 #[allow(unused_variables)]
2403 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2404 Ok(PhysgunPickupEvent {
2405 ent_index: read_value::<u32>(stream, definition.get_entry("entindex"), "ent_index")?,
2406 })
2407 }
2408 #[allow(unused_variables)]
2409 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2410 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2411 match field {
2412 "entindex" => Ok(self.ent_index.clone().into()),
2413 _ => Err(ParseError::MissingGameEventValue {
2414 ty: "PhysgunPickup",
2415 field: field.into(),
2416 }),
2417 }
2418 }
2419 #[allow(unused_variables)]
2420 fn write(
2421 &self,
2422 stream: &mut BitWriteStream<LittleEndian>,
2423 definition: &GameEventDefinition,
2424 ) -> Result<()> {
2425 for entry in &definition.entries {
2426 let value = self
2427 .get_field(&entry.name)
2428 .unwrap_or_else(|_| entry.kind.default_value());
2429 stream.write(&value)?;
2430 }
2431 Ok(())
2432 }
2433}
2434#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2435#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2436pub struct FlareIgniteNpcEvent {
2437 pub ent_index: u32,
2438}
2439impl FlareIgniteNpcEvent {
2440 #[allow(unused_variables)]
2441 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2442 Ok(FlareIgniteNpcEvent {
2443 ent_index: read_value::<u32>(stream, definition.get_entry("entindex"), "ent_index")?,
2444 })
2445 }
2446 #[allow(unused_variables)]
2447 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2448 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2449 match field {
2450 "entindex" => Ok(self.ent_index.clone().into()),
2451 _ => Err(ParseError::MissingGameEventValue {
2452 ty: "FlareIgniteNpc",
2453 field: field.into(),
2454 }),
2455 }
2456 }
2457 #[allow(unused_variables)]
2458 fn write(
2459 &self,
2460 stream: &mut BitWriteStream<LittleEndian>,
2461 definition: &GameEventDefinition,
2462 ) -> Result<()> {
2463 for entry in &definition.entries {
2464 let value = self
2465 .get_field(&entry.name)
2466 .unwrap_or_else(|_| entry.kind.default_value());
2467 stream.write(&value)?;
2468 }
2469 Ok(())
2470 }
2471}
2472#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2473#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2474pub struct HelicopterGrenadePuntMissEvent {}
2475impl HelicopterGrenadePuntMissEvent {
2476 #[allow(unused_variables)]
2477 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2478 Ok(HelicopterGrenadePuntMissEvent {})
2479 }
2480 #[allow(unused_variables)]
2481 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2482 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2483 match field {
2484 _ => Err(ParseError::MissingGameEventValue {
2485 ty: "HelicopterGrenadePuntMiss",
2486 field: field.into(),
2487 }),
2488 }
2489 }
2490 #[allow(unused_variables)]
2491 fn write(
2492 &self,
2493 stream: &mut BitWriteStream<LittleEndian>,
2494 definition: &GameEventDefinition,
2495 ) -> Result<()> {
2496 for entry in &definition.entries {
2497 let value = self
2498 .get_field(&entry.name)
2499 .unwrap_or_else(|_| entry.kind.default_value());
2500 stream.write(&value)?;
2501 }
2502 Ok(())
2503 }
2504}
2505#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2506#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2507pub struct UserDataDownloadedEvent {}
2508impl UserDataDownloadedEvent {
2509 #[allow(unused_variables)]
2510 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2511 Ok(UserDataDownloadedEvent {})
2512 }
2513 #[allow(unused_variables)]
2514 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2515 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2516 match field {
2517 _ => Err(ParseError::MissingGameEventValue {
2518 ty: "UserDataDownloaded",
2519 field: field.into(),
2520 }),
2521 }
2522 }
2523 #[allow(unused_variables)]
2524 fn write(
2525 &self,
2526 stream: &mut BitWriteStream<LittleEndian>,
2527 definition: &GameEventDefinition,
2528 ) -> Result<()> {
2529 for entry in &definition.entries {
2530 let value = self
2531 .get_field(&entry.name)
2532 .unwrap_or_else(|_| entry.kind.default_value());
2533 stream.write(&value)?;
2534 }
2535 Ok(())
2536 }
2537}
2538#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2539#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2540pub struct RagdollDissolvedEvent {
2541 pub ent_index: u32,
2542}
2543impl RagdollDissolvedEvent {
2544 #[allow(unused_variables)]
2545 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2546 Ok(RagdollDissolvedEvent {
2547 ent_index: read_value::<u32>(stream, definition.get_entry("entindex"), "ent_index")?,
2548 })
2549 }
2550 #[allow(unused_variables)]
2551 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2552 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2553 match field {
2554 "entindex" => Ok(self.ent_index.clone().into()),
2555 _ => Err(ParseError::MissingGameEventValue {
2556 ty: "RagdollDissolved",
2557 field: field.into(),
2558 }),
2559 }
2560 }
2561 #[allow(unused_variables)]
2562 fn write(
2563 &self,
2564 stream: &mut BitWriteStream<LittleEndian>,
2565 definition: &GameEventDefinition,
2566 ) -> Result<()> {
2567 for entry in &definition.entries {
2568 let value = self
2569 .get_field(&entry.name)
2570 .unwrap_or_else(|_| entry.kind.default_value());
2571 stream.write(&value)?;
2572 }
2573 Ok(())
2574 }
2575}
2576#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2577#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2578pub struct HLTVChangedModeEvent {
2579 pub old_mode: u16,
2580 pub new_mode: u16,
2581 pub obs_target: u16,
2582}
2583impl HLTVChangedModeEvent {
2584 #[allow(unused_variables)]
2585 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2586 Ok(HLTVChangedModeEvent {
2587 old_mode: read_value::<u16>(stream, definition.get_entry("oldmode"), "old_mode")?,
2588 new_mode: read_value::<u16>(stream, definition.get_entry("newmode"), "new_mode")?,
2589 obs_target: read_value::<u16>(
2590 stream,
2591 definition.get_entry("obs_target"),
2592 "obs_target",
2593 )?,
2594 })
2595 }
2596 #[allow(unused_variables)]
2597 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2598 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2599 match field {
2600 "oldmode" => Ok(self.old_mode.clone().into()),
2601 "newmode" => Ok(self.new_mode.clone().into()),
2602 "obs_target" => Ok(self.obs_target.clone().into()),
2603 _ => Err(ParseError::MissingGameEventValue {
2604 ty: "HLTVChangedMode",
2605 field: field.into(),
2606 }),
2607 }
2608 }
2609 #[allow(unused_variables)]
2610 fn write(
2611 &self,
2612 stream: &mut BitWriteStream<LittleEndian>,
2613 definition: &GameEventDefinition,
2614 ) -> Result<()> {
2615 for entry in &definition.entries {
2616 let value = self
2617 .get_field(&entry.name)
2618 .unwrap_or_else(|_| entry.kind.default_value());
2619 stream.write(&value)?;
2620 }
2621 Ok(())
2622 }
2623}
2624#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2625#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2626pub struct HLTVChangedTargetEvent {
2627 pub mode: u16,
2628 pub old_target: u16,
2629 pub obs_target: u16,
2630}
2631impl HLTVChangedTargetEvent {
2632 #[allow(unused_variables)]
2633 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2634 Ok(HLTVChangedTargetEvent {
2635 mode: read_value::<u16>(stream, definition.get_entry("mode"), "mode")?,
2636 old_target: read_value::<u16>(
2637 stream,
2638 definition.get_entry("old_target"),
2639 "old_target",
2640 )?,
2641 obs_target: read_value::<u16>(
2642 stream,
2643 definition.get_entry("obs_target"),
2644 "obs_target",
2645 )?,
2646 })
2647 }
2648 #[allow(unused_variables)]
2649 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2650 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2651 match field {
2652 "mode" => Ok(self.mode.clone().into()),
2653 "old_target" => Ok(self.old_target.clone().into()),
2654 "obs_target" => Ok(self.obs_target.clone().into()),
2655 _ => Err(ParseError::MissingGameEventValue {
2656 ty: "HLTVChangedTarget",
2657 field: field.into(),
2658 }),
2659 }
2660 }
2661 #[allow(unused_variables)]
2662 fn write(
2663 &self,
2664 stream: &mut BitWriteStream<LittleEndian>,
2665 definition: &GameEventDefinition,
2666 ) -> Result<()> {
2667 for entry in &definition.entries {
2668 let value = self
2669 .get_field(&entry.name)
2670 .unwrap_or_else(|_| entry.kind.default_value());
2671 stream.write(&value)?;
2672 }
2673 Ok(())
2674 }
2675}
2676#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2677#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2678pub struct VoteEndedEvent {}
2679impl VoteEndedEvent {
2680 #[allow(unused_variables)]
2681 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2682 Ok(VoteEndedEvent {})
2683 }
2684 #[allow(unused_variables)]
2685 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2686 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2687 match field {
2688 _ => Err(ParseError::MissingGameEventValue {
2689 ty: "VoteEnded",
2690 field: field.into(),
2691 }),
2692 }
2693 }
2694 #[allow(unused_variables)]
2695 fn write(
2696 &self,
2697 stream: &mut BitWriteStream<LittleEndian>,
2698 definition: &GameEventDefinition,
2699 ) -> Result<()> {
2700 for entry in &definition.entries {
2701 let value = self
2702 .get_field(&entry.name)
2703 .unwrap_or_else(|_| entry.kind.default_value());
2704 stream.write(&value)?;
2705 }
2706 Ok(())
2707 }
2708}
2709#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2710#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2711pub struct VoteStartedEvent {
2712 pub issue: MaybeUtf8String,
2713 pub param_1: MaybeUtf8String,
2714 pub team: u8,
2715 pub initiator: u32,
2716 pub voteidx: u32,
2717}
2718impl VoteStartedEvent {
2719 #[allow(unused_variables)]
2720 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2721 Ok(VoteStartedEvent {
2722 issue: read_value::<MaybeUtf8String>(stream, definition.get_entry("issue"), "issue")?,
2723 param_1: read_value::<MaybeUtf8String>(
2724 stream,
2725 definition.get_entry("param1"),
2726 "param_1",
2727 )?,
2728 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
2729 initiator: read_value::<u32>(stream, definition.get_entry("initiator"), "initiator")?,
2730 voteidx: read_value::<u32>(stream, definition.get_entry("voteidx"), "voteidx")?,
2731 })
2732 }
2733 #[allow(unused_variables)]
2734 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2735 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2736 match field {
2737 "issue" => Ok(self.issue.clone().into()),
2738 "param1" => Ok(self.param_1.clone().into()),
2739 "team" => Ok(self.team.clone().into()),
2740 "initiator" => Ok(self.initiator.clone().into()),
2741 "voteidx" => Ok(self.voteidx.clone().into()),
2742 _ => Err(ParseError::MissingGameEventValue {
2743 ty: "VoteStarted",
2744 field: field.into(),
2745 }),
2746 }
2747 }
2748 #[allow(unused_variables)]
2749 fn write(
2750 &self,
2751 stream: &mut BitWriteStream<LittleEndian>,
2752 definition: &GameEventDefinition,
2753 ) -> Result<()> {
2754 for entry in &definition.entries {
2755 let value = self
2756 .get_field(&entry.name)
2757 .unwrap_or_else(|_| entry.kind.default_value());
2758 stream.write(&value)?;
2759 }
2760 Ok(())
2761 }
2762}
2763#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2764#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2765pub struct VoteChangedEvent {
2766 pub vote_option_1: u8,
2767 pub vote_option_2: u8,
2768 pub vote_option_3: u8,
2769 pub vote_option_4: u8,
2770 pub vote_option_5: u8,
2771 pub potential_votes: u8,
2772 pub voteidx: u32,
2773}
2774impl VoteChangedEvent {
2775 #[allow(unused_variables)]
2776 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2777 Ok(VoteChangedEvent {
2778 vote_option_1: read_value::<u8>(
2779 stream,
2780 definition.get_entry("vote_option1"),
2781 "vote_option_1",
2782 )?,
2783 vote_option_2: read_value::<u8>(
2784 stream,
2785 definition.get_entry("vote_option2"),
2786 "vote_option_2",
2787 )?,
2788 vote_option_3: read_value::<u8>(
2789 stream,
2790 definition.get_entry("vote_option3"),
2791 "vote_option_3",
2792 )?,
2793 vote_option_4: read_value::<u8>(
2794 stream,
2795 definition.get_entry("vote_option4"),
2796 "vote_option_4",
2797 )?,
2798 vote_option_5: read_value::<u8>(
2799 stream,
2800 definition.get_entry("vote_option5"),
2801 "vote_option_5",
2802 )?,
2803 potential_votes: read_value::<u8>(
2804 stream,
2805 definition.get_entry("potentialVotes"),
2806 "potential_votes",
2807 )?,
2808 voteidx: read_value::<u32>(stream, definition.get_entry("voteidx"), "voteidx")?,
2809 })
2810 }
2811 #[allow(unused_variables)]
2812 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2813 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2814 match field {
2815 "vote_option1" => Ok(self.vote_option_1.clone().into()),
2816 "vote_option2" => Ok(self.vote_option_2.clone().into()),
2817 "vote_option3" => Ok(self.vote_option_3.clone().into()),
2818 "vote_option4" => Ok(self.vote_option_4.clone().into()),
2819 "vote_option5" => Ok(self.vote_option_5.clone().into()),
2820 "potentialVotes" => Ok(self.potential_votes.clone().into()),
2821 "voteidx" => Ok(self.voteidx.clone().into()),
2822 _ => Err(ParseError::MissingGameEventValue {
2823 ty: "VoteChanged",
2824 field: field.into(),
2825 }),
2826 }
2827 }
2828 #[allow(unused_variables)]
2829 fn write(
2830 &self,
2831 stream: &mut BitWriteStream<LittleEndian>,
2832 definition: &GameEventDefinition,
2833 ) -> Result<()> {
2834 for entry in &definition.entries {
2835 let value = self
2836 .get_field(&entry.name)
2837 .unwrap_or_else(|_| entry.kind.default_value());
2838 stream.write(&value)?;
2839 }
2840 Ok(())
2841 }
2842}
2843#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2844#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2845pub struct VotePassedEvent {
2846 pub details: MaybeUtf8String,
2847 pub param_1: MaybeUtf8String,
2848 pub team: u8,
2849 pub voteidx: u32,
2850}
2851impl VotePassedEvent {
2852 #[allow(unused_variables)]
2853 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2854 Ok(VotePassedEvent {
2855 details: read_value::<MaybeUtf8String>(
2856 stream,
2857 definition.get_entry("details"),
2858 "details",
2859 )?,
2860 param_1: read_value::<MaybeUtf8String>(
2861 stream,
2862 definition.get_entry("param1"),
2863 "param_1",
2864 )?,
2865 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
2866 voteidx: read_value::<u32>(stream, definition.get_entry("voteidx"), "voteidx")?,
2867 })
2868 }
2869 #[allow(unused_variables)]
2870 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2871 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2872 match field {
2873 "details" => Ok(self.details.clone().into()),
2874 "param1" => Ok(self.param_1.clone().into()),
2875 "team" => Ok(self.team.clone().into()),
2876 "voteidx" => Ok(self.voteidx.clone().into()),
2877 _ => Err(ParseError::MissingGameEventValue {
2878 ty: "VotePassed",
2879 field: field.into(),
2880 }),
2881 }
2882 }
2883 #[allow(unused_variables)]
2884 fn write(
2885 &self,
2886 stream: &mut BitWriteStream<LittleEndian>,
2887 definition: &GameEventDefinition,
2888 ) -> Result<()> {
2889 for entry in &definition.entries {
2890 let value = self
2891 .get_field(&entry.name)
2892 .unwrap_or_else(|_| entry.kind.default_value());
2893 stream.write(&value)?;
2894 }
2895 Ok(())
2896 }
2897}
2898#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2899#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2900pub struct VoteFailedEvent {
2901 pub team: u8,
2902 pub voteidx: u32,
2903}
2904impl VoteFailedEvent {
2905 #[allow(unused_variables)]
2906 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2907 Ok(VoteFailedEvent {
2908 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
2909 voteidx: read_value::<u32>(stream, definition.get_entry("voteidx"), "voteidx")?,
2910 })
2911 }
2912 #[allow(unused_variables)]
2913 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2914 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2915 match field {
2916 "team" => Ok(self.team.clone().into()),
2917 "voteidx" => Ok(self.voteidx.clone().into()),
2918 _ => Err(ParseError::MissingGameEventValue {
2919 ty: "VoteFailed",
2920 field: field.into(),
2921 }),
2922 }
2923 }
2924 #[allow(unused_variables)]
2925 fn write(
2926 &self,
2927 stream: &mut BitWriteStream<LittleEndian>,
2928 definition: &GameEventDefinition,
2929 ) -> Result<()> {
2930 for entry in &definition.entries {
2931 let value = self
2932 .get_field(&entry.name)
2933 .unwrap_or_else(|_| entry.kind.default_value());
2934 stream.write(&value)?;
2935 }
2936 Ok(())
2937 }
2938}
2939#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2940#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2941pub struct VoteCastEvent {
2942 pub vote_option: u8,
2943 pub team: u16,
2944 pub entity_id: u32,
2945 pub voteidx: u32,
2946}
2947impl VoteCastEvent {
2948 #[allow(unused_variables)]
2949 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
2950 Ok(VoteCastEvent {
2951 vote_option: read_value::<u8>(
2952 stream,
2953 definition.get_entry("vote_option"),
2954 "vote_option",
2955 )?,
2956 team: read_value::<u16>(stream, definition.get_entry("team"), "team")?,
2957 entity_id: read_value::<u32>(stream, definition.get_entry("entityid"), "entity_id")?,
2958 voteidx: read_value::<u32>(stream, definition.get_entry("voteidx"), "voteidx")?,
2959 })
2960 }
2961 #[allow(unused_variables)]
2962 fn get_field(&self, field: &str) -> Result<GameEventValue> {
2963 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
2964 match field {
2965 "vote_option" => Ok(self.vote_option.clone().into()),
2966 "team" => Ok(self.team.clone().into()),
2967 "entityid" => Ok(self.entity_id.clone().into()),
2968 "voteidx" => Ok(self.voteidx.clone().into()),
2969 _ => Err(ParseError::MissingGameEventValue {
2970 ty: "VoteCast",
2971 field: field.into(),
2972 }),
2973 }
2974 }
2975 #[allow(unused_variables)]
2976 fn write(
2977 &self,
2978 stream: &mut BitWriteStream<LittleEndian>,
2979 definition: &GameEventDefinition,
2980 ) -> Result<()> {
2981 for entry in &definition.entries {
2982 let value = self
2983 .get_field(&entry.name)
2984 .unwrap_or_else(|_| entry.kind.default_value());
2985 stream.write(&value)?;
2986 }
2987 Ok(())
2988 }
2989}
2990#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
2991#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
2992pub struct VoteOptionsEvent {
2993 pub count: u8,
2994 pub option_1: MaybeUtf8String,
2995 pub option_2: MaybeUtf8String,
2996 pub option_3: MaybeUtf8String,
2997 pub option_4: MaybeUtf8String,
2998 pub option_5: MaybeUtf8String,
2999 pub voteidx: u32,
3000}
3001impl VoteOptionsEvent {
3002 #[allow(unused_variables)]
3003 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3004 Ok(VoteOptionsEvent {
3005 count: read_value::<u8>(stream, definition.get_entry("count"), "count")?,
3006 option_1: read_value::<MaybeUtf8String>(
3007 stream,
3008 definition.get_entry("option1"),
3009 "option_1",
3010 )?,
3011 option_2: read_value::<MaybeUtf8String>(
3012 stream,
3013 definition.get_entry("option2"),
3014 "option_2",
3015 )?,
3016 option_3: read_value::<MaybeUtf8String>(
3017 stream,
3018 definition.get_entry("option3"),
3019 "option_3",
3020 )?,
3021 option_4: read_value::<MaybeUtf8String>(
3022 stream,
3023 definition.get_entry("option4"),
3024 "option_4",
3025 )?,
3026 option_5: read_value::<MaybeUtf8String>(
3027 stream,
3028 definition.get_entry("option5"),
3029 "option_5",
3030 )?,
3031 voteidx: read_value::<u32>(stream, definition.get_entry("voteidx"), "voteidx")?,
3032 })
3033 }
3034 #[allow(unused_variables)]
3035 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3036 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3037 match field {
3038 "count" => Ok(self.count.clone().into()),
3039 "option1" => Ok(self.option_1.clone().into()),
3040 "option2" => Ok(self.option_2.clone().into()),
3041 "option3" => Ok(self.option_3.clone().into()),
3042 "option4" => Ok(self.option_4.clone().into()),
3043 "option5" => Ok(self.option_5.clone().into()),
3044 "voteidx" => Ok(self.voteidx.clone().into()),
3045 _ => Err(ParseError::MissingGameEventValue {
3046 ty: "VoteOptions",
3047 field: field.into(),
3048 }),
3049 }
3050 }
3051 #[allow(unused_variables)]
3052 fn write(
3053 &self,
3054 stream: &mut BitWriteStream<LittleEndian>,
3055 definition: &GameEventDefinition,
3056 ) -> Result<()> {
3057 for entry in &definition.entries {
3058 let value = self
3059 .get_field(&entry.name)
3060 .unwrap_or_else(|_| entry.kind.default_value());
3061 stream.write(&value)?;
3062 }
3063 Ok(())
3064 }
3065}
3066#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3067#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3068pub struct ReplaySavedEvent {}
3069impl ReplaySavedEvent {
3070 #[allow(unused_variables)]
3071 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3072 Ok(ReplaySavedEvent {})
3073 }
3074 #[allow(unused_variables)]
3075 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3076 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3077 match field {
3078 _ => Err(ParseError::MissingGameEventValue {
3079 ty: "ReplaySaved",
3080 field: field.into(),
3081 }),
3082 }
3083 }
3084 #[allow(unused_variables)]
3085 fn write(
3086 &self,
3087 stream: &mut BitWriteStream<LittleEndian>,
3088 definition: &GameEventDefinition,
3089 ) -> Result<()> {
3090 for entry in &definition.entries {
3091 let value = self
3092 .get_field(&entry.name)
3093 .unwrap_or_else(|_| entry.kind.default_value());
3094 stream.write(&value)?;
3095 }
3096 Ok(())
3097 }
3098}
3099#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3100#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3101pub struct EnteredPerformanceModeEvent {}
3102impl EnteredPerformanceModeEvent {
3103 #[allow(unused_variables)]
3104 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3105 Ok(EnteredPerformanceModeEvent {})
3106 }
3107 #[allow(unused_variables)]
3108 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3109 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3110 match field {
3111 _ => Err(ParseError::MissingGameEventValue {
3112 ty: "EnteredPerformanceMode",
3113 field: field.into(),
3114 }),
3115 }
3116 }
3117 #[allow(unused_variables)]
3118 fn write(
3119 &self,
3120 stream: &mut BitWriteStream<LittleEndian>,
3121 definition: &GameEventDefinition,
3122 ) -> Result<()> {
3123 for entry in &definition.entries {
3124 let value = self
3125 .get_field(&entry.name)
3126 .unwrap_or_else(|_| entry.kind.default_value());
3127 stream.write(&value)?;
3128 }
3129 Ok(())
3130 }
3131}
3132#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3133#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3134pub struct BrowseReplaysEvent {}
3135impl BrowseReplaysEvent {
3136 #[allow(unused_variables)]
3137 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3138 Ok(BrowseReplaysEvent {})
3139 }
3140 #[allow(unused_variables)]
3141 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3142 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3143 match field {
3144 _ => Err(ParseError::MissingGameEventValue {
3145 ty: "BrowseReplays",
3146 field: field.into(),
3147 }),
3148 }
3149 }
3150 #[allow(unused_variables)]
3151 fn write(
3152 &self,
3153 stream: &mut BitWriteStream<LittleEndian>,
3154 definition: &GameEventDefinition,
3155 ) -> Result<()> {
3156 for entry in &definition.entries {
3157 let value = self
3158 .get_field(&entry.name)
3159 .unwrap_or_else(|_| entry.kind.default_value());
3160 stream.write(&value)?;
3161 }
3162 Ok(())
3163 }
3164}
3165#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3166#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3167pub struct ReplayYoutubeStatsEvent {
3168 pub views: u32,
3169 pub likes: u32,
3170 pub favorited: u32,
3171}
3172impl ReplayYoutubeStatsEvent {
3173 #[allow(unused_variables)]
3174 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3175 Ok(ReplayYoutubeStatsEvent {
3176 views: read_value::<u32>(stream, definition.get_entry("views"), "views")?,
3177 likes: read_value::<u32>(stream, definition.get_entry("likes"), "likes")?,
3178 favorited: read_value::<u32>(stream, definition.get_entry("favorited"), "favorited")?,
3179 })
3180 }
3181 #[allow(unused_variables)]
3182 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3183 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3184 match field {
3185 "views" => Ok(self.views.clone().into()),
3186 "likes" => Ok(self.likes.clone().into()),
3187 "favorited" => Ok(self.favorited.clone().into()),
3188 _ => Err(ParseError::MissingGameEventValue {
3189 ty: "ReplayYoutubeStats",
3190 field: field.into(),
3191 }),
3192 }
3193 }
3194 #[allow(unused_variables)]
3195 fn write(
3196 &self,
3197 stream: &mut BitWriteStream<LittleEndian>,
3198 definition: &GameEventDefinition,
3199 ) -> Result<()> {
3200 for entry in &definition.entries {
3201 let value = self
3202 .get_field(&entry.name)
3203 .unwrap_or_else(|_| entry.kind.default_value());
3204 stream.write(&value)?;
3205 }
3206 Ok(())
3207 }
3208}
3209#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3210#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3211pub struct InventoryUpdatedEvent {}
3212impl InventoryUpdatedEvent {
3213 #[allow(unused_variables)]
3214 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3215 Ok(InventoryUpdatedEvent {})
3216 }
3217 #[allow(unused_variables)]
3218 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3219 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3220 match field {
3221 _ => Err(ParseError::MissingGameEventValue {
3222 ty: "InventoryUpdated",
3223 field: field.into(),
3224 }),
3225 }
3226 }
3227 #[allow(unused_variables)]
3228 fn write(
3229 &self,
3230 stream: &mut BitWriteStream<LittleEndian>,
3231 definition: &GameEventDefinition,
3232 ) -> Result<()> {
3233 for entry in &definition.entries {
3234 let value = self
3235 .get_field(&entry.name)
3236 .unwrap_or_else(|_| entry.kind.default_value());
3237 stream.write(&value)?;
3238 }
3239 Ok(())
3240 }
3241}
3242#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3243#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3244pub struct CartUpdatedEvent {}
3245impl CartUpdatedEvent {
3246 #[allow(unused_variables)]
3247 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3248 Ok(CartUpdatedEvent {})
3249 }
3250 #[allow(unused_variables)]
3251 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3252 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3253 match field {
3254 _ => Err(ParseError::MissingGameEventValue {
3255 ty: "CartUpdated",
3256 field: field.into(),
3257 }),
3258 }
3259 }
3260 #[allow(unused_variables)]
3261 fn write(
3262 &self,
3263 stream: &mut BitWriteStream<LittleEndian>,
3264 definition: &GameEventDefinition,
3265 ) -> Result<()> {
3266 for entry in &definition.entries {
3267 let value = self
3268 .get_field(&entry.name)
3269 .unwrap_or_else(|_| entry.kind.default_value());
3270 stream.write(&value)?;
3271 }
3272 Ok(())
3273 }
3274}
3275#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3276#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3277pub struct StorePriceSheetUpdatedEvent {}
3278impl StorePriceSheetUpdatedEvent {
3279 #[allow(unused_variables)]
3280 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3281 Ok(StorePriceSheetUpdatedEvent {})
3282 }
3283 #[allow(unused_variables)]
3284 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3285 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3286 match field {
3287 _ => Err(ParseError::MissingGameEventValue {
3288 ty: "StorePriceSheetUpdated",
3289 field: field.into(),
3290 }),
3291 }
3292 }
3293 #[allow(unused_variables)]
3294 fn write(
3295 &self,
3296 stream: &mut BitWriteStream<LittleEndian>,
3297 definition: &GameEventDefinition,
3298 ) -> Result<()> {
3299 for entry in &definition.entries {
3300 let value = self
3301 .get_field(&entry.name)
3302 .unwrap_or_else(|_| entry.kind.default_value());
3303 stream.write(&value)?;
3304 }
3305 Ok(())
3306 }
3307}
3308#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3309#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3310pub struct EconInventoryConnectedEvent {}
3311impl EconInventoryConnectedEvent {
3312 #[allow(unused_variables)]
3313 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3314 Ok(EconInventoryConnectedEvent {})
3315 }
3316 #[allow(unused_variables)]
3317 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3318 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3319 match field {
3320 _ => Err(ParseError::MissingGameEventValue {
3321 ty: "EconInventoryConnected",
3322 field: field.into(),
3323 }),
3324 }
3325 }
3326 #[allow(unused_variables)]
3327 fn write(
3328 &self,
3329 stream: &mut BitWriteStream<LittleEndian>,
3330 definition: &GameEventDefinition,
3331 ) -> Result<()> {
3332 for entry in &definition.entries {
3333 let value = self
3334 .get_field(&entry.name)
3335 .unwrap_or_else(|_| entry.kind.default_value());
3336 stream.write(&value)?;
3337 }
3338 Ok(())
3339 }
3340}
3341#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3342#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3343pub struct ItemSchemaInitializedEvent {}
3344impl ItemSchemaInitializedEvent {
3345 #[allow(unused_variables)]
3346 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3347 Ok(ItemSchemaInitializedEvent {})
3348 }
3349 #[allow(unused_variables)]
3350 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3351 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3352 match field {
3353 _ => Err(ParseError::MissingGameEventValue {
3354 ty: "ItemSchemaInitialized",
3355 field: field.into(),
3356 }),
3357 }
3358 }
3359 #[allow(unused_variables)]
3360 fn write(
3361 &self,
3362 stream: &mut BitWriteStream<LittleEndian>,
3363 definition: &GameEventDefinition,
3364 ) -> Result<()> {
3365 for entry in &definition.entries {
3366 let value = self
3367 .get_field(&entry.name)
3368 .unwrap_or_else(|_| entry.kind.default_value());
3369 stream.write(&value)?;
3370 }
3371 Ok(())
3372 }
3373}
3374#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3375#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3376pub struct GcNewSessionEvent {}
3377impl GcNewSessionEvent {
3378 #[allow(unused_variables)]
3379 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3380 Ok(GcNewSessionEvent {})
3381 }
3382 #[allow(unused_variables)]
3383 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3384 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3385 match field {
3386 _ => Err(ParseError::MissingGameEventValue {
3387 ty: "GcNewSession",
3388 field: field.into(),
3389 }),
3390 }
3391 }
3392 #[allow(unused_variables)]
3393 fn write(
3394 &self,
3395 stream: &mut BitWriteStream<LittleEndian>,
3396 definition: &GameEventDefinition,
3397 ) -> Result<()> {
3398 for entry in &definition.entries {
3399 let value = self
3400 .get_field(&entry.name)
3401 .unwrap_or_else(|_| entry.kind.default_value());
3402 stream.write(&value)?;
3403 }
3404 Ok(())
3405 }
3406}
3407#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3408#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3409pub struct GcLostSessionEvent {}
3410impl GcLostSessionEvent {
3411 #[allow(unused_variables)]
3412 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3413 Ok(GcLostSessionEvent {})
3414 }
3415 #[allow(unused_variables)]
3416 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3417 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3418 match field {
3419 _ => Err(ParseError::MissingGameEventValue {
3420 ty: "GcLostSession",
3421 field: field.into(),
3422 }),
3423 }
3424 }
3425 #[allow(unused_variables)]
3426 fn write(
3427 &self,
3428 stream: &mut BitWriteStream<LittleEndian>,
3429 definition: &GameEventDefinition,
3430 ) -> Result<()> {
3431 for entry in &definition.entries {
3432 let value = self
3433 .get_field(&entry.name)
3434 .unwrap_or_else(|_| entry.kind.default_value());
3435 stream.write(&value)?;
3436 }
3437 Ok(())
3438 }
3439}
3440#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3441#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3442pub struct IntroFinishEvent {
3443 pub player: u16,
3444}
3445impl IntroFinishEvent {
3446 #[allow(unused_variables)]
3447 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3448 Ok(IntroFinishEvent {
3449 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
3450 })
3451 }
3452 #[allow(unused_variables)]
3453 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3454 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3455 match field {
3456 "player" => Ok(self.player.clone().into()),
3457 _ => Err(ParseError::MissingGameEventValue {
3458 ty: "IntroFinish",
3459 field: field.into(),
3460 }),
3461 }
3462 }
3463 #[allow(unused_variables)]
3464 fn write(
3465 &self,
3466 stream: &mut BitWriteStream<LittleEndian>,
3467 definition: &GameEventDefinition,
3468 ) -> Result<()> {
3469 for entry in &definition.entries {
3470 let value = self
3471 .get_field(&entry.name)
3472 .unwrap_or_else(|_| entry.kind.default_value());
3473 stream.write(&value)?;
3474 }
3475 Ok(())
3476 }
3477}
3478#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3479#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3480pub struct IntroNextCameraEvent {
3481 pub player: u16,
3482}
3483impl IntroNextCameraEvent {
3484 #[allow(unused_variables)]
3485 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3486 Ok(IntroNextCameraEvent {
3487 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
3488 })
3489 }
3490 #[allow(unused_variables)]
3491 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3492 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3493 match field {
3494 "player" => Ok(self.player.clone().into()),
3495 _ => Err(ParseError::MissingGameEventValue {
3496 ty: "IntroNextCamera",
3497 field: field.into(),
3498 }),
3499 }
3500 }
3501 #[allow(unused_variables)]
3502 fn write(
3503 &self,
3504 stream: &mut BitWriteStream<LittleEndian>,
3505 definition: &GameEventDefinition,
3506 ) -> Result<()> {
3507 for entry in &definition.entries {
3508 let value = self
3509 .get_field(&entry.name)
3510 .unwrap_or_else(|_| entry.kind.default_value());
3511 stream.write(&value)?;
3512 }
3513 Ok(())
3514 }
3515}
3516#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3517#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3518pub struct PlayerChangeClassEvent {
3519 pub user_id: u16,
3520 pub class: u16,
3521}
3522impl PlayerChangeClassEvent {
3523 #[allow(unused_variables)]
3524 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3525 Ok(PlayerChangeClassEvent {
3526 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
3527 class: read_value::<u16>(stream, definition.get_entry("class"), "class")?,
3528 })
3529 }
3530 #[allow(unused_variables)]
3531 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3532 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3533 match field {
3534 "userid" => Ok(self.user_id.clone().into()),
3535 "class" => Ok(self.class.clone().into()),
3536 _ => Err(ParseError::MissingGameEventValue {
3537 ty: "PlayerChangeClass",
3538 field: field.into(),
3539 }),
3540 }
3541 }
3542 #[allow(unused_variables)]
3543 fn write(
3544 &self,
3545 stream: &mut BitWriteStream<LittleEndian>,
3546 definition: &GameEventDefinition,
3547 ) -> Result<()> {
3548 for entry in &definition.entries {
3549 let value = self
3550 .get_field(&entry.name)
3551 .unwrap_or_else(|_| entry.kind.default_value());
3552 stream.write(&value)?;
3553 }
3554 Ok(())
3555 }
3556}
3557#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3558#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3559pub struct TfMapTimeRemainingEvent {
3560 pub seconds: u32,
3561}
3562impl TfMapTimeRemainingEvent {
3563 #[allow(unused_variables)]
3564 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3565 Ok(TfMapTimeRemainingEvent {
3566 seconds: read_value::<u32>(stream, definition.get_entry("seconds"), "seconds")?,
3567 })
3568 }
3569 #[allow(unused_variables)]
3570 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3571 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3572 match field {
3573 "seconds" => Ok(self.seconds.clone().into()),
3574 _ => Err(ParseError::MissingGameEventValue {
3575 ty: "TfMapTimeRemaining",
3576 field: field.into(),
3577 }),
3578 }
3579 }
3580 #[allow(unused_variables)]
3581 fn write(
3582 &self,
3583 stream: &mut BitWriteStream<LittleEndian>,
3584 definition: &GameEventDefinition,
3585 ) -> Result<()> {
3586 for entry in &definition.entries {
3587 let value = self
3588 .get_field(&entry.name)
3589 .unwrap_or_else(|_| entry.kind.default_value());
3590 stream.write(&value)?;
3591 }
3592 Ok(())
3593 }
3594}
3595#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3596#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3597pub struct TfGameOverEvent {
3598 pub reason: MaybeUtf8String,
3599}
3600impl TfGameOverEvent {
3601 #[allow(unused_variables)]
3602 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3603 Ok(TfGameOverEvent {
3604 reason: read_value::<MaybeUtf8String>(
3605 stream,
3606 definition.get_entry("reason"),
3607 "reason",
3608 )?,
3609 })
3610 }
3611 #[allow(unused_variables)]
3612 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3613 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3614 match field {
3615 "reason" => Ok(self.reason.clone().into()),
3616 _ => Err(ParseError::MissingGameEventValue {
3617 ty: "TfGameOver",
3618 field: field.into(),
3619 }),
3620 }
3621 }
3622 #[allow(unused_variables)]
3623 fn write(
3624 &self,
3625 stream: &mut BitWriteStream<LittleEndian>,
3626 definition: &GameEventDefinition,
3627 ) -> Result<()> {
3628 for entry in &definition.entries {
3629 let value = self
3630 .get_field(&entry.name)
3631 .unwrap_or_else(|_| entry.kind.default_value());
3632 stream.write(&value)?;
3633 }
3634 Ok(())
3635 }
3636}
3637#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3638#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3639pub struct CtfFlagCapturedEvent {
3640 pub capping_team: u16,
3641 pub capping_team_score: u16,
3642}
3643impl CtfFlagCapturedEvent {
3644 #[allow(unused_variables)]
3645 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3646 Ok(CtfFlagCapturedEvent {
3647 capping_team: read_value::<u16>(
3648 stream,
3649 definition.get_entry("capping_team"),
3650 "capping_team",
3651 )?,
3652 capping_team_score: read_value::<u16>(
3653 stream,
3654 definition.get_entry("capping_team_score"),
3655 "capping_team_score",
3656 )?,
3657 })
3658 }
3659 #[allow(unused_variables)]
3660 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3661 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3662 match field {
3663 "capping_team" => Ok(self.capping_team.clone().into()),
3664 "capping_team_score" => Ok(self.capping_team_score.clone().into()),
3665 _ => Err(ParseError::MissingGameEventValue {
3666 ty: "CtfFlagCaptured",
3667 field: field.into(),
3668 }),
3669 }
3670 }
3671 #[allow(unused_variables)]
3672 fn write(
3673 &self,
3674 stream: &mut BitWriteStream<LittleEndian>,
3675 definition: &GameEventDefinition,
3676 ) -> Result<()> {
3677 for entry in &definition.entries {
3678 let value = self
3679 .get_field(&entry.name)
3680 .unwrap_or_else(|_| entry.kind.default_value());
3681 stream.write(&value)?;
3682 }
3683 Ok(())
3684 }
3685}
3686#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3687#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3688pub struct ControlPointInitializedEvent {}
3689impl ControlPointInitializedEvent {
3690 #[allow(unused_variables)]
3691 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3692 Ok(ControlPointInitializedEvent {})
3693 }
3694 #[allow(unused_variables)]
3695 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3696 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3697 match field {
3698 _ => Err(ParseError::MissingGameEventValue {
3699 ty: "ControlPointInitialized",
3700 field: field.into(),
3701 }),
3702 }
3703 }
3704 #[allow(unused_variables)]
3705 fn write(
3706 &self,
3707 stream: &mut BitWriteStream<LittleEndian>,
3708 definition: &GameEventDefinition,
3709 ) -> Result<()> {
3710 for entry in &definition.entries {
3711 let value = self
3712 .get_field(&entry.name)
3713 .unwrap_or_else(|_| entry.kind.default_value());
3714 stream.write(&value)?;
3715 }
3716 Ok(())
3717 }
3718}
3719#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3720#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3721pub struct ControlPointUpdateImagesEvent {
3722 pub index: u16,
3723}
3724impl ControlPointUpdateImagesEvent {
3725 #[allow(unused_variables)]
3726 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3727 Ok(ControlPointUpdateImagesEvent {
3728 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
3729 })
3730 }
3731 #[allow(unused_variables)]
3732 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3733 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3734 match field {
3735 "index" => Ok(self.index.clone().into()),
3736 _ => Err(ParseError::MissingGameEventValue {
3737 ty: "ControlPointUpdateImages",
3738 field: field.into(),
3739 }),
3740 }
3741 }
3742 #[allow(unused_variables)]
3743 fn write(
3744 &self,
3745 stream: &mut BitWriteStream<LittleEndian>,
3746 definition: &GameEventDefinition,
3747 ) -> Result<()> {
3748 for entry in &definition.entries {
3749 let value = self
3750 .get_field(&entry.name)
3751 .unwrap_or_else(|_| entry.kind.default_value());
3752 stream.write(&value)?;
3753 }
3754 Ok(())
3755 }
3756}
3757#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3758#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3759pub struct ControlPointUpdateLayoutEvent {
3760 pub index: u16,
3761}
3762impl ControlPointUpdateLayoutEvent {
3763 #[allow(unused_variables)]
3764 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3765 Ok(ControlPointUpdateLayoutEvent {
3766 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
3767 })
3768 }
3769 #[allow(unused_variables)]
3770 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3771 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3772 match field {
3773 "index" => Ok(self.index.clone().into()),
3774 _ => Err(ParseError::MissingGameEventValue {
3775 ty: "ControlPointUpdateLayout",
3776 field: field.into(),
3777 }),
3778 }
3779 }
3780 #[allow(unused_variables)]
3781 fn write(
3782 &self,
3783 stream: &mut BitWriteStream<LittleEndian>,
3784 definition: &GameEventDefinition,
3785 ) -> Result<()> {
3786 for entry in &definition.entries {
3787 let value = self
3788 .get_field(&entry.name)
3789 .unwrap_or_else(|_| entry.kind.default_value());
3790 stream.write(&value)?;
3791 }
3792 Ok(())
3793 }
3794}
3795#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3796#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3797pub struct ControlPointUpdateCappingEvent {
3798 pub index: u16,
3799}
3800impl ControlPointUpdateCappingEvent {
3801 #[allow(unused_variables)]
3802 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3803 Ok(ControlPointUpdateCappingEvent {
3804 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
3805 })
3806 }
3807 #[allow(unused_variables)]
3808 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3809 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3810 match field {
3811 "index" => Ok(self.index.clone().into()),
3812 _ => Err(ParseError::MissingGameEventValue {
3813 ty: "ControlPointUpdateCapping",
3814 field: field.into(),
3815 }),
3816 }
3817 }
3818 #[allow(unused_variables)]
3819 fn write(
3820 &self,
3821 stream: &mut BitWriteStream<LittleEndian>,
3822 definition: &GameEventDefinition,
3823 ) -> Result<()> {
3824 for entry in &definition.entries {
3825 let value = self
3826 .get_field(&entry.name)
3827 .unwrap_or_else(|_| entry.kind.default_value());
3828 stream.write(&value)?;
3829 }
3830 Ok(())
3831 }
3832}
3833#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3834#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3835pub struct ControlPointUpdateOwnerEvent {
3836 pub index: u16,
3837}
3838impl ControlPointUpdateOwnerEvent {
3839 #[allow(unused_variables)]
3840 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3841 Ok(ControlPointUpdateOwnerEvent {
3842 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
3843 })
3844 }
3845 #[allow(unused_variables)]
3846 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3847 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3848 match field {
3849 "index" => Ok(self.index.clone().into()),
3850 _ => Err(ParseError::MissingGameEventValue {
3851 ty: "ControlPointUpdateOwner",
3852 field: field.into(),
3853 }),
3854 }
3855 }
3856 #[allow(unused_variables)]
3857 fn write(
3858 &self,
3859 stream: &mut BitWriteStream<LittleEndian>,
3860 definition: &GameEventDefinition,
3861 ) -> Result<()> {
3862 for entry in &definition.entries {
3863 let value = self
3864 .get_field(&entry.name)
3865 .unwrap_or_else(|_| entry.kind.default_value());
3866 stream.write(&value)?;
3867 }
3868 Ok(())
3869 }
3870}
3871#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3872#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3873pub struct ControlPointStartTouchEvent {
3874 pub player: u16,
3875 pub area: u16,
3876}
3877impl ControlPointStartTouchEvent {
3878 #[allow(unused_variables)]
3879 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3880 Ok(ControlPointStartTouchEvent {
3881 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
3882 area: read_value::<u16>(stream, definition.get_entry("area"), "area")?,
3883 })
3884 }
3885 #[allow(unused_variables)]
3886 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3887 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3888 match field {
3889 "player" => Ok(self.player.clone().into()),
3890 "area" => Ok(self.area.clone().into()),
3891 _ => Err(ParseError::MissingGameEventValue {
3892 ty: "ControlPointStartTouch",
3893 field: field.into(),
3894 }),
3895 }
3896 }
3897 #[allow(unused_variables)]
3898 fn write(
3899 &self,
3900 stream: &mut BitWriteStream<LittleEndian>,
3901 definition: &GameEventDefinition,
3902 ) -> Result<()> {
3903 for entry in &definition.entries {
3904 let value = self
3905 .get_field(&entry.name)
3906 .unwrap_or_else(|_| entry.kind.default_value());
3907 stream.write(&value)?;
3908 }
3909 Ok(())
3910 }
3911}
3912#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3913#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3914pub struct ControlPointEndTouchEvent {
3915 pub player: u16,
3916 pub area: u16,
3917}
3918impl ControlPointEndTouchEvent {
3919 #[allow(unused_variables)]
3920 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3921 Ok(ControlPointEndTouchEvent {
3922 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
3923 area: read_value::<u16>(stream, definition.get_entry("area"), "area")?,
3924 })
3925 }
3926 #[allow(unused_variables)]
3927 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3928 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3929 match field {
3930 "player" => Ok(self.player.clone().into()),
3931 "area" => Ok(self.area.clone().into()),
3932 _ => Err(ParseError::MissingGameEventValue {
3933 ty: "ControlPointEndTouch",
3934 field: field.into(),
3935 }),
3936 }
3937 }
3938 #[allow(unused_variables)]
3939 fn write(
3940 &self,
3941 stream: &mut BitWriteStream<LittleEndian>,
3942 definition: &GameEventDefinition,
3943 ) -> Result<()> {
3944 for entry in &definition.entries {
3945 let value = self
3946 .get_field(&entry.name)
3947 .unwrap_or_else(|_| entry.kind.default_value());
3948 stream.write(&value)?;
3949 }
3950 Ok(())
3951 }
3952}
3953#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3954#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3955pub struct ControlPointPulseElementEvent {
3956 pub player: u16,
3957}
3958impl ControlPointPulseElementEvent {
3959 #[allow(unused_variables)]
3960 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
3961 Ok(ControlPointPulseElementEvent {
3962 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
3963 })
3964 }
3965 #[allow(unused_variables)]
3966 fn get_field(&self, field: &str) -> Result<GameEventValue> {
3967 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
3968 match field {
3969 "player" => Ok(self.player.clone().into()),
3970 _ => Err(ParseError::MissingGameEventValue {
3971 ty: "ControlPointPulseElement",
3972 field: field.into(),
3973 }),
3974 }
3975 }
3976 #[allow(unused_variables)]
3977 fn write(
3978 &self,
3979 stream: &mut BitWriteStream<LittleEndian>,
3980 definition: &GameEventDefinition,
3981 ) -> Result<()> {
3982 for entry in &definition.entries {
3983 let value = self
3984 .get_field(&entry.name)
3985 .unwrap_or_else(|_| entry.kind.default_value());
3986 stream.write(&value)?;
3987 }
3988 Ok(())
3989 }
3990}
3991#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
3992#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
3993pub struct ControlPointFakeCaptureEvent {
3994 pub player: u16,
3995 pub int_data: u16,
3996}
3997impl ControlPointFakeCaptureEvent {
3998 #[allow(unused_variables)]
3999 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4000 Ok(ControlPointFakeCaptureEvent {
4001 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
4002 int_data: read_value::<u16>(stream, definition.get_entry("int_data"), "int_data")?,
4003 })
4004 }
4005 #[allow(unused_variables)]
4006 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4007 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4008 match field {
4009 "player" => Ok(self.player.clone().into()),
4010 "int_data" => Ok(self.int_data.clone().into()),
4011 _ => Err(ParseError::MissingGameEventValue {
4012 ty: "ControlPointFakeCapture",
4013 field: field.into(),
4014 }),
4015 }
4016 }
4017 #[allow(unused_variables)]
4018 fn write(
4019 &self,
4020 stream: &mut BitWriteStream<LittleEndian>,
4021 definition: &GameEventDefinition,
4022 ) -> Result<()> {
4023 for entry in &definition.entries {
4024 let value = self
4025 .get_field(&entry.name)
4026 .unwrap_or_else(|_| entry.kind.default_value());
4027 stream.write(&value)?;
4028 }
4029 Ok(())
4030 }
4031}
4032#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4033#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4034pub struct ControlPointFakeCaptureMultiplierEvent {
4035 pub player: u16,
4036 pub int_data: u16,
4037}
4038impl ControlPointFakeCaptureMultiplierEvent {
4039 #[allow(unused_variables)]
4040 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4041 Ok(ControlPointFakeCaptureMultiplierEvent {
4042 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
4043 int_data: read_value::<u16>(stream, definition.get_entry("int_data"), "int_data")?,
4044 })
4045 }
4046 #[allow(unused_variables)]
4047 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4048 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4049 match field {
4050 "player" => Ok(self.player.clone().into()),
4051 "int_data" => Ok(self.int_data.clone().into()),
4052 _ => Err(ParseError::MissingGameEventValue {
4053 ty: "ControlPointFakeCaptureMultiplier",
4054 field: field.into(),
4055 }),
4056 }
4057 }
4058 #[allow(unused_variables)]
4059 fn write(
4060 &self,
4061 stream: &mut BitWriteStream<LittleEndian>,
4062 definition: &GameEventDefinition,
4063 ) -> Result<()> {
4064 for entry in &definition.entries {
4065 let value = self
4066 .get_field(&entry.name)
4067 .unwrap_or_else(|_| entry.kind.default_value());
4068 stream.write(&value)?;
4069 }
4070 Ok(())
4071 }
4072}
4073#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4074#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4075pub struct TeamPlayRoundSelectedEvent {
4076 pub round: MaybeUtf8String,
4077}
4078impl TeamPlayRoundSelectedEvent {
4079 #[allow(unused_variables)]
4080 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4081 Ok(TeamPlayRoundSelectedEvent {
4082 round: read_value::<MaybeUtf8String>(stream, definition.get_entry("round"), "round")?,
4083 })
4084 }
4085 #[allow(unused_variables)]
4086 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4087 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4088 match field {
4089 "round" => Ok(self.round.clone().into()),
4090 _ => Err(ParseError::MissingGameEventValue {
4091 ty: "TeamPlayRoundSelected",
4092 field: field.into(),
4093 }),
4094 }
4095 }
4096 #[allow(unused_variables)]
4097 fn write(
4098 &self,
4099 stream: &mut BitWriteStream<LittleEndian>,
4100 definition: &GameEventDefinition,
4101 ) -> Result<()> {
4102 for entry in &definition.entries {
4103 let value = self
4104 .get_field(&entry.name)
4105 .unwrap_or_else(|_| entry.kind.default_value());
4106 stream.write(&value)?;
4107 }
4108 Ok(())
4109 }
4110}
4111#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4112#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4113pub struct TeamPlayRoundStartEvent {
4114 pub full_reset: bool,
4115}
4116impl TeamPlayRoundStartEvent {
4117 #[allow(unused_variables)]
4118 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4119 Ok(TeamPlayRoundStartEvent {
4120 full_reset: read_value::<bool>(
4121 stream,
4122 definition.get_entry("full_reset"),
4123 "full_reset",
4124 )?,
4125 })
4126 }
4127 #[allow(unused_variables)]
4128 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4129 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4130 match field {
4131 "full_reset" => Ok(self.full_reset.clone().into()),
4132 _ => Err(ParseError::MissingGameEventValue {
4133 ty: "TeamPlayRoundStart",
4134 field: field.into(),
4135 }),
4136 }
4137 }
4138 #[allow(unused_variables)]
4139 fn write(
4140 &self,
4141 stream: &mut BitWriteStream<LittleEndian>,
4142 definition: &GameEventDefinition,
4143 ) -> Result<()> {
4144 for entry in &definition.entries {
4145 let value = self
4146 .get_field(&entry.name)
4147 .unwrap_or_else(|_| entry.kind.default_value());
4148 stream.write(&value)?;
4149 }
4150 Ok(())
4151 }
4152}
4153#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4154#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4155pub struct TeamPlayRoundActiveEvent {}
4156impl TeamPlayRoundActiveEvent {
4157 #[allow(unused_variables)]
4158 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4159 Ok(TeamPlayRoundActiveEvent {})
4160 }
4161 #[allow(unused_variables)]
4162 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4163 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4164 match field {
4165 _ => Err(ParseError::MissingGameEventValue {
4166 ty: "TeamPlayRoundActive",
4167 field: field.into(),
4168 }),
4169 }
4170 }
4171 #[allow(unused_variables)]
4172 fn write(
4173 &self,
4174 stream: &mut BitWriteStream<LittleEndian>,
4175 definition: &GameEventDefinition,
4176 ) -> Result<()> {
4177 for entry in &definition.entries {
4178 let value = self
4179 .get_field(&entry.name)
4180 .unwrap_or_else(|_| entry.kind.default_value());
4181 stream.write(&value)?;
4182 }
4183 Ok(())
4184 }
4185}
4186#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4187#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4188pub struct TeamPlayWaitingBeginsEvent {}
4189impl TeamPlayWaitingBeginsEvent {
4190 #[allow(unused_variables)]
4191 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4192 Ok(TeamPlayWaitingBeginsEvent {})
4193 }
4194 #[allow(unused_variables)]
4195 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4196 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4197 match field {
4198 _ => Err(ParseError::MissingGameEventValue {
4199 ty: "TeamPlayWaitingBegins",
4200 field: field.into(),
4201 }),
4202 }
4203 }
4204 #[allow(unused_variables)]
4205 fn write(
4206 &self,
4207 stream: &mut BitWriteStream<LittleEndian>,
4208 definition: &GameEventDefinition,
4209 ) -> Result<()> {
4210 for entry in &definition.entries {
4211 let value = self
4212 .get_field(&entry.name)
4213 .unwrap_or_else(|_| entry.kind.default_value());
4214 stream.write(&value)?;
4215 }
4216 Ok(())
4217 }
4218}
4219#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4220#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4221pub struct TeamPlayWaitingEndsEvent {}
4222impl TeamPlayWaitingEndsEvent {
4223 #[allow(unused_variables)]
4224 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4225 Ok(TeamPlayWaitingEndsEvent {})
4226 }
4227 #[allow(unused_variables)]
4228 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4229 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4230 match field {
4231 _ => Err(ParseError::MissingGameEventValue {
4232 ty: "TeamPlayWaitingEnds",
4233 field: field.into(),
4234 }),
4235 }
4236 }
4237 #[allow(unused_variables)]
4238 fn write(
4239 &self,
4240 stream: &mut BitWriteStream<LittleEndian>,
4241 definition: &GameEventDefinition,
4242 ) -> Result<()> {
4243 for entry in &definition.entries {
4244 let value = self
4245 .get_field(&entry.name)
4246 .unwrap_or_else(|_| entry.kind.default_value());
4247 stream.write(&value)?;
4248 }
4249 Ok(())
4250 }
4251}
4252#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4253#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4254pub struct TeamPlayWaitingAboutToEndEvent {}
4255impl TeamPlayWaitingAboutToEndEvent {
4256 #[allow(unused_variables)]
4257 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4258 Ok(TeamPlayWaitingAboutToEndEvent {})
4259 }
4260 #[allow(unused_variables)]
4261 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4262 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4263 match field {
4264 _ => Err(ParseError::MissingGameEventValue {
4265 ty: "TeamPlayWaitingAboutToEnd",
4266 field: field.into(),
4267 }),
4268 }
4269 }
4270 #[allow(unused_variables)]
4271 fn write(
4272 &self,
4273 stream: &mut BitWriteStream<LittleEndian>,
4274 definition: &GameEventDefinition,
4275 ) -> Result<()> {
4276 for entry in &definition.entries {
4277 let value = self
4278 .get_field(&entry.name)
4279 .unwrap_or_else(|_| entry.kind.default_value());
4280 stream.write(&value)?;
4281 }
4282 Ok(())
4283 }
4284}
4285#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4286#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4287pub struct TeamPlayRestartRoundEvent {}
4288impl TeamPlayRestartRoundEvent {
4289 #[allow(unused_variables)]
4290 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4291 Ok(TeamPlayRestartRoundEvent {})
4292 }
4293 #[allow(unused_variables)]
4294 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4295 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4296 match field {
4297 _ => Err(ParseError::MissingGameEventValue {
4298 ty: "TeamPlayRestartRound",
4299 field: field.into(),
4300 }),
4301 }
4302 }
4303 #[allow(unused_variables)]
4304 fn write(
4305 &self,
4306 stream: &mut BitWriteStream<LittleEndian>,
4307 definition: &GameEventDefinition,
4308 ) -> Result<()> {
4309 for entry in &definition.entries {
4310 let value = self
4311 .get_field(&entry.name)
4312 .unwrap_or_else(|_| entry.kind.default_value());
4313 stream.write(&value)?;
4314 }
4315 Ok(())
4316 }
4317}
4318#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4319#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4320pub struct TeamPlayReadyRestartEvent {}
4321impl TeamPlayReadyRestartEvent {
4322 #[allow(unused_variables)]
4323 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4324 Ok(TeamPlayReadyRestartEvent {})
4325 }
4326 #[allow(unused_variables)]
4327 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4328 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4329 match field {
4330 _ => Err(ParseError::MissingGameEventValue {
4331 ty: "TeamPlayReadyRestart",
4332 field: field.into(),
4333 }),
4334 }
4335 }
4336 #[allow(unused_variables)]
4337 fn write(
4338 &self,
4339 stream: &mut BitWriteStream<LittleEndian>,
4340 definition: &GameEventDefinition,
4341 ) -> Result<()> {
4342 for entry in &definition.entries {
4343 let value = self
4344 .get_field(&entry.name)
4345 .unwrap_or_else(|_| entry.kind.default_value());
4346 stream.write(&value)?;
4347 }
4348 Ok(())
4349 }
4350}
4351#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4352#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4353pub struct TeamPlayRoundRestartSecondsEvent {
4354 pub seconds: u16,
4355}
4356impl TeamPlayRoundRestartSecondsEvent {
4357 #[allow(unused_variables)]
4358 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4359 Ok(TeamPlayRoundRestartSecondsEvent {
4360 seconds: read_value::<u16>(stream, definition.get_entry("seconds"), "seconds")?,
4361 })
4362 }
4363 #[allow(unused_variables)]
4364 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4365 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4366 match field {
4367 "seconds" => Ok(self.seconds.clone().into()),
4368 _ => Err(ParseError::MissingGameEventValue {
4369 ty: "TeamPlayRoundRestartSeconds",
4370 field: field.into(),
4371 }),
4372 }
4373 }
4374 #[allow(unused_variables)]
4375 fn write(
4376 &self,
4377 stream: &mut BitWriteStream<LittleEndian>,
4378 definition: &GameEventDefinition,
4379 ) -> Result<()> {
4380 for entry in &definition.entries {
4381 let value = self
4382 .get_field(&entry.name)
4383 .unwrap_or_else(|_| entry.kind.default_value());
4384 stream.write(&value)?;
4385 }
4386 Ok(())
4387 }
4388}
4389#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4390#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4391pub struct TeamPlayTeamReadyEvent {
4392 pub team: u8,
4393}
4394impl TeamPlayTeamReadyEvent {
4395 #[allow(unused_variables)]
4396 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4397 Ok(TeamPlayTeamReadyEvent {
4398 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
4399 })
4400 }
4401 #[allow(unused_variables)]
4402 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4403 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4404 match field {
4405 "team" => Ok(self.team.clone().into()),
4406 _ => Err(ParseError::MissingGameEventValue {
4407 ty: "TeamPlayTeamReady",
4408 field: field.into(),
4409 }),
4410 }
4411 }
4412 #[allow(unused_variables)]
4413 fn write(
4414 &self,
4415 stream: &mut BitWriteStream<LittleEndian>,
4416 definition: &GameEventDefinition,
4417 ) -> Result<()> {
4418 for entry in &definition.entries {
4419 let value = self
4420 .get_field(&entry.name)
4421 .unwrap_or_else(|_| entry.kind.default_value());
4422 stream.write(&value)?;
4423 }
4424 Ok(())
4425 }
4426}
4427#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4428#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4429pub struct TeamPlayRoundWinEvent {
4430 pub team: u8,
4431 pub win_reason: u8,
4432 pub flag_cap_limit: u16,
4433 pub full_round: u16,
4434 pub round_time: f32,
4435 pub losing_team_num_caps: u16,
4436 pub was_sudden_death: u8,
4437}
4438impl TeamPlayRoundWinEvent {
4439 #[allow(unused_variables)]
4440 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4441 Ok(TeamPlayRoundWinEvent {
4442 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
4443 win_reason: read_value::<u8>(stream, definition.get_entry("winreason"), "win_reason")?,
4444 flag_cap_limit: read_value::<u16>(
4445 stream,
4446 definition.get_entry("flagcaplimit"),
4447 "flag_cap_limit",
4448 )?,
4449 full_round: read_value::<u16>(
4450 stream,
4451 definition.get_entry("full_round"),
4452 "full_round",
4453 )?,
4454 round_time: read_value::<f32>(
4455 stream,
4456 definition.get_entry("round_time"),
4457 "round_time",
4458 )?,
4459 losing_team_num_caps: read_value::<u16>(
4460 stream,
4461 definition.get_entry("losing_team_num_caps"),
4462 "losing_team_num_caps",
4463 )?,
4464 was_sudden_death: read_value::<u8>(
4465 stream,
4466 definition.get_entry("was_sudden_death"),
4467 "was_sudden_death",
4468 )?,
4469 })
4470 }
4471 #[allow(unused_variables)]
4472 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4473 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4474 match field {
4475 "team" => Ok(self.team.clone().into()),
4476 "winreason" => Ok(self.win_reason.clone().into()),
4477 "flagcaplimit" => Ok(self.flag_cap_limit.clone().into()),
4478 "full_round" => Ok(self.full_round.clone().into()),
4479 "round_time" => Ok(self.round_time.clone().into()),
4480 "losing_team_num_caps" => Ok(self.losing_team_num_caps.clone().into()),
4481 "was_sudden_death" => Ok(self.was_sudden_death.clone().into()),
4482 _ => Err(ParseError::MissingGameEventValue {
4483 ty: "TeamPlayRoundWin",
4484 field: field.into(),
4485 }),
4486 }
4487 }
4488 #[allow(unused_variables)]
4489 fn write(
4490 &self,
4491 stream: &mut BitWriteStream<LittleEndian>,
4492 definition: &GameEventDefinition,
4493 ) -> Result<()> {
4494 for entry in &definition.entries {
4495 let value = self
4496 .get_field(&entry.name)
4497 .unwrap_or_else(|_| entry.kind.default_value());
4498 stream.write(&value)?;
4499 }
4500 Ok(())
4501 }
4502}
4503#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4504#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4505pub struct TeamPlayUpdateTimerEvent {}
4506impl TeamPlayUpdateTimerEvent {
4507 #[allow(unused_variables)]
4508 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4509 Ok(TeamPlayUpdateTimerEvent {})
4510 }
4511 #[allow(unused_variables)]
4512 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4513 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4514 match field {
4515 _ => Err(ParseError::MissingGameEventValue {
4516 ty: "TeamPlayUpdateTimer",
4517 field: field.into(),
4518 }),
4519 }
4520 }
4521 #[allow(unused_variables)]
4522 fn write(
4523 &self,
4524 stream: &mut BitWriteStream<LittleEndian>,
4525 definition: &GameEventDefinition,
4526 ) -> Result<()> {
4527 for entry in &definition.entries {
4528 let value = self
4529 .get_field(&entry.name)
4530 .unwrap_or_else(|_| entry.kind.default_value());
4531 stream.write(&value)?;
4532 }
4533 Ok(())
4534 }
4535}
4536#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4537#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4538pub struct TeamPlayRoundStalemateEvent {
4539 pub reason: u8,
4540}
4541impl TeamPlayRoundStalemateEvent {
4542 #[allow(unused_variables)]
4543 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4544 Ok(TeamPlayRoundStalemateEvent {
4545 reason: read_value::<u8>(stream, definition.get_entry("reason"), "reason")?,
4546 })
4547 }
4548 #[allow(unused_variables)]
4549 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4550 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4551 match field {
4552 "reason" => Ok(self.reason.clone().into()),
4553 _ => Err(ParseError::MissingGameEventValue {
4554 ty: "TeamPlayRoundStalemate",
4555 field: field.into(),
4556 }),
4557 }
4558 }
4559 #[allow(unused_variables)]
4560 fn write(
4561 &self,
4562 stream: &mut BitWriteStream<LittleEndian>,
4563 definition: &GameEventDefinition,
4564 ) -> Result<()> {
4565 for entry in &definition.entries {
4566 let value = self
4567 .get_field(&entry.name)
4568 .unwrap_or_else(|_| entry.kind.default_value());
4569 stream.write(&value)?;
4570 }
4571 Ok(())
4572 }
4573}
4574#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4575#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4576pub struct TeamPlayOvertimeBeginEvent {}
4577impl TeamPlayOvertimeBeginEvent {
4578 #[allow(unused_variables)]
4579 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4580 Ok(TeamPlayOvertimeBeginEvent {})
4581 }
4582 #[allow(unused_variables)]
4583 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4584 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4585 match field {
4586 _ => Err(ParseError::MissingGameEventValue {
4587 ty: "TeamPlayOvertimeBegin",
4588 field: field.into(),
4589 }),
4590 }
4591 }
4592 #[allow(unused_variables)]
4593 fn write(
4594 &self,
4595 stream: &mut BitWriteStream<LittleEndian>,
4596 definition: &GameEventDefinition,
4597 ) -> Result<()> {
4598 for entry in &definition.entries {
4599 let value = self
4600 .get_field(&entry.name)
4601 .unwrap_or_else(|_| entry.kind.default_value());
4602 stream.write(&value)?;
4603 }
4604 Ok(())
4605 }
4606}
4607#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4608#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4609pub struct TeamPlayOvertimeEndEvent {}
4610impl TeamPlayOvertimeEndEvent {
4611 #[allow(unused_variables)]
4612 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4613 Ok(TeamPlayOvertimeEndEvent {})
4614 }
4615 #[allow(unused_variables)]
4616 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4617 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4618 match field {
4619 _ => Err(ParseError::MissingGameEventValue {
4620 ty: "TeamPlayOvertimeEnd",
4621 field: field.into(),
4622 }),
4623 }
4624 }
4625 #[allow(unused_variables)]
4626 fn write(
4627 &self,
4628 stream: &mut BitWriteStream<LittleEndian>,
4629 definition: &GameEventDefinition,
4630 ) -> Result<()> {
4631 for entry in &definition.entries {
4632 let value = self
4633 .get_field(&entry.name)
4634 .unwrap_or_else(|_| entry.kind.default_value());
4635 stream.write(&value)?;
4636 }
4637 Ok(())
4638 }
4639}
4640#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4641#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4642pub struct TeamPlaySuddenDeathBeginEvent {}
4643impl TeamPlaySuddenDeathBeginEvent {
4644 #[allow(unused_variables)]
4645 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4646 Ok(TeamPlaySuddenDeathBeginEvent {})
4647 }
4648 #[allow(unused_variables)]
4649 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4650 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4651 match field {
4652 _ => Err(ParseError::MissingGameEventValue {
4653 ty: "TeamPlaySuddenDeathBegin",
4654 field: field.into(),
4655 }),
4656 }
4657 }
4658 #[allow(unused_variables)]
4659 fn write(
4660 &self,
4661 stream: &mut BitWriteStream<LittleEndian>,
4662 definition: &GameEventDefinition,
4663 ) -> Result<()> {
4664 for entry in &definition.entries {
4665 let value = self
4666 .get_field(&entry.name)
4667 .unwrap_or_else(|_| entry.kind.default_value());
4668 stream.write(&value)?;
4669 }
4670 Ok(())
4671 }
4672}
4673#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4674#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4675pub struct TeamPlaySuddenDeathEndEvent {}
4676impl TeamPlaySuddenDeathEndEvent {
4677 #[allow(unused_variables)]
4678 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4679 Ok(TeamPlaySuddenDeathEndEvent {})
4680 }
4681 #[allow(unused_variables)]
4682 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4683 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4684 match field {
4685 _ => Err(ParseError::MissingGameEventValue {
4686 ty: "TeamPlaySuddenDeathEnd",
4687 field: field.into(),
4688 }),
4689 }
4690 }
4691 #[allow(unused_variables)]
4692 fn write(
4693 &self,
4694 stream: &mut BitWriteStream<LittleEndian>,
4695 definition: &GameEventDefinition,
4696 ) -> Result<()> {
4697 for entry in &definition.entries {
4698 let value = self
4699 .get_field(&entry.name)
4700 .unwrap_or_else(|_| entry.kind.default_value());
4701 stream.write(&value)?;
4702 }
4703 Ok(())
4704 }
4705}
4706#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4707#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4708pub struct TeamPlayGameOverEvent {
4709 pub reason: MaybeUtf8String,
4710}
4711impl TeamPlayGameOverEvent {
4712 #[allow(unused_variables)]
4713 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4714 Ok(TeamPlayGameOverEvent {
4715 reason: read_value::<MaybeUtf8String>(
4716 stream,
4717 definition.get_entry("reason"),
4718 "reason",
4719 )?,
4720 })
4721 }
4722 #[allow(unused_variables)]
4723 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4724 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4725 match field {
4726 "reason" => Ok(self.reason.clone().into()),
4727 _ => Err(ParseError::MissingGameEventValue {
4728 ty: "TeamPlayGameOver",
4729 field: field.into(),
4730 }),
4731 }
4732 }
4733 #[allow(unused_variables)]
4734 fn write(
4735 &self,
4736 stream: &mut BitWriteStream<LittleEndian>,
4737 definition: &GameEventDefinition,
4738 ) -> Result<()> {
4739 for entry in &definition.entries {
4740 let value = self
4741 .get_field(&entry.name)
4742 .unwrap_or_else(|_| entry.kind.default_value());
4743 stream.write(&value)?;
4744 }
4745 Ok(())
4746 }
4747}
4748#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4749#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4750pub struct TeamPlayMapTimeRemainingEvent {
4751 pub seconds: u16,
4752}
4753impl TeamPlayMapTimeRemainingEvent {
4754 #[allow(unused_variables)]
4755 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4756 Ok(TeamPlayMapTimeRemainingEvent {
4757 seconds: read_value::<u16>(stream, definition.get_entry("seconds"), "seconds")?,
4758 })
4759 }
4760 #[allow(unused_variables)]
4761 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4762 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4763 match field {
4764 "seconds" => Ok(self.seconds.clone().into()),
4765 _ => Err(ParseError::MissingGameEventValue {
4766 ty: "TeamPlayMapTimeRemaining",
4767 field: field.into(),
4768 }),
4769 }
4770 }
4771 #[allow(unused_variables)]
4772 fn write(
4773 &self,
4774 stream: &mut BitWriteStream<LittleEndian>,
4775 definition: &GameEventDefinition,
4776 ) -> Result<()> {
4777 for entry in &definition.entries {
4778 let value = self
4779 .get_field(&entry.name)
4780 .unwrap_or_else(|_| entry.kind.default_value());
4781 stream.write(&value)?;
4782 }
4783 Ok(())
4784 }
4785}
4786#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4787#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4788pub struct TeamPlayTimerFlashEvent {
4789 pub time_remaining: u16,
4790}
4791impl TeamPlayTimerFlashEvent {
4792 #[allow(unused_variables)]
4793 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4794 Ok(TeamPlayTimerFlashEvent {
4795 time_remaining: read_value::<u16>(
4796 stream,
4797 definition.get_entry("time_remaining"),
4798 "time_remaining",
4799 )?,
4800 })
4801 }
4802 #[allow(unused_variables)]
4803 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4804 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4805 match field {
4806 "time_remaining" => Ok(self.time_remaining.clone().into()),
4807 _ => Err(ParseError::MissingGameEventValue {
4808 ty: "TeamPlayTimerFlash",
4809 field: field.into(),
4810 }),
4811 }
4812 }
4813 #[allow(unused_variables)]
4814 fn write(
4815 &self,
4816 stream: &mut BitWriteStream<LittleEndian>,
4817 definition: &GameEventDefinition,
4818 ) -> Result<()> {
4819 for entry in &definition.entries {
4820 let value = self
4821 .get_field(&entry.name)
4822 .unwrap_or_else(|_| entry.kind.default_value());
4823 stream.write(&value)?;
4824 }
4825 Ok(())
4826 }
4827}
4828#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4829#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4830pub struct TeamPlayTimerTimeAddedEvent {
4831 pub timer: u16,
4832 pub seconds_added: u16,
4833}
4834impl TeamPlayTimerTimeAddedEvent {
4835 #[allow(unused_variables)]
4836 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4837 Ok(TeamPlayTimerTimeAddedEvent {
4838 timer: read_value::<u16>(stream, definition.get_entry("timer"), "timer")?,
4839 seconds_added: read_value::<u16>(
4840 stream,
4841 definition.get_entry("seconds_added"),
4842 "seconds_added",
4843 )?,
4844 })
4845 }
4846 #[allow(unused_variables)]
4847 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4848 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4849 match field {
4850 "timer" => Ok(self.timer.clone().into()),
4851 "seconds_added" => Ok(self.seconds_added.clone().into()),
4852 _ => Err(ParseError::MissingGameEventValue {
4853 ty: "TeamPlayTimerTimeAdded",
4854 field: field.into(),
4855 }),
4856 }
4857 }
4858 #[allow(unused_variables)]
4859 fn write(
4860 &self,
4861 stream: &mut BitWriteStream<LittleEndian>,
4862 definition: &GameEventDefinition,
4863 ) -> Result<()> {
4864 for entry in &definition.entries {
4865 let value = self
4866 .get_field(&entry.name)
4867 .unwrap_or_else(|_| entry.kind.default_value());
4868 stream.write(&value)?;
4869 }
4870 Ok(())
4871 }
4872}
4873#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4874#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4875pub struct TeamPlayPointStartCaptureEvent {
4876 pub cp: u8,
4877 pub cp_name: MaybeUtf8String,
4878 pub team: u8,
4879 pub cap_team: u8,
4880 pub cappers: MaybeUtf8String,
4881 pub cap_time: f32,
4882}
4883impl TeamPlayPointStartCaptureEvent {
4884 #[allow(unused_variables)]
4885 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4886 Ok(TeamPlayPointStartCaptureEvent {
4887 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
4888 cp_name: read_value::<MaybeUtf8String>(
4889 stream,
4890 definition.get_entry("cpname"),
4891 "cp_name",
4892 )?,
4893 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
4894 cap_team: read_value::<u8>(stream, definition.get_entry("capteam"), "cap_team")?,
4895 cappers: read_value::<MaybeUtf8String>(
4896 stream,
4897 definition.get_entry("cappers"),
4898 "cappers",
4899 )?,
4900 cap_time: read_value::<f32>(stream, definition.get_entry("captime"), "cap_time")?,
4901 })
4902 }
4903 #[allow(unused_variables)]
4904 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4905 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4906 match field {
4907 "cp" => Ok(self.cp.clone().into()),
4908 "cpname" => Ok(self.cp_name.clone().into()),
4909 "team" => Ok(self.team.clone().into()),
4910 "capteam" => Ok(self.cap_team.clone().into()),
4911 "cappers" => Ok(self.cappers.clone().into()),
4912 "captime" => Ok(self.cap_time.clone().into()),
4913 _ => Err(ParseError::MissingGameEventValue {
4914 ty: "TeamPlayPointStartCapture",
4915 field: field.into(),
4916 }),
4917 }
4918 }
4919 #[allow(unused_variables)]
4920 fn write(
4921 &self,
4922 stream: &mut BitWriteStream<LittleEndian>,
4923 definition: &GameEventDefinition,
4924 ) -> Result<()> {
4925 for entry in &definition.entries {
4926 let value = self
4927 .get_field(&entry.name)
4928 .unwrap_or_else(|_| entry.kind.default_value());
4929 stream.write(&value)?;
4930 }
4931 Ok(())
4932 }
4933}
4934#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4935#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4936pub struct TeamPlayPointCapturedEvent {
4937 pub cp: u8,
4938 pub cp_name: MaybeUtf8String,
4939 pub team: u8,
4940 pub cappers: MaybeUtf8String,
4941}
4942impl TeamPlayPointCapturedEvent {
4943 #[allow(unused_variables)]
4944 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4945 Ok(TeamPlayPointCapturedEvent {
4946 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
4947 cp_name: read_value::<MaybeUtf8String>(
4948 stream,
4949 definition.get_entry("cpname"),
4950 "cp_name",
4951 )?,
4952 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
4953 cappers: read_value::<MaybeUtf8String>(
4954 stream,
4955 definition.get_entry("cappers"),
4956 "cappers",
4957 )?,
4958 })
4959 }
4960 #[allow(unused_variables)]
4961 fn get_field(&self, field: &str) -> Result<GameEventValue> {
4962 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
4963 match field {
4964 "cp" => Ok(self.cp.clone().into()),
4965 "cpname" => Ok(self.cp_name.clone().into()),
4966 "team" => Ok(self.team.clone().into()),
4967 "cappers" => Ok(self.cappers.clone().into()),
4968 _ => Err(ParseError::MissingGameEventValue {
4969 ty: "TeamPlayPointCaptured",
4970 field: field.into(),
4971 }),
4972 }
4973 }
4974 #[allow(unused_variables)]
4975 fn write(
4976 &self,
4977 stream: &mut BitWriteStream<LittleEndian>,
4978 definition: &GameEventDefinition,
4979 ) -> Result<()> {
4980 for entry in &definition.entries {
4981 let value = self
4982 .get_field(&entry.name)
4983 .unwrap_or_else(|_| entry.kind.default_value());
4984 stream.write(&value)?;
4985 }
4986 Ok(())
4987 }
4988}
4989#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
4990#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
4991pub struct TeamPlayPointLockedEvent {
4992 pub cp: u8,
4993 pub cp_name: MaybeUtf8String,
4994 pub team: u8,
4995}
4996impl TeamPlayPointLockedEvent {
4997 #[allow(unused_variables)]
4998 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
4999 Ok(TeamPlayPointLockedEvent {
5000 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
5001 cp_name: read_value::<MaybeUtf8String>(
5002 stream,
5003 definition.get_entry("cpname"),
5004 "cp_name",
5005 )?,
5006 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
5007 })
5008 }
5009 #[allow(unused_variables)]
5010 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5011 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5012 match field {
5013 "cp" => Ok(self.cp.clone().into()),
5014 "cpname" => Ok(self.cp_name.clone().into()),
5015 "team" => Ok(self.team.clone().into()),
5016 _ => Err(ParseError::MissingGameEventValue {
5017 ty: "TeamPlayPointLocked",
5018 field: field.into(),
5019 }),
5020 }
5021 }
5022 #[allow(unused_variables)]
5023 fn write(
5024 &self,
5025 stream: &mut BitWriteStream<LittleEndian>,
5026 definition: &GameEventDefinition,
5027 ) -> Result<()> {
5028 for entry in &definition.entries {
5029 let value = self
5030 .get_field(&entry.name)
5031 .unwrap_or_else(|_| entry.kind.default_value());
5032 stream.write(&value)?;
5033 }
5034 Ok(())
5035 }
5036}
5037#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5038#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5039pub struct TeamPlayPointUnlockedEvent {
5040 pub cp: u8,
5041 pub cp_name: MaybeUtf8String,
5042 pub team: u8,
5043}
5044impl TeamPlayPointUnlockedEvent {
5045 #[allow(unused_variables)]
5046 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5047 Ok(TeamPlayPointUnlockedEvent {
5048 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
5049 cp_name: read_value::<MaybeUtf8String>(
5050 stream,
5051 definition.get_entry("cpname"),
5052 "cp_name",
5053 )?,
5054 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
5055 })
5056 }
5057 #[allow(unused_variables)]
5058 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5059 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5060 match field {
5061 "cp" => Ok(self.cp.clone().into()),
5062 "cpname" => Ok(self.cp_name.clone().into()),
5063 "team" => Ok(self.team.clone().into()),
5064 _ => Err(ParseError::MissingGameEventValue {
5065 ty: "TeamPlayPointUnlocked",
5066 field: field.into(),
5067 }),
5068 }
5069 }
5070 #[allow(unused_variables)]
5071 fn write(
5072 &self,
5073 stream: &mut BitWriteStream<LittleEndian>,
5074 definition: &GameEventDefinition,
5075 ) -> Result<()> {
5076 for entry in &definition.entries {
5077 let value = self
5078 .get_field(&entry.name)
5079 .unwrap_or_else(|_| entry.kind.default_value());
5080 stream.write(&value)?;
5081 }
5082 Ok(())
5083 }
5084}
5085#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5086#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5087pub struct TeamPlayCaptureBrokenEvent {
5088 pub cp: u8,
5089 pub cp_name: MaybeUtf8String,
5090 pub time_remaining: f32,
5091}
5092impl TeamPlayCaptureBrokenEvent {
5093 #[allow(unused_variables)]
5094 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5095 Ok(TeamPlayCaptureBrokenEvent {
5096 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
5097 cp_name: read_value::<MaybeUtf8String>(
5098 stream,
5099 definition.get_entry("cpname"),
5100 "cp_name",
5101 )?,
5102 time_remaining: read_value::<f32>(
5103 stream,
5104 definition.get_entry("time_remaining"),
5105 "time_remaining",
5106 )?,
5107 })
5108 }
5109 #[allow(unused_variables)]
5110 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5111 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5112 match field {
5113 "cp" => Ok(self.cp.clone().into()),
5114 "cpname" => Ok(self.cp_name.clone().into()),
5115 "time_remaining" => Ok(self.time_remaining.clone().into()),
5116 _ => Err(ParseError::MissingGameEventValue {
5117 ty: "TeamPlayCaptureBroken",
5118 field: field.into(),
5119 }),
5120 }
5121 }
5122 #[allow(unused_variables)]
5123 fn write(
5124 &self,
5125 stream: &mut BitWriteStream<LittleEndian>,
5126 definition: &GameEventDefinition,
5127 ) -> Result<()> {
5128 for entry in &definition.entries {
5129 let value = self
5130 .get_field(&entry.name)
5131 .unwrap_or_else(|_| entry.kind.default_value());
5132 stream.write(&value)?;
5133 }
5134 Ok(())
5135 }
5136}
5137#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5138#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5139pub struct TeamPlayCaptureBlockedEvent {
5140 pub cp: u8,
5141 pub cp_name: MaybeUtf8String,
5142 pub blocker: u8,
5143 pub victim: u8,
5144}
5145impl TeamPlayCaptureBlockedEvent {
5146 #[allow(unused_variables)]
5147 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5148 Ok(TeamPlayCaptureBlockedEvent {
5149 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
5150 cp_name: read_value::<MaybeUtf8String>(
5151 stream,
5152 definition.get_entry("cpname"),
5153 "cp_name",
5154 )?,
5155 blocker: read_value::<u8>(stream, definition.get_entry("blocker"), "blocker")?,
5156 victim: read_value::<u8>(stream, definition.get_entry("victim"), "victim")?,
5157 })
5158 }
5159 #[allow(unused_variables)]
5160 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5161 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5162 match field {
5163 "cp" => Ok(self.cp.clone().into()),
5164 "cpname" => Ok(self.cp_name.clone().into()),
5165 "blocker" => Ok(self.blocker.clone().into()),
5166 "victim" => Ok(self.victim.clone().into()),
5167 _ => Err(ParseError::MissingGameEventValue {
5168 ty: "TeamPlayCaptureBlocked",
5169 field: field.into(),
5170 }),
5171 }
5172 }
5173 #[allow(unused_variables)]
5174 fn write(
5175 &self,
5176 stream: &mut BitWriteStream<LittleEndian>,
5177 definition: &GameEventDefinition,
5178 ) -> Result<()> {
5179 for entry in &definition.entries {
5180 let value = self
5181 .get_field(&entry.name)
5182 .unwrap_or_else(|_| entry.kind.default_value());
5183 stream.write(&value)?;
5184 }
5185 Ok(())
5186 }
5187}
5188#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5189#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5190pub struct TeamPlayFlagEventEvent {
5191 pub player: u16,
5192 pub carrier: u16,
5193 pub event_type: u16,
5194 pub home: u8,
5195 pub team: u8,
5196}
5197impl TeamPlayFlagEventEvent {
5198 #[allow(unused_variables)]
5199 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5200 Ok(TeamPlayFlagEventEvent {
5201 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
5202 carrier: read_value::<u16>(stream, definition.get_entry("carrier"), "carrier")?,
5203 event_type: read_value::<u16>(stream, definition.get_entry("eventtype"), "event_type")?,
5204 home: read_value::<u8>(stream, definition.get_entry("home"), "home")?,
5205 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
5206 })
5207 }
5208 #[allow(unused_variables)]
5209 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5210 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5211 match field {
5212 "player" => Ok(self.player.clone().into()),
5213 "carrier" => Ok(self.carrier.clone().into()),
5214 "eventtype" => Ok(self.event_type.clone().into()),
5215 "home" => Ok(self.home.clone().into()),
5216 "team" => Ok(self.team.clone().into()),
5217 _ => Err(ParseError::MissingGameEventValue {
5218 ty: "TeamPlayFlagEvent",
5219 field: field.into(),
5220 }),
5221 }
5222 }
5223 #[allow(unused_variables)]
5224 fn write(
5225 &self,
5226 stream: &mut BitWriteStream<LittleEndian>,
5227 definition: &GameEventDefinition,
5228 ) -> Result<()> {
5229 for entry in &definition.entries {
5230 let value = self
5231 .get_field(&entry.name)
5232 .unwrap_or_else(|_| entry.kind.default_value());
5233 stream.write(&value)?;
5234 }
5235 Ok(())
5236 }
5237}
5238#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5239#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5240pub struct TeamPlayWinPanelEvent {
5241 pub panel_style: u8,
5242 pub winning_team: u8,
5243 pub win_reason: u8,
5244 pub cappers: MaybeUtf8String,
5245 pub flag_cap_limit: u16,
5246 pub blue_score: u16,
5247 pub red_score: u16,
5248 pub blue_score_prev: u16,
5249 pub red_score_prev: u16,
5250 pub round_complete: u16,
5251 pub rounds_remaining: u16,
5252 pub player_1: u16,
5253 pub player_1_points: u16,
5254 pub player_2: u16,
5255 pub player_2_points: u16,
5256 pub player_3: u16,
5257 pub player_3_points: u16,
5258 pub kill_stream_player_1: u16,
5259 pub kill_stream_player_1_count: u16,
5260 pub game_over: u8,
5261}
5262impl TeamPlayWinPanelEvent {
5263 #[allow(unused_variables)]
5264 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5265 Ok(TeamPlayWinPanelEvent {
5266 panel_style: read_value::<u8>(
5267 stream,
5268 definition.get_entry("panel_style"),
5269 "panel_style",
5270 )?,
5271 winning_team: read_value::<u8>(
5272 stream,
5273 definition.get_entry("winning_team"),
5274 "winning_team",
5275 )?,
5276 win_reason: read_value::<u8>(stream, definition.get_entry("winreason"), "win_reason")?,
5277 cappers: read_value::<MaybeUtf8String>(
5278 stream,
5279 definition.get_entry("cappers"),
5280 "cappers",
5281 )?,
5282 flag_cap_limit: read_value::<u16>(
5283 stream,
5284 definition.get_entry("flagcaplimit"),
5285 "flag_cap_limit",
5286 )?,
5287 blue_score: read_value::<u16>(
5288 stream,
5289 definition.get_entry("blue_score"),
5290 "blue_score",
5291 )?,
5292 red_score: read_value::<u16>(stream, definition.get_entry("red_score"), "red_score")?,
5293 blue_score_prev: read_value::<u16>(
5294 stream,
5295 definition.get_entry("blue_score_prev"),
5296 "blue_score_prev",
5297 )?,
5298 red_score_prev: read_value::<u16>(
5299 stream,
5300 definition.get_entry("red_score_prev"),
5301 "red_score_prev",
5302 )?,
5303 round_complete: read_value::<u16>(
5304 stream,
5305 definition.get_entry("round_complete"),
5306 "round_complete",
5307 )?,
5308 rounds_remaining: read_value::<u16>(
5309 stream,
5310 definition.get_entry("rounds_remaining"),
5311 "rounds_remaining",
5312 )?,
5313 player_1: read_value::<u16>(stream, definition.get_entry("player_1"), "player_1")?,
5314 player_1_points: read_value::<u16>(
5315 stream,
5316 definition.get_entry("player_1_points"),
5317 "player_1_points",
5318 )?,
5319 player_2: read_value::<u16>(stream, definition.get_entry("player_2"), "player_2")?,
5320 player_2_points: read_value::<u16>(
5321 stream,
5322 definition.get_entry("player_2_points"),
5323 "player_2_points",
5324 )?,
5325 player_3: read_value::<u16>(stream, definition.get_entry("player_3"), "player_3")?,
5326 player_3_points: read_value::<u16>(
5327 stream,
5328 definition.get_entry("player_3_points"),
5329 "player_3_points",
5330 )?,
5331 kill_stream_player_1: read_value::<u16>(
5332 stream,
5333 definition.get_entry("killstreak_player_1"),
5334 "kill_stream_player_1",
5335 )?,
5336 kill_stream_player_1_count: read_value::<u16>(
5337 stream,
5338 definition.get_entry("killstreak_player_1_count"),
5339 "kill_stream_player_1_count",
5340 )?,
5341 game_over: read_value::<u8>(stream, definition.get_entry("game_over"), "game_over")?,
5342 })
5343 }
5344 #[allow(unused_variables)]
5345 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5346 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5347 match field {
5348 "panel_style" => Ok(self.panel_style.clone().into()),
5349 "winning_team" => Ok(self.winning_team.clone().into()),
5350 "winreason" => Ok(self.win_reason.clone().into()),
5351 "cappers" => Ok(self.cappers.clone().into()),
5352 "flagcaplimit" => Ok(self.flag_cap_limit.clone().into()),
5353 "blue_score" => Ok(self.blue_score.clone().into()),
5354 "red_score" => Ok(self.red_score.clone().into()),
5355 "blue_score_prev" => Ok(self.blue_score_prev.clone().into()),
5356 "red_score_prev" => Ok(self.red_score_prev.clone().into()),
5357 "round_complete" => Ok(self.round_complete.clone().into()),
5358 "rounds_remaining" => Ok(self.rounds_remaining.clone().into()),
5359 "player_1" => Ok(self.player_1.clone().into()),
5360 "player_1_points" => Ok(self.player_1_points.clone().into()),
5361 "player_2" => Ok(self.player_2.clone().into()),
5362 "player_2_points" => Ok(self.player_2_points.clone().into()),
5363 "player_3" => Ok(self.player_3.clone().into()),
5364 "player_3_points" => Ok(self.player_3_points.clone().into()),
5365 "killstreak_player_1" => Ok(self.kill_stream_player_1.clone().into()),
5366 "killstreak_player_1_count" => Ok(self.kill_stream_player_1_count.clone().into()),
5367 "game_over" => Ok(self.game_over.clone().into()),
5368 _ => Err(ParseError::MissingGameEventValue {
5369 ty: "TeamPlayWinPanel",
5370 field: field.into(),
5371 }),
5372 }
5373 }
5374 #[allow(unused_variables)]
5375 fn write(
5376 &self,
5377 stream: &mut BitWriteStream<LittleEndian>,
5378 definition: &GameEventDefinition,
5379 ) -> Result<()> {
5380 for entry in &definition.entries {
5381 let value = self
5382 .get_field(&entry.name)
5383 .unwrap_or_else(|_| entry.kind.default_value());
5384 stream.write(&value)?;
5385 }
5386 Ok(())
5387 }
5388}
5389#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5390#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5391pub struct TeamPlayTeamBalancedPlayerEvent {
5392 pub player: u16,
5393 pub team: u8,
5394}
5395impl TeamPlayTeamBalancedPlayerEvent {
5396 #[allow(unused_variables)]
5397 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5398 Ok(TeamPlayTeamBalancedPlayerEvent {
5399 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
5400 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
5401 })
5402 }
5403 #[allow(unused_variables)]
5404 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5405 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5406 match field {
5407 "player" => Ok(self.player.clone().into()),
5408 "team" => Ok(self.team.clone().into()),
5409 _ => Err(ParseError::MissingGameEventValue {
5410 ty: "TeamPlayTeamBalancedPlayer",
5411 field: field.into(),
5412 }),
5413 }
5414 }
5415 #[allow(unused_variables)]
5416 fn write(
5417 &self,
5418 stream: &mut BitWriteStream<LittleEndian>,
5419 definition: &GameEventDefinition,
5420 ) -> Result<()> {
5421 for entry in &definition.entries {
5422 let value = self
5423 .get_field(&entry.name)
5424 .unwrap_or_else(|_| entry.kind.default_value());
5425 stream.write(&value)?;
5426 }
5427 Ok(())
5428 }
5429}
5430#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5431#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5432pub struct TeamPlaySetupFinishedEvent {}
5433impl TeamPlaySetupFinishedEvent {
5434 #[allow(unused_variables)]
5435 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5436 Ok(TeamPlaySetupFinishedEvent {})
5437 }
5438 #[allow(unused_variables)]
5439 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5440 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5441 match field {
5442 _ => Err(ParseError::MissingGameEventValue {
5443 ty: "TeamPlaySetupFinished",
5444 field: field.into(),
5445 }),
5446 }
5447 }
5448 #[allow(unused_variables)]
5449 fn write(
5450 &self,
5451 stream: &mut BitWriteStream<LittleEndian>,
5452 definition: &GameEventDefinition,
5453 ) -> Result<()> {
5454 for entry in &definition.entries {
5455 let value = self
5456 .get_field(&entry.name)
5457 .unwrap_or_else(|_| entry.kind.default_value());
5458 stream.write(&value)?;
5459 }
5460 Ok(())
5461 }
5462}
5463#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5464#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5465pub struct TeamPlayAlertEvent {
5466 pub alert_type: u16,
5467}
5468impl TeamPlayAlertEvent {
5469 #[allow(unused_variables)]
5470 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5471 Ok(TeamPlayAlertEvent {
5472 alert_type: read_value::<u16>(
5473 stream,
5474 definition.get_entry("alert_type"),
5475 "alert_type",
5476 )?,
5477 })
5478 }
5479 #[allow(unused_variables)]
5480 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5481 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5482 match field {
5483 "alert_type" => Ok(self.alert_type.clone().into()),
5484 _ => Err(ParseError::MissingGameEventValue {
5485 ty: "TeamPlayAlert",
5486 field: field.into(),
5487 }),
5488 }
5489 }
5490 #[allow(unused_variables)]
5491 fn write(
5492 &self,
5493 stream: &mut BitWriteStream<LittleEndian>,
5494 definition: &GameEventDefinition,
5495 ) -> Result<()> {
5496 for entry in &definition.entries {
5497 let value = self
5498 .get_field(&entry.name)
5499 .unwrap_or_else(|_| entry.kind.default_value());
5500 stream.write(&value)?;
5501 }
5502 Ok(())
5503 }
5504}
5505#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5506#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5507pub struct TrainingCompleteEvent {
5508 pub next_map: MaybeUtf8String,
5509 pub map: MaybeUtf8String,
5510 pub text: MaybeUtf8String,
5511}
5512impl TrainingCompleteEvent {
5513 #[allow(unused_variables)]
5514 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5515 Ok(TrainingCompleteEvent {
5516 next_map: read_value::<MaybeUtf8String>(
5517 stream,
5518 definition.get_entry("next_map"),
5519 "next_map",
5520 )?,
5521 map: read_value::<MaybeUtf8String>(stream, definition.get_entry("map"), "map")?,
5522 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
5523 })
5524 }
5525 #[allow(unused_variables)]
5526 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5527 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5528 match field {
5529 "next_map" => Ok(self.next_map.clone().into()),
5530 "map" => Ok(self.map.clone().into()),
5531 "text" => Ok(self.text.clone().into()),
5532 _ => Err(ParseError::MissingGameEventValue {
5533 ty: "TrainingComplete",
5534 field: field.into(),
5535 }),
5536 }
5537 }
5538 #[allow(unused_variables)]
5539 fn write(
5540 &self,
5541 stream: &mut BitWriteStream<LittleEndian>,
5542 definition: &GameEventDefinition,
5543 ) -> Result<()> {
5544 for entry in &definition.entries {
5545 let value = self
5546 .get_field(&entry.name)
5547 .unwrap_or_else(|_| entry.kind.default_value());
5548 stream.write(&value)?;
5549 }
5550 Ok(())
5551 }
5552}
5553#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5554#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5555pub struct ShowFreezePanelEvent {
5556 pub killer: u16,
5557}
5558impl ShowFreezePanelEvent {
5559 #[allow(unused_variables)]
5560 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5561 Ok(ShowFreezePanelEvent {
5562 killer: read_value::<u16>(stream, definition.get_entry("killer"), "killer")?,
5563 })
5564 }
5565 #[allow(unused_variables)]
5566 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5567 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5568 match field {
5569 "killer" => Ok(self.killer.clone().into()),
5570 _ => Err(ParseError::MissingGameEventValue {
5571 ty: "ShowFreezePanel",
5572 field: field.into(),
5573 }),
5574 }
5575 }
5576 #[allow(unused_variables)]
5577 fn write(
5578 &self,
5579 stream: &mut BitWriteStream<LittleEndian>,
5580 definition: &GameEventDefinition,
5581 ) -> Result<()> {
5582 for entry in &definition.entries {
5583 let value = self
5584 .get_field(&entry.name)
5585 .unwrap_or_else(|_| entry.kind.default_value());
5586 stream.write(&value)?;
5587 }
5588 Ok(())
5589 }
5590}
5591#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5592#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5593pub struct HideFreezePanelEvent {}
5594impl HideFreezePanelEvent {
5595 #[allow(unused_variables)]
5596 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5597 Ok(HideFreezePanelEvent {})
5598 }
5599 #[allow(unused_variables)]
5600 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5601 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5602 match field {
5603 _ => Err(ParseError::MissingGameEventValue {
5604 ty: "HideFreezePanel",
5605 field: field.into(),
5606 }),
5607 }
5608 }
5609 #[allow(unused_variables)]
5610 fn write(
5611 &self,
5612 stream: &mut BitWriteStream<LittleEndian>,
5613 definition: &GameEventDefinition,
5614 ) -> Result<()> {
5615 for entry in &definition.entries {
5616 let value = self
5617 .get_field(&entry.name)
5618 .unwrap_or_else(|_| entry.kind.default_value());
5619 stream.write(&value)?;
5620 }
5621 Ok(())
5622 }
5623}
5624#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5625#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5626pub struct FreezeCamStartedEvent {}
5627impl FreezeCamStartedEvent {
5628 #[allow(unused_variables)]
5629 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5630 Ok(FreezeCamStartedEvent {})
5631 }
5632 #[allow(unused_variables)]
5633 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5634 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5635 match field {
5636 _ => Err(ParseError::MissingGameEventValue {
5637 ty: "FreezeCamStarted",
5638 field: field.into(),
5639 }),
5640 }
5641 }
5642 #[allow(unused_variables)]
5643 fn write(
5644 &self,
5645 stream: &mut BitWriteStream<LittleEndian>,
5646 definition: &GameEventDefinition,
5647 ) -> Result<()> {
5648 for entry in &definition.entries {
5649 let value = self
5650 .get_field(&entry.name)
5651 .unwrap_or_else(|_| entry.kind.default_value());
5652 stream.write(&value)?;
5653 }
5654 Ok(())
5655 }
5656}
5657#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5658#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5659pub struct LocalPlayerChangeTeamEvent {}
5660impl LocalPlayerChangeTeamEvent {
5661 #[allow(unused_variables)]
5662 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5663 Ok(LocalPlayerChangeTeamEvent {})
5664 }
5665 #[allow(unused_variables)]
5666 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5667 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5668 match field {
5669 _ => Err(ParseError::MissingGameEventValue {
5670 ty: "LocalPlayerChangeTeam",
5671 field: field.into(),
5672 }),
5673 }
5674 }
5675 #[allow(unused_variables)]
5676 fn write(
5677 &self,
5678 stream: &mut BitWriteStream<LittleEndian>,
5679 definition: &GameEventDefinition,
5680 ) -> Result<()> {
5681 for entry in &definition.entries {
5682 let value = self
5683 .get_field(&entry.name)
5684 .unwrap_or_else(|_| entry.kind.default_value());
5685 stream.write(&value)?;
5686 }
5687 Ok(())
5688 }
5689}
5690#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5691#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5692pub struct LocalPlayerScoreChangedEvent {
5693 pub score: u16,
5694}
5695impl LocalPlayerScoreChangedEvent {
5696 #[allow(unused_variables)]
5697 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5698 Ok(LocalPlayerScoreChangedEvent {
5699 score: read_value::<u16>(stream, definition.get_entry("score"), "score")?,
5700 })
5701 }
5702 #[allow(unused_variables)]
5703 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5704 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5705 match field {
5706 "score" => Ok(self.score.clone().into()),
5707 _ => Err(ParseError::MissingGameEventValue {
5708 ty: "LocalPlayerScoreChanged",
5709 field: field.into(),
5710 }),
5711 }
5712 }
5713 #[allow(unused_variables)]
5714 fn write(
5715 &self,
5716 stream: &mut BitWriteStream<LittleEndian>,
5717 definition: &GameEventDefinition,
5718 ) -> Result<()> {
5719 for entry in &definition.entries {
5720 let value = self
5721 .get_field(&entry.name)
5722 .unwrap_or_else(|_| entry.kind.default_value());
5723 stream.write(&value)?;
5724 }
5725 Ok(())
5726 }
5727}
5728#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5729#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5730pub struct LocalPlayerChangeClassEvent {}
5731impl LocalPlayerChangeClassEvent {
5732 #[allow(unused_variables)]
5733 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5734 Ok(LocalPlayerChangeClassEvent {})
5735 }
5736 #[allow(unused_variables)]
5737 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5738 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5739 match field {
5740 _ => Err(ParseError::MissingGameEventValue {
5741 ty: "LocalPlayerChangeClass",
5742 field: field.into(),
5743 }),
5744 }
5745 }
5746 #[allow(unused_variables)]
5747 fn write(
5748 &self,
5749 stream: &mut BitWriteStream<LittleEndian>,
5750 definition: &GameEventDefinition,
5751 ) -> Result<()> {
5752 for entry in &definition.entries {
5753 let value = self
5754 .get_field(&entry.name)
5755 .unwrap_or_else(|_| entry.kind.default_value());
5756 stream.write(&value)?;
5757 }
5758 Ok(())
5759 }
5760}
5761#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5762#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5763pub struct LocalPlayerRespawnEvent {}
5764impl LocalPlayerRespawnEvent {
5765 #[allow(unused_variables)]
5766 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5767 Ok(LocalPlayerRespawnEvent {})
5768 }
5769 #[allow(unused_variables)]
5770 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5771 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5772 match field {
5773 _ => Err(ParseError::MissingGameEventValue {
5774 ty: "LocalPlayerRespawn",
5775 field: field.into(),
5776 }),
5777 }
5778 }
5779 #[allow(unused_variables)]
5780 fn write(
5781 &self,
5782 stream: &mut BitWriteStream<LittleEndian>,
5783 definition: &GameEventDefinition,
5784 ) -> Result<()> {
5785 for entry in &definition.entries {
5786 let value = self
5787 .get_field(&entry.name)
5788 .unwrap_or_else(|_| entry.kind.default_value());
5789 stream.write(&value)?;
5790 }
5791 Ok(())
5792 }
5793}
5794#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5795#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5796pub struct BuildingInfoChangedEvent {
5797 pub building_type: u8,
5798 pub object_mode: u8,
5799 pub remove: u8,
5800}
5801impl BuildingInfoChangedEvent {
5802 #[allow(unused_variables)]
5803 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5804 Ok(BuildingInfoChangedEvent {
5805 building_type: read_value::<u8>(
5806 stream,
5807 definition.get_entry("building_type"),
5808 "building_type",
5809 )?,
5810 object_mode: read_value::<u8>(
5811 stream,
5812 definition.get_entry("object_mode"),
5813 "object_mode",
5814 )?,
5815 remove: read_value::<u8>(stream, definition.get_entry("remove"), "remove")?,
5816 })
5817 }
5818 #[allow(unused_variables)]
5819 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5820 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5821 match field {
5822 "building_type" => Ok(self.building_type.clone().into()),
5823 "object_mode" => Ok(self.object_mode.clone().into()),
5824 "remove" => Ok(self.remove.clone().into()),
5825 _ => Err(ParseError::MissingGameEventValue {
5826 ty: "BuildingInfoChanged",
5827 field: field.into(),
5828 }),
5829 }
5830 }
5831 #[allow(unused_variables)]
5832 fn write(
5833 &self,
5834 stream: &mut BitWriteStream<LittleEndian>,
5835 definition: &GameEventDefinition,
5836 ) -> Result<()> {
5837 for entry in &definition.entries {
5838 let value = self
5839 .get_field(&entry.name)
5840 .unwrap_or_else(|_| entry.kind.default_value());
5841 stream.write(&value)?;
5842 }
5843 Ok(())
5844 }
5845}
5846#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5847#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5848pub struct LocalPlayerChangeDisguiseEvent {
5849 pub disguised: bool,
5850}
5851impl LocalPlayerChangeDisguiseEvent {
5852 #[allow(unused_variables)]
5853 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5854 Ok(LocalPlayerChangeDisguiseEvent {
5855 disguised: read_value::<bool>(stream, definition.get_entry("disguised"), "disguised")?,
5856 })
5857 }
5858 #[allow(unused_variables)]
5859 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5860 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5861 match field {
5862 "disguised" => Ok(self.disguised.clone().into()),
5863 _ => Err(ParseError::MissingGameEventValue {
5864 ty: "LocalPlayerChangeDisguise",
5865 field: field.into(),
5866 }),
5867 }
5868 }
5869 #[allow(unused_variables)]
5870 fn write(
5871 &self,
5872 stream: &mut BitWriteStream<LittleEndian>,
5873 definition: &GameEventDefinition,
5874 ) -> Result<()> {
5875 for entry in &definition.entries {
5876 let value = self
5877 .get_field(&entry.name)
5878 .unwrap_or_else(|_| entry.kind.default_value());
5879 stream.write(&value)?;
5880 }
5881 Ok(())
5882 }
5883}
5884#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5885#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5886pub struct PlayerAccountChangedEvent {
5887 pub old_value: u16,
5888 pub new_value: u16,
5889}
5890impl PlayerAccountChangedEvent {
5891 #[allow(unused_variables)]
5892 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5893 Ok(PlayerAccountChangedEvent {
5894 old_value: read_value::<u16>(stream, definition.get_entry("old_value"), "old_value")?,
5895 new_value: read_value::<u16>(stream, definition.get_entry("new_value"), "new_value")?,
5896 })
5897 }
5898 #[allow(unused_variables)]
5899 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5900 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5901 match field {
5902 "old_value" => Ok(self.old_value.clone().into()),
5903 "new_value" => Ok(self.new_value.clone().into()),
5904 _ => Err(ParseError::MissingGameEventValue {
5905 ty: "PlayerAccountChanged",
5906 field: field.into(),
5907 }),
5908 }
5909 }
5910 #[allow(unused_variables)]
5911 fn write(
5912 &self,
5913 stream: &mut BitWriteStream<LittleEndian>,
5914 definition: &GameEventDefinition,
5915 ) -> Result<()> {
5916 for entry in &definition.entries {
5917 let value = self
5918 .get_field(&entry.name)
5919 .unwrap_or_else(|_| entry.kind.default_value());
5920 stream.write(&value)?;
5921 }
5922 Ok(())
5923 }
5924}
5925#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5926#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5927pub struct SpyPdaResetEvent {}
5928impl SpyPdaResetEvent {
5929 #[allow(unused_variables)]
5930 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5931 Ok(SpyPdaResetEvent {})
5932 }
5933 #[allow(unused_variables)]
5934 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5935 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5936 match field {
5937 _ => Err(ParseError::MissingGameEventValue {
5938 ty: "SpyPdaReset",
5939 field: field.into(),
5940 }),
5941 }
5942 }
5943 #[allow(unused_variables)]
5944 fn write(
5945 &self,
5946 stream: &mut BitWriteStream<LittleEndian>,
5947 definition: &GameEventDefinition,
5948 ) -> Result<()> {
5949 for entry in &definition.entries {
5950 let value = self
5951 .get_field(&entry.name)
5952 .unwrap_or_else(|_| entry.kind.default_value());
5953 stream.write(&value)?;
5954 }
5955 Ok(())
5956 }
5957}
5958#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5959#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
5960pub struct FlagStatusUpdateEvent {
5961 pub user_id: u16,
5962 pub ent_index: u32,
5963}
5964impl FlagStatusUpdateEvent {
5965 #[allow(unused_variables)]
5966 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
5967 Ok(FlagStatusUpdateEvent {
5968 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
5969 ent_index: read_value::<u32>(stream, definition.get_entry("entindex"), "ent_index")?,
5970 })
5971 }
5972 #[allow(unused_variables)]
5973 fn get_field(&self, field: &str) -> Result<GameEventValue> {
5974 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
5975 match field {
5976 "userid" => Ok(self.user_id.clone().into()),
5977 "entindex" => Ok(self.ent_index.clone().into()),
5978 _ => Err(ParseError::MissingGameEventValue {
5979 ty: "FlagStatusUpdate",
5980 field: field.into(),
5981 }),
5982 }
5983 }
5984 #[allow(unused_variables)]
5985 fn write(
5986 &self,
5987 stream: &mut BitWriteStream<LittleEndian>,
5988 definition: &GameEventDefinition,
5989 ) -> Result<()> {
5990 for entry in &definition.entries {
5991 let value = self
5992 .get_field(&entry.name)
5993 .unwrap_or_else(|_| entry.kind.default_value());
5994 stream.write(&value)?;
5995 }
5996 Ok(())
5997 }
5998}
5999#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6000#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6001pub struct PlayerStatsUpdatedEvent {
6002 pub force_upload: bool,
6003}
6004impl PlayerStatsUpdatedEvent {
6005 #[allow(unused_variables)]
6006 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6007 Ok(PlayerStatsUpdatedEvent {
6008 force_upload: read_value::<bool>(
6009 stream,
6010 definition.get_entry("forceupload"),
6011 "force_upload",
6012 )?,
6013 })
6014 }
6015 #[allow(unused_variables)]
6016 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6017 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6018 match field {
6019 "forceupload" => Ok(self.force_upload.clone().into()),
6020 _ => Err(ParseError::MissingGameEventValue {
6021 ty: "PlayerStatsUpdated",
6022 field: field.into(),
6023 }),
6024 }
6025 }
6026 #[allow(unused_variables)]
6027 fn write(
6028 &self,
6029 stream: &mut BitWriteStream<LittleEndian>,
6030 definition: &GameEventDefinition,
6031 ) -> Result<()> {
6032 for entry in &definition.entries {
6033 let value = self
6034 .get_field(&entry.name)
6035 .unwrap_or_else(|_| entry.kind.default_value());
6036 stream.write(&value)?;
6037 }
6038 Ok(())
6039 }
6040}
6041#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6042#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6043pub struct PlayingCommentaryEvent {}
6044impl PlayingCommentaryEvent {
6045 #[allow(unused_variables)]
6046 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6047 Ok(PlayingCommentaryEvent {})
6048 }
6049 #[allow(unused_variables)]
6050 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6051 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6052 match field {
6053 _ => Err(ParseError::MissingGameEventValue {
6054 ty: "PlayingCommentary",
6055 field: field.into(),
6056 }),
6057 }
6058 }
6059 #[allow(unused_variables)]
6060 fn write(
6061 &self,
6062 stream: &mut BitWriteStream<LittleEndian>,
6063 definition: &GameEventDefinition,
6064 ) -> Result<()> {
6065 for entry in &definition.entries {
6066 let value = self
6067 .get_field(&entry.name)
6068 .unwrap_or_else(|_| entry.kind.default_value());
6069 stream.write(&value)?;
6070 }
6071 Ok(())
6072 }
6073}
6074#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6075#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6076pub struct PlayerChargeDeployedEvent {
6077 pub user_id: u16,
6078 pub target_id: u16,
6079}
6080impl PlayerChargeDeployedEvent {
6081 #[allow(unused_variables)]
6082 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6083 Ok(PlayerChargeDeployedEvent {
6084 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6085 target_id: read_value::<u16>(stream, definition.get_entry("targetid"), "target_id")?,
6086 })
6087 }
6088 #[allow(unused_variables)]
6089 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6090 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6091 match field {
6092 "userid" => Ok(self.user_id.clone().into()),
6093 "targetid" => Ok(self.target_id.clone().into()),
6094 _ => Err(ParseError::MissingGameEventValue {
6095 ty: "PlayerChargeDeployed",
6096 field: field.into(),
6097 }),
6098 }
6099 }
6100 #[allow(unused_variables)]
6101 fn write(
6102 &self,
6103 stream: &mut BitWriteStream<LittleEndian>,
6104 definition: &GameEventDefinition,
6105 ) -> Result<()> {
6106 for entry in &definition.entries {
6107 let value = self
6108 .get_field(&entry.name)
6109 .unwrap_or_else(|_| entry.kind.default_value());
6110 stream.write(&value)?;
6111 }
6112 Ok(())
6113 }
6114}
6115#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6116#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6117pub struct PlayerBuiltObjectEvent {
6118 pub user_id: u16,
6119 pub object: u16,
6120 pub index: u16,
6121}
6122impl PlayerBuiltObjectEvent {
6123 #[allow(unused_variables)]
6124 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6125 Ok(PlayerBuiltObjectEvent {
6126 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6127 object: read_value::<u16>(stream, definition.get_entry("object"), "object")?,
6128 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6129 })
6130 }
6131 #[allow(unused_variables)]
6132 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6133 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6134 match field {
6135 "userid" => Ok(self.user_id.clone().into()),
6136 "object" => Ok(self.object.clone().into()),
6137 "index" => Ok(self.index.clone().into()),
6138 _ => Err(ParseError::MissingGameEventValue {
6139 ty: "PlayerBuiltObject",
6140 field: field.into(),
6141 }),
6142 }
6143 }
6144 #[allow(unused_variables)]
6145 fn write(
6146 &self,
6147 stream: &mut BitWriteStream<LittleEndian>,
6148 definition: &GameEventDefinition,
6149 ) -> Result<()> {
6150 for entry in &definition.entries {
6151 let value = self
6152 .get_field(&entry.name)
6153 .unwrap_or_else(|_| entry.kind.default_value());
6154 stream.write(&value)?;
6155 }
6156 Ok(())
6157 }
6158}
6159#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6160#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6161pub struct PlayerUpgradedObjectEvent {
6162 pub user_id: u16,
6163 pub object: u16,
6164 pub index: u16,
6165 pub is_builder: bool,
6166}
6167impl PlayerUpgradedObjectEvent {
6168 #[allow(unused_variables)]
6169 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6170 Ok(PlayerUpgradedObjectEvent {
6171 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6172 object: read_value::<u16>(stream, definition.get_entry("object"), "object")?,
6173 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6174 is_builder: read_value::<bool>(
6175 stream,
6176 definition.get_entry("isbuilder"),
6177 "is_builder",
6178 )?,
6179 })
6180 }
6181 #[allow(unused_variables)]
6182 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6183 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6184 match field {
6185 "userid" => Ok(self.user_id.clone().into()),
6186 "object" => Ok(self.object.clone().into()),
6187 "index" => Ok(self.index.clone().into()),
6188 "isbuilder" => Ok(self.is_builder.clone().into()),
6189 _ => Err(ParseError::MissingGameEventValue {
6190 ty: "PlayerUpgradedObject",
6191 field: field.into(),
6192 }),
6193 }
6194 }
6195 #[allow(unused_variables)]
6196 fn write(
6197 &self,
6198 stream: &mut BitWriteStream<LittleEndian>,
6199 definition: &GameEventDefinition,
6200 ) -> Result<()> {
6201 for entry in &definition.entries {
6202 let value = self
6203 .get_field(&entry.name)
6204 .unwrap_or_else(|_| entry.kind.default_value());
6205 stream.write(&value)?;
6206 }
6207 Ok(())
6208 }
6209}
6210#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6211#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6212pub struct PlayerCarryObjectEvent {
6213 pub user_id: u16,
6214 pub object: u16,
6215 pub index: u16,
6216}
6217impl PlayerCarryObjectEvent {
6218 #[allow(unused_variables)]
6219 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6220 Ok(PlayerCarryObjectEvent {
6221 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6222 object: read_value::<u16>(stream, definition.get_entry("object"), "object")?,
6223 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6224 })
6225 }
6226 #[allow(unused_variables)]
6227 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6228 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6229 match field {
6230 "userid" => Ok(self.user_id.clone().into()),
6231 "object" => Ok(self.object.clone().into()),
6232 "index" => Ok(self.index.clone().into()),
6233 _ => Err(ParseError::MissingGameEventValue {
6234 ty: "PlayerCarryObject",
6235 field: field.into(),
6236 }),
6237 }
6238 }
6239 #[allow(unused_variables)]
6240 fn write(
6241 &self,
6242 stream: &mut BitWriteStream<LittleEndian>,
6243 definition: &GameEventDefinition,
6244 ) -> Result<()> {
6245 for entry in &definition.entries {
6246 let value = self
6247 .get_field(&entry.name)
6248 .unwrap_or_else(|_| entry.kind.default_value());
6249 stream.write(&value)?;
6250 }
6251 Ok(())
6252 }
6253}
6254#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6255#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6256pub struct PlayerDropObjectEvent {
6257 pub user_id: u16,
6258 pub object: u16,
6259 pub index: u16,
6260}
6261impl PlayerDropObjectEvent {
6262 #[allow(unused_variables)]
6263 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6264 Ok(PlayerDropObjectEvent {
6265 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6266 object: read_value::<u16>(stream, definition.get_entry("object"), "object")?,
6267 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6268 })
6269 }
6270 #[allow(unused_variables)]
6271 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6272 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6273 match field {
6274 "userid" => Ok(self.user_id.clone().into()),
6275 "object" => Ok(self.object.clone().into()),
6276 "index" => Ok(self.index.clone().into()),
6277 _ => Err(ParseError::MissingGameEventValue {
6278 ty: "PlayerDropObject",
6279 field: field.into(),
6280 }),
6281 }
6282 }
6283 #[allow(unused_variables)]
6284 fn write(
6285 &self,
6286 stream: &mut BitWriteStream<LittleEndian>,
6287 definition: &GameEventDefinition,
6288 ) -> Result<()> {
6289 for entry in &definition.entries {
6290 let value = self
6291 .get_field(&entry.name)
6292 .unwrap_or_else(|_| entry.kind.default_value());
6293 stream.write(&value)?;
6294 }
6295 Ok(())
6296 }
6297}
6298#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6299#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6300pub struct ObjectRemovedEvent {
6301 pub user_id: u16,
6302 pub object_type: u16,
6303 pub index: u16,
6304}
6305impl ObjectRemovedEvent {
6306 #[allow(unused_variables)]
6307 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6308 Ok(ObjectRemovedEvent {
6309 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6310 object_type: read_value::<u16>(
6311 stream,
6312 definition.get_entry("objecttype"),
6313 "object_type",
6314 )?,
6315 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6316 })
6317 }
6318 #[allow(unused_variables)]
6319 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6320 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6321 match field {
6322 "userid" => Ok(self.user_id.clone().into()),
6323 "objecttype" => Ok(self.object_type.clone().into()),
6324 "index" => Ok(self.index.clone().into()),
6325 _ => Err(ParseError::MissingGameEventValue {
6326 ty: "ObjectRemoved",
6327 field: field.into(),
6328 }),
6329 }
6330 }
6331 #[allow(unused_variables)]
6332 fn write(
6333 &self,
6334 stream: &mut BitWriteStream<LittleEndian>,
6335 definition: &GameEventDefinition,
6336 ) -> Result<()> {
6337 for entry in &definition.entries {
6338 let value = self
6339 .get_field(&entry.name)
6340 .unwrap_or_else(|_| entry.kind.default_value());
6341 stream.write(&value)?;
6342 }
6343 Ok(())
6344 }
6345}
6346#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6347#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6348pub struct ObjectDestroyedEvent {
6349 pub user_id: u16,
6350 pub attacker: u16,
6351 pub assister: u16,
6352 pub weapon: MaybeUtf8String,
6353 pub weapon_id: u16,
6354 pub object_type: u16,
6355 pub index: u16,
6356 pub was_building: bool,
6357}
6358impl ObjectDestroyedEvent {
6359 #[allow(unused_variables)]
6360 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6361 Ok(ObjectDestroyedEvent {
6362 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6363 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
6364 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
6365 weapon: read_value::<MaybeUtf8String>(
6366 stream,
6367 definition.get_entry("weapon"),
6368 "weapon",
6369 )?,
6370 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
6371 object_type: read_value::<u16>(
6372 stream,
6373 definition.get_entry("objecttype"),
6374 "object_type",
6375 )?,
6376 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6377 was_building: read_value::<bool>(
6378 stream,
6379 definition.get_entry("was_building"),
6380 "was_building",
6381 )?,
6382 })
6383 }
6384 #[allow(unused_variables)]
6385 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6386 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6387 match field {
6388 "userid" => Ok(self.user_id.clone().into()),
6389 "attacker" => Ok(self.attacker.clone().into()),
6390 "assister" => Ok(self.assister.clone().into()),
6391 "weapon" => Ok(self.weapon.clone().into()),
6392 "weaponid" => Ok(self.weapon_id.clone().into()),
6393 "objecttype" => Ok(self.object_type.clone().into()),
6394 "index" => Ok(self.index.clone().into()),
6395 "was_building" => Ok(self.was_building.clone().into()),
6396 _ => Err(ParseError::MissingGameEventValue {
6397 ty: "ObjectDestroyed",
6398 field: field.into(),
6399 }),
6400 }
6401 }
6402 #[allow(unused_variables)]
6403 fn write(
6404 &self,
6405 stream: &mut BitWriteStream<LittleEndian>,
6406 definition: &GameEventDefinition,
6407 ) -> Result<()> {
6408 for entry in &definition.entries {
6409 let value = self
6410 .get_field(&entry.name)
6411 .unwrap_or_else(|_| entry.kind.default_value());
6412 stream.write(&value)?;
6413 }
6414 Ok(())
6415 }
6416}
6417#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6418#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6419pub struct ObjectDetonatedEvent {
6420 pub user_id: u16,
6421 pub object_type: u16,
6422 pub index: u16,
6423}
6424impl ObjectDetonatedEvent {
6425 #[allow(unused_variables)]
6426 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6427 Ok(ObjectDetonatedEvent {
6428 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6429 object_type: read_value::<u16>(
6430 stream,
6431 definition.get_entry("objecttype"),
6432 "object_type",
6433 )?,
6434 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
6435 })
6436 }
6437 #[allow(unused_variables)]
6438 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6439 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6440 match field {
6441 "userid" => Ok(self.user_id.clone().into()),
6442 "objecttype" => Ok(self.object_type.clone().into()),
6443 "index" => Ok(self.index.clone().into()),
6444 _ => Err(ParseError::MissingGameEventValue {
6445 ty: "ObjectDetonated",
6446 field: field.into(),
6447 }),
6448 }
6449 }
6450 #[allow(unused_variables)]
6451 fn write(
6452 &self,
6453 stream: &mut BitWriteStream<LittleEndian>,
6454 definition: &GameEventDefinition,
6455 ) -> Result<()> {
6456 for entry in &definition.entries {
6457 let value = self
6458 .get_field(&entry.name)
6459 .unwrap_or_else(|_| entry.kind.default_value());
6460 stream.write(&value)?;
6461 }
6462 Ok(())
6463 }
6464}
6465#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6466#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6467pub struct AchievementEarnedEvent {
6468 pub player: u8,
6469 pub achievement: u16,
6470}
6471impl AchievementEarnedEvent {
6472 #[allow(unused_variables)]
6473 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6474 Ok(AchievementEarnedEvent {
6475 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
6476 achievement: read_value::<u16>(
6477 stream,
6478 definition.get_entry("achievement"),
6479 "achievement",
6480 )?,
6481 })
6482 }
6483 #[allow(unused_variables)]
6484 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6485 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6486 match field {
6487 "player" => Ok(self.player.clone().into()),
6488 "achievement" => Ok(self.achievement.clone().into()),
6489 _ => Err(ParseError::MissingGameEventValue {
6490 ty: "AchievementEarned",
6491 field: field.into(),
6492 }),
6493 }
6494 }
6495 #[allow(unused_variables)]
6496 fn write(
6497 &self,
6498 stream: &mut BitWriteStream<LittleEndian>,
6499 definition: &GameEventDefinition,
6500 ) -> Result<()> {
6501 for entry in &definition.entries {
6502 let value = self
6503 .get_field(&entry.name)
6504 .unwrap_or_else(|_| entry.kind.default_value());
6505 stream.write(&value)?;
6506 }
6507 Ok(())
6508 }
6509}
6510#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6511#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6512pub struct SpecTargetUpdatedEvent {}
6513impl SpecTargetUpdatedEvent {
6514 #[allow(unused_variables)]
6515 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6516 Ok(SpecTargetUpdatedEvent {})
6517 }
6518 #[allow(unused_variables)]
6519 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6520 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6521 match field {
6522 _ => Err(ParseError::MissingGameEventValue {
6523 ty: "SpecTargetUpdated",
6524 field: field.into(),
6525 }),
6526 }
6527 }
6528 #[allow(unused_variables)]
6529 fn write(
6530 &self,
6531 stream: &mut BitWriteStream<LittleEndian>,
6532 definition: &GameEventDefinition,
6533 ) -> Result<()> {
6534 for entry in &definition.entries {
6535 let value = self
6536 .get_field(&entry.name)
6537 .unwrap_or_else(|_| entry.kind.default_value());
6538 stream.write(&value)?;
6539 }
6540 Ok(())
6541 }
6542}
6543#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6544#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6545pub struct TournamentStateUpdateEvent {
6546 pub user_id: u16,
6547 pub name_change: bool,
6548 pub ready_state: u16,
6549 pub new_name: MaybeUtf8String,
6550}
6551impl TournamentStateUpdateEvent {
6552 #[allow(unused_variables)]
6553 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6554 Ok(TournamentStateUpdateEvent {
6555 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6556 name_change: read_value::<bool>(
6557 stream,
6558 definition.get_entry("namechange"),
6559 "name_change",
6560 )?,
6561 ready_state: read_value::<u16>(
6562 stream,
6563 definition.get_entry("readystate"),
6564 "ready_state",
6565 )?,
6566 new_name: read_value::<MaybeUtf8String>(
6567 stream,
6568 definition.get_entry("newname"),
6569 "new_name",
6570 )?,
6571 })
6572 }
6573 #[allow(unused_variables)]
6574 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6575 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6576 match field {
6577 "userid" => Ok(self.user_id.clone().into()),
6578 "namechange" => Ok(self.name_change.clone().into()),
6579 "readystate" => Ok(self.ready_state.clone().into()),
6580 "newname" => Ok(self.new_name.clone().into()),
6581 _ => Err(ParseError::MissingGameEventValue {
6582 ty: "TournamentStateUpdate",
6583 field: field.into(),
6584 }),
6585 }
6586 }
6587 #[allow(unused_variables)]
6588 fn write(
6589 &self,
6590 stream: &mut BitWriteStream<LittleEndian>,
6591 definition: &GameEventDefinition,
6592 ) -> Result<()> {
6593 for entry in &definition.entries {
6594 let value = self
6595 .get_field(&entry.name)
6596 .unwrap_or_else(|_| entry.kind.default_value());
6597 stream.write(&value)?;
6598 }
6599 Ok(())
6600 }
6601}
6602#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6603#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6604pub struct TournamentEnableCountdownEvent {}
6605impl TournamentEnableCountdownEvent {
6606 #[allow(unused_variables)]
6607 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6608 Ok(TournamentEnableCountdownEvent {})
6609 }
6610 #[allow(unused_variables)]
6611 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6612 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6613 match field {
6614 _ => Err(ParseError::MissingGameEventValue {
6615 ty: "TournamentEnableCountdown",
6616 field: field.into(),
6617 }),
6618 }
6619 }
6620 #[allow(unused_variables)]
6621 fn write(
6622 &self,
6623 stream: &mut BitWriteStream<LittleEndian>,
6624 definition: &GameEventDefinition,
6625 ) -> Result<()> {
6626 for entry in &definition.entries {
6627 let value = self
6628 .get_field(&entry.name)
6629 .unwrap_or_else(|_| entry.kind.default_value());
6630 stream.write(&value)?;
6631 }
6632 Ok(())
6633 }
6634}
6635#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6636#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6637pub struct PlayerCalledForMedicEvent {
6638 pub user_id: u16,
6639}
6640impl PlayerCalledForMedicEvent {
6641 #[allow(unused_variables)]
6642 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6643 Ok(PlayerCalledForMedicEvent {
6644 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6645 })
6646 }
6647 #[allow(unused_variables)]
6648 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6649 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6650 match field {
6651 "userid" => Ok(self.user_id.clone().into()),
6652 _ => Err(ParseError::MissingGameEventValue {
6653 ty: "PlayerCalledForMedic",
6654 field: field.into(),
6655 }),
6656 }
6657 }
6658 #[allow(unused_variables)]
6659 fn write(
6660 &self,
6661 stream: &mut BitWriteStream<LittleEndian>,
6662 definition: &GameEventDefinition,
6663 ) -> Result<()> {
6664 for entry in &definition.entries {
6665 let value = self
6666 .get_field(&entry.name)
6667 .unwrap_or_else(|_| entry.kind.default_value());
6668 stream.write(&value)?;
6669 }
6670 Ok(())
6671 }
6672}
6673#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6674#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6675pub struct PlayerAskedForBallEvent {
6676 pub user_id: u16,
6677}
6678impl PlayerAskedForBallEvent {
6679 #[allow(unused_variables)]
6680 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6681 Ok(PlayerAskedForBallEvent {
6682 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6683 })
6684 }
6685 #[allow(unused_variables)]
6686 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6687 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6688 match field {
6689 "userid" => Ok(self.user_id.clone().into()),
6690 _ => Err(ParseError::MissingGameEventValue {
6691 ty: "PlayerAskedForBall",
6692 field: field.into(),
6693 }),
6694 }
6695 }
6696 #[allow(unused_variables)]
6697 fn write(
6698 &self,
6699 stream: &mut BitWriteStream<LittleEndian>,
6700 definition: &GameEventDefinition,
6701 ) -> Result<()> {
6702 for entry in &definition.entries {
6703 let value = self
6704 .get_field(&entry.name)
6705 .unwrap_or_else(|_| entry.kind.default_value());
6706 stream.write(&value)?;
6707 }
6708 Ok(())
6709 }
6710}
6711#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6712#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6713pub struct LocalPlayerBecameObserverEvent {}
6714impl LocalPlayerBecameObserverEvent {
6715 #[allow(unused_variables)]
6716 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6717 Ok(LocalPlayerBecameObserverEvent {})
6718 }
6719 #[allow(unused_variables)]
6720 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6721 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6722 match field {
6723 _ => Err(ParseError::MissingGameEventValue {
6724 ty: "LocalPlayerBecameObserver",
6725 field: field.into(),
6726 }),
6727 }
6728 }
6729 #[allow(unused_variables)]
6730 fn write(
6731 &self,
6732 stream: &mut BitWriteStream<LittleEndian>,
6733 definition: &GameEventDefinition,
6734 ) -> Result<()> {
6735 for entry in &definition.entries {
6736 let value = self
6737 .get_field(&entry.name)
6738 .unwrap_or_else(|_| entry.kind.default_value());
6739 stream.write(&value)?;
6740 }
6741 Ok(())
6742 }
6743}
6744#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6745#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6746pub struct PlayerIgnitedInvEvent {
6747 pub pyro_ent_index: u8,
6748 pub victim_ent_index: u8,
6749 pub medic_ent_index: u8,
6750}
6751impl PlayerIgnitedInvEvent {
6752 #[allow(unused_variables)]
6753 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6754 Ok(PlayerIgnitedInvEvent {
6755 pyro_ent_index: read_value::<u8>(
6756 stream,
6757 definition.get_entry("pyro_entindex"),
6758 "pyro_ent_index",
6759 )?,
6760 victim_ent_index: read_value::<u8>(
6761 stream,
6762 definition.get_entry("victim_entindex"),
6763 "victim_ent_index",
6764 )?,
6765 medic_ent_index: read_value::<u8>(
6766 stream,
6767 definition.get_entry("medic_entindex"),
6768 "medic_ent_index",
6769 )?,
6770 })
6771 }
6772 #[allow(unused_variables)]
6773 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6774 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6775 match field {
6776 "pyro_entindex" => Ok(self.pyro_ent_index.clone().into()),
6777 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
6778 "medic_entindex" => Ok(self.medic_ent_index.clone().into()),
6779 _ => Err(ParseError::MissingGameEventValue {
6780 ty: "PlayerIgnitedInv",
6781 field: field.into(),
6782 }),
6783 }
6784 }
6785 #[allow(unused_variables)]
6786 fn write(
6787 &self,
6788 stream: &mut BitWriteStream<LittleEndian>,
6789 definition: &GameEventDefinition,
6790 ) -> Result<()> {
6791 for entry in &definition.entries {
6792 let value = self
6793 .get_field(&entry.name)
6794 .unwrap_or_else(|_| entry.kind.default_value());
6795 stream.write(&value)?;
6796 }
6797 Ok(())
6798 }
6799}
6800#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6801#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6802pub struct PlayerIgnitedEvent {
6803 pub pyro_ent_index: u8,
6804 pub victim_ent_index: u8,
6805 pub weapon_id: u8,
6806}
6807impl PlayerIgnitedEvent {
6808 #[allow(unused_variables)]
6809 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6810 Ok(PlayerIgnitedEvent {
6811 pyro_ent_index: read_value::<u8>(
6812 stream,
6813 definition.get_entry("pyro_entindex"),
6814 "pyro_ent_index",
6815 )?,
6816 victim_ent_index: read_value::<u8>(
6817 stream,
6818 definition.get_entry("victim_entindex"),
6819 "victim_ent_index",
6820 )?,
6821 weapon_id: read_value::<u8>(stream, definition.get_entry("weaponid"), "weapon_id")?,
6822 })
6823 }
6824 #[allow(unused_variables)]
6825 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6826 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6827 match field {
6828 "pyro_entindex" => Ok(self.pyro_ent_index.clone().into()),
6829 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
6830 "weaponid" => Ok(self.weapon_id.clone().into()),
6831 _ => Err(ParseError::MissingGameEventValue {
6832 ty: "PlayerIgnited",
6833 field: field.into(),
6834 }),
6835 }
6836 }
6837 #[allow(unused_variables)]
6838 fn write(
6839 &self,
6840 stream: &mut BitWriteStream<LittleEndian>,
6841 definition: &GameEventDefinition,
6842 ) -> Result<()> {
6843 for entry in &definition.entries {
6844 let value = self
6845 .get_field(&entry.name)
6846 .unwrap_or_else(|_| entry.kind.default_value());
6847 stream.write(&value)?;
6848 }
6849 Ok(())
6850 }
6851}
6852#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6853#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6854pub struct PlayerExtinguishedEvent {
6855 pub victim: u8,
6856 pub healer: u8,
6857 pub item_definition_index: u16,
6858}
6859impl PlayerExtinguishedEvent {
6860 #[allow(unused_variables)]
6861 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6862 Ok(PlayerExtinguishedEvent {
6863 victim: read_value::<u8>(stream, definition.get_entry("victim"), "victim")?,
6864 healer: read_value::<u8>(stream, definition.get_entry("healer"), "healer")?,
6865 item_definition_index: read_value::<u16>(
6866 stream,
6867 definition.get_entry("itemdefindex"),
6868 "item_definition_index",
6869 )?,
6870 })
6871 }
6872 #[allow(unused_variables)]
6873 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6874 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6875 match field {
6876 "victim" => Ok(self.victim.clone().into()),
6877 "healer" => Ok(self.healer.clone().into()),
6878 "itemdefindex" => Ok(self.item_definition_index.clone().into()),
6879 _ => Err(ParseError::MissingGameEventValue {
6880 ty: "PlayerExtinguished",
6881 field: field.into(),
6882 }),
6883 }
6884 }
6885 #[allow(unused_variables)]
6886 fn write(
6887 &self,
6888 stream: &mut BitWriteStream<LittleEndian>,
6889 definition: &GameEventDefinition,
6890 ) -> Result<()> {
6891 for entry in &definition.entries {
6892 let value = self
6893 .get_field(&entry.name)
6894 .unwrap_or_else(|_| entry.kind.default_value());
6895 stream.write(&value)?;
6896 }
6897 Ok(())
6898 }
6899}
6900#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6901#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6902pub struct PlayerTeleportedEvent {
6903 pub user_id: u16,
6904 pub builder_id: u16,
6905 pub dist: f32,
6906}
6907impl PlayerTeleportedEvent {
6908 #[allow(unused_variables)]
6909 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6910 Ok(PlayerTeleportedEvent {
6911 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6912 builder_id: read_value::<u16>(stream, definition.get_entry("builderid"), "builder_id")?,
6913 dist: read_value::<f32>(stream, definition.get_entry("dist"), "dist")?,
6914 })
6915 }
6916 #[allow(unused_variables)]
6917 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6918 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6919 match field {
6920 "userid" => Ok(self.user_id.clone().into()),
6921 "builderid" => Ok(self.builder_id.clone().into()),
6922 "dist" => Ok(self.dist.clone().into()),
6923 _ => Err(ParseError::MissingGameEventValue {
6924 ty: "PlayerTeleported",
6925 field: field.into(),
6926 }),
6927 }
6928 }
6929 #[allow(unused_variables)]
6930 fn write(
6931 &self,
6932 stream: &mut BitWriteStream<LittleEndian>,
6933 definition: &GameEventDefinition,
6934 ) -> Result<()> {
6935 for entry in &definition.entries {
6936 let value = self
6937 .get_field(&entry.name)
6938 .unwrap_or_else(|_| entry.kind.default_value());
6939 stream.write(&value)?;
6940 }
6941 Ok(())
6942 }
6943}
6944#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6945#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6946pub struct PlayerHealedMedicCallEvent {
6947 pub user_id: u16,
6948}
6949impl PlayerHealedMedicCallEvent {
6950 #[allow(unused_variables)]
6951 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6952 Ok(PlayerHealedMedicCallEvent {
6953 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
6954 })
6955 }
6956 #[allow(unused_variables)]
6957 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6958 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6959 match field {
6960 "userid" => Ok(self.user_id.clone().into()),
6961 _ => Err(ParseError::MissingGameEventValue {
6962 ty: "PlayerHealedMedicCall",
6963 field: field.into(),
6964 }),
6965 }
6966 }
6967 #[allow(unused_variables)]
6968 fn write(
6969 &self,
6970 stream: &mut BitWriteStream<LittleEndian>,
6971 definition: &GameEventDefinition,
6972 ) -> Result<()> {
6973 for entry in &definition.entries {
6974 let value = self
6975 .get_field(&entry.name)
6976 .unwrap_or_else(|_| entry.kind.default_value());
6977 stream.write(&value)?;
6978 }
6979 Ok(())
6980 }
6981}
6982#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6983#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
6984pub struct LocalPlayerChargeReadyEvent {}
6985impl LocalPlayerChargeReadyEvent {
6986 #[allow(unused_variables)]
6987 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
6988 Ok(LocalPlayerChargeReadyEvent {})
6989 }
6990 #[allow(unused_variables)]
6991 fn get_field(&self, field: &str) -> Result<GameEventValue> {
6992 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
6993 match field {
6994 _ => Err(ParseError::MissingGameEventValue {
6995 ty: "LocalPlayerChargeReady",
6996 field: field.into(),
6997 }),
6998 }
6999 }
7000 #[allow(unused_variables)]
7001 fn write(
7002 &self,
7003 stream: &mut BitWriteStream<LittleEndian>,
7004 definition: &GameEventDefinition,
7005 ) -> Result<()> {
7006 for entry in &definition.entries {
7007 let value = self
7008 .get_field(&entry.name)
7009 .unwrap_or_else(|_| entry.kind.default_value());
7010 stream.write(&value)?;
7011 }
7012 Ok(())
7013 }
7014}
7015#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7016#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7017pub struct LocalPlayerWindDownEvent {}
7018impl LocalPlayerWindDownEvent {
7019 #[allow(unused_variables)]
7020 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7021 Ok(LocalPlayerWindDownEvent {})
7022 }
7023 #[allow(unused_variables)]
7024 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7025 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7026 match field {
7027 _ => Err(ParseError::MissingGameEventValue {
7028 ty: "LocalPlayerWindDown",
7029 field: field.into(),
7030 }),
7031 }
7032 }
7033 #[allow(unused_variables)]
7034 fn write(
7035 &self,
7036 stream: &mut BitWriteStream<LittleEndian>,
7037 definition: &GameEventDefinition,
7038 ) -> Result<()> {
7039 for entry in &definition.entries {
7040 let value = self
7041 .get_field(&entry.name)
7042 .unwrap_or_else(|_| entry.kind.default_value());
7043 stream.write(&value)?;
7044 }
7045 Ok(())
7046 }
7047}
7048#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7049#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7050pub struct PlayerInvulnedEvent {
7051 pub user_id: u16,
7052 pub medic_user_id: u16,
7053}
7054impl PlayerInvulnedEvent {
7055 #[allow(unused_variables)]
7056 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7057 Ok(PlayerInvulnedEvent {
7058 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
7059 medic_user_id: read_value::<u16>(
7060 stream,
7061 definition.get_entry("medic_userid"),
7062 "medic_user_id",
7063 )?,
7064 })
7065 }
7066 #[allow(unused_variables)]
7067 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7068 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7069 match field {
7070 "userid" => Ok(self.user_id.clone().into()),
7071 "medic_userid" => Ok(self.medic_user_id.clone().into()),
7072 _ => Err(ParseError::MissingGameEventValue {
7073 ty: "PlayerInvulned",
7074 field: field.into(),
7075 }),
7076 }
7077 }
7078 #[allow(unused_variables)]
7079 fn write(
7080 &self,
7081 stream: &mut BitWriteStream<LittleEndian>,
7082 definition: &GameEventDefinition,
7083 ) -> Result<()> {
7084 for entry in &definition.entries {
7085 let value = self
7086 .get_field(&entry.name)
7087 .unwrap_or_else(|_| entry.kind.default_value());
7088 stream.write(&value)?;
7089 }
7090 Ok(())
7091 }
7092}
7093#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7094#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7095pub struct EscortSpeedEvent {
7096 pub team: u8,
7097 pub speed: u8,
7098 pub players: u8,
7099}
7100impl EscortSpeedEvent {
7101 #[allow(unused_variables)]
7102 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7103 Ok(EscortSpeedEvent {
7104 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
7105 speed: read_value::<u8>(stream, definition.get_entry("speed"), "speed")?,
7106 players: read_value::<u8>(stream, definition.get_entry("players"), "players")?,
7107 })
7108 }
7109 #[allow(unused_variables)]
7110 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7111 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7112 match field {
7113 "team" => Ok(self.team.clone().into()),
7114 "speed" => Ok(self.speed.clone().into()),
7115 "players" => Ok(self.players.clone().into()),
7116 _ => Err(ParseError::MissingGameEventValue {
7117 ty: "EscortSpeed",
7118 field: field.into(),
7119 }),
7120 }
7121 }
7122 #[allow(unused_variables)]
7123 fn write(
7124 &self,
7125 stream: &mut BitWriteStream<LittleEndian>,
7126 definition: &GameEventDefinition,
7127 ) -> Result<()> {
7128 for entry in &definition.entries {
7129 let value = self
7130 .get_field(&entry.name)
7131 .unwrap_or_else(|_| entry.kind.default_value());
7132 stream.write(&value)?;
7133 }
7134 Ok(())
7135 }
7136}
7137#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7138#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7139pub struct EscortProgressEvent {
7140 pub team: u8,
7141 pub progress: f32,
7142 pub reset: bool,
7143}
7144impl EscortProgressEvent {
7145 #[allow(unused_variables)]
7146 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7147 Ok(EscortProgressEvent {
7148 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
7149 progress: read_value::<f32>(stream, definition.get_entry("progress"), "progress")?,
7150 reset: read_value::<bool>(stream, definition.get_entry("reset"), "reset")?,
7151 })
7152 }
7153 #[allow(unused_variables)]
7154 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7155 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7156 match field {
7157 "team" => Ok(self.team.clone().into()),
7158 "progress" => Ok(self.progress.clone().into()),
7159 "reset" => Ok(self.reset.clone().into()),
7160 _ => Err(ParseError::MissingGameEventValue {
7161 ty: "EscortProgress",
7162 field: field.into(),
7163 }),
7164 }
7165 }
7166 #[allow(unused_variables)]
7167 fn write(
7168 &self,
7169 stream: &mut BitWriteStream<LittleEndian>,
7170 definition: &GameEventDefinition,
7171 ) -> Result<()> {
7172 for entry in &definition.entries {
7173 let value = self
7174 .get_field(&entry.name)
7175 .unwrap_or_else(|_| entry.kind.default_value());
7176 stream.write(&value)?;
7177 }
7178 Ok(())
7179 }
7180}
7181#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7182#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7183pub struct EscortRecedeEvent {
7184 pub team: u8,
7185 pub recede_time: f32,
7186}
7187impl EscortRecedeEvent {
7188 #[allow(unused_variables)]
7189 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7190 Ok(EscortRecedeEvent {
7191 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
7192 recede_time: read_value::<f32>(
7193 stream,
7194 definition.get_entry("recedetime"),
7195 "recede_time",
7196 )?,
7197 })
7198 }
7199 #[allow(unused_variables)]
7200 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7201 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7202 match field {
7203 "team" => Ok(self.team.clone().into()),
7204 "recedetime" => Ok(self.recede_time.clone().into()),
7205 _ => Err(ParseError::MissingGameEventValue {
7206 ty: "EscortRecede",
7207 field: field.into(),
7208 }),
7209 }
7210 }
7211 #[allow(unused_variables)]
7212 fn write(
7213 &self,
7214 stream: &mut BitWriteStream<LittleEndian>,
7215 definition: &GameEventDefinition,
7216 ) -> Result<()> {
7217 for entry in &definition.entries {
7218 let value = self
7219 .get_field(&entry.name)
7220 .unwrap_or_else(|_| entry.kind.default_value());
7221 stream.write(&value)?;
7222 }
7223 Ok(())
7224 }
7225}
7226#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7227#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7228pub struct GameUIActivatedEvent {}
7229impl GameUIActivatedEvent {
7230 #[allow(unused_variables)]
7231 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7232 Ok(GameUIActivatedEvent {})
7233 }
7234 #[allow(unused_variables)]
7235 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7236 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7237 match field {
7238 _ => Err(ParseError::MissingGameEventValue {
7239 ty: "GameUIActivated",
7240 field: field.into(),
7241 }),
7242 }
7243 }
7244 #[allow(unused_variables)]
7245 fn write(
7246 &self,
7247 stream: &mut BitWriteStream<LittleEndian>,
7248 definition: &GameEventDefinition,
7249 ) -> Result<()> {
7250 for entry in &definition.entries {
7251 let value = self
7252 .get_field(&entry.name)
7253 .unwrap_or_else(|_| entry.kind.default_value());
7254 stream.write(&value)?;
7255 }
7256 Ok(())
7257 }
7258}
7259#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7260#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7261pub struct GameUIHiddenEvent {}
7262impl GameUIHiddenEvent {
7263 #[allow(unused_variables)]
7264 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7265 Ok(GameUIHiddenEvent {})
7266 }
7267 #[allow(unused_variables)]
7268 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7269 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7270 match field {
7271 _ => Err(ParseError::MissingGameEventValue {
7272 ty: "GameUIHidden",
7273 field: field.into(),
7274 }),
7275 }
7276 }
7277 #[allow(unused_variables)]
7278 fn write(
7279 &self,
7280 stream: &mut BitWriteStream<LittleEndian>,
7281 definition: &GameEventDefinition,
7282 ) -> Result<()> {
7283 for entry in &definition.entries {
7284 let value = self
7285 .get_field(&entry.name)
7286 .unwrap_or_else(|_| entry.kind.default_value());
7287 stream.write(&value)?;
7288 }
7289 Ok(())
7290 }
7291}
7292#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7293#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7294pub struct PlayerEscortScoreEvent {
7295 pub player: u8,
7296 pub points: u8,
7297}
7298impl PlayerEscortScoreEvent {
7299 #[allow(unused_variables)]
7300 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7301 Ok(PlayerEscortScoreEvent {
7302 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
7303 points: read_value::<u8>(stream, definition.get_entry("points"), "points")?,
7304 })
7305 }
7306 #[allow(unused_variables)]
7307 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7308 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7309 match field {
7310 "player" => Ok(self.player.clone().into()),
7311 "points" => Ok(self.points.clone().into()),
7312 _ => Err(ParseError::MissingGameEventValue {
7313 ty: "PlayerEscortScore",
7314 field: field.into(),
7315 }),
7316 }
7317 }
7318 #[allow(unused_variables)]
7319 fn write(
7320 &self,
7321 stream: &mut BitWriteStream<LittleEndian>,
7322 definition: &GameEventDefinition,
7323 ) -> Result<()> {
7324 for entry in &definition.entries {
7325 let value = self
7326 .get_field(&entry.name)
7327 .unwrap_or_else(|_| entry.kind.default_value());
7328 stream.write(&value)?;
7329 }
7330 Ok(())
7331 }
7332}
7333#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7334#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7335pub struct PlayerHealOnHitEvent {
7336 pub amount: u16,
7337 pub ent_index: u8,
7338 pub weapon_def_index: u32,
7339}
7340impl PlayerHealOnHitEvent {
7341 #[allow(unused_variables)]
7342 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7343 Ok(PlayerHealOnHitEvent {
7344 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
7345 ent_index: read_value::<u8>(stream, definition.get_entry("entindex"), "ent_index")?,
7346 weapon_def_index: read_value::<u32>(
7347 stream,
7348 definition.get_entry("weapon_def_index"),
7349 "weapon_def_index",
7350 )?,
7351 })
7352 }
7353 #[allow(unused_variables)]
7354 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7355 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7356 match field {
7357 "amount" => Ok(self.amount.clone().into()),
7358 "entindex" => Ok(self.ent_index.clone().into()),
7359 "weapon_def_index" => Ok(self.weapon_def_index.clone().into()),
7360 _ => Err(ParseError::MissingGameEventValue {
7361 ty: "PlayerHealOnHit",
7362 field: field.into(),
7363 }),
7364 }
7365 }
7366 #[allow(unused_variables)]
7367 fn write(
7368 &self,
7369 stream: &mut BitWriteStream<LittleEndian>,
7370 definition: &GameEventDefinition,
7371 ) -> Result<()> {
7372 for entry in &definition.entries {
7373 let value = self
7374 .get_field(&entry.name)
7375 .unwrap_or_else(|_| entry.kind.default_value());
7376 stream.write(&value)?;
7377 }
7378 Ok(())
7379 }
7380}
7381#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7382#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7383pub struct PlayerStealSandvichEvent {
7384 pub owner: u16,
7385 pub target: u16,
7386}
7387impl PlayerStealSandvichEvent {
7388 #[allow(unused_variables)]
7389 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7390 Ok(PlayerStealSandvichEvent {
7391 owner: read_value::<u16>(stream, definition.get_entry("owner"), "owner")?,
7392 target: read_value::<u16>(stream, definition.get_entry("target"), "target")?,
7393 })
7394 }
7395 #[allow(unused_variables)]
7396 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7397 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7398 match field {
7399 "owner" => Ok(self.owner.clone().into()),
7400 "target" => Ok(self.target.clone().into()),
7401 _ => Err(ParseError::MissingGameEventValue {
7402 ty: "PlayerStealSandvich",
7403 field: field.into(),
7404 }),
7405 }
7406 }
7407 #[allow(unused_variables)]
7408 fn write(
7409 &self,
7410 stream: &mut BitWriteStream<LittleEndian>,
7411 definition: &GameEventDefinition,
7412 ) -> Result<()> {
7413 for entry in &definition.entries {
7414 let value = self
7415 .get_field(&entry.name)
7416 .unwrap_or_else(|_| entry.kind.default_value());
7417 stream.write(&value)?;
7418 }
7419 Ok(())
7420 }
7421}
7422#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7423#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7424pub struct ShowClassLayoutEvent {
7425 pub show: bool,
7426}
7427impl ShowClassLayoutEvent {
7428 #[allow(unused_variables)]
7429 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7430 Ok(ShowClassLayoutEvent {
7431 show: read_value::<bool>(stream, definition.get_entry("show"), "show")?,
7432 })
7433 }
7434 #[allow(unused_variables)]
7435 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7436 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7437 match field {
7438 "show" => Ok(self.show.clone().into()),
7439 _ => Err(ParseError::MissingGameEventValue {
7440 ty: "ShowClassLayout",
7441 field: field.into(),
7442 }),
7443 }
7444 }
7445 #[allow(unused_variables)]
7446 fn write(
7447 &self,
7448 stream: &mut BitWriteStream<LittleEndian>,
7449 definition: &GameEventDefinition,
7450 ) -> Result<()> {
7451 for entry in &definition.entries {
7452 let value = self
7453 .get_field(&entry.name)
7454 .unwrap_or_else(|_| entry.kind.default_value());
7455 stream.write(&value)?;
7456 }
7457 Ok(())
7458 }
7459}
7460#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7461#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7462pub struct ShowVsPanelEvent {
7463 pub show: bool,
7464}
7465impl ShowVsPanelEvent {
7466 #[allow(unused_variables)]
7467 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7468 Ok(ShowVsPanelEvent {
7469 show: read_value::<bool>(stream, definition.get_entry("show"), "show")?,
7470 })
7471 }
7472 #[allow(unused_variables)]
7473 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7474 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7475 match field {
7476 "show" => Ok(self.show.clone().into()),
7477 _ => Err(ParseError::MissingGameEventValue {
7478 ty: "ShowVsPanel",
7479 field: field.into(),
7480 }),
7481 }
7482 }
7483 #[allow(unused_variables)]
7484 fn write(
7485 &self,
7486 stream: &mut BitWriteStream<LittleEndian>,
7487 definition: &GameEventDefinition,
7488 ) -> Result<()> {
7489 for entry in &definition.entries {
7490 let value = self
7491 .get_field(&entry.name)
7492 .unwrap_or_else(|_| entry.kind.default_value());
7493 stream.write(&value)?;
7494 }
7495 Ok(())
7496 }
7497}
7498#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7499#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7500pub struct PlayerDamagedEvent {
7501 pub amount: u16,
7502 pub kind: u32,
7503}
7504impl PlayerDamagedEvent {
7505 #[allow(unused_variables)]
7506 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7507 Ok(PlayerDamagedEvent {
7508 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
7509 kind: read_value::<u32>(stream, definition.get_entry("type"), "kind")?,
7510 })
7511 }
7512 #[allow(unused_variables)]
7513 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7514 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7515 match field {
7516 "amount" => Ok(self.amount.clone().into()),
7517 "type" => Ok(self.kind.clone().into()),
7518 _ => Err(ParseError::MissingGameEventValue {
7519 ty: "PlayerDamaged",
7520 field: field.into(),
7521 }),
7522 }
7523 }
7524 #[allow(unused_variables)]
7525 fn write(
7526 &self,
7527 stream: &mut BitWriteStream<LittleEndian>,
7528 definition: &GameEventDefinition,
7529 ) -> Result<()> {
7530 for entry in &definition.entries {
7531 let value = self
7532 .get_field(&entry.name)
7533 .unwrap_or_else(|_| entry.kind.default_value());
7534 stream.write(&value)?;
7535 }
7536 Ok(())
7537 }
7538}
7539#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7540#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7541pub struct ArenaPlayerNotificationEvent {
7542 pub player: u8,
7543 pub message: u8,
7544}
7545impl ArenaPlayerNotificationEvent {
7546 #[allow(unused_variables)]
7547 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7548 Ok(ArenaPlayerNotificationEvent {
7549 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
7550 message: read_value::<u8>(stream, definition.get_entry("message"), "message")?,
7551 })
7552 }
7553 #[allow(unused_variables)]
7554 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7555 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7556 match field {
7557 "player" => Ok(self.player.clone().into()),
7558 "message" => Ok(self.message.clone().into()),
7559 _ => Err(ParseError::MissingGameEventValue {
7560 ty: "ArenaPlayerNotification",
7561 field: field.into(),
7562 }),
7563 }
7564 }
7565 #[allow(unused_variables)]
7566 fn write(
7567 &self,
7568 stream: &mut BitWriteStream<LittleEndian>,
7569 definition: &GameEventDefinition,
7570 ) -> Result<()> {
7571 for entry in &definition.entries {
7572 let value = self
7573 .get_field(&entry.name)
7574 .unwrap_or_else(|_| entry.kind.default_value());
7575 stream.write(&value)?;
7576 }
7577 Ok(())
7578 }
7579}
7580#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7581#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7582pub struct ArenaMatchMaxStreakEvent {
7583 pub team: u8,
7584 pub streak: u8,
7585}
7586impl ArenaMatchMaxStreakEvent {
7587 #[allow(unused_variables)]
7588 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7589 Ok(ArenaMatchMaxStreakEvent {
7590 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
7591 streak: read_value::<u8>(stream, definition.get_entry("streak"), "streak")?,
7592 })
7593 }
7594 #[allow(unused_variables)]
7595 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7596 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7597 match field {
7598 "team" => Ok(self.team.clone().into()),
7599 "streak" => Ok(self.streak.clone().into()),
7600 _ => Err(ParseError::MissingGameEventValue {
7601 ty: "ArenaMatchMaxStreak",
7602 field: field.into(),
7603 }),
7604 }
7605 }
7606 #[allow(unused_variables)]
7607 fn write(
7608 &self,
7609 stream: &mut BitWriteStream<LittleEndian>,
7610 definition: &GameEventDefinition,
7611 ) -> Result<()> {
7612 for entry in &definition.entries {
7613 let value = self
7614 .get_field(&entry.name)
7615 .unwrap_or_else(|_| entry.kind.default_value());
7616 stream.write(&value)?;
7617 }
7618 Ok(())
7619 }
7620}
7621#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7622#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7623pub struct ArenaRoundStartEvent {}
7624impl ArenaRoundStartEvent {
7625 #[allow(unused_variables)]
7626 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7627 Ok(ArenaRoundStartEvent {})
7628 }
7629 #[allow(unused_variables)]
7630 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7631 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7632 match field {
7633 _ => Err(ParseError::MissingGameEventValue {
7634 ty: "ArenaRoundStart",
7635 field: field.into(),
7636 }),
7637 }
7638 }
7639 #[allow(unused_variables)]
7640 fn write(
7641 &self,
7642 stream: &mut BitWriteStream<LittleEndian>,
7643 definition: &GameEventDefinition,
7644 ) -> Result<()> {
7645 for entry in &definition.entries {
7646 let value = self
7647 .get_field(&entry.name)
7648 .unwrap_or_else(|_| entry.kind.default_value());
7649 stream.write(&value)?;
7650 }
7651 Ok(())
7652 }
7653}
7654#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7655#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7656pub struct ArenaWinPanelEvent {
7657 pub panel_style: u8,
7658 pub winning_team: u8,
7659 pub win_reason: u8,
7660 pub cappers: MaybeUtf8String,
7661 pub flag_cap_limit: u16,
7662 pub blue_score: u16,
7663 pub red_score: u16,
7664 pub blue_score_prev: u16,
7665 pub red_score_prev: u16,
7666 pub round_complete: u16,
7667 pub player_1: u16,
7668 pub player_1_damage: u16,
7669 pub player_1_healing: u16,
7670 pub player_1_lifetime: u16,
7671 pub player_1_kills: u16,
7672 pub player_2: u16,
7673 pub player_2_damage: u16,
7674 pub player_2_healing: u16,
7675 pub player_2_lifetime: u16,
7676 pub player_2_kills: u16,
7677 pub player_3: u16,
7678 pub player_3_damage: u16,
7679 pub player_3_healing: u16,
7680 pub player_3_lifetime: u16,
7681 pub player_3_kills: u16,
7682 pub player_4: u16,
7683 pub player_4_damage: u16,
7684 pub player_4_healing: u16,
7685 pub player_4_lifetime: u16,
7686 pub player_4_kills: u16,
7687 pub player_5: u16,
7688 pub player_5_damage: u16,
7689 pub player_5_healing: u16,
7690 pub player_5_lifetime: u16,
7691 pub player_5_kills: u16,
7692 pub player_6: u16,
7693 pub player_6_damage: u16,
7694 pub player_6_healing: u16,
7695 pub player_6_lifetime: u16,
7696 pub player_6_kills: u16,
7697}
7698impl ArenaWinPanelEvent {
7699 #[allow(unused_variables)]
7700 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7701 Ok(ArenaWinPanelEvent {
7702 panel_style: read_value::<u8>(
7703 stream,
7704 definition.get_entry("panel_style"),
7705 "panel_style",
7706 )?,
7707 winning_team: read_value::<u8>(
7708 stream,
7709 definition.get_entry("winning_team"),
7710 "winning_team",
7711 )?,
7712 win_reason: read_value::<u8>(stream, definition.get_entry("winreason"), "win_reason")?,
7713 cappers: read_value::<MaybeUtf8String>(
7714 stream,
7715 definition.get_entry("cappers"),
7716 "cappers",
7717 )?,
7718 flag_cap_limit: read_value::<u16>(
7719 stream,
7720 definition.get_entry("flagcaplimit"),
7721 "flag_cap_limit",
7722 )?,
7723 blue_score: read_value::<u16>(
7724 stream,
7725 definition.get_entry("blue_score"),
7726 "blue_score",
7727 )?,
7728 red_score: read_value::<u16>(stream, definition.get_entry("red_score"), "red_score")?,
7729 blue_score_prev: read_value::<u16>(
7730 stream,
7731 definition.get_entry("blue_score_prev"),
7732 "blue_score_prev",
7733 )?,
7734 red_score_prev: read_value::<u16>(
7735 stream,
7736 definition.get_entry("red_score_prev"),
7737 "red_score_prev",
7738 )?,
7739 round_complete: read_value::<u16>(
7740 stream,
7741 definition.get_entry("round_complete"),
7742 "round_complete",
7743 )?,
7744 player_1: read_value::<u16>(stream, definition.get_entry("player_1"), "player_1")?,
7745 player_1_damage: read_value::<u16>(
7746 stream,
7747 definition.get_entry("player_1_damage"),
7748 "player_1_damage",
7749 )?,
7750 player_1_healing: read_value::<u16>(
7751 stream,
7752 definition.get_entry("player_1_healing"),
7753 "player_1_healing",
7754 )?,
7755 player_1_lifetime: read_value::<u16>(
7756 stream,
7757 definition.get_entry("player_1_lifetime"),
7758 "player_1_lifetime",
7759 )?,
7760 player_1_kills: read_value::<u16>(
7761 stream,
7762 definition.get_entry("player_1_kills"),
7763 "player_1_kills",
7764 )?,
7765 player_2: read_value::<u16>(stream, definition.get_entry("player_2"), "player_2")?,
7766 player_2_damage: read_value::<u16>(
7767 stream,
7768 definition.get_entry("player_2_damage"),
7769 "player_2_damage",
7770 )?,
7771 player_2_healing: read_value::<u16>(
7772 stream,
7773 definition.get_entry("player_2_healing"),
7774 "player_2_healing",
7775 )?,
7776 player_2_lifetime: read_value::<u16>(
7777 stream,
7778 definition.get_entry("player_2_lifetime"),
7779 "player_2_lifetime",
7780 )?,
7781 player_2_kills: read_value::<u16>(
7782 stream,
7783 definition.get_entry("player_2_kills"),
7784 "player_2_kills",
7785 )?,
7786 player_3: read_value::<u16>(stream, definition.get_entry("player_3"), "player_3")?,
7787 player_3_damage: read_value::<u16>(
7788 stream,
7789 definition.get_entry("player_3_damage"),
7790 "player_3_damage",
7791 )?,
7792 player_3_healing: read_value::<u16>(
7793 stream,
7794 definition.get_entry("player_3_healing"),
7795 "player_3_healing",
7796 )?,
7797 player_3_lifetime: read_value::<u16>(
7798 stream,
7799 definition.get_entry("player_3_lifetime"),
7800 "player_3_lifetime",
7801 )?,
7802 player_3_kills: read_value::<u16>(
7803 stream,
7804 definition.get_entry("player_3_kills"),
7805 "player_3_kills",
7806 )?,
7807 player_4: read_value::<u16>(stream, definition.get_entry("player_4"), "player_4")?,
7808 player_4_damage: read_value::<u16>(
7809 stream,
7810 definition.get_entry("player_4_damage"),
7811 "player_4_damage",
7812 )?,
7813 player_4_healing: read_value::<u16>(
7814 stream,
7815 definition.get_entry("player_4_healing"),
7816 "player_4_healing",
7817 )?,
7818 player_4_lifetime: read_value::<u16>(
7819 stream,
7820 definition.get_entry("player_4_lifetime"),
7821 "player_4_lifetime",
7822 )?,
7823 player_4_kills: read_value::<u16>(
7824 stream,
7825 definition.get_entry("player_4_kills"),
7826 "player_4_kills",
7827 )?,
7828 player_5: read_value::<u16>(stream, definition.get_entry("player_5"), "player_5")?,
7829 player_5_damage: read_value::<u16>(
7830 stream,
7831 definition.get_entry("player_5_damage"),
7832 "player_5_damage",
7833 )?,
7834 player_5_healing: read_value::<u16>(
7835 stream,
7836 definition.get_entry("player_5_healing"),
7837 "player_5_healing",
7838 )?,
7839 player_5_lifetime: read_value::<u16>(
7840 stream,
7841 definition.get_entry("player_5_lifetime"),
7842 "player_5_lifetime",
7843 )?,
7844 player_5_kills: read_value::<u16>(
7845 stream,
7846 definition.get_entry("player_5_kills"),
7847 "player_5_kills",
7848 )?,
7849 player_6: read_value::<u16>(stream, definition.get_entry("player_6"), "player_6")?,
7850 player_6_damage: read_value::<u16>(
7851 stream,
7852 definition.get_entry("player_6_damage"),
7853 "player_6_damage",
7854 )?,
7855 player_6_healing: read_value::<u16>(
7856 stream,
7857 definition.get_entry("player_6_healing"),
7858 "player_6_healing",
7859 )?,
7860 player_6_lifetime: read_value::<u16>(
7861 stream,
7862 definition.get_entry("player_6_lifetime"),
7863 "player_6_lifetime",
7864 )?,
7865 player_6_kills: read_value::<u16>(
7866 stream,
7867 definition.get_entry("player_6_kills"),
7868 "player_6_kills",
7869 )?,
7870 })
7871 }
7872 #[allow(unused_variables)]
7873 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7874 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7875 match field {
7876 "panel_style" => Ok(self.panel_style.clone().into()),
7877 "winning_team" => Ok(self.winning_team.clone().into()),
7878 "winreason" => Ok(self.win_reason.clone().into()),
7879 "cappers" => Ok(self.cappers.clone().into()),
7880 "flagcaplimit" => Ok(self.flag_cap_limit.clone().into()),
7881 "blue_score" => Ok(self.blue_score.clone().into()),
7882 "red_score" => Ok(self.red_score.clone().into()),
7883 "blue_score_prev" => Ok(self.blue_score_prev.clone().into()),
7884 "red_score_prev" => Ok(self.red_score_prev.clone().into()),
7885 "round_complete" => Ok(self.round_complete.clone().into()),
7886 "player_1" => Ok(self.player_1.clone().into()),
7887 "player_1_damage" => Ok(self.player_1_damage.clone().into()),
7888 "player_1_healing" => Ok(self.player_1_healing.clone().into()),
7889 "player_1_lifetime" => Ok(self.player_1_lifetime.clone().into()),
7890 "player_1_kills" => Ok(self.player_1_kills.clone().into()),
7891 "player_2" => Ok(self.player_2.clone().into()),
7892 "player_2_damage" => Ok(self.player_2_damage.clone().into()),
7893 "player_2_healing" => Ok(self.player_2_healing.clone().into()),
7894 "player_2_lifetime" => Ok(self.player_2_lifetime.clone().into()),
7895 "player_2_kills" => Ok(self.player_2_kills.clone().into()),
7896 "player_3" => Ok(self.player_3.clone().into()),
7897 "player_3_damage" => Ok(self.player_3_damage.clone().into()),
7898 "player_3_healing" => Ok(self.player_3_healing.clone().into()),
7899 "player_3_lifetime" => Ok(self.player_3_lifetime.clone().into()),
7900 "player_3_kills" => Ok(self.player_3_kills.clone().into()),
7901 "player_4" => Ok(self.player_4.clone().into()),
7902 "player_4_damage" => Ok(self.player_4_damage.clone().into()),
7903 "player_4_healing" => Ok(self.player_4_healing.clone().into()),
7904 "player_4_lifetime" => Ok(self.player_4_lifetime.clone().into()),
7905 "player_4_kills" => Ok(self.player_4_kills.clone().into()),
7906 "player_5" => Ok(self.player_5.clone().into()),
7907 "player_5_damage" => Ok(self.player_5_damage.clone().into()),
7908 "player_5_healing" => Ok(self.player_5_healing.clone().into()),
7909 "player_5_lifetime" => Ok(self.player_5_lifetime.clone().into()),
7910 "player_5_kills" => Ok(self.player_5_kills.clone().into()),
7911 "player_6" => Ok(self.player_6.clone().into()),
7912 "player_6_damage" => Ok(self.player_6_damage.clone().into()),
7913 "player_6_healing" => Ok(self.player_6_healing.clone().into()),
7914 "player_6_lifetime" => Ok(self.player_6_lifetime.clone().into()),
7915 "player_6_kills" => Ok(self.player_6_kills.clone().into()),
7916 _ => Err(ParseError::MissingGameEventValue {
7917 ty: "ArenaWinPanel",
7918 field: field.into(),
7919 }),
7920 }
7921 }
7922 #[allow(unused_variables)]
7923 fn write(
7924 &self,
7925 stream: &mut BitWriteStream<LittleEndian>,
7926 definition: &GameEventDefinition,
7927 ) -> Result<()> {
7928 for entry in &definition.entries {
7929 let value = self
7930 .get_field(&entry.name)
7931 .unwrap_or_else(|_| entry.kind.default_value());
7932 stream.write(&value)?;
7933 }
7934 Ok(())
7935 }
7936}
7937#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7938#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7939pub struct PveWinPanelEvent {
7940 pub panel_style: u8,
7941 pub winning_team: u8,
7942 pub win_reason: u8,
7943}
7944impl PveWinPanelEvent {
7945 #[allow(unused_variables)]
7946 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7947 Ok(PveWinPanelEvent {
7948 panel_style: read_value::<u8>(
7949 stream,
7950 definition.get_entry("panel_style"),
7951 "panel_style",
7952 )?,
7953 winning_team: read_value::<u8>(
7954 stream,
7955 definition.get_entry("winning_team"),
7956 "winning_team",
7957 )?,
7958 win_reason: read_value::<u8>(stream, definition.get_entry("winreason"), "win_reason")?,
7959 })
7960 }
7961 #[allow(unused_variables)]
7962 fn get_field(&self, field: &str) -> Result<GameEventValue> {
7963 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
7964 match field {
7965 "panel_style" => Ok(self.panel_style.clone().into()),
7966 "winning_team" => Ok(self.winning_team.clone().into()),
7967 "winreason" => Ok(self.win_reason.clone().into()),
7968 _ => Err(ParseError::MissingGameEventValue {
7969 ty: "PveWinPanel",
7970 field: field.into(),
7971 }),
7972 }
7973 }
7974 #[allow(unused_variables)]
7975 fn write(
7976 &self,
7977 stream: &mut BitWriteStream<LittleEndian>,
7978 definition: &GameEventDefinition,
7979 ) -> Result<()> {
7980 for entry in &definition.entries {
7981 let value = self
7982 .get_field(&entry.name)
7983 .unwrap_or_else(|_| entry.kind.default_value());
7984 stream.write(&value)?;
7985 }
7986 Ok(())
7987 }
7988}
7989#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
7990#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
7991pub struct AirDashEvent {
7992 pub player: u8,
7993}
7994impl AirDashEvent {
7995 #[allow(unused_variables)]
7996 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
7997 Ok(AirDashEvent {
7998 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
7999 })
8000 }
8001 #[allow(unused_variables)]
8002 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8003 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8004 match field {
8005 "player" => Ok(self.player.clone().into()),
8006 _ => Err(ParseError::MissingGameEventValue {
8007 ty: "AirDash",
8008 field: field.into(),
8009 }),
8010 }
8011 }
8012 #[allow(unused_variables)]
8013 fn write(
8014 &self,
8015 stream: &mut BitWriteStream<LittleEndian>,
8016 definition: &GameEventDefinition,
8017 ) -> Result<()> {
8018 for entry in &definition.entries {
8019 let value = self
8020 .get_field(&entry.name)
8021 .unwrap_or_else(|_| entry.kind.default_value());
8022 stream.write(&value)?;
8023 }
8024 Ok(())
8025 }
8026}
8027#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8028#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8029pub struct LandedEvent {
8030 pub player: u8,
8031}
8032impl LandedEvent {
8033 #[allow(unused_variables)]
8034 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8035 Ok(LandedEvent {
8036 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
8037 })
8038 }
8039 #[allow(unused_variables)]
8040 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8041 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8042 match field {
8043 "player" => Ok(self.player.clone().into()),
8044 _ => Err(ParseError::MissingGameEventValue {
8045 ty: "Landed",
8046 field: field.into(),
8047 }),
8048 }
8049 }
8050 #[allow(unused_variables)]
8051 fn write(
8052 &self,
8053 stream: &mut BitWriteStream<LittleEndian>,
8054 definition: &GameEventDefinition,
8055 ) -> Result<()> {
8056 for entry in &definition.entries {
8057 let value = self
8058 .get_field(&entry.name)
8059 .unwrap_or_else(|_| entry.kind.default_value());
8060 stream.write(&value)?;
8061 }
8062 Ok(())
8063 }
8064}
8065#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8066#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8067pub struct PlayerDamageDodgedEvent {
8068 pub damage: u16,
8069}
8070impl PlayerDamageDodgedEvent {
8071 #[allow(unused_variables)]
8072 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8073 Ok(PlayerDamageDodgedEvent {
8074 damage: read_value::<u16>(stream, definition.get_entry("damage"), "damage")?,
8075 })
8076 }
8077 #[allow(unused_variables)]
8078 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8079 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8080 match field {
8081 "damage" => Ok(self.damage.clone().into()),
8082 _ => Err(ParseError::MissingGameEventValue {
8083 ty: "PlayerDamageDodged",
8084 field: field.into(),
8085 }),
8086 }
8087 }
8088 #[allow(unused_variables)]
8089 fn write(
8090 &self,
8091 stream: &mut BitWriteStream<LittleEndian>,
8092 definition: &GameEventDefinition,
8093 ) -> Result<()> {
8094 for entry in &definition.entries {
8095 let value = self
8096 .get_field(&entry.name)
8097 .unwrap_or_else(|_| entry.kind.default_value());
8098 stream.write(&value)?;
8099 }
8100 Ok(())
8101 }
8102}
8103#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8104#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8105pub struct PlayerStunnedEvent {
8106 pub stunner: u16,
8107 pub victim: u16,
8108 pub victim_capping: bool,
8109 pub big_stun: bool,
8110}
8111impl PlayerStunnedEvent {
8112 #[allow(unused_variables)]
8113 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8114 Ok(PlayerStunnedEvent {
8115 stunner: read_value::<u16>(stream, definition.get_entry("stunner"), "stunner")?,
8116 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
8117 victim_capping: read_value::<bool>(
8118 stream,
8119 definition.get_entry("victim_capping"),
8120 "victim_capping",
8121 )?,
8122 big_stun: read_value::<bool>(stream, definition.get_entry("big_stun"), "big_stun")?,
8123 })
8124 }
8125 #[allow(unused_variables)]
8126 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8127 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8128 match field {
8129 "stunner" => Ok(self.stunner.clone().into()),
8130 "victim" => Ok(self.victim.clone().into()),
8131 "victim_capping" => Ok(self.victim_capping.clone().into()),
8132 "big_stun" => Ok(self.big_stun.clone().into()),
8133 _ => Err(ParseError::MissingGameEventValue {
8134 ty: "PlayerStunned",
8135 field: field.into(),
8136 }),
8137 }
8138 }
8139 #[allow(unused_variables)]
8140 fn write(
8141 &self,
8142 stream: &mut BitWriteStream<LittleEndian>,
8143 definition: &GameEventDefinition,
8144 ) -> Result<()> {
8145 for entry in &definition.entries {
8146 let value = self
8147 .get_field(&entry.name)
8148 .unwrap_or_else(|_| entry.kind.default_value());
8149 stream.write(&value)?;
8150 }
8151 Ok(())
8152 }
8153}
8154#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8155#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8156pub struct ScoutGrandSlamEvent {
8157 pub scout_id: u16,
8158 pub target_id: u16,
8159}
8160impl ScoutGrandSlamEvent {
8161 #[allow(unused_variables)]
8162 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8163 Ok(ScoutGrandSlamEvent {
8164 scout_id: read_value::<u16>(stream, definition.get_entry("scout_id"), "scout_id")?,
8165 target_id: read_value::<u16>(stream, definition.get_entry("target_id"), "target_id")?,
8166 })
8167 }
8168 #[allow(unused_variables)]
8169 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8170 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8171 match field {
8172 "scout_id" => Ok(self.scout_id.clone().into()),
8173 "target_id" => Ok(self.target_id.clone().into()),
8174 _ => Err(ParseError::MissingGameEventValue {
8175 ty: "ScoutGrandSlam",
8176 field: field.into(),
8177 }),
8178 }
8179 }
8180 #[allow(unused_variables)]
8181 fn write(
8182 &self,
8183 stream: &mut BitWriteStream<LittleEndian>,
8184 definition: &GameEventDefinition,
8185 ) -> Result<()> {
8186 for entry in &definition.entries {
8187 let value = self
8188 .get_field(&entry.name)
8189 .unwrap_or_else(|_| entry.kind.default_value());
8190 stream.write(&value)?;
8191 }
8192 Ok(())
8193 }
8194}
8195#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8196#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8197pub struct ScoutSlamdollLandedEvent {
8198 pub target_index: u16,
8199 pub x: f32,
8200 pub y: f32,
8201 pub z: f32,
8202}
8203impl ScoutSlamdollLandedEvent {
8204 #[allow(unused_variables)]
8205 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8206 Ok(ScoutSlamdollLandedEvent {
8207 target_index: read_value::<u16>(
8208 stream,
8209 definition.get_entry("target_index"),
8210 "target_index",
8211 )?,
8212 x: read_value::<f32>(stream, definition.get_entry("x"), "x")?,
8213 y: read_value::<f32>(stream, definition.get_entry("y"), "y")?,
8214 z: read_value::<f32>(stream, definition.get_entry("z"), "z")?,
8215 })
8216 }
8217 #[allow(unused_variables)]
8218 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8219 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8220 match field {
8221 "target_index" => Ok(self.target_index.clone().into()),
8222 "x" => Ok(self.x.clone().into()),
8223 "y" => Ok(self.y.clone().into()),
8224 "z" => Ok(self.z.clone().into()),
8225 _ => Err(ParseError::MissingGameEventValue {
8226 ty: "ScoutSlamdollLanded",
8227 field: field.into(),
8228 }),
8229 }
8230 }
8231 #[allow(unused_variables)]
8232 fn write(
8233 &self,
8234 stream: &mut BitWriteStream<LittleEndian>,
8235 definition: &GameEventDefinition,
8236 ) -> Result<()> {
8237 for entry in &definition.entries {
8238 let value = self
8239 .get_field(&entry.name)
8240 .unwrap_or_else(|_| entry.kind.default_value());
8241 stream.write(&value)?;
8242 }
8243 Ok(())
8244 }
8245}
8246#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8247#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8248pub struct ArrowImpactEvent {
8249 pub attached_entity: u16,
8250 pub shooter: u16,
8251 pub bone_index_attached: u16,
8252 pub bone_position_x: f32,
8253 pub bone_position_y: f32,
8254 pub bone_position_z: f32,
8255 pub bone_angles_x: f32,
8256 pub bone_angles_y: f32,
8257 pub bone_angles_z: f32,
8258 pub projectile_type: u16,
8259 pub is_crit: bool,
8260}
8261impl ArrowImpactEvent {
8262 #[allow(unused_variables)]
8263 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8264 Ok(ArrowImpactEvent {
8265 attached_entity: read_value::<u16>(
8266 stream,
8267 definition.get_entry("attachedEntity"),
8268 "attached_entity",
8269 )?,
8270 shooter: read_value::<u16>(stream, definition.get_entry("shooter"), "shooter")?,
8271 bone_index_attached: read_value::<u16>(
8272 stream,
8273 definition.get_entry("boneIndexAttached"),
8274 "bone_index_attached",
8275 )?,
8276 bone_position_x: read_value::<f32>(
8277 stream,
8278 definition.get_entry("bonePositionX"),
8279 "bone_position_x",
8280 )?,
8281 bone_position_y: read_value::<f32>(
8282 stream,
8283 definition.get_entry("bonePositionY"),
8284 "bone_position_y",
8285 )?,
8286 bone_position_z: read_value::<f32>(
8287 stream,
8288 definition.get_entry("bonePositionZ"),
8289 "bone_position_z",
8290 )?,
8291 bone_angles_x: read_value::<f32>(
8292 stream,
8293 definition.get_entry("boneAnglesX"),
8294 "bone_angles_x",
8295 )?,
8296 bone_angles_y: read_value::<f32>(
8297 stream,
8298 definition.get_entry("boneAnglesY"),
8299 "bone_angles_y",
8300 )?,
8301 bone_angles_z: read_value::<f32>(
8302 stream,
8303 definition.get_entry("boneAnglesZ"),
8304 "bone_angles_z",
8305 )?,
8306 projectile_type: read_value::<u16>(
8307 stream,
8308 definition.get_entry("projectileType"),
8309 "projectile_type",
8310 )?,
8311 is_crit: read_value::<bool>(stream, definition.get_entry("isCrit"), "is_crit")?,
8312 })
8313 }
8314 #[allow(unused_variables)]
8315 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8316 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8317 match field {
8318 "attachedEntity" => Ok(self.attached_entity.clone().into()),
8319 "shooter" => Ok(self.shooter.clone().into()),
8320 "boneIndexAttached" => Ok(self.bone_index_attached.clone().into()),
8321 "bonePositionX" => Ok(self.bone_position_x.clone().into()),
8322 "bonePositionY" => Ok(self.bone_position_y.clone().into()),
8323 "bonePositionZ" => Ok(self.bone_position_z.clone().into()),
8324 "boneAnglesX" => Ok(self.bone_angles_x.clone().into()),
8325 "boneAnglesY" => Ok(self.bone_angles_y.clone().into()),
8326 "boneAnglesZ" => Ok(self.bone_angles_z.clone().into()),
8327 "projectileType" => Ok(self.projectile_type.clone().into()),
8328 "isCrit" => Ok(self.is_crit.clone().into()),
8329 _ => Err(ParseError::MissingGameEventValue {
8330 ty: "ArrowImpact",
8331 field: field.into(),
8332 }),
8333 }
8334 }
8335 #[allow(unused_variables)]
8336 fn write(
8337 &self,
8338 stream: &mut BitWriteStream<LittleEndian>,
8339 definition: &GameEventDefinition,
8340 ) -> Result<()> {
8341 for entry in &definition.entries {
8342 let value = self
8343 .get_field(&entry.name)
8344 .unwrap_or_else(|_| entry.kind.default_value());
8345 stream.write(&value)?;
8346 }
8347 Ok(())
8348 }
8349}
8350#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8351#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8352pub struct PlayerJaratedEvent {
8353 pub thrower_ent_index: u8,
8354 pub victim_ent_index: u8,
8355}
8356impl PlayerJaratedEvent {
8357 #[allow(unused_variables)]
8358 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8359 Ok(PlayerJaratedEvent {
8360 thrower_ent_index: read_value::<u8>(
8361 stream,
8362 definition.get_entry("thrower_entindex"),
8363 "thrower_ent_index",
8364 )?,
8365 victim_ent_index: read_value::<u8>(
8366 stream,
8367 definition.get_entry("victim_entindex"),
8368 "victim_ent_index",
8369 )?,
8370 })
8371 }
8372 #[allow(unused_variables)]
8373 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8374 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8375 match field {
8376 "thrower_entindex" => Ok(self.thrower_ent_index.clone().into()),
8377 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
8378 _ => Err(ParseError::MissingGameEventValue {
8379 ty: "PlayerJarated",
8380 field: field.into(),
8381 }),
8382 }
8383 }
8384 #[allow(unused_variables)]
8385 fn write(
8386 &self,
8387 stream: &mut BitWriteStream<LittleEndian>,
8388 definition: &GameEventDefinition,
8389 ) -> Result<()> {
8390 for entry in &definition.entries {
8391 let value = self
8392 .get_field(&entry.name)
8393 .unwrap_or_else(|_| entry.kind.default_value());
8394 stream.write(&value)?;
8395 }
8396 Ok(())
8397 }
8398}
8399#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8400#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8401pub struct PlayerJaratedFadeEvent {
8402 pub thrower_ent_index: u8,
8403 pub victim_ent_index: u8,
8404}
8405impl PlayerJaratedFadeEvent {
8406 #[allow(unused_variables)]
8407 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8408 Ok(PlayerJaratedFadeEvent {
8409 thrower_ent_index: read_value::<u8>(
8410 stream,
8411 definition.get_entry("thrower_entindex"),
8412 "thrower_ent_index",
8413 )?,
8414 victim_ent_index: read_value::<u8>(
8415 stream,
8416 definition.get_entry("victim_entindex"),
8417 "victim_ent_index",
8418 )?,
8419 })
8420 }
8421 #[allow(unused_variables)]
8422 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8423 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8424 match field {
8425 "thrower_entindex" => Ok(self.thrower_ent_index.clone().into()),
8426 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
8427 _ => Err(ParseError::MissingGameEventValue {
8428 ty: "PlayerJaratedFade",
8429 field: field.into(),
8430 }),
8431 }
8432 }
8433 #[allow(unused_variables)]
8434 fn write(
8435 &self,
8436 stream: &mut BitWriteStream<LittleEndian>,
8437 definition: &GameEventDefinition,
8438 ) -> Result<()> {
8439 for entry in &definition.entries {
8440 let value = self
8441 .get_field(&entry.name)
8442 .unwrap_or_else(|_| entry.kind.default_value());
8443 stream.write(&value)?;
8444 }
8445 Ok(())
8446 }
8447}
8448#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8449#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8450pub struct PlayerShieldBlockedEvent {
8451 pub attacker_ent_index: u8,
8452 pub blocker_ent_index: u8,
8453}
8454impl PlayerShieldBlockedEvent {
8455 #[allow(unused_variables)]
8456 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8457 Ok(PlayerShieldBlockedEvent {
8458 attacker_ent_index: read_value::<u8>(
8459 stream,
8460 definition.get_entry("attacker_entindex"),
8461 "attacker_ent_index",
8462 )?,
8463 blocker_ent_index: read_value::<u8>(
8464 stream,
8465 definition.get_entry("blocker_entindex"),
8466 "blocker_ent_index",
8467 )?,
8468 })
8469 }
8470 #[allow(unused_variables)]
8471 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8472 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8473 match field {
8474 "attacker_entindex" => Ok(self.attacker_ent_index.clone().into()),
8475 "blocker_entindex" => Ok(self.blocker_ent_index.clone().into()),
8476 _ => Err(ParseError::MissingGameEventValue {
8477 ty: "PlayerShieldBlocked",
8478 field: field.into(),
8479 }),
8480 }
8481 }
8482 #[allow(unused_variables)]
8483 fn write(
8484 &self,
8485 stream: &mut BitWriteStream<LittleEndian>,
8486 definition: &GameEventDefinition,
8487 ) -> Result<()> {
8488 for entry in &definition.entries {
8489 let value = self
8490 .get_field(&entry.name)
8491 .unwrap_or_else(|_| entry.kind.default_value());
8492 stream.write(&value)?;
8493 }
8494 Ok(())
8495 }
8496}
8497#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8498#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8499pub struct PlayerPinnedEvent {
8500 pub pinned: u8,
8501}
8502impl PlayerPinnedEvent {
8503 #[allow(unused_variables)]
8504 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8505 Ok(PlayerPinnedEvent {
8506 pinned: read_value::<u8>(stream, definition.get_entry("pinned"), "pinned")?,
8507 })
8508 }
8509 #[allow(unused_variables)]
8510 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8511 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8512 match field {
8513 "pinned" => Ok(self.pinned.clone().into()),
8514 _ => Err(ParseError::MissingGameEventValue {
8515 ty: "PlayerPinned",
8516 field: field.into(),
8517 }),
8518 }
8519 }
8520 #[allow(unused_variables)]
8521 fn write(
8522 &self,
8523 stream: &mut BitWriteStream<LittleEndian>,
8524 definition: &GameEventDefinition,
8525 ) -> Result<()> {
8526 for entry in &definition.entries {
8527 let value = self
8528 .get_field(&entry.name)
8529 .unwrap_or_else(|_| entry.kind.default_value());
8530 stream.write(&value)?;
8531 }
8532 Ok(())
8533 }
8534}
8535#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8536#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8537pub struct PlayerHealedByMedicEvent {
8538 pub medic: u8,
8539}
8540impl PlayerHealedByMedicEvent {
8541 #[allow(unused_variables)]
8542 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8543 Ok(PlayerHealedByMedicEvent {
8544 medic: read_value::<u8>(stream, definition.get_entry("medic"), "medic")?,
8545 })
8546 }
8547 #[allow(unused_variables)]
8548 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8549 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8550 match field {
8551 "medic" => Ok(self.medic.clone().into()),
8552 _ => Err(ParseError::MissingGameEventValue {
8553 ty: "PlayerHealedByMedic",
8554 field: field.into(),
8555 }),
8556 }
8557 }
8558 #[allow(unused_variables)]
8559 fn write(
8560 &self,
8561 stream: &mut BitWriteStream<LittleEndian>,
8562 definition: &GameEventDefinition,
8563 ) -> Result<()> {
8564 for entry in &definition.entries {
8565 let value = self
8566 .get_field(&entry.name)
8567 .unwrap_or_else(|_| entry.kind.default_value());
8568 stream.write(&value)?;
8569 }
8570 Ok(())
8571 }
8572}
8573#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8574#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8575pub struct PlayerSappedObjectEvent {
8576 pub user_id: u16,
8577 pub owner_id: u16,
8578 pub object: u8,
8579 pub sapper_id: u16,
8580}
8581impl PlayerSappedObjectEvent {
8582 #[allow(unused_variables)]
8583 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8584 Ok(PlayerSappedObjectEvent {
8585 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
8586 owner_id: read_value::<u16>(stream, definition.get_entry("ownerid"), "owner_id")?,
8587 object: read_value::<u8>(stream, definition.get_entry("object"), "object")?,
8588 sapper_id: read_value::<u16>(stream, definition.get_entry("sapperid"), "sapper_id")?,
8589 })
8590 }
8591 #[allow(unused_variables)]
8592 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8593 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8594 match field {
8595 "userid" => Ok(self.user_id.clone().into()),
8596 "ownerid" => Ok(self.owner_id.clone().into()),
8597 "object" => Ok(self.object.clone().into()),
8598 "sapperid" => Ok(self.sapper_id.clone().into()),
8599 _ => Err(ParseError::MissingGameEventValue {
8600 ty: "PlayerSappedObject",
8601 field: field.into(),
8602 }),
8603 }
8604 }
8605 #[allow(unused_variables)]
8606 fn write(
8607 &self,
8608 stream: &mut BitWriteStream<LittleEndian>,
8609 definition: &GameEventDefinition,
8610 ) -> Result<()> {
8611 for entry in &definition.entries {
8612 let value = self
8613 .get_field(&entry.name)
8614 .unwrap_or_else(|_| entry.kind.default_value());
8615 stream.write(&value)?;
8616 }
8617 Ok(())
8618 }
8619}
8620#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8621#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8622pub struct ItemFoundEvent {
8623 pub player: u8,
8624 pub quality: u8,
8625 pub method: u8,
8626 pub item_def: u32,
8627 pub is_strange: u8,
8628 pub is_unusual: u8,
8629 pub wear: f32,
8630}
8631impl ItemFoundEvent {
8632 #[allow(unused_variables)]
8633 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8634 Ok(ItemFoundEvent {
8635 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
8636 quality: read_value::<u8>(stream, definition.get_entry("quality"), "quality")?,
8637 method: read_value::<u8>(stream, definition.get_entry("method"), "method")?,
8638 item_def: read_value::<u32>(stream, definition.get_entry("itemdef"), "item_def")?,
8639 is_strange: read_value::<u8>(stream, definition.get_entry("isstrange"), "is_strange")?,
8640 is_unusual: read_value::<u8>(stream, definition.get_entry("isunusual"), "is_unusual")?,
8641 wear: read_value::<f32>(stream, definition.get_entry("wear"), "wear")?,
8642 })
8643 }
8644 #[allow(unused_variables)]
8645 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8646 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8647 match field {
8648 "player" => Ok(self.player.clone().into()),
8649 "quality" => Ok(self.quality.clone().into()),
8650 "method" => Ok(self.method.clone().into()),
8651 "itemdef" => Ok(self.item_def.clone().into()),
8652 "isstrange" => Ok(self.is_strange.clone().into()),
8653 "isunusual" => Ok(self.is_unusual.clone().into()),
8654 "wear" => Ok(self.wear.clone().into()),
8655 _ => Err(ParseError::MissingGameEventValue {
8656 ty: "ItemFound",
8657 field: field.into(),
8658 }),
8659 }
8660 }
8661 #[allow(unused_variables)]
8662 fn write(
8663 &self,
8664 stream: &mut BitWriteStream<LittleEndian>,
8665 definition: &GameEventDefinition,
8666 ) -> Result<()> {
8667 for entry in &definition.entries {
8668 let value = self
8669 .get_field(&entry.name)
8670 .unwrap_or_else(|_| entry.kind.default_value());
8671 stream.write(&value)?;
8672 }
8673 Ok(())
8674 }
8675}
8676#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8677#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8678pub struct ShowAnnotationEvent {
8679 pub world_pos_x: f32,
8680 pub world_pos_y: f32,
8681 pub world_pos_z: f32,
8682 pub world_normal_x: f32,
8683 pub world_normal_y: f32,
8684 pub world_normal_z: f32,
8685 pub id: u32,
8686 pub text: MaybeUtf8String,
8687 pub lifetime: f32,
8688 pub visibility_bit_field: u32,
8689 pub follow_ent_index: u32,
8690 pub show_distance: bool,
8691 pub play_sound: MaybeUtf8String,
8692 pub show_effect: bool,
8693}
8694impl ShowAnnotationEvent {
8695 #[allow(unused_variables)]
8696 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8697 Ok(ShowAnnotationEvent {
8698 world_pos_x: read_value::<f32>(
8699 stream,
8700 definition.get_entry("worldPosX"),
8701 "world_pos_x",
8702 )?,
8703 world_pos_y: read_value::<f32>(
8704 stream,
8705 definition.get_entry("worldPosY"),
8706 "world_pos_y",
8707 )?,
8708 world_pos_z: read_value::<f32>(
8709 stream,
8710 definition.get_entry("worldPosZ"),
8711 "world_pos_z",
8712 )?,
8713 world_normal_x: read_value::<f32>(
8714 stream,
8715 definition.get_entry("worldNormalX"),
8716 "world_normal_x",
8717 )?,
8718 world_normal_y: read_value::<f32>(
8719 stream,
8720 definition.get_entry("worldNormalY"),
8721 "world_normal_y",
8722 )?,
8723 world_normal_z: read_value::<f32>(
8724 stream,
8725 definition.get_entry("worldNormalZ"),
8726 "world_normal_z",
8727 )?,
8728 id: read_value::<u32>(stream, definition.get_entry("id"), "id")?,
8729 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
8730 lifetime: read_value::<f32>(stream, definition.get_entry("lifetime"), "lifetime")?,
8731 visibility_bit_field: read_value::<u32>(
8732 stream,
8733 definition.get_entry("visibilityBitfield"),
8734 "visibility_bit_field",
8735 )?,
8736 follow_ent_index: read_value::<u32>(
8737 stream,
8738 definition.get_entry("follow_entindex"),
8739 "follow_ent_index",
8740 )?,
8741 show_distance: read_value::<bool>(
8742 stream,
8743 definition.get_entry("show_distance"),
8744 "show_distance",
8745 )?,
8746 play_sound: read_value::<MaybeUtf8String>(
8747 stream,
8748 definition.get_entry("play_sound"),
8749 "play_sound",
8750 )?,
8751 show_effect: read_value::<bool>(
8752 stream,
8753 definition.get_entry("show_effect"),
8754 "show_effect",
8755 )?,
8756 })
8757 }
8758 #[allow(unused_variables)]
8759 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8760 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8761 match field {
8762 "worldPosX" => Ok(self.world_pos_x.clone().into()),
8763 "worldPosY" => Ok(self.world_pos_y.clone().into()),
8764 "worldPosZ" => Ok(self.world_pos_z.clone().into()),
8765 "worldNormalX" => Ok(self.world_normal_x.clone().into()),
8766 "worldNormalY" => Ok(self.world_normal_y.clone().into()),
8767 "worldNormalZ" => Ok(self.world_normal_z.clone().into()),
8768 "id" => Ok(self.id.clone().into()),
8769 "text" => Ok(self.text.clone().into()),
8770 "lifetime" => Ok(self.lifetime.clone().into()),
8771 "visibilityBitfield" => Ok(self.visibility_bit_field.clone().into()),
8772 "follow_entindex" => Ok(self.follow_ent_index.clone().into()),
8773 "show_distance" => Ok(self.show_distance.clone().into()),
8774 "play_sound" => Ok(self.play_sound.clone().into()),
8775 "show_effect" => Ok(self.show_effect.clone().into()),
8776 _ => Err(ParseError::MissingGameEventValue {
8777 ty: "ShowAnnotation",
8778 field: field.into(),
8779 }),
8780 }
8781 }
8782 #[allow(unused_variables)]
8783 fn write(
8784 &self,
8785 stream: &mut BitWriteStream<LittleEndian>,
8786 definition: &GameEventDefinition,
8787 ) -> Result<()> {
8788 for entry in &definition.entries {
8789 let value = self
8790 .get_field(&entry.name)
8791 .unwrap_or_else(|_| entry.kind.default_value());
8792 stream.write(&value)?;
8793 }
8794 Ok(())
8795 }
8796}
8797#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8798#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8799pub struct HideAnnotationEvent {
8800 pub id: u32,
8801}
8802impl HideAnnotationEvent {
8803 #[allow(unused_variables)]
8804 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8805 Ok(HideAnnotationEvent {
8806 id: read_value::<u32>(stream, definition.get_entry("id"), "id")?,
8807 })
8808 }
8809 #[allow(unused_variables)]
8810 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8811 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8812 match field {
8813 "id" => Ok(self.id.clone().into()),
8814 _ => Err(ParseError::MissingGameEventValue {
8815 ty: "HideAnnotation",
8816 field: field.into(),
8817 }),
8818 }
8819 }
8820 #[allow(unused_variables)]
8821 fn write(
8822 &self,
8823 stream: &mut BitWriteStream<LittleEndian>,
8824 definition: &GameEventDefinition,
8825 ) -> Result<()> {
8826 for entry in &definition.entries {
8827 let value = self
8828 .get_field(&entry.name)
8829 .unwrap_or_else(|_| entry.kind.default_value());
8830 stream.write(&value)?;
8831 }
8832 Ok(())
8833 }
8834}
8835#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8836#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8837pub struct PostInventoryApplicationEvent {
8838 pub user_id: u16,
8839}
8840impl PostInventoryApplicationEvent {
8841 #[allow(unused_variables)]
8842 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8843 Ok(PostInventoryApplicationEvent {
8844 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
8845 })
8846 }
8847 #[allow(unused_variables)]
8848 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8849 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8850 match field {
8851 "userid" => Ok(self.user_id.clone().into()),
8852 _ => Err(ParseError::MissingGameEventValue {
8853 ty: "PostInventoryApplication",
8854 field: field.into(),
8855 }),
8856 }
8857 }
8858 #[allow(unused_variables)]
8859 fn write(
8860 &self,
8861 stream: &mut BitWriteStream<LittleEndian>,
8862 definition: &GameEventDefinition,
8863 ) -> Result<()> {
8864 for entry in &definition.entries {
8865 let value = self
8866 .get_field(&entry.name)
8867 .unwrap_or_else(|_| entry.kind.default_value());
8868 stream.write(&value)?;
8869 }
8870 Ok(())
8871 }
8872}
8873#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8874#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8875pub struct ControlPointUnlockUpdatedEvent {
8876 pub index: u16,
8877 pub time: f32,
8878}
8879impl ControlPointUnlockUpdatedEvent {
8880 #[allow(unused_variables)]
8881 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8882 Ok(ControlPointUnlockUpdatedEvent {
8883 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
8884 time: read_value::<f32>(stream, definition.get_entry("time"), "time")?,
8885 })
8886 }
8887 #[allow(unused_variables)]
8888 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8889 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8890 match field {
8891 "index" => Ok(self.index.clone().into()),
8892 "time" => Ok(self.time.clone().into()),
8893 _ => Err(ParseError::MissingGameEventValue {
8894 ty: "ControlPointUnlockUpdated",
8895 field: field.into(),
8896 }),
8897 }
8898 }
8899 #[allow(unused_variables)]
8900 fn write(
8901 &self,
8902 stream: &mut BitWriteStream<LittleEndian>,
8903 definition: &GameEventDefinition,
8904 ) -> Result<()> {
8905 for entry in &definition.entries {
8906 let value = self
8907 .get_field(&entry.name)
8908 .unwrap_or_else(|_| entry.kind.default_value());
8909 stream.write(&value)?;
8910 }
8911 Ok(())
8912 }
8913}
8914#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8915#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8916pub struct DeployBuffBannerEvent {
8917 pub buff_type: u8,
8918 pub buff_owner: u16,
8919}
8920impl DeployBuffBannerEvent {
8921 #[allow(unused_variables)]
8922 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8923 Ok(DeployBuffBannerEvent {
8924 buff_type: read_value::<u8>(stream, definition.get_entry("buff_type"), "buff_type")?,
8925 buff_owner: read_value::<u16>(
8926 stream,
8927 definition.get_entry("buff_owner"),
8928 "buff_owner",
8929 )?,
8930 })
8931 }
8932 #[allow(unused_variables)]
8933 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8934 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8935 match field {
8936 "buff_type" => Ok(self.buff_type.clone().into()),
8937 "buff_owner" => Ok(self.buff_owner.clone().into()),
8938 _ => Err(ParseError::MissingGameEventValue {
8939 ty: "DeployBuffBanner",
8940 field: field.into(),
8941 }),
8942 }
8943 }
8944 #[allow(unused_variables)]
8945 fn write(
8946 &self,
8947 stream: &mut BitWriteStream<LittleEndian>,
8948 definition: &GameEventDefinition,
8949 ) -> Result<()> {
8950 for entry in &definition.entries {
8951 let value = self
8952 .get_field(&entry.name)
8953 .unwrap_or_else(|_| entry.kind.default_value());
8954 stream.write(&value)?;
8955 }
8956 Ok(())
8957 }
8958}
8959#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
8960#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
8961pub struct PlayerBuffEvent {
8962 pub user_id: u16,
8963 pub buff_owner: u16,
8964 pub buff_type: u8,
8965}
8966impl PlayerBuffEvent {
8967 #[allow(unused_variables)]
8968 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
8969 Ok(PlayerBuffEvent {
8970 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
8971 buff_owner: read_value::<u16>(
8972 stream,
8973 definition.get_entry("buff_owner"),
8974 "buff_owner",
8975 )?,
8976 buff_type: read_value::<u8>(stream, definition.get_entry("buff_type"), "buff_type")?,
8977 })
8978 }
8979 #[allow(unused_variables)]
8980 fn get_field(&self, field: &str) -> Result<GameEventValue> {
8981 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
8982 match field {
8983 "userid" => Ok(self.user_id.clone().into()),
8984 "buff_owner" => Ok(self.buff_owner.clone().into()),
8985 "buff_type" => Ok(self.buff_type.clone().into()),
8986 _ => Err(ParseError::MissingGameEventValue {
8987 ty: "PlayerBuff",
8988 field: field.into(),
8989 }),
8990 }
8991 }
8992 #[allow(unused_variables)]
8993 fn write(
8994 &self,
8995 stream: &mut BitWriteStream<LittleEndian>,
8996 definition: &GameEventDefinition,
8997 ) -> Result<()> {
8998 for entry in &definition.entries {
8999 let value = self
9000 .get_field(&entry.name)
9001 .unwrap_or_else(|_| entry.kind.default_value());
9002 stream.write(&value)?;
9003 }
9004 Ok(())
9005 }
9006}
9007#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9008#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9009pub struct MedicDeathEvent {
9010 pub user_id: u16,
9011 pub attacker: u16,
9012 pub healing: u16,
9013 pub charged: bool,
9014}
9015impl MedicDeathEvent {
9016 #[allow(unused_variables)]
9017 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9018 Ok(MedicDeathEvent {
9019 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9020 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
9021 healing: read_value::<u16>(stream, definition.get_entry("healing"), "healing")?,
9022 charged: read_value::<bool>(stream, definition.get_entry("charged"), "charged")?,
9023 })
9024 }
9025 #[allow(unused_variables)]
9026 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9027 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9028 match field {
9029 "userid" => Ok(self.user_id.clone().into()),
9030 "attacker" => Ok(self.attacker.clone().into()),
9031 "healing" => Ok(self.healing.clone().into()),
9032 "charged" => Ok(self.charged.clone().into()),
9033 _ => Err(ParseError::MissingGameEventValue {
9034 ty: "MedicDeath",
9035 field: field.into(),
9036 }),
9037 }
9038 }
9039 #[allow(unused_variables)]
9040 fn write(
9041 &self,
9042 stream: &mut BitWriteStream<LittleEndian>,
9043 definition: &GameEventDefinition,
9044 ) -> Result<()> {
9045 for entry in &definition.entries {
9046 let value = self
9047 .get_field(&entry.name)
9048 .unwrap_or_else(|_| entry.kind.default_value());
9049 stream.write(&value)?;
9050 }
9051 Ok(())
9052 }
9053}
9054#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9055#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9056pub struct OvertimeNagEvent {}
9057impl OvertimeNagEvent {
9058 #[allow(unused_variables)]
9059 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9060 Ok(OvertimeNagEvent {})
9061 }
9062 #[allow(unused_variables)]
9063 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9064 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9065 match field {
9066 _ => Err(ParseError::MissingGameEventValue {
9067 ty: "OvertimeNag",
9068 field: field.into(),
9069 }),
9070 }
9071 }
9072 #[allow(unused_variables)]
9073 fn write(
9074 &self,
9075 stream: &mut BitWriteStream<LittleEndian>,
9076 definition: &GameEventDefinition,
9077 ) -> Result<()> {
9078 for entry in &definition.entries {
9079 let value = self
9080 .get_field(&entry.name)
9081 .unwrap_or_else(|_| entry.kind.default_value());
9082 stream.write(&value)?;
9083 }
9084 Ok(())
9085 }
9086}
9087#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9088#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9089pub struct TeamsChangedEvent {}
9090impl TeamsChangedEvent {
9091 #[allow(unused_variables)]
9092 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9093 Ok(TeamsChangedEvent {})
9094 }
9095 #[allow(unused_variables)]
9096 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9097 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9098 match field {
9099 _ => Err(ParseError::MissingGameEventValue {
9100 ty: "TeamsChanged",
9101 field: field.into(),
9102 }),
9103 }
9104 }
9105 #[allow(unused_variables)]
9106 fn write(
9107 &self,
9108 stream: &mut BitWriteStream<LittleEndian>,
9109 definition: &GameEventDefinition,
9110 ) -> Result<()> {
9111 for entry in &definition.entries {
9112 let value = self
9113 .get_field(&entry.name)
9114 .unwrap_or_else(|_| entry.kind.default_value());
9115 stream.write(&value)?;
9116 }
9117 Ok(())
9118 }
9119}
9120#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9121#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9122pub struct HalloweenPumpkinGrabEvent {
9123 pub user_id: u16,
9124}
9125impl HalloweenPumpkinGrabEvent {
9126 #[allow(unused_variables)]
9127 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9128 Ok(HalloweenPumpkinGrabEvent {
9129 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9130 })
9131 }
9132 #[allow(unused_variables)]
9133 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9134 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9135 match field {
9136 "userid" => Ok(self.user_id.clone().into()),
9137 _ => Err(ParseError::MissingGameEventValue {
9138 ty: "HalloweenPumpkinGrab",
9139 field: field.into(),
9140 }),
9141 }
9142 }
9143 #[allow(unused_variables)]
9144 fn write(
9145 &self,
9146 stream: &mut BitWriteStream<LittleEndian>,
9147 definition: &GameEventDefinition,
9148 ) -> Result<()> {
9149 for entry in &definition.entries {
9150 let value = self
9151 .get_field(&entry.name)
9152 .unwrap_or_else(|_| entry.kind.default_value());
9153 stream.write(&value)?;
9154 }
9155 Ok(())
9156 }
9157}
9158#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9159#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9160pub struct RocketJumpEvent {
9161 pub user_id: u16,
9162 pub play_sound: bool,
9163}
9164impl RocketJumpEvent {
9165 #[allow(unused_variables)]
9166 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9167 Ok(RocketJumpEvent {
9168 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9169 play_sound: read_value::<bool>(
9170 stream,
9171 definition.get_entry("playsound"),
9172 "play_sound",
9173 )?,
9174 })
9175 }
9176 #[allow(unused_variables)]
9177 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9178 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9179 match field {
9180 "userid" => Ok(self.user_id.clone().into()),
9181 "playsound" => Ok(self.play_sound.clone().into()),
9182 _ => Err(ParseError::MissingGameEventValue {
9183 ty: "RocketJump",
9184 field: field.into(),
9185 }),
9186 }
9187 }
9188 #[allow(unused_variables)]
9189 fn write(
9190 &self,
9191 stream: &mut BitWriteStream<LittleEndian>,
9192 definition: &GameEventDefinition,
9193 ) -> Result<()> {
9194 for entry in &definition.entries {
9195 let value = self
9196 .get_field(&entry.name)
9197 .unwrap_or_else(|_| entry.kind.default_value());
9198 stream.write(&value)?;
9199 }
9200 Ok(())
9201 }
9202}
9203#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9204#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9205pub struct RocketJumpLandedEvent {
9206 pub user_id: u16,
9207}
9208impl RocketJumpLandedEvent {
9209 #[allow(unused_variables)]
9210 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9211 Ok(RocketJumpLandedEvent {
9212 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9213 })
9214 }
9215 #[allow(unused_variables)]
9216 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9217 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9218 match field {
9219 "userid" => Ok(self.user_id.clone().into()),
9220 _ => Err(ParseError::MissingGameEventValue {
9221 ty: "RocketJumpLanded",
9222 field: field.into(),
9223 }),
9224 }
9225 }
9226 #[allow(unused_variables)]
9227 fn write(
9228 &self,
9229 stream: &mut BitWriteStream<LittleEndian>,
9230 definition: &GameEventDefinition,
9231 ) -> Result<()> {
9232 for entry in &definition.entries {
9233 let value = self
9234 .get_field(&entry.name)
9235 .unwrap_or_else(|_| entry.kind.default_value());
9236 stream.write(&value)?;
9237 }
9238 Ok(())
9239 }
9240}
9241#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9242#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9243pub struct StickyJumpEvent {
9244 pub user_id: u16,
9245 pub play_sound: bool,
9246}
9247impl StickyJumpEvent {
9248 #[allow(unused_variables)]
9249 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9250 Ok(StickyJumpEvent {
9251 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9252 play_sound: read_value::<bool>(
9253 stream,
9254 definition.get_entry("playsound"),
9255 "play_sound",
9256 )?,
9257 })
9258 }
9259 #[allow(unused_variables)]
9260 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9261 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9262 match field {
9263 "userid" => Ok(self.user_id.clone().into()),
9264 "playsound" => Ok(self.play_sound.clone().into()),
9265 _ => Err(ParseError::MissingGameEventValue {
9266 ty: "StickyJump",
9267 field: field.into(),
9268 }),
9269 }
9270 }
9271 #[allow(unused_variables)]
9272 fn write(
9273 &self,
9274 stream: &mut BitWriteStream<LittleEndian>,
9275 definition: &GameEventDefinition,
9276 ) -> Result<()> {
9277 for entry in &definition.entries {
9278 let value = self
9279 .get_field(&entry.name)
9280 .unwrap_or_else(|_| entry.kind.default_value());
9281 stream.write(&value)?;
9282 }
9283 Ok(())
9284 }
9285}
9286#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9287#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9288pub struct StickyJumpLandedEvent {
9289 pub user_id: u16,
9290}
9291impl StickyJumpLandedEvent {
9292 #[allow(unused_variables)]
9293 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9294 Ok(StickyJumpLandedEvent {
9295 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9296 })
9297 }
9298 #[allow(unused_variables)]
9299 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9300 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9301 match field {
9302 "userid" => Ok(self.user_id.clone().into()),
9303 _ => Err(ParseError::MissingGameEventValue {
9304 ty: "StickyJumpLanded",
9305 field: field.into(),
9306 }),
9307 }
9308 }
9309 #[allow(unused_variables)]
9310 fn write(
9311 &self,
9312 stream: &mut BitWriteStream<LittleEndian>,
9313 definition: &GameEventDefinition,
9314 ) -> Result<()> {
9315 for entry in &definition.entries {
9316 let value = self
9317 .get_field(&entry.name)
9318 .unwrap_or_else(|_| entry.kind.default_value());
9319 stream.write(&value)?;
9320 }
9321 Ok(())
9322 }
9323}
9324#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9325#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9326pub struct RocketPackLaunchEvent {
9327 pub user_id: u16,
9328 pub play_sound: bool,
9329}
9330impl RocketPackLaunchEvent {
9331 #[allow(unused_variables)]
9332 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9333 Ok(RocketPackLaunchEvent {
9334 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9335 play_sound: read_value::<bool>(
9336 stream,
9337 definition.get_entry("playsound"),
9338 "play_sound",
9339 )?,
9340 })
9341 }
9342 #[allow(unused_variables)]
9343 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9344 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9345 match field {
9346 "userid" => Ok(self.user_id.clone().into()),
9347 "playsound" => Ok(self.play_sound.clone().into()),
9348 _ => Err(ParseError::MissingGameEventValue {
9349 ty: "RocketPackLaunch",
9350 field: field.into(),
9351 }),
9352 }
9353 }
9354 #[allow(unused_variables)]
9355 fn write(
9356 &self,
9357 stream: &mut BitWriteStream<LittleEndian>,
9358 definition: &GameEventDefinition,
9359 ) -> Result<()> {
9360 for entry in &definition.entries {
9361 let value = self
9362 .get_field(&entry.name)
9363 .unwrap_or_else(|_| entry.kind.default_value());
9364 stream.write(&value)?;
9365 }
9366 Ok(())
9367 }
9368}
9369#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9370#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9371pub struct RocketPackLandedEvent {
9372 pub user_id: u16,
9373}
9374impl RocketPackLandedEvent {
9375 #[allow(unused_variables)]
9376 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9377 Ok(RocketPackLandedEvent {
9378 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9379 })
9380 }
9381 #[allow(unused_variables)]
9382 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9383 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9384 match field {
9385 "userid" => Ok(self.user_id.clone().into()),
9386 _ => Err(ParseError::MissingGameEventValue {
9387 ty: "RocketPackLanded",
9388 field: field.into(),
9389 }),
9390 }
9391 }
9392 #[allow(unused_variables)]
9393 fn write(
9394 &self,
9395 stream: &mut BitWriteStream<LittleEndian>,
9396 definition: &GameEventDefinition,
9397 ) -> Result<()> {
9398 for entry in &definition.entries {
9399 let value = self
9400 .get_field(&entry.name)
9401 .unwrap_or_else(|_| entry.kind.default_value());
9402 stream.write(&value)?;
9403 }
9404 Ok(())
9405 }
9406}
9407#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9408#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9409pub struct MedicDefendedEvent {
9410 pub user_id: u16,
9411 pub medic: u16,
9412}
9413impl MedicDefendedEvent {
9414 #[allow(unused_variables)]
9415 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9416 Ok(MedicDefendedEvent {
9417 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9418 medic: read_value::<u16>(stream, definition.get_entry("medic"), "medic")?,
9419 })
9420 }
9421 #[allow(unused_variables)]
9422 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9423 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9424 match field {
9425 "userid" => Ok(self.user_id.clone().into()),
9426 "medic" => Ok(self.medic.clone().into()),
9427 _ => Err(ParseError::MissingGameEventValue {
9428 ty: "MedicDefended",
9429 field: field.into(),
9430 }),
9431 }
9432 }
9433 #[allow(unused_variables)]
9434 fn write(
9435 &self,
9436 stream: &mut BitWriteStream<LittleEndian>,
9437 definition: &GameEventDefinition,
9438 ) -> Result<()> {
9439 for entry in &definition.entries {
9440 let value = self
9441 .get_field(&entry.name)
9442 .unwrap_or_else(|_| entry.kind.default_value());
9443 stream.write(&value)?;
9444 }
9445 Ok(())
9446 }
9447}
9448#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9449#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9450pub struct LocalPlayerHealedEvent {
9451 pub amount: u16,
9452}
9453impl LocalPlayerHealedEvent {
9454 #[allow(unused_variables)]
9455 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9456 Ok(LocalPlayerHealedEvent {
9457 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
9458 })
9459 }
9460 #[allow(unused_variables)]
9461 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9462 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9463 match field {
9464 "amount" => Ok(self.amount.clone().into()),
9465 _ => Err(ParseError::MissingGameEventValue {
9466 ty: "LocalPlayerHealed",
9467 field: field.into(),
9468 }),
9469 }
9470 }
9471 #[allow(unused_variables)]
9472 fn write(
9473 &self,
9474 stream: &mut BitWriteStream<LittleEndian>,
9475 definition: &GameEventDefinition,
9476 ) -> Result<()> {
9477 for entry in &definition.entries {
9478 let value = self
9479 .get_field(&entry.name)
9480 .unwrap_or_else(|_| entry.kind.default_value());
9481 stream.write(&value)?;
9482 }
9483 Ok(())
9484 }
9485}
9486#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9487#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9488pub struct PlayerDestroyedPipeBombEvent {
9489 pub user_id: u16,
9490}
9491impl PlayerDestroyedPipeBombEvent {
9492 #[allow(unused_variables)]
9493 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9494 Ok(PlayerDestroyedPipeBombEvent {
9495 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9496 })
9497 }
9498 #[allow(unused_variables)]
9499 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9500 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9501 match field {
9502 "userid" => Ok(self.user_id.clone().into()),
9503 _ => Err(ParseError::MissingGameEventValue {
9504 ty: "PlayerDestroyedPipeBomb",
9505 field: field.into(),
9506 }),
9507 }
9508 }
9509 #[allow(unused_variables)]
9510 fn write(
9511 &self,
9512 stream: &mut BitWriteStream<LittleEndian>,
9513 definition: &GameEventDefinition,
9514 ) -> Result<()> {
9515 for entry in &definition.entries {
9516 let value = self
9517 .get_field(&entry.name)
9518 .unwrap_or_else(|_| entry.kind.default_value());
9519 stream.write(&value)?;
9520 }
9521 Ok(())
9522 }
9523}
9524#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9525#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9526pub struct ObjectDeflectedEvent {
9527 pub user_id: u16,
9528 pub owner_id: u16,
9529 pub weapon_id: u16,
9530 pub object_ent_index: u16,
9531}
9532impl ObjectDeflectedEvent {
9533 #[allow(unused_variables)]
9534 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9535 Ok(ObjectDeflectedEvent {
9536 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
9537 owner_id: read_value::<u16>(stream, definition.get_entry("ownerid"), "owner_id")?,
9538 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
9539 object_ent_index: read_value::<u16>(
9540 stream,
9541 definition.get_entry("object_entindex"),
9542 "object_ent_index",
9543 )?,
9544 })
9545 }
9546 #[allow(unused_variables)]
9547 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9548 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9549 match field {
9550 "userid" => Ok(self.user_id.clone().into()),
9551 "ownerid" => Ok(self.owner_id.clone().into()),
9552 "weaponid" => Ok(self.weapon_id.clone().into()),
9553 "object_entindex" => Ok(self.object_ent_index.clone().into()),
9554 _ => Err(ParseError::MissingGameEventValue {
9555 ty: "ObjectDeflected",
9556 field: field.into(),
9557 }),
9558 }
9559 }
9560 #[allow(unused_variables)]
9561 fn write(
9562 &self,
9563 stream: &mut BitWriteStream<LittleEndian>,
9564 definition: &GameEventDefinition,
9565 ) -> Result<()> {
9566 for entry in &definition.entries {
9567 let value = self
9568 .get_field(&entry.name)
9569 .unwrap_or_else(|_| entry.kind.default_value());
9570 stream.write(&value)?;
9571 }
9572 Ok(())
9573 }
9574}
9575#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9576#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9577pub struct PlayerMvpEvent {
9578 pub player: u16,
9579}
9580impl PlayerMvpEvent {
9581 #[allow(unused_variables)]
9582 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9583 Ok(PlayerMvpEvent {
9584 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
9585 })
9586 }
9587 #[allow(unused_variables)]
9588 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9589 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9590 match field {
9591 "player" => Ok(self.player.clone().into()),
9592 _ => Err(ParseError::MissingGameEventValue {
9593 ty: "PlayerMvp",
9594 field: field.into(),
9595 }),
9596 }
9597 }
9598 #[allow(unused_variables)]
9599 fn write(
9600 &self,
9601 stream: &mut BitWriteStream<LittleEndian>,
9602 definition: &GameEventDefinition,
9603 ) -> Result<()> {
9604 for entry in &definition.entries {
9605 let value = self
9606 .get_field(&entry.name)
9607 .unwrap_or_else(|_| entry.kind.default_value());
9608 stream.write(&value)?;
9609 }
9610 Ok(())
9611 }
9612}
9613#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9614#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9615pub struct RaidSpawnMobEvent {}
9616impl RaidSpawnMobEvent {
9617 #[allow(unused_variables)]
9618 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9619 Ok(RaidSpawnMobEvent {})
9620 }
9621 #[allow(unused_variables)]
9622 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9623 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9624 match field {
9625 _ => Err(ParseError::MissingGameEventValue {
9626 ty: "RaidSpawnMob",
9627 field: field.into(),
9628 }),
9629 }
9630 }
9631 #[allow(unused_variables)]
9632 fn write(
9633 &self,
9634 stream: &mut BitWriteStream<LittleEndian>,
9635 definition: &GameEventDefinition,
9636 ) -> Result<()> {
9637 for entry in &definition.entries {
9638 let value = self
9639 .get_field(&entry.name)
9640 .unwrap_or_else(|_| entry.kind.default_value());
9641 stream.write(&value)?;
9642 }
9643 Ok(())
9644 }
9645}
9646#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9647#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9648pub struct RaidSpawnSquadEvent {}
9649impl RaidSpawnSquadEvent {
9650 #[allow(unused_variables)]
9651 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9652 Ok(RaidSpawnSquadEvent {})
9653 }
9654 #[allow(unused_variables)]
9655 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9656 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9657 match field {
9658 _ => Err(ParseError::MissingGameEventValue {
9659 ty: "RaidSpawnSquad",
9660 field: field.into(),
9661 }),
9662 }
9663 }
9664 #[allow(unused_variables)]
9665 fn write(
9666 &self,
9667 stream: &mut BitWriteStream<LittleEndian>,
9668 definition: &GameEventDefinition,
9669 ) -> Result<()> {
9670 for entry in &definition.entries {
9671 let value = self
9672 .get_field(&entry.name)
9673 .unwrap_or_else(|_| entry.kind.default_value());
9674 stream.write(&value)?;
9675 }
9676 Ok(())
9677 }
9678}
9679#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9680#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9681pub struct NavBlockedEvent {
9682 pub area: u32,
9683 pub blocked: bool,
9684}
9685impl NavBlockedEvent {
9686 #[allow(unused_variables)]
9687 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9688 Ok(NavBlockedEvent {
9689 area: read_value::<u32>(stream, definition.get_entry("area"), "area")?,
9690 blocked: read_value::<bool>(stream, definition.get_entry("blocked"), "blocked")?,
9691 })
9692 }
9693 #[allow(unused_variables)]
9694 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9695 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9696 match field {
9697 "area" => Ok(self.area.clone().into()),
9698 "blocked" => Ok(self.blocked.clone().into()),
9699 _ => Err(ParseError::MissingGameEventValue {
9700 ty: "NavBlocked",
9701 field: field.into(),
9702 }),
9703 }
9704 }
9705 #[allow(unused_variables)]
9706 fn write(
9707 &self,
9708 stream: &mut BitWriteStream<LittleEndian>,
9709 definition: &GameEventDefinition,
9710 ) -> Result<()> {
9711 for entry in &definition.entries {
9712 let value = self
9713 .get_field(&entry.name)
9714 .unwrap_or_else(|_| entry.kind.default_value());
9715 stream.write(&value)?;
9716 }
9717 Ok(())
9718 }
9719}
9720#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9721#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9722pub struct PathTrackPassedEvent {
9723 pub index: u16,
9724}
9725impl PathTrackPassedEvent {
9726 #[allow(unused_variables)]
9727 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9728 Ok(PathTrackPassedEvent {
9729 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
9730 })
9731 }
9732 #[allow(unused_variables)]
9733 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9734 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9735 match field {
9736 "index" => Ok(self.index.clone().into()),
9737 _ => Err(ParseError::MissingGameEventValue {
9738 ty: "PathTrackPassed",
9739 field: field.into(),
9740 }),
9741 }
9742 }
9743 #[allow(unused_variables)]
9744 fn write(
9745 &self,
9746 stream: &mut BitWriteStream<LittleEndian>,
9747 definition: &GameEventDefinition,
9748 ) -> Result<()> {
9749 for entry in &definition.entries {
9750 let value = self
9751 .get_field(&entry.name)
9752 .unwrap_or_else(|_| entry.kind.default_value());
9753 stream.write(&value)?;
9754 }
9755 Ok(())
9756 }
9757}
9758#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9759#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9760pub struct NumCappersChangedEvent {
9761 pub index: u16,
9762 pub count: u8,
9763}
9764impl NumCappersChangedEvent {
9765 #[allow(unused_variables)]
9766 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9767 Ok(NumCappersChangedEvent {
9768 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
9769 count: read_value::<u8>(stream, definition.get_entry("count"), "count")?,
9770 })
9771 }
9772 #[allow(unused_variables)]
9773 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9774 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9775 match field {
9776 "index" => Ok(self.index.clone().into()),
9777 "count" => Ok(self.count.clone().into()),
9778 _ => Err(ParseError::MissingGameEventValue {
9779 ty: "NumCappersChanged",
9780 field: field.into(),
9781 }),
9782 }
9783 }
9784 #[allow(unused_variables)]
9785 fn write(
9786 &self,
9787 stream: &mut BitWriteStream<LittleEndian>,
9788 definition: &GameEventDefinition,
9789 ) -> Result<()> {
9790 for entry in &definition.entries {
9791 let value = self
9792 .get_field(&entry.name)
9793 .unwrap_or_else(|_| entry.kind.default_value());
9794 stream.write(&value)?;
9795 }
9796 Ok(())
9797 }
9798}
9799#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9800#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9801pub struct PlayerRegenerateEvent {}
9802impl PlayerRegenerateEvent {
9803 #[allow(unused_variables)]
9804 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9805 Ok(PlayerRegenerateEvent {})
9806 }
9807 #[allow(unused_variables)]
9808 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9809 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9810 match field {
9811 _ => Err(ParseError::MissingGameEventValue {
9812 ty: "PlayerRegenerate",
9813 field: field.into(),
9814 }),
9815 }
9816 }
9817 #[allow(unused_variables)]
9818 fn write(
9819 &self,
9820 stream: &mut BitWriteStream<LittleEndian>,
9821 definition: &GameEventDefinition,
9822 ) -> Result<()> {
9823 for entry in &definition.entries {
9824 let value = self
9825 .get_field(&entry.name)
9826 .unwrap_or_else(|_| entry.kind.default_value());
9827 stream.write(&value)?;
9828 }
9829 Ok(())
9830 }
9831}
9832#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9833#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9834pub struct UpdateStatusItemEvent {
9835 pub index: u8,
9836 pub object: u8,
9837}
9838impl UpdateStatusItemEvent {
9839 #[allow(unused_variables)]
9840 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9841 Ok(UpdateStatusItemEvent {
9842 index: read_value::<u8>(stream, definition.get_entry("index"), "index")?,
9843 object: read_value::<u8>(stream, definition.get_entry("object"), "object")?,
9844 })
9845 }
9846 #[allow(unused_variables)]
9847 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9848 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9849 match field {
9850 "index" => Ok(self.index.clone().into()),
9851 "object" => Ok(self.object.clone().into()),
9852 _ => Err(ParseError::MissingGameEventValue {
9853 ty: "UpdateStatusItem",
9854 field: field.into(),
9855 }),
9856 }
9857 }
9858 #[allow(unused_variables)]
9859 fn write(
9860 &self,
9861 stream: &mut BitWriteStream<LittleEndian>,
9862 definition: &GameEventDefinition,
9863 ) -> Result<()> {
9864 for entry in &definition.entries {
9865 let value = self
9866 .get_field(&entry.name)
9867 .unwrap_or_else(|_| entry.kind.default_value());
9868 stream.write(&value)?;
9869 }
9870 Ok(())
9871 }
9872}
9873#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9874#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9875pub struct StatsResetRoundEvent {}
9876impl StatsResetRoundEvent {
9877 #[allow(unused_variables)]
9878 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9879 Ok(StatsResetRoundEvent {})
9880 }
9881 #[allow(unused_variables)]
9882 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9883 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9884 match field {
9885 _ => Err(ParseError::MissingGameEventValue {
9886 ty: "StatsResetRound",
9887 field: field.into(),
9888 }),
9889 }
9890 }
9891 #[allow(unused_variables)]
9892 fn write(
9893 &self,
9894 stream: &mut BitWriteStream<LittleEndian>,
9895 definition: &GameEventDefinition,
9896 ) -> Result<()> {
9897 for entry in &definition.entries {
9898 let value = self
9899 .get_field(&entry.name)
9900 .unwrap_or_else(|_| entry.kind.default_value());
9901 stream.write(&value)?;
9902 }
9903 Ok(())
9904 }
9905}
9906#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9907#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9908pub struct ScoreStatsAccumulatedUpdateEvent {}
9909impl ScoreStatsAccumulatedUpdateEvent {
9910 #[allow(unused_variables)]
9911 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9912 Ok(ScoreStatsAccumulatedUpdateEvent {})
9913 }
9914 #[allow(unused_variables)]
9915 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9916 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9917 match field {
9918 _ => Err(ParseError::MissingGameEventValue {
9919 ty: "ScoreStatsAccumulatedUpdate",
9920 field: field.into(),
9921 }),
9922 }
9923 }
9924 #[allow(unused_variables)]
9925 fn write(
9926 &self,
9927 stream: &mut BitWriteStream<LittleEndian>,
9928 definition: &GameEventDefinition,
9929 ) -> Result<()> {
9930 for entry in &definition.entries {
9931 let value = self
9932 .get_field(&entry.name)
9933 .unwrap_or_else(|_| entry.kind.default_value());
9934 stream.write(&value)?;
9935 }
9936 Ok(())
9937 }
9938}
9939#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9940#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9941pub struct ScoreStatsAccumulatedResetEvent {}
9942impl ScoreStatsAccumulatedResetEvent {
9943 #[allow(unused_variables)]
9944 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9945 Ok(ScoreStatsAccumulatedResetEvent {})
9946 }
9947 #[allow(unused_variables)]
9948 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9949 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9950 match field {
9951 _ => Err(ParseError::MissingGameEventValue {
9952 ty: "ScoreStatsAccumulatedReset",
9953 field: field.into(),
9954 }),
9955 }
9956 }
9957 #[allow(unused_variables)]
9958 fn write(
9959 &self,
9960 stream: &mut BitWriteStream<LittleEndian>,
9961 definition: &GameEventDefinition,
9962 ) -> Result<()> {
9963 for entry in &definition.entries {
9964 let value = self
9965 .get_field(&entry.name)
9966 .unwrap_or_else(|_| entry.kind.default_value());
9967 stream.write(&value)?;
9968 }
9969 Ok(())
9970 }
9971}
9972#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
9973#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
9974pub struct AchievementEarnedLocalEvent {
9975 pub achievement: u16,
9976}
9977impl AchievementEarnedLocalEvent {
9978 #[allow(unused_variables)]
9979 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
9980 Ok(AchievementEarnedLocalEvent {
9981 achievement: read_value::<u16>(
9982 stream,
9983 definition.get_entry("achievement"),
9984 "achievement",
9985 )?,
9986 })
9987 }
9988 #[allow(unused_variables)]
9989 fn get_field(&self, field: &str) -> Result<GameEventValue> {
9990 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
9991 match field {
9992 "achievement" => Ok(self.achievement.clone().into()),
9993 _ => Err(ParseError::MissingGameEventValue {
9994 ty: "AchievementEarnedLocal",
9995 field: field.into(),
9996 }),
9997 }
9998 }
9999 #[allow(unused_variables)]
10000 fn write(
10001 &self,
10002 stream: &mut BitWriteStream<LittleEndian>,
10003 definition: &GameEventDefinition,
10004 ) -> Result<()> {
10005 for entry in &definition.entries {
10006 let value = self
10007 .get_field(&entry.name)
10008 .unwrap_or_else(|_| entry.kind.default_value());
10009 stream.write(&value)?;
10010 }
10011 Ok(())
10012 }
10013}
10014#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10015#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10016pub struct PlayerHealedEvent {
10017 pub patient: u16,
10018 pub healer: u16,
10019 pub amount: u16,
10020}
10021impl PlayerHealedEvent {
10022 #[allow(unused_variables)]
10023 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10024 Ok(PlayerHealedEvent {
10025 patient: read_value::<u16>(stream, definition.get_entry("patient"), "patient")?,
10026 healer: read_value::<u16>(stream, definition.get_entry("healer"), "healer")?,
10027 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
10028 })
10029 }
10030 #[allow(unused_variables)]
10031 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10032 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10033 match field {
10034 "patient" => Ok(self.patient.clone().into()),
10035 "healer" => Ok(self.healer.clone().into()),
10036 "amount" => Ok(self.amount.clone().into()),
10037 _ => Err(ParseError::MissingGameEventValue {
10038 ty: "PlayerHealed",
10039 field: field.into(),
10040 }),
10041 }
10042 }
10043 #[allow(unused_variables)]
10044 fn write(
10045 &self,
10046 stream: &mut BitWriteStream<LittleEndian>,
10047 definition: &GameEventDefinition,
10048 ) -> Result<()> {
10049 for entry in &definition.entries {
10050 let value = self
10051 .get_field(&entry.name)
10052 .unwrap_or_else(|_| entry.kind.default_value());
10053 stream.write(&value)?;
10054 }
10055 Ok(())
10056 }
10057}
10058#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10059#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10060pub struct BuildingHealedEvent {
10061 pub building: u16,
10062 pub healer: u16,
10063 pub amount: u16,
10064}
10065impl BuildingHealedEvent {
10066 #[allow(unused_variables)]
10067 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10068 Ok(BuildingHealedEvent {
10069 building: read_value::<u16>(stream, definition.get_entry("building"), "building")?,
10070 healer: read_value::<u16>(stream, definition.get_entry("healer"), "healer")?,
10071 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
10072 })
10073 }
10074 #[allow(unused_variables)]
10075 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10076 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10077 match field {
10078 "building" => Ok(self.building.clone().into()),
10079 "healer" => Ok(self.healer.clone().into()),
10080 "amount" => Ok(self.amount.clone().into()),
10081 _ => Err(ParseError::MissingGameEventValue {
10082 ty: "BuildingHealed",
10083 field: field.into(),
10084 }),
10085 }
10086 }
10087 #[allow(unused_variables)]
10088 fn write(
10089 &self,
10090 stream: &mut BitWriteStream<LittleEndian>,
10091 definition: &GameEventDefinition,
10092 ) -> Result<()> {
10093 for entry in &definition.entries {
10094 let value = self
10095 .get_field(&entry.name)
10096 .unwrap_or_else(|_| entry.kind.default_value());
10097 stream.write(&value)?;
10098 }
10099 Ok(())
10100 }
10101}
10102#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10103#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10104pub struct ItemPickupEvent {
10105 pub user_id: u16,
10106 pub item: MaybeUtf8String,
10107}
10108impl ItemPickupEvent {
10109 #[allow(unused_variables)]
10110 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10111 Ok(ItemPickupEvent {
10112 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
10113 item: read_value::<MaybeUtf8String>(stream, definition.get_entry("item"), "item")?,
10114 })
10115 }
10116 #[allow(unused_variables)]
10117 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10118 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10119 match field {
10120 "userid" => Ok(self.user_id.clone().into()),
10121 "item" => Ok(self.item.clone().into()),
10122 _ => Err(ParseError::MissingGameEventValue {
10123 ty: "ItemPickup",
10124 field: field.into(),
10125 }),
10126 }
10127 }
10128 #[allow(unused_variables)]
10129 fn write(
10130 &self,
10131 stream: &mut BitWriteStream<LittleEndian>,
10132 definition: &GameEventDefinition,
10133 ) -> Result<()> {
10134 for entry in &definition.entries {
10135 let value = self
10136 .get_field(&entry.name)
10137 .unwrap_or_else(|_| entry.kind.default_value());
10138 stream.write(&value)?;
10139 }
10140 Ok(())
10141 }
10142}
10143#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10144#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10145pub struct DuelStatusEvent {
10146 pub killer: u16,
10147 pub score_type: u16,
10148 pub initiator: u16,
10149 pub target: u16,
10150 pub initiator_score: u16,
10151 pub target_score: u16,
10152}
10153impl DuelStatusEvent {
10154 #[allow(unused_variables)]
10155 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10156 Ok(DuelStatusEvent {
10157 killer: read_value::<u16>(stream, definition.get_entry("killer"), "killer")?,
10158 score_type: read_value::<u16>(
10159 stream,
10160 definition.get_entry("score_type"),
10161 "score_type",
10162 )?,
10163 initiator: read_value::<u16>(stream, definition.get_entry("initiator"), "initiator")?,
10164 target: read_value::<u16>(stream, definition.get_entry("target"), "target")?,
10165 initiator_score: read_value::<u16>(
10166 stream,
10167 definition.get_entry("initiator_score"),
10168 "initiator_score",
10169 )?,
10170 target_score: read_value::<u16>(
10171 stream,
10172 definition.get_entry("target_score"),
10173 "target_score",
10174 )?,
10175 })
10176 }
10177 #[allow(unused_variables)]
10178 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10179 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10180 match field {
10181 "killer" => Ok(self.killer.clone().into()),
10182 "score_type" => Ok(self.score_type.clone().into()),
10183 "initiator" => Ok(self.initiator.clone().into()),
10184 "target" => Ok(self.target.clone().into()),
10185 "initiator_score" => Ok(self.initiator_score.clone().into()),
10186 "target_score" => Ok(self.target_score.clone().into()),
10187 _ => Err(ParseError::MissingGameEventValue {
10188 ty: "DuelStatus",
10189 field: field.into(),
10190 }),
10191 }
10192 }
10193 #[allow(unused_variables)]
10194 fn write(
10195 &self,
10196 stream: &mut BitWriteStream<LittleEndian>,
10197 definition: &GameEventDefinition,
10198 ) -> Result<()> {
10199 for entry in &definition.entries {
10200 let value = self
10201 .get_field(&entry.name)
10202 .unwrap_or_else(|_| entry.kind.default_value());
10203 stream.write(&value)?;
10204 }
10205 Ok(())
10206 }
10207}
10208#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10209#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10210pub struct FishNoticeEvent {
10211 pub user_id: u16,
10212 pub victim_ent_index: u32,
10213 pub inflictor_ent_index: u32,
10214 pub attacker: u16,
10215 pub weapon: MaybeUtf8String,
10216 pub weapon_id: u16,
10217 pub damage_bits: u32,
10218 pub custom_kill: u16,
10219 pub assister: u16,
10220 pub weapon_log_class_name: MaybeUtf8String,
10221 pub stun_flags: u16,
10222 pub death_flags: u16,
10223 pub silent_kill: bool,
10224 pub assister_fallback: MaybeUtf8String,
10225}
10226impl FishNoticeEvent {
10227 #[allow(unused_variables)]
10228 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10229 Ok(FishNoticeEvent {
10230 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
10231 victim_ent_index: read_value::<u32>(
10232 stream,
10233 definition.get_entry("victim_entindex"),
10234 "victim_ent_index",
10235 )?,
10236 inflictor_ent_index: read_value::<u32>(
10237 stream,
10238 definition.get_entry("inflictor_entindex"),
10239 "inflictor_ent_index",
10240 )?,
10241 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
10242 weapon: read_value::<MaybeUtf8String>(
10243 stream,
10244 definition.get_entry("weapon"),
10245 "weapon",
10246 )?,
10247 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
10248 damage_bits: read_value::<u32>(
10249 stream,
10250 definition.get_entry("damagebits"),
10251 "damage_bits",
10252 )?,
10253 custom_kill: read_value::<u16>(
10254 stream,
10255 definition.get_entry("customkill"),
10256 "custom_kill",
10257 )?,
10258 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
10259 weapon_log_class_name: read_value::<MaybeUtf8String>(
10260 stream,
10261 definition.get_entry("weapon_logclassname"),
10262 "weapon_log_class_name",
10263 )?,
10264 stun_flags: read_value::<u16>(
10265 stream,
10266 definition.get_entry("stun_flags"),
10267 "stun_flags",
10268 )?,
10269 death_flags: read_value::<u16>(
10270 stream,
10271 definition.get_entry("death_flags"),
10272 "death_flags",
10273 )?,
10274 silent_kill: read_value::<bool>(
10275 stream,
10276 definition.get_entry("silent_kill"),
10277 "silent_kill",
10278 )?,
10279 assister_fallback: read_value::<MaybeUtf8String>(
10280 stream,
10281 definition.get_entry("assister_fallback"),
10282 "assister_fallback",
10283 )?,
10284 })
10285 }
10286 #[allow(unused_variables)]
10287 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10288 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10289 match field {
10290 "userid" => Ok(self.user_id.clone().into()),
10291 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
10292 "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()),
10293 "attacker" => Ok(self.attacker.clone().into()),
10294 "weapon" => Ok(self.weapon.clone().into()),
10295 "weaponid" => Ok(self.weapon_id.clone().into()),
10296 "damagebits" => Ok(self.damage_bits.clone().into()),
10297 "customkill" => Ok(self.custom_kill.clone().into()),
10298 "assister" => Ok(self.assister.clone().into()),
10299 "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()),
10300 "stun_flags" => Ok(self.stun_flags.clone().into()),
10301 "death_flags" => Ok(self.death_flags.clone().into()),
10302 "silent_kill" => Ok(self.silent_kill.clone().into()),
10303 "assister_fallback" => Ok(self.assister_fallback.clone().into()),
10304 _ => Err(ParseError::MissingGameEventValue {
10305 ty: "FishNotice",
10306 field: field.into(),
10307 }),
10308 }
10309 }
10310 #[allow(unused_variables)]
10311 fn write(
10312 &self,
10313 stream: &mut BitWriteStream<LittleEndian>,
10314 definition: &GameEventDefinition,
10315 ) -> Result<()> {
10316 for entry in &definition.entries {
10317 let value = self
10318 .get_field(&entry.name)
10319 .unwrap_or_else(|_| entry.kind.default_value());
10320 stream.write(&value)?;
10321 }
10322 Ok(())
10323 }
10324}
10325#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10326#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10327pub struct FishNoticeArmEvent {
10328 pub user_id: u16,
10329 pub victim_ent_index: u32,
10330 pub inflictor_ent_index: u32,
10331 pub attacker: u16,
10332 pub weapon: MaybeUtf8String,
10333 pub weapon_id: u16,
10334 pub damage_bits: u32,
10335 pub custom_kill: u16,
10336 pub assister: u16,
10337 pub weapon_log_class_name: MaybeUtf8String,
10338 pub stun_flags: u16,
10339 pub death_flags: u16,
10340 pub silent_kill: bool,
10341 pub assister_fallback: MaybeUtf8String,
10342}
10343impl FishNoticeArmEvent {
10344 #[allow(unused_variables)]
10345 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10346 Ok(FishNoticeArmEvent {
10347 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
10348 victim_ent_index: read_value::<u32>(
10349 stream,
10350 definition.get_entry("victim_entindex"),
10351 "victim_ent_index",
10352 )?,
10353 inflictor_ent_index: read_value::<u32>(
10354 stream,
10355 definition.get_entry("inflictor_entindex"),
10356 "inflictor_ent_index",
10357 )?,
10358 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
10359 weapon: read_value::<MaybeUtf8String>(
10360 stream,
10361 definition.get_entry("weapon"),
10362 "weapon",
10363 )?,
10364 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
10365 damage_bits: read_value::<u32>(
10366 stream,
10367 definition.get_entry("damagebits"),
10368 "damage_bits",
10369 )?,
10370 custom_kill: read_value::<u16>(
10371 stream,
10372 definition.get_entry("customkill"),
10373 "custom_kill",
10374 )?,
10375 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
10376 weapon_log_class_name: read_value::<MaybeUtf8String>(
10377 stream,
10378 definition.get_entry("weapon_logclassname"),
10379 "weapon_log_class_name",
10380 )?,
10381 stun_flags: read_value::<u16>(
10382 stream,
10383 definition.get_entry("stun_flags"),
10384 "stun_flags",
10385 )?,
10386 death_flags: read_value::<u16>(
10387 stream,
10388 definition.get_entry("death_flags"),
10389 "death_flags",
10390 )?,
10391 silent_kill: read_value::<bool>(
10392 stream,
10393 definition.get_entry("silent_kill"),
10394 "silent_kill",
10395 )?,
10396 assister_fallback: read_value::<MaybeUtf8String>(
10397 stream,
10398 definition.get_entry("assister_fallback"),
10399 "assister_fallback",
10400 )?,
10401 })
10402 }
10403 #[allow(unused_variables)]
10404 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10405 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10406 match field {
10407 "userid" => Ok(self.user_id.clone().into()),
10408 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
10409 "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()),
10410 "attacker" => Ok(self.attacker.clone().into()),
10411 "weapon" => Ok(self.weapon.clone().into()),
10412 "weaponid" => Ok(self.weapon_id.clone().into()),
10413 "damagebits" => Ok(self.damage_bits.clone().into()),
10414 "customkill" => Ok(self.custom_kill.clone().into()),
10415 "assister" => Ok(self.assister.clone().into()),
10416 "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()),
10417 "stun_flags" => Ok(self.stun_flags.clone().into()),
10418 "death_flags" => Ok(self.death_flags.clone().into()),
10419 "silent_kill" => Ok(self.silent_kill.clone().into()),
10420 "assister_fallback" => Ok(self.assister_fallback.clone().into()),
10421 _ => Err(ParseError::MissingGameEventValue {
10422 ty: "FishNoticeArm",
10423 field: field.into(),
10424 }),
10425 }
10426 }
10427 #[allow(unused_variables)]
10428 fn write(
10429 &self,
10430 stream: &mut BitWriteStream<LittleEndian>,
10431 definition: &GameEventDefinition,
10432 ) -> Result<()> {
10433 for entry in &definition.entries {
10434 let value = self
10435 .get_field(&entry.name)
10436 .unwrap_or_else(|_| entry.kind.default_value());
10437 stream.write(&value)?;
10438 }
10439 Ok(())
10440 }
10441}
10442#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10443#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10444pub struct SlapNoticeEvent {
10445 pub user_id: u16,
10446 pub victim_ent_index: u32,
10447 pub inflictor_ent_index: u32,
10448 pub attacker: u16,
10449 pub weapon: MaybeUtf8String,
10450 pub weapon_id: u16,
10451 pub damage_bits: u32,
10452 pub custom_kill: u16,
10453 pub assister: u16,
10454 pub weapon_log_class_name: MaybeUtf8String,
10455 pub stun_flags: u16,
10456 pub death_flags: u16,
10457 pub silent_kill: bool,
10458 pub assister_fallback: MaybeUtf8String,
10459}
10460impl SlapNoticeEvent {
10461 #[allow(unused_variables)]
10462 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10463 Ok(SlapNoticeEvent {
10464 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
10465 victim_ent_index: read_value::<u32>(
10466 stream,
10467 definition.get_entry("victim_entindex"),
10468 "victim_ent_index",
10469 )?,
10470 inflictor_ent_index: read_value::<u32>(
10471 stream,
10472 definition.get_entry("inflictor_entindex"),
10473 "inflictor_ent_index",
10474 )?,
10475 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
10476 weapon: read_value::<MaybeUtf8String>(
10477 stream,
10478 definition.get_entry("weapon"),
10479 "weapon",
10480 )?,
10481 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
10482 damage_bits: read_value::<u32>(
10483 stream,
10484 definition.get_entry("damagebits"),
10485 "damage_bits",
10486 )?,
10487 custom_kill: read_value::<u16>(
10488 stream,
10489 definition.get_entry("customkill"),
10490 "custom_kill",
10491 )?,
10492 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
10493 weapon_log_class_name: read_value::<MaybeUtf8String>(
10494 stream,
10495 definition.get_entry("weapon_logclassname"),
10496 "weapon_log_class_name",
10497 )?,
10498 stun_flags: read_value::<u16>(
10499 stream,
10500 definition.get_entry("stun_flags"),
10501 "stun_flags",
10502 )?,
10503 death_flags: read_value::<u16>(
10504 stream,
10505 definition.get_entry("death_flags"),
10506 "death_flags",
10507 )?,
10508 silent_kill: read_value::<bool>(
10509 stream,
10510 definition.get_entry("silent_kill"),
10511 "silent_kill",
10512 )?,
10513 assister_fallback: read_value::<MaybeUtf8String>(
10514 stream,
10515 definition.get_entry("assister_fallback"),
10516 "assister_fallback",
10517 )?,
10518 })
10519 }
10520 #[allow(unused_variables)]
10521 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10522 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10523 match field {
10524 "userid" => Ok(self.user_id.clone().into()),
10525 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
10526 "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()),
10527 "attacker" => Ok(self.attacker.clone().into()),
10528 "weapon" => Ok(self.weapon.clone().into()),
10529 "weaponid" => Ok(self.weapon_id.clone().into()),
10530 "damagebits" => Ok(self.damage_bits.clone().into()),
10531 "customkill" => Ok(self.custom_kill.clone().into()),
10532 "assister" => Ok(self.assister.clone().into()),
10533 "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()),
10534 "stun_flags" => Ok(self.stun_flags.clone().into()),
10535 "death_flags" => Ok(self.death_flags.clone().into()),
10536 "silent_kill" => Ok(self.silent_kill.clone().into()),
10537 "assister_fallback" => Ok(self.assister_fallback.clone().into()),
10538 _ => Err(ParseError::MissingGameEventValue {
10539 ty: "SlapNotice",
10540 field: field.into(),
10541 }),
10542 }
10543 }
10544 #[allow(unused_variables)]
10545 fn write(
10546 &self,
10547 stream: &mut BitWriteStream<LittleEndian>,
10548 definition: &GameEventDefinition,
10549 ) -> Result<()> {
10550 for entry in &definition.entries {
10551 let value = self
10552 .get_field(&entry.name)
10553 .unwrap_or_else(|_| entry.kind.default_value());
10554 stream.write(&value)?;
10555 }
10556 Ok(())
10557 }
10558}
10559#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10560#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10561pub struct ThrowableHitEvent {
10562 pub user_id: u16,
10563 pub victim_ent_index: u32,
10564 pub inflictor_ent_index: u32,
10565 pub attacker: u16,
10566 pub weapon: MaybeUtf8String,
10567 pub weapon_id: u16,
10568 pub damage_bits: u32,
10569 pub custom_kill: u16,
10570 pub assister: u16,
10571 pub weapon_log_class_name: MaybeUtf8String,
10572 pub stun_flags: u16,
10573 pub death_flags: u16,
10574 pub silent_kill: bool,
10575 pub assister_fallback: MaybeUtf8String,
10576 pub total_hits: u16,
10577}
10578impl ThrowableHitEvent {
10579 #[allow(unused_variables)]
10580 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10581 Ok(ThrowableHitEvent {
10582 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
10583 victim_ent_index: read_value::<u32>(
10584 stream,
10585 definition.get_entry("victim_entindex"),
10586 "victim_ent_index",
10587 )?,
10588 inflictor_ent_index: read_value::<u32>(
10589 stream,
10590 definition.get_entry("inflictor_entindex"),
10591 "inflictor_ent_index",
10592 )?,
10593 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
10594 weapon: read_value::<MaybeUtf8String>(
10595 stream,
10596 definition.get_entry("weapon"),
10597 "weapon",
10598 )?,
10599 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
10600 damage_bits: read_value::<u32>(
10601 stream,
10602 definition.get_entry("damagebits"),
10603 "damage_bits",
10604 )?,
10605 custom_kill: read_value::<u16>(
10606 stream,
10607 definition.get_entry("customkill"),
10608 "custom_kill",
10609 )?,
10610 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
10611 weapon_log_class_name: read_value::<MaybeUtf8String>(
10612 stream,
10613 definition.get_entry("weapon_logclassname"),
10614 "weapon_log_class_name",
10615 )?,
10616 stun_flags: read_value::<u16>(
10617 stream,
10618 definition.get_entry("stun_flags"),
10619 "stun_flags",
10620 )?,
10621 death_flags: read_value::<u16>(
10622 stream,
10623 definition.get_entry("death_flags"),
10624 "death_flags",
10625 )?,
10626 silent_kill: read_value::<bool>(
10627 stream,
10628 definition.get_entry("silent_kill"),
10629 "silent_kill",
10630 )?,
10631 assister_fallback: read_value::<MaybeUtf8String>(
10632 stream,
10633 definition.get_entry("assister_fallback"),
10634 "assister_fallback",
10635 )?,
10636 total_hits: read_value::<u16>(stream, definition.get_entry("totalhits"), "total_hits")?,
10637 })
10638 }
10639 #[allow(unused_variables)]
10640 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10641 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10642 match field {
10643 "userid" => Ok(self.user_id.clone().into()),
10644 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
10645 "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()),
10646 "attacker" => Ok(self.attacker.clone().into()),
10647 "weapon" => Ok(self.weapon.clone().into()),
10648 "weaponid" => Ok(self.weapon_id.clone().into()),
10649 "damagebits" => Ok(self.damage_bits.clone().into()),
10650 "customkill" => Ok(self.custom_kill.clone().into()),
10651 "assister" => Ok(self.assister.clone().into()),
10652 "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()),
10653 "stun_flags" => Ok(self.stun_flags.clone().into()),
10654 "death_flags" => Ok(self.death_flags.clone().into()),
10655 "silent_kill" => Ok(self.silent_kill.clone().into()),
10656 "assister_fallback" => Ok(self.assister_fallback.clone().into()),
10657 "totalhits" => Ok(self.total_hits.clone().into()),
10658 _ => Err(ParseError::MissingGameEventValue {
10659 ty: "ThrowableHit",
10660 field: field.into(),
10661 }),
10662 }
10663 }
10664 #[allow(unused_variables)]
10665 fn write(
10666 &self,
10667 stream: &mut BitWriteStream<LittleEndian>,
10668 definition: &GameEventDefinition,
10669 ) -> Result<()> {
10670 for entry in &definition.entries {
10671 let value = self
10672 .get_field(&entry.name)
10673 .unwrap_or_else(|_| entry.kind.default_value());
10674 stream.write(&value)?;
10675 }
10676 Ok(())
10677 }
10678}
10679#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10680#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10681pub struct PumpkinLordSummonedEvent {}
10682impl PumpkinLordSummonedEvent {
10683 #[allow(unused_variables)]
10684 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10685 Ok(PumpkinLordSummonedEvent {})
10686 }
10687 #[allow(unused_variables)]
10688 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10689 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10690 match field {
10691 _ => Err(ParseError::MissingGameEventValue {
10692 ty: "PumpkinLordSummoned",
10693 field: field.into(),
10694 }),
10695 }
10696 }
10697 #[allow(unused_variables)]
10698 fn write(
10699 &self,
10700 stream: &mut BitWriteStream<LittleEndian>,
10701 definition: &GameEventDefinition,
10702 ) -> Result<()> {
10703 for entry in &definition.entries {
10704 let value = self
10705 .get_field(&entry.name)
10706 .unwrap_or_else(|_| entry.kind.default_value());
10707 stream.write(&value)?;
10708 }
10709 Ok(())
10710 }
10711}
10712#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10713#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10714pub struct PumpkinLordKilledEvent {}
10715impl PumpkinLordKilledEvent {
10716 #[allow(unused_variables)]
10717 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10718 Ok(PumpkinLordKilledEvent {})
10719 }
10720 #[allow(unused_variables)]
10721 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10722 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10723 match field {
10724 _ => Err(ParseError::MissingGameEventValue {
10725 ty: "PumpkinLordKilled",
10726 field: field.into(),
10727 }),
10728 }
10729 }
10730 #[allow(unused_variables)]
10731 fn write(
10732 &self,
10733 stream: &mut BitWriteStream<LittleEndian>,
10734 definition: &GameEventDefinition,
10735 ) -> Result<()> {
10736 for entry in &definition.entries {
10737 let value = self
10738 .get_field(&entry.name)
10739 .unwrap_or_else(|_| entry.kind.default_value());
10740 stream.write(&value)?;
10741 }
10742 Ok(())
10743 }
10744}
10745#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10746#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10747pub struct MerasmusSummonedEvent {
10748 pub level: u16,
10749}
10750impl MerasmusSummonedEvent {
10751 #[allow(unused_variables)]
10752 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10753 Ok(MerasmusSummonedEvent {
10754 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10755 })
10756 }
10757 #[allow(unused_variables)]
10758 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10759 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10760 match field {
10761 "level" => Ok(self.level.clone().into()),
10762 _ => Err(ParseError::MissingGameEventValue {
10763 ty: "MerasmusSummoned",
10764 field: field.into(),
10765 }),
10766 }
10767 }
10768 #[allow(unused_variables)]
10769 fn write(
10770 &self,
10771 stream: &mut BitWriteStream<LittleEndian>,
10772 definition: &GameEventDefinition,
10773 ) -> Result<()> {
10774 for entry in &definition.entries {
10775 let value = self
10776 .get_field(&entry.name)
10777 .unwrap_or_else(|_| entry.kind.default_value());
10778 stream.write(&value)?;
10779 }
10780 Ok(())
10781 }
10782}
10783#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10784#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10785pub struct MerasmusKilledEvent {
10786 pub level: u16,
10787}
10788impl MerasmusKilledEvent {
10789 #[allow(unused_variables)]
10790 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10791 Ok(MerasmusKilledEvent {
10792 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10793 })
10794 }
10795 #[allow(unused_variables)]
10796 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10797 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10798 match field {
10799 "level" => Ok(self.level.clone().into()),
10800 _ => Err(ParseError::MissingGameEventValue {
10801 ty: "MerasmusKilled",
10802 field: field.into(),
10803 }),
10804 }
10805 }
10806 #[allow(unused_variables)]
10807 fn write(
10808 &self,
10809 stream: &mut BitWriteStream<LittleEndian>,
10810 definition: &GameEventDefinition,
10811 ) -> Result<()> {
10812 for entry in &definition.entries {
10813 let value = self
10814 .get_field(&entry.name)
10815 .unwrap_or_else(|_| entry.kind.default_value());
10816 stream.write(&value)?;
10817 }
10818 Ok(())
10819 }
10820}
10821#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10822#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10823pub struct MerasmusEscapeWarningEvent {
10824 pub level: u16,
10825 pub time_remaining: u8,
10826}
10827impl MerasmusEscapeWarningEvent {
10828 #[allow(unused_variables)]
10829 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10830 Ok(MerasmusEscapeWarningEvent {
10831 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10832 time_remaining: read_value::<u8>(
10833 stream,
10834 definition.get_entry("time_remaining"),
10835 "time_remaining",
10836 )?,
10837 })
10838 }
10839 #[allow(unused_variables)]
10840 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10841 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10842 match field {
10843 "level" => Ok(self.level.clone().into()),
10844 "time_remaining" => Ok(self.time_remaining.clone().into()),
10845 _ => Err(ParseError::MissingGameEventValue {
10846 ty: "MerasmusEscapeWarning",
10847 field: field.into(),
10848 }),
10849 }
10850 }
10851 #[allow(unused_variables)]
10852 fn write(
10853 &self,
10854 stream: &mut BitWriteStream<LittleEndian>,
10855 definition: &GameEventDefinition,
10856 ) -> Result<()> {
10857 for entry in &definition.entries {
10858 let value = self
10859 .get_field(&entry.name)
10860 .unwrap_or_else(|_| entry.kind.default_value());
10861 stream.write(&value)?;
10862 }
10863 Ok(())
10864 }
10865}
10866#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10867#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10868pub struct MerasmusEscapedEvent {
10869 pub level: u16,
10870}
10871impl MerasmusEscapedEvent {
10872 #[allow(unused_variables)]
10873 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10874 Ok(MerasmusEscapedEvent {
10875 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10876 })
10877 }
10878 #[allow(unused_variables)]
10879 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10880 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10881 match field {
10882 "level" => Ok(self.level.clone().into()),
10883 _ => Err(ParseError::MissingGameEventValue {
10884 ty: "MerasmusEscaped",
10885 field: field.into(),
10886 }),
10887 }
10888 }
10889 #[allow(unused_variables)]
10890 fn write(
10891 &self,
10892 stream: &mut BitWriteStream<LittleEndian>,
10893 definition: &GameEventDefinition,
10894 ) -> Result<()> {
10895 for entry in &definition.entries {
10896 let value = self
10897 .get_field(&entry.name)
10898 .unwrap_or_else(|_| entry.kind.default_value());
10899 stream.write(&value)?;
10900 }
10901 Ok(())
10902 }
10903}
10904#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10905#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10906pub struct EyeballBossSummonedEvent {
10907 pub level: u16,
10908}
10909impl EyeballBossSummonedEvent {
10910 #[allow(unused_variables)]
10911 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10912 Ok(EyeballBossSummonedEvent {
10913 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10914 })
10915 }
10916 #[allow(unused_variables)]
10917 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10918 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10919 match field {
10920 "level" => Ok(self.level.clone().into()),
10921 _ => Err(ParseError::MissingGameEventValue {
10922 ty: "EyeballBossSummoned",
10923 field: field.into(),
10924 }),
10925 }
10926 }
10927 #[allow(unused_variables)]
10928 fn write(
10929 &self,
10930 stream: &mut BitWriteStream<LittleEndian>,
10931 definition: &GameEventDefinition,
10932 ) -> Result<()> {
10933 for entry in &definition.entries {
10934 let value = self
10935 .get_field(&entry.name)
10936 .unwrap_or_else(|_| entry.kind.default_value());
10937 stream.write(&value)?;
10938 }
10939 Ok(())
10940 }
10941}
10942#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10943#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10944pub struct EyeballBossStunnedEvent {
10945 pub level: u16,
10946 pub player_ent_index: u8,
10947}
10948impl EyeballBossStunnedEvent {
10949 #[allow(unused_variables)]
10950 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10951 Ok(EyeballBossStunnedEvent {
10952 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10953 player_ent_index: read_value::<u8>(
10954 stream,
10955 definition.get_entry("player_entindex"),
10956 "player_ent_index",
10957 )?,
10958 })
10959 }
10960 #[allow(unused_variables)]
10961 fn get_field(&self, field: &str) -> Result<GameEventValue> {
10962 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
10963 match field {
10964 "level" => Ok(self.level.clone().into()),
10965 "player_entindex" => Ok(self.player_ent_index.clone().into()),
10966 _ => Err(ParseError::MissingGameEventValue {
10967 ty: "EyeballBossStunned",
10968 field: field.into(),
10969 }),
10970 }
10971 }
10972 #[allow(unused_variables)]
10973 fn write(
10974 &self,
10975 stream: &mut BitWriteStream<LittleEndian>,
10976 definition: &GameEventDefinition,
10977 ) -> Result<()> {
10978 for entry in &definition.entries {
10979 let value = self
10980 .get_field(&entry.name)
10981 .unwrap_or_else(|_| entry.kind.default_value());
10982 stream.write(&value)?;
10983 }
10984 Ok(())
10985 }
10986}
10987#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
10988#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
10989pub struct EyeballBossKilledEvent {
10990 pub level: u16,
10991}
10992impl EyeballBossKilledEvent {
10993 #[allow(unused_variables)]
10994 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
10995 Ok(EyeballBossKilledEvent {
10996 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
10997 })
10998 }
10999 #[allow(unused_variables)]
11000 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11001 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11002 match field {
11003 "level" => Ok(self.level.clone().into()),
11004 _ => Err(ParseError::MissingGameEventValue {
11005 ty: "EyeballBossKilled",
11006 field: field.into(),
11007 }),
11008 }
11009 }
11010 #[allow(unused_variables)]
11011 fn write(
11012 &self,
11013 stream: &mut BitWriteStream<LittleEndian>,
11014 definition: &GameEventDefinition,
11015 ) -> Result<()> {
11016 for entry in &definition.entries {
11017 let value = self
11018 .get_field(&entry.name)
11019 .unwrap_or_else(|_| entry.kind.default_value());
11020 stream.write(&value)?;
11021 }
11022 Ok(())
11023 }
11024}
11025#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11026#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11027pub struct EyeballBossKillerEvent {
11028 pub level: u16,
11029 pub player_ent_index: u8,
11030}
11031impl EyeballBossKillerEvent {
11032 #[allow(unused_variables)]
11033 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11034 Ok(EyeballBossKillerEvent {
11035 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
11036 player_ent_index: read_value::<u8>(
11037 stream,
11038 definition.get_entry("player_entindex"),
11039 "player_ent_index",
11040 )?,
11041 })
11042 }
11043 #[allow(unused_variables)]
11044 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11045 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11046 match field {
11047 "level" => Ok(self.level.clone().into()),
11048 "player_entindex" => Ok(self.player_ent_index.clone().into()),
11049 _ => Err(ParseError::MissingGameEventValue {
11050 ty: "EyeballBossKiller",
11051 field: field.into(),
11052 }),
11053 }
11054 }
11055 #[allow(unused_variables)]
11056 fn write(
11057 &self,
11058 stream: &mut BitWriteStream<LittleEndian>,
11059 definition: &GameEventDefinition,
11060 ) -> Result<()> {
11061 for entry in &definition.entries {
11062 let value = self
11063 .get_field(&entry.name)
11064 .unwrap_or_else(|_| entry.kind.default_value());
11065 stream.write(&value)?;
11066 }
11067 Ok(())
11068 }
11069}
11070#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11071#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11072pub struct EyeballBossEscapeImminentEvent {
11073 pub level: u16,
11074 pub time_remaining: u8,
11075}
11076impl EyeballBossEscapeImminentEvent {
11077 #[allow(unused_variables)]
11078 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11079 Ok(EyeballBossEscapeImminentEvent {
11080 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
11081 time_remaining: read_value::<u8>(
11082 stream,
11083 definition.get_entry("time_remaining"),
11084 "time_remaining",
11085 )?,
11086 })
11087 }
11088 #[allow(unused_variables)]
11089 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11090 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11091 match field {
11092 "level" => Ok(self.level.clone().into()),
11093 "time_remaining" => Ok(self.time_remaining.clone().into()),
11094 _ => Err(ParseError::MissingGameEventValue {
11095 ty: "EyeballBossEscapeImminent",
11096 field: field.into(),
11097 }),
11098 }
11099 }
11100 #[allow(unused_variables)]
11101 fn write(
11102 &self,
11103 stream: &mut BitWriteStream<LittleEndian>,
11104 definition: &GameEventDefinition,
11105 ) -> Result<()> {
11106 for entry in &definition.entries {
11107 let value = self
11108 .get_field(&entry.name)
11109 .unwrap_or_else(|_| entry.kind.default_value());
11110 stream.write(&value)?;
11111 }
11112 Ok(())
11113 }
11114}
11115#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11116#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11117pub struct EyeballBossEscapedEvent {
11118 pub level: u16,
11119}
11120impl EyeballBossEscapedEvent {
11121 #[allow(unused_variables)]
11122 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11123 Ok(EyeballBossEscapedEvent {
11124 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
11125 })
11126 }
11127 #[allow(unused_variables)]
11128 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11129 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11130 match field {
11131 "level" => Ok(self.level.clone().into()),
11132 _ => Err(ParseError::MissingGameEventValue {
11133 ty: "EyeballBossEscaped",
11134 field: field.into(),
11135 }),
11136 }
11137 }
11138 #[allow(unused_variables)]
11139 fn write(
11140 &self,
11141 stream: &mut BitWriteStream<LittleEndian>,
11142 definition: &GameEventDefinition,
11143 ) -> Result<()> {
11144 for entry in &definition.entries {
11145 let value = self
11146 .get_field(&entry.name)
11147 .unwrap_or_else(|_| entry.kind.default_value());
11148 stream.write(&value)?;
11149 }
11150 Ok(())
11151 }
11152}
11153#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11154#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11155pub struct NpcHurtEvent {
11156 pub ent_index: u16,
11157 pub health: u16,
11158 pub attacker_player: u16,
11159 pub weapon_id: u16,
11160 pub damage_amount: u16,
11161 pub crit: bool,
11162 pub boss: u16,
11163}
11164impl NpcHurtEvent {
11165 #[allow(unused_variables)]
11166 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11167 Ok(NpcHurtEvent {
11168 ent_index: read_value::<u16>(stream, definition.get_entry("entindex"), "ent_index")?,
11169 health: read_value::<u16>(stream, definition.get_entry("health"), "health")?,
11170 attacker_player: read_value::<u16>(
11171 stream,
11172 definition.get_entry("attacker_player"),
11173 "attacker_player",
11174 )?,
11175 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
11176 damage_amount: read_value::<u16>(
11177 stream,
11178 definition.get_entry("damageamount"),
11179 "damage_amount",
11180 )?,
11181 crit: read_value::<bool>(stream, definition.get_entry("crit"), "crit")?,
11182 boss: read_value::<u16>(stream, definition.get_entry("boss"), "boss")?,
11183 })
11184 }
11185 #[allow(unused_variables)]
11186 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11187 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11188 match field {
11189 "entindex" => Ok(self.ent_index.clone().into()),
11190 "health" => Ok(self.health.clone().into()),
11191 "attacker_player" => Ok(self.attacker_player.clone().into()),
11192 "weaponid" => Ok(self.weapon_id.clone().into()),
11193 "damageamount" => Ok(self.damage_amount.clone().into()),
11194 "crit" => Ok(self.crit.clone().into()),
11195 "boss" => Ok(self.boss.clone().into()),
11196 _ => Err(ParseError::MissingGameEventValue {
11197 ty: "NpcHurt",
11198 field: field.into(),
11199 }),
11200 }
11201 }
11202 #[allow(unused_variables)]
11203 fn write(
11204 &self,
11205 stream: &mut BitWriteStream<LittleEndian>,
11206 definition: &GameEventDefinition,
11207 ) -> Result<()> {
11208 for entry in &definition.entries {
11209 let value = self
11210 .get_field(&entry.name)
11211 .unwrap_or_else(|_| entry.kind.default_value());
11212 stream.write(&value)?;
11213 }
11214 Ok(())
11215 }
11216}
11217#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11218#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11219pub struct ControlPointTimerUpdatedEvent {
11220 pub index: u16,
11221 pub time: f32,
11222}
11223impl ControlPointTimerUpdatedEvent {
11224 #[allow(unused_variables)]
11225 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11226 Ok(ControlPointTimerUpdatedEvent {
11227 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
11228 time: read_value::<f32>(stream, definition.get_entry("time"), "time")?,
11229 })
11230 }
11231 #[allow(unused_variables)]
11232 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11233 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11234 match field {
11235 "index" => Ok(self.index.clone().into()),
11236 "time" => Ok(self.time.clone().into()),
11237 _ => Err(ParseError::MissingGameEventValue {
11238 ty: "ControlPointTimerUpdated",
11239 field: field.into(),
11240 }),
11241 }
11242 }
11243 #[allow(unused_variables)]
11244 fn write(
11245 &self,
11246 stream: &mut BitWriteStream<LittleEndian>,
11247 definition: &GameEventDefinition,
11248 ) -> Result<()> {
11249 for entry in &definition.entries {
11250 let value = self
11251 .get_field(&entry.name)
11252 .unwrap_or_else(|_| entry.kind.default_value());
11253 stream.write(&value)?;
11254 }
11255 Ok(())
11256 }
11257}
11258#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11259#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11260pub struct PlayerHighFiveStartEvent {
11261 pub ent_index: u8,
11262}
11263impl PlayerHighFiveStartEvent {
11264 #[allow(unused_variables)]
11265 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11266 Ok(PlayerHighFiveStartEvent {
11267 ent_index: read_value::<u8>(stream, definition.get_entry("entindex"), "ent_index")?,
11268 })
11269 }
11270 #[allow(unused_variables)]
11271 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11272 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11273 match field {
11274 "entindex" => Ok(self.ent_index.clone().into()),
11275 _ => Err(ParseError::MissingGameEventValue {
11276 ty: "PlayerHighFiveStart",
11277 field: field.into(),
11278 }),
11279 }
11280 }
11281 #[allow(unused_variables)]
11282 fn write(
11283 &self,
11284 stream: &mut BitWriteStream<LittleEndian>,
11285 definition: &GameEventDefinition,
11286 ) -> Result<()> {
11287 for entry in &definition.entries {
11288 let value = self
11289 .get_field(&entry.name)
11290 .unwrap_or_else(|_| entry.kind.default_value());
11291 stream.write(&value)?;
11292 }
11293 Ok(())
11294 }
11295}
11296#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11297#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11298pub struct PlayerHighFiveCancelEvent {
11299 pub ent_index: u8,
11300}
11301impl PlayerHighFiveCancelEvent {
11302 #[allow(unused_variables)]
11303 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11304 Ok(PlayerHighFiveCancelEvent {
11305 ent_index: read_value::<u8>(stream, definition.get_entry("entindex"), "ent_index")?,
11306 })
11307 }
11308 #[allow(unused_variables)]
11309 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11310 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11311 match field {
11312 "entindex" => Ok(self.ent_index.clone().into()),
11313 _ => Err(ParseError::MissingGameEventValue {
11314 ty: "PlayerHighFiveCancel",
11315 field: field.into(),
11316 }),
11317 }
11318 }
11319 #[allow(unused_variables)]
11320 fn write(
11321 &self,
11322 stream: &mut BitWriteStream<LittleEndian>,
11323 definition: &GameEventDefinition,
11324 ) -> Result<()> {
11325 for entry in &definition.entries {
11326 let value = self
11327 .get_field(&entry.name)
11328 .unwrap_or_else(|_| entry.kind.default_value());
11329 stream.write(&value)?;
11330 }
11331 Ok(())
11332 }
11333}
11334#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11335#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11336pub struct PlayerHighFiveSuccessEvent {
11337 pub initiator_ent_index: u8,
11338 pub partner_ent_index: u8,
11339}
11340impl PlayerHighFiveSuccessEvent {
11341 #[allow(unused_variables)]
11342 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11343 Ok(PlayerHighFiveSuccessEvent {
11344 initiator_ent_index: read_value::<u8>(
11345 stream,
11346 definition.get_entry("initiator_entindex"),
11347 "initiator_ent_index",
11348 )?,
11349 partner_ent_index: read_value::<u8>(
11350 stream,
11351 definition.get_entry("partner_entindex"),
11352 "partner_ent_index",
11353 )?,
11354 })
11355 }
11356 #[allow(unused_variables)]
11357 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11358 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11359 match field {
11360 "initiator_entindex" => Ok(self.initiator_ent_index.clone().into()),
11361 "partner_entindex" => Ok(self.partner_ent_index.clone().into()),
11362 _ => Err(ParseError::MissingGameEventValue {
11363 ty: "PlayerHighFiveSuccess",
11364 field: field.into(),
11365 }),
11366 }
11367 }
11368 #[allow(unused_variables)]
11369 fn write(
11370 &self,
11371 stream: &mut BitWriteStream<LittleEndian>,
11372 definition: &GameEventDefinition,
11373 ) -> Result<()> {
11374 for entry in &definition.entries {
11375 let value = self
11376 .get_field(&entry.name)
11377 .unwrap_or_else(|_| entry.kind.default_value());
11378 stream.write(&value)?;
11379 }
11380 Ok(())
11381 }
11382}
11383#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11384#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11385pub struct PlayerBonusPointsEvent {
11386 pub points: u16,
11387 pub player_ent_index: u16,
11388 pub source_ent_index: u16,
11389}
11390impl PlayerBonusPointsEvent {
11391 #[allow(unused_variables)]
11392 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11393 Ok(PlayerBonusPointsEvent {
11394 points: read_value::<u16>(stream, definition.get_entry("points"), "points")?,
11395 player_ent_index: read_value::<u16>(
11396 stream,
11397 definition.get_entry("player_entindex"),
11398 "player_ent_index",
11399 )?,
11400 source_ent_index: read_value::<u16>(
11401 stream,
11402 definition.get_entry("source_entindex"),
11403 "source_ent_index",
11404 )?,
11405 })
11406 }
11407 #[allow(unused_variables)]
11408 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11409 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11410 match field {
11411 "points" => Ok(self.points.clone().into()),
11412 "player_entindex" => Ok(self.player_ent_index.clone().into()),
11413 "source_entindex" => Ok(self.source_ent_index.clone().into()),
11414 _ => Err(ParseError::MissingGameEventValue {
11415 ty: "PlayerBonusPoints",
11416 field: field.into(),
11417 }),
11418 }
11419 }
11420 #[allow(unused_variables)]
11421 fn write(
11422 &self,
11423 stream: &mut BitWriteStream<LittleEndian>,
11424 definition: &GameEventDefinition,
11425 ) -> Result<()> {
11426 for entry in &definition.entries {
11427 let value = self
11428 .get_field(&entry.name)
11429 .unwrap_or_else(|_| entry.kind.default_value());
11430 stream.write(&value)?;
11431 }
11432 Ok(())
11433 }
11434}
11435#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11436#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11437pub struct PlayerUpgradedEvent {}
11438impl PlayerUpgradedEvent {
11439 #[allow(unused_variables)]
11440 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11441 Ok(PlayerUpgradedEvent {})
11442 }
11443 #[allow(unused_variables)]
11444 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11445 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11446 match field {
11447 _ => Err(ParseError::MissingGameEventValue {
11448 ty: "PlayerUpgraded",
11449 field: field.into(),
11450 }),
11451 }
11452 }
11453 #[allow(unused_variables)]
11454 fn write(
11455 &self,
11456 stream: &mut BitWriteStream<LittleEndian>,
11457 definition: &GameEventDefinition,
11458 ) -> Result<()> {
11459 for entry in &definition.entries {
11460 let value = self
11461 .get_field(&entry.name)
11462 .unwrap_or_else(|_| entry.kind.default_value());
11463 stream.write(&value)?;
11464 }
11465 Ok(())
11466 }
11467}
11468#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11469#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11470pub struct PlayerBuybackEvent {
11471 pub player: u16,
11472 pub cost: u16,
11473}
11474impl PlayerBuybackEvent {
11475 #[allow(unused_variables)]
11476 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11477 Ok(PlayerBuybackEvent {
11478 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
11479 cost: read_value::<u16>(stream, definition.get_entry("cost"), "cost")?,
11480 })
11481 }
11482 #[allow(unused_variables)]
11483 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11484 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11485 match field {
11486 "player" => Ok(self.player.clone().into()),
11487 "cost" => Ok(self.cost.clone().into()),
11488 _ => Err(ParseError::MissingGameEventValue {
11489 ty: "PlayerBuyback",
11490 field: field.into(),
11491 }),
11492 }
11493 }
11494 #[allow(unused_variables)]
11495 fn write(
11496 &self,
11497 stream: &mut BitWriteStream<LittleEndian>,
11498 definition: &GameEventDefinition,
11499 ) -> Result<()> {
11500 for entry in &definition.entries {
11501 let value = self
11502 .get_field(&entry.name)
11503 .unwrap_or_else(|_| entry.kind.default_value());
11504 stream.write(&value)?;
11505 }
11506 Ok(())
11507 }
11508}
11509#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11510#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11511pub struct PlayerUsedPowerUpBottleEvent {
11512 pub player: u16,
11513 pub kind: u16,
11514 pub time: f32,
11515}
11516impl PlayerUsedPowerUpBottleEvent {
11517 #[allow(unused_variables)]
11518 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11519 Ok(PlayerUsedPowerUpBottleEvent {
11520 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
11521 kind: read_value::<u16>(stream, definition.get_entry("type"), "kind")?,
11522 time: read_value::<f32>(stream, definition.get_entry("time"), "time")?,
11523 })
11524 }
11525 #[allow(unused_variables)]
11526 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11527 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11528 match field {
11529 "player" => Ok(self.player.clone().into()),
11530 "type" => Ok(self.kind.clone().into()),
11531 "time" => Ok(self.time.clone().into()),
11532 _ => Err(ParseError::MissingGameEventValue {
11533 ty: "PlayerUsedPowerUpBottle",
11534 field: field.into(),
11535 }),
11536 }
11537 }
11538 #[allow(unused_variables)]
11539 fn write(
11540 &self,
11541 stream: &mut BitWriteStream<LittleEndian>,
11542 definition: &GameEventDefinition,
11543 ) -> Result<()> {
11544 for entry in &definition.entries {
11545 let value = self
11546 .get_field(&entry.name)
11547 .unwrap_or_else(|_| entry.kind.default_value());
11548 stream.write(&value)?;
11549 }
11550 Ok(())
11551 }
11552}
11553#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11554#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11555pub struct ChristmasGiftGrabEvent {
11556 pub user_id: u16,
11557}
11558impl ChristmasGiftGrabEvent {
11559 #[allow(unused_variables)]
11560 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11561 Ok(ChristmasGiftGrabEvent {
11562 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
11563 })
11564 }
11565 #[allow(unused_variables)]
11566 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11567 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11568 match field {
11569 "userid" => Ok(self.user_id.clone().into()),
11570 _ => Err(ParseError::MissingGameEventValue {
11571 ty: "ChristmasGiftGrab",
11572 field: field.into(),
11573 }),
11574 }
11575 }
11576 #[allow(unused_variables)]
11577 fn write(
11578 &self,
11579 stream: &mut BitWriteStream<LittleEndian>,
11580 definition: &GameEventDefinition,
11581 ) -> Result<()> {
11582 for entry in &definition.entries {
11583 let value = self
11584 .get_field(&entry.name)
11585 .unwrap_or_else(|_| entry.kind.default_value());
11586 stream.write(&value)?;
11587 }
11588 Ok(())
11589 }
11590}
11591#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11592#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11593pub struct PlayerKilledAchievementZoneEvent {
11594 pub attacker: u16,
11595 pub victim: u16,
11596 pub zone_id: u16,
11597}
11598impl PlayerKilledAchievementZoneEvent {
11599 #[allow(unused_variables)]
11600 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11601 Ok(PlayerKilledAchievementZoneEvent {
11602 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
11603 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
11604 zone_id: read_value::<u16>(stream, definition.get_entry("zone_id"), "zone_id")?,
11605 })
11606 }
11607 #[allow(unused_variables)]
11608 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11609 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11610 match field {
11611 "attacker" => Ok(self.attacker.clone().into()),
11612 "victim" => Ok(self.victim.clone().into()),
11613 "zone_id" => Ok(self.zone_id.clone().into()),
11614 _ => Err(ParseError::MissingGameEventValue {
11615 ty: "PlayerKilledAchievementZone",
11616 field: field.into(),
11617 }),
11618 }
11619 }
11620 #[allow(unused_variables)]
11621 fn write(
11622 &self,
11623 stream: &mut BitWriteStream<LittleEndian>,
11624 definition: &GameEventDefinition,
11625 ) -> Result<()> {
11626 for entry in &definition.entries {
11627 let value = self
11628 .get_field(&entry.name)
11629 .unwrap_or_else(|_| entry.kind.default_value());
11630 stream.write(&value)?;
11631 }
11632 Ok(())
11633 }
11634}
11635#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11636#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11637pub struct PartyUpdatedEvent {}
11638impl PartyUpdatedEvent {
11639 #[allow(unused_variables)]
11640 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11641 Ok(PartyUpdatedEvent {})
11642 }
11643 #[allow(unused_variables)]
11644 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11645 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11646 match field {
11647 _ => Err(ParseError::MissingGameEventValue {
11648 ty: "PartyUpdated",
11649 field: field.into(),
11650 }),
11651 }
11652 }
11653 #[allow(unused_variables)]
11654 fn write(
11655 &self,
11656 stream: &mut BitWriteStream<LittleEndian>,
11657 definition: &GameEventDefinition,
11658 ) -> Result<()> {
11659 for entry in &definition.entries {
11660 let value = self
11661 .get_field(&entry.name)
11662 .unwrap_or_else(|_| entry.kind.default_value());
11663 stream.write(&value)?;
11664 }
11665 Ok(())
11666 }
11667}
11668#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11669#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11670pub struct PartyPrefChangedEvent {}
11671impl PartyPrefChangedEvent {
11672 #[allow(unused_variables)]
11673 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11674 Ok(PartyPrefChangedEvent {})
11675 }
11676 #[allow(unused_variables)]
11677 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11678 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11679 match field {
11680 _ => Err(ParseError::MissingGameEventValue {
11681 ty: "PartyPrefChanged",
11682 field: field.into(),
11683 }),
11684 }
11685 }
11686 #[allow(unused_variables)]
11687 fn write(
11688 &self,
11689 stream: &mut BitWriteStream<LittleEndian>,
11690 definition: &GameEventDefinition,
11691 ) -> Result<()> {
11692 for entry in &definition.entries {
11693 let value = self
11694 .get_field(&entry.name)
11695 .unwrap_or_else(|_| entry.kind.default_value());
11696 stream.write(&value)?;
11697 }
11698 Ok(())
11699 }
11700}
11701#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11702#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11703pub struct PartyCriteriaChangedEvent {}
11704impl PartyCriteriaChangedEvent {
11705 #[allow(unused_variables)]
11706 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11707 Ok(PartyCriteriaChangedEvent {})
11708 }
11709 #[allow(unused_variables)]
11710 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11711 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11712 match field {
11713 _ => Err(ParseError::MissingGameEventValue {
11714 ty: "PartyCriteriaChanged",
11715 field: field.into(),
11716 }),
11717 }
11718 }
11719 #[allow(unused_variables)]
11720 fn write(
11721 &self,
11722 stream: &mut BitWriteStream<LittleEndian>,
11723 definition: &GameEventDefinition,
11724 ) -> Result<()> {
11725 for entry in &definition.entries {
11726 let value = self
11727 .get_field(&entry.name)
11728 .unwrap_or_else(|_| entry.kind.default_value());
11729 stream.write(&value)?;
11730 }
11731 Ok(())
11732 }
11733}
11734#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11735#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11736pub struct PartyInvitesChangedEvent {}
11737impl PartyInvitesChangedEvent {
11738 #[allow(unused_variables)]
11739 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11740 Ok(PartyInvitesChangedEvent {})
11741 }
11742 #[allow(unused_variables)]
11743 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11744 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11745 match field {
11746 _ => Err(ParseError::MissingGameEventValue {
11747 ty: "PartyInvitesChanged",
11748 field: field.into(),
11749 }),
11750 }
11751 }
11752 #[allow(unused_variables)]
11753 fn write(
11754 &self,
11755 stream: &mut BitWriteStream<LittleEndian>,
11756 definition: &GameEventDefinition,
11757 ) -> Result<()> {
11758 for entry in &definition.entries {
11759 let value = self
11760 .get_field(&entry.name)
11761 .unwrap_or_else(|_| entry.kind.default_value());
11762 stream.write(&value)?;
11763 }
11764 Ok(())
11765 }
11766}
11767#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11768#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11769pub struct PartyQueueStateChangedEvent {
11770 pub match_group: u16,
11771}
11772impl PartyQueueStateChangedEvent {
11773 #[allow(unused_variables)]
11774 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11775 Ok(PartyQueueStateChangedEvent {
11776 match_group: read_value::<u16>(
11777 stream,
11778 definition.get_entry("matchgroup"),
11779 "match_group",
11780 )?,
11781 })
11782 }
11783 #[allow(unused_variables)]
11784 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11785 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11786 match field {
11787 "matchgroup" => Ok(self.match_group.clone().into()),
11788 _ => Err(ParseError::MissingGameEventValue {
11789 ty: "PartyQueueStateChanged",
11790 field: field.into(),
11791 }),
11792 }
11793 }
11794 #[allow(unused_variables)]
11795 fn write(
11796 &self,
11797 stream: &mut BitWriteStream<LittleEndian>,
11798 definition: &GameEventDefinition,
11799 ) -> Result<()> {
11800 for entry in &definition.entries {
11801 let value = self
11802 .get_field(&entry.name)
11803 .unwrap_or_else(|_| entry.kind.default_value());
11804 stream.write(&value)?;
11805 }
11806 Ok(())
11807 }
11808}
11809#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11810#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11811pub struct PartyChatEvent {
11812 pub steam_id: MaybeUtf8String,
11813 pub text: MaybeUtf8String,
11814 pub kind: u16,
11815}
11816impl PartyChatEvent {
11817 #[allow(unused_variables)]
11818 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11819 Ok(PartyChatEvent {
11820 steam_id: read_value::<MaybeUtf8String>(
11821 stream,
11822 definition.get_entry("steamid"),
11823 "steam_id",
11824 )?,
11825 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
11826 kind: read_value::<u16>(stream, definition.get_entry("type"), "kind")?,
11827 })
11828 }
11829 #[allow(unused_variables)]
11830 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11831 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11832 match field {
11833 "steamid" => Ok(self.steam_id.clone().into()),
11834 "text" => Ok(self.text.clone().into()),
11835 "type" => Ok(self.kind.clone().into()),
11836 _ => Err(ParseError::MissingGameEventValue {
11837 ty: "PartyChat",
11838 field: field.into(),
11839 }),
11840 }
11841 }
11842 #[allow(unused_variables)]
11843 fn write(
11844 &self,
11845 stream: &mut BitWriteStream<LittleEndian>,
11846 definition: &GameEventDefinition,
11847 ) -> Result<()> {
11848 for entry in &definition.entries {
11849 let value = self
11850 .get_field(&entry.name)
11851 .unwrap_or_else(|_| entry.kind.default_value());
11852 stream.write(&value)?;
11853 }
11854 Ok(())
11855 }
11856}
11857#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11858#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11859pub struct PartyMemberJoinEvent {
11860 pub steam_id: MaybeUtf8String,
11861}
11862impl PartyMemberJoinEvent {
11863 #[allow(unused_variables)]
11864 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11865 Ok(PartyMemberJoinEvent {
11866 steam_id: read_value::<MaybeUtf8String>(
11867 stream,
11868 definition.get_entry("steamid"),
11869 "steam_id",
11870 )?,
11871 })
11872 }
11873 #[allow(unused_variables)]
11874 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11875 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11876 match field {
11877 "steamid" => Ok(self.steam_id.clone().into()),
11878 _ => Err(ParseError::MissingGameEventValue {
11879 ty: "PartyMemberJoin",
11880 field: field.into(),
11881 }),
11882 }
11883 }
11884 #[allow(unused_variables)]
11885 fn write(
11886 &self,
11887 stream: &mut BitWriteStream<LittleEndian>,
11888 definition: &GameEventDefinition,
11889 ) -> Result<()> {
11890 for entry in &definition.entries {
11891 let value = self
11892 .get_field(&entry.name)
11893 .unwrap_or_else(|_| entry.kind.default_value());
11894 stream.write(&value)?;
11895 }
11896 Ok(())
11897 }
11898}
11899#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11900#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11901pub struct PartyMemberLeaveEvent {
11902 pub steam_id: MaybeUtf8String,
11903}
11904impl PartyMemberLeaveEvent {
11905 #[allow(unused_variables)]
11906 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11907 Ok(PartyMemberLeaveEvent {
11908 steam_id: read_value::<MaybeUtf8String>(
11909 stream,
11910 definition.get_entry("steamid"),
11911 "steam_id",
11912 )?,
11913 })
11914 }
11915 #[allow(unused_variables)]
11916 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11917 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11918 match field {
11919 "steamid" => Ok(self.steam_id.clone().into()),
11920 _ => Err(ParseError::MissingGameEventValue {
11921 ty: "PartyMemberLeave",
11922 field: field.into(),
11923 }),
11924 }
11925 }
11926 #[allow(unused_variables)]
11927 fn write(
11928 &self,
11929 stream: &mut BitWriteStream<LittleEndian>,
11930 definition: &GameEventDefinition,
11931 ) -> Result<()> {
11932 for entry in &definition.entries {
11933 let value = self
11934 .get_field(&entry.name)
11935 .unwrap_or_else(|_| entry.kind.default_value());
11936 stream.write(&value)?;
11937 }
11938 Ok(())
11939 }
11940}
11941#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11942#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11943pub struct MatchInvitesUpdatedEvent {}
11944impl MatchInvitesUpdatedEvent {
11945 #[allow(unused_variables)]
11946 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11947 Ok(MatchInvitesUpdatedEvent {})
11948 }
11949 #[allow(unused_variables)]
11950 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11951 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11952 match field {
11953 _ => Err(ParseError::MissingGameEventValue {
11954 ty: "MatchInvitesUpdated",
11955 field: field.into(),
11956 }),
11957 }
11958 }
11959 #[allow(unused_variables)]
11960 fn write(
11961 &self,
11962 stream: &mut BitWriteStream<LittleEndian>,
11963 definition: &GameEventDefinition,
11964 ) -> Result<()> {
11965 for entry in &definition.entries {
11966 let value = self
11967 .get_field(&entry.name)
11968 .unwrap_or_else(|_| entry.kind.default_value());
11969 stream.write(&value)?;
11970 }
11971 Ok(())
11972 }
11973}
11974#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
11975#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
11976pub struct LobbyUpdatedEvent {}
11977impl LobbyUpdatedEvent {
11978 #[allow(unused_variables)]
11979 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
11980 Ok(LobbyUpdatedEvent {})
11981 }
11982 #[allow(unused_variables)]
11983 fn get_field(&self, field: &str) -> Result<GameEventValue> {
11984 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
11985 match field {
11986 _ => Err(ParseError::MissingGameEventValue {
11987 ty: "LobbyUpdated",
11988 field: field.into(),
11989 }),
11990 }
11991 }
11992 #[allow(unused_variables)]
11993 fn write(
11994 &self,
11995 stream: &mut BitWriteStream<LittleEndian>,
11996 definition: &GameEventDefinition,
11997 ) -> Result<()> {
11998 for entry in &definition.entries {
11999 let value = self
12000 .get_field(&entry.name)
12001 .unwrap_or_else(|_| entry.kind.default_value());
12002 stream.write(&value)?;
12003 }
12004 Ok(())
12005 }
12006}
12007#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12008#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12009pub struct MvmMissionUpdateEvent {
12010 pub class: u16,
12011 pub count: u16,
12012}
12013impl MvmMissionUpdateEvent {
12014 #[allow(unused_variables)]
12015 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12016 Ok(MvmMissionUpdateEvent {
12017 class: read_value::<u16>(stream, definition.get_entry("class"), "class")?,
12018 count: read_value::<u16>(stream, definition.get_entry("count"), "count")?,
12019 })
12020 }
12021 #[allow(unused_variables)]
12022 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12023 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12024 match field {
12025 "class" => Ok(self.class.clone().into()),
12026 "count" => Ok(self.count.clone().into()),
12027 _ => Err(ParseError::MissingGameEventValue {
12028 ty: "MvmMissionUpdate",
12029 field: field.into(),
12030 }),
12031 }
12032 }
12033 #[allow(unused_variables)]
12034 fn write(
12035 &self,
12036 stream: &mut BitWriteStream<LittleEndian>,
12037 definition: &GameEventDefinition,
12038 ) -> Result<()> {
12039 for entry in &definition.entries {
12040 let value = self
12041 .get_field(&entry.name)
12042 .unwrap_or_else(|_| entry.kind.default_value());
12043 stream.write(&value)?;
12044 }
12045 Ok(())
12046 }
12047}
12048#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12049#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12050pub struct RecalculateHolidaysEvent {}
12051impl RecalculateHolidaysEvent {
12052 #[allow(unused_variables)]
12053 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12054 Ok(RecalculateHolidaysEvent {})
12055 }
12056 #[allow(unused_variables)]
12057 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12058 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12059 match field {
12060 _ => Err(ParseError::MissingGameEventValue {
12061 ty: "RecalculateHolidays",
12062 field: field.into(),
12063 }),
12064 }
12065 }
12066 #[allow(unused_variables)]
12067 fn write(
12068 &self,
12069 stream: &mut BitWriteStream<LittleEndian>,
12070 definition: &GameEventDefinition,
12071 ) -> Result<()> {
12072 for entry in &definition.entries {
12073 let value = self
12074 .get_field(&entry.name)
12075 .unwrap_or_else(|_| entry.kind.default_value());
12076 stream.write(&value)?;
12077 }
12078 Ok(())
12079 }
12080}
12081#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12082#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12083pub struct PlayerCurrencyChangedEvent {
12084 pub currency: u16,
12085}
12086impl PlayerCurrencyChangedEvent {
12087 #[allow(unused_variables)]
12088 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12089 Ok(PlayerCurrencyChangedEvent {
12090 currency: read_value::<u16>(stream, definition.get_entry("currency"), "currency")?,
12091 })
12092 }
12093 #[allow(unused_variables)]
12094 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12095 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12096 match field {
12097 "currency" => Ok(self.currency.clone().into()),
12098 _ => Err(ParseError::MissingGameEventValue {
12099 ty: "PlayerCurrencyChanged",
12100 field: field.into(),
12101 }),
12102 }
12103 }
12104 #[allow(unused_variables)]
12105 fn write(
12106 &self,
12107 stream: &mut BitWriteStream<LittleEndian>,
12108 definition: &GameEventDefinition,
12109 ) -> Result<()> {
12110 for entry in &definition.entries {
12111 let value = self
12112 .get_field(&entry.name)
12113 .unwrap_or_else(|_| entry.kind.default_value());
12114 stream.write(&value)?;
12115 }
12116 Ok(())
12117 }
12118}
12119#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12120#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12121pub struct DoomsdayRocketOpenEvent {
12122 pub team: u8,
12123}
12124impl DoomsdayRocketOpenEvent {
12125 #[allow(unused_variables)]
12126 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12127 Ok(DoomsdayRocketOpenEvent {
12128 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
12129 })
12130 }
12131 #[allow(unused_variables)]
12132 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12133 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12134 match field {
12135 "team" => Ok(self.team.clone().into()),
12136 _ => Err(ParseError::MissingGameEventValue {
12137 ty: "DoomsdayRocketOpen",
12138 field: field.into(),
12139 }),
12140 }
12141 }
12142 #[allow(unused_variables)]
12143 fn write(
12144 &self,
12145 stream: &mut BitWriteStream<LittleEndian>,
12146 definition: &GameEventDefinition,
12147 ) -> Result<()> {
12148 for entry in &definition.entries {
12149 let value = self
12150 .get_field(&entry.name)
12151 .unwrap_or_else(|_| entry.kind.default_value());
12152 stream.write(&value)?;
12153 }
12154 Ok(())
12155 }
12156}
12157#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12158#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12159pub struct RemoveNemesisRelationshipsEvent {
12160 pub player: u16,
12161}
12162impl RemoveNemesisRelationshipsEvent {
12163 #[allow(unused_variables)]
12164 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12165 Ok(RemoveNemesisRelationshipsEvent {
12166 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12167 })
12168 }
12169 #[allow(unused_variables)]
12170 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12171 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12172 match field {
12173 "player" => Ok(self.player.clone().into()),
12174 _ => Err(ParseError::MissingGameEventValue {
12175 ty: "RemoveNemesisRelationships",
12176 field: field.into(),
12177 }),
12178 }
12179 }
12180 #[allow(unused_variables)]
12181 fn write(
12182 &self,
12183 stream: &mut BitWriteStream<LittleEndian>,
12184 definition: &GameEventDefinition,
12185 ) -> Result<()> {
12186 for entry in &definition.entries {
12187 let value = self
12188 .get_field(&entry.name)
12189 .unwrap_or_else(|_| entry.kind.default_value());
12190 stream.write(&value)?;
12191 }
12192 Ok(())
12193 }
12194}
12195#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12196#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12197pub struct MvmCreditBonusWaveEvent {}
12198impl MvmCreditBonusWaveEvent {
12199 #[allow(unused_variables)]
12200 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12201 Ok(MvmCreditBonusWaveEvent {})
12202 }
12203 #[allow(unused_variables)]
12204 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12205 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12206 match field {
12207 _ => Err(ParseError::MissingGameEventValue {
12208 ty: "MvmCreditBonusWave",
12209 field: field.into(),
12210 }),
12211 }
12212 }
12213 #[allow(unused_variables)]
12214 fn write(
12215 &self,
12216 stream: &mut BitWriteStream<LittleEndian>,
12217 definition: &GameEventDefinition,
12218 ) -> Result<()> {
12219 for entry in &definition.entries {
12220 let value = self
12221 .get_field(&entry.name)
12222 .unwrap_or_else(|_| entry.kind.default_value());
12223 stream.write(&value)?;
12224 }
12225 Ok(())
12226 }
12227}
12228#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12229#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12230pub struct MvmCreditBonusAllEvent {}
12231impl MvmCreditBonusAllEvent {
12232 #[allow(unused_variables)]
12233 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12234 Ok(MvmCreditBonusAllEvent {})
12235 }
12236 #[allow(unused_variables)]
12237 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12238 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12239 match field {
12240 _ => Err(ParseError::MissingGameEventValue {
12241 ty: "MvmCreditBonusAll",
12242 field: field.into(),
12243 }),
12244 }
12245 }
12246 #[allow(unused_variables)]
12247 fn write(
12248 &self,
12249 stream: &mut BitWriteStream<LittleEndian>,
12250 definition: &GameEventDefinition,
12251 ) -> Result<()> {
12252 for entry in &definition.entries {
12253 let value = self
12254 .get_field(&entry.name)
12255 .unwrap_or_else(|_| entry.kind.default_value());
12256 stream.write(&value)?;
12257 }
12258 Ok(())
12259 }
12260}
12261#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12262#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12263pub struct MvmCreditBonusAllAdvancedEvent {}
12264impl MvmCreditBonusAllAdvancedEvent {
12265 #[allow(unused_variables)]
12266 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12267 Ok(MvmCreditBonusAllAdvancedEvent {})
12268 }
12269 #[allow(unused_variables)]
12270 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12271 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12272 match field {
12273 _ => Err(ParseError::MissingGameEventValue {
12274 ty: "MvmCreditBonusAllAdvanced",
12275 field: field.into(),
12276 }),
12277 }
12278 }
12279 #[allow(unused_variables)]
12280 fn write(
12281 &self,
12282 stream: &mut BitWriteStream<LittleEndian>,
12283 definition: &GameEventDefinition,
12284 ) -> Result<()> {
12285 for entry in &definition.entries {
12286 let value = self
12287 .get_field(&entry.name)
12288 .unwrap_or_else(|_| entry.kind.default_value());
12289 stream.write(&value)?;
12290 }
12291 Ok(())
12292 }
12293}
12294#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12295#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12296pub struct MvmQuickSentryUpgradeEvent {
12297 pub player: u16,
12298}
12299impl MvmQuickSentryUpgradeEvent {
12300 #[allow(unused_variables)]
12301 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12302 Ok(MvmQuickSentryUpgradeEvent {
12303 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12304 })
12305 }
12306 #[allow(unused_variables)]
12307 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12308 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12309 match field {
12310 "player" => Ok(self.player.clone().into()),
12311 _ => Err(ParseError::MissingGameEventValue {
12312 ty: "MvmQuickSentryUpgrade",
12313 field: field.into(),
12314 }),
12315 }
12316 }
12317 #[allow(unused_variables)]
12318 fn write(
12319 &self,
12320 stream: &mut BitWriteStream<LittleEndian>,
12321 definition: &GameEventDefinition,
12322 ) -> Result<()> {
12323 for entry in &definition.entries {
12324 let value = self
12325 .get_field(&entry.name)
12326 .unwrap_or_else(|_| entry.kind.default_value());
12327 stream.write(&value)?;
12328 }
12329 Ok(())
12330 }
12331}
12332#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12333#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12334pub struct MvmTankDestroyedByPlayersEvent {}
12335impl MvmTankDestroyedByPlayersEvent {
12336 #[allow(unused_variables)]
12337 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12338 Ok(MvmTankDestroyedByPlayersEvent {})
12339 }
12340 #[allow(unused_variables)]
12341 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12342 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12343 match field {
12344 _ => Err(ParseError::MissingGameEventValue {
12345 ty: "MvmTankDestroyedByPlayers",
12346 field: field.into(),
12347 }),
12348 }
12349 }
12350 #[allow(unused_variables)]
12351 fn write(
12352 &self,
12353 stream: &mut BitWriteStream<LittleEndian>,
12354 definition: &GameEventDefinition,
12355 ) -> Result<()> {
12356 for entry in &definition.entries {
12357 let value = self
12358 .get_field(&entry.name)
12359 .unwrap_or_else(|_| entry.kind.default_value());
12360 stream.write(&value)?;
12361 }
12362 Ok(())
12363 }
12364}
12365#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12366#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12367pub struct MvmKillRobotDeliveringBombEvent {
12368 pub player: u16,
12369}
12370impl MvmKillRobotDeliveringBombEvent {
12371 #[allow(unused_variables)]
12372 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12373 Ok(MvmKillRobotDeliveringBombEvent {
12374 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12375 })
12376 }
12377 #[allow(unused_variables)]
12378 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12379 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12380 match field {
12381 "player" => Ok(self.player.clone().into()),
12382 _ => Err(ParseError::MissingGameEventValue {
12383 ty: "MvmKillRobotDeliveringBomb",
12384 field: field.into(),
12385 }),
12386 }
12387 }
12388 #[allow(unused_variables)]
12389 fn write(
12390 &self,
12391 stream: &mut BitWriteStream<LittleEndian>,
12392 definition: &GameEventDefinition,
12393 ) -> Result<()> {
12394 for entry in &definition.entries {
12395 let value = self
12396 .get_field(&entry.name)
12397 .unwrap_or_else(|_| entry.kind.default_value());
12398 stream.write(&value)?;
12399 }
12400 Ok(())
12401 }
12402}
12403#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12404#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12405pub struct MvmPickupCurrencyEvent {
12406 pub player: u16,
12407 pub currency: u16,
12408}
12409impl MvmPickupCurrencyEvent {
12410 #[allow(unused_variables)]
12411 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12412 Ok(MvmPickupCurrencyEvent {
12413 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12414 currency: read_value::<u16>(stream, definition.get_entry("currency"), "currency")?,
12415 })
12416 }
12417 #[allow(unused_variables)]
12418 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12419 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12420 match field {
12421 "player" => Ok(self.player.clone().into()),
12422 "currency" => Ok(self.currency.clone().into()),
12423 _ => Err(ParseError::MissingGameEventValue {
12424 ty: "MvmPickupCurrency",
12425 field: field.into(),
12426 }),
12427 }
12428 }
12429 #[allow(unused_variables)]
12430 fn write(
12431 &self,
12432 stream: &mut BitWriteStream<LittleEndian>,
12433 definition: &GameEventDefinition,
12434 ) -> Result<()> {
12435 for entry in &definition.entries {
12436 let value = self
12437 .get_field(&entry.name)
12438 .unwrap_or_else(|_| entry.kind.default_value());
12439 stream.write(&value)?;
12440 }
12441 Ok(())
12442 }
12443}
12444#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12445#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12446pub struct MvmBombCarrierKilledEvent {
12447 pub level: u16,
12448}
12449impl MvmBombCarrierKilledEvent {
12450 #[allow(unused_variables)]
12451 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12452 Ok(MvmBombCarrierKilledEvent {
12453 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
12454 })
12455 }
12456 #[allow(unused_variables)]
12457 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12458 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12459 match field {
12460 "level" => Ok(self.level.clone().into()),
12461 _ => Err(ParseError::MissingGameEventValue {
12462 ty: "MvmBombCarrierKilled",
12463 field: field.into(),
12464 }),
12465 }
12466 }
12467 #[allow(unused_variables)]
12468 fn write(
12469 &self,
12470 stream: &mut BitWriteStream<LittleEndian>,
12471 definition: &GameEventDefinition,
12472 ) -> Result<()> {
12473 for entry in &definition.entries {
12474 let value = self
12475 .get_field(&entry.name)
12476 .unwrap_or_else(|_| entry.kind.default_value());
12477 stream.write(&value)?;
12478 }
12479 Ok(())
12480 }
12481}
12482#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12483#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12484pub struct MvmSentryBusterDetonateEvent {
12485 pub player: u16,
12486 pub det_x: f32,
12487 pub det_y: f32,
12488 pub det_z: f32,
12489}
12490impl MvmSentryBusterDetonateEvent {
12491 #[allow(unused_variables)]
12492 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12493 Ok(MvmSentryBusterDetonateEvent {
12494 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12495 det_x: read_value::<f32>(stream, definition.get_entry("det_x"), "det_x")?,
12496 det_y: read_value::<f32>(stream, definition.get_entry("det_y"), "det_y")?,
12497 det_z: read_value::<f32>(stream, definition.get_entry("det_z"), "det_z")?,
12498 })
12499 }
12500 #[allow(unused_variables)]
12501 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12502 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12503 match field {
12504 "player" => Ok(self.player.clone().into()),
12505 "det_x" => Ok(self.det_x.clone().into()),
12506 "det_y" => Ok(self.det_y.clone().into()),
12507 "det_z" => Ok(self.det_z.clone().into()),
12508 _ => Err(ParseError::MissingGameEventValue {
12509 ty: "MvmSentryBusterDetonate",
12510 field: field.into(),
12511 }),
12512 }
12513 }
12514 #[allow(unused_variables)]
12515 fn write(
12516 &self,
12517 stream: &mut BitWriteStream<LittleEndian>,
12518 definition: &GameEventDefinition,
12519 ) -> Result<()> {
12520 for entry in &definition.entries {
12521 let value = self
12522 .get_field(&entry.name)
12523 .unwrap_or_else(|_| entry.kind.default_value());
12524 stream.write(&value)?;
12525 }
12526 Ok(())
12527 }
12528}
12529#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12530#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12531pub struct MvmScoutMarkedForDeathEvent {
12532 pub player: u16,
12533}
12534impl MvmScoutMarkedForDeathEvent {
12535 #[allow(unused_variables)]
12536 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12537 Ok(MvmScoutMarkedForDeathEvent {
12538 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12539 })
12540 }
12541 #[allow(unused_variables)]
12542 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12543 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12544 match field {
12545 "player" => Ok(self.player.clone().into()),
12546 _ => Err(ParseError::MissingGameEventValue {
12547 ty: "MvmScoutMarkedForDeath",
12548 field: field.into(),
12549 }),
12550 }
12551 }
12552 #[allow(unused_variables)]
12553 fn write(
12554 &self,
12555 stream: &mut BitWriteStream<LittleEndian>,
12556 definition: &GameEventDefinition,
12557 ) -> Result<()> {
12558 for entry in &definition.entries {
12559 let value = self
12560 .get_field(&entry.name)
12561 .unwrap_or_else(|_| entry.kind.default_value());
12562 stream.write(&value)?;
12563 }
12564 Ok(())
12565 }
12566}
12567#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12568#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12569pub struct MvmMedicPowerUpSharedEvent {
12570 pub player: u16,
12571}
12572impl MvmMedicPowerUpSharedEvent {
12573 #[allow(unused_variables)]
12574 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12575 Ok(MvmMedicPowerUpSharedEvent {
12576 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12577 })
12578 }
12579 #[allow(unused_variables)]
12580 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12581 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12582 match field {
12583 "player" => Ok(self.player.clone().into()),
12584 _ => Err(ParseError::MissingGameEventValue {
12585 ty: "MvmMedicPowerUpShared",
12586 field: field.into(),
12587 }),
12588 }
12589 }
12590 #[allow(unused_variables)]
12591 fn write(
12592 &self,
12593 stream: &mut BitWriteStream<LittleEndian>,
12594 definition: &GameEventDefinition,
12595 ) -> Result<()> {
12596 for entry in &definition.entries {
12597 let value = self
12598 .get_field(&entry.name)
12599 .unwrap_or_else(|_| entry.kind.default_value());
12600 stream.write(&value)?;
12601 }
12602 Ok(())
12603 }
12604}
12605#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12606#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12607pub struct MvmBeginWaveEvent {
12608 pub wave_index: u16,
12609 pub max_waves: u16,
12610 pub advanced: u16,
12611}
12612impl MvmBeginWaveEvent {
12613 #[allow(unused_variables)]
12614 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12615 Ok(MvmBeginWaveEvent {
12616 wave_index: read_value::<u16>(
12617 stream,
12618 definition.get_entry("wave_index"),
12619 "wave_index",
12620 )?,
12621 max_waves: read_value::<u16>(stream, definition.get_entry("max_waves"), "max_waves")?,
12622 advanced: read_value::<u16>(stream, definition.get_entry("advanced"), "advanced")?,
12623 })
12624 }
12625 #[allow(unused_variables)]
12626 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12627 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12628 match field {
12629 "wave_index" => Ok(self.wave_index.clone().into()),
12630 "max_waves" => Ok(self.max_waves.clone().into()),
12631 "advanced" => Ok(self.advanced.clone().into()),
12632 _ => Err(ParseError::MissingGameEventValue {
12633 ty: "MvmBeginWave",
12634 field: field.into(),
12635 }),
12636 }
12637 }
12638 #[allow(unused_variables)]
12639 fn write(
12640 &self,
12641 stream: &mut BitWriteStream<LittleEndian>,
12642 definition: &GameEventDefinition,
12643 ) -> Result<()> {
12644 for entry in &definition.entries {
12645 let value = self
12646 .get_field(&entry.name)
12647 .unwrap_or_else(|_| entry.kind.default_value());
12648 stream.write(&value)?;
12649 }
12650 Ok(())
12651 }
12652}
12653#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12654#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12655pub struct MvmWaveCompleteEvent {
12656 pub advanced: bool,
12657}
12658impl MvmWaveCompleteEvent {
12659 #[allow(unused_variables)]
12660 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12661 Ok(MvmWaveCompleteEvent {
12662 advanced: read_value::<bool>(stream, definition.get_entry("advanced"), "advanced")?,
12663 })
12664 }
12665 #[allow(unused_variables)]
12666 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12667 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12668 match field {
12669 "advanced" => Ok(self.advanced.clone().into()),
12670 _ => Err(ParseError::MissingGameEventValue {
12671 ty: "MvmWaveComplete",
12672 field: field.into(),
12673 }),
12674 }
12675 }
12676 #[allow(unused_variables)]
12677 fn write(
12678 &self,
12679 stream: &mut BitWriteStream<LittleEndian>,
12680 definition: &GameEventDefinition,
12681 ) -> Result<()> {
12682 for entry in &definition.entries {
12683 let value = self
12684 .get_field(&entry.name)
12685 .unwrap_or_else(|_| entry.kind.default_value());
12686 stream.write(&value)?;
12687 }
12688 Ok(())
12689 }
12690}
12691#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12692#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12693pub struct MvmMissionCompleteEvent {
12694 pub mission: MaybeUtf8String,
12695}
12696impl MvmMissionCompleteEvent {
12697 #[allow(unused_variables)]
12698 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12699 Ok(MvmMissionCompleteEvent {
12700 mission: read_value::<MaybeUtf8String>(
12701 stream,
12702 definition.get_entry("mission"),
12703 "mission",
12704 )?,
12705 })
12706 }
12707 #[allow(unused_variables)]
12708 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12709 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12710 match field {
12711 "mission" => Ok(self.mission.clone().into()),
12712 _ => Err(ParseError::MissingGameEventValue {
12713 ty: "MvmMissionComplete",
12714 field: field.into(),
12715 }),
12716 }
12717 }
12718 #[allow(unused_variables)]
12719 fn write(
12720 &self,
12721 stream: &mut BitWriteStream<LittleEndian>,
12722 definition: &GameEventDefinition,
12723 ) -> Result<()> {
12724 for entry in &definition.entries {
12725 let value = self
12726 .get_field(&entry.name)
12727 .unwrap_or_else(|_| entry.kind.default_value());
12728 stream.write(&value)?;
12729 }
12730 Ok(())
12731 }
12732}
12733#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12734#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12735pub struct MvmBombResetByPlayerEvent {
12736 pub player: u16,
12737}
12738impl MvmBombResetByPlayerEvent {
12739 #[allow(unused_variables)]
12740 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12741 Ok(MvmBombResetByPlayerEvent {
12742 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12743 })
12744 }
12745 #[allow(unused_variables)]
12746 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12747 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12748 match field {
12749 "player" => Ok(self.player.clone().into()),
12750 _ => Err(ParseError::MissingGameEventValue {
12751 ty: "MvmBombResetByPlayer",
12752 field: field.into(),
12753 }),
12754 }
12755 }
12756 #[allow(unused_variables)]
12757 fn write(
12758 &self,
12759 stream: &mut BitWriteStream<LittleEndian>,
12760 definition: &GameEventDefinition,
12761 ) -> Result<()> {
12762 for entry in &definition.entries {
12763 let value = self
12764 .get_field(&entry.name)
12765 .unwrap_or_else(|_| entry.kind.default_value());
12766 stream.write(&value)?;
12767 }
12768 Ok(())
12769 }
12770}
12771#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12772#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12773pub struct MvmBombAlarmTriggeredEvent {}
12774impl MvmBombAlarmTriggeredEvent {
12775 #[allow(unused_variables)]
12776 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12777 Ok(MvmBombAlarmTriggeredEvent {})
12778 }
12779 #[allow(unused_variables)]
12780 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12781 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12782 match field {
12783 _ => Err(ParseError::MissingGameEventValue {
12784 ty: "MvmBombAlarmTriggered",
12785 field: field.into(),
12786 }),
12787 }
12788 }
12789 #[allow(unused_variables)]
12790 fn write(
12791 &self,
12792 stream: &mut BitWriteStream<LittleEndian>,
12793 definition: &GameEventDefinition,
12794 ) -> Result<()> {
12795 for entry in &definition.entries {
12796 let value = self
12797 .get_field(&entry.name)
12798 .unwrap_or_else(|_| entry.kind.default_value());
12799 stream.write(&value)?;
12800 }
12801 Ok(())
12802 }
12803}
12804#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12805#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12806pub struct MvmBombDeployResetByPlayerEvent {
12807 pub player: u16,
12808}
12809impl MvmBombDeployResetByPlayerEvent {
12810 #[allow(unused_variables)]
12811 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12812 Ok(MvmBombDeployResetByPlayerEvent {
12813 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
12814 })
12815 }
12816 #[allow(unused_variables)]
12817 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12818 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12819 match field {
12820 "player" => Ok(self.player.clone().into()),
12821 _ => Err(ParseError::MissingGameEventValue {
12822 ty: "MvmBombDeployResetByPlayer",
12823 field: field.into(),
12824 }),
12825 }
12826 }
12827 #[allow(unused_variables)]
12828 fn write(
12829 &self,
12830 stream: &mut BitWriteStream<LittleEndian>,
12831 definition: &GameEventDefinition,
12832 ) -> Result<()> {
12833 for entry in &definition.entries {
12834 let value = self
12835 .get_field(&entry.name)
12836 .unwrap_or_else(|_| entry.kind.default_value());
12837 stream.write(&value)?;
12838 }
12839 Ok(())
12840 }
12841}
12842#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12843#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12844pub struct MvmWaveFailedEvent {}
12845impl MvmWaveFailedEvent {
12846 #[allow(unused_variables)]
12847 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12848 Ok(MvmWaveFailedEvent {})
12849 }
12850 #[allow(unused_variables)]
12851 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12852 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12853 match field {
12854 _ => Err(ParseError::MissingGameEventValue {
12855 ty: "MvmWaveFailed",
12856 field: field.into(),
12857 }),
12858 }
12859 }
12860 #[allow(unused_variables)]
12861 fn write(
12862 &self,
12863 stream: &mut BitWriteStream<LittleEndian>,
12864 definition: &GameEventDefinition,
12865 ) -> Result<()> {
12866 for entry in &definition.entries {
12867 let value = self
12868 .get_field(&entry.name)
12869 .unwrap_or_else(|_| entry.kind.default_value());
12870 stream.write(&value)?;
12871 }
12872 Ok(())
12873 }
12874}
12875#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12876#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12877pub struct MvmResetStatsEvent {}
12878impl MvmResetStatsEvent {
12879 #[allow(unused_variables)]
12880 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12881 Ok(MvmResetStatsEvent {})
12882 }
12883 #[allow(unused_variables)]
12884 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12885 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12886 match field {
12887 _ => Err(ParseError::MissingGameEventValue {
12888 ty: "MvmResetStats",
12889 field: field.into(),
12890 }),
12891 }
12892 }
12893 #[allow(unused_variables)]
12894 fn write(
12895 &self,
12896 stream: &mut BitWriteStream<LittleEndian>,
12897 definition: &GameEventDefinition,
12898 ) -> Result<()> {
12899 for entry in &definition.entries {
12900 let value = self
12901 .get_field(&entry.name)
12902 .unwrap_or_else(|_| entry.kind.default_value());
12903 stream.write(&value)?;
12904 }
12905 Ok(())
12906 }
12907}
12908#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12909#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12910pub struct DamageResistedEvent {
12911 pub ent_index: u8,
12912}
12913impl DamageResistedEvent {
12914 #[allow(unused_variables)]
12915 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12916 Ok(DamageResistedEvent {
12917 ent_index: read_value::<u8>(stream, definition.get_entry("entindex"), "ent_index")?,
12918 })
12919 }
12920 #[allow(unused_variables)]
12921 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12922 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12923 match field {
12924 "entindex" => Ok(self.ent_index.clone().into()),
12925 _ => Err(ParseError::MissingGameEventValue {
12926 ty: "DamageResisted",
12927 field: field.into(),
12928 }),
12929 }
12930 }
12931 #[allow(unused_variables)]
12932 fn write(
12933 &self,
12934 stream: &mut BitWriteStream<LittleEndian>,
12935 definition: &GameEventDefinition,
12936 ) -> Result<()> {
12937 for entry in &definition.entries {
12938 let value = self
12939 .get_field(&entry.name)
12940 .unwrap_or_else(|_| entry.kind.default_value());
12941 stream.write(&value)?;
12942 }
12943 Ok(())
12944 }
12945}
12946#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12947#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12948pub struct RevivePlayerNotifyEvent {
12949 pub ent_index: u16,
12950 pub marker_ent_index: u16,
12951}
12952impl RevivePlayerNotifyEvent {
12953 #[allow(unused_variables)]
12954 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12955 Ok(RevivePlayerNotifyEvent {
12956 ent_index: read_value::<u16>(stream, definition.get_entry("entindex"), "ent_index")?,
12957 marker_ent_index: read_value::<u16>(
12958 stream,
12959 definition.get_entry("marker_entindex"),
12960 "marker_ent_index",
12961 )?,
12962 })
12963 }
12964 #[allow(unused_variables)]
12965 fn get_field(&self, field: &str) -> Result<GameEventValue> {
12966 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
12967 match field {
12968 "entindex" => Ok(self.ent_index.clone().into()),
12969 "marker_entindex" => Ok(self.marker_ent_index.clone().into()),
12970 _ => Err(ParseError::MissingGameEventValue {
12971 ty: "RevivePlayerNotify",
12972 field: field.into(),
12973 }),
12974 }
12975 }
12976 #[allow(unused_variables)]
12977 fn write(
12978 &self,
12979 stream: &mut BitWriteStream<LittleEndian>,
12980 definition: &GameEventDefinition,
12981 ) -> Result<()> {
12982 for entry in &definition.entries {
12983 let value = self
12984 .get_field(&entry.name)
12985 .unwrap_or_else(|_| entry.kind.default_value());
12986 stream.write(&value)?;
12987 }
12988 Ok(())
12989 }
12990}
12991#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
12992#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
12993pub struct RevivePlayerStoppedEvent {
12994 pub ent_index: u16,
12995}
12996impl RevivePlayerStoppedEvent {
12997 #[allow(unused_variables)]
12998 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
12999 Ok(RevivePlayerStoppedEvent {
13000 ent_index: read_value::<u16>(stream, definition.get_entry("entindex"), "ent_index")?,
13001 })
13002 }
13003 #[allow(unused_variables)]
13004 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13005 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13006 match field {
13007 "entindex" => Ok(self.ent_index.clone().into()),
13008 _ => Err(ParseError::MissingGameEventValue {
13009 ty: "RevivePlayerStopped",
13010 field: field.into(),
13011 }),
13012 }
13013 }
13014 #[allow(unused_variables)]
13015 fn write(
13016 &self,
13017 stream: &mut BitWriteStream<LittleEndian>,
13018 definition: &GameEventDefinition,
13019 ) -> Result<()> {
13020 for entry in &definition.entries {
13021 let value = self
13022 .get_field(&entry.name)
13023 .unwrap_or_else(|_| entry.kind.default_value());
13024 stream.write(&value)?;
13025 }
13026 Ok(())
13027 }
13028}
13029#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13030#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13031pub struct RevivePlayerCompleteEvent {
13032 pub ent_index: u16,
13033}
13034impl RevivePlayerCompleteEvent {
13035 #[allow(unused_variables)]
13036 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13037 Ok(RevivePlayerCompleteEvent {
13038 ent_index: read_value::<u16>(stream, definition.get_entry("entindex"), "ent_index")?,
13039 })
13040 }
13041 #[allow(unused_variables)]
13042 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13043 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13044 match field {
13045 "entindex" => Ok(self.ent_index.clone().into()),
13046 _ => Err(ParseError::MissingGameEventValue {
13047 ty: "RevivePlayerComplete",
13048 field: field.into(),
13049 }),
13050 }
13051 }
13052 #[allow(unused_variables)]
13053 fn write(
13054 &self,
13055 stream: &mut BitWriteStream<LittleEndian>,
13056 definition: &GameEventDefinition,
13057 ) -> Result<()> {
13058 for entry in &definition.entries {
13059 let value = self
13060 .get_field(&entry.name)
13061 .unwrap_or_else(|_| entry.kind.default_value());
13062 stream.write(&value)?;
13063 }
13064 Ok(())
13065 }
13066}
13067#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13068#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13069pub struct PlayerTurnedToGhostEvent {
13070 pub user_id: u16,
13071}
13072impl PlayerTurnedToGhostEvent {
13073 #[allow(unused_variables)]
13074 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13075 Ok(PlayerTurnedToGhostEvent {
13076 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
13077 })
13078 }
13079 #[allow(unused_variables)]
13080 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13081 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13082 match field {
13083 "userid" => Ok(self.user_id.clone().into()),
13084 _ => Err(ParseError::MissingGameEventValue {
13085 ty: "PlayerTurnedToGhost",
13086 field: field.into(),
13087 }),
13088 }
13089 }
13090 #[allow(unused_variables)]
13091 fn write(
13092 &self,
13093 stream: &mut BitWriteStream<LittleEndian>,
13094 definition: &GameEventDefinition,
13095 ) -> Result<()> {
13096 for entry in &definition.entries {
13097 let value = self
13098 .get_field(&entry.name)
13099 .unwrap_or_else(|_| entry.kind.default_value());
13100 stream.write(&value)?;
13101 }
13102 Ok(())
13103 }
13104}
13105#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13106#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13107pub struct MedigunShieldBlockedDamageEvent {
13108 pub user_id: u16,
13109 pub damage: f32,
13110}
13111impl MedigunShieldBlockedDamageEvent {
13112 #[allow(unused_variables)]
13113 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13114 Ok(MedigunShieldBlockedDamageEvent {
13115 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
13116 damage: read_value::<f32>(stream, definition.get_entry("damage"), "damage")?,
13117 })
13118 }
13119 #[allow(unused_variables)]
13120 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13121 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13122 match field {
13123 "userid" => Ok(self.user_id.clone().into()),
13124 "damage" => Ok(self.damage.clone().into()),
13125 _ => Err(ParseError::MissingGameEventValue {
13126 ty: "MedigunShieldBlockedDamage",
13127 field: field.into(),
13128 }),
13129 }
13130 }
13131 #[allow(unused_variables)]
13132 fn write(
13133 &self,
13134 stream: &mut BitWriteStream<LittleEndian>,
13135 definition: &GameEventDefinition,
13136 ) -> Result<()> {
13137 for entry in &definition.entries {
13138 let value = self
13139 .get_field(&entry.name)
13140 .unwrap_or_else(|_| entry.kind.default_value());
13141 stream.write(&value)?;
13142 }
13143 Ok(())
13144 }
13145}
13146#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13147#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13148pub struct MvmAdvWaveCompleteNoGatesEvent {
13149 pub index: u16,
13150}
13151impl MvmAdvWaveCompleteNoGatesEvent {
13152 #[allow(unused_variables)]
13153 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13154 Ok(MvmAdvWaveCompleteNoGatesEvent {
13155 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13156 })
13157 }
13158 #[allow(unused_variables)]
13159 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13160 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13161 match field {
13162 "index" => Ok(self.index.clone().into()),
13163 _ => Err(ParseError::MissingGameEventValue {
13164 ty: "MvmAdvWaveCompleteNoGates",
13165 field: field.into(),
13166 }),
13167 }
13168 }
13169 #[allow(unused_variables)]
13170 fn write(
13171 &self,
13172 stream: &mut BitWriteStream<LittleEndian>,
13173 definition: &GameEventDefinition,
13174 ) -> Result<()> {
13175 for entry in &definition.entries {
13176 let value = self
13177 .get_field(&entry.name)
13178 .unwrap_or_else(|_| entry.kind.default_value());
13179 stream.write(&value)?;
13180 }
13181 Ok(())
13182 }
13183}
13184#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13185#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13186pub struct MvmSniperHeadshotCurrencyEvent {
13187 pub user_id: u16,
13188 pub currency: u16,
13189}
13190impl MvmSniperHeadshotCurrencyEvent {
13191 #[allow(unused_variables)]
13192 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13193 Ok(MvmSniperHeadshotCurrencyEvent {
13194 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
13195 currency: read_value::<u16>(stream, definition.get_entry("currency"), "currency")?,
13196 })
13197 }
13198 #[allow(unused_variables)]
13199 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13200 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13201 match field {
13202 "userid" => Ok(self.user_id.clone().into()),
13203 "currency" => Ok(self.currency.clone().into()),
13204 _ => Err(ParseError::MissingGameEventValue {
13205 ty: "MvmSniperHeadshotCurrency",
13206 field: field.into(),
13207 }),
13208 }
13209 }
13210 #[allow(unused_variables)]
13211 fn write(
13212 &self,
13213 stream: &mut BitWriteStream<LittleEndian>,
13214 definition: &GameEventDefinition,
13215 ) -> Result<()> {
13216 for entry in &definition.entries {
13217 let value = self
13218 .get_field(&entry.name)
13219 .unwrap_or_else(|_| entry.kind.default_value());
13220 stream.write(&value)?;
13221 }
13222 Ok(())
13223 }
13224}
13225#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13226#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13227pub struct MvmMannhattanPitEvent {}
13228impl MvmMannhattanPitEvent {
13229 #[allow(unused_variables)]
13230 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13231 Ok(MvmMannhattanPitEvent {})
13232 }
13233 #[allow(unused_variables)]
13234 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13235 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13236 match field {
13237 _ => Err(ParseError::MissingGameEventValue {
13238 ty: "MvmMannhattanPit",
13239 field: field.into(),
13240 }),
13241 }
13242 }
13243 #[allow(unused_variables)]
13244 fn write(
13245 &self,
13246 stream: &mut BitWriteStream<LittleEndian>,
13247 definition: &GameEventDefinition,
13248 ) -> Result<()> {
13249 for entry in &definition.entries {
13250 let value = self
13251 .get_field(&entry.name)
13252 .unwrap_or_else(|_| entry.kind.default_value());
13253 stream.write(&value)?;
13254 }
13255 Ok(())
13256 }
13257}
13258#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13259#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13260pub struct FlagCarriedInDetectionZoneEvent {}
13261impl FlagCarriedInDetectionZoneEvent {
13262 #[allow(unused_variables)]
13263 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13264 Ok(FlagCarriedInDetectionZoneEvent {})
13265 }
13266 #[allow(unused_variables)]
13267 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13268 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13269 match field {
13270 _ => Err(ParseError::MissingGameEventValue {
13271 ty: "FlagCarriedInDetectionZone",
13272 field: field.into(),
13273 }),
13274 }
13275 }
13276 #[allow(unused_variables)]
13277 fn write(
13278 &self,
13279 stream: &mut BitWriteStream<LittleEndian>,
13280 definition: &GameEventDefinition,
13281 ) -> Result<()> {
13282 for entry in &definition.entries {
13283 let value = self
13284 .get_field(&entry.name)
13285 .unwrap_or_else(|_| entry.kind.default_value());
13286 stream.write(&value)?;
13287 }
13288 Ok(())
13289 }
13290}
13291#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13292#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13293pub struct MvmAdvWaveKilledStunRadioEvent {}
13294impl MvmAdvWaveKilledStunRadioEvent {
13295 #[allow(unused_variables)]
13296 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13297 Ok(MvmAdvWaveKilledStunRadioEvent {})
13298 }
13299 #[allow(unused_variables)]
13300 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13301 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13302 match field {
13303 _ => Err(ParseError::MissingGameEventValue {
13304 ty: "MvmAdvWaveKilledStunRadio",
13305 field: field.into(),
13306 }),
13307 }
13308 }
13309 #[allow(unused_variables)]
13310 fn write(
13311 &self,
13312 stream: &mut BitWriteStream<LittleEndian>,
13313 definition: &GameEventDefinition,
13314 ) -> Result<()> {
13315 for entry in &definition.entries {
13316 let value = self
13317 .get_field(&entry.name)
13318 .unwrap_or_else(|_| entry.kind.default_value());
13319 stream.write(&value)?;
13320 }
13321 Ok(())
13322 }
13323}
13324#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13325#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13326pub struct PlayerDirectHitStunEvent {
13327 pub attacker: u16,
13328 pub victim: u16,
13329}
13330impl PlayerDirectHitStunEvent {
13331 #[allow(unused_variables)]
13332 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13333 Ok(PlayerDirectHitStunEvent {
13334 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
13335 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
13336 })
13337 }
13338 #[allow(unused_variables)]
13339 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13340 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13341 match field {
13342 "attacker" => Ok(self.attacker.clone().into()),
13343 "victim" => Ok(self.victim.clone().into()),
13344 _ => Err(ParseError::MissingGameEventValue {
13345 ty: "PlayerDirectHitStun",
13346 field: field.into(),
13347 }),
13348 }
13349 }
13350 #[allow(unused_variables)]
13351 fn write(
13352 &self,
13353 stream: &mut BitWriteStream<LittleEndian>,
13354 definition: &GameEventDefinition,
13355 ) -> Result<()> {
13356 for entry in &definition.entries {
13357 let value = self
13358 .get_field(&entry.name)
13359 .unwrap_or_else(|_| entry.kind.default_value());
13360 stream.write(&value)?;
13361 }
13362 Ok(())
13363 }
13364}
13365#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13366#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13367pub struct MvmSentryBusterKilledEvent {
13368 pub sentry_buster: u16,
13369}
13370impl MvmSentryBusterKilledEvent {
13371 #[allow(unused_variables)]
13372 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13373 Ok(MvmSentryBusterKilledEvent {
13374 sentry_buster: read_value::<u16>(
13375 stream,
13376 definition.get_entry("sentry_buster"),
13377 "sentry_buster",
13378 )?,
13379 })
13380 }
13381 #[allow(unused_variables)]
13382 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13383 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13384 match field {
13385 "sentry_buster" => Ok(self.sentry_buster.clone().into()),
13386 _ => Err(ParseError::MissingGameEventValue {
13387 ty: "MvmSentryBusterKilled",
13388 field: field.into(),
13389 }),
13390 }
13391 }
13392 #[allow(unused_variables)]
13393 fn write(
13394 &self,
13395 stream: &mut BitWriteStream<LittleEndian>,
13396 definition: &GameEventDefinition,
13397 ) -> Result<()> {
13398 for entry in &definition.entries {
13399 let value = self
13400 .get_field(&entry.name)
13401 .unwrap_or_else(|_| entry.kind.default_value());
13402 stream.write(&value)?;
13403 }
13404 Ok(())
13405 }
13406}
13407#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13408#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13409pub struct UpgradesFileChangedEvent {
13410 pub path: MaybeUtf8String,
13411}
13412impl UpgradesFileChangedEvent {
13413 #[allow(unused_variables)]
13414 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13415 Ok(UpgradesFileChangedEvent {
13416 path: read_value::<MaybeUtf8String>(stream, definition.get_entry("path"), "path")?,
13417 })
13418 }
13419 #[allow(unused_variables)]
13420 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13421 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13422 match field {
13423 "path" => Ok(self.path.clone().into()),
13424 _ => Err(ParseError::MissingGameEventValue {
13425 ty: "UpgradesFileChanged",
13426 field: field.into(),
13427 }),
13428 }
13429 }
13430 #[allow(unused_variables)]
13431 fn write(
13432 &self,
13433 stream: &mut BitWriteStream<LittleEndian>,
13434 definition: &GameEventDefinition,
13435 ) -> Result<()> {
13436 for entry in &definition.entries {
13437 let value = self
13438 .get_field(&entry.name)
13439 .unwrap_or_else(|_| entry.kind.default_value());
13440 stream.write(&value)?;
13441 }
13442 Ok(())
13443 }
13444}
13445#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13446#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13447pub struct RdTeamPointsChangedEvent {
13448 pub points: u16,
13449 pub team: u8,
13450 pub method: u8,
13451}
13452impl RdTeamPointsChangedEvent {
13453 #[allow(unused_variables)]
13454 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13455 Ok(RdTeamPointsChangedEvent {
13456 points: read_value::<u16>(stream, definition.get_entry("points"), "points")?,
13457 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
13458 method: read_value::<u8>(stream, definition.get_entry("method"), "method")?,
13459 })
13460 }
13461 #[allow(unused_variables)]
13462 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13463 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13464 match field {
13465 "points" => Ok(self.points.clone().into()),
13466 "team" => Ok(self.team.clone().into()),
13467 "method" => Ok(self.method.clone().into()),
13468 _ => Err(ParseError::MissingGameEventValue {
13469 ty: "RdTeamPointsChanged",
13470 field: field.into(),
13471 }),
13472 }
13473 }
13474 #[allow(unused_variables)]
13475 fn write(
13476 &self,
13477 stream: &mut BitWriteStream<LittleEndian>,
13478 definition: &GameEventDefinition,
13479 ) -> Result<()> {
13480 for entry in &definition.entries {
13481 let value = self
13482 .get_field(&entry.name)
13483 .unwrap_or_else(|_| entry.kind.default_value());
13484 stream.write(&value)?;
13485 }
13486 Ok(())
13487 }
13488}
13489#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13490#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13491pub struct RdRulesStateChangedEvent {}
13492impl RdRulesStateChangedEvent {
13493 #[allow(unused_variables)]
13494 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13495 Ok(RdRulesStateChangedEvent {})
13496 }
13497 #[allow(unused_variables)]
13498 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13499 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13500 match field {
13501 _ => Err(ParseError::MissingGameEventValue {
13502 ty: "RdRulesStateChanged",
13503 field: field.into(),
13504 }),
13505 }
13506 }
13507 #[allow(unused_variables)]
13508 fn write(
13509 &self,
13510 stream: &mut BitWriteStream<LittleEndian>,
13511 definition: &GameEventDefinition,
13512 ) -> Result<()> {
13513 for entry in &definition.entries {
13514 let value = self
13515 .get_field(&entry.name)
13516 .unwrap_or_else(|_| entry.kind.default_value());
13517 stream.write(&value)?;
13518 }
13519 Ok(())
13520 }
13521}
13522#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13523#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13524pub struct RdRobotKilledEvent {
13525 pub user_id: u16,
13526 pub victim_ent_index: u32,
13527 pub inflictor_ent_index: u32,
13528 pub attacker: u16,
13529 pub weapon: MaybeUtf8String,
13530 pub weapon_id: u16,
13531 pub damage_bits: u32,
13532 pub custom_kill: u16,
13533 pub weapon_log_class_name: MaybeUtf8String,
13534}
13535impl RdRobotKilledEvent {
13536 #[allow(unused_variables)]
13537 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13538 Ok(RdRobotKilledEvent {
13539 user_id: read_value::<u16>(stream, definition.get_entry("userid"), "user_id")?,
13540 victim_ent_index: read_value::<u32>(
13541 stream,
13542 definition.get_entry("victim_entindex"),
13543 "victim_ent_index",
13544 )?,
13545 inflictor_ent_index: read_value::<u32>(
13546 stream,
13547 definition.get_entry("inflictor_entindex"),
13548 "inflictor_ent_index",
13549 )?,
13550 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
13551 weapon: read_value::<MaybeUtf8String>(
13552 stream,
13553 definition.get_entry("weapon"),
13554 "weapon",
13555 )?,
13556 weapon_id: read_value::<u16>(stream, definition.get_entry("weaponid"), "weapon_id")?,
13557 damage_bits: read_value::<u32>(
13558 stream,
13559 definition.get_entry("damagebits"),
13560 "damage_bits",
13561 )?,
13562 custom_kill: read_value::<u16>(
13563 stream,
13564 definition.get_entry("customkill"),
13565 "custom_kill",
13566 )?,
13567 weapon_log_class_name: read_value::<MaybeUtf8String>(
13568 stream,
13569 definition.get_entry("weapon_logclassname"),
13570 "weapon_log_class_name",
13571 )?,
13572 })
13573 }
13574 #[allow(unused_variables)]
13575 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13576 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13577 match field {
13578 "userid" => Ok(self.user_id.clone().into()),
13579 "victim_entindex" => Ok(self.victim_ent_index.clone().into()),
13580 "inflictor_entindex" => Ok(self.inflictor_ent_index.clone().into()),
13581 "attacker" => Ok(self.attacker.clone().into()),
13582 "weapon" => Ok(self.weapon.clone().into()),
13583 "weaponid" => Ok(self.weapon_id.clone().into()),
13584 "damagebits" => Ok(self.damage_bits.clone().into()),
13585 "customkill" => Ok(self.custom_kill.clone().into()),
13586 "weapon_logclassname" => Ok(self.weapon_log_class_name.clone().into()),
13587 _ => Err(ParseError::MissingGameEventValue {
13588 ty: "RdRobotKilled",
13589 field: field.into(),
13590 }),
13591 }
13592 }
13593 #[allow(unused_variables)]
13594 fn write(
13595 &self,
13596 stream: &mut BitWriteStream<LittleEndian>,
13597 definition: &GameEventDefinition,
13598 ) -> Result<()> {
13599 for entry in &definition.entries {
13600 let value = self
13601 .get_field(&entry.name)
13602 .unwrap_or_else(|_| entry.kind.default_value());
13603 stream.write(&value)?;
13604 }
13605 Ok(())
13606 }
13607}
13608#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13609#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13610pub struct RdRobotImpactEvent {
13611 pub ent_index: u16,
13612 pub impulse_x: f32,
13613 pub impulse_y: f32,
13614 pub impulse_z: f32,
13615}
13616impl RdRobotImpactEvent {
13617 #[allow(unused_variables)]
13618 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13619 Ok(RdRobotImpactEvent {
13620 ent_index: read_value::<u16>(stream, definition.get_entry("entindex"), "ent_index")?,
13621 impulse_x: read_value::<f32>(stream, definition.get_entry("impulse_x"), "impulse_x")?,
13622 impulse_y: read_value::<f32>(stream, definition.get_entry("impulse_y"), "impulse_y")?,
13623 impulse_z: read_value::<f32>(stream, definition.get_entry("impulse_z"), "impulse_z")?,
13624 })
13625 }
13626 #[allow(unused_variables)]
13627 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13628 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13629 match field {
13630 "entindex" => Ok(self.ent_index.clone().into()),
13631 "impulse_x" => Ok(self.impulse_x.clone().into()),
13632 "impulse_y" => Ok(self.impulse_y.clone().into()),
13633 "impulse_z" => Ok(self.impulse_z.clone().into()),
13634 _ => Err(ParseError::MissingGameEventValue {
13635 ty: "RdRobotImpact",
13636 field: field.into(),
13637 }),
13638 }
13639 }
13640 #[allow(unused_variables)]
13641 fn write(
13642 &self,
13643 stream: &mut BitWriteStream<LittleEndian>,
13644 definition: &GameEventDefinition,
13645 ) -> Result<()> {
13646 for entry in &definition.entries {
13647 let value = self
13648 .get_field(&entry.name)
13649 .unwrap_or_else(|_| entry.kind.default_value());
13650 stream.write(&value)?;
13651 }
13652 Ok(())
13653 }
13654}
13655#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13656#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13657pub struct TeamPlayPreRoundTimeLeftEvent {
13658 pub time: u16,
13659}
13660impl TeamPlayPreRoundTimeLeftEvent {
13661 #[allow(unused_variables)]
13662 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13663 Ok(TeamPlayPreRoundTimeLeftEvent {
13664 time: read_value::<u16>(stream, definition.get_entry("time"), "time")?,
13665 })
13666 }
13667 #[allow(unused_variables)]
13668 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13669 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13670 match field {
13671 "time" => Ok(self.time.clone().into()),
13672 _ => Err(ParseError::MissingGameEventValue {
13673 ty: "TeamPlayPreRoundTimeLeft",
13674 field: field.into(),
13675 }),
13676 }
13677 }
13678 #[allow(unused_variables)]
13679 fn write(
13680 &self,
13681 stream: &mut BitWriteStream<LittleEndian>,
13682 definition: &GameEventDefinition,
13683 ) -> Result<()> {
13684 for entry in &definition.entries {
13685 let value = self
13686 .get_field(&entry.name)
13687 .unwrap_or_else(|_| entry.kind.default_value());
13688 stream.write(&value)?;
13689 }
13690 Ok(())
13691 }
13692}
13693#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13694#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13695pub struct ParachuteDeployEvent {
13696 pub index: u16,
13697}
13698impl ParachuteDeployEvent {
13699 #[allow(unused_variables)]
13700 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13701 Ok(ParachuteDeployEvent {
13702 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13703 })
13704 }
13705 #[allow(unused_variables)]
13706 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13707 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13708 match field {
13709 "index" => Ok(self.index.clone().into()),
13710 _ => Err(ParseError::MissingGameEventValue {
13711 ty: "ParachuteDeploy",
13712 field: field.into(),
13713 }),
13714 }
13715 }
13716 #[allow(unused_variables)]
13717 fn write(
13718 &self,
13719 stream: &mut BitWriteStream<LittleEndian>,
13720 definition: &GameEventDefinition,
13721 ) -> Result<()> {
13722 for entry in &definition.entries {
13723 let value = self
13724 .get_field(&entry.name)
13725 .unwrap_or_else(|_| entry.kind.default_value());
13726 stream.write(&value)?;
13727 }
13728 Ok(())
13729 }
13730}
13731#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13732#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13733pub struct ParachuteHolsterEvent {
13734 pub index: u16,
13735}
13736impl ParachuteHolsterEvent {
13737 #[allow(unused_variables)]
13738 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13739 Ok(ParachuteHolsterEvent {
13740 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13741 })
13742 }
13743 #[allow(unused_variables)]
13744 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13745 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13746 match field {
13747 "index" => Ok(self.index.clone().into()),
13748 _ => Err(ParseError::MissingGameEventValue {
13749 ty: "ParachuteHolster",
13750 field: field.into(),
13751 }),
13752 }
13753 }
13754 #[allow(unused_variables)]
13755 fn write(
13756 &self,
13757 stream: &mut BitWriteStream<LittleEndian>,
13758 definition: &GameEventDefinition,
13759 ) -> Result<()> {
13760 for entry in &definition.entries {
13761 let value = self
13762 .get_field(&entry.name)
13763 .unwrap_or_else(|_| entry.kind.default_value());
13764 stream.write(&value)?;
13765 }
13766 Ok(())
13767 }
13768}
13769#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13770#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13771pub struct KillRefillsMeterEvent {
13772 pub index: u16,
13773}
13774impl KillRefillsMeterEvent {
13775 #[allow(unused_variables)]
13776 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13777 Ok(KillRefillsMeterEvent {
13778 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13779 })
13780 }
13781 #[allow(unused_variables)]
13782 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13783 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13784 match field {
13785 "index" => Ok(self.index.clone().into()),
13786 _ => Err(ParseError::MissingGameEventValue {
13787 ty: "KillRefillsMeter",
13788 field: field.into(),
13789 }),
13790 }
13791 }
13792 #[allow(unused_variables)]
13793 fn write(
13794 &self,
13795 stream: &mut BitWriteStream<LittleEndian>,
13796 definition: &GameEventDefinition,
13797 ) -> Result<()> {
13798 for entry in &definition.entries {
13799 let value = self
13800 .get_field(&entry.name)
13801 .unwrap_or_else(|_| entry.kind.default_value());
13802 stream.write(&value)?;
13803 }
13804 Ok(())
13805 }
13806}
13807#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13808#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13809pub struct RpsTauntEventEvent {
13810 pub winner: u16,
13811 pub winner_rps: u8,
13812 pub loser: u16,
13813 pub loser_rps: u8,
13814}
13815impl RpsTauntEventEvent {
13816 #[allow(unused_variables)]
13817 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13818 Ok(RpsTauntEventEvent {
13819 winner: read_value::<u16>(stream, definition.get_entry("winner"), "winner")?,
13820 winner_rps: read_value::<u8>(stream, definition.get_entry("winner_rps"), "winner_rps")?,
13821 loser: read_value::<u16>(stream, definition.get_entry("loser"), "loser")?,
13822 loser_rps: read_value::<u8>(stream, definition.get_entry("loser_rps"), "loser_rps")?,
13823 })
13824 }
13825 #[allow(unused_variables)]
13826 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13827 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13828 match field {
13829 "winner" => Ok(self.winner.clone().into()),
13830 "winner_rps" => Ok(self.winner_rps.clone().into()),
13831 "loser" => Ok(self.loser.clone().into()),
13832 "loser_rps" => Ok(self.loser_rps.clone().into()),
13833 _ => Err(ParseError::MissingGameEventValue {
13834 ty: "RpsTauntEvent",
13835 field: field.into(),
13836 }),
13837 }
13838 }
13839 #[allow(unused_variables)]
13840 fn write(
13841 &self,
13842 stream: &mut BitWriteStream<LittleEndian>,
13843 definition: &GameEventDefinition,
13844 ) -> Result<()> {
13845 for entry in &definition.entries {
13846 let value = self
13847 .get_field(&entry.name)
13848 .unwrap_or_else(|_| entry.kind.default_value());
13849 stream.write(&value)?;
13850 }
13851 Ok(())
13852 }
13853}
13854#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13855#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13856pub struct CongaKillEvent {
13857 pub index: u16,
13858}
13859impl CongaKillEvent {
13860 #[allow(unused_variables)]
13861 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13862 Ok(CongaKillEvent {
13863 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13864 })
13865 }
13866 #[allow(unused_variables)]
13867 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13868 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13869 match field {
13870 "index" => Ok(self.index.clone().into()),
13871 _ => Err(ParseError::MissingGameEventValue {
13872 ty: "CongaKill",
13873 field: field.into(),
13874 }),
13875 }
13876 }
13877 #[allow(unused_variables)]
13878 fn write(
13879 &self,
13880 stream: &mut BitWriteStream<LittleEndian>,
13881 definition: &GameEventDefinition,
13882 ) -> Result<()> {
13883 for entry in &definition.entries {
13884 let value = self
13885 .get_field(&entry.name)
13886 .unwrap_or_else(|_| entry.kind.default_value());
13887 stream.write(&value)?;
13888 }
13889 Ok(())
13890 }
13891}
13892#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13893#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13894pub struct PlayerInitialSpawnEvent {
13895 pub index: u16,
13896}
13897impl PlayerInitialSpawnEvent {
13898 #[allow(unused_variables)]
13899 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13900 Ok(PlayerInitialSpawnEvent {
13901 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13902 })
13903 }
13904 #[allow(unused_variables)]
13905 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13906 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13907 match field {
13908 "index" => Ok(self.index.clone().into()),
13909 _ => Err(ParseError::MissingGameEventValue {
13910 ty: "PlayerInitialSpawn",
13911 field: field.into(),
13912 }),
13913 }
13914 }
13915 #[allow(unused_variables)]
13916 fn write(
13917 &self,
13918 stream: &mut BitWriteStream<LittleEndian>,
13919 definition: &GameEventDefinition,
13920 ) -> Result<()> {
13921 for entry in &definition.entries {
13922 let value = self
13923 .get_field(&entry.name)
13924 .unwrap_or_else(|_| entry.kind.default_value());
13925 stream.write(&value)?;
13926 }
13927 Ok(())
13928 }
13929}
13930#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13931#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13932pub struct CompetitiveVictoryEvent {}
13933impl CompetitiveVictoryEvent {
13934 #[allow(unused_variables)]
13935 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13936 Ok(CompetitiveVictoryEvent {})
13937 }
13938 #[allow(unused_variables)]
13939 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13940 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
13941 match field {
13942 _ => Err(ParseError::MissingGameEventValue {
13943 ty: "CompetitiveVictory",
13944 field: field.into(),
13945 }),
13946 }
13947 }
13948 #[allow(unused_variables)]
13949 fn write(
13950 &self,
13951 stream: &mut BitWriteStream<LittleEndian>,
13952 definition: &GameEventDefinition,
13953 ) -> Result<()> {
13954 for entry in &definition.entries {
13955 let value = self
13956 .get_field(&entry.name)
13957 .unwrap_or_else(|_| entry.kind.default_value());
13958 stream.write(&value)?;
13959 }
13960 Ok(())
13961 }
13962}
13963#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
13964#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
13965pub struct CompetitiveStatsUpdateEvent {
13966 pub index: u16,
13967 pub kills_rank: u8,
13968 pub score_rank: u8,
13969 pub damage_rank: u8,
13970 pub healing_rank: u8,
13971 pub support_rank: u8,
13972}
13973impl CompetitiveStatsUpdateEvent {
13974 #[allow(unused_variables)]
13975 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
13976 Ok(CompetitiveStatsUpdateEvent {
13977 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
13978 kills_rank: read_value::<u8>(stream, definition.get_entry("kills_rank"), "kills_rank")?,
13979 score_rank: read_value::<u8>(stream, definition.get_entry("score_rank"), "score_rank")?,
13980 damage_rank: read_value::<u8>(
13981 stream,
13982 definition.get_entry("damage_rank"),
13983 "damage_rank",
13984 )?,
13985 healing_rank: read_value::<u8>(
13986 stream,
13987 definition.get_entry("healing_rank"),
13988 "healing_rank",
13989 )?,
13990 support_rank: read_value::<u8>(
13991 stream,
13992 definition.get_entry("support_rank"),
13993 "support_rank",
13994 )?,
13995 })
13996 }
13997 #[allow(unused_variables)]
13998 fn get_field(&self, field: &str) -> Result<GameEventValue> {
13999 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14000 match field {
14001 "index" => Ok(self.index.clone().into()),
14002 "kills_rank" => Ok(self.kills_rank.clone().into()),
14003 "score_rank" => Ok(self.score_rank.clone().into()),
14004 "damage_rank" => Ok(self.damage_rank.clone().into()),
14005 "healing_rank" => Ok(self.healing_rank.clone().into()),
14006 "support_rank" => Ok(self.support_rank.clone().into()),
14007 _ => Err(ParseError::MissingGameEventValue {
14008 ty: "CompetitiveStatsUpdate",
14009 field: field.into(),
14010 }),
14011 }
14012 }
14013 #[allow(unused_variables)]
14014 fn write(
14015 &self,
14016 stream: &mut BitWriteStream<LittleEndian>,
14017 definition: &GameEventDefinition,
14018 ) -> Result<()> {
14019 for entry in &definition.entries {
14020 let value = self
14021 .get_field(&entry.name)
14022 .unwrap_or_else(|_| entry.kind.default_value());
14023 stream.write(&value)?;
14024 }
14025 Ok(())
14026 }
14027}
14028#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14029#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14030pub struct MiniGameWinEvent {
14031 pub team: u8,
14032 pub kind: u8,
14033}
14034impl MiniGameWinEvent {
14035 #[allow(unused_variables)]
14036 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14037 Ok(MiniGameWinEvent {
14038 team: read_value::<u8>(stream, definition.get_entry("team"), "team")?,
14039 kind: read_value::<u8>(stream, definition.get_entry("type"), "kind")?,
14040 })
14041 }
14042 #[allow(unused_variables)]
14043 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14044 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14045 match field {
14046 "team" => Ok(self.team.clone().into()),
14047 "type" => Ok(self.kind.clone().into()),
14048 _ => Err(ParseError::MissingGameEventValue {
14049 ty: "MiniGameWin",
14050 field: field.into(),
14051 }),
14052 }
14053 }
14054 #[allow(unused_variables)]
14055 fn write(
14056 &self,
14057 stream: &mut BitWriteStream<LittleEndian>,
14058 definition: &GameEventDefinition,
14059 ) -> Result<()> {
14060 for entry in &definition.entries {
14061 let value = self
14062 .get_field(&entry.name)
14063 .unwrap_or_else(|_| entry.kind.default_value());
14064 stream.write(&value)?;
14065 }
14066 Ok(())
14067 }
14068}
14069#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14070#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14071pub struct SentryOnGoActiveEvent {
14072 pub index: u16,
14073}
14074impl SentryOnGoActiveEvent {
14075 #[allow(unused_variables)]
14076 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14077 Ok(SentryOnGoActiveEvent {
14078 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
14079 })
14080 }
14081 #[allow(unused_variables)]
14082 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14083 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14084 match field {
14085 "index" => Ok(self.index.clone().into()),
14086 _ => Err(ParseError::MissingGameEventValue {
14087 ty: "SentryOnGoActive",
14088 field: field.into(),
14089 }),
14090 }
14091 }
14092 #[allow(unused_variables)]
14093 fn write(
14094 &self,
14095 stream: &mut BitWriteStream<LittleEndian>,
14096 definition: &GameEventDefinition,
14097 ) -> Result<()> {
14098 for entry in &definition.entries {
14099 let value = self
14100 .get_field(&entry.name)
14101 .unwrap_or_else(|_| entry.kind.default_value());
14102 stream.write(&value)?;
14103 }
14104 Ok(())
14105 }
14106}
14107#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14108#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14109pub struct DuckXpLevelUpEvent {
14110 pub level: u16,
14111}
14112impl DuckXpLevelUpEvent {
14113 #[allow(unused_variables)]
14114 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14115 Ok(DuckXpLevelUpEvent {
14116 level: read_value::<u16>(stream, definition.get_entry("level"), "level")?,
14117 })
14118 }
14119 #[allow(unused_variables)]
14120 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14121 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14122 match field {
14123 "level" => Ok(self.level.clone().into()),
14124 _ => Err(ParseError::MissingGameEventValue {
14125 ty: "DuckXpLevelUp",
14126 field: field.into(),
14127 }),
14128 }
14129 }
14130 #[allow(unused_variables)]
14131 fn write(
14132 &self,
14133 stream: &mut BitWriteStream<LittleEndian>,
14134 definition: &GameEventDefinition,
14135 ) -> Result<()> {
14136 for entry in &definition.entries {
14137 let value = self
14138 .get_field(&entry.name)
14139 .unwrap_or_else(|_| entry.kind.default_value());
14140 stream.write(&value)?;
14141 }
14142 Ok(())
14143 }
14144}
14145#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14146#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14147pub struct QuestLogOpenedEvent {}
14148impl QuestLogOpenedEvent {
14149 #[allow(unused_variables)]
14150 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14151 Ok(QuestLogOpenedEvent {})
14152 }
14153 #[allow(unused_variables)]
14154 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14155 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14156 match field {
14157 _ => Err(ParseError::MissingGameEventValue {
14158 ty: "QuestLogOpened",
14159 field: field.into(),
14160 }),
14161 }
14162 }
14163 #[allow(unused_variables)]
14164 fn write(
14165 &self,
14166 stream: &mut BitWriteStream<LittleEndian>,
14167 definition: &GameEventDefinition,
14168 ) -> Result<()> {
14169 for entry in &definition.entries {
14170 let value = self
14171 .get_field(&entry.name)
14172 .unwrap_or_else(|_| entry.kind.default_value());
14173 stream.write(&value)?;
14174 }
14175 Ok(())
14176 }
14177}
14178#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14179#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14180pub struct SchemaUpdatedEvent {}
14181impl SchemaUpdatedEvent {
14182 #[allow(unused_variables)]
14183 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14184 Ok(SchemaUpdatedEvent {})
14185 }
14186 #[allow(unused_variables)]
14187 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14188 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14189 match field {
14190 _ => Err(ParseError::MissingGameEventValue {
14191 ty: "SchemaUpdated",
14192 field: field.into(),
14193 }),
14194 }
14195 }
14196 #[allow(unused_variables)]
14197 fn write(
14198 &self,
14199 stream: &mut BitWriteStream<LittleEndian>,
14200 definition: &GameEventDefinition,
14201 ) -> Result<()> {
14202 for entry in &definition.entries {
14203 let value = self
14204 .get_field(&entry.name)
14205 .unwrap_or_else(|_| entry.kind.default_value());
14206 stream.write(&value)?;
14207 }
14208 Ok(())
14209 }
14210}
14211#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14212#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14213pub struct LocalPlayerPickupWeaponEvent {}
14214impl LocalPlayerPickupWeaponEvent {
14215 #[allow(unused_variables)]
14216 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14217 Ok(LocalPlayerPickupWeaponEvent {})
14218 }
14219 #[allow(unused_variables)]
14220 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14221 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14222 match field {
14223 _ => Err(ParseError::MissingGameEventValue {
14224 ty: "LocalPlayerPickupWeapon",
14225 field: field.into(),
14226 }),
14227 }
14228 }
14229 #[allow(unused_variables)]
14230 fn write(
14231 &self,
14232 stream: &mut BitWriteStream<LittleEndian>,
14233 definition: &GameEventDefinition,
14234 ) -> Result<()> {
14235 for entry in &definition.entries {
14236 let value = self
14237 .get_field(&entry.name)
14238 .unwrap_or_else(|_| entry.kind.default_value());
14239 stream.write(&value)?;
14240 }
14241 Ok(())
14242 }
14243}
14244#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14245#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14246pub struct RdPlayerScorePointsEvent {
14247 pub player: u16,
14248 pub method: u16,
14249 pub amount: u16,
14250}
14251impl RdPlayerScorePointsEvent {
14252 #[allow(unused_variables)]
14253 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14254 Ok(RdPlayerScorePointsEvent {
14255 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
14256 method: read_value::<u16>(stream, definition.get_entry("method"), "method")?,
14257 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
14258 })
14259 }
14260 #[allow(unused_variables)]
14261 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14262 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14263 match field {
14264 "player" => Ok(self.player.clone().into()),
14265 "method" => Ok(self.method.clone().into()),
14266 "amount" => Ok(self.amount.clone().into()),
14267 _ => Err(ParseError::MissingGameEventValue {
14268 ty: "RdPlayerScorePoints",
14269 field: field.into(),
14270 }),
14271 }
14272 }
14273 #[allow(unused_variables)]
14274 fn write(
14275 &self,
14276 stream: &mut BitWriteStream<LittleEndian>,
14277 definition: &GameEventDefinition,
14278 ) -> Result<()> {
14279 for entry in &definition.entries {
14280 let value = self
14281 .get_field(&entry.name)
14282 .unwrap_or_else(|_| entry.kind.default_value());
14283 stream.write(&value)?;
14284 }
14285 Ok(())
14286 }
14287}
14288#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14289#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14290pub struct DemomanDetStickiesEvent {
14291 pub player: u16,
14292}
14293impl DemomanDetStickiesEvent {
14294 #[allow(unused_variables)]
14295 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14296 Ok(DemomanDetStickiesEvent {
14297 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
14298 })
14299 }
14300 #[allow(unused_variables)]
14301 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14302 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14303 match field {
14304 "player" => Ok(self.player.clone().into()),
14305 _ => Err(ParseError::MissingGameEventValue {
14306 ty: "DemomanDetStickies",
14307 field: field.into(),
14308 }),
14309 }
14310 }
14311 #[allow(unused_variables)]
14312 fn write(
14313 &self,
14314 stream: &mut BitWriteStream<LittleEndian>,
14315 definition: &GameEventDefinition,
14316 ) -> Result<()> {
14317 for entry in &definition.entries {
14318 let value = self
14319 .get_field(&entry.name)
14320 .unwrap_or_else(|_| entry.kind.default_value());
14321 stream.write(&value)?;
14322 }
14323 Ok(())
14324 }
14325}
14326#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14327#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14328pub struct QuestObjectiveCompletedEvent {
14329 pub quest_item_id_low: u32,
14330 pub quest_item_id_hi: u32,
14331 pub quest_objective_id: u32,
14332 pub scorer_user_id: u16,
14333}
14334impl QuestObjectiveCompletedEvent {
14335 #[allow(unused_variables)]
14336 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14337 Ok(QuestObjectiveCompletedEvent {
14338 quest_item_id_low: read_value::<u32>(
14339 stream,
14340 definition.get_entry("quest_item_id_low"),
14341 "quest_item_id_low",
14342 )?,
14343 quest_item_id_hi: read_value::<u32>(
14344 stream,
14345 definition.get_entry("quest_item_id_hi"),
14346 "quest_item_id_hi",
14347 )?,
14348 quest_objective_id: read_value::<u32>(
14349 stream,
14350 definition.get_entry("quest_objective_id"),
14351 "quest_objective_id",
14352 )?,
14353 scorer_user_id: read_value::<u16>(
14354 stream,
14355 definition.get_entry("scorer_user_id"),
14356 "scorer_user_id",
14357 )?,
14358 })
14359 }
14360 #[allow(unused_variables)]
14361 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14362 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14363 match field {
14364 "quest_item_id_low" => Ok(self.quest_item_id_low.clone().into()),
14365 "quest_item_id_hi" => Ok(self.quest_item_id_hi.clone().into()),
14366 "quest_objective_id" => Ok(self.quest_objective_id.clone().into()),
14367 "scorer_user_id" => Ok(self.scorer_user_id.clone().into()),
14368 _ => Err(ParseError::MissingGameEventValue {
14369 ty: "QuestObjectiveCompleted",
14370 field: field.into(),
14371 }),
14372 }
14373 }
14374 #[allow(unused_variables)]
14375 fn write(
14376 &self,
14377 stream: &mut BitWriteStream<LittleEndian>,
14378 definition: &GameEventDefinition,
14379 ) -> Result<()> {
14380 for entry in &definition.entries {
14381 let value = self
14382 .get_field(&entry.name)
14383 .unwrap_or_else(|_| entry.kind.default_value());
14384 stream.write(&value)?;
14385 }
14386 Ok(())
14387 }
14388}
14389#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14390#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14391pub struct PlayerScoreChangedEvent {
14392 pub player: u8,
14393 pub delta: u16,
14394}
14395impl PlayerScoreChangedEvent {
14396 #[allow(unused_variables)]
14397 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14398 Ok(PlayerScoreChangedEvent {
14399 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
14400 delta: read_value::<u16>(stream, definition.get_entry("delta"), "delta")?,
14401 })
14402 }
14403 #[allow(unused_variables)]
14404 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14405 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14406 match field {
14407 "player" => Ok(self.player.clone().into()),
14408 "delta" => Ok(self.delta.clone().into()),
14409 _ => Err(ParseError::MissingGameEventValue {
14410 ty: "PlayerScoreChanged",
14411 field: field.into(),
14412 }),
14413 }
14414 }
14415 #[allow(unused_variables)]
14416 fn write(
14417 &self,
14418 stream: &mut BitWriteStream<LittleEndian>,
14419 definition: &GameEventDefinition,
14420 ) -> Result<()> {
14421 for entry in &definition.entries {
14422 let value = self
14423 .get_field(&entry.name)
14424 .unwrap_or_else(|_| entry.kind.default_value());
14425 stream.write(&value)?;
14426 }
14427 Ok(())
14428 }
14429}
14430#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14431#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14432pub struct KilledCappingPlayerEvent {
14433 pub cp: u8,
14434 pub killer: u8,
14435 pub victim: u8,
14436 pub assister: u8,
14437}
14438impl KilledCappingPlayerEvent {
14439 #[allow(unused_variables)]
14440 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14441 Ok(KilledCappingPlayerEvent {
14442 cp: read_value::<u8>(stream, definition.get_entry("cp"), "cp")?,
14443 killer: read_value::<u8>(stream, definition.get_entry("killer"), "killer")?,
14444 victim: read_value::<u8>(stream, definition.get_entry("victim"), "victim")?,
14445 assister: read_value::<u8>(stream, definition.get_entry("assister"), "assister")?,
14446 })
14447 }
14448 #[allow(unused_variables)]
14449 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14450 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14451 match field {
14452 "cp" => Ok(self.cp.clone().into()),
14453 "killer" => Ok(self.killer.clone().into()),
14454 "victim" => Ok(self.victim.clone().into()),
14455 "assister" => Ok(self.assister.clone().into()),
14456 _ => Err(ParseError::MissingGameEventValue {
14457 ty: "KilledCappingPlayer",
14458 field: field.into(),
14459 }),
14460 }
14461 }
14462 #[allow(unused_variables)]
14463 fn write(
14464 &self,
14465 stream: &mut BitWriteStream<LittleEndian>,
14466 definition: &GameEventDefinition,
14467 ) -> Result<()> {
14468 for entry in &definition.entries {
14469 let value = self
14470 .get_field(&entry.name)
14471 .unwrap_or_else(|_| entry.kind.default_value());
14472 stream.write(&value)?;
14473 }
14474 Ok(())
14475 }
14476}
14477#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14478#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14479pub struct EnvironmentalDeathEvent {
14480 pub killer: u8,
14481 pub victim: u8,
14482}
14483impl EnvironmentalDeathEvent {
14484 #[allow(unused_variables)]
14485 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14486 Ok(EnvironmentalDeathEvent {
14487 killer: read_value::<u8>(stream, definition.get_entry("killer"), "killer")?,
14488 victim: read_value::<u8>(stream, definition.get_entry("victim"), "victim")?,
14489 })
14490 }
14491 #[allow(unused_variables)]
14492 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14493 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14494 match field {
14495 "killer" => Ok(self.killer.clone().into()),
14496 "victim" => Ok(self.victim.clone().into()),
14497 _ => Err(ParseError::MissingGameEventValue {
14498 ty: "EnvironmentalDeath",
14499 field: field.into(),
14500 }),
14501 }
14502 }
14503 #[allow(unused_variables)]
14504 fn write(
14505 &self,
14506 stream: &mut BitWriteStream<LittleEndian>,
14507 definition: &GameEventDefinition,
14508 ) -> Result<()> {
14509 for entry in &definition.entries {
14510 let value = self
14511 .get_field(&entry.name)
14512 .unwrap_or_else(|_| entry.kind.default_value());
14513 stream.write(&value)?;
14514 }
14515 Ok(())
14516 }
14517}
14518#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14519#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14520pub struct ProjectileDirectHitEvent {
14521 pub attacker: u8,
14522 pub victim: u8,
14523 pub weapon_def_index: u32,
14524}
14525impl ProjectileDirectHitEvent {
14526 #[allow(unused_variables)]
14527 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14528 Ok(ProjectileDirectHitEvent {
14529 attacker: read_value::<u8>(stream, definition.get_entry("attacker"), "attacker")?,
14530 victim: read_value::<u8>(stream, definition.get_entry("victim"), "victim")?,
14531 weapon_def_index: read_value::<u32>(
14532 stream,
14533 definition.get_entry("weapon_def_index"),
14534 "weapon_def_index",
14535 )?,
14536 })
14537 }
14538 #[allow(unused_variables)]
14539 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14540 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14541 match field {
14542 "attacker" => Ok(self.attacker.clone().into()),
14543 "victim" => Ok(self.victim.clone().into()),
14544 "weapon_def_index" => Ok(self.weapon_def_index.clone().into()),
14545 _ => Err(ParseError::MissingGameEventValue {
14546 ty: "ProjectileDirectHit",
14547 field: field.into(),
14548 }),
14549 }
14550 }
14551 #[allow(unused_variables)]
14552 fn write(
14553 &self,
14554 stream: &mut BitWriteStream<LittleEndian>,
14555 definition: &GameEventDefinition,
14556 ) -> Result<()> {
14557 for entry in &definition.entries {
14558 let value = self
14559 .get_field(&entry.name)
14560 .unwrap_or_else(|_| entry.kind.default_value());
14561 stream.write(&value)?;
14562 }
14563 Ok(())
14564 }
14565}
14566#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14567#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14568pub struct PassGetEvent {
14569 pub owner: u16,
14570}
14571impl PassGetEvent {
14572 #[allow(unused_variables)]
14573 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14574 Ok(PassGetEvent {
14575 owner: read_value::<u16>(stream, definition.get_entry("owner"), "owner")?,
14576 })
14577 }
14578 #[allow(unused_variables)]
14579 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14580 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14581 match field {
14582 "owner" => Ok(self.owner.clone().into()),
14583 _ => Err(ParseError::MissingGameEventValue {
14584 ty: "PassGet",
14585 field: field.into(),
14586 }),
14587 }
14588 }
14589 #[allow(unused_variables)]
14590 fn write(
14591 &self,
14592 stream: &mut BitWriteStream<LittleEndian>,
14593 definition: &GameEventDefinition,
14594 ) -> Result<()> {
14595 for entry in &definition.entries {
14596 let value = self
14597 .get_field(&entry.name)
14598 .unwrap_or_else(|_| entry.kind.default_value());
14599 stream.write(&value)?;
14600 }
14601 Ok(())
14602 }
14603}
14604#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14605#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14606pub struct PassScoreEvent {
14607 pub scorer: u16,
14608 pub assister: u16,
14609 pub points: u8,
14610}
14611impl PassScoreEvent {
14612 #[allow(unused_variables)]
14613 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14614 Ok(PassScoreEvent {
14615 scorer: read_value::<u16>(stream, definition.get_entry("scorer"), "scorer")?,
14616 assister: read_value::<u16>(stream, definition.get_entry("assister"), "assister")?,
14617 points: read_value::<u8>(stream, definition.get_entry("points"), "points")?,
14618 })
14619 }
14620 #[allow(unused_variables)]
14621 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14622 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14623 match field {
14624 "scorer" => Ok(self.scorer.clone().into()),
14625 "assister" => Ok(self.assister.clone().into()),
14626 "points" => Ok(self.points.clone().into()),
14627 _ => Err(ParseError::MissingGameEventValue {
14628 ty: "PassScore",
14629 field: field.into(),
14630 }),
14631 }
14632 }
14633 #[allow(unused_variables)]
14634 fn write(
14635 &self,
14636 stream: &mut BitWriteStream<LittleEndian>,
14637 definition: &GameEventDefinition,
14638 ) -> Result<()> {
14639 for entry in &definition.entries {
14640 let value = self
14641 .get_field(&entry.name)
14642 .unwrap_or_else(|_| entry.kind.default_value());
14643 stream.write(&value)?;
14644 }
14645 Ok(())
14646 }
14647}
14648#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14649#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14650pub struct PassFreeEvent {
14651 pub owner: u16,
14652 pub attacker: u16,
14653}
14654impl PassFreeEvent {
14655 #[allow(unused_variables)]
14656 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14657 Ok(PassFreeEvent {
14658 owner: read_value::<u16>(stream, definition.get_entry("owner"), "owner")?,
14659 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
14660 })
14661 }
14662 #[allow(unused_variables)]
14663 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14664 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14665 match field {
14666 "owner" => Ok(self.owner.clone().into()),
14667 "attacker" => Ok(self.attacker.clone().into()),
14668 _ => Err(ParseError::MissingGameEventValue {
14669 ty: "PassFree",
14670 field: field.into(),
14671 }),
14672 }
14673 }
14674 #[allow(unused_variables)]
14675 fn write(
14676 &self,
14677 stream: &mut BitWriteStream<LittleEndian>,
14678 definition: &GameEventDefinition,
14679 ) -> Result<()> {
14680 for entry in &definition.entries {
14681 let value = self
14682 .get_field(&entry.name)
14683 .unwrap_or_else(|_| entry.kind.default_value());
14684 stream.write(&value)?;
14685 }
14686 Ok(())
14687 }
14688}
14689#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14690#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14691pub struct PassPassCaughtEvent {
14692 pub passer: u16,
14693 pub catcher: u16,
14694 pub dist: f32,
14695 pub duration: f32,
14696}
14697impl PassPassCaughtEvent {
14698 #[allow(unused_variables)]
14699 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14700 Ok(PassPassCaughtEvent {
14701 passer: read_value::<u16>(stream, definition.get_entry("passer"), "passer")?,
14702 catcher: read_value::<u16>(stream, definition.get_entry("catcher"), "catcher")?,
14703 dist: read_value::<f32>(stream, definition.get_entry("dist"), "dist")?,
14704 duration: read_value::<f32>(stream, definition.get_entry("duration"), "duration")?,
14705 })
14706 }
14707 #[allow(unused_variables)]
14708 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14709 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14710 match field {
14711 "passer" => Ok(self.passer.clone().into()),
14712 "catcher" => Ok(self.catcher.clone().into()),
14713 "dist" => Ok(self.dist.clone().into()),
14714 "duration" => Ok(self.duration.clone().into()),
14715 _ => Err(ParseError::MissingGameEventValue {
14716 ty: "PassPassCaught",
14717 field: field.into(),
14718 }),
14719 }
14720 }
14721 #[allow(unused_variables)]
14722 fn write(
14723 &self,
14724 stream: &mut BitWriteStream<LittleEndian>,
14725 definition: &GameEventDefinition,
14726 ) -> Result<()> {
14727 for entry in &definition.entries {
14728 let value = self
14729 .get_field(&entry.name)
14730 .unwrap_or_else(|_| entry.kind.default_value());
14731 stream.write(&value)?;
14732 }
14733 Ok(())
14734 }
14735}
14736#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14737#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14738pub struct PassBallStolenEvent {
14739 pub victim: u16,
14740 pub attacker: u16,
14741}
14742impl PassBallStolenEvent {
14743 #[allow(unused_variables)]
14744 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14745 Ok(PassBallStolenEvent {
14746 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
14747 attacker: read_value::<u16>(stream, definition.get_entry("attacker"), "attacker")?,
14748 })
14749 }
14750 #[allow(unused_variables)]
14751 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14752 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14753 match field {
14754 "victim" => Ok(self.victim.clone().into()),
14755 "attacker" => Ok(self.attacker.clone().into()),
14756 _ => Err(ParseError::MissingGameEventValue {
14757 ty: "PassBallStolen",
14758 field: field.into(),
14759 }),
14760 }
14761 }
14762 #[allow(unused_variables)]
14763 fn write(
14764 &self,
14765 stream: &mut BitWriteStream<LittleEndian>,
14766 definition: &GameEventDefinition,
14767 ) -> Result<()> {
14768 for entry in &definition.entries {
14769 let value = self
14770 .get_field(&entry.name)
14771 .unwrap_or_else(|_| entry.kind.default_value());
14772 stream.write(&value)?;
14773 }
14774 Ok(())
14775 }
14776}
14777#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14778#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14779pub struct PassBallBlockedEvent {
14780 pub owner: u16,
14781 pub blocker: u16,
14782}
14783impl PassBallBlockedEvent {
14784 #[allow(unused_variables)]
14785 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14786 Ok(PassBallBlockedEvent {
14787 owner: read_value::<u16>(stream, definition.get_entry("owner"), "owner")?,
14788 blocker: read_value::<u16>(stream, definition.get_entry("blocker"), "blocker")?,
14789 })
14790 }
14791 #[allow(unused_variables)]
14792 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14793 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14794 match field {
14795 "owner" => Ok(self.owner.clone().into()),
14796 "blocker" => Ok(self.blocker.clone().into()),
14797 _ => Err(ParseError::MissingGameEventValue {
14798 ty: "PassBallBlocked",
14799 field: field.into(),
14800 }),
14801 }
14802 }
14803 #[allow(unused_variables)]
14804 fn write(
14805 &self,
14806 stream: &mut BitWriteStream<LittleEndian>,
14807 definition: &GameEventDefinition,
14808 ) -> Result<()> {
14809 for entry in &definition.entries {
14810 let value = self
14811 .get_field(&entry.name)
14812 .unwrap_or_else(|_| entry.kind.default_value());
14813 stream.write(&value)?;
14814 }
14815 Ok(())
14816 }
14817}
14818#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14819#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14820pub struct DamagePreventedEvent {
14821 pub preventor: u16,
14822 pub victim: u16,
14823 pub amount: u16,
14824 pub condition: u16,
14825}
14826impl DamagePreventedEvent {
14827 #[allow(unused_variables)]
14828 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14829 Ok(DamagePreventedEvent {
14830 preventor: read_value::<u16>(stream, definition.get_entry("preventor"), "preventor")?,
14831 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
14832 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
14833 condition: read_value::<u16>(stream, definition.get_entry("condition"), "condition")?,
14834 })
14835 }
14836 #[allow(unused_variables)]
14837 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14838 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14839 match field {
14840 "preventor" => Ok(self.preventor.clone().into()),
14841 "victim" => Ok(self.victim.clone().into()),
14842 "amount" => Ok(self.amount.clone().into()),
14843 "condition" => Ok(self.condition.clone().into()),
14844 _ => Err(ParseError::MissingGameEventValue {
14845 ty: "DamagePrevented",
14846 field: field.into(),
14847 }),
14848 }
14849 }
14850 #[allow(unused_variables)]
14851 fn write(
14852 &self,
14853 stream: &mut BitWriteStream<LittleEndian>,
14854 definition: &GameEventDefinition,
14855 ) -> Result<()> {
14856 for entry in &definition.entries {
14857 let value = self
14858 .get_field(&entry.name)
14859 .unwrap_or_else(|_| entry.kind.default_value());
14860 stream.write(&value)?;
14861 }
14862 Ok(())
14863 }
14864}
14865#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14866#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14867pub struct HalloweenBossKilledEvent {
14868 pub boss: u16,
14869 pub killer: u16,
14870}
14871impl HalloweenBossKilledEvent {
14872 #[allow(unused_variables)]
14873 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14874 Ok(HalloweenBossKilledEvent {
14875 boss: read_value::<u16>(stream, definition.get_entry("boss"), "boss")?,
14876 killer: read_value::<u16>(stream, definition.get_entry("killer"), "killer")?,
14877 })
14878 }
14879 #[allow(unused_variables)]
14880 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14881 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14882 match field {
14883 "boss" => Ok(self.boss.clone().into()),
14884 "killer" => Ok(self.killer.clone().into()),
14885 _ => Err(ParseError::MissingGameEventValue {
14886 ty: "HalloweenBossKilled",
14887 field: field.into(),
14888 }),
14889 }
14890 }
14891 #[allow(unused_variables)]
14892 fn write(
14893 &self,
14894 stream: &mut BitWriteStream<LittleEndian>,
14895 definition: &GameEventDefinition,
14896 ) -> Result<()> {
14897 for entry in &definition.entries {
14898 let value = self
14899 .get_field(&entry.name)
14900 .unwrap_or_else(|_| entry.kind.default_value());
14901 stream.write(&value)?;
14902 }
14903 Ok(())
14904 }
14905}
14906#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14907#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14908pub struct EscapedLootIslandEvent {
14909 pub player: u16,
14910}
14911impl EscapedLootIslandEvent {
14912 #[allow(unused_variables)]
14913 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14914 Ok(EscapedLootIslandEvent {
14915 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
14916 })
14917 }
14918 #[allow(unused_variables)]
14919 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14920 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14921 match field {
14922 "player" => Ok(self.player.clone().into()),
14923 _ => Err(ParseError::MissingGameEventValue {
14924 ty: "EscapedLootIsland",
14925 field: field.into(),
14926 }),
14927 }
14928 }
14929 #[allow(unused_variables)]
14930 fn write(
14931 &self,
14932 stream: &mut BitWriteStream<LittleEndian>,
14933 definition: &GameEventDefinition,
14934 ) -> Result<()> {
14935 for entry in &definition.entries {
14936 let value = self
14937 .get_field(&entry.name)
14938 .unwrap_or_else(|_| entry.kind.default_value());
14939 stream.write(&value)?;
14940 }
14941 Ok(())
14942 }
14943}
14944#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14945#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14946pub struct TaggedPlayerAsItEvent {
14947 pub player: u16,
14948}
14949impl TaggedPlayerAsItEvent {
14950 #[allow(unused_variables)]
14951 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14952 Ok(TaggedPlayerAsItEvent {
14953 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
14954 })
14955 }
14956 #[allow(unused_variables)]
14957 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14958 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14959 match field {
14960 "player" => Ok(self.player.clone().into()),
14961 _ => Err(ParseError::MissingGameEventValue {
14962 ty: "TaggedPlayerAsIt",
14963 field: field.into(),
14964 }),
14965 }
14966 }
14967 #[allow(unused_variables)]
14968 fn write(
14969 &self,
14970 stream: &mut BitWriteStream<LittleEndian>,
14971 definition: &GameEventDefinition,
14972 ) -> Result<()> {
14973 for entry in &definition.entries {
14974 let value = self
14975 .get_field(&entry.name)
14976 .unwrap_or_else(|_| entry.kind.default_value());
14977 stream.write(&value)?;
14978 }
14979 Ok(())
14980 }
14981}
14982#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
14983#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
14984pub struct MerasmusStunnedEvent {
14985 pub player: u16,
14986}
14987impl MerasmusStunnedEvent {
14988 #[allow(unused_variables)]
14989 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
14990 Ok(MerasmusStunnedEvent {
14991 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
14992 })
14993 }
14994 #[allow(unused_variables)]
14995 fn get_field(&self, field: &str) -> Result<GameEventValue> {
14996 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
14997 match field {
14998 "player" => Ok(self.player.clone().into()),
14999 _ => Err(ParseError::MissingGameEventValue {
15000 ty: "MerasmusStunned",
15001 field: field.into(),
15002 }),
15003 }
15004 }
15005 #[allow(unused_variables)]
15006 fn write(
15007 &self,
15008 stream: &mut BitWriteStream<LittleEndian>,
15009 definition: &GameEventDefinition,
15010 ) -> Result<()> {
15011 for entry in &definition.entries {
15012 let value = self
15013 .get_field(&entry.name)
15014 .unwrap_or_else(|_| entry.kind.default_value());
15015 stream.write(&value)?;
15016 }
15017 Ok(())
15018 }
15019}
15020#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15021#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15022pub struct MerasmusPropFoundEvent {
15023 pub player: u16,
15024}
15025impl MerasmusPropFoundEvent {
15026 #[allow(unused_variables)]
15027 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15028 Ok(MerasmusPropFoundEvent {
15029 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15030 })
15031 }
15032 #[allow(unused_variables)]
15033 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15034 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15035 match field {
15036 "player" => Ok(self.player.clone().into()),
15037 _ => Err(ParseError::MissingGameEventValue {
15038 ty: "MerasmusPropFound",
15039 field: field.into(),
15040 }),
15041 }
15042 }
15043 #[allow(unused_variables)]
15044 fn write(
15045 &self,
15046 stream: &mut BitWriteStream<LittleEndian>,
15047 definition: &GameEventDefinition,
15048 ) -> Result<()> {
15049 for entry in &definition.entries {
15050 let value = self
15051 .get_field(&entry.name)
15052 .unwrap_or_else(|_| entry.kind.default_value());
15053 stream.write(&value)?;
15054 }
15055 Ok(())
15056 }
15057}
15058#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15059#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15060pub struct HalloweenSkeletonKilledEvent {
15061 pub player: u16,
15062}
15063impl HalloweenSkeletonKilledEvent {
15064 #[allow(unused_variables)]
15065 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15066 Ok(HalloweenSkeletonKilledEvent {
15067 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15068 })
15069 }
15070 #[allow(unused_variables)]
15071 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15072 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15073 match field {
15074 "player" => Ok(self.player.clone().into()),
15075 _ => Err(ParseError::MissingGameEventValue {
15076 ty: "HalloweenSkeletonKilled",
15077 field: field.into(),
15078 }),
15079 }
15080 }
15081 #[allow(unused_variables)]
15082 fn write(
15083 &self,
15084 stream: &mut BitWriteStream<LittleEndian>,
15085 definition: &GameEventDefinition,
15086 ) -> Result<()> {
15087 for entry in &definition.entries {
15088 let value = self
15089 .get_field(&entry.name)
15090 .unwrap_or_else(|_| entry.kind.default_value());
15091 stream.write(&value)?;
15092 }
15093 Ok(())
15094 }
15095}
15096#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15097#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15098pub struct SkeletonKilledQuestEvent {
15099 pub player: u16,
15100}
15101impl SkeletonKilledQuestEvent {
15102 #[allow(unused_variables)]
15103 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15104 Ok(SkeletonKilledQuestEvent {
15105 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15106 })
15107 }
15108 #[allow(unused_variables)]
15109 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15110 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15111 match field {
15112 "player" => Ok(self.player.clone().into()),
15113 _ => Err(ParseError::MissingGameEventValue {
15114 ty: "SkeletonKilledQuest",
15115 field: field.into(),
15116 }),
15117 }
15118 }
15119 #[allow(unused_variables)]
15120 fn write(
15121 &self,
15122 stream: &mut BitWriteStream<LittleEndian>,
15123 definition: &GameEventDefinition,
15124 ) -> Result<()> {
15125 for entry in &definition.entries {
15126 let value = self
15127 .get_field(&entry.name)
15128 .unwrap_or_else(|_| entry.kind.default_value());
15129 stream.write(&value)?;
15130 }
15131 Ok(())
15132 }
15133}
15134#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15135#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15136pub struct SkeletonKingKilledQuestEvent {
15137 pub player: u16,
15138}
15139impl SkeletonKingKilledQuestEvent {
15140 #[allow(unused_variables)]
15141 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15142 Ok(SkeletonKingKilledQuestEvent {
15143 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15144 })
15145 }
15146 #[allow(unused_variables)]
15147 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15148 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15149 match field {
15150 "player" => Ok(self.player.clone().into()),
15151 _ => Err(ParseError::MissingGameEventValue {
15152 ty: "SkeletonKingKilledQuest",
15153 field: field.into(),
15154 }),
15155 }
15156 }
15157 #[allow(unused_variables)]
15158 fn write(
15159 &self,
15160 stream: &mut BitWriteStream<LittleEndian>,
15161 definition: &GameEventDefinition,
15162 ) -> Result<()> {
15163 for entry in &definition.entries {
15164 let value = self
15165 .get_field(&entry.name)
15166 .unwrap_or_else(|_| entry.kind.default_value());
15167 stream.write(&value)?;
15168 }
15169 Ok(())
15170 }
15171}
15172#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15173#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15174pub struct EscapeHellEvent {
15175 pub player: u16,
15176}
15177impl EscapeHellEvent {
15178 #[allow(unused_variables)]
15179 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15180 Ok(EscapeHellEvent {
15181 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15182 })
15183 }
15184 #[allow(unused_variables)]
15185 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15186 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15187 match field {
15188 "player" => Ok(self.player.clone().into()),
15189 _ => Err(ParseError::MissingGameEventValue {
15190 ty: "EscapeHell",
15191 field: field.into(),
15192 }),
15193 }
15194 }
15195 #[allow(unused_variables)]
15196 fn write(
15197 &self,
15198 stream: &mut BitWriteStream<LittleEndian>,
15199 definition: &GameEventDefinition,
15200 ) -> Result<()> {
15201 for entry in &definition.entries {
15202 let value = self
15203 .get_field(&entry.name)
15204 .unwrap_or_else(|_| entry.kind.default_value());
15205 stream.write(&value)?;
15206 }
15207 Ok(())
15208 }
15209}
15210#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15211#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15212pub struct CrossSpectralBridgeEvent {
15213 pub player: u16,
15214}
15215impl CrossSpectralBridgeEvent {
15216 #[allow(unused_variables)]
15217 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15218 Ok(CrossSpectralBridgeEvent {
15219 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15220 })
15221 }
15222 #[allow(unused_variables)]
15223 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15224 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15225 match field {
15226 "player" => Ok(self.player.clone().into()),
15227 _ => Err(ParseError::MissingGameEventValue {
15228 ty: "CrossSpectralBridge",
15229 field: field.into(),
15230 }),
15231 }
15232 }
15233 #[allow(unused_variables)]
15234 fn write(
15235 &self,
15236 stream: &mut BitWriteStream<LittleEndian>,
15237 definition: &GameEventDefinition,
15238 ) -> Result<()> {
15239 for entry in &definition.entries {
15240 let value = self
15241 .get_field(&entry.name)
15242 .unwrap_or_else(|_| entry.kind.default_value());
15243 stream.write(&value)?;
15244 }
15245 Ok(())
15246 }
15247}
15248#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15249#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15250pub struct MiniGameWonEvent {
15251 pub player: u16,
15252 pub game: u16,
15253}
15254impl MiniGameWonEvent {
15255 #[allow(unused_variables)]
15256 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15257 Ok(MiniGameWonEvent {
15258 player: read_value::<u16>(stream, definition.get_entry("player"), "player")?,
15259 game: read_value::<u16>(stream, definition.get_entry("game"), "game")?,
15260 })
15261 }
15262 #[allow(unused_variables)]
15263 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15264 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15265 match field {
15266 "player" => Ok(self.player.clone().into()),
15267 "game" => Ok(self.game.clone().into()),
15268 _ => Err(ParseError::MissingGameEventValue {
15269 ty: "MiniGameWon",
15270 field: field.into(),
15271 }),
15272 }
15273 }
15274 #[allow(unused_variables)]
15275 fn write(
15276 &self,
15277 stream: &mut BitWriteStream<LittleEndian>,
15278 definition: &GameEventDefinition,
15279 ) -> Result<()> {
15280 for entry in &definition.entries {
15281 let value = self
15282 .get_field(&entry.name)
15283 .unwrap_or_else(|_| entry.kind.default_value());
15284 stream.write(&value)?;
15285 }
15286 Ok(())
15287 }
15288}
15289#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15290#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15291pub struct RespawnGhostEvent {
15292 pub reviver: u16,
15293 pub ghost: u16,
15294}
15295impl RespawnGhostEvent {
15296 #[allow(unused_variables)]
15297 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15298 Ok(RespawnGhostEvent {
15299 reviver: read_value::<u16>(stream, definition.get_entry("reviver"), "reviver")?,
15300 ghost: read_value::<u16>(stream, definition.get_entry("ghost"), "ghost")?,
15301 })
15302 }
15303 #[allow(unused_variables)]
15304 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15305 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15306 match field {
15307 "reviver" => Ok(self.reviver.clone().into()),
15308 "ghost" => Ok(self.ghost.clone().into()),
15309 _ => Err(ParseError::MissingGameEventValue {
15310 ty: "RespawnGhost",
15311 field: field.into(),
15312 }),
15313 }
15314 }
15315 #[allow(unused_variables)]
15316 fn write(
15317 &self,
15318 stream: &mut BitWriteStream<LittleEndian>,
15319 definition: &GameEventDefinition,
15320 ) -> Result<()> {
15321 for entry in &definition.entries {
15322 let value = self
15323 .get_field(&entry.name)
15324 .unwrap_or_else(|_| entry.kind.default_value());
15325 stream.write(&value)?;
15326 }
15327 Ok(())
15328 }
15329}
15330#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15331#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15332pub struct KillInHellEvent {
15333 pub killer: u16,
15334 pub victim: u16,
15335}
15336impl KillInHellEvent {
15337 #[allow(unused_variables)]
15338 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15339 Ok(KillInHellEvent {
15340 killer: read_value::<u16>(stream, definition.get_entry("killer"), "killer")?,
15341 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
15342 })
15343 }
15344 #[allow(unused_variables)]
15345 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15346 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15347 match field {
15348 "killer" => Ok(self.killer.clone().into()),
15349 "victim" => Ok(self.victim.clone().into()),
15350 _ => Err(ParseError::MissingGameEventValue {
15351 ty: "KillInHell",
15352 field: field.into(),
15353 }),
15354 }
15355 }
15356 #[allow(unused_variables)]
15357 fn write(
15358 &self,
15359 stream: &mut BitWriteStream<LittleEndian>,
15360 definition: &GameEventDefinition,
15361 ) -> Result<()> {
15362 for entry in &definition.entries {
15363 let value = self
15364 .get_field(&entry.name)
15365 .unwrap_or_else(|_| entry.kind.default_value());
15366 stream.write(&value)?;
15367 }
15368 Ok(())
15369 }
15370}
15371#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15372#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15373pub struct HalloweenDuckCollectedEvent {
15374 pub collector: u16,
15375}
15376impl HalloweenDuckCollectedEvent {
15377 #[allow(unused_variables)]
15378 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15379 Ok(HalloweenDuckCollectedEvent {
15380 collector: read_value::<u16>(stream, definition.get_entry("collector"), "collector")?,
15381 })
15382 }
15383 #[allow(unused_variables)]
15384 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15385 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15386 match field {
15387 "collector" => Ok(self.collector.clone().into()),
15388 _ => Err(ParseError::MissingGameEventValue {
15389 ty: "HalloweenDuckCollected",
15390 field: field.into(),
15391 }),
15392 }
15393 }
15394 #[allow(unused_variables)]
15395 fn write(
15396 &self,
15397 stream: &mut BitWriteStream<LittleEndian>,
15398 definition: &GameEventDefinition,
15399 ) -> Result<()> {
15400 for entry in &definition.entries {
15401 let value = self
15402 .get_field(&entry.name)
15403 .unwrap_or_else(|_| entry.kind.default_value());
15404 stream.write(&value)?;
15405 }
15406 Ok(())
15407 }
15408}
15409#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15410#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15411pub struct SpecialScoreEvent {
15412 pub player: u8,
15413}
15414impl SpecialScoreEvent {
15415 #[allow(unused_variables)]
15416 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15417 Ok(SpecialScoreEvent {
15418 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
15419 })
15420 }
15421 #[allow(unused_variables)]
15422 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15423 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15424 match field {
15425 "player" => Ok(self.player.clone().into()),
15426 _ => Err(ParseError::MissingGameEventValue {
15427 ty: "SpecialScore",
15428 field: field.into(),
15429 }),
15430 }
15431 }
15432 #[allow(unused_variables)]
15433 fn write(
15434 &self,
15435 stream: &mut BitWriteStream<LittleEndian>,
15436 definition: &GameEventDefinition,
15437 ) -> Result<()> {
15438 for entry in &definition.entries {
15439 let value = self
15440 .get_field(&entry.name)
15441 .unwrap_or_else(|_| entry.kind.default_value());
15442 stream.write(&value)?;
15443 }
15444 Ok(())
15445 }
15446}
15447#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15448#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15449pub struct TeamLeaderKilledEvent {
15450 pub killer: u8,
15451 pub victim: u8,
15452}
15453impl TeamLeaderKilledEvent {
15454 #[allow(unused_variables)]
15455 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15456 Ok(TeamLeaderKilledEvent {
15457 killer: read_value::<u8>(stream, definition.get_entry("killer"), "killer")?,
15458 victim: read_value::<u8>(stream, definition.get_entry("victim"), "victim")?,
15459 })
15460 }
15461 #[allow(unused_variables)]
15462 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15463 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15464 match field {
15465 "killer" => Ok(self.killer.clone().into()),
15466 "victim" => Ok(self.victim.clone().into()),
15467 _ => Err(ParseError::MissingGameEventValue {
15468 ty: "TeamLeaderKilled",
15469 field: field.into(),
15470 }),
15471 }
15472 }
15473 #[allow(unused_variables)]
15474 fn write(
15475 &self,
15476 stream: &mut BitWriteStream<LittleEndian>,
15477 definition: &GameEventDefinition,
15478 ) -> Result<()> {
15479 for entry in &definition.entries {
15480 let value = self
15481 .get_field(&entry.name)
15482 .unwrap_or_else(|_| entry.kind.default_value());
15483 stream.write(&value)?;
15484 }
15485 Ok(())
15486 }
15487}
15488#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15489#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15490pub struct HalloweenSoulCollectedEvent {
15491 pub intended_target: u8,
15492 pub collecting_player: u8,
15493 pub soul_count: u8,
15494}
15495impl HalloweenSoulCollectedEvent {
15496 #[allow(unused_variables)]
15497 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15498 Ok(HalloweenSoulCollectedEvent {
15499 intended_target: read_value::<u8>(
15500 stream,
15501 definition.get_entry("intended_target"),
15502 "intended_target",
15503 )?,
15504 collecting_player: read_value::<u8>(
15505 stream,
15506 definition.get_entry("collecting_player"),
15507 "collecting_player",
15508 )?,
15509 soul_count: read_value::<u8>(stream, definition.get_entry("soul_count"), "soul_count")?,
15510 })
15511 }
15512 #[allow(unused_variables)]
15513 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15514 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15515 match field {
15516 "intended_target" => Ok(self.intended_target.clone().into()),
15517 "collecting_player" => Ok(self.collecting_player.clone().into()),
15518 "soul_count" => Ok(self.soul_count.clone().into()),
15519 _ => Err(ParseError::MissingGameEventValue {
15520 ty: "HalloweenSoulCollected",
15521 field: field.into(),
15522 }),
15523 }
15524 }
15525 #[allow(unused_variables)]
15526 fn write(
15527 &self,
15528 stream: &mut BitWriteStream<LittleEndian>,
15529 definition: &GameEventDefinition,
15530 ) -> Result<()> {
15531 for entry in &definition.entries {
15532 let value = self
15533 .get_field(&entry.name)
15534 .unwrap_or_else(|_| entry.kind.default_value());
15535 stream.write(&value)?;
15536 }
15537 Ok(())
15538 }
15539}
15540#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15541#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15542pub struct RecalculateTruceEvent {}
15543impl RecalculateTruceEvent {
15544 #[allow(unused_variables)]
15545 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15546 Ok(RecalculateTruceEvent {})
15547 }
15548 #[allow(unused_variables)]
15549 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15550 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15551 match field {
15552 _ => Err(ParseError::MissingGameEventValue {
15553 ty: "RecalculateTruce",
15554 field: field.into(),
15555 }),
15556 }
15557 }
15558 #[allow(unused_variables)]
15559 fn write(
15560 &self,
15561 stream: &mut BitWriteStream<LittleEndian>,
15562 definition: &GameEventDefinition,
15563 ) -> Result<()> {
15564 for entry in &definition.entries {
15565 let value = self
15566 .get_field(&entry.name)
15567 .unwrap_or_else(|_| entry.kind.default_value());
15568 stream.write(&value)?;
15569 }
15570 Ok(())
15571 }
15572}
15573#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15574#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15575pub struct DeadRingerCheatDeathEvent {
15576 pub spy: u8,
15577 pub attacker: u8,
15578}
15579impl DeadRingerCheatDeathEvent {
15580 #[allow(unused_variables)]
15581 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15582 Ok(DeadRingerCheatDeathEvent {
15583 spy: read_value::<u8>(stream, definition.get_entry("spy"), "spy")?,
15584 attacker: read_value::<u8>(stream, definition.get_entry("attacker"), "attacker")?,
15585 })
15586 }
15587 #[allow(unused_variables)]
15588 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15589 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15590 match field {
15591 "spy" => Ok(self.spy.clone().into()),
15592 "attacker" => Ok(self.attacker.clone().into()),
15593 _ => Err(ParseError::MissingGameEventValue {
15594 ty: "DeadRingerCheatDeath",
15595 field: field.into(),
15596 }),
15597 }
15598 }
15599 #[allow(unused_variables)]
15600 fn write(
15601 &self,
15602 stream: &mut BitWriteStream<LittleEndian>,
15603 definition: &GameEventDefinition,
15604 ) -> Result<()> {
15605 for entry in &definition.entries {
15606 let value = self
15607 .get_field(&entry.name)
15608 .unwrap_or_else(|_| entry.kind.default_value());
15609 stream.write(&value)?;
15610 }
15611 Ok(())
15612 }
15613}
15614#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15615#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15616pub struct CrossbowHealEvent {
15617 pub healer: u8,
15618 pub target: u8,
15619 pub amount: u16,
15620}
15621impl CrossbowHealEvent {
15622 #[allow(unused_variables)]
15623 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15624 Ok(CrossbowHealEvent {
15625 healer: read_value::<u8>(stream, definition.get_entry("healer"), "healer")?,
15626 target: read_value::<u8>(stream, definition.get_entry("target"), "target")?,
15627 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
15628 })
15629 }
15630 #[allow(unused_variables)]
15631 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15632 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15633 match field {
15634 "healer" => Ok(self.healer.clone().into()),
15635 "target" => Ok(self.target.clone().into()),
15636 "amount" => Ok(self.amount.clone().into()),
15637 _ => Err(ParseError::MissingGameEventValue {
15638 ty: "CrossbowHeal",
15639 field: field.into(),
15640 }),
15641 }
15642 }
15643 #[allow(unused_variables)]
15644 fn write(
15645 &self,
15646 stream: &mut BitWriteStream<LittleEndian>,
15647 definition: &GameEventDefinition,
15648 ) -> Result<()> {
15649 for entry in &definition.entries {
15650 let value = self
15651 .get_field(&entry.name)
15652 .unwrap_or_else(|_| entry.kind.default_value());
15653 stream.write(&value)?;
15654 }
15655 Ok(())
15656 }
15657}
15658#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15659#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15660pub struct DamageMitigatedEvent {
15661 pub mitigator: u8,
15662 pub damaged: u8,
15663 pub amount: u16,
15664 pub item_definition_index: u16,
15665}
15666impl DamageMitigatedEvent {
15667 #[allow(unused_variables)]
15668 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15669 Ok(DamageMitigatedEvent {
15670 mitigator: read_value::<u8>(stream, definition.get_entry("mitigator"), "mitigator")?,
15671 damaged: read_value::<u8>(stream, definition.get_entry("damaged"), "damaged")?,
15672 amount: read_value::<u16>(stream, definition.get_entry("amount"), "amount")?,
15673 item_definition_index: read_value::<u16>(
15674 stream,
15675 definition.get_entry("itemdefindex"),
15676 "item_definition_index",
15677 )?,
15678 })
15679 }
15680 #[allow(unused_variables)]
15681 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15682 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15683 match field {
15684 "mitigator" => Ok(self.mitigator.clone().into()),
15685 "damaged" => Ok(self.damaged.clone().into()),
15686 "amount" => Ok(self.amount.clone().into()),
15687 "itemdefindex" => Ok(self.item_definition_index.clone().into()),
15688 _ => Err(ParseError::MissingGameEventValue {
15689 ty: "DamageMitigated",
15690 field: field.into(),
15691 }),
15692 }
15693 }
15694 #[allow(unused_variables)]
15695 fn write(
15696 &self,
15697 stream: &mut BitWriteStream<LittleEndian>,
15698 definition: &GameEventDefinition,
15699 ) -> Result<()> {
15700 for entry in &definition.entries {
15701 let value = self
15702 .get_field(&entry.name)
15703 .unwrap_or_else(|_| entry.kind.default_value());
15704 stream.write(&value)?;
15705 }
15706 Ok(())
15707 }
15708}
15709#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15710#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15711pub struct PayloadPushedEvent {
15712 pub pusher: u8,
15713 pub distance: u16,
15714}
15715impl PayloadPushedEvent {
15716 #[allow(unused_variables)]
15717 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15718 Ok(PayloadPushedEvent {
15719 pusher: read_value::<u8>(stream, definition.get_entry("pusher"), "pusher")?,
15720 distance: read_value::<u16>(stream, definition.get_entry("distance"), "distance")?,
15721 })
15722 }
15723 #[allow(unused_variables)]
15724 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15725 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15726 match field {
15727 "pusher" => Ok(self.pusher.clone().into()),
15728 "distance" => Ok(self.distance.clone().into()),
15729 _ => Err(ParseError::MissingGameEventValue {
15730 ty: "PayloadPushed",
15731 field: field.into(),
15732 }),
15733 }
15734 }
15735 #[allow(unused_variables)]
15736 fn write(
15737 &self,
15738 stream: &mut BitWriteStream<LittleEndian>,
15739 definition: &GameEventDefinition,
15740 ) -> Result<()> {
15741 for entry in &definition.entries {
15742 let value = self
15743 .get_field(&entry.name)
15744 .unwrap_or_else(|_| entry.kind.default_value());
15745 stream.write(&value)?;
15746 }
15747 Ok(())
15748 }
15749}
15750#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15751#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15752pub struct PlayerAbandonedMatchEvent {
15753 pub game_over: bool,
15754}
15755impl PlayerAbandonedMatchEvent {
15756 #[allow(unused_variables)]
15757 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15758 Ok(PlayerAbandonedMatchEvent {
15759 game_over: read_value::<bool>(stream, definition.get_entry("game_over"), "game_over")?,
15760 })
15761 }
15762 #[allow(unused_variables)]
15763 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15764 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15765 match field {
15766 "game_over" => Ok(self.game_over.clone().into()),
15767 _ => Err(ParseError::MissingGameEventValue {
15768 ty: "PlayerAbandonedMatch",
15769 field: field.into(),
15770 }),
15771 }
15772 }
15773 #[allow(unused_variables)]
15774 fn write(
15775 &self,
15776 stream: &mut BitWriteStream<LittleEndian>,
15777 definition: &GameEventDefinition,
15778 ) -> Result<()> {
15779 for entry in &definition.entries {
15780 let value = self
15781 .get_field(&entry.name)
15782 .unwrap_or_else(|_| entry.kind.default_value());
15783 stream.write(&value)?;
15784 }
15785 Ok(())
15786 }
15787}
15788#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15789#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15790pub struct ClDrawlineEvent {
15791 pub player: u8,
15792 pub panel: u8,
15793 pub line: u8,
15794 pub x: f32,
15795 pub y: f32,
15796}
15797impl ClDrawlineEvent {
15798 #[allow(unused_variables)]
15799 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15800 Ok(ClDrawlineEvent {
15801 player: read_value::<u8>(stream, definition.get_entry("player"), "player")?,
15802 panel: read_value::<u8>(stream, definition.get_entry("panel"), "panel")?,
15803 line: read_value::<u8>(stream, definition.get_entry("line"), "line")?,
15804 x: read_value::<f32>(stream, definition.get_entry("x"), "x")?,
15805 y: read_value::<f32>(stream, definition.get_entry("y"), "y")?,
15806 })
15807 }
15808 #[allow(unused_variables)]
15809 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15810 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15811 match field {
15812 "player" => Ok(self.player.clone().into()),
15813 "panel" => Ok(self.panel.clone().into()),
15814 "line" => Ok(self.line.clone().into()),
15815 "x" => Ok(self.x.clone().into()),
15816 "y" => Ok(self.y.clone().into()),
15817 _ => Err(ParseError::MissingGameEventValue {
15818 ty: "ClDrawline",
15819 field: field.into(),
15820 }),
15821 }
15822 }
15823 #[allow(unused_variables)]
15824 fn write(
15825 &self,
15826 stream: &mut BitWriteStream<LittleEndian>,
15827 definition: &GameEventDefinition,
15828 ) -> Result<()> {
15829 for entry in &definition.entries {
15830 let value = self
15831 .get_field(&entry.name)
15832 .unwrap_or_else(|_| entry.kind.default_value());
15833 stream.write(&value)?;
15834 }
15835 Ok(())
15836 }
15837}
15838#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15839#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15840pub struct RestartTimerTimeEvent {
15841 pub time: u8,
15842}
15843impl RestartTimerTimeEvent {
15844 #[allow(unused_variables)]
15845 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15846 Ok(RestartTimerTimeEvent {
15847 time: read_value::<u8>(stream, definition.get_entry("time"), "time")?,
15848 })
15849 }
15850 #[allow(unused_variables)]
15851 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15852 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15853 match field {
15854 "time" => Ok(self.time.clone().into()),
15855 _ => Err(ParseError::MissingGameEventValue {
15856 ty: "RestartTimerTime",
15857 field: field.into(),
15858 }),
15859 }
15860 }
15861 #[allow(unused_variables)]
15862 fn write(
15863 &self,
15864 stream: &mut BitWriteStream<LittleEndian>,
15865 definition: &GameEventDefinition,
15866 ) -> Result<()> {
15867 for entry in &definition.entries {
15868 let value = self
15869 .get_field(&entry.name)
15870 .unwrap_or_else(|_| entry.kind.default_value());
15871 stream.write(&value)?;
15872 }
15873 Ok(())
15874 }
15875}
15876#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15877#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15878pub struct WinLimitChangedEvent {}
15879impl WinLimitChangedEvent {
15880 #[allow(unused_variables)]
15881 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15882 Ok(WinLimitChangedEvent {})
15883 }
15884 #[allow(unused_variables)]
15885 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15886 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15887 match field {
15888 _ => Err(ParseError::MissingGameEventValue {
15889 ty: "WinLimitChanged",
15890 field: field.into(),
15891 }),
15892 }
15893 }
15894 #[allow(unused_variables)]
15895 fn write(
15896 &self,
15897 stream: &mut BitWriteStream<LittleEndian>,
15898 definition: &GameEventDefinition,
15899 ) -> Result<()> {
15900 for entry in &definition.entries {
15901 let value = self
15902 .get_field(&entry.name)
15903 .unwrap_or_else(|_| entry.kind.default_value());
15904 stream.write(&value)?;
15905 }
15906 Ok(())
15907 }
15908}
15909#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15910#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15911pub struct WinPanelShowScoresEvent {}
15912impl WinPanelShowScoresEvent {
15913 #[allow(unused_variables)]
15914 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15915 Ok(WinPanelShowScoresEvent {})
15916 }
15917 #[allow(unused_variables)]
15918 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15919 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15920 match field {
15921 _ => Err(ParseError::MissingGameEventValue {
15922 ty: "WinPanelShowScores",
15923 field: field.into(),
15924 }),
15925 }
15926 }
15927 #[allow(unused_variables)]
15928 fn write(
15929 &self,
15930 stream: &mut BitWriteStream<LittleEndian>,
15931 definition: &GameEventDefinition,
15932 ) -> Result<()> {
15933 for entry in &definition.entries {
15934 let value = self
15935 .get_field(&entry.name)
15936 .unwrap_or_else(|_| entry.kind.default_value());
15937 stream.write(&value)?;
15938 }
15939 Ok(())
15940 }
15941}
15942#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15943#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15944pub struct TopStreamsRequestFinishedEvent {}
15945impl TopStreamsRequestFinishedEvent {
15946 #[allow(unused_variables)]
15947 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15948 Ok(TopStreamsRequestFinishedEvent {})
15949 }
15950 #[allow(unused_variables)]
15951 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15952 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15953 match field {
15954 _ => Err(ParseError::MissingGameEventValue {
15955 ty: "TopStreamsRequestFinished",
15956 field: field.into(),
15957 }),
15958 }
15959 }
15960 #[allow(unused_variables)]
15961 fn write(
15962 &self,
15963 stream: &mut BitWriteStream<LittleEndian>,
15964 definition: &GameEventDefinition,
15965 ) -> Result<()> {
15966 for entry in &definition.entries {
15967 let value = self
15968 .get_field(&entry.name)
15969 .unwrap_or_else(|_| entry.kind.default_value());
15970 stream.write(&value)?;
15971 }
15972 Ok(())
15973 }
15974}
15975#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
15976#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
15977pub struct CompetitiveStateChangedEvent {}
15978impl CompetitiveStateChangedEvent {
15979 #[allow(unused_variables)]
15980 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
15981 Ok(CompetitiveStateChangedEvent {})
15982 }
15983 #[allow(unused_variables)]
15984 fn get_field(&self, field: &str) -> Result<GameEventValue> {
15985 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
15986 match field {
15987 _ => Err(ParseError::MissingGameEventValue {
15988 ty: "CompetitiveStateChanged",
15989 field: field.into(),
15990 }),
15991 }
15992 }
15993 #[allow(unused_variables)]
15994 fn write(
15995 &self,
15996 stream: &mut BitWriteStream<LittleEndian>,
15997 definition: &GameEventDefinition,
15998 ) -> Result<()> {
15999 for entry in &definition.entries {
16000 let value = self
16001 .get_field(&entry.name)
16002 .unwrap_or_else(|_| entry.kind.default_value());
16003 stream.write(&value)?;
16004 }
16005 Ok(())
16006 }
16007}
16008#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16009#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16010pub struct GlobalWarDataUpdatedEvent {}
16011impl GlobalWarDataUpdatedEvent {
16012 #[allow(unused_variables)]
16013 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16014 Ok(GlobalWarDataUpdatedEvent {})
16015 }
16016 #[allow(unused_variables)]
16017 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16018 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16019 match field {
16020 _ => Err(ParseError::MissingGameEventValue {
16021 ty: "GlobalWarDataUpdated",
16022 field: field.into(),
16023 }),
16024 }
16025 }
16026 #[allow(unused_variables)]
16027 fn write(
16028 &self,
16029 stream: &mut BitWriteStream<LittleEndian>,
16030 definition: &GameEventDefinition,
16031 ) -> Result<()> {
16032 for entry in &definition.entries {
16033 let value = self
16034 .get_field(&entry.name)
16035 .unwrap_or_else(|_| entry.kind.default_value());
16036 stream.write(&value)?;
16037 }
16038 Ok(())
16039 }
16040}
16041#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16042#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16043pub struct StopWatchChangedEvent {}
16044impl StopWatchChangedEvent {
16045 #[allow(unused_variables)]
16046 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16047 Ok(StopWatchChangedEvent {})
16048 }
16049 #[allow(unused_variables)]
16050 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16051 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16052 match field {
16053 _ => Err(ParseError::MissingGameEventValue {
16054 ty: "StopWatchChanged",
16055 field: field.into(),
16056 }),
16057 }
16058 }
16059 #[allow(unused_variables)]
16060 fn write(
16061 &self,
16062 stream: &mut BitWriteStream<LittleEndian>,
16063 definition: &GameEventDefinition,
16064 ) -> Result<()> {
16065 for entry in &definition.entries {
16066 let value = self
16067 .get_field(&entry.name)
16068 .unwrap_or_else(|_| entry.kind.default_value());
16069 stream.write(&value)?;
16070 }
16071 Ok(())
16072 }
16073}
16074#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16075#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16076pub struct DsStopEvent {}
16077impl DsStopEvent {
16078 #[allow(unused_variables)]
16079 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16080 Ok(DsStopEvent {})
16081 }
16082 #[allow(unused_variables)]
16083 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16084 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16085 match field {
16086 _ => Err(ParseError::MissingGameEventValue {
16087 ty: "DsStop",
16088 field: field.into(),
16089 }),
16090 }
16091 }
16092 #[allow(unused_variables)]
16093 fn write(
16094 &self,
16095 stream: &mut BitWriteStream<LittleEndian>,
16096 definition: &GameEventDefinition,
16097 ) -> Result<()> {
16098 for entry in &definition.entries {
16099 let value = self
16100 .get_field(&entry.name)
16101 .unwrap_or_else(|_| entry.kind.default_value());
16102 stream.write(&value)?;
16103 }
16104 Ok(())
16105 }
16106}
16107#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16108#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16109pub struct DsScreenshotEvent {
16110 pub delay: f32,
16111}
16112impl DsScreenshotEvent {
16113 #[allow(unused_variables)]
16114 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16115 Ok(DsScreenshotEvent {
16116 delay: read_value::<f32>(stream, definition.get_entry("delay"), "delay")?,
16117 })
16118 }
16119 #[allow(unused_variables)]
16120 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16121 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16122 match field {
16123 "delay" => Ok(self.delay.clone().into()),
16124 _ => Err(ParseError::MissingGameEventValue {
16125 ty: "DsScreenshot",
16126 field: field.into(),
16127 }),
16128 }
16129 }
16130 #[allow(unused_variables)]
16131 fn write(
16132 &self,
16133 stream: &mut BitWriteStream<LittleEndian>,
16134 definition: &GameEventDefinition,
16135 ) -> Result<()> {
16136 for entry in &definition.entries {
16137 let value = self
16138 .get_field(&entry.name)
16139 .unwrap_or_else(|_| entry.kind.default_value());
16140 stream.write(&value)?;
16141 }
16142 Ok(())
16143 }
16144}
16145#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16146#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16147pub struct ShowMatchSummaryEvent {}
16148impl ShowMatchSummaryEvent {
16149 #[allow(unused_variables)]
16150 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16151 Ok(ShowMatchSummaryEvent {})
16152 }
16153 #[allow(unused_variables)]
16154 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16155 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16156 match field {
16157 _ => Err(ParseError::MissingGameEventValue {
16158 ty: "ShowMatchSummary",
16159 field: field.into(),
16160 }),
16161 }
16162 }
16163 #[allow(unused_variables)]
16164 fn write(
16165 &self,
16166 stream: &mut BitWriteStream<LittleEndian>,
16167 definition: &GameEventDefinition,
16168 ) -> Result<()> {
16169 for entry in &definition.entries {
16170 let value = self
16171 .get_field(&entry.name)
16172 .unwrap_or_else(|_| entry.kind.default_value());
16173 stream.write(&value)?;
16174 }
16175 Ok(())
16176 }
16177}
16178#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16179#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16180pub struct ExperienceChangedEvent {}
16181impl ExperienceChangedEvent {
16182 #[allow(unused_variables)]
16183 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16184 Ok(ExperienceChangedEvent {})
16185 }
16186 #[allow(unused_variables)]
16187 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16188 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16189 match field {
16190 _ => Err(ParseError::MissingGameEventValue {
16191 ty: "ExperienceChanged",
16192 field: field.into(),
16193 }),
16194 }
16195 }
16196 #[allow(unused_variables)]
16197 fn write(
16198 &self,
16199 stream: &mut BitWriteStream<LittleEndian>,
16200 definition: &GameEventDefinition,
16201 ) -> Result<()> {
16202 for entry in &definition.entries {
16203 let value = self
16204 .get_field(&entry.name)
16205 .unwrap_or_else(|_| entry.kind.default_value());
16206 stream.write(&value)?;
16207 }
16208 Ok(())
16209 }
16210}
16211#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16212#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16213pub struct BeginXpLerpEvent {}
16214impl BeginXpLerpEvent {
16215 #[allow(unused_variables)]
16216 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16217 Ok(BeginXpLerpEvent {})
16218 }
16219 #[allow(unused_variables)]
16220 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16221 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16222 match field {
16223 _ => Err(ParseError::MissingGameEventValue {
16224 ty: "BeginXpLerp",
16225 field: field.into(),
16226 }),
16227 }
16228 }
16229 #[allow(unused_variables)]
16230 fn write(
16231 &self,
16232 stream: &mut BitWriteStream<LittleEndian>,
16233 definition: &GameEventDefinition,
16234 ) -> Result<()> {
16235 for entry in &definition.entries {
16236 let value = self
16237 .get_field(&entry.name)
16238 .unwrap_or_else(|_| entry.kind.default_value());
16239 stream.write(&value)?;
16240 }
16241 Ok(())
16242 }
16243}
16244#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16245#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16246pub struct MatchmakerStatsUpdatedEvent {}
16247impl MatchmakerStatsUpdatedEvent {
16248 #[allow(unused_variables)]
16249 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16250 Ok(MatchmakerStatsUpdatedEvent {})
16251 }
16252 #[allow(unused_variables)]
16253 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16254 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16255 match field {
16256 _ => Err(ParseError::MissingGameEventValue {
16257 ty: "MatchmakerStatsUpdated",
16258 field: field.into(),
16259 }),
16260 }
16261 }
16262 #[allow(unused_variables)]
16263 fn write(
16264 &self,
16265 stream: &mut BitWriteStream<LittleEndian>,
16266 definition: &GameEventDefinition,
16267 ) -> Result<()> {
16268 for entry in &definition.entries {
16269 let value = self
16270 .get_field(&entry.name)
16271 .unwrap_or_else(|_| entry.kind.default_value());
16272 stream.write(&value)?;
16273 }
16274 Ok(())
16275 }
16276}
16277#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16278#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16279pub struct RematchVotePeriodOverEvent {
16280 pub success: bool,
16281}
16282impl RematchVotePeriodOverEvent {
16283 #[allow(unused_variables)]
16284 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16285 Ok(RematchVotePeriodOverEvent {
16286 success: read_value::<bool>(stream, definition.get_entry("success"), "success")?,
16287 })
16288 }
16289 #[allow(unused_variables)]
16290 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16291 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16292 match field {
16293 "success" => Ok(self.success.clone().into()),
16294 _ => Err(ParseError::MissingGameEventValue {
16295 ty: "RematchVotePeriodOver",
16296 field: field.into(),
16297 }),
16298 }
16299 }
16300 #[allow(unused_variables)]
16301 fn write(
16302 &self,
16303 stream: &mut BitWriteStream<LittleEndian>,
16304 definition: &GameEventDefinition,
16305 ) -> Result<()> {
16306 for entry in &definition.entries {
16307 let value = self
16308 .get_field(&entry.name)
16309 .unwrap_or_else(|_| entry.kind.default_value());
16310 stream.write(&value)?;
16311 }
16312 Ok(())
16313 }
16314}
16315#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16316#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16317pub struct RematchFailedToCreateEvent {}
16318impl RematchFailedToCreateEvent {
16319 #[allow(unused_variables)]
16320 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16321 Ok(RematchFailedToCreateEvent {})
16322 }
16323 #[allow(unused_variables)]
16324 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16325 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16326 match field {
16327 _ => Err(ParseError::MissingGameEventValue {
16328 ty: "RematchFailedToCreate",
16329 field: field.into(),
16330 }),
16331 }
16332 }
16333 #[allow(unused_variables)]
16334 fn write(
16335 &self,
16336 stream: &mut BitWriteStream<LittleEndian>,
16337 definition: &GameEventDefinition,
16338 ) -> Result<()> {
16339 for entry in &definition.entries {
16340 let value = self
16341 .get_field(&entry.name)
16342 .unwrap_or_else(|_| entry.kind.default_value());
16343 stream.write(&value)?;
16344 }
16345 Ok(())
16346 }
16347}
16348#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16349#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16350pub struct PlayerRematchChangeEvent {}
16351impl PlayerRematchChangeEvent {
16352 #[allow(unused_variables)]
16353 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16354 Ok(PlayerRematchChangeEvent {})
16355 }
16356 #[allow(unused_variables)]
16357 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16358 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16359 match field {
16360 _ => Err(ParseError::MissingGameEventValue {
16361 ty: "PlayerRematchChange",
16362 field: field.into(),
16363 }),
16364 }
16365 }
16366 #[allow(unused_variables)]
16367 fn write(
16368 &self,
16369 stream: &mut BitWriteStream<LittleEndian>,
16370 definition: &GameEventDefinition,
16371 ) -> Result<()> {
16372 for entry in &definition.entries {
16373 let value = self
16374 .get_field(&entry.name)
16375 .unwrap_or_else(|_| entry.kind.default_value());
16376 stream.write(&value)?;
16377 }
16378 Ok(())
16379 }
16380}
16381#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16382#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16383pub struct PingUpdatedEvent {}
16384impl PingUpdatedEvent {
16385 #[allow(unused_variables)]
16386 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16387 Ok(PingUpdatedEvent {})
16388 }
16389 #[allow(unused_variables)]
16390 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16391 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16392 match field {
16393 _ => Err(ParseError::MissingGameEventValue {
16394 ty: "PingUpdated",
16395 field: field.into(),
16396 }),
16397 }
16398 }
16399 #[allow(unused_variables)]
16400 fn write(
16401 &self,
16402 stream: &mut BitWriteStream<LittleEndian>,
16403 definition: &GameEventDefinition,
16404 ) -> Result<()> {
16405 for entry in &definition.entries {
16406 let value = self
16407 .get_field(&entry.name)
16408 .unwrap_or_else(|_| entry.kind.default_value());
16409 stream.write(&value)?;
16410 }
16411 Ok(())
16412 }
16413}
16414#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16415#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16416pub struct MMStatsUpdatedEvent {}
16417impl MMStatsUpdatedEvent {
16418 #[allow(unused_variables)]
16419 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16420 Ok(MMStatsUpdatedEvent {})
16421 }
16422 #[allow(unused_variables)]
16423 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16424 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16425 match field {
16426 _ => Err(ParseError::MissingGameEventValue {
16427 ty: "MMStatsUpdated",
16428 field: field.into(),
16429 }),
16430 }
16431 }
16432 #[allow(unused_variables)]
16433 fn write(
16434 &self,
16435 stream: &mut BitWriteStream<LittleEndian>,
16436 definition: &GameEventDefinition,
16437 ) -> Result<()> {
16438 for entry in &definition.entries {
16439 let value = self
16440 .get_field(&entry.name)
16441 .unwrap_or_else(|_| entry.kind.default_value());
16442 stream.write(&value)?;
16443 }
16444 Ok(())
16445 }
16446}
16447#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16448#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16449pub struct PlayerNextMapVoteChangeEvent {
16450 pub map_index: u8,
16451 pub vote: u8,
16452}
16453impl PlayerNextMapVoteChangeEvent {
16454 #[allow(unused_variables)]
16455 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16456 Ok(PlayerNextMapVoteChangeEvent {
16457 map_index: read_value::<u8>(stream, definition.get_entry("map_index"), "map_index")?,
16458 vote: read_value::<u8>(stream, definition.get_entry("vote"), "vote")?,
16459 })
16460 }
16461 #[allow(unused_variables)]
16462 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16463 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16464 match field {
16465 "map_index" => Ok(self.map_index.clone().into()),
16466 "vote" => Ok(self.vote.clone().into()),
16467 _ => Err(ParseError::MissingGameEventValue {
16468 ty: "PlayerNextMapVoteChange",
16469 field: field.into(),
16470 }),
16471 }
16472 }
16473 #[allow(unused_variables)]
16474 fn write(
16475 &self,
16476 stream: &mut BitWriteStream<LittleEndian>,
16477 definition: &GameEventDefinition,
16478 ) -> Result<()> {
16479 for entry in &definition.entries {
16480 let value = self
16481 .get_field(&entry.name)
16482 .unwrap_or_else(|_| entry.kind.default_value());
16483 stream.write(&value)?;
16484 }
16485 Ok(())
16486 }
16487}
16488#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16489#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16490pub struct VoteMapsChangedEvent {}
16491impl VoteMapsChangedEvent {
16492 #[allow(unused_variables)]
16493 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16494 Ok(VoteMapsChangedEvent {})
16495 }
16496 #[allow(unused_variables)]
16497 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16498 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16499 match field {
16500 _ => Err(ParseError::MissingGameEventValue {
16501 ty: "VoteMapsChanged",
16502 field: field.into(),
16503 }),
16504 }
16505 }
16506 #[allow(unused_variables)]
16507 fn write(
16508 &self,
16509 stream: &mut BitWriteStream<LittleEndian>,
16510 definition: &GameEventDefinition,
16511 ) -> Result<()> {
16512 for entry in &definition.entries {
16513 let value = self
16514 .get_field(&entry.name)
16515 .unwrap_or_else(|_| entry.kind.default_value());
16516 stream.write(&value)?;
16517 }
16518 Ok(())
16519 }
16520}
16521#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16522#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16523pub struct ProtoDefChangedEvent {
16524 pub kind: u8,
16525 pub definition_index: u32,
16526 pub created: bool,
16527 pub deleted: bool,
16528 pub erase_history: bool,
16529}
16530impl ProtoDefChangedEvent {
16531 #[allow(unused_variables)]
16532 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16533 Ok(ProtoDefChangedEvent {
16534 kind: read_value::<u8>(stream, definition.get_entry("type"), "kind")?,
16535 definition_index: read_value::<u32>(
16536 stream,
16537 definition.get_entry("defindex"),
16538 "definition_index",
16539 )?,
16540 created: read_value::<bool>(stream, definition.get_entry("created"), "created")?,
16541 deleted: read_value::<bool>(stream, definition.get_entry("deleted"), "deleted")?,
16542 erase_history: read_value::<bool>(
16543 stream,
16544 definition.get_entry("erase_history"),
16545 "erase_history",
16546 )?,
16547 })
16548 }
16549 #[allow(unused_variables)]
16550 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16551 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16552 match field {
16553 "type" => Ok(self.kind.clone().into()),
16554 "defindex" => Ok(self.definition_index.clone().into()),
16555 "created" => Ok(self.created.clone().into()),
16556 "deleted" => Ok(self.deleted.clone().into()),
16557 "erase_history" => Ok(self.erase_history.clone().into()),
16558 _ => Err(ParseError::MissingGameEventValue {
16559 ty: "ProtoDefChanged",
16560 field: field.into(),
16561 }),
16562 }
16563 }
16564 #[allow(unused_variables)]
16565 fn write(
16566 &self,
16567 stream: &mut BitWriteStream<LittleEndian>,
16568 definition: &GameEventDefinition,
16569 ) -> Result<()> {
16570 for entry in &definition.entries {
16571 let value = self
16572 .get_field(&entry.name)
16573 .unwrap_or_else(|_| entry.kind.default_value());
16574 stream.write(&value)?;
16575 }
16576 Ok(())
16577 }
16578}
16579#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16580#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16581pub struct PlayerDominationEvent {
16582 pub dominator: u16,
16583 pub dominated: u16,
16584 pub dominations: u16,
16585}
16586impl PlayerDominationEvent {
16587 #[allow(unused_variables)]
16588 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16589 Ok(PlayerDominationEvent {
16590 dominator: read_value::<u16>(stream, definition.get_entry("dominator"), "dominator")?,
16591 dominated: read_value::<u16>(stream, definition.get_entry("dominated"), "dominated")?,
16592 dominations: read_value::<u16>(
16593 stream,
16594 definition.get_entry("dominations"),
16595 "dominations",
16596 )?,
16597 })
16598 }
16599 #[allow(unused_variables)]
16600 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16601 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16602 match field {
16603 "dominator" => Ok(self.dominator.clone().into()),
16604 "dominated" => Ok(self.dominated.clone().into()),
16605 "dominations" => Ok(self.dominations.clone().into()),
16606 _ => Err(ParseError::MissingGameEventValue {
16607 ty: "PlayerDomination",
16608 field: field.into(),
16609 }),
16610 }
16611 }
16612 #[allow(unused_variables)]
16613 fn write(
16614 &self,
16615 stream: &mut BitWriteStream<LittleEndian>,
16616 definition: &GameEventDefinition,
16617 ) -> Result<()> {
16618 for entry in &definition.entries {
16619 let value = self
16620 .get_field(&entry.name)
16621 .unwrap_or_else(|_| entry.kind.default_value());
16622 stream.write(&value)?;
16623 }
16624 Ok(())
16625 }
16626}
16627#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16628#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16629pub struct PlayerRocketPackPushedEvent {
16630 pub pusher: u16,
16631 pub pushed: u16,
16632}
16633impl PlayerRocketPackPushedEvent {
16634 #[allow(unused_variables)]
16635 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16636 Ok(PlayerRocketPackPushedEvent {
16637 pusher: read_value::<u16>(stream, definition.get_entry("pusher"), "pusher")?,
16638 pushed: read_value::<u16>(stream, definition.get_entry("pushed"), "pushed")?,
16639 })
16640 }
16641 #[allow(unused_variables)]
16642 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16643 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16644 match field {
16645 "pusher" => Ok(self.pusher.clone().into()),
16646 "pushed" => Ok(self.pushed.clone().into()),
16647 _ => Err(ParseError::MissingGameEventValue {
16648 ty: "PlayerRocketPackPushed",
16649 field: field.into(),
16650 }),
16651 }
16652 }
16653 #[allow(unused_variables)]
16654 fn write(
16655 &self,
16656 stream: &mut BitWriteStream<LittleEndian>,
16657 definition: &GameEventDefinition,
16658 ) -> Result<()> {
16659 for entry in &definition.entries {
16660 let value = self
16661 .get_field(&entry.name)
16662 .unwrap_or_else(|_| entry.kind.default_value());
16663 stream.write(&value)?;
16664 }
16665 Ok(())
16666 }
16667}
16668#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16669#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16670pub struct QuestRequestEvent {
16671 pub request: u32,
16672 pub msg: MaybeUtf8String,
16673}
16674impl QuestRequestEvent {
16675 #[allow(unused_variables)]
16676 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16677 Ok(QuestRequestEvent {
16678 request: read_value::<u32>(stream, definition.get_entry("request"), "request")?,
16679 msg: read_value::<MaybeUtf8String>(stream, definition.get_entry("msg"), "msg")?,
16680 })
16681 }
16682 #[allow(unused_variables)]
16683 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16684 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16685 match field {
16686 "request" => Ok(self.request.clone().into()),
16687 "msg" => Ok(self.msg.clone().into()),
16688 _ => Err(ParseError::MissingGameEventValue {
16689 ty: "QuestRequest",
16690 field: field.into(),
16691 }),
16692 }
16693 }
16694 #[allow(unused_variables)]
16695 fn write(
16696 &self,
16697 stream: &mut BitWriteStream<LittleEndian>,
16698 definition: &GameEventDefinition,
16699 ) -> Result<()> {
16700 for entry in &definition.entries {
16701 let value = self
16702 .get_field(&entry.name)
16703 .unwrap_or_else(|_| entry.kind.default_value());
16704 stream.write(&value)?;
16705 }
16706 Ok(())
16707 }
16708}
16709#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16710#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16711pub struct QuestResponseEvent {
16712 pub request: u32,
16713 pub success: bool,
16714 pub msg: MaybeUtf8String,
16715}
16716impl QuestResponseEvent {
16717 #[allow(unused_variables)]
16718 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16719 Ok(QuestResponseEvent {
16720 request: read_value::<u32>(stream, definition.get_entry("request"), "request")?,
16721 success: read_value::<bool>(stream, definition.get_entry("success"), "success")?,
16722 msg: read_value::<MaybeUtf8String>(stream, definition.get_entry("msg"), "msg")?,
16723 })
16724 }
16725 #[allow(unused_variables)]
16726 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16727 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16728 match field {
16729 "request" => Ok(self.request.clone().into()),
16730 "success" => Ok(self.success.clone().into()),
16731 "msg" => Ok(self.msg.clone().into()),
16732 _ => Err(ParseError::MissingGameEventValue {
16733 ty: "QuestResponse",
16734 field: field.into(),
16735 }),
16736 }
16737 }
16738 #[allow(unused_variables)]
16739 fn write(
16740 &self,
16741 stream: &mut BitWriteStream<LittleEndian>,
16742 definition: &GameEventDefinition,
16743 ) -> Result<()> {
16744 for entry in &definition.entries {
16745 let value = self
16746 .get_field(&entry.name)
16747 .unwrap_or_else(|_| entry.kind.default_value());
16748 stream.write(&value)?;
16749 }
16750 Ok(())
16751 }
16752}
16753#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16754#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16755pub struct QuestProgressEvent {
16756 pub owner: u16,
16757 pub scorer: u16,
16758 pub kind: u8,
16759 pub completed: bool,
16760 pub quest_definition_index: u32,
16761}
16762impl QuestProgressEvent {
16763 #[allow(unused_variables)]
16764 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16765 Ok(QuestProgressEvent {
16766 owner: read_value::<u16>(stream, definition.get_entry("owner"), "owner")?,
16767 scorer: read_value::<u16>(stream, definition.get_entry("scorer"), "scorer")?,
16768 kind: read_value::<u8>(stream, definition.get_entry("type"), "kind")?,
16769 completed: read_value::<bool>(stream, definition.get_entry("completed"), "completed")?,
16770 quest_definition_index: read_value::<u32>(
16771 stream,
16772 definition.get_entry("quest_defindex"),
16773 "quest_definition_index",
16774 )?,
16775 })
16776 }
16777 #[allow(unused_variables)]
16778 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16779 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16780 match field {
16781 "owner" => Ok(self.owner.clone().into()),
16782 "scorer" => Ok(self.scorer.clone().into()),
16783 "type" => Ok(self.kind.clone().into()),
16784 "completed" => Ok(self.completed.clone().into()),
16785 "quest_defindex" => Ok(self.quest_definition_index.clone().into()),
16786 _ => Err(ParseError::MissingGameEventValue {
16787 ty: "QuestProgress",
16788 field: field.into(),
16789 }),
16790 }
16791 }
16792 #[allow(unused_variables)]
16793 fn write(
16794 &self,
16795 stream: &mut BitWriteStream<LittleEndian>,
16796 definition: &GameEventDefinition,
16797 ) -> Result<()> {
16798 for entry in &definition.entries {
16799 let value = self
16800 .get_field(&entry.name)
16801 .unwrap_or_else(|_| entry.kind.default_value());
16802 stream.write(&value)?;
16803 }
16804 Ok(())
16805 }
16806}
16807#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16808#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16809pub struct ProjectileRemovedEvent {
16810 pub attacker: u8,
16811 pub weapon_def_index: u32,
16812 pub num_hit: u8,
16813 pub num_direct_hit: u8,
16814}
16815impl ProjectileRemovedEvent {
16816 #[allow(unused_variables)]
16817 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16818 Ok(ProjectileRemovedEvent {
16819 attacker: read_value::<u8>(stream, definition.get_entry("attacker"), "attacker")?,
16820 weapon_def_index: read_value::<u32>(
16821 stream,
16822 definition.get_entry("weapon_def_index"),
16823 "weapon_def_index",
16824 )?,
16825 num_hit: read_value::<u8>(stream, definition.get_entry("num_hit"), "num_hit")?,
16826 num_direct_hit: read_value::<u8>(
16827 stream,
16828 definition.get_entry("num_direct_hit"),
16829 "num_direct_hit",
16830 )?,
16831 })
16832 }
16833 #[allow(unused_variables)]
16834 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16835 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16836 match field {
16837 "attacker" => Ok(self.attacker.clone().into()),
16838 "weapon_def_index" => Ok(self.weapon_def_index.clone().into()),
16839 "num_hit" => Ok(self.num_hit.clone().into()),
16840 "num_direct_hit" => Ok(self.num_direct_hit.clone().into()),
16841 _ => Err(ParseError::MissingGameEventValue {
16842 ty: "ProjectileRemoved",
16843 field: field.into(),
16844 }),
16845 }
16846 }
16847 #[allow(unused_variables)]
16848 fn write(
16849 &self,
16850 stream: &mut BitWriteStream<LittleEndian>,
16851 definition: &GameEventDefinition,
16852 ) -> Result<()> {
16853 for entry in &definition.entries {
16854 let value = self
16855 .get_field(&entry.name)
16856 .unwrap_or_else(|_| entry.kind.default_value());
16857 stream.write(&value)?;
16858 }
16859 Ok(())
16860 }
16861}
16862#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16863#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16864pub struct QuestMapDataChangedEvent {}
16865impl QuestMapDataChangedEvent {
16866 #[allow(unused_variables)]
16867 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16868 Ok(QuestMapDataChangedEvent {})
16869 }
16870 #[allow(unused_variables)]
16871 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16872 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16873 match field {
16874 _ => Err(ParseError::MissingGameEventValue {
16875 ty: "QuestMapDataChanged",
16876 field: field.into(),
16877 }),
16878 }
16879 }
16880 #[allow(unused_variables)]
16881 fn write(
16882 &self,
16883 stream: &mut BitWriteStream<LittleEndian>,
16884 definition: &GameEventDefinition,
16885 ) -> Result<()> {
16886 for entry in &definition.entries {
16887 let value = self
16888 .get_field(&entry.name)
16889 .unwrap_or_else(|_| entry.kind.default_value());
16890 stream.write(&value)?;
16891 }
16892 Ok(())
16893 }
16894}
16895#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16896#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16897pub struct GasDousedPlayerIgnitedEvent {
16898 pub igniter: u16,
16899 pub douser: u16,
16900 pub victim: u16,
16901}
16902impl GasDousedPlayerIgnitedEvent {
16903 #[allow(unused_variables)]
16904 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16905 Ok(GasDousedPlayerIgnitedEvent {
16906 igniter: read_value::<u16>(stream, definition.get_entry("igniter"), "igniter")?,
16907 douser: read_value::<u16>(stream, definition.get_entry("douser"), "douser")?,
16908 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
16909 })
16910 }
16911 #[allow(unused_variables)]
16912 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16913 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16914 match field {
16915 "igniter" => Ok(self.igniter.clone().into()),
16916 "douser" => Ok(self.douser.clone().into()),
16917 "victim" => Ok(self.victim.clone().into()),
16918 _ => Err(ParseError::MissingGameEventValue {
16919 ty: "GasDousedPlayerIgnited",
16920 field: field.into(),
16921 }),
16922 }
16923 }
16924 #[allow(unused_variables)]
16925 fn write(
16926 &self,
16927 stream: &mut BitWriteStream<LittleEndian>,
16928 definition: &GameEventDefinition,
16929 ) -> Result<()> {
16930 for entry in &definition.entries {
16931 let value = self
16932 .get_field(&entry.name)
16933 .unwrap_or_else(|_| entry.kind.default_value());
16934 stream.write(&value)?;
16935 }
16936 Ok(())
16937 }
16938}
16939#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16940#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16941pub struct QuestTurnInStateEvent {
16942 pub state: u16,
16943}
16944impl QuestTurnInStateEvent {
16945 #[allow(unused_variables)]
16946 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16947 Ok(QuestTurnInStateEvent {
16948 state: read_value::<u16>(stream, definition.get_entry("state"), "state")?,
16949 })
16950 }
16951 #[allow(unused_variables)]
16952 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16953 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16954 match field {
16955 "state" => Ok(self.state.clone().into()),
16956 _ => Err(ParseError::MissingGameEventValue {
16957 ty: "QuestTurnInState",
16958 field: field.into(),
16959 }),
16960 }
16961 }
16962 #[allow(unused_variables)]
16963 fn write(
16964 &self,
16965 stream: &mut BitWriteStream<LittleEndian>,
16966 definition: &GameEventDefinition,
16967 ) -> Result<()> {
16968 for entry in &definition.entries {
16969 let value = self
16970 .get_field(&entry.name)
16971 .unwrap_or_else(|_| entry.kind.default_value());
16972 stream.write(&value)?;
16973 }
16974 Ok(())
16975 }
16976}
16977#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
16978#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
16979pub struct ItemsAcknowledgedEvent {}
16980impl ItemsAcknowledgedEvent {
16981 #[allow(unused_variables)]
16982 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
16983 Ok(ItemsAcknowledgedEvent {})
16984 }
16985 #[allow(unused_variables)]
16986 fn get_field(&self, field: &str) -> Result<GameEventValue> {
16987 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
16988 match field {
16989 _ => Err(ParseError::MissingGameEventValue {
16990 ty: "ItemsAcknowledged",
16991 field: field.into(),
16992 }),
16993 }
16994 }
16995 #[allow(unused_variables)]
16996 fn write(
16997 &self,
16998 stream: &mut BitWriteStream<LittleEndian>,
16999 definition: &GameEventDefinition,
17000 ) -> Result<()> {
17001 for entry in &definition.entries {
17002 let value = self
17003 .get_field(&entry.name)
17004 .unwrap_or_else(|_| entry.kind.default_value());
17005 stream.write(&value)?;
17006 }
17007 Ok(())
17008 }
17009}
17010#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17011#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17012pub struct CapperKilledEvent {
17013 pub blocker: u16,
17014 pub victim: u16,
17015}
17016impl CapperKilledEvent {
17017 #[allow(unused_variables)]
17018 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17019 Ok(CapperKilledEvent {
17020 blocker: read_value::<u16>(stream, definition.get_entry("blocker"), "blocker")?,
17021 victim: read_value::<u16>(stream, definition.get_entry("victim"), "victim")?,
17022 })
17023 }
17024 #[allow(unused_variables)]
17025 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17026 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17027 match field {
17028 "blocker" => Ok(self.blocker.clone().into()),
17029 "victim" => Ok(self.victim.clone().into()),
17030 _ => Err(ParseError::MissingGameEventValue {
17031 ty: "CapperKilled",
17032 field: field.into(),
17033 }),
17034 }
17035 }
17036 #[allow(unused_variables)]
17037 fn write(
17038 &self,
17039 stream: &mut BitWriteStream<LittleEndian>,
17040 definition: &GameEventDefinition,
17041 ) -> Result<()> {
17042 for entry in &definition.entries {
17043 let value = self
17044 .get_field(&entry.name)
17045 .unwrap_or_else(|_| entry.kind.default_value());
17046 stream.write(&value)?;
17047 }
17048 Ok(())
17049 }
17050}
17051#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17052#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17053pub struct MainMenuStabilizedEvent {}
17054impl MainMenuStabilizedEvent {
17055 #[allow(unused_variables)]
17056 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17057 Ok(MainMenuStabilizedEvent {})
17058 }
17059 #[allow(unused_variables)]
17060 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17061 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17062 match field {
17063 _ => Err(ParseError::MissingGameEventValue {
17064 ty: "MainMenuStabilized",
17065 field: field.into(),
17066 }),
17067 }
17068 }
17069 #[allow(unused_variables)]
17070 fn write(
17071 &self,
17072 stream: &mut BitWriteStream<LittleEndian>,
17073 definition: &GameEventDefinition,
17074 ) -> Result<()> {
17075 for entry in &definition.entries {
17076 let value = self
17077 .get_field(&entry.name)
17078 .unwrap_or_else(|_| entry.kind.default_value());
17079 stream.write(&value)?;
17080 }
17081 Ok(())
17082 }
17083}
17084#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17085#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17086pub struct WorldStatusChangedEvent {}
17087impl WorldStatusChangedEvent {
17088 #[allow(unused_variables)]
17089 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17090 Ok(WorldStatusChangedEvent {})
17091 }
17092 #[allow(unused_variables)]
17093 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17094 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17095 match field {
17096 _ => Err(ParseError::MissingGameEventValue {
17097 ty: "WorldStatusChanged",
17098 field: field.into(),
17099 }),
17100 }
17101 }
17102 #[allow(unused_variables)]
17103 fn write(
17104 &self,
17105 stream: &mut BitWriteStream<LittleEndian>,
17106 definition: &GameEventDefinition,
17107 ) -> Result<()> {
17108 for entry in &definition.entries {
17109 let value = self
17110 .get_field(&entry.name)
17111 .unwrap_or_else(|_| entry.kind.default_value());
17112 stream.write(&value)?;
17113 }
17114 Ok(())
17115 }
17116}
17117#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17118#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17119pub struct HLTVStatusEvent {
17120 pub clients: u32,
17121 pub slots: u32,
17122 pub proxies: u16,
17123 pub master: MaybeUtf8String,
17124}
17125impl HLTVStatusEvent {
17126 #[allow(unused_variables)]
17127 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17128 Ok(HLTVStatusEvent {
17129 clients: read_value::<u32>(stream, definition.get_entry("clients"), "clients")?,
17130 slots: read_value::<u32>(stream, definition.get_entry("slots"), "slots")?,
17131 proxies: read_value::<u16>(stream, definition.get_entry("proxies"), "proxies")?,
17132 master: read_value::<MaybeUtf8String>(
17133 stream,
17134 definition.get_entry("master"),
17135 "master",
17136 )?,
17137 })
17138 }
17139 #[allow(unused_variables)]
17140 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17141 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17142 match field {
17143 "clients" => Ok(self.clients.clone().into()),
17144 "slots" => Ok(self.slots.clone().into()),
17145 "proxies" => Ok(self.proxies.clone().into()),
17146 "master" => Ok(self.master.clone().into()),
17147 _ => Err(ParseError::MissingGameEventValue {
17148 ty: "HLTVStatus",
17149 field: field.into(),
17150 }),
17151 }
17152 }
17153 #[allow(unused_variables)]
17154 fn write(
17155 &self,
17156 stream: &mut BitWriteStream<LittleEndian>,
17157 definition: &GameEventDefinition,
17158 ) -> Result<()> {
17159 for entry in &definition.entries {
17160 let value = self
17161 .get_field(&entry.name)
17162 .unwrap_or_else(|_| entry.kind.default_value());
17163 stream.write(&value)?;
17164 }
17165 Ok(())
17166 }
17167}
17168#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17169#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17170pub struct HLTVCameramanEvent {
17171 pub index: u16,
17172}
17173impl HLTVCameramanEvent {
17174 #[allow(unused_variables)]
17175 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17176 Ok(HLTVCameramanEvent {
17177 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
17178 })
17179 }
17180 #[allow(unused_variables)]
17181 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17182 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17183 match field {
17184 "index" => Ok(self.index.clone().into()),
17185 _ => Err(ParseError::MissingGameEventValue {
17186 ty: "HLTVCameraman",
17187 field: field.into(),
17188 }),
17189 }
17190 }
17191 #[allow(unused_variables)]
17192 fn write(
17193 &self,
17194 stream: &mut BitWriteStream<LittleEndian>,
17195 definition: &GameEventDefinition,
17196 ) -> Result<()> {
17197 for entry in &definition.entries {
17198 let value = self
17199 .get_field(&entry.name)
17200 .unwrap_or_else(|_| entry.kind.default_value());
17201 stream.write(&value)?;
17202 }
17203 Ok(())
17204 }
17205}
17206#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17207#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17208pub struct HLTVRankCameraEvent {
17209 pub index: u8,
17210 pub rank: f32,
17211 pub target: u16,
17212}
17213impl HLTVRankCameraEvent {
17214 #[allow(unused_variables)]
17215 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17216 Ok(HLTVRankCameraEvent {
17217 index: read_value::<u8>(stream, definition.get_entry("index"), "index")?,
17218 rank: read_value::<f32>(stream, definition.get_entry("rank"), "rank")?,
17219 target: read_value::<u16>(stream, definition.get_entry("target"), "target")?,
17220 })
17221 }
17222 #[allow(unused_variables)]
17223 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17224 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17225 match field {
17226 "index" => Ok(self.index.clone().into()),
17227 "rank" => Ok(self.rank.clone().into()),
17228 "target" => Ok(self.target.clone().into()),
17229 _ => Err(ParseError::MissingGameEventValue {
17230 ty: "HLTVRankCamera",
17231 field: field.into(),
17232 }),
17233 }
17234 }
17235 #[allow(unused_variables)]
17236 fn write(
17237 &self,
17238 stream: &mut BitWriteStream<LittleEndian>,
17239 definition: &GameEventDefinition,
17240 ) -> Result<()> {
17241 for entry in &definition.entries {
17242 let value = self
17243 .get_field(&entry.name)
17244 .unwrap_or_else(|_| entry.kind.default_value());
17245 stream.write(&value)?;
17246 }
17247 Ok(())
17248 }
17249}
17250#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17251#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17252pub struct HLTVRankEntityEvent {
17253 pub index: u16,
17254 pub rank: f32,
17255 pub target: u16,
17256}
17257impl HLTVRankEntityEvent {
17258 #[allow(unused_variables)]
17259 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17260 Ok(HLTVRankEntityEvent {
17261 index: read_value::<u16>(stream, definition.get_entry("index"), "index")?,
17262 rank: read_value::<f32>(stream, definition.get_entry("rank"), "rank")?,
17263 target: read_value::<u16>(stream, definition.get_entry("target"), "target")?,
17264 })
17265 }
17266 #[allow(unused_variables)]
17267 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17268 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17269 match field {
17270 "index" => Ok(self.index.clone().into()),
17271 "rank" => Ok(self.rank.clone().into()),
17272 "target" => Ok(self.target.clone().into()),
17273 _ => Err(ParseError::MissingGameEventValue {
17274 ty: "HLTVRankEntity",
17275 field: field.into(),
17276 }),
17277 }
17278 }
17279 #[allow(unused_variables)]
17280 fn write(
17281 &self,
17282 stream: &mut BitWriteStream<LittleEndian>,
17283 definition: &GameEventDefinition,
17284 ) -> Result<()> {
17285 for entry in &definition.entries {
17286 let value = self
17287 .get_field(&entry.name)
17288 .unwrap_or_else(|_| entry.kind.default_value());
17289 stream.write(&value)?;
17290 }
17291 Ok(())
17292 }
17293}
17294#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17295#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17296pub struct HLTVFixedEvent {
17297 pub pos_x: u32,
17298 pub pos_y: u32,
17299 pub pos_z: u32,
17300 pub theta: u16,
17301 pub phi: u16,
17302 pub offset: u16,
17303 pub fov: f32,
17304 pub target: u16,
17305}
17306impl HLTVFixedEvent {
17307 #[allow(unused_variables)]
17308 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17309 Ok(HLTVFixedEvent {
17310 pos_x: read_value::<u32>(stream, definition.get_entry("posx"), "pos_x")?,
17311 pos_y: read_value::<u32>(stream, definition.get_entry("posy"), "pos_y")?,
17312 pos_z: read_value::<u32>(stream, definition.get_entry("posz"), "pos_z")?,
17313 theta: read_value::<u16>(stream, definition.get_entry("theta"), "theta")?,
17314 phi: read_value::<u16>(stream, definition.get_entry("phi"), "phi")?,
17315 offset: read_value::<u16>(stream, definition.get_entry("offset"), "offset")?,
17316 fov: read_value::<f32>(stream, definition.get_entry("fov"), "fov")?,
17317 target: read_value::<u16>(stream, definition.get_entry("target"), "target")?,
17318 })
17319 }
17320 #[allow(unused_variables)]
17321 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17322 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17323 match field {
17324 "posx" => Ok(self.pos_x.clone().into()),
17325 "posy" => Ok(self.pos_y.clone().into()),
17326 "posz" => Ok(self.pos_z.clone().into()),
17327 "theta" => Ok(self.theta.clone().into()),
17328 "phi" => Ok(self.phi.clone().into()),
17329 "offset" => Ok(self.offset.clone().into()),
17330 "fov" => Ok(self.fov.clone().into()),
17331 "target" => Ok(self.target.clone().into()),
17332 _ => Err(ParseError::MissingGameEventValue {
17333 ty: "HLTVFixed",
17334 field: field.into(),
17335 }),
17336 }
17337 }
17338 #[allow(unused_variables)]
17339 fn write(
17340 &self,
17341 stream: &mut BitWriteStream<LittleEndian>,
17342 definition: &GameEventDefinition,
17343 ) -> Result<()> {
17344 for entry in &definition.entries {
17345 let value = self
17346 .get_field(&entry.name)
17347 .unwrap_or_else(|_| entry.kind.default_value());
17348 stream.write(&value)?;
17349 }
17350 Ok(())
17351 }
17352}
17353#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17354#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17355pub struct HLTVChaseEvent {
17356 pub target_1: u16,
17357 pub target_2: u16,
17358 pub distance: u16,
17359 pub theta: u16,
17360 pub phi: u16,
17361 pub inertia: u8,
17362 pub in_eye: u8,
17363}
17364impl HLTVChaseEvent {
17365 #[allow(unused_variables)]
17366 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17367 Ok(HLTVChaseEvent {
17368 target_1: read_value::<u16>(stream, definition.get_entry("target1"), "target_1")?,
17369 target_2: read_value::<u16>(stream, definition.get_entry("target2"), "target_2")?,
17370 distance: read_value::<u16>(stream, definition.get_entry("distance"), "distance")?,
17371 theta: read_value::<u16>(stream, definition.get_entry("theta"), "theta")?,
17372 phi: read_value::<u16>(stream, definition.get_entry("phi"), "phi")?,
17373 inertia: read_value::<u8>(stream, definition.get_entry("inertia"), "inertia")?,
17374 in_eye: read_value::<u8>(stream, definition.get_entry("ineye"), "in_eye")?,
17375 })
17376 }
17377 #[allow(unused_variables)]
17378 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17379 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17380 match field {
17381 "target1" => Ok(self.target_1.clone().into()),
17382 "target2" => Ok(self.target_2.clone().into()),
17383 "distance" => Ok(self.distance.clone().into()),
17384 "theta" => Ok(self.theta.clone().into()),
17385 "phi" => Ok(self.phi.clone().into()),
17386 "inertia" => Ok(self.inertia.clone().into()),
17387 "ineye" => Ok(self.in_eye.clone().into()),
17388 _ => Err(ParseError::MissingGameEventValue {
17389 ty: "HLTVChase",
17390 field: field.into(),
17391 }),
17392 }
17393 }
17394 #[allow(unused_variables)]
17395 fn write(
17396 &self,
17397 stream: &mut BitWriteStream<LittleEndian>,
17398 definition: &GameEventDefinition,
17399 ) -> Result<()> {
17400 for entry in &definition.entries {
17401 let value = self
17402 .get_field(&entry.name)
17403 .unwrap_or_else(|_| entry.kind.default_value());
17404 stream.write(&value)?;
17405 }
17406 Ok(())
17407 }
17408}
17409#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17410#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17411pub struct HLTVMessageEvent {
17412 pub text: MaybeUtf8String,
17413}
17414impl HLTVMessageEvent {
17415 #[allow(unused_variables)]
17416 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17417 Ok(HLTVMessageEvent {
17418 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
17419 })
17420 }
17421 #[allow(unused_variables)]
17422 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17423 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17424 match field {
17425 "text" => Ok(self.text.clone().into()),
17426 _ => Err(ParseError::MissingGameEventValue {
17427 ty: "HLTVMessage",
17428 field: field.into(),
17429 }),
17430 }
17431 }
17432 #[allow(unused_variables)]
17433 fn write(
17434 &self,
17435 stream: &mut BitWriteStream<LittleEndian>,
17436 definition: &GameEventDefinition,
17437 ) -> Result<()> {
17438 for entry in &definition.entries {
17439 let value = self
17440 .get_field(&entry.name)
17441 .unwrap_or_else(|_| entry.kind.default_value());
17442 stream.write(&value)?;
17443 }
17444 Ok(())
17445 }
17446}
17447#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17448#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17449pub struct HLTVTitleEvent {
17450 pub text: MaybeUtf8String,
17451}
17452impl HLTVTitleEvent {
17453 #[allow(unused_variables)]
17454 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17455 Ok(HLTVTitleEvent {
17456 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
17457 })
17458 }
17459 #[allow(unused_variables)]
17460 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17461 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17462 match field {
17463 "text" => Ok(self.text.clone().into()),
17464 _ => Err(ParseError::MissingGameEventValue {
17465 ty: "HLTVTitle",
17466 field: field.into(),
17467 }),
17468 }
17469 }
17470 #[allow(unused_variables)]
17471 fn write(
17472 &self,
17473 stream: &mut BitWriteStream<LittleEndian>,
17474 definition: &GameEventDefinition,
17475 ) -> Result<()> {
17476 for entry in &definition.entries {
17477 let value = self
17478 .get_field(&entry.name)
17479 .unwrap_or_else(|_| entry.kind.default_value());
17480 stream.write(&value)?;
17481 }
17482 Ok(())
17483 }
17484}
17485#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17486#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17487pub struct HLTVChatEvent {
17488 pub text: MaybeUtf8String,
17489}
17490impl HLTVChatEvent {
17491 #[allow(unused_variables)]
17492 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17493 Ok(HLTVChatEvent {
17494 text: read_value::<MaybeUtf8String>(stream, definition.get_entry("text"), "text")?,
17495 })
17496 }
17497 #[allow(unused_variables)]
17498 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17499 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17500 match field {
17501 "text" => Ok(self.text.clone().into()),
17502 _ => Err(ParseError::MissingGameEventValue {
17503 ty: "HLTVChat",
17504 field: field.into(),
17505 }),
17506 }
17507 }
17508 #[allow(unused_variables)]
17509 fn write(
17510 &self,
17511 stream: &mut BitWriteStream<LittleEndian>,
17512 definition: &GameEventDefinition,
17513 ) -> Result<()> {
17514 for entry in &definition.entries {
17515 let value = self
17516 .get_field(&entry.name)
17517 .unwrap_or_else(|_| entry.kind.default_value());
17518 stream.write(&value)?;
17519 }
17520 Ok(())
17521 }
17522}
17523#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17524#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17525pub struct ReplayStartRecordEvent {}
17526impl ReplayStartRecordEvent {
17527 #[allow(unused_variables)]
17528 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17529 Ok(ReplayStartRecordEvent {})
17530 }
17531 #[allow(unused_variables)]
17532 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17533 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17534 match field {
17535 _ => Err(ParseError::MissingGameEventValue {
17536 ty: "ReplayStartRecord",
17537 field: field.into(),
17538 }),
17539 }
17540 }
17541 #[allow(unused_variables)]
17542 fn write(
17543 &self,
17544 stream: &mut BitWriteStream<LittleEndian>,
17545 definition: &GameEventDefinition,
17546 ) -> Result<()> {
17547 for entry in &definition.entries {
17548 let value = self
17549 .get_field(&entry.name)
17550 .unwrap_or_else(|_| entry.kind.default_value());
17551 stream.write(&value)?;
17552 }
17553 Ok(())
17554 }
17555}
17556#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17557#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17558pub struct ReplaySessionInfoEvent {
17559 pub sn: MaybeUtf8String,
17560 pub di: u8,
17561 pub cb: u32,
17562 pub st: u32,
17563}
17564impl ReplaySessionInfoEvent {
17565 #[allow(unused_variables)]
17566 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17567 Ok(ReplaySessionInfoEvent {
17568 sn: read_value::<MaybeUtf8String>(stream, definition.get_entry("sn"), "sn")?,
17569 di: read_value::<u8>(stream, definition.get_entry("di"), "di")?,
17570 cb: read_value::<u32>(stream, definition.get_entry("cb"), "cb")?,
17571 st: read_value::<u32>(stream, definition.get_entry("st"), "st")?,
17572 })
17573 }
17574 #[allow(unused_variables)]
17575 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17576 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17577 match field {
17578 "sn" => Ok(self.sn.clone().into()),
17579 "di" => Ok(self.di.clone().into()),
17580 "cb" => Ok(self.cb.clone().into()),
17581 "st" => Ok(self.st.clone().into()),
17582 _ => Err(ParseError::MissingGameEventValue {
17583 ty: "ReplaySessionInfo",
17584 field: field.into(),
17585 }),
17586 }
17587 }
17588 #[allow(unused_variables)]
17589 fn write(
17590 &self,
17591 stream: &mut BitWriteStream<LittleEndian>,
17592 definition: &GameEventDefinition,
17593 ) -> Result<()> {
17594 for entry in &definition.entries {
17595 let value = self
17596 .get_field(&entry.name)
17597 .unwrap_or_else(|_| entry.kind.default_value());
17598 stream.write(&value)?;
17599 }
17600 Ok(())
17601 }
17602}
17603#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17604#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17605pub struct ReplayEndRecordEvent {}
17606impl ReplayEndRecordEvent {
17607 #[allow(unused_variables)]
17608 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17609 Ok(ReplayEndRecordEvent {})
17610 }
17611 #[allow(unused_variables)]
17612 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17613 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17614 match field {
17615 _ => Err(ParseError::MissingGameEventValue {
17616 ty: "ReplayEndRecord",
17617 field: field.into(),
17618 }),
17619 }
17620 }
17621 #[allow(unused_variables)]
17622 fn write(
17623 &self,
17624 stream: &mut BitWriteStream<LittleEndian>,
17625 definition: &GameEventDefinition,
17626 ) -> Result<()> {
17627 for entry in &definition.entries {
17628 let value = self
17629 .get_field(&entry.name)
17630 .unwrap_or_else(|_| entry.kind.default_value());
17631 stream.write(&value)?;
17632 }
17633 Ok(())
17634 }
17635}
17636#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17637#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17638pub struct ReplayReplaysAvailableEvent {}
17639impl ReplayReplaysAvailableEvent {
17640 #[allow(unused_variables)]
17641 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17642 Ok(ReplayReplaysAvailableEvent {})
17643 }
17644 #[allow(unused_variables)]
17645 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17646 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17647 match field {
17648 _ => Err(ParseError::MissingGameEventValue {
17649 ty: "ReplayReplaysAvailable",
17650 field: field.into(),
17651 }),
17652 }
17653 }
17654 #[allow(unused_variables)]
17655 fn write(
17656 &self,
17657 stream: &mut BitWriteStream<LittleEndian>,
17658 definition: &GameEventDefinition,
17659 ) -> Result<()> {
17660 for entry in &definition.entries {
17661 let value = self
17662 .get_field(&entry.name)
17663 .unwrap_or_else(|_| entry.kind.default_value());
17664 stream.write(&value)?;
17665 }
17666 Ok(())
17667 }
17668}
17669#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17670#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17671pub struct ReplayServerErrorEvent {
17672 pub error: MaybeUtf8String,
17673}
17674impl ReplayServerErrorEvent {
17675 #[allow(unused_variables)]
17676 fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
17677 Ok(ReplayServerErrorEvent {
17678 error: read_value::<MaybeUtf8String>(stream, definition.get_entry("error"), "error")?,
17679 })
17680 }
17681 #[allow(unused_variables)]
17682 fn get_field(&self, field: &str) -> Result<GameEventValue> {
17683 #[allow(clippy::clone_on_copy, clippy::match_single_binding)]
17684 match field {
17685 "error" => Ok(self.error.clone().into()),
17686 _ => Err(ParseError::MissingGameEventValue {
17687 ty: "ReplayServerError",
17688 field: field.into(),
17689 }),
17690 }
17691 }
17692 #[allow(unused_variables)]
17693 fn write(
17694 &self,
17695 stream: &mut BitWriteStream<LittleEndian>,
17696 definition: &GameEventDefinition,
17697 ) -> Result<()> {
17698 for entry in &definition.entries {
17699 let value = self
17700 .get_field(&entry.name)
17701 .unwrap_or_else(|_| entry.kind.default_value());
17702 stream.write(&value)?;
17703 }
17704 Ok(())
17705 }
17706}
17707#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17708#[derive(Debug, PartialEq, Serialize, Deserialize, Clone)]
17709#[serde(tag = "type")]
17710pub enum GameEvent {
17711 ServerSpawn(Box<ServerSpawnEvent>),
17712 ServerChangeLevelFailed(ServerChangeLevelFailedEvent),
17713 ServerShutdown(ServerShutdownEvent),
17714 ServerCvar(ServerCvarEvent),
17715 ServerMessage(ServerMessageEvent),
17716 ServerAddBan(Box<ServerAddBanEvent>),
17717 ServerRemoveBan(ServerRemoveBanEvent),
17718 PlayerConnect(PlayerConnectEvent),
17719 PlayerConnectClient(PlayerConnectClientEvent),
17720 PlayerInfo(PlayerInfoEvent),
17721 PlayerDisconnect(PlayerDisconnectEvent),
17722 PlayerActivate(PlayerActivateEvent),
17723 PlayerSay(PlayerSayEvent),
17724 ClientDisconnect(ClientDisconnectEvent),
17725 ClientBeginConnect(ClientBeginConnectEvent),
17726 ClientConnected(ClientConnectedEvent),
17727 ClientFullConnect(ClientFullConnectEvent),
17728 HostQuit(HostQuitEvent),
17729 TeamInfo(TeamInfoEvent),
17730 TeamScore(TeamScoreEvent),
17731 TeamPlayBroadcastAudio(TeamPlayBroadcastAudioEvent),
17732 PlayerTeam(PlayerTeamEvent),
17733 PlayerClass(PlayerClassEvent),
17734 PlayerDeath(Box<PlayerDeathEvent>),
17735 PlayerHurt(PlayerHurtEvent),
17736 PlayerChat(PlayerChatEvent),
17737 PlayerScore(PlayerScoreEvent),
17738 PlayerSpawn(PlayerSpawnEvent),
17739 PlayerShoot(PlayerShootEvent),
17740 PlayerUse(PlayerUseEvent),
17741 PlayerChangeName(PlayerChangeNameEvent),
17742 PlayerHintMessage(PlayerHintMessageEvent),
17743 BasePlayerTeleported(BasePlayerTeleportedEvent),
17744 GameInit(GameInitEvent),
17745 GameNewMap(GameNewMapEvent),
17746 GameStart(GameStartEvent),
17747 GameEnd(GameEndEvent),
17748 RoundStart(RoundStartEvent),
17749 RoundEnd(RoundEndEvent),
17750 GameMessage(GameMessageEvent),
17751 BreakBreakable(BreakBreakableEvent),
17752 BreakProp(BreakPropEvent),
17753 EntityKilled(EntityKilledEvent),
17754 BonusUpdated(BonusUpdatedEvent),
17755 AchievementEvent(AchievementEventEvent),
17756 AchievementIncrement(AchievementIncrementEvent),
17757 PhysgunPickup(PhysgunPickupEvent),
17758 FlareIgniteNpc(FlareIgniteNpcEvent),
17759 HelicopterGrenadePuntMiss(HelicopterGrenadePuntMissEvent),
17760 UserDataDownloaded(UserDataDownloadedEvent),
17761 RagdollDissolved(RagdollDissolvedEvent),
17762 HLTVChangedMode(HLTVChangedModeEvent),
17763 HLTVChangedTarget(HLTVChangedTargetEvent),
17764 VoteEnded(VoteEndedEvent),
17765 VoteStarted(VoteStartedEvent),
17766 VoteChanged(VoteChangedEvent),
17767 VotePassed(VotePassedEvent),
17768 VoteFailed(VoteFailedEvent),
17769 VoteCast(VoteCastEvent),
17770 VoteOptions(Box<VoteOptionsEvent>),
17771 ReplaySaved(ReplaySavedEvent),
17772 EnteredPerformanceMode(EnteredPerformanceModeEvent),
17773 BrowseReplays(BrowseReplaysEvent),
17774 ReplayYoutubeStats(ReplayYoutubeStatsEvent),
17775 InventoryUpdated(InventoryUpdatedEvent),
17776 CartUpdated(CartUpdatedEvent),
17777 StorePriceSheetUpdated(StorePriceSheetUpdatedEvent),
17778 EconInventoryConnected(EconInventoryConnectedEvent),
17779 ItemSchemaInitialized(ItemSchemaInitializedEvent),
17780 GcNewSession(GcNewSessionEvent),
17781 GcLostSession(GcLostSessionEvent),
17782 IntroFinish(IntroFinishEvent),
17783 IntroNextCamera(IntroNextCameraEvent),
17784 PlayerChangeClass(PlayerChangeClassEvent),
17785 TfMapTimeRemaining(TfMapTimeRemainingEvent),
17786 TfGameOver(TfGameOverEvent),
17787 CtfFlagCaptured(CtfFlagCapturedEvent),
17788 ControlPointInitialized(ControlPointInitializedEvent),
17789 ControlPointUpdateImages(ControlPointUpdateImagesEvent),
17790 ControlPointUpdateLayout(ControlPointUpdateLayoutEvent),
17791 ControlPointUpdateCapping(ControlPointUpdateCappingEvent),
17792 ControlPointUpdateOwner(ControlPointUpdateOwnerEvent),
17793 ControlPointStartTouch(ControlPointStartTouchEvent),
17794 ControlPointEndTouch(ControlPointEndTouchEvent),
17795 ControlPointPulseElement(ControlPointPulseElementEvent),
17796 ControlPointFakeCapture(ControlPointFakeCaptureEvent),
17797 ControlPointFakeCaptureMultiplier(ControlPointFakeCaptureMultiplierEvent),
17798 TeamPlayRoundSelected(TeamPlayRoundSelectedEvent),
17799 TeamPlayRoundStart(TeamPlayRoundStartEvent),
17800 TeamPlayRoundActive(TeamPlayRoundActiveEvent),
17801 TeamPlayWaitingBegins(TeamPlayWaitingBeginsEvent),
17802 TeamPlayWaitingEnds(TeamPlayWaitingEndsEvent),
17803 TeamPlayWaitingAboutToEnd(TeamPlayWaitingAboutToEndEvent),
17804 TeamPlayRestartRound(TeamPlayRestartRoundEvent),
17805 TeamPlayReadyRestart(TeamPlayReadyRestartEvent),
17806 TeamPlayRoundRestartSeconds(TeamPlayRoundRestartSecondsEvent),
17807 TeamPlayTeamReady(TeamPlayTeamReadyEvent),
17808 TeamPlayRoundWin(TeamPlayRoundWinEvent),
17809 TeamPlayUpdateTimer(TeamPlayUpdateTimerEvent),
17810 TeamPlayRoundStalemate(TeamPlayRoundStalemateEvent),
17811 TeamPlayOvertimeBegin(TeamPlayOvertimeBeginEvent),
17812 TeamPlayOvertimeEnd(TeamPlayOvertimeEndEvent),
17813 TeamPlaySuddenDeathBegin(TeamPlaySuddenDeathBeginEvent),
17814 TeamPlaySuddenDeathEnd(TeamPlaySuddenDeathEndEvent),
17815 TeamPlayGameOver(TeamPlayGameOverEvent),
17816 TeamPlayMapTimeRemaining(TeamPlayMapTimeRemainingEvent),
17817 TeamPlayTimerFlash(TeamPlayTimerFlashEvent),
17818 TeamPlayTimerTimeAdded(TeamPlayTimerTimeAddedEvent),
17819 TeamPlayPointStartCapture(TeamPlayPointStartCaptureEvent),
17820 TeamPlayPointCaptured(TeamPlayPointCapturedEvent),
17821 TeamPlayPointLocked(TeamPlayPointLockedEvent),
17822 TeamPlayPointUnlocked(TeamPlayPointUnlockedEvent),
17823 TeamPlayCaptureBroken(TeamPlayCaptureBrokenEvent),
17824 TeamPlayCaptureBlocked(TeamPlayCaptureBlockedEvent),
17825 TeamPlayFlagEvent(TeamPlayFlagEventEvent),
17826 TeamPlayWinPanel(TeamPlayWinPanelEvent),
17827 TeamPlayTeamBalancedPlayer(TeamPlayTeamBalancedPlayerEvent),
17828 TeamPlaySetupFinished(TeamPlaySetupFinishedEvent),
17829 TeamPlayAlert(TeamPlayAlertEvent),
17830 TrainingComplete(TrainingCompleteEvent),
17831 ShowFreezePanel(ShowFreezePanelEvent),
17832 HideFreezePanel(HideFreezePanelEvent),
17833 FreezeCamStarted(FreezeCamStartedEvent),
17834 LocalPlayerChangeTeam(LocalPlayerChangeTeamEvent),
17835 LocalPlayerScoreChanged(LocalPlayerScoreChangedEvent),
17836 LocalPlayerChangeClass(LocalPlayerChangeClassEvent),
17837 LocalPlayerRespawn(LocalPlayerRespawnEvent),
17838 BuildingInfoChanged(BuildingInfoChangedEvent),
17839 LocalPlayerChangeDisguise(LocalPlayerChangeDisguiseEvent),
17840 PlayerAccountChanged(PlayerAccountChangedEvent),
17841 SpyPdaReset(SpyPdaResetEvent),
17842 FlagStatusUpdate(FlagStatusUpdateEvent),
17843 PlayerStatsUpdated(PlayerStatsUpdatedEvent),
17844 PlayingCommentary(PlayingCommentaryEvent),
17845 PlayerChargeDeployed(PlayerChargeDeployedEvent),
17846 PlayerBuiltObject(PlayerBuiltObjectEvent),
17847 PlayerUpgradedObject(PlayerUpgradedObjectEvent),
17848 PlayerCarryObject(PlayerCarryObjectEvent),
17849 PlayerDropObject(PlayerDropObjectEvent),
17850 ObjectRemoved(ObjectRemovedEvent),
17851 ObjectDestroyed(ObjectDestroyedEvent),
17852 ObjectDetonated(ObjectDetonatedEvent),
17853 AchievementEarned(AchievementEarnedEvent),
17854 SpecTargetUpdated(SpecTargetUpdatedEvent),
17855 TournamentStateUpdate(TournamentStateUpdateEvent),
17856 TournamentEnableCountdown(TournamentEnableCountdownEvent),
17857 PlayerCalledForMedic(PlayerCalledForMedicEvent),
17858 PlayerAskedForBall(PlayerAskedForBallEvent),
17859 LocalPlayerBecameObserver(LocalPlayerBecameObserverEvent),
17860 PlayerIgnitedInv(PlayerIgnitedInvEvent),
17861 PlayerIgnited(PlayerIgnitedEvent),
17862 PlayerExtinguished(PlayerExtinguishedEvent),
17863 PlayerTeleported(PlayerTeleportedEvent),
17864 PlayerHealedMedicCall(PlayerHealedMedicCallEvent),
17865 LocalPlayerChargeReady(LocalPlayerChargeReadyEvent),
17866 LocalPlayerWindDown(LocalPlayerWindDownEvent),
17867 PlayerInvulned(PlayerInvulnedEvent),
17868 EscortSpeed(EscortSpeedEvent),
17869 EscortProgress(EscortProgressEvent),
17870 EscortRecede(EscortRecedeEvent),
17871 GameUIActivated(GameUIActivatedEvent),
17872 GameUIHidden(GameUIHiddenEvent),
17873 PlayerEscortScore(PlayerEscortScoreEvent),
17874 PlayerHealOnHit(PlayerHealOnHitEvent),
17875 PlayerStealSandvich(PlayerStealSandvichEvent),
17876 ShowClassLayout(ShowClassLayoutEvent),
17877 ShowVsPanel(ShowVsPanelEvent),
17878 PlayerDamaged(PlayerDamagedEvent),
17879 ArenaPlayerNotification(ArenaPlayerNotificationEvent),
17880 ArenaMatchMaxStreak(ArenaMatchMaxStreakEvent),
17881 ArenaRoundStart(ArenaRoundStartEvent),
17882 ArenaWinPanel(ArenaWinPanelEvent),
17883 PveWinPanel(PveWinPanelEvent),
17884 AirDash(AirDashEvent),
17885 Landed(LandedEvent),
17886 PlayerDamageDodged(PlayerDamageDodgedEvent),
17887 PlayerStunned(PlayerStunnedEvent),
17888 ScoutGrandSlam(ScoutGrandSlamEvent),
17889 ScoutSlamdollLanded(ScoutSlamdollLandedEvent),
17890 ArrowImpact(ArrowImpactEvent),
17891 PlayerJarated(PlayerJaratedEvent),
17892 PlayerJaratedFade(PlayerJaratedFadeEvent),
17893 PlayerShieldBlocked(PlayerShieldBlockedEvent),
17894 PlayerPinned(PlayerPinnedEvent),
17895 PlayerHealedByMedic(PlayerHealedByMedicEvent),
17896 PlayerSappedObject(PlayerSappedObjectEvent),
17897 ItemFound(ItemFoundEvent),
17898 ShowAnnotation(ShowAnnotationEvent),
17899 HideAnnotation(HideAnnotationEvent),
17900 PostInventoryApplication(PostInventoryApplicationEvent),
17901 ControlPointUnlockUpdated(ControlPointUnlockUpdatedEvent),
17902 DeployBuffBanner(DeployBuffBannerEvent),
17903 PlayerBuff(PlayerBuffEvent),
17904 MedicDeath(MedicDeathEvent),
17905 OvertimeNag(OvertimeNagEvent),
17906 TeamsChanged(TeamsChangedEvent),
17907 HalloweenPumpkinGrab(HalloweenPumpkinGrabEvent),
17908 RocketJump(RocketJumpEvent),
17909 RocketJumpLanded(RocketJumpLandedEvent),
17910 StickyJump(StickyJumpEvent),
17911 StickyJumpLanded(StickyJumpLandedEvent),
17912 RocketPackLaunch(RocketPackLaunchEvent),
17913 RocketPackLanded(RocketPackLandedEvent),
17914 MedicDefended(MedicDefendedEvent),
17915 LocalPlayerHealed(LocalPlayerHealedEvent),
17916 PlayerDestroyedPipeBomb(PlayerDestroyedPipeBombEvent),
17917 ObjectDeflected(ObjectDeflectedEvent),
17918 PlayerMvp(PlayerMvpEvent),
17919 RaidSpawnMob(RaidSpawnMobEvent),
17920 RaidSpawnSquad(RaidSpawnSquadEvent),
17921 NavBlocked(NavBlockedEvent),
17922 PathTrackPassed(PathTrackPassedEvent),
17923 NumCappersChanged(NumCappersChangedEvent),
17924 PlayerRegenerate(PlayerRegenerateEvent),
17925 UpdateStatusItem(UpdateStatusItemEvent),
17926 StatsResetRound(StatsResetRoundEvent),
17927 ScoreStatsAccumulatedUpdate(ScoreStatsAccumulatedUpdateEvent),
17928 ScoreStatsAccumulatedReset(ScoreStatsAccumulatedResetEvent),
17929 AchievementEarnedLocal(AchievementEarnedLocalEvent),
17930 PlayerHealed(PlayerHealedEvent),
17931 BuildingHealed(BuildingHealedEvent),
17932 ItemPickup(ItemPickupEvent),
17933 DuelStatus(DuelStatusEvent),
17934 FishNotice(Box<FishNoticeEvent>),
17935 FishNoticeArm(Box<FishNoticeArmEvent>),
17936 SlapNotice(Box<SlapNoticeEvent>),
17937 ThrowableHit(Box<ThrowableHitEvent>),
17938 PumpkinLordSummoned(PumpkinLordSummonedEvent),
17939 PumpkinLordKilled(PumpkinLordKilledEvent),
17940 MerasmusSummoned(MerasmusSummonedEvent),
17941 MerasmusKilled(MerasmusKilledEvent),
17942 MerasmusEscapeWarning(MerasmusEscapeWarningEvent),
17943 MerasmusEscaped(MerasmusEscapedEvent),
17944 EyeballBossSummoned(EyeballBossSummonedEvent),
17945 EyeballBossStunned(EyeballBossStunnedEvent),
17946 EyeballBossKilled(EyeballBossKilledEvent),
17947 EyeballBossKiller(EyeballBossKillerEvent),
17948 EyeballBossEscapeImminent(EyeballBossEscapeImminentEvent),
17949 EyeballBossEscaped(EyeballBossEscapedEvent),
17950 NpcHurt(NpcHurtEvent),
17951 ControlPointTimerUpdated(ControlPointTimerUpdatedEvent),
17952 PlayerHighFiveStart(PlayerHighFiveStartEvent),
17953 PlayerHighFiveCancel(PlayerHighFiveCancelEvent),
17954 PlayerHighFiveSuccess(PlayerHighFiveSuccessEvent),
17955 PlayerBonusPoints(PlayerBonusPointsEvent),
17956 PlayerUpgraded(PlayerUpgradedEvent),
17957 PlayerBuyback(PlayerBuybackEvent),
17958 PlayerUsedPowerUpBottle(PlayerUsedPowerUpBottleEvent),
17959 ChristmasGiftGrab(ChristmasGiftGrabEvent),
17960 PlayerKilledAchievementZone(PlayerKilledAchievementZoneEvent),
17961 PartyUpdated(PartyUpdatedEvent),
17962 PartyPrefChanged(PartyPrefChangedEvent),
17963 PartyCriteriaChanged(PartyCriteriaChangedEvent),
17964 PartyInvitesChanged(PartyInvitesChangedEvent),
17965 PartyQueueStateChanged(PartyQueueStateChangedEvent),
17966 PartyChat(PartyChatEvent),
17967 PartyMemberJoin(PartyMemberJoinEvent),
17968 PartyMemberLeave(PartyMemberLeaveEvent),
17969 MatchInvitesUpdated(MatchInvitesUpdatedEvent),
17970 LobbyUpdated(LobbyUpdatedEvent),
17971 MvmMissionUpdate(MvmMissionUpdateEvent),
17972 RecalculateHolidays(RecalculateHolidaysEvent),
17973 PlayerCurrencyChanged(PlayerCurrencyChangedEvent),
17974 DoomsdayRocketOpen(DoomsdayRocketOpenEvent),
17975 RemoveNemesisRelationships(RemoveNemesisRelationshipsEvent),
17976 MvmCreditBonusWave(MvmCreditBonusWaveEvent),
17977 MvmCreditBonusAll(MvmCreditBonusAllEvent),
17978 MvmCreditBonusAllAdvanced(MvmCreditBonusAllAdvancedEvent),
17979 MvmQuickSentryUpgrade(MvmQuickSentryUpgradeEvent),
17980 MvmTankDestroyedByPlayers(MvmTankDestroyedByPlayersEvent),
17981 MvmKillRobotDeliveringBomb(MvmKillRobotDeliveringBombEvent),
17982 MvmPickupCurrency(MvmPickupCurrencyEvent),
17983 MvmBombCarrierKilled(MvmBombCarrierKilledEvent),
17984 MvmSentryBusterDetonate(MvmSentryBusterDetonateEvent),
17985 MvmScoutMarkedForDeath(MvmScoutMarkedForDeathEvent),
17986 MvmMedicPowerUpShared(MvmMedicPowerUpSharedEvent),
17987 MvmBeginWave(MvmBeginWaveEvent),
17988 MvmWaveComplete(MvmWaveCompleteEvent),
17989 MvmMissionComplete(MvmMissionCompleteEvent),
17990 MvmBombResetByPlayer(MvmBombResetByPlayerEvent),
17991 MvmBombAlarmTriggered(MvmBombAlarmTriggeredEvent),
17992 MvmBombDeployResetByPlayer(MvmBombDeployResetByPlayerEvent),
17993 MvmWaveFailed(MvmWaveFailedEvent),
17994 MvmResetStats(MvmResetStatsEvent),
17995 DamageResisted(DamageResistedEvent),
17996 RevivePlayerNotify(RevivePlayerNotifyEvent),
17997 RevivePlayerStopped(RevivePlayerStoppedEvent),
17998 RevivePlayerComplete(RevivePlayerCompleteEvent),
17999 PlayerTurnedToGhost(PlayerTurnedToGhostEvent),
18000 MedigunShieldBlockedDamage(MedigunShieldBlockedDamageEvent),
18001 MvmAdvWaveCompleteNoGates(MvmAdvWaveCompleteNoGatesEvent),
18002 MvmSniperHeadshotCurrency(MvmSniperHeadshotCurrencyEvent),
18003 MvmMannhattanPit(MvmMannhattanPitEvent),
18004 FlagCarriedInDetectionZone(FlagCarriedInDetectionZoneEvent),
18005 MvmAdvWaveKilledStunRadio(MvmAdvWaveKilledStunRadioEvent),
18006 PlayerDirectHitStun(PlayerDirectHitStunEvent),
18007 MvmSentryBusterKilled(MvmSentryBusterKilledEvent),
18008 UpgradesFileChanged(UpgradesFileChangedEvent),
18009 RdTeamPointsChanged(RdTeamPointsChangedEvent),
18010 RdRulesStateChanged(RdRulesStateChangedEvent),
18011 RdRobotKilled(RdRobotKilledEvent),
18012 RdRobotImpact(RdRobotImpactEvent),
18013 TeamPlayPreRoundTimeLeft(TeamPlayPreRoundTimeLeftEvent),
18014 ParachuteDeploy(ParachuteDeployEvent),
18015 ParachuteHolster(ParachuteHolsterEvent),
18016 KillRefillsMeter(KillRefillsMeterEvent),
18017 RpsTauntEvent(RpsTauntEventEvent),
18018 CongaKill(CongaKillEvent),
18019 PlayerInitialSpawn(PlayerInitialSpawnEvent),
18020 CompetitiveVictory(CompetitiveVictoryEvent),
18021 CompetitiveStatsUpdate(CompetitiveStatsUpdateEvent),
18022 MiniGameWin(MiniGameWinEvent),
18023 SentryOnGoActive(SentryOnGoActiveEvent),
18024 DuckXpLevelUp(DuckXpLevelUpEvent),
18025 QuestLogOpened(QuestLogOpenedEvent),
18026 SchemaUpdated(SchemaUpdatedEvent),
18027 LocalPlayerPickupWeapon(LocalPlayerPickupWeaponEvent),
18028 RdPlayerScorePoints(RdPlayerScorePointsEvent),
18029 DemomanDetStickies(DemomanDetStickiesEvent),
18030 QuestObjectiveCompleted(QuestObjectiveCompletedEvent),
18031 PlayerScoreChanged(PlayerScoreChangedEvent),
18032 KilledCappingPlayer(KilledCappingPlayerEvent),
18033 EnvironmentalDeath(EnvironmentalDeathEvent),
18034 ProjectileDirectHit(ProjectileDirectHitEvent),
18035 PassGet(PassGetEvent),
18036 PassScore(PassScoreEvent),
18037 PassFree(PassFreeEvent),
18038 PassPassCaught(PassPassCaughtEvent),
18039 PassBallStolen(PassBallStolenEvent),
18040 PassBallBlocked(PassBallBlockedEvent),
18041 DamagePrevented(DamagePreventedEvent),
18042 HalloweenBossKilled(HalloweenBossKilledEvent),
18043 EscapedLootIsland(EscapedLootIslandEvent),
18044 TaggedPlayerAsIt(TaggedPlayerAsItEvent),
18045 MerasmusStunned(MerasmusStunnedEvent),
18046 MerasmusPropFound(MerasmusPropFoundEvent),
18047 HalloweenSkeletonKilled(HalloweenSkeletonKilledEvent),
18048 SkeletonKilledQuest(SkeletonKilledQuestEvent),
18049 SkeletonKingKilledQuest(SkeletonKingKilledQuestEvent),
18050 EscapeHell(EscapeHellEvent),
18051 CrossSpectralBridge(CrossSpectralBridgeEvent),
18052 MiniGameWon(MiniGameWonEvent),
18053 RespawnGhost(RespawnGhostEvent),
18054 KillInHell(KillInHellEvent),
18055 HalloweenDuckCollected(HalloweenDuckCollectedEvent),
18056 SpecialScore(SpecialScoreEvent),
18057 TeamLeaderKilled(TeamLeaderKilledEvent),
18058 HalloweenSoulCollected(HalloweenSoulCollectedEvent),
18059 RecalculateTruce(RecalculateTruceEvent),
18060 DeadRingerCheatDeath(DeadRingerCheatDeathEvent),
18061 CrossbowHeal(CrossbowHealEvent),
18062 DamageMitigated(DamageMitigatedEvent),
18063 PayloadPushed(PayloadPushedEvent),
18064 PlayerAbandonedMatch(PlayerAbandonedMatchEvent),
18065 ClDrawline(ClDrawlineEvent),
18066 RestartTimerTime(RestartTimerTimeEvent),
18067 WinLimitChanged(WinLimitChangedEvent),
18068 WinPanelShowScores(WinPanelShowScoresEvent),
18069 TopStreamsRequestFinished(TopStreamsRequestFinishedEvent),
18070 CompetitiveStateChanged(CompetitiveStateChangedEvent),
18071 GlobalWarDataUpdated(GlobalWarDataUpdatedEvent),
18072 StopWatchChanged(StopWatchChangedEvent),
18073 DsStop(DsStopEvent),
18074 DsScreenshot(DsScreenshotEvent),
18075 ShowMatchSummary(ShowMatchSummaryEvent),
18076 ExperienceChanged(ExperienceChangedEvent),
18077 BeginXpLerp(BeginXpLerpEvent),
18078 MatchmakerStatsUpdated(MatchmakerStatsUpdatedEvent),
18079 RematchVotePeriodOver(RematchVotePeriodOverEvent),
18080 RematchFailedToCreate(RematchFailedToCreateEvent),
18081 PlayerRematchChange(PlayerRematchChangeEvent),
18082 PingUpdated(PingUpdatedEvent),
18083 MMStatsUpdated(MMStatsUpdatedEvent),
18084 PlayerNextMapVoteChange(PlayerNextMapVoteChangeEvent),
18085 VoteMapsChanged(VoteMapsChangedEvent),
18086 ProtoDefChanged(ProtoDefChangedEvent),
18087 PlayerDomination(PlayerDominationEvent),
18088 PlayerRocketPackPushed(PlayerRocketPackPushedEvent),
18089 QuestRequest(QuestRequestEvent),
18090 QuestResponse(QuestResponseEvent),
18091 QuestProgress(QuestProgressEvent),
18092 ProjectileRemoved(ProjectileRemovedEvent),
18093 QuestMapDataChanged(QuestMapDataChangedEvent),
18094 GasDousedPlayerIgnited(GasDousedPlayerIgnitedEvent),
18095 QuestTurnInState(QuestTurnInStateEvent),
18096 ItemsAcknowledged(ItemsAcknowledgedEvent),
18097 CapperKilled(CapperKilledEvent),
18098 MainMenuStabilized(MainMenuStabilizedEvent),
18099 WorldStatusChanged(WorldStatusChangedEvent),
18100 HLTVStatus(HLTVStatusEvent),
18101 HLTVCameraman(HLTVCameramanEvent),
18102 HLTVRankCamera(HLTVRankCameraEvent),
18103 HLTVRankEntity(HLTVRankEntityEvent),
18104 HLTVFixed(HLTVFixedEvent),
18105 HLTVChase(HLTVChaseEvent),
18106 HLTVMessage(HLTVMessageEvent),
18107 HLTVTitle(HLTVTitleEvent),
18108 HLTVChat(HLTVChatEvent),
18109 ReplayStartRecord(ReplayStartRecordEvent),
18110 ReplaySessionInfo(ReplaySessionInfoEvent),
18111 ReplayEndRecord(ReplayEndRecordEvent),
18112 ReplayReplaysAvailable(ReplayReplaysAvailableEvent),
18113 ReplayServerError(ReplayServerErrorEvent),
18114 Unknown(RawGameEvent),
18115}
18116#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
18117#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
18118pub enum GameEventType {
18119 #[serde(rename = "server_spawn")]
18120 ServerSpawn,
18121 #[serde(rename = "server_changelevel_failed")]
18122 ServerChangeLevelFailed,
18123 #[serde(rename = "server_shutdown")]
18124 ServerShutdown,
18125 #[serde(rename = "server_cvar")]
18126 ServerCvar,
18127 #[serde(rename = "server_message")]
18128 ServerMessage,
18129 #[serde(rename = "server_addban")]
18130 ServerAddBan,
18131 #[serde(rename = "server_removeban")]
18132 ServerRemoveBan,
18133 #[serde(rename = "player_connect")]
18134 PlayerConnect,
18135 #[serde(rename = "player_connect_client")]
18136 PlayerConnectClient,
18137 #[serde(rename = "player_info")]
18138 PlayerInfo,
18139 #[serde(rename = "player_disconnect")]
18140 PlayerDisconnect,
18141 #[serde(rename = "player_activate")]
18142 PlayerActivate,
18143 #[serde(rename = "player_say")]
18144 PlayerSay,
18145 #[serde(rename = "client_disconnect")]
18146 ClientDisconnect,
18147 #[serde(rename = "client_beginconnect")]
18148 ClientBeginConnect,
18149 #[serde(rename = "client_connected")]
18150 ClientConnected,
18151 #[serde(rename = "client_fullconnect")]
18152 ClientFullConnect,
18153 #[serde(rename = "host_quit")]
18154 HostQuit,
18155 #[serde(rename = "team_info")]
18156 TeamInfo,
18157 #[serde(rename = "team_score")]
18158 TeamScore,
18159 #[serde(rename = "teamplay_broadcast_audio")]
18160 TeamPlayBroadcastAudio,
18161 #[serde(rename = "player_team")]
18162 PlayerTeam,
18163 #[serde(rename = "player_class")]
18164 PlayerClass,
18165 #[serde(rename = "player_death")]
18166 PlayerDeath,
18167 #[serde(rename = "player_hurt")]
18168 PlayerHurt,
18169 #[serde(rename = "player_chat")]
18170 PlayerChat,
18171 #[serde(rename = "player_score")]
18172 PlayerScore,
18173 #[serde(rename = "player_spawn")]
18174 PlayerSpawn,
18175 #[serde(rename = "player_shoot")]
18176 PlayerShoot,
18177 #[serde(rename = "player_use")]
18178 PlayerUse,
18179 #[serde(rename = "player_changename")]
18180 PlayerChangeName,
18181 #[serde(rename = "player_hintmessage")]
18182 PlayerHintMessage,
18183 #[serde(rename = "base_player_teleported")]
18184 BasePlayerTeleported,
18185 #[serde(rename = "game_init")]
18186 GameInit,
18187 #[serde(rename = "game_newmap")]
18188 GameNewMap,
18189 #[serde(rename = "game_start")]
18190 GameStart,
18191 #[serde(rename = "game_end")]
18192 GameEnd,
18193 #[serde(rename = "round_start")]
18194 RoundStart,
18195 #[serde(rename = "round_end")]
18196 RoundEnd,
18197 #[serde(rename = "game_message")]
18198 GameMessage,
18199 #[serde(rename = "break_breakable")]
18200 BreakBreakable,
18201 #[serde(rename = "break_prop")]
18202 BreakProp,
18203 #[serde(rename = "entity_killed")]
18204 EntityKilled,
18205 #[serde(rename = "bonus_updated")]
18206 BonusUpdated,
18207 #[serde(rename = "achievement_event")]
18208 AchievementEvent,
18209 #[serde(rename = "achievement_increment")]
18210 AchievementIncrement,
18211 #[serde(rename = "physgun_pickup")]
18212 PhysgunPickup,
18213 #[serde(rename = "flare_ignite_npc")]
18214 FlareIgniteNpc,
18215 #[serde(rename = "helicopter_grenade_punt_miss")]
18216 HelicopterGrenadePuntMiss,
18217 #[serde(rename = "user_data_downloaded")]
18218 UserDataDownloaded,
18219 #[serde(rename = "ragdoll_dissolved")]
18220 RagdollDissolved,
18221 #[serde(rename = "hltv_changed_mode")]
18222 HLTVChangedMode,
18223 #[serde(rename = "hltv_changed_target")]
18224 HLTVChangedTarget,
18225 #[serde(rename = "vote_ended")]
18226 VoteEnded,
18227 #[serde(rename = "vote_started")]
18228 VoteStarted,
18229 #[serde(rename = "vote_changed")]
18230 VoteChanged,
18231 #[serde(rename = "vote_passed")]
18232 VotePassed,
18233 #[serde(rename = "vote_failed")]
18234 VoteFailed,
18235 #[serde(rename = "vote_cast")]
18236 VoteCast,
18237 #[serde(rename = "vote_options")]
18238 VoteOptions,
18239 #[serde(rename = "replay_saved")]
18240 ReplaySaved,
18241 #[serde(rename = "entered_performance_mode")]
18242 EnteredPerformanceMode,
18243 #[serde(rename = "browse_replays")]
18244 BrowseReplays,
18245 #[serde(rename = "replay_youtube_stats")]
18246 ReplayYoutubeStats,
18247 #[serde(rename = "inventory_updated")]
18248 InventoryUpdated,
18249 #[serde(rename = "cart_updated")]
18250 CartUpdated,
18251 #[serde(rename = "store_pricesheet_updated")]
18252 StorePriceSheetUpdated,
18253 #[serde(rename = "econ_inventory_connected")]
18254 EconInventoryConnected,
18255 #[serde(rename = "item_schema_initialized")]
18256 ItemSchemaInitialized,
18257 #[serde(rename = "gc_new_session")]
18258 GcNewSession,
18259 #[serde(rename = "gc_lost_session")]
18260 GcLostSession,
18261 #[serde(rename = "intro_finish")]
18262 IntroFinish,
18263 #[serde(rename = "intro_nextcamera")]
18264 IntroNextCamera,
18265 #[serde(rename = "player_changeclass")]
18266 PlayerChangeClass,
18267 #[serde(rename = "tf_map_time_remaining")]
18268 TfMapTimeRemaining,
18269 #[serde(rename = "tf_game_over")]
18270 TfGameOver,
18271 #[serde(rename = "ctf_flag_captured")]
18272 CtfFlagCaptured,
18273 #[serde(rename = "controlpoint_initialized")]
18274 ControlPointInitialized,
18275 #[serde(rename = "controlpoint_updateimages")]
18276 ControlPointUpdateImages,
18277 #[serde(rename = "controlpoint_updatelayout")]
18278 ControlPointUpdateLayout,
18279 #[serde(rename = "controlpoint_updatecapping")]
18280 ControlPointUpdateCapping,
18281 #[serde(rename = "controlpoint_updateowner")]
18282 ControlPointUpdateOwner,
18283 #[serde(rename = "controlpoint_starttouch")]
18284 ControlPointStartTouch,
18285 #[serde(rename = "controlpoint_endtouch")]
18286 ControlPointEndTouch,
18287 #[serde(rename = "controlpoint_pulse_element")]
18288 ControlPointPulseElement,
18289 #[serde(rename = "controlpoint_fake_capture")]
18290 ControlPointFakeCapture,
18291 #[serde(rename = "controlpoint_fake_capture_mult")]
18292 ControlPointFakeCaptureMultiplier,
18293 #[serde(rename = "teamplay_round_selected")]
18294 TeamPlayRoundSelected,
18295 #[serde(rename = "teamplay_round_start")]
18296 TeamPlayRoundStart,
18297 #[serde(rename = "teamplay_round_active")]
18298 TeamPlayRoundActive,
18299 #[serde(rename = "teamplay_waiting_begins")]
18300 TeamPlayWaitingBegins,
18301 #[serde(rename = "teamplay_waiting_ends")]
18302 TeamPlayWaitingEnds,
18303 #[serde(rename = "teamplay_waiting_abouttoend")]
18304 TeamPlayWaitingAboutToEnd,
18305 #[serde(rename = "teamplay_restart_round")]
18306 TeamPlayRestartRound,
18307 #[serde(rename = "teamplay_ready_restart")]
18308 TeamPlayReadyRestart,
18309 #[serde(rename = "teamplay_round_restart_seconds")]
18310 TeamPlayRoundRestartSeconds,
18311 #[serde(rename = "teamplay_team_ready")]
18312 TeamPlayTeamReady,
18313 #[serde(rename = "teamplay_round_win")]
18314 TeamPlayRoundWin,
18315 #[serde(rename = "teamplay_update_timer")]
18316 TeamPlayUpdateTimer,
18317 #[serde(rename = "teamplay_round_stalemate")]
18318 TeamPlayRoundStalemate,
18319 #[serde(rename = "teamplay_overtime_begin")]
18320 TeamPlayOvertimeBegin,
18321 #[serde(rename = "teamplay_overtime_end")]
18322 TeamPlayOvertimeEnd,
18323 #[serde(rename = "teamplay_suddendeath_begin")]
18324 TeamPlaySuddenDeathBegin,
18325 #[serde(rename = "teamplay_suddendeath_end")]
18326 TeamPlaySuddenDeathEnd,
18327 #[serde(rename = "teamplay_game_over")]
18328 TeamPlayGameOver,
18329 #[serde(rename = "teamplay_map_time_remaining")]
18330 TeamPlayMapTimeRemaining,
18331 #[serde(rename = "teamplay_timer_flash")]
18332 TeamPlayTimerFlash,
18333 #[serde(rename = "teamplay_timer_time_added")]
18334 TeamPlayTimerTimeAdded,
18335 #[serde(rename = "teamplay_point_startcapture")]
18336 TeamPlayPointStartCapture,
18337 #[serde(rename = "teamplay_point_captured")]
18338 TeamPlayPointCaptured,
18339 #[serde(rename = "teamplay_point_locked")]
18340 TeamPlayPointLocked,
18341 #[serde(rename = "teamplay_point_unlocked")]
18342 TeamPlayPointUnlocked,
18343 #[serde(rename = "teamplay_capture_broken")]
18344 TeamPlayCaptureBroken,
18345 #[serde(rename = "teamplay_capture_blocked")]
18346 TeamPlayCaptureBlocked,
18347 #[serde(rename = "teamplay_flag_event")]
18348 TeamPlayFlagEvent,
18349 #[serde(rename = "teamplay_win_panel")]
18350 TeamPlayWinPanel,
18351 #[serde(rename = "teamplay_teambalanced_player")]
18352 TeamPlayTeamBalancedPlayer,
18353 #[serde(rename = "teamplay_setup_finished")]
18354 TeamPlaySetupFinished,
18355 #[serde(rename = "teamplay_alert")]
18356 TeamPlayAlert,
18357 #[serde(rename = "training_complete")]
18358 TrainingComplete,
18359 #[serde(rename = "show_freezepanel")]
18360 ShowFreezePanel,
18361 #[serde(rename = "hide_freezepanel")]
18362 HideFreezePanel,
18363 #[serde(rename = "freezecam_started")]
18364 FreezeCamStarted,
18365 #[serde(rename = "localplayer_changeteam")]
18366 LocalPlayerChangeTeam,
18367 #[serde(rename = "localplayer_score_changed")]
18368 LocalPlayerScoreChanged,
18369 #[serde(rename = "localplayer_changeclass")]
18370 LocalPlayerChangeClass,
18371 #[serde(rename = "localplayer_respawn")]
18372 LocalPlayerRespawn,
18373 #[serde(rename = "building_info_changed")]
18374 BuildingInfoChanged,
18375 #[serde(rename = "localplayer_changedisguise")]
18376 LocalPlayerChangeDisguise,
18377 #[serde(rename = "player_account_changed")]
18378 PlayerAccountChanged,
18379 #[serde(rename = "spy_pda_reset")]
18380 SpyPdaReset,
18381 #[serde(rename = "flagstatus_update")]
18382 FlagStatusUpdate,
18383 #[serde(rename = "player_stats_updated")]
18384 PlayerStatsUpdated,
18385 #[serde(rename = "playing_commentary")]
18386 PlayingCommentary,
18387 #[serde(rename = "player_chargedeployed")]
18388 PlayerChargeDeployed,
18389 #[serde(rename = "player_builtobject")]
18390 PlayerBuiltObject,
18391 #[serde(rename = "player_upgradedobject")]
18392 PlayerUpgradedObject,
18393 #[serde(rename = "player_carryobject")]
18394 PlayerCarryObject,
18395 #[serde(rename = "player_dropobject")]
18396 PlayerDropObject,
18397 #[serde(rename = "object_removed")]
18398 ObjectRemoved,
18399 #[serde(rename = "object_destroyed")]
18400 ObjectDestroyed,
18401 #[serde(rename = "object_detonated")]
18402 ObjectDetonated,
18403 #[serde(rename = "achievement_earned")]
18404 AchievementEarned,
18405 #[serde(rename = "spec_target_updated")]
18406 SpecTargetUpdated,
18407 #[serde(rename = "tournament_stateupdate")]
18408 TournamentStateUpdate,
18409 #[serde(rename = "tournament_enablecountdown")]
18410 TournamentEnableCountdown,
18411 #[serde(rename = "player_calledformedic")]
18412 PlayerCalledForMedic,
18413 #[serde(rename = "player_askedforball")]
18414 PlayerAskedForBall,
18415 #[serde(rename = "localplayer_becameobserver")]
18416 LocalPlayerBecameObserver,
18417 #[serde(rename = "player_ignited_inv")]
18418 PlayerIgnitedInv,
18419 #[serde(rename = "player_ignited")]
18420 PlayerIgnited,
18421 #[serde(rename = "player_extinguished")]
18422 PlayerExtinguished,
18423 #[serde(rename = "player_teleported")]
18424 PlayerTeleported,
18425 #[serde(rename = "player_healedmediccall")]
18426 PlayerHealedMedicCall,
18427 #[serde(rename = "localplayer_chargeready")]
18428 LocalPlayerChargeReady,
18429 #[serde(rename = "localplayer_winddown")]
18430 LocalPlayerWindDown,
18431 #[serde(rename = "player_invulned")]
18432 PlayerInvulned,
18433 #[serde(rename = "escort_speed")]
18434 EscortSpeed,
18435 #[serde(rename = "escort_progress")]
18436 EscortProgress,
18437 #[serde(rename = "escort_recede")]
18438 EscortRecede,
18439 #[serde(rename = "gameui_activated")]
18440 GameUIActivated,
18441 #[serde(rename = "gameui_hidden")]
18442 GameUIHidden,
18443 #[serde(rename = "player_escort_score")]
18444 PlayerEscortScore,
18445 #[serde(rename = "player_healonhit")]
18446 PlayerHealOnHit,
18447 #[serde(rename = "player_stealsandvich")]
18448 PlayerStealSandvich,
18449 #[serde(rename = "show_class_layout")]
18450 ShowClassLayout,
18451 #[serde(rename = "show_vs_panel")]
18452 ShowVsPanel,
18453 #[serde(rename = "player_damaged")]
18454 PlayerDamaged,
18455 #[serde(rename = "arena_player_notification")]
18456 ArenaPlayerNotification,
18457 #[serde(rename = "arena_match_maxstreak")]
18458 ArenaMatchMaxStreak,
18459 #[serde(rename = "arena_round_start")]
18460 ArenaRoundStart,
18461 #[serde(rename = "arena_win_panel")]
18462 ArenaWinPanel,
18463 #[serde(rename = "pve_win_panel")]
18464 PveWinPanel,
18465 #[serde(rename = "air_dash")]
18466 AirDash,
18467 #[serde(rename = "landed")]
18468 Landed,
18469 #[serde(rename = "player_damage_dodged")]
18470 PlayerDamageDodged,
18471 #[serde(rename = "player_stunned")]
18472 PlayerStunned,
18473 #[serde(rename = "scout_grand_slam")]
18474 ScoutGrandSlam,
18475 #[serde(rename = "scout_slamdoll_landed")]
18476 ScoutSlamdollLanded,
18477 #[serde(rename = "arrow_impact")]
18478 ArrowImpact,
18479 #[serde(rename = "player_jarated")]
18480 PlayerJarated,
18481 #[serde(rename = "player_jarated_fade")]
18482 PlayerJaratedFade,
18483 #[serde(rename = "player_shield_blocked")]
18484 PlayerShieldBlocked,
18485 #[serde(rename = "player_pinned")]
18486 PlayerPinned,
18487 #[serde(rename = "player_healedbymedic")]
18488 PlayerHealedByMedic,
18489 #[serde(rename = "player_sapped_object")]
18490 PlayerSappedObject,
18491 #[serde(rename = "item_found")]
18492 ItemFound,
18493 #[serde(rename = "show_annotation")]
18494 ShowAnnotation,
18495 #[serde(rename = "hide_annotation")]
18496 HideAnnotation,
18497 #[serde(rename = "post_inventory_application")]
18498 PostInventoryApplication,
18499 #[serde(rename = "controlpoint_unlock_updated")]
18500 ControlPointUnlockUpdated,
18501 #[serde(rename = "deploy_buff_banner")]
18502 DeployBuffBanner,
18503 #[serde(rename = "player_buff")]
18504 PlayerBuff,
18505 #[serde(rename = "medic_death")]
18506 MedicDeath,
18507 #[serde(rename = "overtime_nag")]
18508 OvertimeNag,
18509 #[serde(rename = "teams_changed")]
18510 TeamsChanged,
18511 #[serde(rename = "halloween_pumpkin_grab")]
18512 HalloweenPumpkinGrab,
18513 #[serde(rename = "rocket_jump")]
18514 RocketJump,
18515 #[serde(rename = "rocket_jump_landed")]
18516 RocketJumpLanded,
18517 #[serde(rename = "sticky_jump")]
18518 StickyJump,
18519 #[serde(rename = "sticky_jump_landed")]
18520 StickyJumpLanded,
18521 #[serde(rename = "rocketpack_launch")]
18522 RocketPackLaunch,
18523 #[serde(rename = "rocketpack_landed")]
18524 RocketPackLanded,
18525 #[serde(rename = "medic_defended")]
18526 MedicDefended,
18527 #[serde(rename = "localplayer_healed")]
18528 LocalPlayerHealed,
18529 #[serde(rename = "player_destroyed_pipebomb")]
18530 PlayerDestroyedPipeBomb,
18531 #[serde(rename = "object_deflected")]
18532 ObjectDeflected,
18533 #[serde(rename = "player_mvp")]
18534 PlayerMvp,
18535 #[serde(rename = "raid_spawn_mob")]
18536 RaidSpawnMob,
18537 #[serde(rename = "raid_spawn_squad")]
18538 RaidSpawnSquad,
18539 #[serde(rename = "nav_blocked")]
18540 NavBlocked,
18541 #[serde(rename = "path_track_passed")]
18542 PathTrackPassed,
18543 #[serde(rename = "num_cappers_changed")]
18544 NumCappersChanged,
18545 #[serde(rename = "player_regenerate")]
18546 PlayerRegenerate,
18547 #[serde(rename = "update_status_item")]
18548 UpdateStatusItem,
18549 #[serde(rename = "stats_resetround")]
18550 StatsResetRound,
18551 #[serde(rename = "scorestats_accumulated_update")]
18552 ScoreStatsAccumulatedUpdate,
18553 #[serde(rename = "scorestats_accumulated_reset")]
18554 ScoreStatsAccumulatedReset,
18555 #[serde(rename = "achievement_earned_local")]
18556 AchievementEarnedLocal,
18557 #[serde(rename = "player_healed")]
18558 PlayerHealed,
18559 #[serde(rename = "building_healed")]
18560 BuildingHealed,
18561 #[serde(rename = "item_pickup")]
18562 ItemPickup,
18563 #[serde(rename = "duel_status")]
18564 DuelStatus,
18565 #[serde(rename = "fish_notice")]
18566 FishNotice,
18567 #[serde(rename = "fish_notice__arm")]
18568 FishNoticeArm,
18569 #[serde(rename = "slap_notice")]
18570 SlapNotice,
18571 #[serde(rename = "throwable_hit")]
18572 ThrowableHit,
18573 #[serde(rename = "pumpkin_lord_summoned")]
18574 PumpkinLordSummoned,
18575 #[serde(rename = "pumpkin_lord_killed")]
18576 PumpkinLordKilled,
18577 #[serde(rename = "merasmus_summoned")]
18578 MerasmusSummoned,
18579 #[serde(rename = "merasmus_killed")]
18580 MerasmusKilled,
18581 #[serde(rename = "merasmus_escape_warning")]
18582 MerasmusEscapeWarning,
18583 #[serde(rename = "merasmus_escaped")]
18584 MerasmusEscaped,
18585 #[serde(rename = "eyeball_boss_summoned")]
18586 EyeballBossSummoned,
18587 #[serde(rename = "eyeball_boss_stunned")]
18588 EyeballBossStunned,
18589 #[serde(rename = "eyeball_boss_killed")]
18590 EyeballBossKilled,
18591 #[serde(rename = "eyeball_boss_killer")]
18592 EyeballBossKiller,
18593 #[serde(rename = "eyeball_boss_escape_imminent")]
18594 EyeballBossEscapeImminent,
18595 #[serde(rename = "eyeball_boss_escaped")]
18596 EyeballBossEscaped,
18597 #[serde(rename = "npc_hurt")]
18598 NpcHurt,
18599 #[serde(rename = "controlpoint_timer_updated")]
18600 ControlPointTimerUpdated,
18601 #[serde(rename = "player_highfive_start")]
18602 PlayerHighFiveStart,
18603 #[serde(rename = "player_highfive_cancel")]
18604 PlayerHighFiveCancel,
18605 #[serde(rename = "player_highfive_success")]
18606 PlayerHighFiveSuccess,
18607 #[serde(rename = "player_bonuspoints")]
18608 PlayerBonusPoints,
18609 #[serde(rename = "player_upgraded")]
18610 PlayerUpgraded,
18611 #[serde(rename = "player_buyback")]
18612 PlayerBuyback,
18613 #[serde(rename = "player_used_powerup_bottle")]
18614 PlayerUsedPowerUpBottle,
18615 #[serde(rename = "christmas_gift_grab")]
18616 ChristmasGiftGrab,
18617 #[serde(rename = "player_killed_achievement_zone")]
18618 PlayerKilledAchievementZone,
18619 #[serde(rename = "party_updated")]
18620 PartyUpdated,
18621 #[serde(rename = "party_pref_changed")]
18622 PartyPrefChanged,
18623 #[serde(rename = "party_criteria_changed")]
18624 PartyCriteriaChanged,
18625 #[serde(rename = "party_invites_changed")]
18626 PartyInvitesChanged,
18627 #[serde(rename = "party_queue_state_changed")]
18628 PartyQueueStateChanged,
18629 #[serde(rename = "party_chat")]
18630 PartyChat,
18631 #[serde(rename = "party_member_join")]
18632 PartyMemberJoin,
18633 #[serde(rename = "party_member_leave")]
18634 PartyMemberLeave,
18635 #[serde(rename = "match_invites_updated")]
18636 MatchInvitesUpdated,
18637 #[serde(rename = "lobby_updated")]
18638 LobbyUpdated,
18639 #[serde(rename = "mvm_mission_update")]
18640 MvmMissionUpdate,
18641 #[serde(rename = "recalculate_holidays")]
18642 RecalculateHolidays,
18643 #[serde(rename = "player_currency_changed")]
18644 PlayerCurrencyChanged,
18645 #[serde(rename = "doomsday_rocket_open")]
18646 DoomsdayRocketOpen,
18647 #[serde(rename = "remove_nemesis_relationships")]
18648 RemoveNemesisRelationships,
18649 #[serde(rename = "mvm_creditbonus_wave")]
18650 MvmCreditBonusWave,
18651 #[serde(rename = "mvm_creditbonus_all")]
18652 MvmCreditBonusAll,
18653 #[serde(rename = "mvm_creditbonus_all_advanced")]
18654 MvmCreditBonusAllAdvanced,
18655 #[serde(rename = "mvm_quick_sentry_upgrade")]
18656 MvmQuickSentryUpgrade,
18657 #[serde(rename = "mvm_tank_destroyed_by_players")]
18658 MvmTankDestroyedByPlayers,
18659 #[serde(rename = "mvm_kill_robot_delivering_bomb")]
18660 MvmKillRobotDeliveringBomb,
18661 #[serde(rename = "mvm_pickup_currency")]
18662 MvmPickupCurrency,
18663 #[serde(rename = "mvm_bomb_carrier_killed")]
18664 MvmBombCarrierKilled,
18665 #[serde(rename = "mvm_sentrybuster_detonate")]
18666 MvmSentryBusterDetonate,
18667 #[serde(rename = "mvm_scout_marked_for_death")]
18668 MvmScoutMarkedForDeath,
18669 #[serde(rename = "mvm_medic_powerup_shared")]
18670 MvmMedicPowerUpShared,
18671 #[serde(rename = "mvm_begin_wave")]
18672 MvmBeginWave,
18673 #[serde(rename = "mvm_wave_complete")]
18674 MvmWaveComplete,
18675 #[serde(rename = "mvm_mission_complete")]
18676 MvmMissionComplete,
18677 #[serde(rename = "mvm_bomb_reset_by_player")]
18678 MvmBombResetByPlayer,
18679 #[serde(rename = "mvm_bomb_alarm_triggered")]
18680 MvmBombAlarmTriggered,
18681 #[serde(rename = "mvm_bomb_deploy_reset_by_player")]
18682 MvmBombDeployResetByPlayer,
18683 #[serde(rename = "mvm_wave_failed")]
18684 MvmWaveFailed,
18685 #[serde(rename = "mvm_reset_stats")]
18686 MvmResetStats,
18687 #[serde(rename = "damage_resisted")]
18688 DamageResisted,
18689 #[serde(rename = "revive_player_notify")]
18690 RevivePlayerNotify,
18691 #[serde(rename = "revive_player_stopped")]
18692 RevivePlayerStopped,
18693 #[serde(rename = "revive_player_complete")]
18694 RevivePlayerComplete,
18695 #[serde(rename = "player_turned_to_ghost")]
18696 PlayerTurnedToGhost,
18697 #[serde(rename = "medigun_shield_blocked_damage")]
18698 MedigunShieldBlockedDamage,
18699 #[serde(rename = "mvm_adv_wave_complete_no_gates")]
18700 MvmAdvWaveCompleteNoGates,
18701 #[serde(rename = "mvm_sniper_headshot_currency")]
18702 MvmSniperHeadshotCurrency,
18703 #[serde(rename = "mvm_mannhattan_pit")]
18704 MvmMannhattanPit,
18705 #[serde(rename = "flag_carried_in_detection_zone")]
18706 FlagCarriedInDetectionZone,
18707 #[serde(rename = "mvm_adv_wave_killed_stun_radio")]
18708 MvmAdvWaveKilledStunRadio,
18709 #[serde(rename = "player_directhit_stun")]
18710 PlayerDirectHitStun,
18711 #[serde(rename = "mvm_sentrybuster_killed")]
18712 MvmSentryBusterKilled,
18713 #[serde(rename = "upgrades_file_changed")]
18714 UpgradesFileChanged,
18715 #[serde(rename = "rd_team_points_changed")]
18716 RdTeamPointsChanged,
18717 #[serde(rename = "rd_rules_state_changed")]
18718 RdRulesStateChanged,
18719 #[serde(rename = "rd_robot_killed")]
18720 RdRobotKilled,
18721 #[serde(rename = "rd_robot_impact")]
18722 RdRobotImpact,
18723 #[serde(rename = "teamplay_pre_round_time_left")]
18724 TeamPlayPreRoundTimeLeft,
18725 #[serde(rename = "parachute_deploy")]
18726 ParachuteDeploy,
18727 #[serde(rename = "parachute_holster")]
18728 ParachuteHolster,
18729 #[serde(rename = "kill_refills_meter")]
18730 KillRefillsMeter,
18731 #[serde(rename = "rps_taunt_event")]
18732 RpsTauntEvent,
18733 #[serde(rename = "conga_kill")]
18734 CongaKill,
18735 #[serde(rename = "player_initial_spawn")]
18736 PlayerInitialSpawn,
18737 #[serde(rename = "competitive_victory")]
18738 CompetitiveVictory,
18739 #[serde(rename = "competitive_stats_update")]
18740 CompetitiveStatsUpdate,
18741 #[serde(rename = "minigame_win")]
18742 MiniGameWin,
18743 #[serde(rename = "sentry_on_go_active")]
18744 SentryOnGoActive,
18745 #[serde(rename = "duck_xp_level_up")]
18746 DuckXpLevelUp,
18747 #[serde(rename = "questlog_opened")]
18748 QuestLogOpened,
18749 #[serde(rename = "schema_updated")]
18750 SchemaUpdated,
18751 #[serde(rename = "localplayer_pickup_weapon")]
18752 LocalPlayerPickupWeapon,
18753 #[serde(rename = "rd_player_score_points")]
18754 RdPlayerScorePoints,
18755 #[serde(rename = "demoman_det_stickies")]
18756 DemomanDetStickies,
18757 #[serde(rename = "quest_objective_completed")]
18758 QuestObjectiveCompleted,
18759 #[serde(rename = "player_score_changed")]
18760 PlayerScoreChanged,
18761 #[serde(rename = "killed_capping_player")]
18762 KilledCappingPlayer,
18763 #[serde(rename = "environmental_death")]
18764 EnvironmentalDeath,
18765 #[serde(rename = "projectile_direct_hit")]
18766 ProjectileDirectHit,
18767 #[serde(rename = "pass_get")]
18768 PassGet,
18769 #[serde(rename = "pass_score")]
18770 PassScore,
18771 #[serde(rename = "pass_free")]
18772 PassFree,
18773 #[serde(rename = "pass_pass_caught")]
18774 PassPassCaught,
18775 #[serde(rename = "pass_ball_stolen")]
18776 PassBallStolen,
18777 #[serde(rename = "pass_ball_blocked")]
18778 PassBallBlocked,
18779 #[serde(rename = "damage_prevented")]
18780 DamagePrevented,
18781 #[serde(rename = "halloween_boss_killed")]
18782 HalloweenBossKilled,
18783 #[serde(rename = "escaped_loot_island")]
18784 EscapedLootIsland,
18785 #[serde(rename = "tagged_player_as_it")]
18786 TaggedPlayerAsIt,
18787 #[serde(rename = "merasmus_stunned")]
18788 MerasmusStunned,
18789 #[serde(rename = "merasmus_prop_found")]
18790 MerasmusPropFound,
18791 #[serde(rename = "halloween_skeleton_killed")]
18792 HalloweenSkeletonKilled,
18793 #[serde(rename = "skeleton_killed_quest")]
18794 SkeletonKilledQuest,
18795 #[serde(rename = "skeleton_king_killed_quest")]
18796 SkeletonKingKilledQuest,
18797 #[serde(rename = "escape_hell")]
18798 EscapeHell,
18799 #[serde(rename = "cross_spectral_bridge")]
18800 CrossSpectralBridge,
18801 #[serde(rename = "minigame_won")]
18802 MiniGameWon,
18803 #[serde(rename = "respawn_ghost")]
18804 RespawnGhost,
18805 #[serde(rename = "kill_in_hell")]
18806 KillInHell,
18807 #[serde(rename = "halloween_duck_collected")]
18808 HalloweenDuckCollected,
18809 #[serde(rename = "special_score")]
18810 SpecialScore,
18811 #[serde(rename = "team_leader_killed")]
18812 TeamLeaderKilled,
18813 #[serde(rename = "halloween_soul_collected")]
18814 HalloweenSoulCollected,
18815 #[serde(rename = "recalculate_truce")]
18816 RecalculateTruce,
18817 #[serde(rename = "deadringer_cheat_death")]
18818 DeadRingerCheatDeath,
18819 #[serde(rename = "crossbow_heal")]
18820 CrossbowHeal,
18821 #[serde(rename = "damage_mitigated")]
18822 DamageMitigated,
18823 #[serde(rename = "payload_pushed")]
18824 PayloadPushed,
18825 #[serde(rename = "player_abandoned_match")]
18826 PlayerAbandonedMatch,
18827 #[serde(rename = "cl_drawline")]
18828 ClDrawline,
18829 #[serde(rename = "restart_timer_time")]
18830 RestartTimerTime,
18831 #[serde(rename = "winlimit_changed")]
18832 WinLimitChanged,
18833 #[serde(rename = "winpanel_show_scores")]
18834 WinPanelShowScores,
18835 #[serde(rename = "top_streams_request_finished")]
18836 TopStreamsRequestFinished,
18837 #[serde(rename = "competitive_state_changed")]
18838 CompetitiveStateChanged,
18839 #[serde(rename = "global_war_data_updated")]
18840 GlobalWarDataUpdated,
18841 #[serde(rename = "stop_watch_changed")]
18842 StopWatchChanged,
18843 #[serde(rename = "ds_stop")]
18844 DsStop,
18845 #[serde(rename = "ds_screenshot")]
18846 DsScreenshot,
18847 #[serde(rename = "show_match_summary")]
18848 ShowMatchSummary,
18849 #[serde(rename = "experience_changed")]
18850 ExperienceChanged,
18851 #[serde(rename = "begin_xp_lerp")]
18852 BeginXpLerp,
18853 #[serde(rename = "matchmaker_stats_updated")]
18854 MatchmakerStatsUpdated,
18855 #[serde(rename = "rematch_vote_period_over")]
18856 RematchVotePeriodOver,
18857 #[serde(rename = "rematch_failed_to_create")]
18858 RematchFailedToCreate,
18859 #[serde(rename = "player_rematch_change")]
18860 PlayerRematchChange,
18861 #[serde(rename = "ping_updated")]
18862 PingUpdated,
18863 #[serde(rename = "mmstats_updated")]
18864 MMStatsUpdated,
18865 #[serde(rename = "player_next_map_vote_change")]
18866 PlayerNextMapVoteChange,
18867 #[serde(rename = "vote_maps_changed")]
18868 VoteMapsChanged,
18869 #[serde(rename = "proto_def_changed")]
18870 ProtoDefChanged,
18871 #[serde(rename = "player_domination")]
18872 PlayerDomination,
18873 #[serde(rename = "player_rocketpack_pushed")]
18874 PlayerRocketPackPushed,
18875 #[serde(rename = "quest_request")]
18876 QuestRequest,
18877 #[serde(rename = "quest_response")]
18878 QuestResponse,
18879 #[serde(rename = "quest_progress")]
18880 QuestProgress,
18881 #[serde(rename = "projectile_removed")]
18882 ProjectileRemoved,
18883 #[serde(rename = "quest_map_data_changed")]
18884 QuestMapDataChanged,
18885 #[serde(rename = "gas_doused_player_ignited")]
18886 GasDousedPlayerIgnited,
18887 #[serde(rename = "quest_turn_in_state")]
18888 QuestTurnInState,
18889 #[serde(rename = "items_acknowledged")]
18890 ItemsAcknowledged,
18891 #[serde(rename = "capper_killed")]
18892 CapperKilled,
18893 #[serde(rename = "mainmenu_stabilized")]
18894 MainMenuStabilized,
18895 #[serde(rename = "world_status_changed")]
18896 WorldStatusChanged,
18897 #[serde(rename = "hltv_status")]
18898 HLTVStatus,
18899 #[serde(rename = "hltv_cameraman")]
18900 HLTVCameraman,
18901 #[serde(rename = "hltv_rank_camera")]
18902 HLTVRankCamera,
18903 #[serde(rename = "hltv_rank_entity")]
18904 HLTVRankEntity,
18905 #[serde(rename = "hltv_fixed")]
18906 HLTVFixed,
18907 #[serde(rename = "hltv_chase")]
18908 HLTVChase,
18909 #[serde(rename = "hltv_message")]
18910 HLTVMessage,
18911 #[serde(rename = "hltv_title")]
18912 HLTVTitle,
18913 #[serde(rename = "hltv_chat")]
18914 HLTVChat,
18915 #[serde(rename = "replay_startrecord")]
18916 ReplayStartRecord,
18917 #[serde(rename = "replay_sessioninfo")]
18918 ReplaySessionInfo,
18919 #[serde(rename = "replay_endrecord")]
18920 ReplayEndRecord,
18921 #[serde(rename = "replay_replaysavailable")]
18922 ReplayReplaysAvailable,
18923 #[serde(rename = "replay_servererror")]
18924 ReplayServerError,
18925 Unknown(String),
18926}
18927impl GameEventType {
18928 pub fn from_type_name(name: &str) -> Self {
18929 match name {
18930 "server_spawn" => GameEventType::ServerSpawn,
18931 "server_changelevel_failed" => GameEventType::ServerChangeLevelFailed,
18932 "server_shutdown" => GameEventType::ServerShutdown,
18933 "server_cvar" => GameEventType::ServerCvar,
18934 "server_message" => GameEventType::ServerMessage,
18935 "server_addban" => GameEventType::ServerAddBan,
18936 "server_removeban" => GameEventType::ServerRemoveBan,
18937 "player_connect" => GameEventType::PlayerConnect,
18938 "player_connect_client" => GameEventType::PlayerConnectClient,
18939 "player_info" => GameEventType::PlayerInfo,
18940 "player_disconnect" => GameEventType::PlayerDisconnect,
18941 "player_activate" => GameEventType::PlayerActivate,
18942 "player_say" => GameEventType::PlayerSay,
18943 "client_disconnect" => GameEventType::ClientDisconnect,
18944 "client_beginconnect" => GameEventType::ClientBeginConnect,
18945 "client_connected" => GameEventType::ClientConnected,
18946 "client_fullconnect" => GameEventType::ClientFullConnect,
18947 "host_quit" => GameEventType::HostQuit,
18948 "team_info" => GameEventType::TeamInfo,
18949 "team_score" => GameEventType::TeamScore,
18950 "teamplay_broadcast_audio" => GameEventType::TeamPlayBroadcastAudio,
18951 "player_team" => GameEventType::PlayerTeam,
18952 "player_class" => GameEventType::PlayerClass,
18953 "player_death" => GameEventType::PlayerDeath,
18954 "player_hurt" => GameEventType::PlayerHurt,
18955 "player_chat" => GameEventType::PlayerChat,
18956 "player_score" => GameEventType::PlayerScore,
18957 "player_spawn" => GameEventType::PlayerSpawn,
18958 "player_shoot" => GameEventType::PlayerShoot,
18959 "player_use" => GameEventType::PlayerUse,
18960 "player_changename" => GameEventType::PlayerChangeName,
18961 "player_hintmessage" => GameEventType::PlayerHintMessage,
18962 "base_player_teleported" => GameEventType::BasePlayerTeleported,
18963 "game_init" => GameEventType::GameInit,
18964 "game_newmap" => GameEventType::GameNewMap,
18965 "game_start" => GameEventType::GameStart,
18966 "game_end" => GameEventType::GameEnd,
18967 "round_start" => GameEventType::RoundStart,
18968 "round_end" => GameEventType::RoundEnd,
18969 "game_message" => GameEventType::GameMessage,
18970 "break_breakable" => GameEventType::BreakBreakable,
18971 "break_prop" => GameEventType::BreakProp,
18972 "entity_killed" => GameEventType::EntityKilled,
18973 "bonus_updated" => GameEventType::BonusUpdated,
18974 "achievement_event" => GameEventType::AchievementEvent,
18975 "achievement_increment" => GameEventType::AchievementIncrement,
18976 "physgun_pickup" => GameEventType::PhysgunPickup,
18977 "flare_ignite_npc" => GameEventType::FlareIgniteNpc,
18978 "helicopter_grenade_punt_miss" => GameEventType::HelicopterGrenadePuntMiss,
18979 "user_data_downloaded" => GameEventType::UserDataDownloaded,
18980 "ragdoll_dissolved" => GameEventType::RagdollDissolved,
18981 "hltv_changed_mode" => GameEventType::HLTVChangedMode,
18982 "hltv_changed_target" => GameEventType::HLTVChangedTarget,
18983 "vote_ended" => GameEventType::VoteEnded,
18984 "vote_started" => GameEventType::VoteStarted,
18985 "vote_changed" => GameEventType::VoteChanged,
18986 "vote_passed" => GameEventType::VotePassed,
18987 "vote_failed" => GameEventType::VoteFailed,
18988 "vote_cast" => GameEventType::VoteCast,
18989 "vote_options" => GameEventType::VoteOptions,
18990 "replay_saved" => GameEventType::ReplaySaved,
18991 "entered_performance_mode" => GameEventType::EnteredPerformanceMode,
18992 "browse_replays" => GameEventType::BrowseReplays,
18993 "replay_youtube_stats" => GameEventType::ReplayYoutubeStats,
18994 "inventory_updated" => GameEventType::InventoryUpdated,
18995 "cart_updated" => GameEventType::CartUpdated,
18996 "store_pricesheet_updated" => GameEventType::StorePriceSheetUpdated,
18997 "econ_inventory_connected" => GameEventType::EconInventoryConnected,
18998 "item_schema_initialized" => GameEventType::ItemSchemaInitialized,
18999 "gc_new_session" => GameEventType::GcNewSession,
19000 "gc_lost_session" => GameEventType::GcLostSession,
19001 "intro_finish" => GameEventType::IntroFinish,
19002 "intro_nextcamera" => GameEventType::IntroNextCamera,
19003 "player_changeclass" => GameEventType::PlayerChangeClass,
19004 "tf_map_time_remaining" => GameEventType::TfMapTimeRemaining,
19005 "tf_game_over" => GameEventType::TfGameOver,
19006 "ctf_flag_captured" => GameEventType::CtfFlagCaptured,
19007 "controlpoint_initialized" => GameEventType::ControlPointInitialized,
19008 "controlpoint_updateimages" => GameEventType::ControlPointUpdateImages,
19009 "controlpoint_updatelayout" => GameEventType::ControlPointUpdateLayout,
19010 "controlpoint_updatecapping" => GameEventType::ControlPointUpdateCapping,
19011 "controlpoint_updateowner" => GameEventType::ControlPointUpdateOwner,
19012 "controlpoint_starttouch" => GameEventType::ControlPointStartTouch,
19013 "controlpoint_endtouch" => GameEventType::ControlPointEndTouch,
19014 "controlpoint_pulse_element" => GameEventType::ControlPointPulseElement,
19015 "controlpoint_fake_capture" => GameEventType::ControlPointFakeCapture,
19016 "controlpoint_fake_capture_mult" => GameEventType::ControlPointFakeCaptureMultiplier,
19017 "teamplay_round_selected" => GameEventType::TeamPlayRoundSelected,
19018 "teamplay_round_start" => GameEventType::TeamPlayRoundStart,
19019 "teamplay_round_active" => GameEventType::TeamPlayRoundActive,
19020 "teamplay_waiting_begins" => GameEventType::TeamPlayWaitingBegins,
19021 "teamplay_waiting_ends" => GameEventType::TeamPlayWaitingEnds,
19022 "teamplay_waiting_abouttoend" => GameEventType::TeamPlayWaitingAboutToEnd,
19023 "teamplay_restart_round" => GameEventType::TeamPlayRestartRound,
19024 "teamplay_ready_restart" => GameEventType::TeamPlayReadyRestart,
19025 "teamplay_round_restart_seconds" => GameEventType::TeamPlayRoundRestartSeconds,
19026 "teamplay_team_ready" => GameEventType::TeamPlayTeamReady,
19027 "teamplay_round_win" => GameEventType::TeamPlayRoundWin,
19028 "teamplay_update_timer" => GameEventType::TeamPlayUpdateTimer,
19029 "teamplay_round_stalemate" => GameEventType::TeamPlayRoundStalemate,
19030 "teamplay_overtime_begin" => GameEventType::TeamPlayOvertimeBegin,
19031 "teamplay_overtime_end" => GameEventType::TeamPlayOvertimeEnd,
19032 "teamplay_suddendeath_begin" => GameEventType::TeamPlaySuddenDeathBegin,
19033 "teamplay_suddendeath_end" => GameEventType::TeamPlaySuddenDeathEnd,
19034 "teamplay_game_over" => GameEventType::TeamPlayGameOver,
19035 "teamplay_map_time_remaining" => GameEventType::TeamPlayMapTimeRemaining,
19036 "teamplay_timer_flash" => GameEventType::TeamPlayTimerFlash,
19037 "teamplay_timer_time_added" => GameEventType::TeamPlayTimerTimeAdded,
19038 "teamplay_point_startcapture" => GameEventType::TeamPlayPointStartCapture,
19039 "teamplay_point_captured" => GameEventType::TeamPlayPointCaptured,
19040 "teamplay_point_locked" => GameEventType::TeamPlayPointLocked,
19041 "teamplay_point_unlocked" => GameEventType::TeamPlayPointUnlocked,
19042 "teamplay_capture_broken" => GameEventType::TeamPlayCaptureBroken,
19043 "teamplay_capture_blocked" => GameEventType::TeamPlayCaptureBlocked,
19044 "teamplay_flag_event" => GameEventType::TeamPlayFlagEvent,
19045 "teamplay_win_panel" => GameEventType::TeamPlayWinPanel,
19046 "teamplay_teambalanced_player" => GameEventType::TeamPlayTeamBalancedPlayer,
19047 "teamplay_setup_finished" => GameEventType::TeamPlaySetupFinished,
19048 "teamplay_alert" => GameEventType::TeamPlayAlert,
19049 "training_complete" => GameEventType::TrainingComplete,
19050 "show_freezepanel" => GameEventType::ShowFreezePanel,
19051 "hide_freezepanel" => GameEventType::HideFreezePanel,
19052 "freezecam_started" => GameEventType::FreezeCamStarted,
19053 "localplayer_changeteam" => GameEventType::LocalPlayerChangeTeam,
19054 "localplayer_score_changed" => GameEventType::LocalPlayerScoreChanged,
19055 "localplayer_changeclass" => GameEventType::LocalPlayerChangeClass,
19056 "localplayer_respawn" => GameEventType::LocalPlayerRespawn,
19057 "building_info_changed" => GameEventType::BuildingInfoChanged,
19058 "localplayer_changedisguise" => GameEventType::LocalPlayerChangeDisguise,
19059 "player_account_changed" => GameEventType::PlayerAccountChanged,
19060 "spy_pda_reset" => GameEventType::SpyPdaReset,
19061 "flagstatus_update" => GameEventType::FlagStatusUpdate,
19062 "player_stats_updated" => GameEventType::PlayerStatsUpdated,
19063 "playing_commentary" => GameEventType::PlayingCommentary,
19064 "player_chargedeployed" => GameEventType::PlayerChargeDeployed,
19065 "player_builtobject" => GameEventType::PlayerBuiltObject,
19066 "player_upgradedobject" => GameEventType::PlayerUpgradedObject,
19067 "player_carryobject" => GameEventType::PlayerCarryObject,
19068 "player_dropobject" => GameEventType::PlayerDropObject,
19069 "object_removed" => GameEventType::ObjectRemoved,
19070 "object_destroyed" => GameEventType::ObjectDestroyed,
19071 "object_detonated" => GameEventType::ObjectDetonated,
19072 "achievement_earned" => GameEventType::AchievementEarned,
19073 "spec_target_updated" => GameEventType::SpecTargetUpdated,
19074 "tournament_stateupdate" => GameEventType::TournamentStateUpdate,
19075 "tournament_enablecountdown" => GameEventType::TournamentEnableCountdown,
19076 "player_calledformedic" => GameEventType::PlayerCalledForMedic,
19077 "player_askedforball" => GameEventType::PlayerAskedForBall,
19078 "localplayer_becameobserver" => GameEventType::LocalPlayerBecameObserver,
19079 "player_ignited_inv" => GameEventType::PlayerIgnitedInv,
19080 "player_ignited" => GameEventType::PlayerIgnited,
19081 "player_extinguished" => GameEventType::PlayerExtinguished,
19082 "player_teleported" => GameEventType::PlayerTeleported,
19083 "player_healedmediccall" => GameEventType::PlayerHealedMedicCall,
19084 "localplayer_chargeready" => GameEventType::LocalPlayerChargeReady,
19085 "localplayer_winddown" => GameEventType::LocalPlayerWindDown,
19086 "player_invulned" => GameEventType::PlayerInvulned,
19087 "escort_speed" => GameEventType::EscortSpeed,
19088 "escort_progress" => GameEventType::EscortProgress,
19089 "escort_recede" => GameEventType::EscortRecede,
19090 "gameui_activated" => GameEventType::GameUIActivated,
19091 "gameui_hidden" => GameEventType::GameUIHidden,
19092 "player_escort_score" => GameEventType::PlayerEscortScore,
19093 "player_healonhit" => GameEventType::PlayerHealOnHit,
19094 "player_stealsandvich" => GameEventType::PlayerStealSandvich,
19095 "show_class_layout" => GameEventType::ShowClassLayout,
19096 "show_vs_panel" => GameEventType::ShowVsPanel,
19097 "player_damaged" => GameEventType::PlayerDamaged,
19098 "arena_player_notification" => GameEventType::ArenaPlayerNotification,
19099 "arena_match_maxstreak" => GameEventType::ArenaMatchMaxStreak,
19100 "arena_round_start" => GameEventType::ArenaRoundStart,
19101 "arena_win_panel" => GameEventType::ArenaWinPanel,
19102 "pve_win_panel" => GameEventType::PveWinPanel,
19103 "air_dash" => GameEventType::AirDash,
19104 "landed" => GameEventType::Landed,
19105 "player_damage_dodged" => GameEventType::PlayerDamageDodged,
19106 "player_stunned" => GameEventType::PlayerStunned,
19107 "scout_grand_slam" => GameEventType::ScoutGrandSlam,
19108 "scout_slamdoll_landed" => GameEventType::ScoutSlamdollLanded,
19109 "arrow_impact" => GameEventType::ArrowImpact,
19110 "player_jarated" => GameEventType::PlayerJarated,
19111 "player_jarated_fade" => GameEventType::PlayerJaratedFade,
19112 "player_shield_blocked" => GameEventType::PlayerShieldBlocked,
19113 "player_pinned" => GameEventType::PlayerPinned,
19114 "player_healedbymedic" => GameEventType::PlayerHealedByMedic,
19115 "player_sapped_object" => GameEventType::PlayerSappedObject,
19116 "item_found" => GameEventType::ItemFound,
19117 "show_annotation" => GameEventType::ShowAnnotation,
19118 "hide_annotation" => GameEventType::HideAnnotation,
19119 "post_inventory_application" => GameEventType::PostInventoryApplication,
19120 "controlpoint_unlock_updated" => GameEventType::ControlPointUnlockUpdated,
19121 "deploy_buff_banner" => GameEventType::DeployBuffBanner,
19122 "player_buff" => GameEventType::PlayerBuff,
19123 "medic_death" => GameEventType::MedicDeath,
19124 "overtime_nag" => GameEventType::OvertimeNag,
19125 "teams_changed" => GameEventType::TeamsChanged,
19126 "halloween_pumpkin_grab" => GameEventType::HalloweenPumpkinGrab,
19127 "rocket_jump" => GameEventType::RocketJump,
19128 "rocket_jump_landed" => GameEventType::RocketJumpLanded,
19129 "sticky_jump" => GameEventType::StickyJump,
19130 "sticky_jump_landed" => GameEventType::StickyJumpLanded,
19131 "rocketpack_launch" => GameEventType::RocketPackLaunch,
19132 "rocketpack_landed" => GameEventType::RocketPackLanded,
19133 "medic_defended" => GameEventType::MedicDefended,
19134 "localplayer_healed" => GameEventType::LocalPlayerHealed,
19135 "player_destroyed_pipebomb" => GameEventType::PlayerDestroyedPipeBomb,
19136 "object_deflected" => GameEventType::ObjectDeflected,
19137 "player_mvp" => GameEventType::PlayerMvp,
19138 "raid_spawn_mob" => GameEventType::RaidSpawnMob,
19139 "raid_spawn_squad" => GameEventType::RaidSpawnSquad,
19140 "nav_blocked" => GameEventType::NavBlocked,
19141 "path_track_passed" => GameEventType::PathTrackPassed,
19142 "num_cappers_changed" => GameEventType::NumCappersChanged,
19143 "player_regenerate" => GameEventType::PlayerRegenerate,
19144 "update_status_item" => GameEventType::UpdateStatusItem,
19145 "stats_resetround" => GameEventType::StatsResetRound,
19146 "scorestats_accumulated_update" => GameEventType::ScoreStatsAccumulatedUpdate,
19147 "scorestats_accumulated_reset" => GameEventType::ScoreStatsAccumulatedReset,
19148 "achievement_earned_local" => GameEventType::AchievementEarnedLocal,
19149 "player_healed" => GameEventType::PlayerHealed,
19150 "building_healed" => GameEventType::BuildingHealed,
19151 "item_pickup" => GameEventType::ItemPickup,
19152 "duel_status" => GameEventType::DuelStatus,
19153 "fish_notice" => GameEventType::FishNotice,
19154 "fish_notice__arm" => GameEventType::FishNoticeArm,
19155 "slap_notice" => GameEventType::SlapNotice,
19156 "throwable_hit" => GameEventType::ThrowableHit,
19157 "pumpkin_lord_summoned" => GameEventType::PumpkinLordSummoned,
19158 "pumpkin_lord_killed" => GameEventType::PumpkinLordKilled,
19159 "merasmus_summoned" => GameEventType::MerasmusSummoned,
19160 "merasmus_killed" => GameEventType::MerasmusKilled,
19161 "merasmus_escape_warning" => GameEventType::MerasmusEscapeWarning,
19162 "merasmus_escaped" => GameEventType::MerasmusEscaped,
19163 "eyeball_boss_summoned" => GameEventType::EyeballBossSummoned,
19164 "eyeball_boss_stunned" => GameEventType::EyeballBossStunned,
19165 "eyeball_boss_killed" => GameEventType::EyeballBossKilled,
19166 "eyeball_boss_killer" => GameEventType::EyeballBossKiller,
19167 "eyeball_boss_escape_imminent" => GameEventType::EyeballBossEscapeImminent,
19168 "eyeball_boss_escaped" => GameEventType::EyeballBossEscaped,
19169 "npc_hurt" => GameEventType::NpcHurt,
19170 "controlpoint_timer_updated" => GameEventType::ControlPointTimerUpdated,
19171 "player_highfive_start" => GameEventType::PlayerHighFiveStart,
19172 "player_highfive_cancel" => GameEventType::PlayerHighFiveCancel,
19173 "player_highfive_success" => GameEventType::PlayerHighFiveSuccess,
19174 "player_bonuspoints" => GameEventType::PlayerBonusPoints,
19175 "player_upgraded" => GameEventType::PlayerUpgraded,
19176 "player_buyback" => GameEventType::PlayerBuyback,
19177 "player_used_powerup_bottle" => GameEventType::PlayerUsedPowerUpBottle,
19178 "christmas_gift_grab" => GameEventType::ChristmasGiftGrab,
19179 "player_killed_achievement_zone" => GameEventType::PlayerKilledAchievementZone,
19180 "party_updated" => GameEventType::PartyUpdated,
19181 "party_pref_changed" => GameEventType::PartyPrefChanged,
19182 "party_criteria_changed" => GameEventType::PartyCriteriaChanged,
19183 "party_invites_changed" => GameEventType::PartyInvitesChanged,
19184 "party_queue_state_changed" => GameEventType::PartyQueueStateChanged,
19185 "party_chat" => GameEventType::PartyChat,
19186 "party_member_join" => GameEventType::PartyMemberJoin,
19187 "party_member_leave" => GameEventType::PartyMemberLeave,
19188 "match_invites_updated" => GameEventType::MatchInvitesUpdated,
19189 "lobby_updated" => GameEventType::LobbyUpdated,
19190 "mvm_mission_update" => GameEventType::MvmMissionUpdate,
19191 "recalculate_holidays" => GameEventType::RecalculateHolidays,
19192 "player_currency_changed" => GameEventType::PlayerCurrencyChanged,
19193 "doomsday_rocket_open" => GameEventType::DoomsdayRocketOpen,
19194 "remove_nemesis_relationships" => GameEventType::RemoveNemesisRelationships,
19195 "mvm_creditbonus_wave" => GameEventType::MvmCreditBonusWave,
19196 "mvm_creditbonus_all" => GameEventType::MvmCreditBonusAll,
19197 "mvm_creditbonus_all_advanced" => GameEventType::MvmCreditBonusAllAdvanced,
19198 "mvm_quick_sentry_upgrade" => GameEventType::MvmQuickSentryUpgrade,
19199 "mvm_tank_destroyed_by_players" => GameEventType::MvmTankDestroyedByPlayers,
19200 "mvm_kill_robot_delivering_bomb" => GameEventType::MvmKillRobotDeliveringBomb,
19201 "mvm_pickup_currency" => GameEventType::MvmPickupCurrency,
19202 "mvm_bomb_carrier_killed" => GameEventType::MvmBombCarrierKilled,
19203 "mvm_sentrybuster_detonate" => GameEventType::MvmSentryBusterDetonate,
19204 "mvm_scout_marked_for_death" => GameEventType::MvmScoutMarkedForDeath,
19205 "mvm_medic_powerup_shared" => GameEventType::MvmMedicPowerUpShared,
19206 "mvm_begin_wave" => GameEventType::MvmBeginWave,
19207 "mvm_wave_complete" => GameEventType::MvmWaveComplete,
19208 "mvm_mission_complete" => GameEventType::MvmMissionComplete,
19209 "mvm_bomb_reset_by_player" => GameEventType::MvmBombResetByPlayer,
19210 "mvm_bomb_alarm_triggered" => GameEventType::MvmBombAlarmTriggered,
19211 "mvm_bomb_deploy_reset_by_player" => GameEventType::MvmBombDeployResetByPlayer,
19212 "mvm_wave_failed" => GameEventType::MvmWaveFailed,
19213 "mvm_reset_stats" => GameEventType::MvmResetStats,
19214 "damage_resisted" => GameEventType::DamageResisted,
19215 "revive_player_notify" => GameEventType::RevivePlayerNotify,
19216 "revive_player_stopped" => GameEventType::RevivePlayerStopped,
19217 "revive_player_complete" => GameEventType::RevivePlayerComplete,
19218 "player_turned_to_ghost" => GameEventType::PlayerTurnedToGhost,
19219 "medigun_shield_blocked_damage" => GameEventType::MedigunShieldBlockedDamage,
19220 "mvm_adv_wave_complete_no_gates" => GameEventType::MvmAdvWaveCompleteNoGates,
19221 "mvm_sniper_headshot_currency" => GameEventType::MvmSniperHeadshotCurrency,
19222 "mvm_mannhattan_pit" => GameEventType::MvmMannhattanPit,
19223 "flag_carried_in_detection_zone" => GameEventType::FlagCarriedInDetectionZone,
19224 "mvm_adv_wave_killed_stun_radio" => GameEventType::MvmAdvWaveKilledStunRadio,
19225 "player_directhit_stun" => GameEventType::PlayerDirectHitStun,
19226 "mvm_sentrybuster_killed" => GameEventType::MvmSentryBusterKilled,
19227 "upgrades_file_changed" => GameEventType::UpgradesFileChanged,
19228 "rd_team_points_changed" => GameEventType::RdTeamPointsChanged,
19229 "rd_rules_state_changed" => GameEventType::RdRulesStateChanged,
19230 "rd_robot_killed" => GameEventType::RdRobotKilled,
19231 "rd_robot_impact" => GameEventType::RdRobotImpact,
19232 "teamplay_pre_round_time_left" => GameEventType::TeamPlayPreRoundTimeLeft,
19233 "parachute_deploy" => GameEventType::ParachuteDeploy,
19234 "parachute_holster" => GameEventType::ParachuteHolster,
19235 "kill_refills_meter" => GameEventType::KillRefillsMeter,
19236 "rps_taunt_event" => GameEventType::RpsTauntEvent,
19237 "conga_kill" => GameEventType::CongaKill,
19238 "player_initial_spawn" => GameEventType::PlayerInitialSpawn,
19239 "competitive_victory" => GameEventType::CompetitiveVictory,
19240 "competitive_stats_update" => GameEventType::CompetitiveStatsUpdate,
19241 "minigame_win" => GameEventType::MiniGameWin,
19242 "sentry_on_go_active" => GameEventType::SentryOnGoActive,
19243 "duck_xp_level_up" => GameEventType::DuckXpLevelUp,
19244 "questlog_opened" => GameEventType::QuestLogOpened,
19245 "schema_updated" => GameEventType::SchemaUpdated,
19246 "localplayer_pickup_weapon" => GameEventType::LocalPlayerPickupWeapon,
19247 "rd_player_score_points" => GameEventType::RdPlayerScorePoints,
19248 "demoman_det_stickies" => GameEventType::DemomanDetStickies,
19249 "quest_objective_completed" => GameEventType::QuestObjectiveCompleted,
19250 "player_score_changed" => GameEventType::PlayerScoreChanged,
19251 "killed_capping_player" => GameEventType::KilledCappingPlayer,
19252 "environmental_death" => GameEventType::EnvironmentalDeath,
19253 "projectile_direct_hit" => GameEventType::ProjectileDirectHit,
19254 "pass_get" => GameEventType::PassGet,
19255 "pass_score" => GameEventType::PassScore,
19256 "pass_free" => GameEventType::PassFree,
19257 "pass_pass_caught" => GameEventType::PassPassCaught,
19258 "pass_ball_stolen" => GameEventType::PassBallStolen,
19259 "pass_ball_blocked" => GameEventType::PassBallBlocked,
19260 "damage_prevented" => GameEventType::DamagePrevented,
19261 "halloween_boss_killed" => GameEventType::HalloweenBossKilled,
19262 "escaped_loot_island" => GameEventType::EscapedLootIsland,
19263 "tagged_player_as_it" => GameEventType::TaggedPlayerAsIt,
19264 "merasmus_stunned" => GameEventType::MerasmusStunned,
19265 "merasmus_prop_found" => GameEventType::MerasmusPropFound,
19266 "halloween_skeleton_killed" => GameEventType::HalloweenSkeletonKilled,
19267 "skeleton_killed_quest" => GameEventType::SkeletonKilledQuest,
19268 "skeleton_king_killed_quest" => GameEventType::SkeletonKingKilledQuest,
19269 "escape_hell" => GameEventType::EscapeHell,
19270 "cross_spectral_bridge" => GameEventType::CrossSpectralBridge,
19271 "minigame_won" => GameEventType::MiniGameWon,
19272 "respawn_ghost" => GameEventType::RespawnGhost,
19273 "kill_in_hell" => GameEventType::KillInHell,
19274 "halloween_duck_collected" => GameEventType::HalloweenDuckCollected,
19275 "special_score" => GameEventType::SpecialScore,
19276 "team_leader_killed" => GameEventType::TeamLeaderKilled,
19277 "halloween_soul_collected" => GameEventType::HalloweenSoulCollected,
19278 "recalculate_truce" => GameEventType::RecalculateTruce,
19279 "deadringer_cheat_death" => GameEventType::DeadRingerCheatDeath,
19280 "crossbow_heal" => GameEventType::CrossbowHeal,
19281 "damage_mitigated" => GameEventType::DamageMitigated,
19282 "payload_pushed" => GameEventType::PayloadPushed,
19283 "player_abandoned_match" => GameEventType::PlayerAbandonedMatch,
19284 "cl_drawline" => GameEventType::ClDrawline,
19285 "restart_timer_time" => GameEventType::RestartTimerTime,
19286 "winlimit_changed" => GameEventType::WinLimitChanged,
19287 "winpanel_show_scores" => GameEventType::WinPanelShowScores,
19288 "top_streams_request_finished" => GameEventType::TopStreamsRequestFinished,
19289 "competitive_state_changed" => GameEventType::CompetitiveStateChanged,
19290 "global_war_data_updated" => GameEventType::GlobalWarDataUpdated,
19291 "stop_watch_changed" => GameEventType::StopWatchChanged,
19292 "ds_stop" => GameEventType::DsStop,
19293 "ds_screenshot" => GameEventType::DsScreenshot,
19294 "show_match_summary" => GameEventType::ShowMatchSummary,
19295 "experience_changed" => GameEventType::ExperienceChanged,
19296 "begin_xp_lerp" => GameEventType::BeginXpLerp,
19297 "matchmaker_stats_updated" => GameEventType::MatchmakerStatsUpdated,
19298 "rematch_vote_period_over" => GameEventType::RematchVotePeriodOver,
19299 "rematch_failed_to_create" => GameEventType::RematchFailedToCreate,
19300 "player_rematch_change" => GameEventType::PlayerRematchChange,
19301 "ping_updated" => GameEventType::PingUpdated,
19302 "mmstats_updated" => GameEventType::MMStatsUpdated,
19303 "player_next_map_vote_change" => GameEventType::PlayerNextMapVoteChange,
19304 "vote_maps_changed" => GameEventType::VoteMapsChanged,
19305 "proto_def_changed" => GameEventType::ProtoDefChanged,
19306 "player_domination" => GameEventType::PlayerDomination,
19307 "player_rocketpack_pushed" => GameEventType::PlayerRocketPackPushed,
19308 "quest_request" => GameEventType::QuestRequest,
19309 "quest_response" => GameEventType::QuestResponse,
19310 "quest_progress" => GameEventType::QuestProgress,
19311 "projectile_removed" => GameEventType::ProjectileRemoved,
19312 "quest_map_data_changed" => GameEventType::QuestMapDataChanged,
19313 "gas_doused_player_ignited" => GameEventType::GasDousedPlayerIgnited,
19314 "quest_turn_in_state" => GameEventType::QuestTurnInState,
19315 "items_acknowledged" => GameEventType::ItemsAcknowledged,
19316 "capper_killed" => GameEventType::CapperKilled,
19317 "mainmenu_stabilized" => GameEventType::MainMenuStabilized,
19318 "world_status_changed" => GameEventType::WorldStatusChanged,
19319 "hltv_status" => GameEventType::HLTVStatus,
19320 "hltv_cameraman" => GameEventType::HLTVCameraman,
19321 "hltv_rank_camera" => GameEventType::HLTVRankCamera,
19322 "hltv_rank_entity" => GameEventType::HLTVRankEntity,
19323 "hltv_fixed" => GameEventType::HLTVFixed,
19324 "hltv_chase" => GameEventType::HLTVChase,
19325 "hltv_message" => GameEventType::HLTVMessage,
19326 "hltv_title" => GameEventType::HLTVTitle,
19327 "hltv_chat" => GameEventType::HLTVChat,
19328 "replay_startrecord" => GameEventType::ReplayStartRecord,
19329 "replay_sessioninfo" => GameEventType::ReplaySessionInfo,
19330 "replay_endrecord" => GameEventType::ReplayEndRecord,
19331 "replay_replaysavailable" => GameEventType::ReplayReplaysAvailable,
19332 "replay_servererror" => GameEventType::ReplayServerError,
19333 ty => GameEventType::Unknown(ty.into()),
19334 }
19335 }
19336 pub fn as_str(&self) -> &str {
19337 match self {
19338 GameEventType::ServerSpawn => "server_spawn",
19339 GameEventType::ServerChangeLevelFailed => "server_changelevel_failed",
19340 GameEventType::ServerShutdown => "server_shutdown",
19341 GameEventType::ServerCvar => "server_cvar",
19342 GameEventType::ServerMessage => "server_message",
19343 GameEventType::ServerAddBan => "server_addban",
19344 GameEventType::ServerRemoveBan => "server_removeban",
19345 GameEventType::PlayerConnect => "player_connect",
19346 GameEventType::PlayerConnectClient => "player_connect_client",
19347 GameEventType::PlayerInfo => "player_info",
19348 GameEventType::PlayerDisconnect => "player_disconnect",
19349 GameEventType::PlayerActivate => "player_activate",
19350 GameEventType::PlayerSay => "player_say",
19351 GameEventType::ClientDisconnect => "client_disconnect",
19352 GameEventType::ClientBeginConnect => "client_beginconnect",
19353 GameEventType::ClientConnected => "client_connected",
19354 GameEventType::ClientFullConnect => "client_fullconnect",
19355 GameEventType::HostQuit => "host_quit",
19356 GameEventType::TeamInfo => "team_info",
19357 GameEventType::TeamScore => "team_score",
19358 GameEventType::TeamPlayBroadcastAudio => "teamplay_broadcast_audio",
19359 GameEventType::PlayerTeam => "player_team",
19360 GameEventType::PlayerClass => "player_class",
19361 GameEventType::PlayerDeath => "player_death",
19362 GameEventType::PlayerHurt => "player_hurt",
19363 GameEventType::PlayerChat => "player_chat",
19364 GameEventType::PlayerScore => "player_score",
19365 GameEventType::PlayerSpawn => "player_spawn",
19366 GameEventType::PlayerShoot => "player_shoot",
19367 GameEventType::PlayerUse => "player_use",
19368 GameEventType::PlayerChangeName => "player_changename",
19369 GameEventType::PlayerHintMessage => "player_hintmessage",
19370 GameEventType::BasePlayerTeleported => "base_player_teleported",
19371 GameEventType::GameInit => "game_init",
19372 GameEventType::GameNewMap => "game_newmap",
19373 GameEventType::GameStart => "game_start",
19374 GameEventType::GameEnd => "game_end",
19375 GameEventType::RoundStart => "round_start",
19376 GameEventType::RoundEnd => "round_end",
19377 GameEventType::GameMessage => "game_message",
19378 GameEventType::BreakBreakable => "break_breakable",
19379 GameEventType::BreakProp => "break_prop",
19380 GameEventType::EntityKilled => "entity_killed",
19381 GameEventType::BonusUpdated => "bonus_updated",
19382 GameEventType::AchievementEvent => "achievement_event",
19383 GameEventType::AchievementIncrement => "achievement_increment",
19384 GameEventType::PhysgunPickup => "physgun_pickup",
19385 GameEventType::FlareIgniteNpc => "flare_ignite_npc",
19386 GameEventType::HelicopterGrenadePuntMiss => "helicopter_grenade_punt_miss",
19387 GameEventType::UserDataDownloaded => "user_data_downloaded",
19388 GameEventType::RagdollDissolved => "ragdoll_dissolved",
19389 GameEventType::HLTVChangedMode => "hltv_changed_mode",
19390 GameEventType::HLTVChangedTarget => "hltv_changed_target",
19391 GameEventType::VoteEnded => "vote_ended",
19392 GameEventType::VoteStarted => "vote_started",
19393 GameEventType::VoteChanged => "vote_changed",
19394 GameEventType::VotePassed => "vote_passed",
19395 GameEventType::VoteFailed => "vote_failed",
19396 GameEventType::VoteCast => "vote_cast",
19397 GameEventType::VoteOptions => "vote_options",
19398 GameEventType::ReplaySaved => "replay_saved",
19399 GameEventType::EnteredPerformanceMode => "entered_performance_mode",
19400 GameEventType::BrowseReplays => "browse_replays",
19401 GameEventType::ReplayYoutubeStats => "replay_youtube_stats",
19402 GameEventType::InventoryUpdated => "inventory_updated",
19403 GameEventType::CartUpdated => "cart_updated",
19404 GameEventType::StorePriceSheetUpdated => "store_pricesheet_updated",
19405 GameEventType::EconInventoryConnected => "econ_inventory_connected",
19406 GameEventType::ItemSchemaInitialized => "item_schema_initialized",
19407 GameEventType::GcNewSession => "gc_new_session",
19408 GameEventType::GcLostSession => "gc_lost_session",
19409 GameEventType::IntroFinish => "intro_finish",
19410 GameEventType::IntroNextCamera => "intro_nextcamera",
19411 GameEventType::PlayerChangeClass => "player_changeclass",
19412 GameEventType::TfMapTimeRemaining => "tf_map_time_remaining",
19413 GameEventType::TfGameOver => "tf_game_over",
19414 GameEventType::CtfFlagCaptured => "ctf_flag_captured",
19415 GameEventType::ControlPointInitialized => "controlpoint_initialized",
19416 GameEventType::ControlPointUpdateImages => "controlpoint_updateimages",
19417 GameEventType::ControlPointUpdateLayout => "controlpoint_updatelayout",
19418 GameEventType::ControlPointUpdateCapping => "controlpoint_updatecapping",
19419 GameEventType::ControlPointUpdateOwner => "controlpoint_updateowner",
19420 GameEventType::ControlPointStartTouch => "controlpoint_starttouch",
19421 GameEventType::ControlPointEndTouch => "controlpoint_endtouch",
19422 GameEventType::ControlPointPulseElement => "controlpoint_pulse_element",
19423 GameEventType::ControlPointFakeCapture => "controlpoint_fake_capture",
19424 GameEventType::ControlPointFakeCaptureMultiplier => "controlpoint_fake_capture_mult",
19425 GameEventType::TeamPlayRoundSelected => "teamplay_round_selected",
19426 GameEventType::TeamPlayRoundStart => "teamplay_round_start",
19427 GameEventType::TeamPlayRoundActive => "teamplay_round_active",
19428 GameEventType::TeamPlayWaitingBegins => "teamplay_waiting_begins",
19429 GameEventType::TeamPlayWaitingEnds => "teamplay_waiting_ends",
19430 GameEventType::TeamPlayWaitingAboutToEnd => "teamplay_waiting_abouttoend",
19431 GameEventType::TeamPlayRestartRound => "teamplay_restart_round",
19432 GameEventType::TeamPlayReadyRestart => "teamplay_ready_restart",
19433 GameEventType::TeamPlayRoundRestartSeconds => "teamplay_round_restart_seconds",
19434 GameEventType::TeamPlayTeamReady => "teamplay_team_ready",
19435 GameEventType::TeamPlayRoundWin => "teamplay_round_win",
19436 GameEventType::TeamPlayUpdateTimer => "teamplay_update_timer",
19437 GameEventType::TeamPlayRoundStalemate => "teamplay_round_stalemate",
19438 GameEventType::TeamPlayOvertimeBegin => "teamplay_overtime_begin",
19439 GameEventType::TeamPlayOvertimeEnd => "teamplay_overtime_end",
19440 GameEventType::TeamPlaySuddenDeathBegin => "teamplay_suddendeath_begin",
19441 GameEventType::TeamPlaySuddenDeathEnd => "teamplay_suddendeath_end",
19442 GameEventType::TeamPlayGameOver => "teamplay_game_over",
19443 GameEventType::TeamPlayMapTimeRemaining => "teamplay_map_time_remaining",
19444 GameEventType::TeamPlayTimerFlash => "teamplay_timer_flash",
19445 GameEventType::TeamPlayTimerTimeAdded => "teamplay_timer_time_added",
19446 GameEventType::TeamPlayPointStartCapture => "teamplay_point_startcapture",
19447 GameEventType::TeamPlayPointCaptured => "teamplay_point_captured",
19448 GameEventType::TeamPlayPointLocked => "teamplay_point_locked",
19449 GameEventType::TeamPlayPointUnlocked => "teamplay_point_unlocked",
19450 GameEventType::TeamPlayCaptureBroken => "teamplay_capture_broken",
19451 GameEventType::TeamPlayCaptureBlocked => "teamplay_capture_blocked",
19452 GameEventType::TeamPlayFlagEvent => "teamplay_flag_event",
19453 GameEventType::TeamPlayWinPanel => "teamplay_win_panel",
19454 GameEventType::TeamPlayTeamBalancedPlayer => "teamplay_teambalanced_player",
19455 GameEventType::TeamPlaySetupFinished => "teamplay_setup_finished",
19456 GameEventType::TeamPlayAlert => "teamplay_alert",
19457 GameEventType::TrainingComplete => "training_complete",
19458 GameEventType::ShowFreezePanel => "show_freezepanel",
19459 GameEventType::HideFreezePanel => "hide_freezepanel",
19460 GameEventType::FreezeCamStarted => "freezecam_started",
19461 GameEventType::LocalPlayerChangeTeam => "localplayer_changeteam",
19462 GameEventType::LocalPlayerScoreChanged => "localplayer_score_changed",
19463 GameEventType::LocalPlayerChangeClass => "localplayer_changeclass",
19464 GameEventType::LocalPlayerRespawn => "localplayer_respawn",
19465 GameEventType::BuildingInfoChanged => "building_info_changed",
19466 GameEventType::LocalPlayerChangeDisguise => "localplayer_changedisguise",
19467 GameEventType::PlayerAccountChanged => "player_account_changed",
19468 GameEventType::SpyPdaReset => "spy_pda_reset",
19469 GameEventType::FlagStatusUpdate => "flagstatus_update",
19470 GameEventType::PlayerStatsUpdated => "player_stats_updated",
19471 GameEventType::PlayingCommentary => "playing_commentary",
19472 GameEventType::PlayerChargeDeployed => "player_chargedeployed",
19473 GameEventType::PlayerBuiltObject => "player_builtobject",
19474 GameEventType::PlayerUpgradedObject => "player_upgradedobject",
19475 GameEventType::PlayerCarryObject => "player_carryobject",
19476 GameEventType::PlayerDropObject => "player_dropobject",
19477 GameEventType::ObjectRemoved => "object_removed",
19478 GameEventType::ObjectDestroyed => "object_destroyed",
19479 GameEventType::ObjectDetonated => "object_detonated",
19480 GameEventType::AchievementEarned => "achievement_earned",
19481 GameEventType::SpecTargetUpdated => "spec_target_updated",
19482 GameEventType::TournamentStateUpdate => "tournament_stateupdate",
19483 GameEventType::TournamentEnableCountdown => "tournament_enablecountdown",
19484 GameEventType::PlayerCalledForMedic => "player_calledformedic",
19485 GameEventType::PlayerAskedForBall => "player_askedforball",
19486 GameEventType::LocalPlayerBecameObserver => "localplayer_becameobserver",
19487 GameEventType::PlayerIgnitedInv => "player_ignited_inv",
19488 GameEventType::PlayerIgnited => "player_ignited",
19489 GameEventType::PlayerExtinguished => "player_extinguished",
19490 GameEventType::PlayerTeleported => "player_teleported",
19491 GameEventType::PlayerHealedMedicCall => "player_healedmediccall",
19492 GameEventType::LocalPlayerChargeReady => "localplayer_chargeready",
19493 GameEventType::LocalPlayerWindDown => "localplayer_winddown",
19494 GameEventType::PlayerInvulned => "player_invulned",
19495 GameEventType::EscortSpeed => "escort_speed",
19496 GameEventType::EscortProgress => "escort_progress",
19497 GameEventType::EscortRecede => "escort_recede",
19498 GameEventType::GameUIActivated => "gameui_activated",
19499 GameEventType::GameUIHidden => "gameui_hidden",
19500 GameEventType::PlayerEscortScore => "player_escort_score",
19501 GameEventType::PlayerHealOnHit => "player_healonhit",
19502 GameEventType::PlayerStealSandvich => "player_stealsandvich",
19503 GameEventType::ShowClassLayout => "show_class_layout",
19504 GameEventType::ShowVsPanel => "show_vs_panel",
19505 GameEventType::PlayerDamaged => "player_damaged",
19506 GameEventType::ArenaPlayerNotification => "arena_player_notification",
19507 GameEventType::ArenaMatchMaxStreak => "arena_match_maxstreak",
19508 GameEventType::ArenaRoundStart => "arena_round_start",
19509 GameEventType::ArenaWinPanel => "arena_win_panel",
19510 GameEventType::PveWinPanel => "pve_win_panel",
19511 GameEventType::AirDash => "air_dash",
19512 GameEventType::Landed => "landed",
19513 GameEventType::PlayerDamageDodged => "player_damage_dodged",
19514 GameEventType::PlayerStunned => "player_stunned",
19515 GameEventType::ScoutGrandSlam => "scout_grand_slam",
19516 GameEventType::ScoutSlamdollLanded => "scout_slamdoll_landed",
19517 GameEventType::ArrowImpact => "arrow_impact",
19518 GameEventType::PlayerJarated => "player_jarated",
19519 GameEventType::PlayerJaratedFade => "player_jarated_fade",
19520 GameEventType::PlayerShieldBlocked => "player_shield_blocked",
19521 GameEventType::PlayerPinned => "player_pinned",
19522 GameEventType::PlayerHealedByMedic => "player_healedbymedic",
19523 GameEventType::PlayerSappedObject => "player_sapped_object",
19524 GameEventType::ItemFound => "item_found",
19525 GameEventType::ShowAnnotation => "show_annotation",
19526 GameEventType::HideAnnotation => "hide_annotation",
19527 GameEventType::PostInventoryApplication => "post_inventory_application",
19528 GameEventType::ControlPointUnlockUpdated => "controlpoint_unlock_updated",
19529 GameEventType::DeployBuffBanner => "deploy_buff_banner",
19530 GameEventType::PlayerBuff => "player_buff",
19531 GameEventType::MedicDeath => "medic_death",
19532 GameEventType::OvertimeNag => "overtime_nag",
19533 GameEventType::TeamsChanged => "teams_changed",
19534 GameEventType::HalloweenPumpkinGrab => "halloween_pumpkin_grab",
19535 GameEventType::RocketJump => "rocket_jump",
19536 GameEventType::RocketJumpLanded => "rocket_jump_landed",
19537 GameEventType::StickyJump => "sticky_jump",
19538 GameEventType::StickyJumpLanded => "sticky_jump_landed",
19539 GameEventType::RocketPackLaunch => "rocketpack_launch",
19540 GameEventType::RocketPackLanded => "rocketpack_landed",
19541 GameEventType::MedicDefended => "medic_defended",
19542 GameEventType::LocalPlayerHealed => "localplayer_healed",
19543 GameEventType::PlayerDestroyedPipeBomb => "player_destroyed_pipebomb",
19544 GameEventType::ObjectDeflected => "object_deflected",
19545 GameEventType::PlayerMvp => "player_mvp",
19546 GameEventType::RaidSpawnMob => "raid_spawn_mob",
19547 GameEventType::RaidSpawnSquad => "raid_spawn_squad",
19548 GameEventType::NavBlocked => "nav_blocked",
19549 GameEventType::PathTrackPassed => "path_track_passed",
19550 GameEventType::NumCappersChanged => "num_cappers_changed",
19551 GameEventType::PlayerRegenerate => "player_regenerate",
19552 GameEventType::UpdateStatusItem => "update_status_item",
19553 GameEventType::StatsResetRound => "stats_resetround",
19554 GameEventType::ScoreStatsAccumulatedUpdate => "scorestats_accumulated_update",
19555 GameEventType::ScoreStatsAccumulatedReset => "scorestats_accumulated_reset",
19556 GameEventType::AchievementEarnedLocal => "achievement_earned_local",
19557 GameEventType::PlayerHealed => "player_healed",
19558 GameEventType::BuildingHealed => "building_healed",
19559 GameEventType::ItemPickup => "item_pickup",
19560 GameEventType::DuelStatus => "duel_status",
19561 GameEventType::FishNotice => "fish_notice",
19562 GameEventType::FishNoticeArm => "fish_notice__arm",
19563 GameEventType::SlapNotice => "slap_notice",
19564 GameEventType::ThrowableHit => "throwable_hit",
19565 GameEventType::PumpkinLordSummoned => "pumpkin_lord_summoned",
19566 GameEventType::PumpkinLordKilled => "pumpkin_lord_killed",
19567 GameEventType::MerasmusSummoned => "merasmus_summoned",
19568 GameEventType::MerasmusKilled => "merasmus_killed",
19569 GameEventType::MerasmusEscapeWarning => "merasmus_escape_warning",
19570 GameEventType::MerasmusEscaped => "merasmus_escaped",
19571 GameEventType::EyeballBossSummoned => "eyeball_boss_summoned",
19572 GameEventType::EyeballBossStunned => "eyeball_boss_stunned",
19573 GameEventType::EyeballBossKilled => "eyeball_boss_killed",
19574 GameEventType::EyeballBossKiller => "eyeball_boss_killer",
19575 GameEventType::EyeballBossEscapeImminent => "eyeball_boss_escape_imminent",
19576 GameEventType::EyeballBossEscaped => "eyeball_boss_escaped",
19577 GameEventType::NpcHurt => "npc_hurt",
19578 GameEventType::ControlPointTimerUpdated => "controlpoint_timer_updated",
19579 GameEventType::PlayerHighFiveStart => "player_highfive_start",
19580 GameEventType::PlayerHighFiveCancel => "player_highfive_cancel",
19581 GameEventType::PlayerHighFiveSuccess => "player_highfive_success",
19582 GameEventType::PlayerBonusPoints => "player_bonuspoints",
19583 GameEventType::PlayerUpgraded => "player_upgraded",
19584 GameEventType::PlayerBuyback => "player_buyback",
19585 GameEventType::PlayerUsedPowerUpBottle => "player_used_powerup_bottle",
19586 GameEventType::ChristmasGiftGrab => "christmas_gift_grab",
19587 GameEventType::PlayerKilledAchievementZone => "player_killed_achievement_zone",
19588 GameEventType::PartyUpdated => "party_updated",
19589 GameEventType::PartyPrefChanged => "party_pref_changed",
19590 GameEventType::PartyCriteriaChanged => "party_criteria_changed",
19591 GameEventType::PartyInvitesChanged => "party_invites_changed",
19592 GameEventType::PartyQueueStateChanged => "party_queue_state_changed",
19593 GameEventType::PartyChat => "party_chat",
19594 GameEventType::PartyMemberJoin => "party_member_join",
19595 GameEventType::PartyMemberLeave => "party_member_leave",
19596 GameEventType::MatchInvitesUpdated => "match_invites_updated",
19597 GameEventType::LobbyUpdated => "lobby_updated",
19598 GameEventType::MvmMissionUpdate => "mvm_mission_update",
19599 GameEventType::RecalculateHolidays => "recalculate_holidays",
19600 GameEventType::PlayerCurrencyChanged => "player_currency_changed",
19601 GameEventType::DoomsdayRocketOpen => "doomsday_rocket_open",
19602 GameEventType::RemoveNemesisRelationships => "remove_nemesis_relationships",
19603 GameEventType::MvmCreditBonusWave => "mvm_creditbonus_wave",
19604 GameEventType::MvmCreditBonusAll => "mvm_creditbonus_all",
19605 GameEventType::MvmCreditBonusAllAdvanced => "mvm_creditbonus_all_advanced",
19606 GameEventType::MvmQuickSentryUpgrade => "mvm_quick_sentry_upgrade",
19607 GameEventType::MvmTankDestroyedByPlayers => "mvm_tank_destroyed_by_players",
19608 GameEventType::MvmKillRobotDeliveringBomb => "mvm_kill_robot_delivering_bomb",
19609 GameEventType::MvmPickupCurrency => "mvm_pickup_currency",
19610 GameEventType::MvmBombCarrierKilled => "mvm_bomb_carrier_killed",
19611 GameEventType::MvmSentryBusterDetonate => "mvm_sentrybuster_detonate",
19612 GameEventType::MvmScoutMarkedForDeath => "mvm_scout_marked_for_death",
19613 GameEventType::MvmMedicPowerUpShared => "mvm_medic_powerup_shared",
19614 GameEventType::MvmBeginWave => "mvm_begin_wave",
19615 GameEventType::MvmWaveComplete => "mvm_wave_complete",
19616 GameEventType::MvmMissionComplete => "mvm_mission_complete",
19617 GameEventType::MvmBombResetByPlayer => "mvm_bomb_reset_by_player",
19618 GameEventType::MvmBombAlarmTriggered => "mvm_bomb_alarm_triggered",
19619 GameEventType::MvmBombDeployResetByPlayer => "mvm_bomb_deploy_reset_by_player",
19620 GameEventType::MvmWaveFailed => "mvm_wave_failed",
19621 GameEventType::MvmResetStats => "mvm_reset_stats",
19622 GameEventType::DamageResisted => "damage_resisted",
19623 GameEventType::RevivePlayerNotify => "revive_player_notify",
19624 GameEventType::RevivePlayerStopped => "revive_player_stopped",
19625 GameEventType::RevivePlayerComplete => "revive_player_complete",
19626 GameEventType::PlayerTurnedToGhost => "player_turned_to_ghost",
19627 GameEventType::MedigunShieldBlockedDamage => "medigun_shield_blocked_damage",
19628 GameEventType::MvmAdvWaveCompleteNoGates => "mvm_adv_wave_complete_no_gates",
19629 GameEventType::MvmSniperHeadshotCurrency => "mvm_sniper_headshot_currency",
19630 GameEventType::MvmMannhattanPit => "mvm_mannhattan_pit",
19631 GameEventType::FlagCarriedInDetectionZone => "flag_carried_in_detection_zone",
19632 GameEventType::MvmAdvWaveKilledStunRadio => "mvm_adv_wave_killed_stun_radio",
19633 GameEventType::PlayerDirectHitStun => "player_directhit_stun",
19634 GameEventType::MvmSentryBusterKilled => "mvm_sentrybuster_killed",
19635 GameEventType::UpgradesFileChanged => "upgrades_file_changed",
19636 GameEventType::RdTeamPointsChanged => "rd_team_points_changed",
19637 GameEventType::RdRulesStateChanged => "rd_rules_state_changed",
19638 GameEventType::RdRobotKilled => "rd_robot_killed",
19639 GameEventType::RdRobotImpact => "rd_robot_impact",
19640 GameEventType::TeamPlayPreRoundTimeLeft => "teamplay_pre_round_time_left",
19641 GameEventType::ParachuteDeploy => "parachute_deploy",
19642 GameEventType::ParachuteHolster => "parachute_holster",
19643 GameEventType::KillRefillsMeter => "kill_refills_meter",
19644 GameEventType::RpsTauntEvent => "rps_taunt_event",
19645 GameEventType::CongaKill => "conga_kill",
19646 GameEventType::PlayerInitialSpawn => "player_initial_spawn",
19647 GameEventType::CompetitiveVictory => "competitive_victory",
19648 GameEventType::CompetitiveStatsUpdate => "competitive_stats_update",
19649 GameEventType::MiniGameWin => "minigame_win",
19650 GameEventType::SentryOnGoActive => "sentry_on_go_active",
19651 GameEventType::DuckXpLevelUp => "duck_xp_level_up",
19652 GameEventType::QuestLogOpened => "questlog_opened",
19653 GameEventType::SchemaUpdated => "schema_updated",
19654 GameEventType::LocalPlayerPickupWeapon => "localplayer_pickup_weapon",
19655 GameEventType::RdPlayerScorePoints => "rd_player_score_points",
19656 GameEventType::DemomanDetStickies => "demoman_det_stickies",
19657 GameEventType::QuestObjectiveCompleted => "quest_objective_completed",
19658 GameEventType::PlayerScoreChanged => "player_score_changed",
19659 GameEventType::KilledCappingPlayer => "killed_capping_player",
19660 GameEventType::EnvironmentalDeath => "environmental_death",
19661 GameEventType::ProjectileDirectHit => "projectile_direct_hit",
19662 GameEventType::PassGet => "pass_get",
19663 GameEventType::PassScore => "pass_score",
19664 GameEventType::PassFree => "pass_free",
19665 GameEventType::PassPassCaught => "pass_pass_caught",
19666 GameEventType::PassBallStolen => "pass_ball_stolen",
19667 GameEventType::PassBallBlocked => "pass_ball_blocked",
19668 GameEventType::DamagePrevented => "damage_prevented",
19669 GameEventType::HalloweenBossKilled => "halloween_boss_killed",
19670 GameEventType::EscapedLootIsland => "escaped_loot_island",
19671 GameEventType::TaggedPlayerAsIt => "tagged_player_as_it",
19672 GameEventType::MerasmusStunned => "merasmus_stunned",
19673 GameEventType::MerasmusPropFound => "merasmus_prop_found",
19674 GameEventType::HalloweenSkeletonKilled => "halloween_skeleton_killed",
19675 GameEventType::SkeletonKilledQuest => "skeleton_killed_quest",
19676 GameEventType::SkeletonKingKilledQuest => "skeleton_king_killed_quest",
19677 GameEventType::EscapeHell => "escape_hell",
19678 GameEventType::CrossSpectralBridge => "cross_spectral_bridge",
19679 GameEventType::MiniGameWon => "minigame_won",
19680 GameEventType::RespawnGhost => "respawn_ghost",
19681 GameEventType::KillInHell => "kill_in_hell",
19682 GameEventType::HalloweenDuckCollected => "halloween_duck_collected",
19683 GameEventType::SpecialScore => "special_score",
19684 GameEventType::TeamLeaderKilled => "team_leader_killed",
19685 GameEventType::HalloweenSoulCollected => "halloween_soul_collected",
19686 GameEventType::RecalculateTruce => "recalculate_truce",
19687 GameEventType::DeadRingerCheatDeath => "deadringer_cheat_death",
19688 GameEventType::CrossbowHeal => "crossbow_heal",
19689 GameEventType::DamageMitigated => "damage_mitigated",
19690 GameEventType::PayloadPushed => "payload_pushed",
19691 GameEventType::PlayerAbandonedMatch => "player_abandoned_match",
19692 GameEventType::ClDrawline => "cl_drawline",
19693 GameEventType::RestartTimerTime => "restart_timer_time",
19694 GameEventType::WinLimitChanged => "winlimit_changed",
19695 GameEventType::WinPanelShowScores => "winpanel_show_scores",
19696 GameEventType::TopStreamsRequestFinished => "top_streams_request_finished",
19697 GameEventType::CompetitiveStateChanged => "competitive_state_changed",
19698 GameEventType::GlobalWarDataUpdated => "global_war_data_updated",
19699 GameEventType::StopWatchChanged => "stop_watch_changed",
19700 GameEventType::DsStop => "ds_stop",
19701 GameEventType::DsScreenshot => "ds_screenshot",
19702 GameEventType::ShowMatchSummary => "show_match_summary",
19703 GameEventType::ExperienceChanged => "experience_changed",
19704 GameEventType::BeginXpLerp => "begin_xp_lerp",
19705 GameEventType::MatchmakerStatsUpdated => "matchmaker_stats_updated",
19706 GameEventType::RematchVotePeriodOver => "rematch_vote_period_over",
19707 GameEventType::RematchFailedToCreate => "rematch_failed_to_create",
19708 GameEventType::PlayerRematchChange => "player_rematch_change",
19709 GameEventType::PingUpdated => "ping_updated",
19710 GameEventType::MMStatsUpdated => "mmstats_updated",
19711 GameEventType::PlayerNextMapVoteChange => "player_next_map_vote_change",
19712 GameEventType::VoteMapsChanged => "vote_maps_changed",
19713 GameEventType::ProtoDefChanged => "proto_def_changed",
19714 GameEventType::PlayerDomination => "player_domination",
19715 GameEventType::PlayerRocketPackPushed => "player_rocketpack_pushed",
19716 GameEventType::QuestRequest => "quest_request",
19717 GameEventType::QuestResponse => "quest_response",
19718 GameEventType::QuestProgress => "quest_progress",
19719 GameEventType::ProjectileRemoved => "projectile_removed",
19720 GameEventType::QuestMapDataChanged => "quest_map_data_changed",
19721 GameEventType::GasDousedPlayerIgnited => "gas_doused_player_ignited",
19722 GameEventType::QuestTurnInState => "quest_turn_in_state",
19723 GameEventType::ItemsAcknowledged => "items_acknowledged",
19724 GameEventType::CapperKilled => "capper_killed",
19725 GameEventType::MainMenuStabilized => "mainmenu_stabilized",
19726 GameEventType::WorldStatusChanged => "world_status_changed",
19727 GameEventType::HLTVStatus => "hltv_status",
19728 GameEventType::HLTVCameraman => "hltv_cameraman",
19729 GameEventType::HLTVRankCamera => "hltv_rank_camera",
19730 GameEventType::HLTVRankEntity => "hltv_rank_entity",
19731 GameEventType::HLTVFixed => "hltv_fixed",
19732 GameEventType::HLTVChase => "hltv_chase",
19733 GameEventType::HLTVMessage => "hltv_message",
19734 GameEventType::HLTVTitle => "hltv_title",
19735 GameEventType::HLTVChat => "hltv_chat",
19736 GameEventType::ReplayStartRecord => "replay_startrecord",
19737 GameEventType::ReplaySessionInfo => "replay_sessioninfo",
19738 GameEventType::ReplayEndRecord => "replay_endrecord",
19739 GameEventType::ReplayReplaysAvailable => "replay_replaysavailable",
19740 GameEventType::ReplayServerError => "replay_servererror",
19741 GameEventType::Unknown(ty) => ty,
19742 }
19743 }
19744}
19745impl GameEvent {
19746 pub fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
19747 Ok(match definition.event_type {
19748 GameEventType::ServerSpawn => {
19749 GameEvent::ServerSpawn(Box::new(<ServerSpawnEvent>::read(stream, definition)?))
19750 }
19751 GameEventType::ServerChangeLevelFailed => GameEvent::ServerChangeLevelFailed(
19752 ServerChangeLevelFailedEvent::read(stream, definition)?,
19753 ),
19754 GameEventType::ServerShutdown => {
19755 GameEvent::ServerShutdown(ServerShutdownEvent::read(stream, definition)?)
19756 }
19757 GameEventType::ServerCvar => {
19758 GameEvent::ServerCvar(ServerCvarEvent::read(stream, definition)?)
19759 }
19760 GameEventType::ServerMessage => {
19761 GameEvent::ServerMessage(ServerMessageEvent::read(stream, definition)?)
19762 }
19763 GameEventType::ServerAddBan => {
19764 GameEvent::ServerAddBan(Box::new(<ServerAddBanEvent>::read(stream, definition)?))
19765 }
19766 GameEventType::ServerRemoveBan => {
19767 GameEvent::ServerRemoveBan(ServerRemoveBanEvent::read(stream, definition)?)
19768 }
19769 GameEventType::PlayerConnect => {
19770 GameEvent::PlayerConnect(PlayerConnectEvent::read(stream, definition)?)
19771 }
19772 GameEventType::PlayerConnectClient => {
19773 GameEvent::PlayerConnectClient(PlayerConnectClientEvent::read(stream, definition)?)
19774 }
19775 GameEventType::PlayerInfo => {
19776 GameEvent::PlayerInfo(PlayerInfoEvent::read(stream, definition)?)
19777 }
19778 GameEventType::PlayerDisconnect => {
19779 GameEvent::PlayerDisconnect(PlayerDisconnectEvent::read(stream, definition)?)
19780 }
19781 GameEventType::PlayerActivate => {
19782 GameEvent::PlayerActivate(PlayerActivateEvent::read(stream, definition)?)
19783 }
19784 GameEventType::PlayerSay => {
19785 GameEvent::PlayerSay(PlayerSayEvent::read(stream, definition)?)
19786 }
19787 GameEventType::ClientDisconnect => {
19788 GameEvent::ClientDisconnect(ClientDisconnectEvent::read(stream, definition)?)
19789 }
19790 GameEventType::ClientBeginConnect => {
19791 GameEvent::ClientBeginConnect(ClientBeginConnectEvent::read(stream, definition)?)
19792 }
19793 GameEventType::ClientConnected => {
19794 GameEvent::ClientConnected(ClientConnectedEvent::read(stream, definition)?)
19795 }
19796 GameEventType::ClientFullConnect => {
19797 GameEvent::ClientFullConnect(ClientFullConnectEvent::read(stream, definition)?)
19798 }
19799 GameEventType::HostQuit => {
19800 GameEvent::HostQuit(HostQuitEvent::read(stream, definition)?)
19801 }
19802 GameEventType::TeamInfo => {
19803 GameEvent::TeamInfo(TeamInfoEvent::read(stream, definition)?)
19804 }
19805 GameEventType::TeamScore => {
19806 GameEvent::TeamScore(TeamScoreEvent::read(stream, definition)?)
19807 }
19808 GameEventType::TeamPlayBroadcastAudio => GameEvent::TeamPlayBroadcastAudio(
19809 TeamPlayBroadcastAudioEvent::read(stream, definition)?,
19810 ),
19811 GameEventType::PlayerTeam => {
19812 GameEvent::PlayerTeam(PlayerTeamEvent::read(stream, definition)?)
19813 }
19814 GameEventType::PlayerClass => {
19815 GameEvent::PlayerClass(PlayerClassEvent::read(stream, definition)?)
19816 }
19817 GameEventType::PlayerDeath => {
19818 GameEvent::PlayerDeath(Box::new(<PlayerDeathEvent>::read(stream, definition)?))
19819 }
19820 GameEventType::PlayerHurt => {
19821 GameEvent::PlayerHurt(PlayerHurtEvent::read(stream, definition)?)
19822 }
19823 GameEventType::PlayerChat => {
19824 GameEvent::PlayerChat(PlayerChatEvent::read(stream, definition)?)
19825 }
19826 GameEventType::PlayerScore => {
19827 GameEvent::PlayerScore(PlayerScoreEvent::read(stream, definition)?)
19828 }
19829 GameEventType::PlayerSpawn => {
19830 GameEvent::PlayerSpawn(PlayerSpawnEvent::read(stream, definition)?)
19831 }
19832 GameEventType::PlayerShoot => {
19833 GameEvent::PlayerShoot(PlayerShootEvent::read(stream, definition)?)
19834 }
19835 GameEventType::PlayerUse => {
19836 GameEvent::PlayerUse(PlayerUseEvent::read(stream, definition)?)
19837 }
19838 GameEventType::PlayerChangeName => {
19839 GameEvent::PlayerChangeName(PlayerChangeNameEvent::read(stream, definition)?)
19840 }
19841 GameEventType::PlayerHintMessage => {
19842 GameEvent::PlayerHintMessage(PlayerHintMessageEvent::read(stream, definition)?)
19843 }
19844 GameEventType::BasePlayerTeleported => GameEvent::BasePlayerTeleported(
19845 BasePlayerTeleportedEvent::read(stream, definition)?,
19846 ),
19847 GameEventType::GameInit => {
19848 GameEvent::GameInit(GameInitEvent::read(stream, definition)?)
19849 }
19850 GameEventType::GameNewMap => {
19851 GameEvent::GameNewMap(GameNewMapEvent::read(stream, definition)?)
19852 }
19853 GameEventType::GameStart => {
19854 GameEvent::GameStart(GameStartEvent::read(stream, definition)?)
19855 }
19856 GameEventType::GameEnd => GameEvent::GameEnd(GameEndEvent::read(stream, definition)?),
19857 GameEventType::RoundStart => {
19858 GameEvent::RoundStart(RoundStartEvent::read(stream, definition)?)
19859 }
19860 GameEventType::RoundEnd => {
19861 GameEvent::RoundEnd(RoundEndEvent::read(stream, definition)?)
19862 }
19863 GameEventType::GameMessage => {
19864 GameEvent::GameMessage(GameMessageEvent::read(stream, definition)?)
19865 }
19866 GameEventType::BreakBreakable => {
19867 GameEvent::BreakBreakable(BreakBreakableEvent::read(stream, definition)?)
19868 }
19869 GameEventType::BreakProp => {
19870 GameEvent::BreakProp(BreakPropEvent::read(stream, definition)?)
19871 }
19872 GameEventType::EntityKilled => {
19873 GameEvent::EntityKilled(EntityKilledEvent::read(stream, definition)?)
19874 }
19875 GameEventType::BonusUpdated => {
19876 GameEvent::BonusUpdated(BonusUpdatedEvent::read(stream, definition)?)
19877 }
19878 GameEventType::AchievementEvent => {
19879 GameEvent::AchievementEvent(AchievementEventEvent::read(stream, definition)?)
19880 }
19881 GameEventType::AchievementIncrement => GameEvent::AchievementIncrement(
19882 AchievementIncrementEvent::read(stream, definition)?,
19883 ),
19884 GameEventType::PhysgunPickup => {
19885 GameEvent::PhysgunPickup(PhysgunPickupEvent::read(stream, definition)?)
19886 }
19887 GameEventType::FlareIgniteNpc => {
19888 GameEvent::FlareIgniteNpc(FlareIgniteNpcEvent::read(stream, definition)?)
19889 }
19890 GameEventType::HelicopterGrenadePuntMiss => GameEvent::HelicopterGrenadePuntMiss(
19891 HelicopterGrenadePuntMissEvent::read(stream, definition)?,
19892 ),
19893 GameEventType::UserDataDownloaded => {
19894 GameEvent::UserDataDownloaded(UserDataDownloadedEvent::read(stream, definition)?)
19895 }
19896 GameEventType::RagdollDissolved => {
19897 GameEvent::RagdollDissolved(RagdollDissolvedEvent::read(stream, definition)?)
19898 }
19899 GameEventType::HLTVChangedMode => {
19900 GameEvent::HLTVChangedMode(HLTVChangedModeEvent::read(stream, definition)?)
19901 }
19902 GameEventType::HLTVChangedTarget => {
19903 GameEvent::HLTVChangedTarget(HLTVChangedTargetEvent::read(stream, definition)?)
19904 }
19905 GameEventType::VoteEnded => {
19906 GameEvent::VoteEnded(VoteEndedEvent::read(stream, definition)?)
19907 }
19908 GameEventType::VoteStarted => {
19909 GameEvent::VoteStarted(VoteStartedEvent::read(stream, definition)?)
19910 }
19911 GameEventType::VoteChanged => {
19912 GameEvent::VoteChanged(VoteChangedEvent::read(stream, definition)?)
19913 }
19914 GameEventType::VotePassed => {
19915 GameEvent::VotePassed(VotePassedEvent::read(stream, definition)?)
19916 }
19917 GameEventType::VoteFailed => {
19918 GameEvent::VoteFailed(VoteFailedEvent::read(stream, definition)?)
19919 }
19920 GameEventType::VoteCast => {
19921 GameEvent::VoteCast(VoteCastEvent::read(stream, definition)?)
19922 }
19923 GameEventType::VoteOptions => {
19924 GameEvent::VoteOptions(Box::new(<VoteOptionsEvent>::read(stream, definition)?))
19925 }
19926 GameEventType::ReplaySaved => {
19927 GameEvent::ReplaySaved(ReplaySavedEvent::read(stream, definition)?)
19928 }
19929 GameEventType::EnteredPerformanceMode => GameEvent::EnteredPerformanceMode(
19930 EnteredPerformanceModeEvent::read(stream, definition)?,
19931 ),
19932 GameEventType::BrowseReplays => {
19933 GameEvent::BrowseReplays(BrowseReplaysEvent::read(stream, definition)?)
19934 }
19935 GameEventType::ReplayYoutubeStats => {
19936 GameEvent::ReplayYoutubeStats(ReplayYoutubeStatsEvent::read(stream, definition)?)
19937 }
19938 GameEventType::InventoryUpdated => {
19939 GameEvent::InventoryUpdated(InventoryUpdatedEvent::read(stream, definition)?)
19940 }
19941 GameEventType::CartUpdated => {
19942 GameEvent::CartUpdated(CartUpdatedEvent::read(stream, definition)?)
19943 }
19944 GameEventType::StorePriceSheetUpdated => GameEvent::StorePriceSheetUpdated(
19945 StorePriceSheetUpdatedEvent::read(stream, definition)?,
19946 ),
19947 GameEventType::EconInventoryConnected => GameEvent::EconInventoryConnected(
19948 EconInventoryConnectedEvent::read(stream, definition)?,
19949 ),
19950 GameEventType::ItemSchemaInitialized => GameEvent::ItemSchemaInitialized(
19951 ItemSchemaInitializedEvent::read(stream, definition)?,
19952 ),
19953 GameEventType::GcNewSession => {
19954 GameEvent::GcNewSession(GcNewSessionEvent::read(stream, definition)?)
19955 }
19956 GameEventType::GcLostSession => {
19957 GameEvent::GcLostSession(GcLostSessionEvent::read(stream, definition)?)
19958 }
19959 GameEventType::IntroFinish => {
19960 GameEvent::IntroFinish(IntroFinishEvent::read(stream, definition)?)
19961 }
19962 GameEventType::IntroNextCamera => {
19963 GameEvent::IntroNextCamera(IntroNextCameraEvent::read(stream, definition)?)
19964 }
19965 GameEventType::PlayerChangeClass => {
19966 GameEvent::PlayerChangeClass(PlayerChangeClassEvent::read(stream, definition)?)
19967 }
19968 GameEventType::TfMapTimeRemaining => {
19969 GameEvent::TfMapTimeRemaining(TfMapTimeRemainingEvent::read(stream, definition)?)
19970 }
19971 GameEventType::TfGameOver => {
19972 GameEvent::TfGameOver(TfGameOverEvent::read(stream, definition)?)
19973 }
19974 GameEventType::CtfFlagCaptured => {
19975 GameEvent::CtfFlagCaptured(CtfFlagCapturedEvent::read(stream, definition)?)
19976 }
19977 GameEventType::ControlPointInitialized => GameEvent::ControlPointInitialized(
19978 ControlPointInitializedEvent::read(stream, definition)?,
19979 ),
19980 GameEventType::ControlPointUpdateImages => GameEvent::ControlPointUpdateImages(
19981 ControlPointUpdateImagesEvent::read(stream, definition)?,
19982 ),
19983 GameEventType::ControlPointUpdateLayout => GameEvent::ControlPointUpdateLayout(
19984 ControlPointUpdateLayoutEvent::read(stream, definition)?,
19985 ),
19986 GameEventType::ControlPointUpdateCapping => GameEvent::ControlPointUpdateCapping(
19987 ControlPointUpdateCappingEvent::read(stream, definition)?,
19988 ),
19989 GameEventType::ControlPointUpdateOwner => GameEvent::ControlPointUpdateOwner(
19990 ControlPointUpdateOwnerEvent::read(stream, definition)?,
19991 ),
19992 GameEventType::ControlPointStartTouch => GameEvent::ControlPointStartTouch(
19993 ControlPointStartTouchEvent::read(stream, definition)?,
19994 ),
19995 GameEventType::ControlPointEndTouch => GameEvent::ControlPointEndTouch(
19996 ControlPointEndTouchEvent::read(stream, definition)?,
19997 ),
19998 GameEventType::ControlPointPulseElement => GameEvent::ControlPointPulseElement(
19999 ControlPointPulseElementEvent::read(stream, definition)?,
20000 ),
20001 GameEventType::ControlPointFakeCapture => GameEvent::ControlPointFakeCapture(
20002 ControlPointFakeCaptureEvent::read(stream, definition)?,
20003 ),
20004 GameEventType::ControlPointFakeCaptureMultiplier => {
20005 GameEvent::ControlPointFakeCaptureMultiplier(
20006 ControlPointFakeCaptureMultiplierEvent::read(stream, definition)?,
20007 )
20008 }
20009 GameEventType::TeamPlayRoundSelected => GameEvent::TeamPlayRoundSelected(
20010 TeamPlayRoundSelectedEvent::read(stream, definition)?,
20011 ),
20012 GameEventType::TeamPlayRoundStart => {
20013 GameEvent::TeamPlayRoundStart(TeamPlayRoundStartEvent::read(stream, definition)?)
20014 }
20015 GameEventType::TeamPlayRoundActive => {
20016 GameEvent::TeamPlayRoundActive(TeamPlayRoundActiveEvent::read(stream, definition)?)
20017 }
20018 GameEventType::TeamPlayWaitingBegins => GameEvent::TeamPlayWaitingBegins(
20019 TeamPlayWaitingBeginsEvent::read(stream, definition)?,
20020 ),
20021 GameEventType::TeamPlayWaitingEnds => {
20022 GameEvent::TeamPlayWaitingEnds(TeamPlayWaitingEndsEvent::read(stream, definition)?)
20023 }
20024 GameEventType::TeamPlayWaitingAboutToEnd => GameEvent::TeamPlayWaitingAboutToEnd(
20025 TeamPlayWaitingAboutToEndEvent::read(stream, definition)?,
20026 ),
20027 GameEventType::TeamPlayRestartRound => GameEvent::TeamPlayRestartRound(
20028 TeamPlayRestartRoundEvent::read(stream, definition)?,
20029 ),
20030 GameEventType::TeamPlayReadyRestart => GameEvent::TeamPlayReadyRestart(
20031 TeamPlayReadyRestartEvent::read(stream, definition)?,
20032 ),
20033 GameEventType::TeamPlayRoundRestartSeconds => GameEvent::TeamPlayRoundRestartSeconds(
20034 TeamPlayRoundRestartSecondsEvent::read(stream, definition)?,
20035 ),
20036 GameEventType::TeamPlayTeamReady => {
20037 GameEvent::TeamPlayTeamReady(TeamPlayTeamReadyEvent::read(stream, definition)?)
20038 }
20039 GameEventType::TeamPlayRoundWin => {
20040 GameEvent::TeamPlayRoundWin(TeamPlayRoundWinEvent::read(stream, definition)?)
20041 }
20042 GameEventType::TeamPlayUpdateTimer => {
20043 GameEvent::TeamPlayUpdateTimer(TeamPlayUpdateTimerEvent::read(stream, definition)?)
20044 }
20045 GameEventType::TeamPlayRoundStalemate => GameEvent::TeamPlayRoundStalemate(
20046 TeamPlayRoundStalemateEvent::read(stream, definition)?,
20047 ),
20048 GameEventType::TeamPlayOvertimeBegin => GameEvent::TeamPlayOvertimeBegin(
20049 TeamPlayOvertimeBeginEvent::read(stream, definition)?,
20050 ),
20051 GameEventType::TeamPlayOvertimeEnd => {
20052 GameEvent::TeamPlayOvertimeEnd(TeamPlayOvertimeEndEvent::read(stream, definition)?)
20053 }
20054 GameEventType::TeamPlaySuddenDeathBegin => GameEvent::TeamPlaySuddenDeathBegin(
20055 TeamPlaySuddenDeathBeginEvent::read(stream, definition)?,
20056 ),
20057 GameEventType::TeamPlaySuddenDeathEnd => GameEvent::TeamPlaySuddenDeathEnd(
20058 TeamPlaySuddenDeathEndEvent::read(stream, definition)?,
20059 ),
20060 GameEventType::TeamPlayGameOver => {
20061 GameEvent::TeamPlayGameOver(TeamPlayGameOverEvent::read(stream, definition)?)
20062 }
20063 GameEventType::TeamPlayMapTimeRemaining => GameEvent::TeamPlayMapTimeRemaining(
20064 TeamPlayMapTimeRemainingEvent::read(stream, definition)?,
20065 ),
20066 GameEventType::TeamPlayTimerFlash => {
20067 GameEvent::TeamPlayTimerFlash(TeamPlayTimerFlashEvent::read(stream, definition)?)
20068 }
20069 GameEventType::TeamPlayTimerTimeAdded => GameEvent::TeamPlayTimerTimeAdded(
20070 TeamPlayTimerTimeAddedEvent::read(stream, definition)?,
20071 ),
20072 GameEventType::TeamPlayPointStartCapture => GameEvent::TeamPlayPointStartCapture(
20073 TeamPlayPointStartCaptureEvent::read(stream, definition)?,
20074 ),
20075 GameEventType::TeamPlayPointCaptured => GameEvent::TeamPlayPointCaptured(
20076 TeamPlayPointCapturedEvent::read(stream, definition)?,
20077 ),
20078 GameEventType::TeamPlayPointLocked => {
20079 GameEvent::TeamPlayPointLocked(TeamPlayPointLockedEvent::read(stream, definition)?)
20080 }
20081 GameEventType::TeamPlayPointUnlocked => GameEvent::TeamPlayPointUnlocked(
20082 TeamPlayPointUnlockedEvent::read(stream, definition)?,
20083 ),
20084 GameEventType::TeamPlayCaptureBroken => GameEvent::TeamPlayCaptureBroken(
20085 TeamPlayCaptureBrokenEvent::read(stream, definition)?,
20086 ),
20087 GameEventType::TeamPlayCaptureBlocked => GameEvent::TeamPlayCaptureBlocked(
20088 TeamPlayCaptureBlockedEvent::read(stream, definition)?,
20089 ),
20090 GameEventType::TeamPlayFlagEvent => {
20091 GameEvent::TeamPlayFlagEvent(TeamPlayFlagEventEvent::read(stream, definition)?)
20092 }
20093 GameEventType::TeamPlayWinPanel => {
20094 GameEvent::TeamPlayWinPanel(TeamPlayWinPanelEvent::read(stream, definition)?)
20095 }
20096 GameEventType::TeamPlayTeamBalancedPlayer => GameEvent::TeamPlayTeamBalancedPlayer(
20097 TeamPlayTeamBalancedPlayerEvent::read(stream, definition)?,
20098 ),
20099 GameEventType::TeamPlaySetupFinished => GameEvent::TeamPlaySetupFinished(
20100 TeamPlaySetupFinishedEvent::read(stream, definition)?,
20101 ),
20102 GameEventType::TeamPlayAlert => {
20103 GameEvent::TeamPlayAlert(TeamPlayAlertEvent::read(stream, definition)?)
20104 }
20105 GameEventType::TrainingComplete => {
20106 GameEvent::TrainingComplete(TrainingCompleteEvent::read(stream, definition)?)
20107 }
20108 GameEventType::ShowFreezePanel => {
20109 GameEvent::ShowFreezePanel(ShowFreezePanelEvent::read(stream, definition)?)
20110 }
20111 GameEventType::HideFreezePanel => {
20112 GameEvent::HideFreezePanel(HideFreezePanelEvent::read(stream, definition)?)
20113 }
20114 GameEventType::FreezeCamStarted => {
20115 GameEvent::FreezeCamStarted(FreezeCamStartedEvent::read(stream, definition)?)
20116 }
20117 GameEventType::LocalPlayerChangeTeam => GameEvent::LocalPlayerChangeTeam(
20118 LocalPlayerChangeTeamEvent::read(stream, definition)?,
20119 ),
20120 GameEventType::LocalPlayerScoreChanged => GameEvent::LocalPlayerScoreChanged(
20121 LocalPlayerScoreChangedEvent::read(stream, definition)?,
20122 ),
20123 GameEventType::LocalPlayerChangeClass => GameEvent::LocalPlayerChangeClass(
20124 LocalPlayerChangeClassEvent::read(stream, definition)?,
20125 ),
20126 GameEventType::LocalPlayerRespawn => {
20127 GameEvent::LocalPlayerRespawn(LocalPlayerRespawnEvent::read(stream, definition)?)
20128 }
20129 GameEventType::BuildingInfoChanged => {
20130 GameEvent::BuildingInfoChanged(BuildingInfoChangedEvent::read(stream, definition)?)
20131 }
20132 GameEventType::LocalPlayerChangeDisguise => GameEvent::LocalPlayerChangeDisguise(
20133 LocalPlayerChangeDisguiseEvent::read(stream, definition)?,
20134 ),
20135 GameEventType::PlayerAccountChanged => GameEvent::PlayerAccountChanged(
20136 PlayerAccountChangedEvent::read(stream, definition)?,
20137 ),
20138 GameEventType::SpyPdaReset => {
20139 GameEvent::SpyPdaReset(SpyPdaResetEvent::read(stream, definition)?)
20140 }
20141 GameEventType::FlagStatusUpdate => {
20142 GameEvent::FlagStatusUpdate(FlagStatusUpdateEvent::read(stream, definition)?)
20143 }
20144 GameEventType::PlayerStatsUpdated => {
20145 GameEvent::PlayerStatsUpdated(PlayerStatsUpdatedEvent::read(stream, definition)?)
20146 }
20147 GameEventType::PlayingCommentary => {
20148 GameEvent::PlayingCommentary(PlayingCommentaryEvent::read(stream, definition)?)
20149 }
20150 GameEventType::PlayerChargeDeployed => GameEvent::PlayerChargeDeployed(
20151 PlayerChargeDeployedEvent::read(stream, definition)?,
20152 ),
20153 GameEventType::PlayerBuiltObject => {
20154 GameEvent::PlayerBuiltObject(PlayerBuiltObjectEvent::read(stream, definition)?)
20155 }
20156 GameEventType::PlayerUpgradedObject => GameEvent::PlayerUpgradedObject(
20157 PlayerUpgradedObjectEvent::read(stream, definition)?,
20158 ),
20159 GameEventType::PlayerCarryObject => {
20160 GameEvent::PlayerCarryObject(PlayerCarryObjectEvent::read(stream, definition)?)
20161 }
20162 GameEventType::PlayerDropObject => {
20163 GameEvent::PlayerDropObject(PlayerDropObjectEvent::read(stream, definition)?)
20164 }
20165 GameEventType::ObjectRemoved => {
20166 GameEvent::ObjectRemoved(ObjectRemovedEvent::read(stream, definition)?)
20167 }
20168 GameEventType::ObjectDestroyed => {
20169 GameEvent::ObjectDestroyed(ObjectDestroyedEvent::read(stream, definition)?)
20170 }
20171 GameEventType::ObjectDetonated => {
20172 GameEvent::ObjectDetonated(ObjectDetonatedEvent::read(stream, definition)?)
20173 }
20174 GameEventType::AchievementEarned => {
20175 GameEvent::AchievementEarned(AchievementEarnedEvent::read(stream, definition)?)
20176 }
20177 GameEventType::SpecTargetUpdated => {
20178 GameEvent::SpecTargetUpdated(SpecTargetUpdatedEvent::read(stream, definition)?)
20179 }
20180 GameEventType::TournamentStateUpdate => GameEvent::TournamentStateUpdate(
20181 TournamentStateUpdateEvent::read(stream, definition)?,
20182 ),
20183 GameEventType::TournamentEnableCountdown => GameEvent::TournamentEnableCountdown(
20184 TournamentEnableCountdownEvent::read(stream, definition)?,
20185 ),
20186 GameEventType::PlayerCalledForMedic => GameEvent::PlayerCalledForMedic(
20187 PlayerCalledForMedicEvent::read(stream, definition)?,
20188 ),
20189 GameEventType::PlayerAskedForBall => {
20190 GameEvent::PlayerAskedForBall(PlayerAskedForBallEvent::read(stream, definition)?)
20191 }
20192 GameEventType::LocalPlayerBecameObserver => GameEvent::LocalPlayerBecameObserver(
20193 LocalPlayerBecameObserverEvent::read(stream, definition)?,
20194 ),
20195 GameEventType::PlayerIgnitedInv => {
20196 GameEvent::PlayerIgnitedInv(PlayerIgnitedInvEvent::read(stream, definition)?)
20197 }
20198 GameEventType::PlayerIgnited => {
20199 GameEvent::PlayerIgnited(PlayerIgnitedEvent::read(stream, definition)?)
20200 }
20201 GameEventType::PlayerExtinguished => {
20202 GameEvent::PlayerExtinguished(PlayerExtinguishedEvent::read(stream, definition)?)
20203 }
20204 GameEventType::PlayerTeleported => {
20205 GameEvent::PlayerTeleported(PlayerTeleportedEvent::read(stream, definition)?)
20206 }
20207 GameEventType::PlayerHealedMedicCall => GameEvent::PlayerHealedMedicCall(
20208 PlayerHealedMedicCallEvent::read(stream, definition)?,
20209 ),
20210 GameEventType::LocalPlayerChargeReady => GameEvent::LocalPlayerChargeReady(
20211 LocalPlayerChargeReadyEvent::read(stream, definition)?,
20212 ),
20213 GameEventType::LocalPlayerWindDown => {
20214 GameEvent::LocalPlayerWindDown(LocalPlayerWindDownEvent::read(stream, definition)?)
20215 }
20216 GameEventType::PlayerInvulned => {
20217 GameEvent::PlayerInvulned(PlayerInvulnedEvent::read(stream, definition)?)
20218 }
20219 GameEventType::EscortSpeed => {
20220 GameEvent::EscortSpeed(EscortSpeedEvent::read(stream, definition)?)
20221 }
20222 GameEventType::EscortProgress => {
20223 GameEvent::EscortProgress(EscortProgressEvent::read(stream, definition)?)
20224 }
20225 GameEventType::EscortRecede => {
20226 GameEvent::EscortRecede(EscortRecedeEvent::read(stream, definition)?)
20227 }
20228 GameEventType::GameUIActivated => {
20229 GameEvent::GameUIActivated(GameUIActivatedEvent::read(stream, definition)?)
20230 }
20231 GameEventType::GameUIHidden => {
20232 GameEvent::GameUIHidden(GameUIHiddenEvent::read(stream, definition)?)
20233 }
20234 GameEventType::PlayerEscortScore => {
20235 GameEvent::PlayerEscortScore(PlayerEscortScoreEvent::read(stream, definition)?)
20236 }
20237 GameEventType::PlayerHealOnHit => {
20238 GameEvent::PlayerHealOnHit(PlayerHealOnHitEvent::read(stream, definition)?)
20239 }
20240 GameEventType::PlayerStealSandvich => {
20241 GameEvent::PlayerStealSandvich(PlayerStealSandvichEvent::read(stream, definition)?)
20242 }
20243 GameEventType::ShowClassLayout => {
20244 GameEvent::ShowClassLayout(ShowClassLayoutEvent::read(stream, definition)?)
20245 }
20246 GameEventType::ShowVsPanel => {
20247 GameEvent::ShowVsPanel(ShowVsPanelEvent::read(stream, definition)?)
20248 }
20249 GameEventType::PlayerDamaged => {
20250 GameEvent::PlayerDamaged(PlayerDamagedEvent::read(stream, definition)?)
20251 }
20252 GameEventType::ArenaPlayerNotification => GameEvent::ArenaPlayerNotification(
20253 ArenaPlayerNotificationEvent::read(stream, definition)?,
20254 ),
20255 GameEventType::ArenaMatchMaxStreak => {
20256 GameEvent::ArenaMatchMaxStreak(ArenaMatchMaxStreakEvent::read(stream, definition)?)
20257 }
20258 GameEventType::ArenaRoundStart => {
20259 GameEvent::ArenaRoundStart(ArenaRoundStartEvent::read(stream, definition)?)
20260 }
20261 GameEventType::ArenaWinPanel => {
20262 GameEvent::ArenaWinPanel(ArenaWinPanelEvent::read(stream, definition)?)
20263 }
20264 GameEventType::PveWinPanel => {
20265 GameEvent::PveWinPanel(PveWinPanelEvent::read(stream, definition)?)
20266 }
20267 GameEventType::AirDash => GameEvent::AirDash(AirDashEvent::read(stream, definition)?),
20268 GameEventType::Landed => GameEvent::Landed(LandedEvent::read(stream, definition)?),
20269 GameEventType::PlayerDamageDodged => {
20270 GameEvent::PlayerDamageDodged(PlayerDamageDodgedEvent::read(stream, definition)?)
20271 }
20272 GameEventType::PlayerStunned => {
20273 GameEvent::PlayerStunned(PlayerStunnedEvent::read(stream, definition)?)
20274 }
20275 GameEventType::ScoutGrandSlam => {
20276 GameEvent::ScoutGrandSlam(ScoutGrandSlamEvent::read(stream, definition)?)
20277 }
20278 GameEventType::ScoutSlamdollLanded => {
20279 GameEvent::ScoutSlamdollLanded(ScoutSlamdollLandedEvent::read(stream, definition)?)
20280 }
20281 GameEventType::ArrowImpact => {
20282 GameEvent::ArrowImpact(ArrowImpactEvent::read(stream, definition)?)
20283 }
20284 GameEventType::PlayerJarated => {
20285 GameEvent::PlayerJarated(PlayerJaratedEvent::read(stream, definition)?)
20286 }
20287 GameEventType::PlayerJaratedFade => {
20288 GameEvent::PlayerJaratedFade(PlayerJaratedFadeEvent::read(stream, definition)?)
20289 }
20290 GameEventType::PlayerShieldBlocked => {
20291 GameEvent::PlayerShieldBlocked(PlayerShieldBlockedEvent::read(stream, definition)?)
20292 }
20293 GameEventType::PlayerPinned => {
20294 GameEvent::PlayerPinned(PlayerPinnedEvent::read(stream, definition)?)
20295 }
20296 GameEventType::PlayerHealedByMedic => {
20297 GameEvent::PlayerHealedByMedic(PlayerHealedByMedicEvent::read(stream, definition)?)
20298 }
20299 GameEventType::PlayerSappedObject => {
20300 GameEvent::PlayerSappedObject(PlayerSappedObjectEvent::read(stream, definition)?)
20301 }
20302 GameEventType::ItemFound => {
20303 GameEvent::ItemFound(ItemFoundEvent::read(stream, definition)?)
20304 }
20305 GameEventType::ShowAnnotation => {
20306 GameEvent::ShowAnnotation(ShowAnnotationEvent::read(stream, definition)?)
20307 }
20308 GameEventType::HideAnnotation => {
20309 GameEvent::HideAnnotation(HideAnnotationEvent::read(stream, definition)?)
20310 }
20311 GameEventType::PostInventoryApplication => GameEvent::PostInventoryApplication(
20312 PostInventoryApplicationEvent::read(stream, definition)?,
20313 ),
20314 GameEventType::ControlPointUnlockUpdated => GameEvent::ControlPointUnlockUpdated(
20315 ControlPointUnlockUpdatedEvent::read(stream, definition)?,
20316 ),
20317 GameEventType::DeployBuffBanner => {
20318 GameEvent::DeployBuffBanner(DeployBuffBannerEvent::read(stream, definition)?)
20319 }
20320 GameEventType::PlayerBuff => {
20321 GameEvent::PlayerBuff(PlayerBuffEvent::read(stream, definition)?)
20322 }
20323 GameEventType::MedicDeath => {
20324 GameEvent::MedicDeath(MedicDeathEvent::read(stream, definition)?)
20325 }
20326 GameEventType::OvertimeNag => {
20327 GameEvent::OvertimeNag(OvertimeNagEvent::read(stream, definition)?)
20328 }
20329 GameEventType::TeamsChanged => {
20330 GameEvent::TeamsChanged(TeamsChangedEvent::read(stream, definition)?)
20331 }
20332 GameEventType::HalloweenPumpkinGrab => GameEvent::HalloweenPumpkinGrab(
20333 HalloweenPumpkinGrabEvent::read(stream, definition)?,
20334 ),
20335 GameEventType::RocketJump => {
20336 GameEvent::RocketJump(RocketJumpEvent::read(stream, definition)?)
20337 }
20338 GameEventType::RocketJumpLanded => {
20339 GameEvent::RocketJumpLanded(RocketJumpLandedEvent::read(stream, definition)?)
20340 }
20341 GameEventType::StickyJump => {
20342 GameEvent::StickyJump(StickyJumpEvent::read(stream, definition)?)
20343 }
20344 GameEventType::StickyJumpLanded => {
20345 GameEvent::StickyJumpLanded(StickyJumpLandedEvent::read(stream, definition)?)
20346 }
20347 GameEventType::RocketPackLaunch => {
20348 GameEvent::RocketPackLaunch(RocketPackLaunchEvent::read(stream, definition)?)
20349 }
20350 GameEventType::RocketPackLanded => {
20351 GameEvent::RocketPackLanded(RocketPackLandedEvent::read(stream, definition)?)
20352 }
20353 GameEventType::MedicDefended => {
20354 GameEvent::MedicDefended(MedicDefendedEvent::read(stream, definition)?)
20355 }
20356 GameEventType::LocalPlayerHealed => {
20357 GameEvent::LocalPlayerHealed(LocalPlayerHealedEvent::read(stream, definition)?)
20358 }
20359 GameEventType::PlayerDestroyedPipeBomb => GameEvent::PlayerDestroyedPipeBomb(
20360 PlayerDestroyedPipeBombEvent::read(stream, definition)?,
20361 ),
20362 GameEventType::ObjectDeflected => {
20363 GameEvent::ObjectDeflected(ObjectDeflectedEvent::read(stream, definition)?)
20364 }
20365 GameEventType::PlayerMvp => {
20366 GameEvent::PlayerMvp(PlayerMvpEvent::read(stream, definition)?)
20367 }
20368 GameEventType::RaidSpawnMob => {
20369 GameEvent::RaidSpawnMob(RaidSpawnMobEvent::read(stream, definition)?)
20370 }
20371 GameEventType::RaidSpawnSquad => {
20372 GameEvent::RaidSpawnSquad(RaidSpawnSquadEvent::read(stream, definition)?)
20373 }
20374 GameEventType::NavBlocked => {
20375 GameEvent::NavBlocked(NavBlockedEvent::read(stream, definition)?)
20376 }
20377 GameEventType::PathTrackPassed => {
20378 GameEvent::PathTrackPassed(PathTrackPassedEvent::read(stream, definition)?)
20379 }
20380 GameEventType::NumCappersChanged => {
20381 GameEvent::NumCappersChanged(NumCappersChangedEvent::read(stream, definition)?)
20382 }
20383 GameEventType::PlayerRegenerate => {
20384 GameEvent::PlayerRegenerate(PlayerRegenerateEvent::read(stream, definition)?)
20385 }
20386 GameEventType::UpdateStatusItem => {
20387 GameEvent::UpdateStatusItem(UpdateStatusItemEvent::read(stream, definition)?)
20388 }
20389 GameEventType::StatsResetRound => {
20390 GameEvent::StatsResetRound(StatsResetRoundEvent::read(stream, definition)?)
20391 }
20392 GameEventType::ScoreStatsAccumulatedUpdate => GameEvent::ScoreStatsAccumulatedUpdate(
20393 ScoreStatsAccumulatedUpdateEvent::read(stream, definition)?,
20394 ),
20395 GameEventType::ScoreStatsAccumulatedReset => GameEvent::ScoreStatsAccumulatedReset(
20396 ScoreStatsAccumulatedResetEvent::read(stream, definition)?,
20397 ),
20398 GameEventType::AchievementEarnedLocal => GameEvent::AchievementEarnedLocal(
20399 AchievementEarnedLocalEvent::read(stream, definition)?,
20400 ),
20401 GameEventType::PlayerHealed => {
20402 GameEvent::PlayerHealed(PlayerHealedEvent::read(stream, definition)?)
20403 }
20404 GameEventType::BuildingHealed => {
20405 GameEvent::BuildingHealed(BuildingHealedEvent::read(stream, definition)?)
20406 }
20407 GameEventType::ItemPickup => {
20408 GameEvent::ItemPickup(ItemPickupEvent::read(stream, definition)?)
20409 }
20410 GameEventType::DuelStatus => {
20411 GameEvent::DuelStatus(DuelStatusEvent::read(stream, definition)?)
20412 }
20413 GameEventType::FishNotice => {
20414 GameEvent::FishNotice(Box::new(<FishNoticeEvent>::read(stream, definition)?))
20415 }
20416 GameEventType::FishNoticeArm => {
20417 GameEvent::FishNoticeArm(Box::new(<FishNoticeArmEvent>::read(stream, definition)?))
20418 }
20419 GameEventType::SlapNotice => {
20420 GameEvent::SlapNotice(Box::new(<SlapNoticeEvent>::read(stream, definition)?))
20421 }
20422 GameEventType::ThrowableHit => {
20423 GameEvent::ThrowableHit(Box::new(<ThrowableHitEvent>::read(stream, definition)?))
20424 }
20425 GameEventType::PumpkinLordSummoned => {
20426 GameEvent::PumpkinLordSummoned(PumpkinLordSummonedEvent::read(stream, definition)?)
20427 }
20428 GameEventType::PumpkinLordKilled => {
20429 GameEvent::PumpkinLordKilled(PumpkinLordKilledEvent::read(stream, definition)?)
20430 }
20431 GameEventType::MerasmusSummoned => {
20432 GameEvent::MerasmusSummoned(MerasmusSummonedEvent::read(stream, definition)?)
20433 }
20434 GameEventType::MerasmusKilled => {
20435 GameEvent::MerasmusKilled(MerasmusKilledEvent::read(stream, definition)?)
20436 }
20437 GameEventType::MerasmusEscapeWarning => GameEvent::MerasmusEscapeWarning(
20438 MerasmusEscapeWarningEvent::read(stream, definition)?,
20439 ),
20440 GameEventType::MerasmusEscaped => {
20441 GameEvent::MerasmusEscaped(MerasmusEscapedEvent::read(stream, definition)?)
20442 }
20443 GameEventType::EyeballBossSummoned => {
20444 GameEvent::EyeballBossSummoned(EyeballBossSummonedEvent::read(stream, definition)?)
20445 }
20446 GameEventType::EyeballBossStunned => {
20447 GameEvent::EyeballBossStunned(EyeballBossStunnedEvent::read(stream, definition)?)
20448 }
20449 GameEventType::EyeballBossKilled => {
20450 GameEvent::EyeballBossKilled(EyeballBossKilledEvent::read(stream, definition)?)
20451 }
20452 GameEventType::EyeballBossKiller => {
20453 GameEvent::EyeballBossKiller(EyeballBossKillerEvent::read(stream, definition)?)
20454 }
20455 GameEventType::EyeballBossEscapeImminent => GameEvent::EyeballBossEscapeImminent(
20456 EyeballBossEscapeImminentEvent::read(stream, definition)?,
20457 ),
20458 GameEventType::EyeballBossEscaped => {
20459 GameEvent::EyeballBossEscaped(EyeballBossEscapedEvent::read(stream, definition)?)
20460 }
20461 GameEventType::NpcHurt => GameEvent::NpcHurt(NpcHurtEvent::read(stream, definition)?),
20462 GameEventType::ControlPointTimerUpdated => GameEvent::ControlPointTimerUpdated(
20463 ControlPointTimerUpdatedEvent::read(stream, definition)?,
20464 ),
20465 GameEventType::PlayerHighFiveStart => {
20466 GameEvent::PlayerHighFiveStart(PlayerHighFiveStartEvent::read(stream, definition)?)
20467 }
20468 GameEventType::PlayerHighFiveCancel => GameEvent::PlayerHighFiveCancel(
20469 PlayerHighFiveCancelEvent::read(stream, definition)?,
20470 ),
20471 GameEventType::PlayerHighFiveSuccess => GameEvent::PlayerHighFiveSuccess(
20472 PlayerHighFiveSuccessEvent::read(stream, definition)?,
20473 ),
20474 GameEventType::PlayerBonusPoints => {
20475 GameEvent::PlayerBonusPoints(PlayerBonusPointsEvent::read(stream, definition)?)
20476 }
20477 GameEventType::PlayerUpgraded => {
20478 GameEvent::PlayerUpgraded(PlayerUpgradedEvent::read(stream, definition)?)
20479 }
20480 GameEventType::PlayerBuyback => {
20481 GameEvent::PlayerBuyback(PlayerBuybackEvent::read(stream, definition)?)
20482 }
20483 GameEventType::PlayerUsedPowerUpBottle => GameEvent::PlayerUsedPowerUpBottle(
20484 PlayerUsedPowerUpBottleEvent::read(stream, definition)?,
20485 ),
20486 GameEventType::ChristmasGiftGrab => {
20487 GameEvent::ChristmasGiftGrab(ChristmasGiftGrabEvent::read(stream, definition)?)
20488 }
20489 GameEventType::PlayerKilledAchievementZone => GameEvent::PlayerKilledAchievementZone(
20490 PlayerKilledAchievementZoneEvent::read(stream, definition)?,
20491 ),
20492 GameEventType::PartyUpdated => {
20493 GameEvent::PartyUpdated(PartyUpdatedEvent::read(stream, definition)?)
20494 }
20495 GameEventType::PartyPrefChanged => {
20496 GameEvent::PartyPrefChanged(PartyPrefChangedEvent::read(stream, definition)?)
20497 }
20498 GameEventType::PartyCriteriaChanged => GameEvent::PartyCriteriaChanged(
20499 PartyCriteriaChangedEvent::read(stream, definition)?,
20500 ),
20501 GameEventType::PartyInvitesChanged => {
20502 GameEvent::PartyInvitesChanged(PartyInvitesChangedEvent::read(stream, definition)?)
20503 }
20504 GameEventType::PartyQueueStateChanged => GameEvent::PartyQueueStateChanged(
20505 PartyQueueStateChangedEvent::read(stream, definition)?,
20506 ),
20507 GameEventType::PartyChat => {
20508 GameEvent::PartyChat(PartyChatEvent::read(stream, definition)?)
20509 }
20510 GameEventType::PartyMemberJoin => {
20511 GameEvent::PartyMemberJoin(PartyMemberJoinEvent::read(stream, definition)?)
20512 }
20513 GameEventType::PartyMemberLeave => {
20514 GameEvent::PartyMemberLeave(PartyMemberLeaveEvent::read(stream, definition)?)
20515 }
20516 GameEventType::MatchInvitesUpdated => {
20517 GameEvent::MatchInvitesUpdated(MatchInvitesUpdatedEvent::read(stream, definition)?)
20518 }
20519 GameEventType::LobbyUpdated => {
20520 GameEvent::LobbyUpdated(LobbyUpdatedEvent::read(stream, definition)?)
20521 }
20522 GameEventType::MvmMissionUpdate => {
20523 GameEvent::MvmMissionUpdate(MvmMissionUpdateEvent::read(stream, definition)?)
20524 }
20525 GameEventType::RecalculateHolidays => {
20526 GameEvent::RecalculateHolidays(RecalculateHolidaysEvent::read(stream, definition)?)
20527 }
20528 GameEventType::PlayerCurrencyChanged => GameEvent::PlayerCurrencyChanged(
20529 PlayerCurrencyChangedEvent::read(stream, definition)?,
20530 ),
20531 GameEventType::DoomsdayRocketOpen => {
20532 GameEvent::DoomsdayRocketOpen(DoomsdayRocketOpenEvent::read(stream, definition)?)
20533 }
20534 GameEventType::RemoveNemesisRelationships => GameEvent::RemoveNemesisRelationships(
20535 RemoveNemesisRelationshipsEvent::read(stream, definition)?,
20536 ),
20537 GameEventType::MvmCreditBonusWave => {
20538 GameEvent::MvmCreditBonusWave(MvmCreditBonusWaveEvent::read(stream, definition)?)
20539 }
20540 GameEventType::MvmCreditBonusAll => {
20541 GameEvent::MvmCreditBonusAll(MvmCreditBonusAllEvent::read(stream, definition)?)
20542 }
20543 GameEventType::MvmCreditBonusAllAdvanced => GameEvent::MvmCreditBonusAllAdvanced(
20544 MvmCreditBonusAllAdvancedEvent::read(stream, definition)?,
20545 ),
20546 GameEventType::MvmQuickSentryUpgrade => GameEvent::MvmQuickSentryUpgrade(
20547 MvmQuickSentryUpgradeEvent::read(stream, definition)?,
20548 ),
20549 GameEventType::MvmTankDestroyedByPlayers => GameEvent::MvmTankDestroyedByPlayers(
20550 MvmTankDestroyedByPlayersEvent::read(stream, definition)?,
20551 ),
20552 GameEventType::MvmKillRobotDeliveringBomb => GameEvent::MvmKillRobotDeliveringBomb(
20553 MvmKillRobotDeliveringBombEvent::read(stream, definition)?,
20554 ),
20555 GameEventType::MvmPickupCurrency => {
20556 GameEvent::MvmPickupCurrency(MvmPickupCurrencyEvent::read(stream, definition)?)
20557 }
20558 GameEventType::MvmBombCarrierKilled => GameEvent::MvmBombCarrierKilled(
20559 MvmBombCarrierKilledEvent::read(stream, definition)?,
20560 ),
20561 GameEventType::MvmSentryBusterDetonate => GameEvent::MvmSentryBusterDetonate(
20562 MvmSentryBusterDetonateEvent::read(stream, definition)?,
20563 ),
20564 GameEventType::MvmScoutMarkedForDeath => GameEvent::MvmScoutMarkedForDeath(
20565 MvmScoutMarkedForDeathEvent::read(stream, definition)?,
20566 ),
20567 GameEventType::MvmMedicPowerUpShared => GameEvent::MvmMedicPowerUpShared(
20568 MvmMedicPowerUpSharedEvent::read(stream, definition)?,
20569 ),
20570 GameEventType::MvmBeginWave => {
20571 GameEvent::MvmBeginWave(MvmBeginWaveEvent::read(stream, definition)?)
20572 }
20573 GameEventType::MvmWaveComplete => {
20574 GameEvent::MvmWaveComplete(MvmWaveCompleteEvent::read(stream, definition)?)
20575 }
20576 GameEventType::MvmMissionComplete => {
20577 GameEvent::MvmMissionComplete(MvmMissionCompleteEvent::read(stream, definition)?)
20578 }
20579 GameEventType::MvmBombResetByPlayer => GameEvent::MvmBombResetByPlayer(
20580 MvmBombResetByPlayerEvent::read(stream, definition)?,
20581 ),
20582 GameEventType::MvmBombAlarmTriggered => GameEvent::MvmBombAlarmTriggered(
20583 MvmBombAlarmTriggeredEvent::read(stream, definition)?,
20584 ),
20585 GameEventType::MvmBombDeployResetByPlayer => GameEvent::MvmBombDeployResetByPlayer(
20586 MvmBombDeployResetByPlayerEvent::read(stream, definition)?,
20587 ),
20588 GameEventType::MvmWaveFailed => {
20589 GameEvent::MvmWaveFailed(MvmWaveFailedEvent::read(stream, definition)?)
20590 }
20591 GameEventType::MvmResetStats => {
20592 GameEvent::MvmResetStats(MvmResetStatsEvent::read(stream, definition)?)
20593 }
20594 GameEventType::DamageResisted => {
20595 GameEvent::DamageResisted(DamageResistedEvent::read(stream, definition)?)
20596 }
20597 GameEventType::RevivePlayerNotify => {
20598 GameEvent::RevivePlayerNotify(RevivePlayerNotifyEvent::read(stream, definition)?)
20599 }
20600 GameEventType::RevivePlayerStopped => {
20601 GameEvent::RevivePlayerStopped(RevivePlayerStoppedEvent::read(stream, definition)?)
20602 }
20603 GameEventType::RevivePlayerComplete => GameEvent::RevivePlayerComplete(
20604 RevivePlayerCompleteEvent::read(stream, definition)?,
20605 ),
20606 GameEventType::PlayerTurnedToGhost => {
20607 GameEvent::PlayerTurnedToGhost(PlayerTurnedToGhostEvent::read(stream, definition)?)
20608 }
20609 GameEventType::MedigunShieldBlockedDamage => GameEvent::MedigunShieldBlockedDamage(
20610 MedigunShieldBlockedDamageEvent::read(stream, definition)?,
20611 ),
20612 GameEventType::MvmAdvWaveCompleteNoGates => GameEvent::MvmAdvWaveCompleteNoGates(
20613 MvmAdvWaveCompleteNoGatesEvent::read(stream, definition)?,
20614 ),
20615 GameEventType::MvmSniperHeadshotCurrency => GameEvent::MvmSniperHeadshotCurrency(
20616 MvmSniperHeadshotCurrencyEvent::read(stream, definition)?,
20617 ),
20618 GameEventType::MvmMannhattanPit => {
20619 GameEvent::MvmMannhattanPit(MvmMannhattanPitEvent::read(stream, definition)?)
20620 }
20621 GameEventType::FlagCarriedInDetectionZone => GameEvent::FlagCarriedInDetectionZone(
20622 FlagCarriedInDetectionZoneEvent::read(stream, definition)?,
20623 ),
20624 GameEventType::MvmAdvWaveKilledStunRadio => GameEvent::MvmAdvWaveKilledStunRadio(
20625 MvmAdvWaveKilledStunRadioEvent::read(stream, definition)?,
20626 ),
20627 GameEventType::PlayerDirectHitStun => {
20628 GameEvent::PlayerDirectHitStun(PlayerDirectHitStunEvent::read(stream, definition)?)
20629 }
20630 GameEventType::MvmSentryBusterKilled => GameEvent::MvmSentryBusterKilled(
20631 MvmSentryBusterKilledEvent::read(stream, definition)?,
20632 ),
20633 GameEventType::UpgradesFileChanged => {
20634 GameEvent::UpgradesFileChanged(UpgradesFileChangedEvent::read(stream, definition)?)
20635 }
20636 GameEventType::RdTeamPointsChanged => {
20637 GameEvent::RdTeamPointsChanged(RdTeamPointsChangedEvent::read(stream, definition)?)
20638 }
20639 GameEventType::RdRulesStateChanged => {
20640 GameEvent::RdRulesStateChanged(RdRulesStateChangedEvent::read(stream, definition)?)
20641 }
20642 GameEventType::RdRobotKilled => {
20643 GameEvent::RdRobotKilled(RdRobotKilledEvent::read(stream, definition)?)
20644 }
20645 GameEventType::RdRobotImpact => {
20646 GameEvent::RdRobotImpact(RdRobotImpactEvent::read(stream, definition)?)
20647 }
20648 GameEventType::TeamPlayPreRoundTimeLeft => GameEvent::TeamPlayPreRoundTimeLeft(
20649 TeamPlayPreRoundTimeLeftEvent::read(stream, definition)?,
20650 ),
20651 GameEventType::ParachuteDeploy => {
20652 GameEvent::ParachuteDeploy(ParachuteDeployEvent::read(stream, definition)?)
20653 }
20654 GameEventType::ParachuteHolster => {
20655 GameEvent::ParachuteHolster(ParachuteHolsterEvent::read(stream, definition)?)
20656 }
20657 GameEventType::KillRefillsMeter => {
20658 GameEvent::KillRefillsMeter(KillRefillsMeterEvent::read(stream, definition)?)
20659 }
20660 GameEventType::RpsTauntEvent => {
20661 GameEvent::RpsTauntEvent(RpsTauntEventEvent::read(stream, definition)?)
20662 }
20663 GameEventType::CongaKill => {
20664 GameEvent::CongaKill(CongaKillEvent::read(stream, definition)?)
20665 }
20666 GameEventType::PlayerInitialSpawn => {
20667 GameEvent::PlayerInitialSpawn(PlayerInitialSpawnEvent::read(stream, definition)?)
20668 }
20669 GameEventType::CompetitiveVictory => {
20670 GameEvent::CompetitiveVictory(CompetitiveVictoryEvent::read(stream, definition)?)
20671 }
20672 GameEventType::CompetitiveStatsUpdate => GameEvent::CompetitiveStatsUpdate(
20673 CompetitiveStatsUpdateEvent::read(stream, definition)?,
20674 ),
20675 GameEventType::MiniGameWin => {
20676 GameEvent::MiniGameWin(MiniGameWinEvent::read(stream, definition)?)
20677 }
20678 GameEventType::SentryOnGoActive => {
20679 GameEvent::SentryOnGoActive(SentryOnGoActiveEvent::read(stream, definition)?)
20680 }
20681 GameEventType::DuckXpLevelUp => {
20682 GameEvent::DuckXpLevelUp(DuckXpLevelUpEvent::read(stream, definition)?)
20683 }
20684 GameEventType::QuestLogOpened => {
20685 GameEvent::QuestLogOpened(QuestLogOpenedEvent::read(stream, definition)?)
20686 }
20687 GameEventType::SchemaUpdated => {
20688 GameEvent::SchemaUpdated(SchemaUpdatedEvent::read(stream, definition)?)
20689 }
20690 GameEventType::LocalPlayerPickupWeapon => GameEvent::LocalPlayerPickupWeapon(
20691 LocalPlayerPickupWeaponEvent::read(stream, definition)?,
20692 ),
20693 GameEventType::RdPlayerScorePoints => {
20694 GameEvent::RdPlayerScorePoints(RdPlayerScorePointsEvent::read(stream, definition)?)
20695 }
20696 GameEventType::DemomanDetStickies => {
20697 GameEvent::DemomanDetStickies(DemomanDetStickiesEvent::read(stream, definition)?)
20698 }
20699 GameEventType::QuestObjectiveCompleted => GameEvent::QuestObjectiveCompleted(
20700 QuestObjectiveCompletedEvent::read(stream, definition)?,
20701 ),
20702 GameEventType::PlayerScoreChanged => {
20703 GameEvent::PlayerScoreChanged(PlayerScoreChangedEvent::read(stream, definition)?)
20704 }
20705 GameEventType::KilledCappingPlayer => {
20706 GameEvent::KilledCappingPlayer(KilledCappingPlayerEvent::read(stream, definition)?)
20707 }
20708 GameEventType::EnvironmentalDeath => {
20709 GameEvent::EnvironmentalDeath(EnvironmentalDeathEvent::read(stream, definition)?)
20710 }
20711 GameEventType::ProjectileDirectHit => {
20712 GameEvent::ProjectileDirectHit(ProjectileDirectHitEvent::read(stream, definition)?)
20713 }
20714 GameEventType::PassGet => GameEvent::PassGet(PassGetEvent::read(stream, definition)?),
20715 GameEventType::PassScore => {
20716 GameEvent::PassScore(PassScoreEvent::read(stream, definition)?)
20717 }
20718 GameEventType::PassFree => {
20719 GameEvent::PassFree(PassFreeEvent::read(stream, definition)?)
20720 }
20721 GameEventType::PassPassCaught => {
20722 GameEvent::PassPassCaught(PassPassCaughtEvent::read(stream, definition)?)
20723 }
20724 GameEventType::PassBallStolen => {
20725 GameEvent::PassBallStolen(PassBallStolenEvent::read(stream, definition)?)
20726 }
20727 GameEventType::PassBallBlocked => {
20728 GameEvent::PassBallBlocked(PassBallBlockedEvent::read(stream, definition)?)
20729 }
20730 GameEventType::DamagePrevented => {
20731 GameEvent::DamagePrevented(DamagePreventedEvent::read(stream, definition)?)
20732 }
20733 GameEventType::HalloweenBossKilled => {
20734 GameEvent::HalloweenBossKilled(HalloweenBossKilledEvent::read(stream, definition)?)
20735 }
20736 GameEventType::EscapedLootIsland => {
20737 GameEvent::EscapedLootIsland(EscapedLootIslandEvent::read(stream, definition)?)
20738 }
20739 GameEventType::TaggedPlayerAsIt => {
20740 GameEvent::TaggedPlayerAsIt(TaggedPlayerAsItEvent::read(stream, definition)?)
20741 }
20742 GameEventType::MerasmusStunned => {
20743 GameEvent::MerasmusStunned(MerasmusStunnedEvent::read(stream, definition)?)
20744 }
20745 GameEventType::MerasmusPropFound => {
20746 GameEvent::MerasmusPropFound(MerasmusPropFoundEvent::read(stream, definition)?)
20747 }
20748 GameEventType::HalloweenSkeletonKilled => GameEvent::HalloweenSkeletonKilled(
20749 HalloweenSkeletonKilledEvent::read(stream, definition)?,
20750 ),
20751 GameEventType::SkeletonKilledQuest => {
20752 GameEvent::SkeletonKilledQuest(SkeletonKilledQuestEvent::read(stream, definition)?)
20753 }
20754 GameEventType::SkeletonKingKilledQuest => GameEvent::SkeletonKingKilledQuest(
20755 SkeletonKingKilledQuestEvent::read(stream, definition)?,
20756 ),
20757 GameEventType::EscapeHell => {
20758 GameEvent::EscapeHell(EscapeHellEvent::read(stream, definition)?)
20759 }
20760 GameEventType::CrossSpectralBridge => {
20761 GameEvent::CrossSpectralBridge(CrossSpectralBridgeEvent::read(stream, definition)?)
20762 }
20763 GameEventType::MiniGameWon => {
20764 GameEvent::MiniGameWon(MiniGameWonEvent::read(stream, definition)?)
20765 }
20766 GameEventType::RespawnGhost => {
20767 GameEvent::RespawnGhost(RespawnGhostEvent::read(stream, definition)?)
20768 }
20769 GameEventType::KillInHell => {
20770 GameEvent::KillInHell(KillInHellEvent::read(stream, definition)?)
20771 }
20772 GameEventType::HalloweenDuckCollected => GameEvent::HalloweenDuckCollected(
20773 HalloweenDuckCollectedEvent::read(stream, definition)?,
20774 ),
20775 GameEventType::SpecialScore => {
20776 GameEvent::SpecialScore(SpecialScoreEvent::read(stream, definition)?)
20777 }
20778 GameEventType::TeamLeaderKilled => {
20779 GameEvent::TeamLeaderKilled(TeamLeaderKilledEvent::read(stream, definition)?)
20780 }
20781 GameEventType::HalloweenSoulCollected => GameEvent::HalloweenSoulCollected(
20782 HalloweenSoulCollectedEvent::read(stream, definition)?,
20783 ),
20784 GameEventType::RecalculateTruce => {
20785 GameEvent::RecalculateTruce(RecalculateTruceEvent::read(stream, definition)?)
20786 }
20787 GameEventType::DeadRingerCheatDeath => GameEvent::DeadRingerCheatDeath(
20788 DeadRingerCheatDeathEvent::read(stream, definition)?,
20789 ),
20790 GameEventType::CrossbowHeal => {
20791 GameEvent::CrossbowHeal(CrossbowHealEvent::read(stream, definition)?)
20792 }
20793 GameEventType::DamageMitigated => {
20794 GameEvent::DamageMitigated(DamageMitigatedEvent::read(stream, definition)?)
20795 }
20796 GameEventType::PayloadPushed => {
20797 GameEvent::PayloadPushed(PayloadPushedEvent::read(stream, definition)?)
20798 }
20799 GameEventType::PlayerAbandonedMatch => GameEvent::PlayerAbandonedMatch(
20800 PlayerAbandonedMatchEvent::read(stream, definition)?,
20801 ),
20802 GameEventType::ClDrawline => {
20803 GameEvent::ClDrawline(ClDrawlineEvent::read(stream, definition)?)
20804 }
20805 GameEventType::RestartTimerTime => {
20806 GameEvent::RestartTimerTime(RestartTimerTimeEvent::read(stream, definition)?)
20807 }
20808 GameEventType::WinLimitChanged => {
20809 GameEvent::WinLimitChanged(WinLimitChangedEvent::read(stream, definition)?)
20810 }
20811 GameEventType::WinPanelShowScores => {
20812 GameEvent::WinPanelShowScores(WinPanelShowScoresEvent::read(stream, definition)?)
20813 }
20814 GameEventType::TopStreamsRequestFinished => GameEvent::TopStreamsRequestFinished(
20815 TopStreamsRequestFinishedEvent::read(stream, definition)?,
20816 ),
20817 GameEventType::CompetitiveStateChanged => GameEvent::CompetitiveStateChanged(
20818 CompetitiveStateChangedEvent::read(stream, definition)?,
20819 ),
20820 GameEventType::GlobalWarDataUpdated => GameEvent::GlobalWarDataUpdated(
20821 GlobalWarDataUpdatedEvent::read(stream, definition)?,
20822 ),
20823 GameEventType::StopWatchChanged => {
20824 GameEvent::StopWatchChanged(StopWatchChangedEvent::read(stream, definition)?)
20825 }
20826 GameEventType::DsStop => GameEvent::DsStop(DsStopEvent::read(stream, definition)?),
20827 GameEventType::DsScreenshot => {
20828 GameEvent::DsScreenshot(DsScreenshotEvent::read(stream, definition)?)
20829 }
20830 GameEventType::ShowMatchSummary => {
20831 GameEvent::ShowMatchSummary(ShowMatchSummaryEvent::read(stream, definition)?)
20832 }
20833 GameEventType::ExperienceChanged => {
20834 GameEvent::ExperienceChanged(ExperienceChangedEvent::read(stream, definition)?)
20835 }
20836 GameEventType::BeginXpLerp => {
20837 GameEvent::BeginXpLerp(BeginXpLerpEvent::read(stream, definition)?)
20838 }
20839 GameEventType::MatchmakerStatsUpdated => GameEvent::MatchmakerStatsUpdated(
20840 MatchmakerStatsUpdatedEvent::read(stream, definition)?,
20841 ),
20842 GameEventType::RematchVotePeriodOver => GameEvent::RematchVotePeriodOver(
20843 RematchVotePeriodOverEvent::read(stream, definition)?,
20844 ),
20845 GameEventType::RematchFailedToCreate => GameEvent::RematchFailedToCreate(
20846 RematchFailedToCreateEvent::read(stream, definition)?,
20847 ),
20848 GameEventType::PlayerRematchChange => {
20849 GameEvent::PlayerRematchChange(PlayerRematchChangeEvent::read(stream, definition)?)
20850 }
20851 GameEventType::PingUpdated => {
20852 GameEvent::PingUpdated(PingUpdatedEvent::read(stream, definition)?)
20853 }
20854 GameEventType::MMStatsUpdated => {
20855 GameEvent::MMStatsUpdated(MMStatsUpdatedEvent::read(stream, definition)?)
20856 }
20857 GameEventType::PlayerNextMapVoteChange => GameEvent::PlayerNextMapVoteChange(
20858 PlayerNextMapVoteChangeEvent::read(stream, definition)?,
20859 ),
20860 GameEventType::VoteMapsChanged => {
20861 GameEvent::VoteMapsChanged(VoteMapsChangedEvent::read(stream, definition)?)
20862 }
20863 GameEventType::ProtoDefChanged => {
20864 GameEvent::ProtoDefChanged(ProtoDefChangedEvent::read(stream, definition)?)
20865 }
20866 GameEventType::PlayerDomination => {
20867 GameEvent::PlayerDomination(PlayerDominationEvent::read(stream, definition)?)
20868 }
20869 GameEventType::PlayerRocketPackPushed => GameEvent::PlayerRocketPackPushed(
20870 PlayerRocketPackPushedEvent::read(stream, definition)?,
20871 ),
20872 GameEventType::QuestRequest => {
20873 GameEvent::QuestRequest(QuestRequestEvent::read(stream, definition)?)
20874 }
20875 GameEventType::QuestResponse => {
20876 GameEvent::QuestResponse(QuestResponseEvent::read(stream, definition)?)
20877 }
20878 GameEventType::QuestProgress => {
20879 GameEvent::QuestProgress(QuestProgressEvent::read(stream, definition)?)
20880 }
20881 GameEventType::ProjectileRemoved => {
20882 GameEvent::ProjectileRemoved(ProjectileRemovedEvent::read(stream, definition)?)
20883 }
20884 GameEventType::QuestMapDataChanged => {
20885 GameEvent::QuestMapDataChanged(QuestMapDataChangedEvent::read(stream, definition)?)
20886 }
20887 GameEventType::GasDousedPlayerIgnited => GameEvent::GasDousedPlayerIgnited(
20888 GasDousedPlayerIgnitedEvent::read(stream, definition)?,
20889 ),
20890 GameEventType::QuestTurnInState => {
20891 GameEvent::QuestTurnInState(QuestTurnInStateEvent::read(stream, definition)?)
20892 }
20893 GameEventType::ItemsAcknowledged => {
20894 GameEvent::ItemsAcknowledged(ItemsAcknowledgedEvent::read(stream, definition)?)
20895 }
20896 GameEventType::CapperKilled => {
20897 GameEvent::CapperKilled(CapperKilledEvent::read(stream, definition)?)
20898 }
20899 GameEventType::MainMenuStabilized => {
20900 GameEvent::MainMenuStabilized(MainMenuStabilizedEvent::read(stream, definition)?)
20901 }
20902 GameEventType::WorldStatusChanged => {
20903 GameEvent::WorldStatusChanged(WorldStatusChangedEvent::read(stream, definition)?)
20904 }
20905 GameEventType::HLTVStatus => {
20906 GameEvent::HLTVStatus(HLTVStatusEvent::read(stream, definition)?)
20907 }
20908 GameEventType::HLTVCameraman => {
20909 GameEvent::HLTVCameraman(HLTVCameramanEvent::read(stream, definition)?)
20910 }
20911 GameEventType::HLTVRankCamera => {
20912 GameEvent::HLTVRankCamera(HLTVRankCameraEvent::read(stream, definition)?)
20913 }
20914 GameEventType::HLTVRankEntity => {
20915 GameEvent::HLTVRankEntity(HLTVRankEntityEvent::read(stream, definition)?)
20916 }
20917 GameEventType::HLTVFixed => {
20918 GameEvent::HLTVFixed(HLTVFixedEvent::read(stream, definition)?)
20919 }
20920 GameEventType::HLTVChase => {
20921 GameEvent::HLTVChase(HLTVChaseEvent::read(stream, definition)?)
20922 }
20923 GameEventType::HLTVMessage => {
20924 GameEvent::HLTVMessage(HLTVMessageEvent::read(stream, definition)?)
20925 }
20926 GameEventType::HLTVTitle => {
20927 GameEvent::HLTVTitle(HLTVTitleEvent::read(stream, definition)?)
20928 }
20929 GameEventType::HLTVChat => {
20930 GameEvent::HLTVChat(HLTVChatEvent::read(stream, definition)?)
20931 }
20932 GameEventType::ReplayStartRecord => {
20933 GameEvent::ReplayStartRecord(ReplayStartRecordEvent::read(stream, definition)?)
20934 }
20935 GameEventType::ReplaySessionInfo => {
20936 GameEvent::ReplaySessionInfo(ReplaySessionInfoEvent::read(stream, definition)?)
20937 }
20938 GameEventType::ReplayEndRecord => {
20939 GameEvent::ReplayEndRecord(ReplayEndRecordEvent::read(stream, definition)?)
20940 }
20941 GameEventType::ReplayReplaysAvailable => GameEvent::ReplayReplaysAvailable(
20942 ReplayReplaysAvailableEvent::read(stream, definition)?,
20943 ),
20944 GameEventType::ReplayServerError => {
20945 GameEvent::ReplayServerError(ReplayServerErrorEvent::read(stream, definition)?)
20946 }
20947 GameEventType::Unknown(_) => {
20948 GameEvent::Unknown(RawGameEvent::read(stream, definition)?)
20949 }
20950 })
20951 }
20952 pub fn write(
20953 &self,
20954 stream: &mut BitWriteStream<LittleEndian>,
20955 definition: &GameEventDefinition,
20956 ) -> Result<()> {
20957 match &self {
20958 GameEvent::ServerSpawn(event) => event.write(stream, definition),
20959 GameEvent::ServerChangeLevelFailed(event) => event.write(stream, definition),
20960 GameEvent::ServerShutdown(event) => event.write(stream, definition),
20961 GameEvent::ServerCvar(event) => event.write(stream, definition),
20962 GameEvent::ServerMessage(event) => event.write(stream, definition),
20963 GameEvent::ServerAddBan(event) => event.write(stream, definition),
20964 GameEvent::ServerRemoveBan(event) => event.write(stream, definition),
20965 GameEvent::PlayerConnect(event) => event.write(stream, definition),
20966 GameEvent::PlayerConnectClient(event) => event.write(stream, definition),
20967 GameEvent::PlayerInfo(event) => event.write(stream, definition),
20968 GameEvent::PlayerDisconnect(event) => event.write(stream, definition),
20969 GameEvent::PlayerActivate(event) => event.write(stream, definition),
20970 GameEvent::PlayerSay(event) => event.write(stream, definition),
20971 GameEvent::ClientDisconnect(event) => event.write(stream, definition),
20972 GameEvent::ClientBeginConnect(event) => event.write(stream, definition),
20973 GameEvent::ClientConnected(event) => event.write(stream, definition),
20974 GameEvent::ClientFullConnect(event) => event.write(stream, definition),
20975 GameEvent::HostQuit(event) => event.write(stream, definition),
20976 GameEvent::TeamInfo(event) => event.write(stream, definition),
20977 GameEvent::TeamScore(event) => event.write(stream, definition),
20978 GameEvent::TeamPlayBroadcastAudio(event) => event.write(stream, definition),
20979 GameEvent::PlayerTeam(event) => event.write(stream, definition),
20980 GameEvent::PlayerClass(event) => event.write(stream, definition),
20981 GameEvent::PlayerDeath(event) => event.write(stream, definition),
20982 GameEvent::PlayerHurt(event) => event.write(stream, definition),
20983 GameEvent::PlayerChat(event) => event.write(stream, definition),
20984 GameEvent::PlayerScore(event) => event.write(stream, definition),
20985 GameEvent::PlayerSpawn(event) => event.write(stream, definition),
20986 GameEvent::PlayerShoot(event) => event.write(stream, definition),
20987 GameEvent::PlayerUse(event) => event.write(stream, definition),
20988 GameEvent::PlayerChangeName(event) => event.write(stream, definition),
20989 GameEvent::PlayerHintMessage(event) => event.write(stream, definition),
20990 GameEvent::BasePlayerTeleported(event) => event.write(stream, definition),
20991 GameEvent::GameInit(event) => event.write(stream, definition),
20992 GameEvent::GameNewMap(event) => event.write(stream, definition),
20993 GameEvent::GameStart(event) => event.write(stream, definition),
20994 GameEvent::GameEnd(event) => event.write(stream, definition),
20995 GameEvent::RoundStart(event) => event.write(stream, definition),
20996 GameEvent::RoundEnd(event) => event.write(stream, definition),
20997 GameEvent::GameMessage(event) => event.write(stream, definition),
20998 GameEvent::BreakBreakable(event) => event.write(stream, definition),
20999 GameEvent::BreakProp(event) => event.write(stream, definition),
21000 GameEvent::EntityKilled(event) => event.write(stream, definition),
21001 GameEvent::BonusUpdated(event) => event.write(stream, definition),
21002 GameEvent::AchievementEvent(event) => event.write(stream, definition),
21003 GameEvent::AchievementIncrement(event) => event.write(stream, definition),
21004 GameEvent::PhysgunPickup(event) => event.write(stream, definition),
21005 GameEvent::FlareIgniteNpc(event) => event.write(stream, definition),
21006 GameEvent::HelicopterGrenadePuntMiss(event) => event.write(stream, definition),
21007 GameEvent::UserDataDownloaded(event) => event.write(stream, definition),
21008 GameEvent::RagdollDissolved(event) => event.write(stream, definition),
21009 GameEvent::HLTVChangedMode(event) => event.write(stream, definition),
21010 GameEvent::HLTVChangedTarget(event) => event.write(stream, definition),
21011 GameEvent::VoteEnded(event) => event.write(stream, definition),
21012 GameEvent::VoteStarted(event) => event.write(stream, definition),
21013 GameEvent::VoteChanged(event) => event.write(stream, definition),
21014 GameEvent::VotePassed(event) => event.write(stream, definition),
21015 GameEvent::VoteFailed(event) => event.write(stream, definition),
21016 GameEvent::VoteCast(event) => event.write(stream, definition),
21017 GameEvent::VoteOptions(event) => event.write(stream, definition),
21018 GameEvent::ReplaySaved(event) => event.write(stream, definition),
21019 GameEvent::EnteredPerformanceMode(event) => event.write(stream, definition),
21020 GameEvent::BrowseReplays(event) => event.write(stream, definition),
21021 GameEvent::ReplayYoutubeStats(event) => event.write(stream, definition),
21022 GameEvent::InventoryUpdated(event) => event.write(stream, definition),
21023 GameEvent::CartUpdated(event) => event.write(stream, definition),
21024 GameEvent::StorePriceSheetUpdated(event) => event.write(stream, definition),
21025 GameEvent::EconInventoryConnected(event) => event.write(stream, definition),
21026 GameEvent::ItemSchemaInitialized(event) => event.write(stream, definition),
21027 GameEvent::GcNewSession(event) => event.write(stream, definition),
21028 GameEvent::GcLostSession(event) => event.write(stream, definition),
21029 GameEvent::IntroFinish(event) => event.write(stream, definition),
21030 GameEvent::IntroNextCamera(event) => event.write(stream, definition),
21031 GameEvent::PlayerChangeClass(event) => event.write(stream, definition),
21032 GameEvent::TfMapTimeRemaining(event) => event.write(stream, definition),
21033 GameEvent::TfGameOver(event) => event.write(stream, definition),
21034 GameEvent::CtfFlagCaptured(event) => event.write(stream, definition),
21035 GameEvent::ControlPointInitialized(event) => event.write(stream, definition),
21036 GameEvent::ControlPointUpdateImages(event) => event.write(stream, definition),
21037 GameEvent::ControlPointUpdateLayout(event) => event.write(stream, definition),
21038 GameEvent::ControlPointUpdateCapping(event) => event.write(stream, definition),
21039 GameEvent::ControlPointUpdateOwner(event) => event.write(stream, definition),
21040 GameEvent::ControlPointStartTouch(event) => event.write(stream, definition),
21041 GameEvent::ControlPointEndTouch(event) => event.write(stream, definition),
21042 GameEvent::ControlPointPulseElement(event) => event.write(stream, definition),
21043 GameEvent::ControlPointFakeCapture(event) => event.write(stream, definition),
21044 GameEvent::ControlPointFakeCaptureMultiplier(event) => event.write(stream, definition),
21045 GameEvent::TeamPlayRoundSelected(event) => event.write(stream, definition),
21046 GameEvent::TeamPlayRoundStart(event) => event.write(stream, definition),
21047 GameEvent::TeamPlayRoundActive(event) => event.write(stream, definition),
21048 GameEvent::TeamPlayWaitingBegins(event) => event.write(stream, definition),
21049 GameEvent::TeamPlayWaitingEnds(event) => event.write(stream, definition),
21050 GameEvent::TeamPlayWaitingAboutToEnd(event) => event.write(stream, definition),
21051 GameEvent::TeamPlayRestartRound(event) => event.write(stream, definition),
21052 GameEvent::TeamPlayReadyRestart(event) => event.write(stream, definition),
21053 GameEvent::TeamPlayRoundRestartSeconds(event) => event.write(stream, definition),
21054 GameEvent::TeamPlayTeamReady(event) => event.write(stream, definition),
21055 GameEvent::TeamPlayRoundWin(event) => event.write(stream, definition),
21056 GameEvent::TeamPlayUpdateTimer(event) => event.write(stream, definition),
21057 GameEvent::TeamPlayRoundStalemate(event) => event.write(stream, definition),
21058 GameEvent::TeamPlayOvertimeBegin(event) => event.write(stream, definition),
21059 GameEvent::TeamPlayOvertimeEnd(event) => event.write(stream, definition),
21060 GameEvent::TeamPlaySuddenDeathBegin(event) => event.write(stream, definition),
21061 GameEvent::TeamPlaySuddenDeathEnd(event) => event.write(stream, definition),
21062 GameEvent::TeamPlayGameOver(event) => event.write(stream, definition),
21063 GameEvent::TeamPlayMapTimeRemaining(event) => event.write(stream, definition),
21064 GameEvent::TeamPlayTimerFlash(event) => event.write(stream, definition),
21065 GameEvent::TeamPlayTimerTimeAdded(event) => event.write(stream, definition),
21066 GameEvent::TeamPlayPointStartCapture(event) => event.write(stream, definition),
21067 GameEvent::TeamPlayPointCaptured(event) => event.write(stream, definition),
21068 GameEvent::TeamPlayPointLocked(event) => event.write(stream, definition),
21069 GameEvent::TeamPlayPointUnlocked(event) => event.write(stream, definition),
21070 GameEvent::TeamPlayCaptureBroken(event) => event.write(stream, definition),
21071 GameEvent::TeamPlayCaptureBlocked(event) => event.write(stream, definition),
21072 GameEvent::TeamPlayFlagEvent(event) => event.write(stream, definition),
21073 GameEvent::TeamPlayWinPanel(event) => event.write(stream, definition),
21074 GameEvent::TeamPlayTeamBalancedPlayer(event) => event.write(stream, definition),
21075 GameEvent::TeamPlaySetupFinished(event) => event.write(stream, definition),
21076 GameEvent::TeamPlayAlert(event) => event.write(stream, definition),
21077 GameEvent::TrainingComplete(event) => event.write(stream, definition),
21078 GameEvent::ShowFreezePanel(event) => event.write(stream, definition),
21079 GameEvent::HideFreezePanel(event) => event.write(stream, definition),
21080 GameEvent::FreezeCamStarted(event) => event.write(stream, definition),
21081 GameEvent::LocalPlayerChangeTeam(event) => event.write(stream, definition),
21082 GameEvent::LocalPlayerScoreChanged(event) => event.write(stream, definition),
21083 GameEvent::LocalPlayerChangeClass(event) => event.write(stream, definition),
21084 GameEvent::LocalPlayerRespawn(event) => event.write(stream, definition),
21085 GameEvent::BuildingInfoChanged(event) => event.write(stream, definition),
21086 GameEvent::LocalPlayerChangeDisguise(event) => event.write(stream, definition),
21087 GameEvent::PlayerAccountChanged(event) => event.write(stream, definition),
21088 GameEvent::SpyPdaReset(event) => event.write(stream, definition),
21089 GameEvent::FlagStatusUpdate(event) => event.write(stream, definition),
21090 GameEvent::PlayerStatsUpdated(event) => event.write(stream, definition),
21091 GameEvent::PlayingCommentary(event) => event.write(stream, definition),
21092 GameEvent::PlayerChargeDeployed(event) => event.write(stream, definition),
21093 GameEvent::PlayerBuiltObject(event) => event.write(stream, definition),
21094 GameEvent::PlayerUpgradedObject(event) => event.write(stream, definition),
21095 GameEvent::PlayerCarryObject(event) => event.write(stream, definition),
21096 GameEvent::PlayerDropObject(event) => event.write(stream, definition),
21097 GameEvent::ObjectRemoved(event) => event.write(stream, definition),
21098 GameEvent::ObjectDestroyed(event) => event.write(stream, definition),
21099 GameEvent::ObjectDetonated(event) => event.write(stream, definition),
21100 GameEvent::AchievementEarned(event) => event.write(stream, definition),
21101 GameEvent::SpecTargetUpdated(event) => event.write(stream, definition),
21102 GameEvent::TournamentStateUpdate(event) => event.write(stream, definition),
21103 GameEvent::TournamentEnableCountdown(event) => event.write(stream, definition),
21104 GameEvent::PlayerCalledForMedic(event) => event.write(stream, definition),
21105 GameEvent::PlayerAskedForBall(event) => event.write(stream, definition),
21106 GameEvent::LocalPlayerBecameObserver(event) => event.write(stream, definition),
21107 GameEvent::PlayerIgnitedInv(event) => event.write(stream, definition),
21108 GameEvent::PlayerIgnited(event) => event.write(stream, definition),
21109 GameEvent::PlayerExtinguished(event) => event.write(stream, definition),
21110 GameEvent::PlayerTeleported(event) => event.write(stream, definition),
21111 GameEvent::PlayerHealedMedicCall(event) => event.write(stream, definition),
21112 GameEvent::LocalPlayerChargeReady(event) => event.write(stream, definition),
21113 GameEvent::LocalPlayerWindDown(event) => event.write(stream, definition),
21114 GameEvent::PlayerInvulned(event) => event.write(stream, definition),
21115 GameEvent::EscortSpeed(event) => event.write(stream, definition),
21116 GameEvent::EscortProgress(event) => event.write(stream, definition),
21117 GameEvent::EscortRecede(event) => event.write(stream, definition),
21118 GameEvent::GameUIActivated(event) => event.write(stream, definition),
21119 GameEvent::GameUIHidden(event) => event.write(stream, definition),
21120 GameEvent::PlayerEscortScore(event) => event.write(stream, definition),
21121 GameEvent::PlayerHealOnHit(event) => event.write(stream, definition),
21122 GameEvent::PlayerStealSandvich(event) => event.write(stream, definition),
21123 GameEvent::ShowClassLayout(event) => event.write(stream, definition),
21124 GameEvent::ShowVsPanel(event) => event.write(stream, definition),
21125 GameEvent::PlayerDamaged(event) => event.write(stream, definition),
21126 GameEvent::ArenaPlayerNotification(event) => event.write(stream, definition),
21127 GameEvent::ArenaMatchMaxStreak(event) => event.write(stream, definition),
21128 GameEvent::ArenaRoundStart(event) => event.write(stream, definition),
21129 GameEvent::ArenaWinPanel(event) => event.write(stream, definition),
21130 GameEvent::PveWinPanel(event) => event.write(stream, definition),
21131 GameEvent::AirDash(event) => event.write(stream, definition),
21132 GameEvent::Landed(event) => event.write(stream, definition),
21133 GameEvent::PlayerDamageDodged(event) => event.write(stream, definition),
21134 GameEvent::PlayerStunned(event) => event.write(stream, definition),
21135 GameEvent::ScoutGrandSlam(event) => event.write(stream, definition),
21136 GameEvent::ScoutSlamdollLanded(event) => event.write(stream, definition),
21137 GameEvent::ArrowImpact(event) => event.write(stream, definition),
21138 GameEvent::PlayerJarated(event) => event.write(stream, definition),
21139 GameEvent::PlayerJaratedFade(event) => event.write(stream, definition),
21140 GameEvent::PlayerShieldBlocked(event) => event.write(stream, definition),
21141 GameEvent::PlayerPinned(event) => event.write(stream, definition),
21142 GameEvent::PlayerHealedByMedic(event) => event.write(stream, definition),
21143 GameEvent::PlayerSappedObject(event) => event.write(stream, definition),
21144 GameEvent::ItemFound(event) => event.write(stream, definition),
21145 GameEvent::ShowAnnotation(event) => event.write(stream, definition),
21146 GameEvent::HideAnnotation(event) => event.write(stream, definition),
21147 GameEvent::PostInventoryApplication(event) => event.write(stream, definition),
21148 GameEvent::ControlPointUnlockUpdated(event) => event.write(stream, definition),
21149 GameEvent::DeployBuffBanner(event) => event.write(stream, definition),
21150 GameEvent::PlayerBuff(event) => event.write(stream, definition),
21151 GameEvent::MedicDeath(event) => event.write(stream, definition),
21152 GameEvent::OvertimeNag(event) => event.write(stream, definition),
21153 GameEvent::TeamsChanged(event) => event.write(stream, definition),
21154 GameEvent::HalloweenPumpkinGrab(event) => event.write(stream, definition),
21155 GameEvent::RocketJump(event) => event.write(stream, definition),
21156 GameEvent::RocketJumpLanded(event) => event.write(stream, definition),
21157 GameEvent::StickyJump(event) => event.write(stream, definition),
21158 GameEvent::StickyJumpLanded(event) => event.write(stream, definition),
21159 GameEvent::RocketPackLaunch(event) => event.write(stream, definition),
21160 GameEvent::RocketPackLanded(event) => event.write(stream, definition),
21161 GameEvent::MedicDefended(event) => event.write(stream, definition),
21162 GameEvent::LocalPlayerHealed(event) => event.write(stream, definition),
21163 GameEvent::PlayerDestroyedPipeBomb(event) => event.write(stream, definition),
21164 GameEvent::ObjectDeflected(event) => event.write(stream, definition),
21165 GameEvent::PlayerMvp(event) => event.write(stream, definition),
21166 GameEvent::RaidSpawnMob(event) => event.write(stream, definition),
21167 GameEvent::RaidSpawnSquad(event) => event.write(stream, definition),
21168 GameEvent::NavBlocked(event) => event.write(stream, definition),
21169 GameEvent::PathTrackPassed(event) => event.write(stream, definition),
21170 GameEvent::NumCappersChanged(event) => event.write(stream, definition),
21171 GameEvent::PlayerRegenerate(event) => event.write(stream, definition),
21172 GameEvent::UpdateStatusItem(event) => event.write(stream, definition),
21173 GameEvent::StatsResetRound(event) => event.write(stream, definition),
21174 GameEvent::ScoreStatsAccumulatedUpdate(event) => event.write(stream, definition),
21175 GameEvent::ScoreStatsAccumulatedReset(event) => event.write(stream, definition),
21176 GameEvent::AchievementEarnedLocal(event) => event.write(stream, definition),
21177 GameEvent::PlayerHealed(event) => event.write(stream, definition),
21178 GameEvent::BuildingHealed(event) => event.write(stream, definition),
21179 GameEvent::ItemPickup(event) => event.write(stream, definition),
21180 GameEvent::DuelStatus(event) => event.write(stream, definition),
21181 GameEvent::FishNotice(event) => event.write(stream, definition),
21182 GameEvent::FishNoticeArm(event) => event.write(stream, definition),
21183 GameEvent::SlapNotice(event) => event.write(stream, definition),
21184 GameEvent::ThrowableHit(event) => event.write(stream, definition),
21185 GameEvent::PumpkinLordSummoned(event) => event.write(stream, definition),
21186 GameEvent::PumpkinLordKilled(event) => event.write(stream, definition),
21187 GameEvent::MerasmusSummoned(event) => event.write(stream, definition),
21188 GameEvent::MerasmusKilled(event) => event.write(stream, definition),
21189 GameEvent::MerasmusEscapeWarning(event) => event.write(stream, definition),
21190 GameEvent::MerasmusEscaped(event) => event.write(stream, definition),
21191 GameEvent::EyeballBossSummoned(event) => event.write(stream, definition),
21192 GameEvent::EyeballBossStunned(event) => event.write(stream, definition),
21193 GameEvent::EyeballBossKilled(event) => event.write(stream, definition),
21194 GameEvent::EyeballBossKiller(event) => event.write(stream, definition),
21195 GameEvent::EyeballBossEscapeImminent(event) => event.write(stream, definition),
21196 GameEvent::EyeballBossEscaped(event) => event.write(stream, definition),
21197 GameEvent::NpcHurt(event) => event.write(stream, definition),
21198 GameEvent::ControlPointTimerUpdated(event) => event.write(stream, definition),
21199 GameEvent::PlayerHighFiveStart(event) => event.write(stream, definition),
21200 GameEvent::PlayerHighFiveCancel(event) => event.write(stream, definition),
21201 GameEvent::PlayerHighFiveSuccess(event) => event.write(stream, definition),
21202 GameEvent::PlayerBonusPoints(event) => event.write(stream, definition),
21203 GameEvent::PlayerUpgraded(event) => event.write(stream, definition),
21204 GameEvent::PlayerBuyback(event) => event.write(stream, definition),
21205 GameEvent::PlayerUsedPowerUpBottle(event) => event.write(stream, definition),
21206 GameEvent::ChristmasGiftGrab(event) => event.write(stream, definition),
21207 GameEvent::PlayerKilledAchievementZone(event) => event.write(stream, definition),
21208 GameEvent::PartyUpdated(event) => event.write(stream, definition),
21209 GameEvent::PartyPrefChanged(event) => event.write(stream, definition),
21210 GameEvent::PartyCriteriaChanged(event) => event.write(stream, definition),
21211 GameEvent::PartyInvitesChanged(event) => event.write(stream, definition),
21212 GameEvent::PartyQueueStateChanged(event) => event.write(stream, definition),
21213 GameEvent::PartyChat(event) => event.write(stream, definition),
21214 GameEvent::PartyMemberJoin(event) => event.write(stream, definition),
21215 GameEvent::PartyMemberLeave(event) => event.write(stream, definition),
21216 GameEvent::MatchInvitesUpdated(event) => event.write(stream, definition),
21217 GameEvent::LobbyUpdated(event) => event.write(stream, definition),
21218 GameEvent::MvmMissionUpdate(event) => event.write(stream, definition),
21219 GameEvent::RecalculateHolidays(event) => event.write(stream, definition),
21220 GameEvent::PlayerCurrencyChanged(event) => event.write(stream, definition),
21221 GameEvent::DoomsdayRocketOpen(event) => event.write(stream, definition),
21222 GameEvent::RemoveNemesisRelationships(event) => event.write(stream, definition),
21223 GameEvent::MvmCreditBonusWave(event) => event.write(stream, definition),
21224 GameEvent::MvmCreditBonusAll(event) => event.write(stream, definition),
21225 GameEvent::MvmCreditBonusAllAdvanced(event) => event.write(stream, definition),
21226 GameEvent::MvmQuickSentryUpgrade(event) => event.write(stream, definition),
21227 GameEvent::MvmTankDestroyedByPlayers(event) => event.write(stream, definition),
21228 GameEvent::MvmKillRobotDeliveringBomb(event) => event.write(stream, definition),
21229 GameEvent::MvmPickupCurrency(event) => event.write(stream, definition),
21230 GameEvent::MvmBombCarrierKilled(event) => event.write(stream, definition),
21231 GameEvent::MvmSentryBusterDetonate(event) => event.write(stream, definition),
21232 GameEvent::MvmScoutMarkedForDeath(event) => event.write(stream, definition),
21233 GameEvent::MvmMedicPowerUpShared(event) => event.write(stream, definition),
21234 GameEvent::MvmBeginWave(event) => event.write(stream, definition),
21235 GameEvent::MvmWaveComplete(event) => event.write(stream, definition),
21236 GameEvent::MvmMissionComplete(event) => event.write(stream, definition),
21237 GameEvent::MvmBombResetByPlayer(event) => event.write(stream, definition),
21238 GameEvent::MvmBombAlarmTriggered(event) => event.write(stream, definition),
21239 GameEvent::MvmBombDeployResetByPlayer(event) => event.write(stream, definition),
21240 GameEvent::MvmWaveFailed(event) => event.write(stream, definition),
21241 GameEvent::MvmResetStats(event) => event.write(stream, definition),
21242 GameEvent::DamageResisted(event) => event.write(stream, definition),
21243 GameEvent::RevivePlayerNotify(event) => event.write(stream, definition),
21244 GameEvent::RevivePlayerStopped(event) => event.write(stream, definition),
21245 GameEvent::RevivePlayerComplete(event) => event.write(stream, definition),
21246 GameEvent::PlayerTurnedToGhost(event) => event.write(stream, definition),
21247 GameEvent::MedigunShieldBlockedDamage(event) => event.write(stream, definition),
21248 GameEvent::MvmAdvWaveCompleteNoGates(event) => event.write(stream, definition),
21249 GameEvent::MvmSniperHeadshotCurrency(event) => event.write(stream, definition),
21250 GameEvent::MvmMannhattanPit(event) => event.write(stream, definition),
21251 GameEvent::FlagCarriedInDetectionZone(event) => event.write(stream, definition),
21252 GameEvent::MvmAdvWaveKilledStunRadio(event) => event.write(stream, definition),
21253 GameEvent::PlayerDirectHitStun(event) => event.write(stream, definition),
21254 GameEvent::MvmSentryBusterKilled(event) => event.write(stream, definition),
21255 GameEvent::UpgradesFileChanged(event) => event.write(stream, definition),
21256 GameEvent::RdTeamPointsChanged(event) => event.write(stream, definition),
21257 GameEvent::RdRulesStateChanged(event) => event.write(stream, definition),
21258 GameEvent::RdRobotKilled(event) => event.write(stream, definition),
21259 GameEvent::RdRobotImpact(event) => event.write(stream, definition),
21260 GameEvent::TeamPlayPreRoundTimeLeft(event) => event.write(stream, definition),
21261 GameEvent::ParachuteDeploy(event) => event.write(stream, definition),
21262 GameEvent::ParachuteHolster(event) => event.write(stream, definition),
21263 GameEvent::KillRefillsMeter(event) => event.write(stream, definition),
21264 GameEvent::RpsTauntEvent(event) => event.write(stream, definition),
21265 GameEvent::CongaKill(event) => event.write(stream, definition),
21266 GameEvent::PlayerInitialSpawn(event) => event.write(stream, definition),
21267 GameEvent::CompetitiveVictory(event) => event.write(stream, definition),
21268 GameEvent::CompetitiveStatsUpdate(event) => event.write(stream, definition),
21269 GameEvent::MiniGameWin(event) => event.write(stream, definition),
21270 GameEvent::SentryOnGoActive(event) => event.write(stream, definition),
21271 GameEvent::DuckXpLevelUp(event) => event.write(stream, definition),
21272 GameEvent::QuestLogOpened(event) => event.write(stream, definition),
21273 GameEvent::SchemaUpdated(event) => event.write(stream, definition),
21274 GameEvent::LocalPlayerPickupWeapon(event) => event.write(stream, definition),
21275 GameEvent::RdPlayerScorePoints(event) => event.write(stream, definition),
21276 GameEvent::DemomanDetStickies(event) => event.write(stream, definition),
21277 GameEvent::QuestObjectiveCompleted(event) => event.write(stream, definition),
21278 GameEvent::PlayerScoreChanged(event) => event.write(stream, definition),
21279 GameEvent::KilledCappingPlayer(event) => event.write(stream, definition),
21280 GameEvent::EnvironmentalDeath(event) => event.write(stream, definition),
21281 GameEvent::ProjectileDirectHit(event) => event.write(stream, definition),
21282 GameEvent::PassGet(event) => event.write(stream, definition),
21283 GameEvent::PassScore(event) => event.write(stream, definition),
21284 GameEvent::PassFree(event) => event.write(stream, definition),
21285 GameEvent::PassPassCaught(event) => event.write(stream, definition),
21286 GameEvent::PassBallStolen(event) => event.write(stream, definition),
21287 GameEvent::PassBallBlocked(event) => event.write(stream, definition),
21288 GameEvent::DamagePrevented(event) => event.write(stream, definition),
21289 GameEvent::HalloweenBossKilled(event) => event.write(stream, definition),
21290 GameEvent::EscapedLootIsland(event) => event.write(stream, definition),
21291 GameEvent::TaggedPlayerAsIt(event) => event.write(stream, definition),
21292 GameEvent::MerasmusStunned(event) => event.write(stream, definition),
21293 GameEvent::MerasmusPropFound(event) => event.write(stream, definition),
21294 GameEvent::HalloweenSkeletonKilled(event) => event.write(stream, definition),
21295 GameEvent::SkeletonKilledQuest(event) => event.write(stream, definition),
21296 GameEvent::SkeletonKingKilledQuest(event) => event.write(stream, definition),
21297 GameEvent::EscapeHell(event) => event.write(stream, definition),
21298 GameEvent::CrossSpectralBridge(event) => event.write(stream, definition),
21299 GameEvent::MiniGameWon(event) => event.write(stream, definition),
21300 GameEvent::RespawnGhost(event) => event.write(stream, definition),
21301 GameEvent::KillInHell(event) => event.write(stream, definition),
21302 GameEvent::HalloweenDuckCollected(event) => event.write(stream, definition),
21303 GameEvent::SpecialScore(event) => event.write(stream, definition),
21304 GameEvent::TeamLeaderKilled(event) => event.write(stream, definition),
21305 GameEvent::HalloweenSoulCollected(event) => event.write(stream, definition),
21306 GameEvent::RecalculateTruce(event) => event.write(stream, definition),
21307 GameEvent::DeadRingerCheatDeath(event) => event.write(stream, definition),
21308 GameEvent::CrossbowHeal(event) => event.write(stream, definition),
21309 GameEvent::DamageMitigated(event) => event.write(stream, definition),
21310 GameEvent::PayloadPushed(event) => event.write(stream, definition),
21311 GameEvent::PlayerAbandonedMatch(event) => event.write(stream, definition),
21312 GameEvent::ClDrawline(event) => event.write(stream, definition),
21313 GameEvent::RestartTimerTime(event) => event.write(stream, definition),
21314 GameEvent::WinLimitChanged(event) => event.write(stream, definition),
21315 GameEvent::WinPanelShowScores(event) => event.write(stream, definition),
21316 GameEvent::TopStreamsRequestFinished(event) => event.write(stream, definition),
21317 GameEvent::CompetitiveStateChanged(event) => event.write(stream, definition),
21318 GameEvent::GlobalWarDataUpdated(event) => event.write(stream, definition),
21319 GameEvent::StopWatchChanged(event) => event.write(stream, definition),
21320 GameEvent::DsStop(event) => event.write(stream, definition),
21321 GameEvent::DsScreenshot(event) => event.write(stream, definition),
21322 GameEvent::ShowMatchSummary(event) => event.write(stream, definition),
21323 GameEvent::ExperienceChanged(event) => event.write(stream, definition),
21324 GameEvent::BeginXpLerp(event) => event.write(stream, definition),
21325 GameEvent::MatchmakerStatsUpdated(event) => event.write(stream, definition),
21326 GameEvent::RematchVotePeriodOver(event) => event.write(stream, definition),
21327 GameEvent::RematchFailedToCreate(event) => event.write(stream, definition),
21328 GameEvent::PlayerRematchChange(event) => event.write(stream, definition),
21329 GameEvent::PingUpdated(event) => event.write(stream, definition),
21330 GameEvent::MMStatsUpdated(event) => event.write(stream, definition),
21331 GameEvent::PlayerNextMapVoteChange(event) => event.write(stream, definition),
21332 GameEvent::VoteMapsChanged(event) => event.write(stream, definition),
21333 GameEvent::ProtoDefChanged(event) => event.write(stream, definition),
21334 GameEvent::PlayerDomination(event) => event.write(stream, definition),
21335 GameEvent::PlayerRocketPackPushed(event) => event.write(stream, definition),
21336 GameEvent::QuestRequest(event) => event.write(stream, definition),
21337 GameEvent::QuestResponse(event) => event.write(stream, definition),
21338 GameEvent::QuestProgress(event) => event.write(stream, definition),
21339 GameEvent::ProjectileRemoved(event) => event.write(stream, definition),
21340 GameEvent::QuestMapDataChanged(event) => event.write(stream, definition),
21341 GameEvent::GasDousedPlayerIgnited(event) => event.write(stream, definition),
21342 GameEvent::QuestTurnInState(event) => event.write(stream, definition),
21343 GameEvent::ItemsAcknowledged(event) => event.write(stream, definition),
21344 GameEvent::CapperKilled(event) => event.write(stream, definition),
21345 GameEvent::MainMenuStabilized(event) => event.write(stream, definition),
21346 GameEvent::WorldStatusChanged(event) => event.write(stream, definition),
21347 GameEvent::HLTVStatus(event) => event.write(stream, definition),
21348 GameEvent::HLTVCameraman(event) => event.write(stream, definition),
21349 GameEvent::HLTVRankCamera(event) => event.write(stream, definition),
21350 GameEvent::HLTVRankEntity(event) => event.write(stream, definition),
21351 GameEvent::HLTVFixed(event) => event.write(stream, definition),
21352 GameEvent::HLTVChase(event) => event.write(stream, definition),
21353 GameEvent::HLTVMessage(event) => event.write(stream, definition),
21354 GameEvent::HLTVTitle(event) => event.write(stream, definition),
21355 GameEvent::HLTVChat(event) => event.write(stream, definition),
21356 GameEvent::ReplayStartRecord(event) => event.write(stream, definition),
21357 GameEvent::ReplaySessionInfo(event) => event.write(stream, definition),
21358 GameEvent::ReplayEndRecord(event) => event.write(stream, definition),
21359 GameEvent::ReplayReplaysAvailable(event) => event.write(stream, definition),
21360 GameEvent::ReplayServerError(event) => event.write(stream, definition),
21361 GameEvent::Unknown(raw) => Ok(raw.write(stream)?),
21362 }
21363 }
21364 pub fn event_type(&self) -> GameEventType {
21365 match &self {
21366 GameEvent::ServerSpawn(_) => GameEventType::ServerSpawn,
21367 GameEvent::ServerChangeLevelFailed(_) => GameEventType::ServerChangeLevelFailed,
21368 GameEvent::ServerShutdown(_) => GameEventType::ServerShutdown,
21369 GameEvent::ServerCvar(_) => GameEventType::ServerCvar,
21370 GameEvent::ServerMessage(_) => GameEventType::ServerMessage,
21371 GameEvent::ServerAddBan(_) => GameEventType::ServerAddBan,
21372 GameEvent::ServerRemoveBan(_) => GameEventType::ServerRemoveBan,
21373 GameEvent::PlayerConnect(_) => GameEventType::PlayerConnect,
21374 GameEvent::PlayerConnectClient(_) => GameEventType::PlayerConnectClient,
21375 GameEvent::PlayerInfo(_) => GameEventType::PlayerInfo,
21376 GameEvent::PlayerDisconnect(_) => GameEventType::PlayerDisconnect,
21377 GameEvent::PlayerActivate(_) => GameEventType::PlayerActivate,
21378 GameEvent::PlayerSay(_) => GameEventType::PlayerSay,
21379 GameEvent::ClientDisconnect(_) => GameEventType::ClientDisconnect,
21380 GameEvent::ClientBeginConnect(_) => GameEventType::ClientBeginConnect,
21381 GameEvent::ClientConnected(_) => GameEventType::ClientConnected,
21382 GameEvent::ClientFullConnect(_) => GameEventType::ClientFullConnect,
21383 GameEvent::HostQuit(_) => GameEventType::HostQuit,
21384 GameEvent::TeamInfo(_) => GameEventType::TeamInfo,
21385 GameEvent::TeamScore(_) => GameEventType::TeamScore,
21386 GameEvent::TeamPlayBroadcastAudio(_) => GameEventType::TeamPlayBroadcastAudio,
21387 GameEvent::PlayerTeam(_) => GameEventType::PlayerTeam,
21388 GameEvent::PlayerClass(_) => GameEventType::PlayerClass,
21389 GameEvent::PlayerDeath(_) => GameEventType::PlayerDeath,
21390 GameEvent::PlayerHurt(_) => GameEventType::PlayerHurt,
21391 GameEvent::PlayerChat(_) => GameEventType::PlayerChat,
21392 GameEvent::PlayerScore(_) => GameEventType::PlayerScore,
21393 GameEvent::PlayerSpawn(_) => GameEventType::PlayerSpawn,
21394 GameEvent::PlayerShoot(_) => GameEventType::PlayerShoot,
21395 GameEvent::PlayerUse(_) => GameEventType::PlayerUse,
21396 GameEvent::PlayerChangeName(_) => GameEventType::PlayerChangeName,
21397 GameEvent::PlayerHintMessage(_) => GameEventType::PlayerHintMessage,
21398 GameEvent::BasePlayerTeleported(_) => GameEventType::BasePlayerTeleported,
21399 GameEvent::GameInit(_) => GameEventType::GameInit,
21400 GameEvent::GameNewMap(_) => GameEventType::GameNewMap,
21401 GameEvent::GameStart(_) => GameEventType::GameStart,
21402 GameEvent::GameEnd(_) => GameEventType::GameEnd,
21403 GameEvent::RoundStart(_) => GameEventType::RoundStart,
21404 GameEvent::RoundEnd(_) => GameEventType::RoundEnd,
21405 GameEvent::GameMessage(_) => GameEventType::GameMessage,
21406 GameEvent::BreakBreakable(_) => GameEventType::BreakBreakable,
21407 GameEvent::BreakProp(_) => GameEventType::BreakProp,
21408 GameEvent::EntityKilled(_) => GameEventType::EntityKilled,
21409 GameEvent::BonusUpdated(_) => GameEventType::BonusUpdated,
21410 GameEvent::AchievementEvent(_) => GameEventType::AchievementEvent,
21411 GameEvent::AchievementIncrement(_) => GameEventType::AchievementIncrement,
21412 GameEvent::PhysgunPickup(_) => GameEventType::PhysgunPickup,
21413 GameEvent::FlareIgniteNpc(_) => GameEventType::FlareIgniteNpc,
21414 GameEvent::HelicopterGrenadePuntMiss(_) => GameEventType::HelicopterGrenadePuntMiss,
21415 GameEvent::UserDataDownloaded(_) => GameEventType::UserDataDownloaded,
21416 GameEvent::RagdollDissolved(_) => GameEventType::RagdollDissolved,
21417 GameEvent::HLTVChangedMode(_) => GameEventType::HLTVChangedMode,
21418 GameEvent::HLTVChangedTarget(_) => GameEventType::HLTVChangedTarget,
21419 GameEvent::VoteEnded(_) => GameEventType::VoteEnded,
21420 GameEvent::VoteStarted(_) => GameEventType::VoteStarted,
21421 GameEvent::VoteChanged(_) => GameEventType::VoteChanged,
21422 GameEvent::VotePassed(_) => GameEventType::VotePassed,
21423 GameEvent::VoteFailed(_) => GameEventType::VoteFailed,
21424 GameEvent::VoteCast(_) => GameEventType::VoteCast,
21425 GameEvent::VoteOptions(_) => GameEventType::VoteOptions,
21426 GameEvent::ReplaySaved(_) => GameEventType::ReplaySaved,
21427 GameEvent::EnteredPerformanceMode(_) => GameEventType::EnteredPerformanceMode,
21428 GameEvent::BrowseReplays(_) => GameEventType::BrowseReplays,
21429 GameEvent::ReplayYoutubeStats(_) => GameEventType::ReplayYoutubeStats,
21430 GameEvent::InventoryUpdated(_) => GameEventType::InventoryUpdated,
21431 GameEvent::CartUpdated(_) => GameEventType::CartUpdated,
21432 GameEvent::StorePriceSheetUpdated(_) => GameEventType::StorePriceSheetUpdated,
21433 GameEvent::EconInventoryConnected(_) => GameEventType::EconInventoryConnected,
21434 GameEvent::ItemSchemaInitialized(_) => GameEventType::ItemSchemaInitialized,
21435 GameEvent::GcNewSession(_) => GameEventType::GcNewSession,
21436 GameEvent::GcLostSession(_) => GameEventType::GcLostSession,
21437 GameEvent::IntroFinish(_) => GameEventType::IntroFinish,
21438 GameEvent::IntroNextCamera(_) => GameEventType::IntroNextCamera,
21439 GameEvent::PlayerChangeClass(_) => GameEventType::PlayerChangeClass,
21440 GameEvent::TfMapTimeRemaining(_) => GameEventType::TfMapTimeRemaining,
21441 GameEvent::TfGameOver(_) => GameEventType::TfGameOver,
21442 GameEvent::CtfFlagCaptured(_) => GameEventType::CtfFlagCaptured,
21443 GameEvent::ControlPointInitialized(_) => GameEventType::ControlPointInitialized,
21444 GameEvent::ControlPointUpdateImages(_) => GameEventType::ControlPointUpdateImages,
21445 GameEvent::ControlPointUpdateLayout(_) => GameEventType::ControlPointUpdateLayout,
21446 GameEvent::ControlPointUpdateCapping(_) => GameEventType::ControlPointUpdateCapping,
21447 GameEvent::ControlPointUpdateOwner(_) => GameEventType::ControlPointUpdateOwner,
21448 GameEvent::ControlPointStartTouch(_) => GameEventType::ControlPointStartTouch,
21449 GameEvent::ControlPointEndTouch(_) => GameEventType::ControlPointEndTouch,
21450 GameEvent::ControlPointPulseElement(_) => GameEventType::ControlPointPulseElement,
21451 GameEvent::ControlPointFakeCapture(_) => GameEventType::ControlPointFakeCapture,
21452 GameEvent::ControlPointFakeCaptureMultiplier(_) => {
21453 GameEventType::ControlPointFakeCaptureMultiplier
21454 }
21455 GameEvent::TeamPlayRoundSelected(_) => GameEventType::TeamPlayRoundSelected,
21456 GameEvent::TeamPlayRoundStart(_) => GameEventType::TeamPlayRoundStart,
21457 GameEvent::TeamPlayRoundActive(_) => GameEventType::TeamPlayRoundActive,
21458 GameEvent::TeamPlayWaitingBegins(_) => GameEventType::TeamPlayWaitingBegins,
21459 GameEvent::TeamPlayWaitingEnds(_) => GameEventType::TeamPlayWaitingEnds,
21460 GameEvent::TeamPlayWaitingAboutToEnd(_) => GameEventType::TeamPlayWaitingAboutToEnd,
21461 GameEvent::TeamPlayRestartRound(_) => GameEventType::TeamPlayRestartRound,
21462 GameEvent::TeamPlayReadyRestart(_) => GameEventType::TeamPlayReadyRestart,
21463 GameEvent::TeamPlayRoundRestartSeconds(_) => GameEventType::TeamPlayRoundRestartSeconds,
21464 GameEvent::TeamPlayTeamReady(_) => GameEventType::TeamPlayTeamReady,
21465 GameEvent::TeamPlayRoundWin(_) => GameEventType::TeamPlayRoundWin,
21466 GameEvent::TeamPlayUpdateTimer(_) => GameEventType::TeamPlayUpdateTimer,
21467 GameEvent::TeamPlayRoundStalemate(_) => GameEventType::TeamPlayRoundStalemate,
21468 GameEvent::TeamPlayOvertimeBegin(_) => GameEventType::TeamPlayOvertimeBegin,
21469 GameEvent::TeamPlayOvertimeEnd(_) => GameEventType::TeamPlayOvertimeEnd,
21470 GameEvent::TeamPlaySuddenDeathBegin(_) => GameEventType::TeamPlaySuddenDeathBegin,
21471 GameEvent::TeamPlaySuddenDeathEnd(_) => GameEventType::TeamPlaySuddenDeathEnd,
21472 GameEvent::TeamPlayGameOver(_) => GameEventType::TeamPlayGameOver,
21473 GameEvent::TeamPlayMapTimeRemaining(_) => GameEventType::TeamPlayMapTimeRemaining,
21474 GameEvent::TeamPlayTimerFlash(_) => GameEventType::TeamPlayTimerFlash,
21475 GameEvent::TeamPlayTimerTimeAdded(_) => GameEventType::TeamPlayTimerTimeAdded,
21476 GameEvent::TeamPlayPointStartCapture(_) => GameEventType::TeamPlayPointStartCapture,
21477 GameEvent::TeamPlayPointCaptured(_) => GameEventType::TeamPlayPointCaptured,
21478 GameEvent::TeamPlayPointLocked(_) => GameEventType::TeamPlayPointLocked,
21479 GameEvent::TeamPlayPointUnlocked(_) => GameEventType::TeamPlayPointUnlocked,
21480 GameEvent::TeamPlayCaptureBroken(_) => GameEventType::TeamPlayCaptureBroken,
21481 GameEvent::TeamPlayCaptureBlocked(_) => GameEventType::TeamPlayCaptureBlocked,
21482 GameEvent::TeamPlayFlagEvent(_) => GameEventType::TeamPlayFlagEvent,
21483 GameEvent::TeamPlayWinPanel(_) => GameEventType::TeamPlayWinPanel,
21484 GameEvent::TeamPlayTeamBalancedPlayer(_) => GameEventType::TeamPlayTeamBalancedPlayer,
21485 GameEvent::TeamPlaySetupFinished(_) => GameEventType::TeamPlaySetupFinished,
21486 GameEvent::TeamPlayAlert(_) => GameEventType::TeamPlayAlert,
21487 GameEvent::TrainingComplete(_) => GameEventType::TrainingComplete,
21488 GameEvent::ShowFreezePanel(_) => GameEventType::ShowFreezePanel,
21489 GameEvent::HideFreezePanel(_) => GameEventType::HideFreezePanel,
21490 GameEvent::FreezeCamStarted(_) => GameEventType::FreezeCamStarted,
21491 GameEvent::LocalPlayerChangeTeam(_) => GameEventType::LocalPlayerChangeTeam,
21492 GameEvent::LocalPlayerScoreChanged(_) => GameEventType::LocalPlayerScoreChanged,
21493 GameEvent::LocalPlayerChangeClass(_) => GameEventType::LocalPlayerChangeClass,
21494 GameEvent::LocalPlayerRespawn(_) => GameEventType::LocalPlayerRespawn,
21495 GameEvent::BuildingInfoChanged(_) => GameEventType::BuildingInfoChanged,
21496 GameEvent::LocalPlayerChangeDisguise(_) => GameEventType::LocalPlayerChangeDisguise,
21497 GameEvent::PlayerAccountChanged(_) => GameEventType::PlayerAccountChanged,
21498 GameEvent::SpyPdaReset(_) => GameEventType::SpyPdaReset,
21499 GameEvent::FlagStatusUpdate(_) => GameEventType::FlagStatusUpdate,
21500 GameEvent::PlayerStatsUpdated(_) => GameEventType::PlayerStatsUpdated,
21501 GameEvent::PlayingCommentary(_) => GameEventType::PlayingCommentary,
21502 GameEvent::PlayerChargeDeployed(_) => GameEventType::PlayerChargeDeployed,
21503 GameEvent::PlayerBuiltObject(_) => GameEventType::PlayerBuiltObject,
21504 GameEvent::PlayerUpgradedObject(_) => GameEventType::PlayerUpgradedObject,
21505 GameEvent::PlayerCarryObject(_) => GameEventType::PlayerCarryObject,
21506 GameEvent::PlayerDropObject(_) => GameEventType::PlayerDropObject,
21507 GameEvent::ObjectRemoved(_) => GameEventType::ObjectRemoved,
21508 GameEvent::ObjectDestroyed(_) => GameEventType::ObjectDestroyed,
21509 GameEvent::ObjectDetonated(_) => GameEventType::ObjectDetonated,
21510 GameEvent::AchievementEarned(_) => GameEventType::AchievementEarned,
21511 GameEvent::SpecTargetUpdated(_) => GameEventType::SpecTargetUpdated,
21512 GameEvent::TournamentStateUpdate(_) => GameEventType::TournamentStateUpdate,
21513 GameEvent::TournamentEnableCountdown(_) => GameEventType::TournamentEnableCountdown,
21514 GameEvent::PlayerCalledForMedic(_) => GameEventType::PlayerCalledForMedic,
21515 GameEvent::PlayerAskedForBall(_) => GameEventType::PlayerAskedForBall,
21516 GameEvent::LocalPlayerBecameObserver(_) => GameEventType::LocalPlayerBecameObserver,
21517 GameEvent::PlayerIgnitedInv(_) => GameEventType::PlayerIgnitedInv,
21518 GameEvent::PlayerIgnited(_) => GameEventType::PlayerIgnited,
21519 GameEvent::PlayerExtinguished(_) => GameEventType::PlayerExtinguished,
21520 GameEvent::PlayerTeleported(_) => GameEventType::PlayerTeleported,
21521 GameEvent::PlayerHealedMedicCall(_) => GameEventType::PlayerHealedMedicCall,
21522 GameEvent::LocalPlayerChargeReady(_) => GameEventType::LocalPlayerChargeReady,
21523 GameEvent::LocalPlayerWindDown(_) => GameEventType::LocalPlayerWindDown,
21524 GameEvent::PlayerInvulned(_) => GameEventType::PlayerInvulned,
21525 GameEvent::EscortSpeed(_) => GameEventType::EscortSpeed,
21526 GameEvent::EscortProgress(_) => GameEventType::EscortProgress,
21527 GameEvent::EscortRecede(_) => GameEventType::EscortRecede,
21528 GameEvent::GameUIActivated(_) => GameEventType::GameUIActivated,
21529 GameEvent::GameUIHidden(_) => GameEventType::GameUIHidden,
21530 GameEvent::PlayerEscortScore(_) => GameEventType::PlayerEscortScore,
21531 GameEvent::PlayerHealOnHit(_) => GameEventType::PlayerHealOnHit,
21532 GameEvent::PlayerStealSandvich(_) => GameEventType::PlayerStealSandvich,
21533 GameEvent::ShowClassLayout(_) => GameEventType::ShowClassLayout,
21534 GameEvent::ShowVsPanel(_) => GameEventType::ShowVsPanel,
21535 GameEvent::PlayerDamaged(_) => GameEventType::PlayerDamaged,
21536 GameEvent::ArenaPlayerNotification(_) => GameEventType::ArenaPlayerNotification,
21537 GameEvent::ArenaMatchMaxStreak(_) => GameEventType::ArenaMatchMaxStreak,
21538 GameEvent::ArenaRoundStart(_) => GameEventType::ArenaRoundStart,
21539 GameEvent::ArenaWinPanel(_) => GameEventType::ArenaWinPanel,
21540 GameEvent::PveWinPanel(_) => GameEventType::PveWinPanel,
21541 GameEvent::AirDash(_) => GameEventType::AirDash,
21542 GameEvent::Landed(_) => GameEventType::Landed,
21543 GameEvent::PlayerDamageDodged(_) => GameEventType::PlayerDamageDodged,
21544 GameEvent::PlayerStunned(_) => GameEventType::PlayerStunned,
21545 GameEvent::ScoutGrandSlam(_) => GameEventType::ScoutGrandSlam,
21546 GameEvent::ScoutSlamdollLanded(_) => GameEventType::ScoutSlamdollLanded,
21547 GameEvent::ArrowImpact(_) => GameEventType::ArrowImpact,
21548 GameEvent::PlayerJarated(_) => GameEventType::PlayerJarated,
21549 GameEvent::PlayerJaratedFade(_) => GameEventType::PlayerJaratedFade,
21550 GameEvent::PlayerShieldBlocked(_) => GameEventType::PlayerShieldBlocked,
21551 GameEvent::PlayerPinned(_) => GameEventType::PlayerPinned,
21552 GameEvent::PlayerHealedByMedic(_) => GameEventType::PlayerHealedByMedic,
21553 GameEvent::PlayerSappedObject(_) => GameEventType::PlayerSappedObject,
21554 GameEvent::ItemFound(_) => GameEventType::ItemFound,
21555 GameEvent::ShowAnnotation(_) => GameEventType::ShowAnnotation,
21556 GameEvent::HideAnnotation(_) => GameEventType::HideAnnotation,
21557 GameEvent::PostInventoryApplication(_) => GameEventType::PostInventoryApplication,
21558 GameEvent::ControlPointUnlockUpdated(_) => GameEventType::ControlPointUnlockUpdated,
21559 GameEvent::DeployBuffBanner(_) => GameEventType::DeployBuffBanner,
21560 GameEvent::PlayerBuff(_) => GameEventType::PlayerBuff,
21561 GameEvent::MedicDeath(_) => GameEventType::MedicDeath,
21562 GameEvent::OvertimeNag(_) => GameEventType::OvertimeNag,
21563 GameEvent::TeamsChanged(_) => GameEventType::TeamsChanged,
21564 GameEvent::HalloweenPumpkinGrab(_) => GameEventType::HalloweenPumpkinGrab,
21565 GameEvent::RocketJump(_) => GameEventType::RocketJump,
21566 GameEvent::RocketJumpLanded(_) => GameEventType::RocketJumpLanded,
21567 GameEvent::StickyJump(_) => GameEventType::StickyJump,
21568 GameEvent::StickyJumpLanded(_) => GameEventType::StickyJumpLanded,
21569 GameEvent::RocketPackLaunch(_) => GameEventType::RocketPackLaunch,
21570 GameEvent::RocketPackLanded(_) => GameEventType::RocketPackLanded,
21571 GameEvent::MedicDefended(_) => GameEventType::MedicDefended,
21572 GameEvent::LocalPlayerHealed(_) => GameEventType::LocalPlayerHealed,
21573 GameEvent::PlayerDestroyedPipeBomb(_) => GameEventType::PlayerDestroyedPipeBomb,
21574 GameEvent::ObjectDeflected(_) => GameEventType::ObjectDeflected,
21575 GameEvent::PlayerMvp(_) => GameEventType::PlayerMvp,
21576 GameEvent::RaidSpawnMob(_) => GameEventType::RaidSpawnMob,
21577 GameEvent::RaidSpawnSquad(_) => GameEventType::RaidSpawnSquad,
21578 GameEvent::NavBlocked(_) => GameEventType::NavBlocked,
21579 GameEvent::PathTrackPassed(_) => GameEventType::PathTrackPassed,
21580 GameEvent::NumCappersChanged(_) => GameEventType::NumCappersChanged,
21581 GameEvent::PlayerRegenerate(_) => GameEventType::PlayerRegenerate,
21582 GameEvent::UpdateStatusItem(_) => GameEventType::UpdateStatusItem,
21583 GameEvent::StatsResetRound(_) => GameEventType::StatsResetRound,
21584 GameEvent::ScoreStatsAccumulatedUpdate(_) => GameEventType::ScoreStatsAccumulatedUpdate,
21585 GameEvent::ScoreStatsAccumulatedReset(_) => GameEventType::ScoreStatsAccumulatedReset,
21586 GameEvent::AchievementEarnedLocal(_) => GameEventType::AchievementEarnedLocal,
21587 GameEvent::PlayerHealed(_) => GameEventType::PlayerHealed,
21588 GameEvent::BuildingHealed(_) => GameEventType::BuildingHealed,
21589 GameEvent::ItemPickup(_) => GameEventType::ItemPickup,
21590 GameEvent::DuelStatus(_) => GameEventType::DuelStatus,
21591 GameEvent::FishNotice(_) => GameEventType::FishNotice,
21592 GameEvent::FishNoticeArm(_) => GameEventType::FishNoticeArm,
21593 GameEvent::SlapNotice(_) => GameEventType::SlapNotice,
21594 GameEvent::ThrowableHit(_) => GameEventType::ThrowableHit,
21595 GameEvent::PumpkinLordSummoned(_) => GameEventType::PumpkinLordSummoned,
21596 GameEvent::PumpkinLordKilled(_) => GameEventType::PumpkinLordKilled,
21597 GameEvent::MerasmusSummoned(_) => GameEventType::MerasmusSummoned,
21598 GameEvent::MerasmusKilled(_) => GameEventType::MerasmusKilled,
21599 GameEvent::MerasmusEscapeWarning(_) => GameEventType::MerasmusEscapeWarning,
21600 GameEvent::MerasmusEscaped(_) => GameEventType::MerasmusEscaped,
21601 GameEvent::EyeballBossSummoned(_) => GameEventType::EyeballBossSummoned,
21602 GameEvent::EyeballBossStunned(_) => GameEventType::EyeballBossStunned,
21603 GameEvent::EyeballBossKilled(_) => GameEventType::EyeballBossKilled,
21604 GameEvent::EyeballBossKiller(_) => GameEventType::EyeballBossKiller,
21605 GameEvent::EyeballBossEscapeImminent(_) => GameEventType::EyeballBossEscapeImminent,
21606 GameEvent::EyeballBossEscaped(_) => GameEventType::EyeballBossEscaped,
21607 GameEvent::NpcHurt(_) => GameEventType::NpcHurt,
21608 GameEvent::ControlPointTimerUpdated(_) => GameEventType::ControlPointTimerUpdated,
21609 GameEvent::PlayerHighFiveStart(_) => GameEventType::PlayerHighFiveStart,
21610 GameEvent::PlayerHighFiveCancel(_) => GameEventType::PlayerHighFiveCancel,
21611 GameEvent::PlayerHighFiveSuccess(_) => GameEventType::PlayerHighFiveSuccess,
21612 GameEvent::PlayerBonusPoints(_) => GameEventType::PlayerBonusPoints,
21613 GameEvent::PlayerUpgraded(_) => GameEventType::PlayerUpgraded,
21614 GameEvent::PlayerBuyback(_) => GameEventType::PlayerBuyback,
21615 GameEvent::PlayerUsedPowerUpBottle(_) => GameEventType::PlayerUsedPowerUpBottle,
21616 GameEvent::ChristmasGiftGrab(_) => GameEventType::ChristmasGiftGrab,
21617 GameEvent::PlayerKilledAchievementZone(_) => GameEventType::PlayerKilledAchievementZone,
21618 GameEvent::PartyUpdated(_) => GameEventType::PartyUpdated,
21619 GameEvent::PartyPrefChanged(_) => GameEventType::PartyPrefChanged,
21620 GameEvent::PartyCriteriaChanged(_) => GameEventType::PartyCriteriaChanged,
21621 GameEvent::PartyInvitesChanged(_) => GameEventType::PartyInvitesChanged,
21622 GameEvent::PartyQueueStateChanged(_) => GameEventType::PartyQueueStateChanged,
21623 GameEvent::PartyChat(_) => GameEventType::PartyChat,
21624 GameEvent::PartyMemberJoin(_) => GameEventType::PartyMemberJoin,
21625 GameEvent::PartyMemberLeave(_) => GameEventType::PartyMemberLeave,
21626 GameEvent::MatchInvitesUpdated(_) => GameEventType::MatchInvitesUpdated,
21627 GameEvent::LobbyUpdated(_) => GameEventType::LobbyUpdated,
21628 GameEvent::MvmMissionUpdate(_) => GameEventType::MvmMissionUpdate,
21629 GameEvent::RecalculateHolidays(_) => GameEventType::RecalculateHolidays,
21630 GameEvent::PlayerCurrencyChanged(_) => GameEventType::PlayerCurrencyChanged,
21631 GameEvent::DoomsdayRocketOpen(_) => GameEventType::DoomsdayRocketOpen,
21632 GameEvent::RemoveNemesisRelationships(_) => GameEventType::RemoveNemesisRelationships,
21633 GameEvent::MvmCreditBonusWave(_) => GameEventType::MvmCreditBonusWave,
21634 GameEvent::MvmCreditBonusAll(_) => GameEventType::MvmCreditBonusAll,
21635 GameEvent::MvmCreditBonusAllAdvanced(_) => GameEventType::MvmCreditBonusAllAdvanced,
21636 GameEvent::MvmQuickSentryUpgrade(_) => GameEventType::MvmQuickSentryUpgrade,
21637 GameEvent::MvmTankDestroyedByPlayers(_) => GameEventType::MvmTankDestroyedByPlayers,
21638 GameEvent::MvmKillRobotDeliveringBomb(_) => GameEventType::MvmKillRobotDeliveringBomb,
21639 GameEvent::MvmPickupCurrency(_) => GameEventType::MvmPickupCurrency,
21640 GameEvent::MvmBombCarrierKilled(_) => GameEventType::MvmBombCarrierKilled,
21641 GameEvent::MvmSentryBusterDetonate(_) => GameEventType::MvmSentryBusterDetonate,
21642 GameEvent::MvmScoutMarkedForDeath(_) => GameEventType::MvmScoutMarkedForDeath,
21643 GameEvent::MvmMedicPowerUpShared(_) => GameEventType::MvmMedicPowerUpShared,
21644 GameEvent::MvmBeginWave(_) => GameEventType::MvmBeginWave,
21645 GameEvent::MvmWaveComplete(_) => GameEventType::MvmWaveComplete,
21646 GameEvent::MvmMissionComplete(_) => GameEventType::MvmMissionComplete,
21647 GameEvent::MvmBombResetByPlayer(_) => GameEventType::MvmBombResetByPlayer,
21648 GameEvent::MvmBombAlarmTriggered(_) => GameEventType::MvmBombAlarmTriggered,
21649 GameEvent::MvmBombDeployResetByPlayer(_) => GameEventType::MvmBombDeployResetByPlayer,
21650 GameEvent::MvmWaveFailed(_) => GameEventType::MvmWaveFailed,
21651 GameEvent::MvmResetStats(_) => GameEventType::MvmResetStats,
21652 GameEvent::DamageResisted(_) => GameEventType::DamageResisted,
21653 GameEvent::RevivePlayerNotify(_) => GameEventType::RevivePlayerNotify,
21654 GameEvent::RevivePlayerStopped(_) => GameEventType::RevivePlayerStopped,
21655 GameEvent::RevivePlayerComplete(_) => GameEventType::RevivePlayerComplete,
21656 GameEvent::PlayerTurnedToGhost(_) => GameEventType::PlayerTurnedToGhost,
21657 GameEvent::MedigunShieldBlockedDamage(_) => GameEventType::MedigunShieldBlockedDamage,
21658 GameEvent::MvmAdvWaveCompleteNoGates(_) => GameEventType::MvmAdvWaveCompleteNoGates,
21659 GameEvent::MvmSniperHeadshotCurrency(_) => GameEventType::MvmSniperHeadshotCurrency,
21660 GameEvent::MvmMannhattanPit(_) => GameEventType::MvmMannhattanPit,
21661 GameEvent::FlagCarriedInDetectionZone(_) => GameEventType::FlagCarriedInDetectionZone,
21662 GameEvent::MvmAdvWaveKilledStunRadio(_) => GameEventType::MvmAdvWaveKilledStunRadio,
21663 GameEvent::PlayerDirectHitStun(_) => GameEventType::PlayerDirectHitStun,
21664 GameEvent::MvmSentryBusterKilled(_) => GameEventType::MvmSentryBusterKilled,
21665 GameEvent::UpgradesFileChanged(_) => GameEventType::UpgradesFileChanged,
21666 GameEvent::RdTeamPointsChanged(_) => GameEventType::RdTeamPointsChanged,
21667 GameEvent::RdRulesStateChanged(_) => GameEventType::RdRulesStateChanged,
21668 GameEvent::RdRobotKilled(_) => GameEventType::RdRobotKilled,
21669 GameEvent::RdRobotImpact(_) => GameEventType::RdRobotImpact,
21670 GameEvent::TeamPlayPreRoundTimeLeft(_) => GameEventType::TeamPlayPreRoundTimeLeft,
21671 GameEvent::ParachuteDeploy(_) => GameEventType::ParachuteDeploy,
21672 GameEvent::ParachuteHolster(_) => GameEventType::ParachuteHolster,
21673 GameEvent::KillRefillsMeter(_) => GameEventType::KillRefillsMeter,
21674 GameEvent::RpsTauntEvent(_) => GameEventType::RpsTauntEvent,
21675 GameEvent::CongaKill(_) => GameEventType::CongaKill,
21676 GameEvent::PlayerInitialSpawn(_) => GameEventType::PlayerInitialSpawn,
21677 GameEvent::CompetitiveVictory(_) => GameEventType::CompetitiveVictory,
21678 GameEvent::CompetitiveStatsUpdate(_) => GameEventType::CompetitiveStatsUpdate,
21679 GameEvent::MiniGameWin(_) => GameEventType::MiniGameWin,
21680 GameEvent::SentryOnGoActive(_) => GameEventType::SentryOnGoActive,
21681 GameEvent::DuckXpLevelUp(_) => GameEventType::DuckXpLevelUp,
21682 GameEvent::QuestLogOpened(_) => GameEventType::QuestLogOpened,
21683 GameEvent::SchemaUpdated(_) => GameEventType::SchemaUpdated,
21684 GameEvent::LocalPlayerPickupWeapon(_) => GameEventType::LocalPlayerPickupWeapon,
21685 GameEvent::RdPlayerScorePoints(_) => GameEventType::RdPlayerScorePoints,
21686 GameEvent::DemomanDetStickies(_) => GameEventType::DemomanDetStickies,
21687 GameEvent::QuestObjectiveCompleted(_) => GameEventType::QuestObjectiveCompleted,
21688 GameEvent::PlayerScoreChanged(_) => GameEventType::PlayerScoreChanged,
21689 GameEvent::KilledCappingPlayer(_) => GameEventType::KilledCappingPlayer,
21690 GameEvent::EnvironmentalDeath(_) => GameEventType::EnvironmentalDeath,
21691 GameEvent::ProjectileDirectHit(_) => GameEventType::ProjectileDirectHit,
21692 GameEvent::PassGet(_) => GameEventType::PassGet,
21693 GameEvent::PassScore(_) => GameEventType::PassScore,
21694 GameEvent::PassFree(_) => GameEventType::PassFree,
21695 GameEvent::PassPassCaught(_) => GameEventType::PassPassCaught,
21696 GameEvent::PassBallStolen(_) => GameEventType::PassBallStolen,
21697 GameEvent::PassBallBlocked(_) => GameEventType::PassBallBlocked,
21698 GameEvent::DamagePrevented(_) => GameEventType::DamagePrevented,
21699 GameEvent::HalloweenBossKilled(_) => GameEventType::HalloweenBossKilled,
21700 GameEvent::EscapedLootIsland(_) => GameEventType::EscapedLootIsland,
21701 GameEvent::TaggedPlayerAsIt(_) => GameEventType::TaggedPlayerAsIt,
21702 GameEvent::MerasmusStunned(_) => GameEventType::MerasmusStunned,
21703 GameEvent::MerasmusPropFound(_) => GameEventType::MerasmusPropFound,
21704 GameEvent::HalloweenSkeletonKilled(_) => GameEventType::HalloweenSkeletonKilled,
21705 GameEvent::SkeletonKilledQuest(_) => GameEventType::SkeletonKilledQuest,
21706 GameEvent::SkeletonKingKilledQuest(_) => GameEventType::SkeletonKingKilledQuest,
21707 GameEvent::EscapeHell(_) => GameEventType::EscapeHell,
21708 GameEvent::CrossSpectralBridge(_) => GameEventType::CrossSpectralBridge,
21709 GameEvent::MiniGameWon(_) => GameEventType::MiniGameWon,
21710 GameEvent::RespawnGhost(_) => GameEventType::RespawnGhost,
21711 GameEvent::KillInHell(_) => GameEventType::KillInHell,
21712 GameEvent::HalloweenDuckCollected(_) => GameEventType::HalloweenDuckCollected,
21713 GameEvent::SpecialScore(_) => GameEventType::SpecialScore,
21714 GameEvent::TeamLeaderKilled(_) => GameEventType::TeamLeaderKilled,
21715 GameEvent::HalloweenSoulCollected(_) => GameEventType::HalloweenSoulCollected,
21716 GameEvent::RecalculateTruce(_) => GameEventType::RecalculateTruce,
21717 GameEvent::DeadRingerCheatDeath(_) => GameEventType::DeadRingerCheatDeath,
21718 GameEvent::CrossbowHeal(_) => GameEventType::CrossbowHeal,
21719 GameEvent::DamageMitigated(_) => GameEventType::DamageMitigated,
21720 GameEvent::PayloadPushed(_) => GameEventType::PayloadPushed,
21721 GameEvent::PlayerAbandonedMatch(_) => GameEventType::PlayerAbandonedMatch,
21722 GameEvent::ClDrawline(_) => GameEventType::ClDrawline,
21723 GameEvent::RestartTimerTime(_) => GameEventType::RestartTimerTime,
21724 GameEvent::WinLimitChanged(_) => GameEventType::WinLimitChanged,
21725 GameEvent::WinPanelShowScores(_) => GameEventType::WinPanelShowScores,
21726 GameEvent::TopStreamsRequestFinished(_) => GameEventType::TopStreamsRequestFinished,
21727 GameEvent::CompetitiveStateChanged(_) => GameEventType::CompetitiveStateChanged,
21728 GameEvent::GlobalWarDataUpdated(_) => GameEventType::GlobalWarDataUpdated,
21729 GameEvent::StopWatchChanged(_) => GameEventType::StopWatchChanged,
21730 GameEvent::DsStop(_) => GameEventType::DsStop,
21731 GameEvent::DsScreenshot(_) => GameEventType::DsScreenshot,
21732 GameEvent::ShowMatchSummary(_) => GameEventType::ShowMatchSummary,
21733 GameEvent::ExperienceChanged(_) => GameEventType::ExperienceChanged,
21734 GameEvent::BeginXpLerp(_) => GameEventType::BeginXpLerp,
21735 GameEvent::MatchmakerStatsUpdated(_) => GameEventType::MatchmakerStatsUpdated,
21736 GameEvent::RematchVotePeriodOver(_) => GameEventType::RematchVotePeriodOver,
21737 GameEvent::RematchFailedToCreate(_) => GameEventType::RematchFailedToCreate,
21738 GameEvent::PlayerRematchChange(_) => GameEventType::PlayerRematchChange,
21739 GameEvent::PingUpdated(_) => GameEventType::PingUpdated,
21740 GameEvent::MMStatsUpdated(_) => GameEventType::MMStatsUpdated,
21741 GameEvent::PlayerNextMapVoteChange(_) => GameEventType::PlayerNextMapVoteChange,
21742 GameEvent::VoteMapsChanged(_) => GameEventType::VoteMapsChanged,
21743 GameEvent::ProtoDefChanged(_) => GameEventType::ProtoDefChanged,
21744 GameEvent::PlayerDomination(_) => GameEventType::PlayerDomination,
21745 GameEvent::PlayerRocketPackPushed(_) => GameEventType::PlayerRocketPackPushed,
21746 GameEvent::QuestRequest(_) => GameEventType::QuestRequest,
21747 GameEvent::QuestResponse(_) => GameEventType::QuestResponse,
21748 GameEvent::QuestProgress(_) => GameEventType::QuestProgress,
21749 GameEvent::ProjectileRemoved(_) => GameEventType::ProjectileRemoved,
21750 GameEvent::QuestMapDataChanged(_) => GameEventType::QuestMapDataChanged,
21751 GameEvent::GasDousedPlayerIgnited(_) => GameEventType::GasDousedPlayerIgnited,
21752 GameEvent::QuestTurnInState(_) => GameEventType::QuestTurnInState,
21753 GameEvent::ItemsAcknowledged(_) => GameEventType::ItemsAcknowledged,
21754 GameEvent::CapperKilled(_) => GameEventType::CapperKilled,
21755 GameEvent::MainMenuStabilized(_) => GameEventType::MainMenuStabilized,
21756 GameEvent::WorldStatusChanged(_) => GameEventType::WorldStatusChanged,
21757 GameEvent::HLTVStatus(_) => GameEventType::HLTVStatus,
21758 GameEvent::HLTVCameraman(_) => GameEventType::HLTVCameraman,
21759 GameEvent::HLTVRankCamera(_) => GameEventType::HLTVRankCamera,
21760 GameEvent::HLTVRankEntity(_) => GameEventType::HLTVRankEntity,
21761 GameEvent::HLTVFixed(_) => GameEventType::HLTVFixed,
21762 GameEvent::HLTVChase(_) => GameEventType::HLTVChase,
21763 GameEvent::HLTVMessage(_) => GameEventType::HLTVMessage,
21764 GameEvent::HLTVTitle(_) => GameEventType::HLTVTitle,
21765 GameEvent::HLTVChat(_) => GameEventType::HLTVChat,
21766 GameEvent::ReplayStartRecord(_) => GameEventType::ReplayStartRecord,
21767 GameEvent::ReplaySessionInfo(_) => GameEventType::ReplaySessionInfo,
21768 GameEvent::ReplayEndRecord(_) => GameEventType::ReplayEndRecord,
21769 GameEvent::ReplayReplaysAvailable(_) => GameEventType::ReplayReplaysAvailable,
21770 GameEvent::ReplayServerError(_) => GameEventType::ReplayServerError,
21771 GameEvent::Unknown(raw) => raw.event_type.clone(),
21772 }
21773 }
21774}
21775pub fn get_sizes() -> fnv::FnvHashMap<&'static str, usize> {
21776 [
21777 ("ServerSpawn", std::mem::size_of::<ServerSpawnEvent>()),
21778 (
21779 "ServerChangeLevelFailed",
21780 std::mem::size_of::<ServerChangeLevelFailedEvent>(),
21781 ),
21782 ("ServerShutdown", std::mem::size_of::<ServerShutdownEvent>()),
21783 ("ServerCvar", std::mem::size_of::<ServerCvarEvent>()),
21784 ("ServerMessage", std::mem::size_of::<ServerMessageEvent>()),
21785 ("ServerAddBan", std::mem::size_of::<ServerAddBanEvent>()),
21786 (
21787 "ServerRemoveBan",
21788 std::mem::size_of::<ServerRemoveBanEvent>(),
21789 ),
21790 ("PlayerConnect", std::mem::size_of::<PlayerConnectEvent>()),
21791 (
21792 "PlayerConnectClient",
21793 std::mem::size_of::<PlayerConnectClientEvent>(),
21794 ),
21795 ("PlayerInfo", std::mem::size_of::<PlayerInfoEvent>()),
21796 (
21797 "PlayerDisconnect",
21798 std::mem::size_of::<PlayerDisconnectEvent>(),
21799 ),
21800 ("PlayerActivate", std::mem::size_of::<PlayerActivateEvent>()),
21801 ("PlayerSay", std::mem::size_of::<PlayerSayEvent>()),
21802 (
21803 "ClientDisconnect",
21804 std::mem::size_of::<ClientDisconnectEvent>(),
21805 ),
21806 (
21807 "ClientBeginConnect",
21808 std::mem::size_of::<ClientBeginConnectEvent>(),
21809 ),
21810 (
21811 "ClientConnected",
21812 std::mem::size_of::<ClientConnectedEvent>(),
21813 ),
21814 (
21815 "ClientFullConnect",
21816 std::mem::size_of::<ClientFullConnectEvent>(),
21817 ),
21818 ("HostQuit", std::mem::size_of::<HostQuitEvent>()),
21819 ("TeamInfo", std::mem::size_of::<TeamInfoEvent>()),
21820 ("TeamScore", std::mem::size_of::<TeamScoreEvent>()),
21821 (
21822 "TeamPlayBroadcastAudio",
21823 std::mem::size_of::<TeamPlayBroadcastAudioEvent>(),
21824 ),
21825 ("PlayerTeam", std::mem::size_of::<PlayerTeamEvent>()),
21826 ("PlayerClass", std::mem::size_of::<PlayerClassEvent>()),
21827 ("PlayerDeath", std::mem::size_of::<PlayerDeathEvent>()),
21828 ("PlayerHurt", std::mem::size_of::<PlayerHurtEvent>()),
21829 ("PlayerChat", std::mem::size_of::<PlayerChatEvent>()),
21830 ("PlayerScore", std::mem::size_of::<PlayerScoreEvent>()),
21831 ("PlayerSpawn", std::mem::size_of::<PlayerSpawnEvent>()),
21832 ("PlayerShoot", std::mem::size_of::<PlayerShootEvent>()),
21833 ("PlayerUse", std::mem::size_of::<PlayerUseEvent>()),
21834 (
21835 "PlayerChangeName",
21836 std::mem::size_of::<PlayerChangeNameEvent>(),
21837 ),
21838 (
21839 "PlayerHintMessage",
21840 std::mem::size_of::<PlayerHintMessageEvent>(),
21841 ),
21842 (
21843 "BasePlayerTeleported",
21844 std::mem::size_of::<BasePlayerTeleportedEvent>(),
21845 ),
21846 ("GameInit", std::mem::size_of::<GameInitEvent>()),
21847 ("GameNewMap", std::mem::size_of::<GameNewMapEvent>()),
21848 ("GameStart", std::mem::size_of::<GameStartEvent>()),
21849 ("GameEnd", std::mem::size_of::<GameEndEvent>()),
21850 ("RoundStart", std::mem::size_of::<RoundStartEvent>()),
21851 ("RoundEnd", std::mem::size_of::<RoundEndEvent>()),
21852 ("GameMessage", std::mem::size_of::<GameMessageEvent>()),
21853 ("BreakBreakable", std::mem::size_of::<BreakBreakableEvent>()),
21854 ("BreakProp", std::mem::size_of::<BreakPropEvent>()),
21855 ("EntityKilled", std::mem::size_of::<EntityKilledEvent>()),
21856 ("BonusUpdated", std::mem::size_of::<BonusUpdatedEvent>()),
21857 (
21858 "AchievementEvent",
21859 std::mem::size_of::<AchievementEventEvent>(),
21860 ),
21861 (
21862 "AchievementIncrement",
21863 std::mem::size_of::<AchievementIncrementEvent>(),
21864 ),
21865 ("PhysgunPickup", std::mem::size_of::<PhysgunPickupEvent>()),
21866 ("FlareIgniteNpc", std::mem::size_of::<FlareIgniteNpcEvent>()),
21867 (
21868 "HelicopterGrenadePuntMiss",
21869 std::mem::size_of::<HelicopterGrenadePuntMissEvent>(),
21870 ),
21871 (
21872 "UserDataDownloaded",
21873 std::mem::size_of::<UserDataDownloadedEvent>(),
21874 ),
21875 (
21876 "RagdollDissolved",
21877 std::mem::size_of::<RagdollDissolvedEvent>(),
21878 ),
21879 (
21880 "HLTVChangedMode",
21881 std::mem::size_of::<HLTVChangedModeEvent>(),
21882 ),
21883 (
21884 "HLTVChangedTarget",
21885 std::mem::size_of::<HLTVChangedTargetEvent>(),
21886 ),
21887 ("VoteEnded", std::mem::size_of::<VoteEndedEvent>()),
21888 ("VoteStarted", std::mem::size_of::<VoteStartedEvent>()),
21889 ("VoteChanged", std::mem::size_of::<VoteChangedEvent>()),
21890 ("VotePassed", std::mem::size_of::<VotePassedEvent>()),
21891 ("VoteFailed", std::mem::size_of::<VoteFailedEvent>()),
21892 ("VoteCast", std::mem::size_of::<VoteCastEvent>()),
21893 ("VoteOptions", std::mem::size_of::<VoteOptionsEvent>()),
21894 ("ReplaySaved", std::mem::size_of::<ReplaySavedEvent>()),
21895 (
21896 "EnteredPerformanceMode",
21897 std::mem::size_of::<EnteredPerformanceModeEvent>(),
21898 ),
21899 ("BrowseReplays", std::mem::size_of::<BrowseReplaysEvent>()),
21900 (
21901 "ReplayYoutubeStats",
21902 std::mem::size_of::<ReplayYoutubeStatsEvent>(),
21903 ),
21904 (
21905 "InventoryUpdated",
21906 std::mem::size_of::<InventoryUpdatedEvent>(),
21907 ),
21908 ("CartUpdated", std::mem::size_of::<CartUpdatedEvent>()),
21909 (
21910 "StorePriceSheetUpdated",
21911 std::mem::size_of::<StorePriceSheetUpdatedEvent>(),
21912 ),
21913 (
21914 "EconInventoryConnected",
21915 std::mem::size_of::<EconInventoryConnectedEvent>(),
21916 ),
21917 (
21918 "ItemSchemaInitialized",
21919 std::mem::size_of::<ItemSchemaInitializedEvent>(),
21920 ),
21921 ("GcNewSession", std::mem::size_of::<GcNewSessionEvent>()),
21922 ("GcLostSession", std::mem::size_of::<GcLostSessionEvent>()),
21923 ("IntroFinish", std::mem::size_of::<IntroFinishEvent>()),
21924 (
21925 "IntroNextCamera",
21926 std::mem::size_of::<IntroNextCameraEvent>(),
21927 ),
21928 (
21929 "PlayerChangeClass",
21930 std::mem::size_of::<PlayerChangeClassEvent>(),
21931 ),
21932 (
21933 "TfMapTimeRemaining",
21934 std::mem::size_of::<TfMapTimeRemainingEvent>(),
21935 ),
21936 ("TfGameOver", std::mem::size_of::<TfGameOverEvent>()),
21937 (
21938 "CtfFlagCaptured",
21939 std::mem::size_of::<CtfFlagCapturedEvent>(),
21940 ),
21941 (
21942 "ControlPointInitialized",
21943 std::mem::size_of::<ControlPointInitializedEvent>(),
21944 ),
21945 (
21946 "ControlPointUpdateImages",
21947 std::mem::size_of::<ControlPointUpdateImagesEvent>(),
21948 ),
21949 (
21950 "ControlPointUpdateLayout",
21951 std::mem::size_of::<ControlPointUpdateLayoutEvent>(),
21952 ),
21953 (
21954 "ControlPointUpdateCapping",
21955 std::mem::size_of::<ControlPointUpdateCappingEvent>(),
21956 ),
21957 (
21958 "ControlPointUpdateOwner",
21959 std::mem::size_of::<ControlPointUpdateOwnerEvent>(),
21960 ),
21961 (
21962 "ControlPointStartTouch",
21963 std::mem::size_of::<ControlPointStartTouchEvent>(),
21964 ),
21965 (
21966 "ControlPointEndTouch",
21967 std::mem::size_of::<ControlPointEndTouchEvent>(),
21968 ),
21969 (
21970 "ControlPointPulseElement",
21971 std::mem::size_of::<ControlPointPulseElementEvent>(),
21972 ),
21973 (
21974 "ControlPointFakeCapture",
21975 std::mem::size_of::<ControlPointFakeCaptureEvent>(),
21976 ),
21977 (
21978 "ControlPointFakeCaptureMultiplier",
21979 std::mem::size_of::<ControlPointFakeCaptureMultiplierEvent>(),
21980 ),
21981 (
21982 "TeamPlayRoundSelected",
21983 std::mem::size_of::<TeamPlayRoundSelectedEvent>(),
21984 ),
21985 (
21986 "TeamPlayRoundStart",
21987 std::mem::size_of::<TeamPlayRoundStartEvent>(),
21988 ),
21989 (
21990 "TeamPlayRoundActive",
21991 std::mem::size_of::<TeamPlayRoundActiveEvent>(),
21992 ),
21993 (
21994 "TeamPlayWaitingBegins",
21995 std::mem::size_of::<TeamPlayWaitingBeginsEvent>(),
21996 ),
21997 (
21998 "TeamPlayWaitingEnds",
21999 std::mem::size_of::<TeamPlayWaitingEndsEvent>(),
22000 ),
22001 (
22002 "TeamPlayWaitingAboutToEnd",
22003 std::mem::size_of::<TeamPlayWaitingAboutToEndEvent>(),
22004 ),
22005 (
22006 "TeamPlayRestartRound",
22007 std::mem::size_of::<TeamPlayRestartRoundEvent>(),
22008 ),
22009 (
22010 "TeamPlayReadyRestart",
22011 std::mem::size_of::<TeamPlayReadyRestartEvent>(),
22012 ),
22013 (
22014 "TeamPlayRoundRestartSeconds",
22015 std::mem::size_of::<TeamPlayRoundRestartSecondsEvent>(),
22016 ),
22017 (
22018 "TeamPlayTeamReady",
22019 std::mem::size_of::<TeamPlayTeamReadyEvent>(),
22020 ),
22021 (
22022 "TeamPlayRoundWin",
22023 std::mem::size_of::<TeamPlayRoundWinEvent>(),
22024 ),
22025 (
22026 "TeamPlayUpdateTimer",
22027 std::mem::size_of::<TeamPlayUpdateTimerEvent>(),
22028 ),
22029 (
22030 "TeamPlayRoundStalemate",
22031 std::mem::size_of::<TeamPlayRoundStalemateEvent>(),
22032 ),
22033 (
22034 "TeamPlayOvertimeBegin",
22035 std::mem::size_of::<TeamPlayOvertimeBeginEvent>(),
22036 ),
22037 (
22038 "TeamPlayOvertimeEnd",
22039 std::mem::size_of::<TeamPlayOvertimeEndEvent>(),
22040 ),
22041 (
22042 "TeamPlaySuddenDeathBegin",
22043 std::mem::size_of::<TeamPlaySuddenDeathBeginEvent>(),
22044 ),
22045 (
22046 "TeamPlaySuddenDeathEnd",
22047 std::mem::size_of::<TeamPlaySuddenDeathEndEvent>(),
22048 ),
22049 (
22050 "TeamPlayGameOver",
22051 std::mem::size_of::<TeamPlayGameOverEvent>(),
22052 ),
22053 (
22054 "TeamPlayMapTimeRemaining",
22055 std::mem::size_of::<TeamPlayMapTimeRemainingEvent>(),
22056 ),
22057 (
22058 "TeamPlayTimerFlash",
22059 std::mem::size_of::<TeamPlayTimerFlashEvent>(),
22060 ),
22061 (
22062 "TeamPlayTimerTimeAdded",
22063 std::mem::size_of::<TeamPlayTimerTimeAddedEvent>(),
22064 ),
22065 (
22066 "TeamPlayPointStartCapture",
22067 std::mem::size_of::<TeamPlayPointStartCaptureEvent>(),
22068 ),
22069 (
22070 "TeamPlayPointCaptured",
22071 std::mem::size_of::<TeamPlayPointCapturedEvent>(),
22072 ),
22073 (
22074 "TeamPlayPointLocked",
22075 std::mem::size_of::<TeamPlayPointLockedEvent>(),
22076 ),
22077 (
22078 "TeamPlayPointUnlocked",
22079 std::mem::size_of::<TeamPlayPointUnlockedEvent>(),
22080 ),
22081 (
22082 "TeamPlayCaptureBroken",
22083 std::mem::size_of::<TeamPlayCaptureBrokenEvent>(),
22084 ),
22085 (
22086 "TeamPlayCaptureBlocked",
22087 std::mem::size_of::<TeamPlayCaptureBlockedEvent>(),
22088 ),
22089 (
22090 "TeamPlayFlagEvent",
22091 std::mem::size_of::<TeamPlayFlagEventEvent>(),
22092 ),
22093 (
22094 "TeamPlayWinPanel",
22095 std::mem::size_of::<TeamPlayWinPanelEvent>(),
22096 ),
22097 (
22098 "TeamPlayTeamBalancedPlayer",
22099 std::mem::size_of::<TeamPlayTeamBalancedPlayerEvent>(),
22100 ),
22101 (
22102 "TeamPlaySetupFinished",
22103 std::mem::size_of::<TeamPlaySetupFinishedEvent>(),
22104 ),
22105 ("TeamPlayAlert", std::mem::size_of::<TeamPlayAlertEvent>()),
22106 (
22107 "TrainingComplete",
22108 std::mem::size_of::<TrainingCompleteEvent>(),
22109 ),
22110 (
22111 "ShowFreezePanel",
22112 std::mem::size_of::<ShowFreezePanelEvent>(),
22113 ),
22114 (
22115 "HideFreezePanel",
22116 std::mem::size_of::<HideFreezePanelEvent>(),
22117 ),
22118 (
22119 "FreezeCamStarted",
22120 std::mem::size_of::<FreezeCamStartedEvent>(),
22121 ),
22122 (
22123 "LocalPlayerChangeTeam",
22124 std::mem::size_of::<LocalPlayerChangeTeamEvent>(),
22125 ),
22126 (
22127 "LocalPlayerScoreChanged",
22128 std::mem::size_of::<LocalPlayerScoreChangedEvent>(),
22129 ),
22130 (
22131 "LocalPlayerChangeClass",
22132 std::mem::size_of::<LocalPlayerChangeClassEvent>(),
22133 ),
22134 (
22135 "LocalPlayerRespawn",
22136 std::mem::size_of::<LocalPlayerRespawnEvent>(),
22137 ),
22138 (
22139 "BuildingInfoChanged",
22140 std::mem::size_of::<BuildingInfoChangedEvent>(),
22141 ),
22142 (
22143 "LocalPlayerChangeDisguise",
22144 std::mem::size_of::<LocalPlayerChangeDisguiseEvent>(),
22145 ),
22146 (
22147 "PlayerAccountChanged",
22148 std::mem::size_of::<PlayerAccountChangedEvent>(),
22149 ),
22150 ("SpyPdaReset", std::mem::size_of::<SpyPdaResetEvent>()),
22151 (
22152 "FlagStatusUpdate",
22153 std::mem::size_of::<FlagStatusUpdateEvent>(),
22154 ),
22155 (
22156 "PlayerStatsUpdated",
22157 std::mem::size_of::<PlayerStatsUpdatedEvent>(),
22158 ),
22159 (
22160 "PlayingCommentary",
22161 std::mem::size_of::<PlayingCommentaryEvent>(),
22162 ),
22163 (
22164 "PlayerChargeDeployed",
22165 std::mem::size_of::<PlayerChargeDeployedEvent>(),
22166 ),
22167 (
22168 "PlayerBuiltObject",
22169 std::mem::size_of::<PlayerBuiltObjectEvent>(),
22170 ),
22171 (
22172 "PlayerUpgradedObject",
22173 std::mem::size_of::<PlayerUpgradedObjectEvent>(),
22174 ),
22175 (
22176 "PlayerCarryObject",
22177 std::mem::size_of::<PlayerCarryObjectEvent>(),
22178 ),
22179 (
22180 "PlayerDropObject",
22181 std::mem::size_of::<PlayerDropObjectEvent>(),
22182 ),
22183 ("ObjectRemoved", std::mem::size_of::<ObjectRemovedEvent>()),
22184 (
22185 "ObjectDestroyed",
22186 std::mem::size_of::<ObjectDestroyedEvent>(),
22187 ),
22188 (
22189 "ObjectDetonated",
22190 std::mem::size_of::<ObjectDetonatedEvent>(),
22191 ),
22192 (
22193 "AchievementEarned",
22194 std::mem::size_of::<AchievementEarnedEvent>(),
22195 ),
22196 (
22197 "SpecTargetUpdated",
22198 std::mem::size_of::<SpecTargetUpdatedEvent>(),
22199 ),
22200 (
22201 "TournamentStateUpdate",
22202 std::mem::size_of::<TournamentStateUpdateEvent>(),
22203 ),
22204 (
22205 "TournamentEnableCountdown",
22206 std::mem::size_of::<TournamentEnableCountdownEvent>(),
22207 ),
22208 (
22209 "PlayerCalledForMedic",
22210 std::mem::size_of::<PlayerCalledForMedicEvent>(),
22211 ),
22212 (
22213 "PlayerAskedForBall",
22214 std::mem::size_of::<PlayerAskedForBallEvent>(),
22215 ),
22216 (
22217 "LocalPlayerBecameObserver",
22218 std::mem::size_of::<LocalPlayerBecameObserverEvent>(),
22219 ),
22220 (
22221 "PlayerIgnitedInv",
22222 std::mem::size_of::<PlayerIgnitedInvEvent>(),
22223 ),
22224 ("PlayerIgnited", std::mem::size_of::<PlayerIgnitedEvent>()),
22225 (
22226 "PlayerExtinguished",
22227 std::mem::size_of::<PlayerExtinguishedEvent>(),
22228 ),
22229 (
22230 "PlayerTeleported",
22231 std::mem::size_of::<PlayerTeleportedEvent>(),
22232 ),
22233 (
22234 "PlayerHealedMedicCall",
22235 std::mem::size_of::<PlayerHealedMedicCallEvent>(),
22236 ),
22237 (
22238 "LocalPlayerChargeReady",
22239 std::mem::size_of::<LocalPlayerChargeReadyEvent>(),
22240 ),
22241 (
22242 "LocalPlayerWindDown",
22243 std::mem::size_of::<LocalPlayerWindDownEvent>(),
22244 ),
22245 ("PlayerInvulned", std::mem::size_of::<PlayerInvulnedEvent>()),
22246 ("EscortSpeed", std::mem::size_of::<EscortSpeedEvent>()),
22247 ("EscortProgress", std::mem::size_of::<EscortProgressEvent>()),
22248 ("EscortRecede", std::mem::size_of::<EscortRecedeEvent>()),
22249 (
22250 "GameUIActivated",
22251 std::mem::size_of::<GameUIActivatedEvent>(),
22252 ),
22253 ("GameUIHidden", std::mem::size_of::<GameUIHiddenEvent>()),
22254 (
22255 "PlayerEscortScore",
22256 std::mem::size_of::<PlayerEscortScoreEvent>(),
22257 ),
22258 (
22259 "PlayerHealOnHit",
22260 std::mem::size_of::<PlayerHealOnHitEvent>(),
22261 ),
22262 (
22263 "PlayerStealSandvich",
22264 std::mem::size_of::<PlayerStealSandvichEvent>(),
22265 ),
22266 (
22267 "ShowClassLayout",
22268 std::mem::size_of::<ShowClassLayoutEvent>(),
22269 ),
22270 ("ShowVsPanel", std::mem::size_of::<ShowVsPanelEvent>()),
22271 ("PlayerDamaged", std::mem::size_of::<PlayerDamagedEvent>()),
22272 (
22273 "ArenaPlayerNotification",
22274 std::mem::size_of::<ArenaPlayerNotificationEvent>(),
22275 ),
22276 (
22277 "ArenaMatchMaxStreak",
22278 std::mem::size_of::<ArenaMatchMaxStreakEvent>(),
22279 ),
22280 (
22281 "ArenaRoundStart",
22282 std::mem::size_of::<ArenaRoundStartEvent>(),
22283 ),
22284 ("ArenaWinPanel", std::mem::size_of::<ArenaWinPanelEvent>()),
22285 ("PveWinPanel", std::mem::size_of::<PveWinPanelEvent>()),
22286 ("AirDash", std::mem::size_of::<AirDashEvent>()),
22287 ("Landed", std::mem::size_of::<LandedEvent>()),
22288 (
22289 "PlayerDamageDodged",
22290 std::mem::size_of::<PlayerDamageDodgedEvent>(),
22291 ),
22292 ("PlayerStunned", std::mem::size_of::<PlayerStunnedEvent>()),
22293 ("ScoutGrandSlam", std::mem::size_of::<ScoutGrandSlamEvent>()),
22294 (
22295 "ScoutSlamdollLanded",
22296 std::mem::size_of::<ScoutSlamdollLandedEvent>(),
22297 ),
22298 ("ArrowImpact", std::mem::size_of::<ArrowImpactEvent>()),
22299 ("PlayerJarated", std::mem::size_of::<PlayerJaratedEvent>()),
22300 (
22301 "PlayerJaratedFade",
22302 std::mem::size_of::<PlayerJaratedFadeEvent>(),
22303 ),
22304 (
22305 "PlayerShieldBlocked",
22306 std::mem::size_of::<PlayerShieldBlockedEvent>(),
22307 ),
22308 ("PlayerPinned", std::mem::size_of::<PlayerPinnedEvent>()),
22309 (
22310 "PlayerHealedByMedic",
22311 std::mem::size_of::<PlayerHealedByMedicEvent>(),
22312 ),
22313 (
22314 "PlayerSappedObject",
22315 std::mem::size_of::<PlayerSappedObjectEvent>(),
22316 ),
22317 ("ItemFound", std::mem::size_of::<ItemFoundEvent>()),
22318 ("ShowAnnotation", std::mem::size_of::<ShowAnnotationEvent>()),
22319 ("HideAnnotation", std::mem::size_of::<HideAnnotationEvent>()),
22320 (
22321 "PostInventoryApplication",
22322 std::mem::size_of::<PostInventoryApplicationEvent>(),
22323 ),
22324 (
22325 "ControlPointUnlockUpdated",
22326 std::mem::size_of::<ControlPointUnlockUpdatedEvent>(),
22327 ),
22328 (
22329 "DeployBuffBanner",
22330 std::mem::size_of::<DeployBuffBannerEvent>(),
22331 ),
22332 ("PlayerBuff", std::mem::size_of::<PlayerBuffEvent>()),
22333 ("MedicDeath", std::mem::size_of::<MedicDeathEvent>()),
22334 ("OvertimeNag", std::mem::size_of::<OvertimeNagEvent>()),
22335 ("TeamsChanged", std::mem::size_of::<TeamsChangedEvent>()),
22336 (
22337 "HalloweenPumpkinGrab",
22338 std::mem::size_of::<HalloweenPumpkinGrabEvent>(),
22339 ),
22340 ("RocketJump", std::mem::size_of::<RocketJumpEvent>()),
22341 (
22342 "RocketJumpLanded",
22343 std::mem::size_of::<RocketJumpLandedEvent>(),
22344 ),
22345 ("StickyJump", std::mem::size_of::<StickyJumpEvent>()),
22346 (
22347 "StickyJumpLanded",
22348 std::mem::size_of::<StickyJumpLandedEvent>(),
22349 ),
22350 (
22351 "RocketPackLaunch",
22352 std::mem::size_of::<RocketPackLaunchEvent>(),
22353 ),
22354 (
22355 "RocketPackLanded",
22356 std::mem::size_of::<RocketPackLandedEvent>(),
22357 ),
22358 ("MedicDefended", std::mem::size_of::<MedicDefendedEvent>()),
22359 (
22360 "LocalPlayerHealed",
22361 std::mem::size_of::<LocalPlayerHealedEvent>(),
22362 ),
22363 (
22364 "PlayerDestroyedPipeBomb",
22365 std::mem::size_of::<PlayerDestroyedPipeBombEvent>(),
22366 ),
22367 (
22368 "ObjectDeflected",
22369 std::mem::size_of::<ObjectDeflectedEvent>(),
22370 ),
22371 ("PlayerMvp", std::mem::size_of::<PlayerMvpEvent>()),
22372 ("RaidSpawnMob", std::mem::size_of::<RaidSpawnMobEvent>()),
22373 ("RaidSpawnSquad", std::mem::size_of::<RaidSpawnSquadEvent>()),
22374 ("NavBlocked", std::mem::size_of::<NavBlockedEvent>()),
22375 (
22376 "PathTrackPassed",
22377 std::mem::size_of::<PathTrackPassedEvent>(),
22378 ),
22379 (
22380 "NumCappersChanged",
22381 std::mem::size_of::<NumCappersChangedEvent>(),
22382 ),
22383 (
22384 "PlayerRegenerate",
22385 std::mem::size_of::<PlayerRegenerateEvent>(),
22386 ),
22387 (
22388 "UpdateStatusItem",
22389 std::mem::size_of::<UpdateStatusItemEvent>(),
22390 ),
22391 (
22392 "StatsResetRound",
22393 std::mem::size_of::<StatsResetRoundEvent>(),
22394 ),
22395 (
22396 "ScoreStatsAccumulatedUpdate",
22397 std::mem::size_of::<ScoreStatsAccumulatedUpdateEvent>(),
22398 ),
22399 (
22400 "ScoreStatsAccumulatedReset",
22401 std::mem::size_of::<ScoreStatsAccumulatedResetEvent>(),
22402 ),
22403 (
22404 "AchievementEarnedLocal",
22405 std::mem::size_of::<AchievementEarnedLocalEvent>(),
22406 ),
22407 ("PlayerHealed", std::mem::size_of::<PlayerHealedEvent>()),
22408 ("BuildingHealed", std::mem::size_of::<BuildingHealedEvent>()),
22409 ("ItemPickup", std::mem::size_of::<ItemPickupEvent>()),
22410 ("DuelStatus", std::mem::size_of::<DuelStatusEvent>()),
22411 ("FishNotice", std::mem::size_of::<FishNoticeEvent>()),
22412 ("FishNoticeArm", std::mem::size_of::<FishNoticeArmEvent>()),
22413 ("SlapNotice", std::mem::size_of::<SlapNoticeEvent>()),
22414 ("ThrowableHit", std::mem::size_of::<ThrowableHitEvent>()),
22415 (
22416 "PumpkinLordSummoned",
22417 std::mem::size_of::<PumpkinLordSummonedEvent>(),
22418 ),
22419 (
22420 "PumpkinLordKilled",
22421 std::mem::size_of::<PumpkinLordKilledEvent>(),
22422 ),
22423 (
22424 "MerasmusSummoned",
22425 std::mem::size_of::<MerasmusSummonedEvent>(),
22426 ),
22427 ("MerasmusKilled", std::mem::size_of::<MerasmusKilledEvent>()),
22428 (
22429 "MerasmusEscapeWarning",
22430 std::mem::size_of::<MerasmusEscapeWarningEvent>(),
22431 ),
22432 (
22433 "MerasmusEscaped",
22434 std::mem::size_of::<MerasmusEscapedEvent>(),
22435 ),
22436 (
22437 "EyeballBossSummoned",
22438 std::mem::size_of::<EyeballBossSummonedEvent>(),
22439 ),
22440 (
22441 "EyeballBossStunned",
22442 std::mem::size_of::<EyeballBossStunnedEvent>(),
22443 ),
22444 (
22445 "EyeballBossKilled",
22446 std::mem::size_of::<EyeballBossKilledEvent>(),
22447 ),
22448 (
22449 "EyeballBossKiller",
22450 std::mem::size_of::<EyeballBossKillerEvent>(),
22451 ),
22452 (
22453 "EyeballBossEscapeImminent",
22454 std::mem::size_of::<EyeballBossEscapeImminentEvent>(),
22455 ),
22456 (
22457 "EyeballBossEscaped",
22458 std::mem::size_of::<EyeballBossEscapedEvent>(),
22459 ),
22460 ("NpcHurt", std::mem::size_of::<NpcHurtEvent>()),
22461 (
22462 "ControlPointTimerUpdated",
22463 std::mem::size_of::<ControlPointTimerUpdatedEvent>(),
22464 ),
22465 (
22466 "PlayerHighFiveStart",
22467 std::mem::size_of::<PlayerHighFiveStartEvent>(),
22468 ),
22469 (
22470 "PlayerHighFiveCancel",
22471 std::mem::size_of::<PlayerHighFiveCancelEvent>(),
22472 ),
22473 (
22474 "PlayerHighFiveSuccess",
22475 std::mem::size_of::<PlayerHighFiveSuccessEvent>(),
22476 ),
22477 (
22478 "PlayerBonusPoints",
22479 std::mem::size_of::<PlayerBonusPointsEvent>(),
22480 ),
22481 ("PlayerUpgraded", std::mem::size_of::<PlayerUpgradedEvent>()),
22482 ("PlayerBuyback", std::mem::size_of::<PlayerBuybackEvent>()),
22483 (
22484 "PlayerUsedPowerUpBottle",
22485 std::mem::size_of::<PlayerUsedPowerUpBottleEvent>(),
22486 ),
22487 (
22488 "ChristmasGiftGrab",
22489 std::mem::size_of::<ChristmasGiftGrabEvent>(),
22490 ),
22491 (
22492 "PlayerKilledAchievementZone",
22493 std::mem::size_of::<PlayerKilledAchievementZoneEvent>(),
22494 ),
22495 ("PartyUpdated", std::mem::size_of::<PartyUpdatedEvent>()),
22496 (
22497 "PartyPrefChanged",
22498 std::mem::size_of::<PartyPrefChangedEvent>(),
22499 ),
22500 (
22501 "PartyCriteriaChanged",
22502 std::mem::size_of::<PartyCriteriaChangedEvent>(),
22503 ),
22504 (
22505 "PartyInvitesChanged",
22506 std::mem::size_of::<PartyInvitesChangedEvent>(),
22507 ),
22508 (
22509 "PartyQueueStateChanged",
22510 std::mem::size_of::<PartyQueueStateChangedEvent>(),
22511 ),
22512 ("PartyChat", std::mem::size_of::<PartyChatEvent>()),
22513 (
22514 "PartyMemberJoin",
22515 std::mem::size_of::<PartyMemberJoinEvent>(),
22516 ),
22517 (
22518 "PartyMemberLeave",
22519 std::mem::size_of::<PartyMemberLeaveEvent>(),
22520 ),
22521 (
22522 "MatchInvitesUpdated",
22523 std::mem::size_of::<MatchInvitesUpdatedEvent>(),
22524 ),
22525 ("LobbyUpdated", std::mem::size_of::<LobbyUpdatedEvent>()),
22526 (
22527 "MvmMissionUpdate",
22528 std::mem::size_of::<MvmMissionUpdateEvent>(),
22529 ),
22530 (
22531 "RecalculateHolidays",
22532 std::mem::size_of::<RecalculateHolidaysEvent>(),
22533 ),
22534 (
22535 "PlayerCurrencyChanged",
22536 std::mem::size_of::<PlayerCurrencyChangedEvent>(),
22537 ),
22538 (
22539 "DoomsdayRocketOpen",
22540 std::mem::size_of::<DoomsdayRocketOpenEvent>(),
22541 ),
22542 (
22543 "RemoveNemesisRelationships",
22544 std::mem::size_of::<RemoveNemesisRelationshipsEvent>(),
22545 ),
22546 (
22547 "MvmCreditBonusWave",
22548 std::mem::size_of::<MvmCreditBonusWaveEvent>(),
22549 ),
22550 (
22551 "MvmCreditBonusAll",
22552 std::mem::size_of::<MvmCreditBonusAllEvent>(),
22553 ),
22554 (
22555 "MvmCreditBonusAllAdvanced",
22556 std::mem::size_of::<MvmCreditBonusAllAdvancedEvent>(),
22557 ),
22558 (
22559 "MvmQuickSentryUpgrade",
22560 std::mem::size_of::<MvmQuickSentryUpgradeEvent>(),
22561 ),
22562 (
22563 "MvmTankDestroyedByPlayers",
22564 std::mem::size_of::<MvmTankDestroyedByPlayersEvent>(),
22565 ),
22566 (
22567 "MvmKillRobotDeliveringBomb",
22568 std::mem::size_of::<MvmKillRobotDeliveringBombEvent>(),
22569 ),
22570 (
22571 "MvmPickupCurrency",
22572 std::mem::size_of::<MvmPickupCurrencyEvent>(),
22573 ),
22574 (
22575 "MvmBombCarrierKilled",
22576 std::mem::size_of::<MvmBombCarrierKilledEvent>(),
22577 ),
22578 (
22579 "MvmSentryBusterDetonate",
22580 std::mem::size_of::<MvmSentryBusterDetonateEvent>(),
22581 ),
22582 (
22583 "MvmScoutMarkedForDeath",
22584 std::mem::size_of::<MvmScoutMarkedForDeathEvent>(),
22585 ),
22586 (
22587 "MvmMedicPowerUpShared",
22588 std::mem::size_of::<MvmMedicPowerUpSharedEvent>(),
22589 ),
22590 ("MvmBeginWave", std::mem::size_of::<MvmBeginWaveEvent>()),
22591 (
22592 "MvmWaveComplete",
22593 std::mem::size_of::<MvmWaveCompleteEvent>(),
22594 ),
22595 (
22596 "MvmMissionComplete",
22597 std::mem::size_of::<MvmMissionCompleteEvent>(),
22598 ),
22599 (
22600 "MvmBombResetByPlayer",
22601 std::mem::size_of::<MvmBombResetByPlayerEvent>(),
22602 ),
22603 (
22604 "MvmBombAlarmTriggered",
22605 std::mem::size_of::<MvmBombAlarmTriggeredEvent>(),
22606 ),
22607 (
22608 "MvmBombDeployResetByPlayer",
22609 std::mem::size_of::<MvmBombDeployResetByPlayerEvent>(),
22610 ),
22611 ("MvmWaveFailed", std::mem::size_of::<MvmWaveFailedEvent>()),
22612 ("MvmResetStats", std::mem::size_of::<MvmResetStatsEvent>()),
22613 ("DamageResisted", std::mem::size_of::<DamageResistedEvent>()),
22614 (
22615 "RevivePlayerNotify",
22616 std::mem::size_of::<RevivePlayerNotifyEvent>(),
22617 ),
22618 (
22619 "RevivePlayerStopped",
22620 std::mem::size_of::<RevivePlayerStoppedEvent>(),
22621 ),
22622 (
22623 "RevivePlayerComplete",
22624 std::mem::size_of::<RevivePlayerCompleteEvent>(),
22625 ),
22626 (
22627 "PlayerTurnedToGhost",
22628 std::mem::size_of::<PlayerTurnedToGhostEvent>(),
22629 ),
22630 (
22631 "MedigunShieldBlockedDamage",
22632 std::mem::size_of::<MedigunShieldBlockedDamageEvent>(),
22633 ),
22634 (
22635 "MvmAdvWaveCompleteNoGates",
22636 std::mem::size_of::<MvmAdvWaveCompleteNoGatesEvent>(),
22637 ),
22638 (
22639 "MvmSniperHeadshotCurrency",
22640 std::mem::size_of::<MvmSniperHeadshotCurrencyEvent>(),
22641 ),
22642 (
22643 "MvmMannhattanPit",
22644 std::mem::size_of::<MvmMannhattanPitEvent>(),
22645 ),
22646 (
22647 "FlagCarriedInDetectionZone",
22648 std::mem::size_of::<FlagCarriedInDetectionZoneEvent>(),
22649 ),
22650 (
22651 "MvmAdvWaveKilledStunRadio",
22652 std::mem::size_of::<MvmAdvWaveKilledStunRadioEvent>(),
22653 ),
22654 (
22655 "PlayerDirectHitStun",
22656 std::mem::size_of::<PlayerDirectHitStunEvent>(),
22657 ),
22658 (
22659 "MvmSentryBusterKilled",
22660 std::mem::size_of::<MvmSentryBusterKilledEvent>(),
22661 ),
22662 (
22663 "UpgradesFileChanged",
22664 std::mem::size_of::<UpgradesFileChangedEvent>(),
22665 ),
22666 (
22667 "RdTeamPointsChanged",
22668 std::mem::size_of::<RdTeamPointsChangedEvent>(),
22669 ),
22670 (
22671 "RdRulesStateChanged",
22672 std::mem::size_of::<RdRulesStateChangedEvent>(),
22673 ),
22674 ("RdRobotKilled", std::mem::size_of::<RdRobotKilledEvent>()),
22675 ("RdRobotImpact", std::mem::size_of::<RdRobotImpactEvent>()),
22676 (
22677 "TeamPlayPreRoundTimeLeft",
22678 std::mem::size_of::<TeamPlayPreRoundTimeLeftEvent>(),
22679 ),
22680 (
22681 "ParachuteDeploy",
22682 std::mem::size_of::<ParachuteDeployEvent>(),
22683 ),
22684 (
22685 "ParachuteHolster",
22686 std::mem::size_of::<ParachuteHolsterEvent>(),
22687 ),
22688 (
22689 "KillRefillsMeter",
22690 std::mem::size_of::<KillRefillsMeterEvent>(),
22691 ),
22692 ("RpsTauntEvent", std::mem::size_of::<RpsTauntEventEvent>()),
22693 ("CongaKill", std::mem::size_of::<CongaKillEvent>()),
22694 (
22695 "PlayerInitialSpawn",
22696 std::mem::size_of::<PlayerInitialSpawnEvent>(),
22697 ),
22698 (
22699 "CompetitiveVictory",
22700 std::mem::size_of::<CompetitiveVictoryEvent>(),
22701 ),
22702 (
22703 "CompetitiveStatsUpdate",
22704 std::mem::size_of::<CompetitiveStatsUpdateEvent>(),
22705 ),
22706 ("MiniGameWin", std::mem::size_of::<MiniGameWinEvent>()),
22707 (
22708 "SentryOnGoActive",
22709 std::mem::size_of::<SentryOnGoActiveEvent>(),
22710 ),
22711 ("DuckXpLevelUp", std::mem::size_of::<DuckXpLevelUpEvent>()),
22712 ("QuestLogOpened", std::mem::size_of::<QuestLogOpenedEvent>()),
22713 ("SchemaUpdated", std::mem::size_of::<SchemaUpdatedEvent>()),
22714 (
22715 "LocalPlayerPickupWeapon",
22716 std::mem::size_of::<LocalPlayerPickupWeaponEvent>(),
22717 ),
22718 (
22719 "RdPlayerScorePoints",
22720 std::mem::size_of::<RdPlayerScorePointsEvent>(),
22721 ),
22722 (
22723 "DemomanDetStickies",
22724 std::mem::size_of::<DemomanDetStickiesEvent>(),
22725 ),
22726 (
22727 "QuestObjectiveCompleted",
22728 std::mem::size_of::<QuestObjectiveCompletedEvent>(),
22729 ),
22730 (
22731 "PlayerScoreChanged",
22732 std::mem::size_of::<PlayerScoreChangedEvent>(),
22733 ),
22734 (
22735 "KilledCappingPlayer",
22736 std::mem::size_of::<KilledCappingPlayerEvent>(),
22737 ),
22738 (
22739 "EnvironmentalDeath",
22740 std::mem::size_of::<EnvironmentalDeathEvent>(),
22741 ),
22742 (
22743 "ProjectileDirectHit",
22744 std::mem::size_of::<ProjectileDirectHitEvent>(),
22745 ),
22746 ("PassGet", std::mem::size_of::<PassGetEvent>()),
22747 ("PassScore", std::mem::size_of::<PassScoreEvent>()),
22748 ("PassFree", std::mem::size_of::<PassFreeEvent>()),
22749 ("PassPassCaught", std::mem::size_of::<PassPassCaughtEvent>()),
22750 ("PassBallStolen", std::mem::size_of::<PassBallStolenEvent>()),
22751 (
22752 "PassBallBlocked",
22753 std::mem::size_of::<PassBallBlockedEvent>(),
22754 ),
22755 (
22756 "DamagePrevented",
22757 std::mem::size_of::<DamagePreventedEvent>(),
22758 ),
22759 (
22760 "HalloweenBossKilled",
22761 std::mem::size_of::<HalloweenBossKilledEvent>(),
22762 ),
22763 (
22764 "EscapedLootIsland",
22765 std::mem::size_of::<EscapedLootIslandEvent>(),
22766 ),
22767 (
22768 "TaggedPlayerAsIt",
22769 std::mem::size_of::<TaggedPlayerAsItEvent>(),
22770 ),
22771 (
22772 "MerasmusStunned",
22773 std::mem::size_of::<MerasmusStunnedEvent>(),
22774 ),
22775 (
22776 "MerasmusPropFound",
22777 std::mem::size_of::<MerasmusPropFoundEvent>(),
22778 ),
22779 (
22780 "HalloweenSkeletonKilled",
22781 std::mem::size_of::<HalloweenSkeletonKilledEvent>(),
22782 ),
22783 (
22784 "SkeletonKilledQuest",
22785 std::mem::size_of::<SkeletonKilledQuestEvent>(),
22786 ),
22787 (
22788 "SkeletonKingKilledQuest",
22789 std::mem::size_of::<SkeletonKingKilledQuestEvent>(),
22790 ),
22791 ("EscapeHell", std::mem::size_of::<EscapeHellEvent>()),
22792 (
22793 "CrossSpectralBridge",
22794 std::mem::size_of::<CrossSpectralBridgeEvent>(),
22795 ),
22796 ("MiniGameWon", std::mem::size_of::<MiniGameWonEvent>()),
22797 ("RespawnGhost", std::mem::size_of::<RespawnGhostEvent>()),
22798 ("KillInHell", std::mem::size_of::<KillInHellEvent>()),
22799 (
22800 "HalloweenDuckCollected",
22801 std::mem::size_of::<HalloweenDuckCollectedEvent>(),
22802 ),
22803 ("SpecialScore", std::mem::size_of::<SpecialScoreEvent>()),
22804 (
22805 "TeamLeaderKilled",
22806 std::mem::size_of::<TeamLeaderKilledEvent>(),
22807 ),
22808 (
22809 "HalloweenSoulCollected",
22810 std::mem::size_of::<HalloweenSoulCollectedEvent>(),
22811 ),
22812 (
22813 "RecalculateTruce",
22814 std::mem::size_of::<RecalculateTruceEvent>(),
22815 ),
22816 (
22817 "DeadRingerCheatDeath",
22818 std::mem::size_of::<DeadRingerCheatDeathEvent>(),
22819 ),
22820 ("CrossbowHeal", std::mem::size_of::<CrossbowHealEvent>()),
22821 (
22822 "DamageMitigated",
22823 std::mem::size_of::<DamageMitigatedEvent>(),
22824 ),
22825 ("PayloadPushed", std::mem::size_of::<PayloadPushedEvent>()),
22826 (
22827 "PlayerAbandonedMatch",
22828 std::mem::size_of::<PlayerAbandonedMatchEvent>(),
22829 ),
22830 ("ClDrawline", std::mem::size_of::<ClDrawlineEvent>()),
22831 (
22832 "RestartTimerTime",
22833 std::mem::size_of::<RestartTimerTimeEvent>(),
22834 ),
22835 (
22836 "WinLimitChanged",
22837 std::mem::size_of::<WinLimitChangedEvent>(),
22838 ),
22839 (
22840 "WinPanelShowScores",
22841 std::mem::size_of::<WinPanelShowScoresEvent>(),
22842 ),
22843 (
22844 "TopStreamsRequestFinished",
22845 std::mem::size_of::<TopStreamsRequestFinishedEvent>(),
22846 ),
22847 (
22848 "CompetitiveStateChanged",
22849 std::mem::size_of::<CompetitiveStateChangedEvent>(),
22850 ),
22851 (
22852 "GlobalWarDataUpdated",
22853 std::mem::size_of::<GlobalWarDataUpdatedEvent>(),
22854 ),
22855 (
22856 "StopWatchChanged",
22857 std::mem::size_of::<StopWatchChangedEvent>(),
22858 ),
22859 ("DsStop", std::mem::size_of::<DsStopEvent>()),
22860 ("DsScreenshot", std::mem::size_of::<DsScreenshotEvent>()),
22861 (
22862 "ShowMatchSummary",
22863 std::mem::size_of::<ShowMatchSummaryEvent>(),
22864 ),
22865 (
22866 "ExperienceChanged",
22867 std::mem::size_of::<ExperienceChangedEvent>(),
22868 ),
22869 ("BeginXpLerp", std::mem::size_of::<BeginXpLerpEvent>()),
22870 (
22871 "MatchmakerStatsUpdated",
22872 std::mem::size_of::<MatchmakerStatsUpdatedEvent>(),
22873 ),
22874 (
22875 "RematchVotePeriodOver",
22876 std::mem::size_of::<RematchVotePeriodOverEvent>(),
22877 ),
22878 (
22879 "RematchFailedToCreate",
22880 std::mem::size_of::<RematchFailedToCreateEvent>(),
22881 ),
22882 (
22883 "PlayerRematchChange",
22884 std::mem::size_of::<PlayerRematchChangeEvent>(),
22885 ),
22886 ("PingUpdated", std::mem::size_of::<PingUpdatedEvent>()),
22887 ("MMStatsUpdated", std::mem::size_of::<MMStatsUpdatedEvent>()),
22888 (
22889 "PlayerNextMapVoteChange",
22890 std::mem::size_of::<PlayerNextMapVoteChangeEvent>(),
22891 ),
22892 (
22893 "VoteMapsChanged",
22894 std::mem::size_of::<VoteMapsChangedEvent>(),
22895 ),
22896 (
22897 "ProtoDefChanged",
22898 std::mem::size_of::<ProtoDefChangedEvent>(),
22899 ),
22900 (
22901 "PlayerDomination",
22902 std::mem::size_of::<PlayerDominationEvent>(),
22903 ),
22904 (
22905 "PlayerRocketPackPushed",
22906 std::mem::size_of::<PlayerRocketPackPushedEvent>(),
22907 ),
22908 ("QuestRequest", std::mem::size_of::<QuestRequestEvent>()),
22909 ("QuestResponse", std::mem::size_of::<QuestResponseEvent>()),
22910 ("QuestProgress", std::mem::size_of::<QuestProgressEvent>()),
22911 (
22912 "ProjectileRemoved",
22913 std::mem::size_of::<ProjectileRemovedEvent>(),
22914 ),
22915 (
22916 "QuestMapDataChanged",
22917 std::mem::size_of::<QuestMapDataChangedEvent>(),
22918 ),
22919 (
22920 "GasDousedPlayerIgnited",
22921 std::mem::size_of::<GasDousedPlayerIgnitedEvent>(),
22922 ),
22923 (
22924 "QuestTurnInState",
22925 std::mem::size_of::<QuestTurnInStateEvent>(),
22926 ),
22927 (
22928 "ItemsAcknowledged",
22929 std::mem::size_of::<ItemsAcknowledgedEvent>(),
22930 ),
22931 ("CapperKilled", std::mem::size_of::<CapperKilledEvent>()),
22932 (
22933 "MainMenuStabilized",
22934 std::mem::size_of::<MainMenuStabilizedEvent>(),
22935 ),
22936 (
22937 "WorldStatusChanged",
22938 std::mem::size_of::<WorldStatusChangedEvent>(),
22939 ),
22940 ("HLTVStatus", std::mem::size_of::<HLTVStatusEvent>()),
22941 ("HLTVCameraman", std::mem::size_of::<HLTVCameramanEvent>()),
22942 ("HLTVRankCamera", std::mem::size_of::<HLTVRankCameraEvent>()),
22943 ("HLTVRankEntity", std::mem::size_of::<HLTVRankEntityEvent>()),
22944 ("HLTVFixed", std::mem::size_of::<HLTVFixedEvent>()),
22945 ("HLTVChase", std::mem::size_of::<HLTVChaseEvent>()),
22946 ("HLTVMessage", std::mem::size_of::<HLTVMessageEvent>()),
22947 ("HLTVTitle", std::mem::size_of::<HLTVTitleEvent>()),
22948 ("HLTVChat", std::mem::size_of::<HLTVChatEvent>()),
22949 (
22950 "ReplayStartRecord",
22951 std::mem::size_of::<ReplayStartRecordEvent>(),
22952 ),
22953 (
22954 "ReplaySessionInfo",
22955 std::mem::size_of::<ReplaySessionInfoEvent>(),
22956 ),
22957 (
22958 "ReplayEndRecord",
22959 std::mem::size_of::<ReplayEndRecordEvent>(),
22960 ),
22961 (
22962 "ReplayReplaysAvailable",
22963 std::mem::size_of::<ReplayReplaysAvailableEvent>(),
22964 ),
22965 (
22966 "ReplayServerError",
22967 std::mem::size_of::<ReplayServerErrorEvent>(),
22968 ),
22969 ]
22970 .iter()
22971 .copied()
22972 .collect()
22973}