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

fix schema for GameEventType

This commit is contained in:
Robin Appelman 2024-02-02 19:31:12 +01:00
commit 042481b3ab
3 changed files with 816 additions and 446 deletions

View file

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

View file

@ -229,7 +229,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
use crate::demo::Stream; use crate::demo::Stream;
use crate::{ParseError, Result}; use crate::{ParseError, Result};
use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream}; use bitbuffer::{BitRead, LittleEndian, BitWrite, BitWriteStream};
use serde::{Deserialize, Deserializer, Serialize, Serializer}; use serde::{Deserialize, Serialize};
use crate::demo::data::MaybeUtf8String; use crate::demo::data::MaybeUtf8String;
); );
@ -297,10 +297,14 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
}); });
let event_types = events.iter().map(|event| { let event_types = events.iter().map(|event| {
let name_str = get_event_name(event.event_type.as_str()); let type_name = event.event_type.as_str();
let name_str = get_event_name(type_name);
let name = Ident::new(&name_str, span); let name = Ident::new(&name_str, span);
quote!(#name,) quote!(
#[serde(rename = #type_name)]
#name,
)
}); });
let type_from_names = events.iter().map(|event| { let type_from_names = events.iter().map(|event| {
@ -398,32 +402,12 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
} }
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))] #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
#[derive(Clone, Debug, PartialEq, Eq, Hash)] #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum GameEventType { pub enum GameEventType {
#(#event_types)* #(#event_types)*
Unknown(String), Unknown(String),
} }
impl Serialize for GameEventType {
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl<'de> Deserialize<'de> for GameEventType {
fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let str = <&str>::deserialize(deserializer)?;
Ok(GameEventType::from_type_name(str))
}
}
impl GameEventType { impl GameEventType {
pub fn from_type_name(name: &str) -> Self { pub fn from_type_name(name: &str) -> Self {
match name { match name {

View file

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