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

add GameEventType::as_str

This commit is contained in:
Robin Appelman 2021-07-16 21:51:48 +02:00
commit b517df0e57
5 changed files with 9923 additions and 53 deletions

105
codegen/Cargo.lock generated
View file

@ -1,5 +1,7 @@
# This file is automatically @generated by Cargo. # This file is automatically @generated by Cargo.
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3
[[package]] [[package]]
name = "Inflector" name = "Inflector"
version = "0.11.4" version = "0.11.4"
@ -8,9 +10,9 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "0.7.15" version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -84,9 +86,9 @@ dependencies = [
[[package]] [[package]]
name = "bitbuffer" name = "bitbuffer"
version = "0.8.1" version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ec331c3602bf9f2fde16a85cb3ddf13219f9653ee55c18948ff4418c85cfbb0" checksum = "3e73a154e33cb38a0561f1ba4677c66f2dfd7db72300e49d81ab3125f54a6a01"
dependencies = [ dependencies = [
"bitbuffer_derive", "bitbuffer_derive",
"err-derive", "err-derive",
@ -96,9 +98,9 @@ dependencies = [
[[package]] [[package]]
name = "bitbuffer_derive" name = "bitbuffer_derive"
version = "0.8.0" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f51dcbe693d21078994abd2afac5adc9bcc80fbdf80206ebdb33fec4a145693" checksum = "175ef08d15b205e940949b6005da842e81707a2ea3eb1b079294ef2e89c778e1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -123,12 +125,6 @@ dependencies = [
"constant_time_eq", "constant_time_eq",
] ]
[[package]]
name = "byteorder"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.66" version = "1.0.66"
@ -218,18 +214,18 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]] [[package]]
name = "enumflags2" name = "enumflags2"
version = "0.6.4" version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" checksum = "a8672257d642ffdd235f6e9c723c2326ac1253c8f3c022e7cfd2e57da55b1131"
dependencies = [ dependencies = [
"enumflags2_derive", "enumflags2_derive",
] ]
[[package]] [[package]]
name = "enumflags2_derive" name = "enumflags2_derive"
version = "0.6.4" version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" checksum = "33526f770a27828ce7c2792fdb7cb240220237e0ff12933ed6c23957fc5dd7cf"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -238,9 +234,9 @@ dependencies = [
[[package]] [[package]]
name = "err-derive" name = "err-derive"
version = "0.2.4" version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22deed3a8124cff5fa835713fa105621e43bbdc46690c3a6b68328a012d350d4" checksum = "dcc7f65832b62ed38939f98966824eb6294911c3629b0e9a262bfb80836d9686"
dependencies = [ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
@ -331,9 +327,9 @@ checksum = "bb63bb1e282e0b6aba0addb1f0e87cb5181ea68142b2dfd21ba108f8e8088a64"
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.3.4" version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
[[package]] [[package]]
name = "num-traits" name = "num-traits"
@ -368,9 +364,9 @@ dependencies = [
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.5.2" version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
[[package]] [[package]]
name = "parking_lot" name = "parking_lot"
@ -399,9 +395,9 @@ dependencies = [
[[package]] [[package]]
name = "parse-display" name = "parse-display"
version = "0.4.1" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7271152b3c46c07c729698e7a5248e2744466b3446d222c97a0b1315925a97b1" checksum = "8f17011e14e6b831ed3aeab847a62fd338aee88539fcc99f23ce5ba98feba328"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"parse-display-derive", "parse-display-derive",
@ -410,15 +406,16 @@ dependencies = [
[[package]] [[package]]
name = "parse-display-derive" name = "parse-display-derive"
version = "0.4.1" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6a9f3e41b237b77c99c09686481c235964ff5878229412b226c451f3e809f4f" checksum = "ad30302271e65d661910580baf25e874cd92c4595ddbed74d1ec9b2fdfaae64b"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"proc-macro2", "proc-macro2",
"quote", "quote",
"regex", "regex",
"regex-syntax", "regex-syntax",
"structmeta",
"syn", "syn",
] ]
@ -463,9 +460,9 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.24" version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
dependencies = [ dependencies = [
"unicode-xid", "unicode-xid",
] ]
@ -547,21 +544,20 @@ dependencies = [
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.4.3" version = "1.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
"regex-syntax", "regex-syntax",
"thread_local",
] ]
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.6.22" version = "0.6.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
[[package]] [[package]]
name = "remove_dir_all" name = "remove_dir_all"
@ -682,19 +678,38 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
[[package]] [[package]]
name = "snap" name = "snap"
version = "0.2.5" version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95d697d63d44ad8b78b8d235bf85b34022a78af292c8918527c5f0cffdde7f43" checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451"
[[package]]
name = "structmeta"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b55b4052fd036e3d1fe74ea978426a3f87997ba803e7a8e69ff0cf99f35a720a"
dependencies = [ dependencies = [
"byteorder", "proc-macro2",
"lazy_static", "quote",
"structmeta-derive",
"syn",
]
[[package]]
name = "structmeta-derive"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f55502dda4b5fd26b33f6810d7493b4f5d7859bca604bd07ff22a523cd257ee"
dependencies = [
"proc-macro2",
"quote",
"syn",
] ]
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.60" version = "1.0.73"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -749,7 +764,7 @@ dependencies = [
[[package]] [[package]]
name = "tf-demo-parser" name = "tf-demo-parser"
version = "0.2.1" version = "0.2.6"
dependencies = [ dependencies = [
"bitbuffer", "bitbuffer",
"enumflags2", "enumflags2",
@ -771,6 +786,7 @@ version = "0.2.0"
dependencies = [ dependencies = [
"Inflector", "Inflector",
"better-panic", "better-panic",
"fnv",
"lazy_static", "lazy_static",
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -779,15 +795,6 @@ dependencies = [
"toolchain_find", "toolchain_find",
] ]
[[package]]
name = "thread_local"
version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd"
dependencies = [
"once_cell",
]
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.5.8" version = "0.5.8"

View file

@ -9,7 +9,7 @@ name = "generate"
path = "src/main.rs" path = "src/main.rs"
[dependencies] [dependencies]
tf-demo-parser = { version = "0.2", path = "../" } tf-demo-parser = { version = "*", path = "../" }
quote = "1.0" quote = "1.0"
Inflector = { version = "0.11", default-features = false } Inflector = { version = "0.11", default-features = false }
better-panic = "0.1" better-panic = "0.1"
@ -17,3 +17,4 @@ proc-macro2 = "1.0"
tempfile = "3.0" tempfile = "3.0"
toolchain_find = "0.1" toolchain_find = "0.1"
lazy_static = "1.3" lazy_static = "1.3"
fnv = "1"

9443
codegen/out.rs Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,10 @@
extern crate proc_macro; extern crate proc_macro;
use fnv::FnvHashMap;
use inflector::Inflector; use inflector::Inflector;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use proc_macro2::{Ident, Literal, Span, TokenStream}; use proc_macro2::{Ident, Literal, Span, TokenStream};
use quote::quote; use quote::quote;
use std::collections::hash_map::HashMap;
use tf_demo_parser::demo::gameevent_gen::get_sizes; use tf_demo_parser::demo::gameevent_gen::get_sizes;
use tf_demo_parser::demo::gamevent::{GameEventDefinition, GameEventValueType}; use tf_demo_parser::demo::gamevent::{GameEventDefinition, GameEventValueType};
use tf_demo_parser::demo::parser::MessageHandler; use tf_demo_parser::demo::parser::MessageHandler;
@ -27,7 +27,7 @@ impl MessageHandler for GameEventAnalyser {
fn should_box_event(name: &str) -> bool { fn should_box_event(name: &str) -> bool {
lazy_static! { lazy_static! {
static ref SIZES: HashMap<&'static str, usize> = get_sizes(); static ref SIZES: FnvHashMap<&'static str, usize> = get_sizes();
} }
SIZES.get(name).cloned().unwrap_or_default() > 120 SIZES.get(name).cloned().unwrap_or_default() > 120
@ -308,6 +308,13 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
quote!(#name_str => GameEventType::#variant_name,) quote!(#name_str => GameEventType::#variant_name,)
}); });
let type_to_names = events.iter().map(|event| {
let name_str = &event.name;
let variant_name = Ident::new(&get_event_name(&name_str), span);
quote!(GameEventType::#variant_name => #name_str,)
});
let from_raw_events = events.iter().map(|event| { let from_raw_events = events.iter().map(|event| {
let name = get_event_name(&event.name); let name = get_event_name(&event.name);
let variant_name = Ident::new(&name, span); let variant_name = Ident::new(&name, span);
@ -361,6 +368,12 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
_ => GameEventType::Unknown, _ => GameEventType::Unknown,
} }
} }
pub fn as_str(&self) -> &'static str {
match self {
#(#type_to_names)*
GameEventType::Unknown => "unknown",
}
}
} }
impl GameEvent { impl GameEvent {

View file

@ -6635,6 +6635,412 @@ impl GameEventType {
_ => GameEventType::Unknown, _ => GameEventType::Unknown,
} }
} }
pub fn as_str(&self) -> &'static str {
match self {
GameEventType::ServerSpawn => "server_spawn",
GameEventType::ServerChangeLevelFailed => "server_changelevel_failed",
GameEventType::ServerShutdown => "server_shutdown",
GameEventType::ServerCvar => "server_cvar",
GameEventType::ServerMessage => "server_message",
GameEventType::ServerAddBan => "server_addban",
GameEventType::ServerRemoveBan => "server_removeban",
GameEventType::PlayerConnect => "player_connect",
GameEventType::PlayerConnectClient => "player_connect_client",
GameEventType::PlayerInfo => "player_info",
GameEventType::PlayerDisconnect => "player_disconnect",
GameEventType::PlayerActivate => "player_activate",
GameEventType::PlayerSay => "player_say",
GameEventType::ClientDisconnect => "client_disconnect",
GameEventType::ClientBeginConnect => "client_beginconnect",
GameEventType::ClientConnected => "client_connected",
GameEventType::ClientFullConnect => "client_fullconnect",
GameEventType::HostQuit => "host_quit",
GameEventType::TeamInfo => "team_info",
GameEventType::TeamScore => "team_score",
GameEventType::TeamPlayBroadcastAudio => "teamplay_broadcast_audio",
GameEventType::PlayerTeam => "player_team",
GameEventType::PlayerClass => "player_class",
GameEventType::PlayerDeath => "player_death",
GameEventType::PlayerHurt => "player_hurt",
GameEventType::PlayerChat => "player_chat",
GameEventType::PlayerScore => "player_score",
GameEventType::PlayerSpawn => "player_spawn",
GameEventType::PlayerShoot => "player_shoot",
GameEventType::PlayerUse => "player_use",
GameEventType::PlayerChangeName => "player_changename",
GameEventType::PlayerHintMessage => "player_hintmessage",
GameEventType::BasePlayerTeleported => "base_player_teleported",
GameEventType::GameInit => "game_init",
GameEventType::GameNewMap => "game_newmap",
GameEventType::GameStart => "game_start",
GameEventType::GameEnd => "game_end",
GameEventType::RoundStart => "round_start",
GameEventType::RoundEnd => "round_end",
GameEventType::GameMessage => "game_message",
GameEventType::BreakBreakable => "break_breakable",
GameEventType::BreakProp => "break_prop",
GameEventType::EntityKilled => "entity_killed",
GameEventType::BonusUpdated => "bonus_updated",
GameEventType::AchievementEvent => "achievement_event",
GameEventType::AchievementIncrement => "achievement_increment",
GameEventType::PhysgunPickup => "physgun_pickup",
GameEventType::FlareIgniteNpc => "flare_ignite_npc",
GameEventType::HelicopterGrenadePuntMiss => "helicopter_grenade_punt_miss",
GameEventType::UserDataDownloaded => "user_data_downloaded",
GameEventType::RagdollDissolved => "ragdoll_dissolved",
GameEventType::HLTVChangedMode => "hltv_changed_mode",
GameEventType::HLTVChangedTarget => "hltv_changed_target",
GameEventType::VoteEnded => "vote_ended",
GameEventType::VoteStarted => "vote_started",
GameEventType::VoteChanged => "vote_changed",
GameEventType::VotePassed => "vote_passed",
GameEventType::VoteFailed => "vote_failed",
GameEventType::VoteCast => "vote_cast",
GameEventType::VoteOptions => "vote_options",
GameEventType::ReplaySaved => "replay_saved",
GameEventType::EnteredPerformanceMode => "entered_performance_mode",
GameEventType::BrowseReplays => "browse_replays",
GameEventType::ReplayYoutubeStats => "replay_youtube_stats",
GameEventType::InventoryUpdated => "inventory_updated",
GameEventType::CartUpdated => "cart_updated",
GameEventType::StorePriceSheetUpdated => "store_pricesheet_updated",
GameEventType::EconInventoryConnected => "econ_inventory_connected",
GameEventType::ItemSchemaInitialized => "item_schema_initialized",
GameEventType::GcNewSession => "gc_new_session",
GameEventType::GcLostSession => "gc_lost_session",
GameEventType::IntroFinish => "intro_finish",
GameEventType::IntroNextCamera => "intro_nextcamera",
GameEventType::PlayerChangeClass => "player_changeclass",
GameEventType::TfMapTimeRemaining => "tf_map_time_remaining",
GameEventType::TfGameOver => "tf_game_over",
GameEventType::CtfFlagCaptured => "ctf_flag_captured",
GameEventType::ControlPointInitialized => "controlpoint_initialized",
GameEventType::ControlPointUpdateImages => "controlpoint_updateimages",
GameEventType::ControlPointUpdateLayout => "controlpoint_updatelayout",
GameEventType::ControlPointUpdateCapping => "controlpoint_updatecapping",
GameEventType::ControlPointUpdateOwner => "controlpoint_updateowner",
GameEventType::ControlPointStartTouch => "controlpoint_starttouch",
GameEventType::ControlPointEndTouch => "controlpoint_endtouch",
GameEventType::ControlPointPulseElement => "controlpoint_pulse_element",
GameEventType::ControlPointFakeCapture => "controlpoint_fake_capture",
GameEventType::ControlPointFakeCaptureMultiplier => "controlpoint_fake_capture_mult",
GameEventType::TeamPlayRoundSelected => "teamplay_round_selected",
GameEventType::TeamPlayRoundStart => "teamplay_round_start",
GameEventType::TeamPlayRoundActive => "teamplay_round_active",
GameEventType::TeamPlayWaitingBegins => "teamplay_waiting_begins",
GameEventType::TeamPlayWaitingEnds => "teamplay_waiting_ends",
GameEventType::TeamPlayWaitingAboutToEnd => "teamplay_waiting_abouttoend",
GameEventType::TeamPlayRestartRound => "teamplay_restart_round",
GameEventType::TeamPlayReadyRestart => "teamplay_ready_restart",
GameEventType::TeamPlayRoundRestartSeconds => "teamplay_round_restart_seconds",
GameEventType::TeamPlayTeamReady => "teamplay_team_ready",
GameEventType::TeamPlayRoundWin => "teamplay_round_win",
GameEventType::TeamPlayUpdateTimer => "teamplay_update_timer",
GameEventType::TeamPlayRoundStalemate => "teamplay_round_stalemate",
GameEventType::TeamPlayOvertimeBegin => "teamplay_overtime_begin",
GameEventType::TeamPlayOvertimeEnd => "teamplay_overtime_end",
GameEventType::TeamPlaySuddenDeathBegin => "teamplay_suddendeath_begin",
GameEventType::TeamPlaySuddenDeathEnd => "teamplay_suddendeath_end",
GameEventType::TeamPlayGameOver => "teamplay_game_over",
GameEventType::TeamPlayMapTimeRemaining => "teamplay_map_time_remaining",
GameEventType::TeamPlayTimerFlash => "teamplay_timer_flash",
GameEventType::TeamPlayTimerTimeAdded => "teamplay_timer_time_added",
GameEventType::TeamPlayPointStartCapture => "teamplay_point_startcapture",
GameEventType::TeamPlayPointCaptured => "teamplay_point_captured",
GameEventType::TeamPlayPointLocked => "teamplay_point_locked",
GameEventType::TeamPlayPointUnlocked => "teamplay_point_unlocked",
GameEventType::TeamPlayCaptureBroken => "teamplay_capture_broken",
GameEventType::TeamPlayCaptureBlocked => "teamplay_capture_blocked",
GameEventType::TeamPlayFlagEvent => "teamplay_flag_event",
GameEventType::TeamPlayWinPanel => "teamplay_win_panel",
GameEventType::TeamPlayTeamBalancedPlayer => "teamplay_teambalanced_player",
GameEventType::TeamPlaySetupFinished => "teamplay_setup_finished",
GameEventType::TeamPlayAlert => "teamplay_alert",
GameEventType::TrainingComplete => "training_complete",
GameEventType::ShowFreezePanel => "show_freezepanel",
GameEventType::HideFreezePanel => "hide_freezepanel",
GameEventType::FreezeCamStarted => "freezecam_started",
GameEventType::LocalPlayerChangeTeam => "localplayer_changeteam",
GameEventType::LocalPlayerScoreChanged => "localplayer_score_changed",
GameEventType::LocalPlayerChangeClass => "localplayer_changeclass",
GameEventType::LocalPlayerRespawn => "localplayer_respawn",
GameEventType::BuildingInfoChanged => "building_info_changed",
GameEventType::LocalPlayerChangeDisguise => "localplayer_changedisguise",
GameEventType::PlayerAccountChanged => "player_account_changed",
GameEventType::SpyPdaReset => "spy_pda_reset",
GameEventType::FlagStatusUpdate => "flagstatus_update",
GameEventType::PlayerStatsUpdated => "player_stats_updated",
GameEventType::PlayingCommentary => "playing_commentary",
GameEventType::PlayerChargeDeployed => "player_chargedeployed",
GameEventType::PlayerBuiltObject => "player_builtobject",
GameEventType::PlayerUpgradedObject => "player_upgradedobject",
GameEventType::PlayerCarryObject => "player_carryobject",
GameEventType::PlayerDropObject => "player_dropobject",
GameEventType::ObjectRemoved => "object_removed",
GameEventType::ObjectDestroyed => "object_destroyed",
GameEventType::ObjectDetonated => "object_detonated",
GameEventType::AchievementEarned => "achievement_earned",
GameEventType::SpecTargetUpdated => "spec_target_updated",
GameEventType::TournamentStateUpdate => "tournament_stateupdate",
GameEventType::TournamentEnableCountdown => "tournament_enablecountdown",
GameEventType::PlayerCalledForMedic => "player_calledformedic",
GameEventType::PlayerAskedForBall => "player_askedforball",
GameEventType::LocalPlayerBecameObserver => "localplayer_becameobserver",
GameEventType::PlayerIgnitedInv => "player_ignited_inv",
GameEventType::PlayerIgnited => "player_ignited",
GameEventType::PlayerExtinguished => "player_extinguished",
GameEventType::PlayerTeleported => "player_teleported",
GameEventType::PlayerHealedMedicCall => "player_healedmediccall",
GameEventType::LocalPlayerChargeReady => "localplayer_chargeready",
GameEventType::LocalPlayerWindDown => "localplayer_winddown",
GameEventType::PlayerInvulned => "player_invulned",
GameEventType::EscortSpeed => "escort_speed",
GameEventType::EscortProgress => "escort_progress",
GameEventType::EscortRecede => "escort_recede",
GameEventType::GameUIActivated => "gameui_activated",
GameEventType::GameUIHidden => "gameui_hidden",
GameEventType::PlayerEscortScore => "player_escort_score",
GameEventType::PlayerHealOnHit => "player_healonhit",
GameEventType::PlayerStealSandvich => "player_stealsandvich",
GameEventType::ShowClassLayout => "show_class_layout",
GameEventType::ShowVsPanel => "show_vs_panel",
GameEventType::PlayerDamaged => "player_damaged",
GameEventType::ArenaPlayerNotification => "arena_player_notification",
GameEventType::ArenaMatchMaxStreak => "arena_match_maxstreak",
GameEventType::ArenaRoundStart => "arena_round_start",
GameEventType::ArenaWinPanel => "arena_win_panel",
GameEventType::PveWinPanel => "pve_win_panel",
GameEventType::AirDash => "air_dash",
GameEventType::Landed => "landed",
GameEventType::PlayerDamageDodged => "player_damage_dodged",
GameEventType::PlayerStunned => "player_stunned",
GameEventType::ScoutGrandSlam => "scout_grand_slam",
GameEventType::ScoutSlamdollLanded => "scout_slamdoll_landed",
GameEventType::ArrowImpact => "arrow_impact",
GameEventType::PlayerJarated => "player_jarated",
GameEventType::PlayerJaratedFade => "player_jarated_fade",
GameEventType::PlayerShieldBlocked => "player_shield_blocked",
GameEventType::PlayerPinned => "player_pinned",
GameEventType::PlayerHealedByMedic => "player_healedbymedic",
GameEventType::PlayerSappedObject => "player_sapped_object",
GameEventType::ItemFound => "item_found",
GameEventType::ShowAnnotation => "show_annotation",
GameEventType::HideAnnotation => "hide_annotation",
GameEventType::PostInventoryApplication => "post_inventory_application",
GameEventType::ControlPointUnlockUpdated => "controlpoint_unlock_updated",
GameEventType::DeployBuffBanner => "deploy_buff_banner",
GameEventType::PlayerBuff => "player_buff",
GameEventType::MedicDeath => "medic_death",
GameEventType::OvertimeNag => "overtime_nag",
GameEventType::TeamsChanged => "teams_changed",
GameEventType::HalloweenPumpkinGrab => "halloween_pumpkin_grab",
GameEventType::RocketJump => "rocket_jump",
GameEventType::RocketJumpLanded => "rocket_jump_landed",
GameEventType::StickyJump => "sticky_jump",
GameEventType::StickyJumpLanded => "sticky_jump_landed",
GameEventType::RocketPackLaunch => "rocketpack_launch",
GameEventType::RocketPackLanded => "rocketpack_landed",
GameEventType::MedicDefended => "medic_defended",
GameEventType::LocalPlayerHealed => "localplayer_healed",
GameEventType::PlayerDestroyedPipeBomb => "player_destroyed_pipebomb",
GameEventType::ObjectDeflected => "object_deflected",
GameEventType::PlayerMvp => "player_mvp",
GameEventType::RaidSpawnMob => "raid_spawn_mob",
GameEventType::RaidSpawnSquad => "raid_spawn_squad",
GameEventType::NavBlocked => "nav_blocked",
GameEventType::PathTrackPassed => "path_track_passed",
GameEventType::NumCappersChanged => "num_cappers_changed",
GameEventType::PlayerRegenerate => "player_regenerate",
GameEventType::UpdateStatusItem => "update_status_item",
GameEventType::StatsResetRound => "stats_resetround",
GameEventType::ScoreStatsAccumulatedUpdate => "scorestats_accumulated_update",
GameEventType::ScoreStatsAccumulatedReset => "scorestats_accumulated_reset",
GameEventType::AchievementEarnedLocal => "achievement_earned_local",
GameEventType::PlayerHealed => "player_healed",
GameEventType::BuildingHealed => "building_healed",
GameEventType::ItemPickup => "item_pickup",
GameEventType::DuelStatus => "duel_status",
GameEventType::FishNotice => "fish_notice",
GameEventType::FishNoticeArm => "fish_notice__arm",
GameEventType::SlapNotice => "slap_notice",
GameEventType::ThrowableHit => "throwable_hit",
GameEventType::PumpkinLordSummoned => "pumpkin_lord_summoned",
GameEventType::PumpkinLordKilled => "pumpkin_lord_killed",
GameEventType::MerasmusSummoned => "merasmus_summoned",
GameEventType::MerasmusKilled => "merasmus_killed",
GameEventType::MerasmusEscapeWarning => "merasmus_escape_warning",
GameEventType::MerasmusEscaped => "merasmus_escaped",
GameEventType::EyeballBossSummoned => "eyeball_boss_summoned",
GameEventType::EyeballBossStunned => "eyeball_boss_stunned",
GameEventType::EyeballBossKilled => "eyeball_boss_killed",
GameEventType::EyeballBossKiller => "eyeball_boss_killer",
GameEventType::EyeballBossEscapeImminent => "eyeball_boss_escape_imminent",
GameEventType::EyeballBossEscaped => "eyeball_boss_escaped",
GameEventType::NpcHurt => "npc_hurt",
GameEventType::ControlPointTimerUpdated => "controlpoint_timer_updated",
GameEventType::PlayerHighFiveStart => "player_highfive_start",
GameEventType::PlayerHighFiveCancel => "player_highfive_cancel",
GameEventType::PlayerHighFiveSuccess => "player_highfive_success",
GameEventType::PlayerBonusPoints => "player_bonuspoints",
GameEventType::PlayerUpgraded => "player_upgraded",
GameEventType::PlayerBuyback => "player_buyback",
GameEventType::PlayerUsedPowerUpBottle => "player_used_powerup_bottle",
GameEventType::ChristmasGiftGrab => "christmas_gift_grab",
GameEventType::PlayerKilledAchievementZone => "player_killed_achievement_zone",
GameEventType::PartyUpdated => "party_updated",
GameEventType::PartyPrefChanged => "party_pref_changed",
GameEventType::PartyCriteriaChanged => "party_criteria_changed",
GameEventType::PartyInvitesChanged => "party_invites_changed",
GameEventType::PartyQueueStateChanged => "party_queue_state_changed",
GameEventType::PartyChat => "party_chat",
GameEventType::PartyMemberJoin => "party_member_join",
GameEventType::PartyMemberLeave => "party_member_leave",
GameEventType::MatchInvitesUpdated => "match_invites_updated",
GameEventType::LobbyUpdated => "lobby_updated",
GameEventType::MvmMissionUpdate => "mvm_mission_update",
GameEventType::RecalculateHolidays => "recalculate_holidays",
GameEventType::PlayerCurrencyChanged => "player_currency_changed",
GameEventType::DoomsdayRocketOpen => "doomsday_rocket_open",
GameEventType::RemoveNemesisRelationships => "remove_nemesis_relationships",
GameEventType::MvmCreditBonusWave => "mvm_creditbonus_wave",
GameEventType::MvmCreditBonusAll => "mvm_creditbonus_all",
GameEventType::MvmCreditBonusAllAdvanced => "mvm_creditbonus_all_advanced",
GameEventType::MvmQuickSentryUpgrade => "mvm_quick_sentry_upgrade",
GameEventType::MvmTankDestroyedByPlayers => "mvm_tank_destroyed_by_players",
GameEventType::MvmKillRobotDeliveringBomb => "mvm_kill_robot_delivering_bomb",
GameEventType::MvmPickupCurrency => "mvm_pickup_currency",
GameEventType::MvmBombCarrierKilled => "mvm_bomb_carrier_killed",
GameEventType::MvmSentryBusterDetonate => "mvm_sentrybuster_detonate",
GameEventType::MvmScoutMarkedForDeath => "mvm_scout_marked_for_death",
GameEventType::MvmMedicPowerUpShared => "mvm_medic_powerup_shared",
GameEventType::MvmBeginWave => "mvm_begin_wave",
GameEventType::MvmWaveComplete => "mvm_wave_complete",
GameEventType::MvmMissionComplete => "mvm_mission_complete",
GameEventType::MvmBombResetByPlayer => "mvm_bomb_reset_by_player",
GameEventType::MvmBombAlarmTriggered => "mvm_bomb_alarm_triggered",
GameEventType::MvmBombDeployResetByPlayer => "mvm_bomb_deploy_reset_by_player",
GameEventType::MvmWaveFailed => "mvm_wave_failed",
GameEventType::MvmResetStats => "mvm_reset_stats",
GameEventType::DamageResisted => "damage_resisted",
GameEventType::RevivePlayerNotify => "revive_player_notify",
GameEventType::RevivePlayerStopped => "revive_player_stopped",
GameEventType::RevivePlayerComplete => "revive_player_complete",
GameEventType::PlayerTurnedToGhost => "player_turned_to_ghost",
GameEventType::MedigunShieldBlockedDamage => "medigun_shield_blocked_damage",
GameEventType::MvmAdvWaveCompleteNoGates => "mvm_adv_wave_complete_no_gates",
GameEventType::MvmSniperHeadshotCurrency => "mvm_sniper_headshot_currency",
GameEventType::MvmMannhattanPit => "mvm_mannhattan_pit",
GameEventType::FlagCarriedInDetectionZone => "flag_carried_in_detection_zone",
GameEventType::MvmAdvWaveKilledStunRadio => "mvm_adv_wave_killed_stun_radio",
GameEventType::PlayerDirectHitStun => "player_directhit_stun",
GameEventType::MvmSentryBusterKilled => "mvm_sentrybuster_killed",
GameEventType::UpgradesFileChanged => "upgrades_file_changed",
GameEventType::RdTeamPointsChanged => "rd_team_points_changed",
GameEventType::RdRulesStateChanged => "rd_rules_state_changed",
GameEventType::RdRobotKilled => "rd_robot_killed",
GameEventType::RdRobotImpact => "rd_robot_impact",
GameEventType::TeamPlayPreRoundTimeLeft => "teamplay_pre_round_time_left",
GameEventType::ParachuteDeploy => "parachute_deploy",
GameEventType::ParachuteHolster => "parachute_holster",
GameEventType::KillRefillsMeter => "kill_refills_meter",
GameEventType::RpsTauntEvent => "rps_taunt_event",
GameEventType::CongaKill => "conga_kill",
GameEventType::PlayerInitialSpawn => "player_initial_spawn",
GameEventType::CompetitiveVictory => "competitive_victory",
GameEventType::CompetitiveStatsUpdate => "competitive_stats_update",
GameEventType::MiniGameWin => "minigame_win",
GameEventType::SentryOnGoActive => "sentry_on_go_active",
GameEventType::DuckXpLevelUp => "duck_xp_level_up",
GameEventType::QuestLogOpened => "questlog_opened",
GameEventType::SchemaUpdated => "schema_updated",
GameEventType::LocalPlayerPickupWeapon => "localplayer_pickup_weapon",
GameEventType::RdPlayerScorePoints => "rd_player_score_points",
GameEventType::DemomanDetStickies => "demoman_det_stickies",
GameEventType::QuestObjectiveCompleted => "quest_objective_completed",
GameEventType::PlayerScoreChanged => "player_score_changed",
GameEventType::KilledCappingPlayer => "killed_capping_player",
GameEventType::EnvironmentalDeath => "environmental_death",
GameEventType::ProjectileDirectHit => "projectile_direct_hit",
GameEventType::PassGet => "pass_get",
GameEventType::PassScore => "pass_score",
GameEventType::PassFree => "pass_free",
GameEventType::PassPassCaught => "pass_pass_caught",
GameEventType::PassBallStolen => "pass_ball_stolen",
GameEventType::PassBallBlocked => "pass_ball_blocked",
GameEventType::DamagePrevented => "damage_prevented",
GameEventType::HalloweenBossKilled => "halloween_boss_killed",
GameEventType::EscapedLootIsland => "escaped_loot_island",
GameEventType::TaggedPlayerAsIt => "tagged_player_as_it",
GameEventType::MerasmusStunned => "merasmus_stunned",
GameEventType::MerasmusPropFound => "merasmus_prop_found",
GameEventType::HalloweenSkeletonKilled => "halloween_skeleton_killed",
GameEventType::EscapeHell => "escape_hell",
GameEventType::CrossSpectralBridge => "cross_spectral_bridge",
GameEventType::MiniGameWon => "minigame_won",
GameEventType::RespawnGhost => "respawn_ghost",
GameEventType::KillInHell => "kill_in_hell",
GameEventType::HalloweenDuckCollected => "halloween_duck_collected",
GameEventType::SpecialScore => "special_score",
GameEventType::TeamLeaderKilled => "team_leader_killed",
GameEventType::HalloweenSoulCollected => "halloween_soul_collected",
GameEventType::RecalculateTruce => "recalculate_truce",
GameEventType::DeadRingerCheatDeath => "deadringer_cheat_death",
GameEventType::CrossbowHeal => "crossbow_heal",
GameEventType::DamageMitigated => "damage_mitigated",
GameEventType::PayloadPushed => "payload_pushed",
GameEventType::PlayerAbandonedMatch => "player_abandoned_match",
GameEventType::ClDrawline => "cl_drawline",
GameEventType::RestartTimerTime => "restart_timer_time",
GameEventType::WinLimitChanged => "winlimit_changed",
GameEventType::WinPanelShowScores => "winpanel_show_scores",
GameEventType::TopStreamsRequestFinished => "top_streams_request_finished",
GameEventType::CompetitiveStateChanged => "competitive_state_changed",
GameEventType::GlobalWarDataUpdated => "global_war_data_updated",
GameEventType::StopWatchChanged => "stop_watch_changed",
GameEventType::DsStop => "ds_stop",
GameEventType::DsScreenshot => "ds_screenshot",
GameEventType::ShowMatchSummary => "show_match_summary",
GameEventType::ExperienceChanged => "experience_changed",
GameEventType::BeginXpLerp => "begin_xp_lerp",
GameEventType::MatchmakerStatsUpdated => "matchmaker_stats_updated",
GameEventType::RematchVotePeriodOver => "rematch_vote_period_over",
GameEventType::RematchFailedToCreate => "rematch_failed_to_create",
GameEventType::PlayerRematchChange => "player_rematch_change",
GameEventType::PingUpdated => "ping_updated",
GameEventType::MMStatsUpdated => "mmstats_updated",
GameEventType::PlayerNextMapVoteChange => "player_next_map_vote_change",
GameEventType::VoteMapsChanged => "vote_maps_changed",
GameEventType::ProtoDefChanged => "proto_def_changed",
GameEventType::PlayerDomination => "player_domination",
GameEventType::PlayerRocketPackPushed => "player_rocketpack_pushed",
GameEventType::QuestRequest => "quest_request",
GameEventType::QuestResponse => "quest_response",
GameEventType::QuestProgress => "quest_progress",
GameEventType::ProjectileRemoved => "projectile_removed",
GameEventType::QuestMapDataChanged => "quest_map_data_changed",
GameEventType::GasDousedPlayerIgnited => "gas_doused_player_ignited",
GameEventType::QuestTurnInState => "quest_turn_in_state",
GameEventType::ItemsAcknowledged => "items_acknowledged",
GameEventType::CapperKilled => "capper_killed",
GameEventType::MainMenuStabilized => "mainmenu_stabilized",
GameEventType::WorldStatusChanged => "world_status_changed",
GameEventType::HLTVStatus => "hltv_status",
GameEventType::HLTVCameraman => "hltv_cameraman",
GameEventType::HLTVRankCamera => "hltv_rank_camera",
GameEventType::HLTVRankEntity => "hltv_rank_entity",
GameEventType::HLTVFixed => "hltv_fixed",
GameEventType::HLTVChase => "hltv_chase",
GameEventType::HLTVMessage => "hltv_message",
GameEventType::HLTVTitle => "hltv_title",
GameEventType::HLTVChat => "hltv_chat",
GameEventType::ReplayStartRecord => "replay_startrecord",
GameEventType::ReplaySessionInfo => "replay_sessioninfo",
GameEventType::ReplayEndRecord => "replay_endrecord",
GameEventType::ReplayReplaysAvailable => "replay_replaysavailable",
GameEventType::ReplayServerError => "replay_servererror",
GameEventType::Unknown => "unknown",
}
}
} }
impl GameEvent { impl GameEvent {
pub fn from_raw_event(event: RawGameEvent) -> Result<Self> { pub fn from_raw_event(event: RawGameEvent) -> Result<Self> {