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

properly reencode unknown game event definitions

This commit is contained in:
Robin Appelman 2021-07-22 13:24:48 +02:00
commit bd9d174444
7 changed files with 1061 additions and 898 deletions

302
codegen/Cargo.lock generated
View file

@ -8,6 +8,21 @@ version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
[[package]]
name = "addr2line"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a"
dependencies = [
"gimli",
]
[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]]
name = "aho-corasick"
version = "0.7.18"
@ -48,26 +63,19 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
[[package]]
name = "backtrace"
version = "0.3.56"
version = "0.3.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282"
dependencies = [
"backtrace-sys",
"addr2line",
"cc",
"cfg-if",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
]
[[package]]
name = "backtrace-sys"
version = "0.1.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18fbebbe1c9d1f383a9cc7e8ccdb471b91c8d024ee9c2ca5b5346121fe8b4399"
dependencies = [
"cc",
"libc",
]
[[package]]
name = "base64"
version = "0.13.0"
@ -86,14 +94,14 @@ dependencies = [
[[package]]
name = "bitbuffer"
version = "0.9.3"
version = "0.9.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e73a154e33cb38a0561f1ba4677c66f2dfd7db72300e49d81ab3125f54a6a01"
checksum = "c69c4d2ef0cb9cd4cbb53bf5cd13746e6bc73c6ff2aedbfee0951c18553232d3"
dependencies = [
"bitbuffer_derive",
"err-derive",
"memchr",
"num-traits",
"num-traits 0.2.14",
]
[[package]]
@ -127,9 +135,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.0.66"
version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2"
[[package]]
name = "cfg-if"
@ -175,11 +183,10 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]]
name = "crossbeam-utils"
version = "0.8.1"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
dependencies = [
"autocfg",
"cfg-if",
"lazy_static",
]
@ -212,6 +219,15 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
[[package]]
name = "enum_primitive"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
dependencies = [
"num-traits 0.1.43",
]
[[package]]
name = "enumflags2"
version = "0.7.1"
@ -265,9 +281,9 @@ dependencies = [
[[package]]
name = "getrandom"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [
"cfg-if",
"libc",
@ -275,19 +291,25 @@ dependencies = [
]
[[package]]
name = "hermit-abi"
version = "0.1.18"
name = "gimli"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]]
name = "instant"
version = "0.1.9"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
dependencies = [
"cfg-if",
]
@ -306,15 +328,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
version = "0.2.86"
version = "0.2.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
[[package]]
name = "lock_api"
version = "0.4.2"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb"
dependencies = [
"scopeguard",
]
@ -331,6 +353,92 @@ version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
[[package]]
name = "miniz_oxide"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
dependencies = [
"adler",
"autocfg",
]
[[package]]
name = "num"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"
dependencies = [
"num-bigint",
"num-complex",
"num-integer",
"num-iter",
"num-rational",
"num-traits 0.2.14",
]
[[package]]
name = "num-bigint"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba"
dependencies = [
"autocfg",
"num-integer",
"num-traits 0.2.14",
]
[[package]]
name = "num-complex"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
dependencies = [
"num-traits 0.2.14",
]
[[package]]
name = "num-integer"
version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
dependencies = [
"autocfg",
"num-traits 0.2.14",
]
[[package]]
name = "num-iter"
version = "0.1.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
dependencies = [
"autocfg",
"num-integer",
"num-traits 0.2.14",
]
[[package]]
name = "num-rational"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
dependencies = [
"autocfg",
"num-bigint",
"num-integer",
"num-traits 0.2.14",
]
[[package]]
name = "num-traits"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
dependencies = [
"num-traits 0.2.14",
]
[[package]]
name = "num-traits"
version = "0.2.14"
@ -342,9 +450,9 @@ dependencies = [
[[package]]
name = "num_enum"
version = "0.5.1"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066"
checksum = "e5adf0198d427ee515335639f275e806ca01acf9f07d7cf14bb36a10532a6169"
dependencies = [
"derivative",
"num_enum_derive",
@ -352,9 +460,9 @@ dependencies = [
[[package]]
name = "num_enum_derive"
version = "0.5.1"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e"
checksum = "b1def5a3f69d4707d8a040b12785b98029a39e8c610ae685c7f6265669767482"
dependencies = [
"proc-macro-crate",
"proc-macro2",
@ -362,6 +470,15 @@ dependencies = [
"syn",
]
[[package]]
name = "object"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
version = "1.8.0"
@ -388,7 +505,7 @@ dependencies = [
"cfg-if",
"instant",
"libc",
"redox_syscall 0.2.4",
"redox_syscall 0.2.9",
"smallvec",
"winapi",
]
@ -427,10 +544,11 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]]
name = "proc-macro-crate"
version = "0.1.5"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92"
dependencies = [
"thiserror",
"toml",
]
@ -478,9 +596,9 @@ dependencies = [
[[package]]
name = "rand"
version = "0.8.3"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
dependencies = [
"libc",
"rand_chacha",
@ -490,9 +608,9 @@ dependencies = [
[[package]]
name = "rand_chacha"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core",
@ -500,18 +618,18 @@ dependencies = [
[[package]]
name = "rand_core"
version = "0.6.1"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5"
checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
dependencies = [
"getrandom 0.2.2",
"getrandom 0.2.3",
]
[[package]]
name = "rand_hc"
version = "0.3.0"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
dependencies = [
"rand_core",
]
@ -524,9 +642,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_syscall"
version = "0.2.4"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570"
checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee"
dependencies = [
"bitflags",
]
@ -582,15 +700,15 @@ dependencies = [
[[package]]
name = "rustc-demangle"
version = "0.1.18"
version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49"
[[package]]
name = "rustversion"
version = "1.0.4"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088"
[[package]]
name = "ryu"
@ -630,18 +748,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
version = "1.0.123"
version = "1.0.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.123"
version = "1.0.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
dependencies = [
"proc-macro2",
"quote",
@ -650,9 +768,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.62"
version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
dependencies = [
"itoa",
"ryu",
@ -661,9 +779,9 @@ dependencies = [
[[package]]
name = "serde_repr"
version = "0.1.6"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76"
checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5"
dependencies = [
"proc-macro2",
"quote",
@ -682,6 +800,21 @@ version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451"
[[package]]
name = "steamid-ng"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffb049f8faa2cba570c5366dbaf88ee5849725b16edb771848639fac92e33673"
dependencies = [
"enum_primitive",
"lazy_static",
"num",
"regex",
"serde",
"serde_derive",
"thiserror",
]
[[package]]
name = "structmeta"
version = "0.1.3"
@ -707,9 +840,9 @@ dependencies = [
[[package]]
name = "syn"
version = "1.0.73"
version = "1.0.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c"
dependencies = [
"proc-macro2",
"quote",
@ -729,9 +862,9 @@ dependencies = [
[[package]]
name = "synstructure"
version = "0.12.4"
version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa"
dependencies = [
"proc-macro2",
"quote",
@ -748,7 +881,7 @@ dependencies = [
"cfg-if",
"libc",
"rand",
"redox_syscall 0.2.4",
"redox_syscall 0.2.9",
"remove_dir_all",
"winapi",
]
@ -771,13 +904,14 @@ dependencies = [
"err-derive",
"fnv",
"main_error",
"num-traits",
"num-traits 0.2.14",
"num_enum",
"parse-display",
"serde",
"serde_json",
"serde_repr",
"snap",
"steamid-ng",
]
[[package]]
@ -795,6 +929,26 @@ dependencies = [
"toolchain_find",
]
[[package]]
name = "thiserror"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "toml"
version = "0.5.8"
@ -825,21 +979,21 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
[[package]]
name = "unicode-xid"
version = "0.2.1"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]]
name = "version_check"
version = "0.9.2"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
[[package]]
name = "walkdir"
version = "2.3.1"
version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
dependencies = [
"same-file",
"winapi",

View file

@ -6282,410 +6282,410 @@ pub enum GameEvent {
ReplayServerError(ReplayServerErrorEvent),
Unknown(RawGameEvent),
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum GameEventType {
ServerSpawn = 0,
ServerChangeLevelFailed = 1,
ServerShutdown = 2,
ServerCvar = 3,
ServerMessage = 4,
ServerAddBan = 5,
ServerRemoveBan = 6,
PlayerConnect = 7,
PlayerConnectClient = 8,
PlayerInfo = 9,
PlayerDisconnect = 10,
PlayerActivate = 11,
PlayerSay = 12,
ClientDisconnect = 13,
ClientBeginConnect = 14,
ClientConnected = 15,
ClientFullConnect = 16,
HostQuit = 17,
TeamInfo = 18,
TeamScore = 19,
TeamPlayBroadcastAudio = 20,
PlayerTeam = 21,
PlayerClass = 22,
PlayerDeath = 23,
PlayerHurt = 24,
PlayerChat = 25,
PlayerScore = 26,
PlayerSpawn = 27,
PlayerShoot = 28,
PlayerUse = 29,
PlayerChangeName = 30,
PlayerHintMessage = 31,
BasePlayerTeleported = 32,
GameInit = 33,
GameNewMap = 34,
GameStart = 35,
GameEnd = 36,
RoundStart = 37,
RoundEnd = 38,
GameMessage = 39,
BreakBreakable = 40,
BreakProp = 41,
EntityKilled = 42,
BonusUpdated = 43,
AchievementEvent = 44,
AchievementIncrement = 45,
PhysgunPickup = 46,
FlareIgniteNpc = 47,
HelicopterGrenadePuntMiss = 48,
UserDataDownloaded = 49,
RagdollDissolved = 50,
HLTVChangedMode = 51,
HLTVChangedTarget = 52,
VoteEnded = 53,
VoteStarted = 54,
VoteChanged = 55,
VotePassed = 56,
VoteFailed = 57,
VoteCast = 58,
VoteOptions = 59,
ReplaySaved = 60,
EnteredPerformanceMode = 61,
BrowseReplays = 62,
ReplayYoutubeStats = 63,
InventoryUpdated = 64,
CartUpdated = 65,
StorePriceSheetUpdated = 66,
EconInventoryConnected = 67,
ItemSchemaInitialized = 68,
GcNewSession = 69,
GcLostSession = 70,
IntroFinish = 71,
IntroNextCamera = 72,
PlayerChangeClass = 73,
TfMapTimeRemaining = 74,
TfGameOver = 75,
CtfFlagCaptured = 76,
ControlPointInitialized = 77,
ControlPointUpdateImages = 78,
ControlPointUpdateLayout = 79,
ControlPointUpdateCapping = 80,
ControlPointUpdateOwner = 81,
ControlPointStartTouch = 82,
ControlPointEndTouch = 83,
ControlPointPulseElement = 84,
ControlPointFakeCapture = 85,
ControlPointFakeCaptureMultiplier = 86,
TeamPlayRoundSelected = 87,
TeamPlayRoundStart = 88,
TeamPlayRoundActive = 89,
TeamPlayWaitingBegins = 90,
TeamPlayWaitingEnds = 91,
TeamPlayWaitingAboutToEnd = 92,
TeamPlayRestartRound = 93,
TeamPlayReadyRestart = 94,
TeamPlayRoundRestartSeconds = 95,
TeamPlayTeamReady = 96,
TeamPlayRoundWin = 97,
TeamPlayUpdateTimer = 98,
TeamPlayRoundStalemate = 99,
TeamPlayOvertimeBegin = 100,
TeamPlayOvertimeEnd = 101,
TeamPlaySuddenDeathBegin = 102,
TeamPlaySuddenDeathEnd = 103,
TeamPlayGameOver = 104,
TeamPlayMapTimeRemaining = 105,
TeamPlayTimerFlash = 106,
TeamPlayTimerTimeAdded = 107,
TeamPlayPointStartCapture = 108,
TeamPlayPointCaptured = 109,
TeamPlayPointLocked = 110,
TeamPlayPointUnlocked = 111,
TeamPlayCaptureBroken = 112,
TeamPlayCaptureBlocked = 113,
TeamPlayFlagEvent = 114,
TeamPlayWinPanel = 115,
TeamPlayTeamBalancedPlayer = 116,
TeamPlaySetupFinished = 117,
TeamPlayAlert = 118,
TrainingComplete = 119,
ShowFreezePanel = 120,
HideFreezePanel = 121,
FreezeCamStarted = 122,
LocalPlayerChangeTeam = 123,
LocalPlayerScoreChanged = 124,
LocalPlayerChangeClass = 125,
LocalPlayerRespawn = 126,
BuildingInfoChanged = 127,
LocalPlayerChangeDisguise = 128,
PlayerAccountChanged = 129,
SpyPdaReset = 130,
FlagStatusUpdate = 131,
PlayerStatsUpdated = 132,
PlayingCommentary = 133,
PlayerChargeDeployed = 134,
PlayerBuiltObject = 135,
PlayerUpgradedObject = 136,
PlayerCarryObject = 137,
PlayerDropObject = 138,
ObjectRemoved = 139,
ObjectDestroyed = 140,
ObjectDetonated = 141,
AchievementEarned = 142,
SpecTargetUpdated = 143,
TournamentStateUpdate = 144,
TournamentEnableCountdown = 145,
PlayerCalledForMedic = 146,
PlayerAskedForBall = 147,
LocalPlayerBecameObserver = 148,
PlayerIgnitedInv = 149,
PlayerIgnited = 150,
PlayerExtinguished = 151,
PlayerTeleported = 152,
PlayerHealedMedicCall = 153,
LocalPlayerChargeReady = 154,
LocalPlayerWindDown = 155,
PlayerInvulned = 156,
EscortSpeed = 157,
EscortProgress = 158,
EscortRecede = 159,
GameUIActivated = 160,
GameUIHidden = 161,
PlayerEscortScore = 162,
PlayerHealOnHit = 163,
PlayerStealSandvich = 164,
ShowClassLayout = 165,
ShowVsPanel = 166,
PlayerDamaged = 167,
ArenaPlayerNotification = 168,
ArenaMatchMaxStreak = 169,
ArenaRoundStart = 170,
ArenaWinPanel = 171,
PveWinPanel = 172,
AirDash = 173,
Landed = 174,
PlayerDamageDodged = 175,
PlayerStunned = 176,
ScoutGrandSlam = 177,
ScoutSlamdollLanded = 178,
ArrowImpact = 179,
PlayerJarated = 180,
PlayerJaratedFade = 181,
PlayerShieldBlocked = 182,
PlayerPinned = 183,
PlayerHealedByMedic = 184,
PlayerSappedObject = 185,
ItemFound = 186,
ShowAnnotation = 187,
HideAnnotation = 188,
PostInventoryApplication = 189,
ControlPointUnlockUpdated = 190,
DeployBuffBanner = 191,
PlayerBuff = 192,
MedicDeath = 193,
OvertimeNag = 194,
TeamsChanged = 195,
HalloweenPumpkinGrab = 196,
RocketJump = 197,
RocketJumpLanded = 198,
StickyJump = 199,
StickyJumpLanded = 200,
RocketPackLaunch = 201,
RocketPackLanded = 202,
MedicDefended = 203,
LocalPlayerHealed = 204,
PlayerDestroyedPipeBomb = 205,
ObjectDeflected = 206,
PlayerMvp = 207,
RaidSpawnMob = 208,
RaidSpawnSquad = 209,
NavBlocked = 210,
PathTrackPassed = 211,
NumCappersChanged = 212,
PlayerRegenerate = 213,
UpdateStatusItem = 214,
StatsResetRound = 215,
ScoreStatsAccumulatedUpdate = 216,
ScoreStatsAccumulatedReset = 217,
AchievementEarnedLocal = 218,
PlayerHealed = 219,
BuildingHealed = 220,
ItemPickup = 221,
DuelStatus = 222,
FishNotice = 223,
FishNoticeArm = 224,
SlapNotice = 225,
ThrowableHit = 226,
PumpkinLordSummoned = 227,
PumpkinLordKilled = 228,
MerasmusSummoned = 229,
MerasmusKilled = 230,
MerasmusEscapeWarning = 231,
MerasmusEscaped = 232,
EyeballBossSummoned = 233,
EyeballBossStunned = 234,
EyeballBossKilled = 235,
EyeballBossKiller = 236,
EyeballBossEscapeImminent = 237,
EyeballBossEscaped = 238,
NpcHurt = 239,
ControlPointTimerUpdated = 240,
PlayerHighFiveStart = 241,
PlayerHighFiveCancel = 242,
PlayerHighFiveSuccess = 243,
PlayerBonusPoints = 244,
PlayerUpgraded = 245,
PlayerBuyback = 246,
PlayerUsedPowerUpBottle = 247,
ChristmasGiftGrab = 248,
PlayerKilledAchievementZone = 249,
PartyUpdated = 250,
PartyPrefChanged = 251,
PartyCriteriaChanged = 252,
PartyInvitesChanged = 253,
PartyQueueStateChanged = 254,
PartyChat = 255,
PartyMemberJoin = 256,
PartyMemberLeave = 257,
MatchInvitesUpdated = 258,
LobbyUpdated = 259,
MvmMissionUpdate = 260,
RecalculateHolidays = 261,
PlayerCurrencyChanged = 262,
DoomsdayRocketOpen = 263,
RemoveNemesisRelationships = 264,
MvmCreditBonusWave = 265,
MvmCreditBonusAll = 266,
MvmCreditBonusAllAdvanced = 267,
MvmQuickSentryUpgrade = 268,
MvmTankDestroyedByPlayers = 269,
MvmKillRobotDeliveringBomb = 270,
MvmPickupCurrency = 271,
MvmBombCarrierKilled = 272,
MvmSentryBusterDetonate = 273,
MvmScoutMarkedForDeath = 274,
MvmMedicPowerUpShared = 275,
MvmBeginWave = 276,
MvmWaveComplete = 277,
MvmMissionComplete = 278,
MvmBombResetByPlayer = 279,
MvmBombAlarmTriggered = 280,
MvmBombDeployResetByPlayer = 281,
MvmWaveFailed = 282,
MvmResetStats = 283,
DamageResisted = 284,
RevivePlayerNotify = 285,
RevivePlayerStopped = 286,
RevivePlayerComplete = 287,
PlayerTurnedToGhost = 288,
MedigunShieldBlockedDamage = 289,
MvmAdvWaveCompleteNoGates = 290,
MvmSniperHeadshotCurrency = 291,
MvmMannhattanPit = 292,
FlagCarriedInDetectionZone = 293,
MvmAdvWaveKilledStunRadio = 294,
PlayerDirectHitStun = 295,
MvmSentryBusterKilled = 296,
UpgradesFileChanged = 297,
RdTeamPointsChanged = 298,
RdRulesStateChanged = 299,
RdRobotKilled = 300,
RdRobotImpact = 301,
TeamPlayPreRoundTimeLeft = 302,
ParachuteDeploy = 303,
ParachuteHolster = 304,
KillRefillsMeter = 305,
RpsTauntEvent = 306,
CongaKill = 307,
PlayerInitialSpawn = 308,
CompetitiveVictory = 309,
CompetitiveStatsUpdate = 310,
MiniGameWin = 311,
SentryOnGoActive = 312,
DuckXpLevelUp = 313,
QuestLogOpened = 314,
SchemaUpdated = 315,
LocalPlayerPickupWeapon = 316,
RdPlayerScorePoints = 317,
DemomanDetStickies = 318,
QuestObjectiveCompleted = 319,
PlayerScoreChanged = 320,
KilledCappingPlayer = 321,
EnvironmentalDeath = 322,
ProjectileDirectHit = 323,
PassGet = 324,
PassScore = 325,
PassFree = 326,
PassPassCaught = 327,
PassBallStolen = 328,
PassBallBlocked = 329,
DamagePrevented = 330,
HalloweenBossKilled = 331,
EscapedLootIsland = 332,
TaggedPlayerAsIt = 333,
MerasmusStunned = 334,
MerasmusPropFound = 335,
HalloweenSkeletonKilled = 336,
EscapeHell = 337,
CrossSpectralBridge = 338,
MiniGameWon = 339,
RespawnGhost = 340,
KillInHell = 341,
HalloweenDuckCollected = 342,
SpecialScore = 343,
TeamLeaderKilled = 344,
HalloweenSoulCollected = 345,
RecalculateTruce = 346,
DeadRingerCheatDeath = 347,
CrossbowHeal = 348,
DamageMitigated = 349,
PayloadPushed = 350,
PlayerAbandonedMatch = 351,
ClDrawline = 352,
RestartTimerTime = 353,
WinLimitChanged = 354,
WinPanelShowScores = 355,
TopStreamsRequestFinished = 356,
CompetitiveStateChanged = 357,
GlobalWarDataUpdated = 358,
StopWatchChanged = 359,
DsStop = 360,
DsScreenshot = 361,
ShowMatchSummary = 362,
ExperienceChanged = 363,
BeginXpLerp = 364,
MatchmakerStatsUpdated = 365,
RematchVotePeriodOver = 366,
RematchFailedToCreate = 367,
PlayerRematchChange = 368,
PingUpdated = 369,
MMStatsUpdated = 370,
PlayerNextMapVoteChange = 371,
VoteMapsChanged = 372,
ProtoDefChanged = 373,
PlayerDomination = 374,
PlayerRocketPackPushed = 375,
QuestRequest = 376,
QuestResponse = 377,
QuestProgress = 378,
ProjectileRemoved = 379,
QuestMapDataChanged = 380,
GasDousedPlayerIgnited = 381,
QuestTurnInState = 382,
ItemsAcknowledged = 383,
CapperKilled = 384,
MainMenuStabilized = 385,
WorldStatusChanged = 386,
HLTVStatus = 387,
HLTVCameraman = 388,
HLTVRankCamera = 389,
HLTVRankEntity = 390,
HLTVFixed = 391,
HLTVChase = 392,
HLTVMessage = 393,
HLTVTitle = 394,
HLTVChat = 395,
ReplayStartRecord = 396,
ReplaySessionInfo = 397,
ReplayEndRecord = 398,
ReplayReplaysAvailable = 399,
ReplayServerError = 400,
Unknown,
ServerSpawn,
ServerChangeLevelFailed,
ServerShutdown,
ServerCvar,
ServerMessage,
ServerAddBan,
ServerRemoveBan,
PlayerConnect,
PlayerConnectClient,
PlayerInfo,
PlayerDisconnect,
PlayerActivate,
PlayerSay,
ClientDisconnect,
ClientBeginConnect,
ClientConnected,
ClientFullConnect,
HostQuit,
TeamInfo,
TeamScore,
TeamPlayBroadcastAudio,
PlayerTeam,
PlayerClass,
PlayerDeath,
PlayerHurt,
PlayerChat,
PlayerScore,
PlayerSpawn,
PlayerShoot,
PlayerUse,
PlayerChangeName,
PlayerHintMessage,
BasePlayerTeleported,
GameInit,
GameNewMap,
GameStart,
GameEnd,
RoundStart,
RoundEnd,
GameMessage,
BreakBreakable,
BreakProp,
EntityKilled,
BonusUpdated,
AchievementEvent,
AchievementIncrement,
PhysgunPickup,
FlareIgniteNpc,
HelicopterGrenadePuntMiss,
UserDataDownloaded,
RagdollDissolved,
HLTVChangedMode,
HLTVChangedTarget,
VoteEnded,
VoteStarted,
VoteChanged,
VotePassed,
VoteFailed,
VoteCast,
VoteOptions,
ReplaySaved,
EnteredPerformanceMode,
BrowseReplays,
ReplayYoutubeStats,
InventoryUpdated,
CartUpdated,
StorePriceSheetUpdated,
EconInventoryConnected,
ItemSchemaInitialized,
GcNewSession,
GcLostSession,
IntroFinish,
IntroNextCamera,
PlayerChangeClass,
TfMapTimeRemaining,
TfGameOver,
CtfFlagCaptured,
ControlPointInitialized,
ControlPointUpdateImages,
ControlPointUpdateLayout,
ControlPointUpdateCapping,
ControlPointUpdateOwner,
ControlPointStartTouch,
ControlPointEndTouch,
ControlPointPulseElement,
ControlPointFakeCapture,
ControlPointFakeCaptureMultiplier,
TeamPlayRoundSelected,
TeamPlayRoundStart,
TeamPlayRoundActive,
TeamPlayWaitingBegins,
TeamPlayWaitingEnds,
TeamPlayWaitingAboutToEnd,
TeamPlayRestartRound,
TeamPlayReadyRestart,
TeamPlayRoundRestartSeconds,
TeamPlayTeamReady,
TeamPlayRoundWin,
TeamPlayUpdateTimer,
TeamPlayRoundStalemate,
TeamPlayOvertimeBegin,
TeamPlayOvertimeEnd,
TeamPlaySuddenDeathBegin,
TeamPlaySuddenDeathEnd,
TeamPlayGameOver,
TeamPlayMapTimeRemaining,
TeamPlayTimerFlash,
TeamPlayTimerTimeAdded,
TeamPlayPointStartCapture,
TeamPlayPointCaptured,
TeamPlayPointLocked,
TeamPlayPointUnlocked,
TeamPlayCaptureBroken,
TeamPlayCaptureBlocked,
TeamPlayFlagEvent,
TeamPlayWinPanel,
TeamPlayTeamBalancedPlayer,
TeamPlaySetupFinished,
TeamPlayAlert,
TrainingComplete,
ShowFreezePanel,
HideFreezePanel,
FreezeCamStarted,
LocalPlayerChangeTeam,
LocalPlayerScoreChanged,
LocalPlayerChangeClass,
LocalPlayerRespawn,
BuildingInfoChanged,
LocalPlayerChangeDisguise,
PlayerAccountChanged,
SpyPdaReset,
FlagStatusUpdate,
PlayerStatsUpdated,
PlayingCommentary,
PlayerChargeDeployed,
PlayerBuiltObject,
PlayerUpgradedObject,
PlayerCarryObject,
PlayerDropObject,
ObjectRemoved,
ObjectDestroyed,
ObjectDetonated,
AchievementEarned,
SpecTargetUpdated,
TournamentStateUpdate,
TournamentEnableCountdown,
PlayerCalledForMedic,
PlayerAskedForBall,
LocalPlayerBecameObserver,
PlayerIgnitedInv,
PlayerIgnited,
PlayerExtinguished,
PlayerTeleported,
PlayerHealedMedicCall,
LocalPlayerChargeReady,
LocalPlayerWindDown,
PlayerInvulned,
EscortSpeed,
EscortProgress,
EscortRecede,
GameUIActivated,
GameUIHidden,
PlayerEscortScore,
PlayerHealOnHit,
PlayerStealSandvich,
ShowClassLayout,
ShowVsPanel,
PlayerDamaged,
ArenaPlayerNotification,
ArenaMatchMaxStreak,
ArenaRoundStart,
ArenaWinPanel,
PveWinPanel,
AirDash,
Landed,
PlayerDamageDodged,
PlayerStunned,
ScoutGrandSlam,
ScoutSlamdollLanded,
ArrowImpact,
PlayerJarated,
PlayerJaratedFade,
PlayerShieldBlocked,
PlayerPinned,
PlayerHealedByMedic,
PlayerSappedObject,
ItemFound,
ShowAnnotation,
HideAnnotation,
PostInventoryApplication,
ControlPointUnlockUpdated,
DeployBuffBanner,
PlayerBuff,
MedicDeath,
OvertimeNag,
TeamsChanged,
HalloweenPumpkinGrab,
RocketJump,
RocketJumpLanded,
StickyJump,
StickyJumpLanded,
RocketPackLaunch,
RocketPackLanded,
MedicDefended,
LocalPlayerHealed,
PlayerDestroyedPipeBomb,
ObjectDeflected,
PlayerMvp,
RaidSpawnMob,
RaidSpawnSquad,
NavBlocked,
PathTrackPassed,
NumCappersChanged,
PlayerRegenerate,
UpdateStatusItem,
StatsResetRound,
ScoreStatsAccumulatedUpdate,
ScoreStatsAccumulatedReset,
AchievementEarnedLocal,
PlayerHealed,
BuildingHealed,
ItemPickup,
DuelStatus,
FishNotice,
FishNoticeArm,
SlapNotice,
ThrowableHit,
PumpkinLordSummoned,
PumpkinLordKilled,
MerasmusSummoned,
MerasmusKilled,
MerasmusEscapeWarning,
MerasmusEscaped,
EyeballBossSummoned,
EyeballBossStunned,
EyeballBossKilled,
EyeballBossKiller,
EyeballBossEscapeImminent,
EyeballBossEscaped,
NpcHurt,
ControlPointTimerUpdated,
PlayerHighFiveStart,
PlayerHighFiveCancel,
PlayerHighFiveSuccess,
PlayerBonusPoints,
PlayerUpgraded,
PlayerBuyback,
PlayerUsedPowerUpBottle,
ChristmasGiftGrab,
PlayerKilledAchievementZone,
PartyUpdated,
PartyPrefChanged,
PartyCriteriaChanged,
PartyInvitesChanged,
PartyQueueStateChanged,
PartyChat,
PartyMemberJoin,
PartyMemberLeave,
MatchInvitesUpdated,
LobbyUpdated,
MvmMissionUpdate,
RecalculateHolidays,
PlayerCurrencyChanged,
DoomsdayRocketOpen,
RemoveNemesisRelationships,
MvmCreditBonusWave,
MvmCreditBonusAll,
MvmCreditBonusAllAdvanced,
MvmQuickSentryUpgrade,
MvmTankDestroyedByPlayers,
MvmKillRobotDeliveringBomb,
MvmPickupCurrency,
MvmBombCarrierKilled,
MvmSentryBusterDetonate,
MvmScoutMarkedForDeath,
MvmMedicPowerUpShared,
MvmBeginWave,
MvmWaveComplete,
MvmMissionComplete,
MvmBombResetByPlayer,
MvmBombAlarmTriggered,
MvmBombDeployResetByPlayer,
MvmWaveFailed,
MvmResetStats,
DamageResisted,
RevivePlayerNotify,
RevivePlayerStopped,
RevivePlayerComplete,
PlayerTurnedToGhost,
MedigunShieldBlockedDamage,
MvmAdvWaveCompleteNoGates,
MvmSniperHeadshotCurrency,
MvmMannhattanPit,
FlagCarriedInDetectionZone,
MvmAdvWaveKilledStunRadio,
PlayerDirectHitStun,
MvmSentryBusterKilled,
UpgradesFileChanged,
RdTeamPointsChanged,
RdRulesStateChanged,
RdRobotKilled,
RdRobotImpact,
TeamPlayPreRoundTimeLeft,
ParachuteDeploy,
ParachuteHolster,
KillRefillsMeter,
RpsTauntEvent,
CongaKill,
PlayerInitialSpawn,
CompetitiveVictory,
CompetitiveStatsUpdate,
MiniGameWin,
SentryOnGoActive,
DuckXpLevelUp,
QuestLogOpened,
SchemaUpdated,
LocalPlayerPickupWeapon,
RdPlayerScorePoints,
DemomanDetStickies,
QuestObjectiveCompleted,
PlayerScoreChanged,
KilledCappingPlayer,
EnvironmentalDeath,
ProjectileDirectHit,
PassGet,
PassScore,
PassFree,
PassPassCaught,
PassBallStolen,
PassBallBlocked,
DamagePrevented,
HalloweenBossKilled,
EscapedLootIsland,
TaggedPlayerAsIt,
MerasmusStunned,
MerasmusPropFound,
HalloweenSkeletonKilled,
EscapeHell,
CrossSpectralBridge,
MiniGameWon,
RespawnGhost,
KillInHell,
HalloweenDuckCollected,
SpecialScore,
TeamLeaderKilled,
HalloweenSoulCollected,
RecalculateTruce,
DeadRingerCheatDeath,
CrossbowHeal,
DamageMitigated,
PayloadPushed,
PlayerAbandonedMatch,
ClDrawline,
RestartTimerTime,
WinLimitChanged,
WinPanelShowScores,
TopStreamsRequestFinished,
CompetitiveStateChanged,
GlobalWarDataUpdated,
StopWatchChanged,
DsStop,
DsScreenshot,
ShowMatchSummary,
ExperienceChanged,
BeginXpLerp,
MatchmakerStatsUpdated,
RematchVotePeriodOver,
RematchFailedToCreate,
PlayerRematchChange,
PingUpdated,
MMStatsUpdated,
PlayerNextMapVoteChange,
VoteMapsChanged,
ProtoDefChanged,
PlayerDomination,
PlayerRocketPackPushed,
QuestRequest,
QuestResponse,
QuestProgress,
ProjectileRemoved,
QuestMapDataChanged,
GasDousedPlayerIgnited,
QuestTurnInState,
ItemsAcknowledged,
CapperKilled,
MainMenuStabilized,
WorldStatusChanged,
HLTVStatus,
HLTVCameraman,
HLTVRankCamera,
HLTVRankEntity,
HLTVFixed,
HLTVChase,
HLTVMessage,
HLTVTitle,
HLTVChat,
ReplayStartRecord,
ReplaySessionInfo,
ReplayEndRecord,
ReplayReplaysAvailable,
ReplayServerError,
Unknown(String),
}
impl GameEventType {
pub fn from_type_name(name: &str) -> Self {
@ -7091,10 +7091,10 @@ impl GameEventType {
"replay_endrecord" => GameEventType::ReplayEndRecord,
"replay_replaysavailable" => GameEventType::ReplayReplaysAvailable,
"replay_servererror" => GameEventType::ReplayServerError,
_ => GameEventType::Unknown,
ty => GameEventType::Unknown(ty.into()),
}
}
pub fn as_str(&self) -> &'static str {
pub fn as_str(&self) -> &str {
match self {
GameEventType::ServerSpawn => "server_spawn",
GameEventType::ServerChangeLevelFailed => "server_changelevel_failed",
@ -7497,7 +7497,7 @@ impl GameEventType {
GameEventType::ReplayEndRecord => "replay_endrecord",
GameEventType::ReplayReplaysAvailable => "replay_replaysavailable",
GameEventType::ReplayServerError => "replay_servererror",
GameEventType::Unknown => "unknown",
GameEventType::Unknown(ty) => &ty,
}
}
}
@ -8697,7 +8697,9 @@ impl GameEvent {
GameEventType::ReplayServerError => {
GameEvent::ReplayServerError(ReplayServerErrorEvent::read(stream, definition)?)
}
GameEventType::Unknown => GameEvent::Unknown(RawGameEvent::read(stream, definition)?),
GameEventType::Unknown(_) => {
GameEvent::Unknown(RawGameEvent::read(stream, definition)?)
}
})
}
pub fn write(&self, stream: &mut BitWriteStream<LittleEndian>) -> bitbuffer::Result<()> {

View file

@ -239,7 +239,10 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
quote!(pub #name: #ty,)
});
let name = Ident::new(&format!("{}Event", get_event_name(event.event_type.as_str())), span);
let name = Ident::new(
&format!("{}Event", get_event_name(event.event_type.as_str())),
span,
);
let entry_readers = event.entries.iter().map(|entry| {
let name_str = get_entry_name(&entry.name);
@ -293,9 +296,8 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
let event_types = events.iter().map(|event| {
let name_str = get_event_name(event.event_type.as_str());
let name = Ident::new(&name_str, span);
let id = Literal::u16_unsuffixed(event.id.into());
quote!(#name = #id,)
quote!(#name,)
});
let type_from_names = events.iter().map(|event| {
@ -382,23 +384,23 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
Unknown(RawGameEvent),
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum GameEventType {
#(#event_types)*
Unknown,
Unknown(String),
}
impl GameEventType {
pub fn from_type_name(name: &str) -> Self {
match name {
#(#type_from_names)*
_ => GameEventType::Unknown,
ty => GameEventType::Unknown(ty.into()),
}
}
pub fn as_str(&self) -> &'static str {
pub fn as_str(&self) -> &str {
match self {
#(#type_to_names)*
GameEventType::Unknown => "unknown",
GameEventType::Unknown(ty) => &ty,
}
}
}
@ -407,7 +409,7 @@ pub fn generate_game_events(demo: Demo) -> TokenStream {
pub fn read(stream: &mut Stream, definition: &GameEventDefinition) -> Result<Self> {
Ok(match definition.event_type {
#(#read_events)*
GameEventType::Unknown => GameEvent::Unknown(RawGameEvent::read(stream, definition)?),
GameEventType::Unknown(_) => GameEvent::Unknown(RawGameEvent::read(stream, definition)?),
})
}
pub fn write(&self, stream: &mut BitWriteStream<LittleEndian>) -> bitbuffer::Result<()> {

View file

@ -6282,410 +6282,410 @@ pub enum GameEvent {
ReplayServerError(ReplayServerErrorEvent),
Unknown(RawGameEvent),
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum GameEventType {
ServerSpawn = 0,
ServerChangeLevelFailed = 1,
ServerShutdown = 2,
ServerCvar = 3,
ServerMessage = 4,
ServerAddBan = 5,
ServerRemoveBan = 6,
PlayerConnect = 7,
PlayerConnectClient = 8,
PlayerInfo = 9,
PlayerDisconnect = 10,
PlayerActivate = 11,
PlayerSay = 12,
ClientDisconnect = 13,
ClientBeginConnect = 14,
ClientConnected = 15,
ClientFullConnect = 16,
HostQuit = 17,
TeamInfo = 18,
TeamScore = 19,
TeamPlayBroadcastAudio = 20,
PlayerTeam = 21,
PlayerClass = 22,
PlayerDeath = 23,
PlayerHurt = 24,
PlayerChat = 25,
PlayerScore = 26,
PlayerSpawn = 27,
PlayerShoot = 28,
PlayerUse = 29,
PlayerChangeName = 30,
PlayerHintMessage = 31,
BasePlayerTeleported = 32,
GameInit = 33,
GameNewMap = 34,
GameStart = 35,
GameEnd = 36,
RoundStart = 37,
RoundEnd = 38,
GameMessage = 39,
BreakBreakable = 40,
BreakProp = 41,
EntityKilled = 42,
BonusUpdated = 43,
AchievementEvent = 44,
AchievementIncrement = 45,
PhysgunPickup = 46,
FlareIgniteNpc = 47,
HelicopterGrenadePuntMiss = 48,
UserDataDownloaded = 49,
RagdollDissolved = 50,
HLTVChangedMode = 51,
HLTVChangedTarget = 52,
VoteEnded = 53,
VoteStarted = 54,
VoteChanged = 55,
VotePassed = 56,
VoteFailed = 57,
VoteCast = 58,
VoteOptions = 59,
ReplaySaved = 60,
EnteredPerformanceMode = 61,
BrowseReplays = 62,
ReplayYoutubeStats = 63,
InventoryUpdated = 64,
CartUpdated = 65,
StorePriceSheetUpdated = 66,
EconInventoryConnected = 67,
ItemSchemaInitialized = 68,
GcNewSession = 69,
GcLostSession = 70,
IntroFinish = 71,
IntroNextCamera = 72,
PlayerChangeClass = 73,
TfMapTimeRemaining = 74,
TfGameOver = 75,
CtfFlagCaptured = 76,
ControlPointInitialized = 77,
ControlPointUpdateImages = 78,
ControlPointUpdateLayout = 79,
ControlPointUpdateCapping = 80,
ControlPointUpdateOwner = 81,
ControlPointStartTouch = 82,
ControlPointEndTouch = 83,
ControlPointPulseElement = 84,
ControlPointFakeCapture = 85,
ControlPointFakeCaptureMultiplier = 86,
TeamPlayRoundSelected = 87,
TeamPlayRoundStart = 88,
TeamPlayRoundActive = 89,
TeamPlayWaitingBegins = 90,
TeamPlayWaitingEnds = 91,
TeamPlayWaitingAboutToEnd = 92,
TeamPlayRestartRound = 93,
TeamPlayReadyRestart = 94,
TeamPlayRoundRestartSeconds = 95,
TeamPlayTeamReady = 96,
TeamPlayRoundWin = 97,
TeamPlayUpdateTimer = 98,
TeamPlayRoundStalemate = 99,
TeamPlayOvertimeBegin = 100,
TeamPlayOvertimeEnd = 101,
TeamPlaySuddenDeathBegin = 102,
TeamPlaySuddenDeathEnd = 103,
TeamPlayGameOver = 104,
TeamPlayMapTimeRemaining = 105,
TeamPlayTimerFlash = 106,
TeamPlayTimerTimeAdded = 107,
TeamPlayPointStartCapture = 108,
TeamPlayPointCaptured = 109,
TeamPlayPointLocked = 110,
TeamPlayPointUnlocked = 111,
TeamPlayCaptureBroken = 112,
TeamPlayCaptureBlocked = 113,
TeamPlayFlagEvent = 114,
TeamPlayWinPanel = 115,
TeamPlayTeamBalancedPlayer = 116,
TeamPlaySetupFinished = 117,
TeamPlayAlert = 118,
TrainingComplete = 119,
ShowFreezePanel = 120,
HideFreezePanel = 121,
FreezeCamStarted = 122,
LocalPlayerChangeTeam = 123,
LocalPlayerScoreChanged = 124,
LocalPlayerChangeClass = 125,
LocalPlayerRespawn = 126,
BuildingInfoChanged = 127,
LocalPlayerChangeDisguise = 128,
PlayerAccountChanged = 129,
SpyPdaReset = 130,
FlagStatusUpdate = 131,
PlayerStatsUpdated = 132,
PlayingCommentary = 133,
PlayerChargeDeployed = 134,
PlayerBuiltObject = 135,
PlayerUpgradedObject = 136,
PlayerCarryObject = 137,
PlayerDropObject = 138,
ObjectRemoved = 139,
ObjectDestroyed = 140,
ObjectDetonated = 141,
AchievementEarned = 142,
SpecTargetUpdated = 143,
TournamentStateUpdate = 144,
TournamentEnableCountdown = 145,
PlayerCalledForMedic = 146,
PlayerAskedForBall = 147,
LocalPlayerBecameObserver = 148,
PlayerIgnitedInv = 149,
PlayerIgnited = 150,
PlayerExtinguished = 151,
PlayerTeleported = 152,
PlayerHealedMedicCall = 153,
LocalPlayerChargeReady = 154,
LocalPlayerWindDown = 155,
PlayerInvulned = 156,
EscortSpeed = 157,
EscortProgress = 158,
EscortRecede = 159,
GameUIActivated = 160,
GameUIHidden = 161,
PlayerEscortScore = 162,
PlayerHealOnHit = 163,
PlayerStealSandvich = 164,
ShowClassLayout = 165,
ShowVsPanel = 166,
PlayerDamaged = 167,
ArenaPlayerNotification = 168,
ArenaMatchMaxStreak = 169,
ArenaRoundStart = 170,
ArenaWinPanel = 171,
PveWinPanel = 172,
AirDash = 173,
Landed = 174,
PlayerDamageDodged = 175,
PlayerStunned = 176,
ScoutGrandSlam = 177,
ScoutSlamdollLanded = 178,
ArrowImpact = 179,
PlayerJarated = 180,
PlayerJaratedFade = 181,
PlayerShieldBlocked = 182,
PlayerPinned = 183,
PlayerHealedByMedic = 184,
PlayerSappedObject = 185,
ItemFound = 186,
ShowAnnotation = 187,
HideAnnotation = 188,
PostInventoryApplication = 189,
ControlPointUnlockUpdated = 190,
DeployBuffBanner = 191,
PlayerBuff = 192,
MedicDeath = 193,
OvertimeNag = 194,
TeamsChanged = 195,
HalloweenPumpkinGrab = 196,
RocketJump = 197,
RocketJumpLanded = 198,
StickyJump = 199,
StickyJumpLanded = 200,
RocketPackLaunch = 201,
RocketPackLanded = 202,
MedicDefended = 203,
LocalPlayerHealed = 204,
PlayerDestroyedPipeBomb = 205,
ObjectDeflected = 206,
PlayerMvp = 207,
RaidSpawnMob = 208,
RaidSpawnSquad = 209,
NavBlocked = 210,
PathTrackPassed = 211,
NumCappersChanged = 212,
PlayerRegenerate = 213,
UpdateStatusItem = 214,
StatsResetRound = 215,
ScoreStatsAccumulatedUpdate = 216,
ScoreStatsAccumulatedReset = 217,
AchievementEarnedLocal = 218,
PlayerHealed = 219,
BuildingHealed = 220,
ItemPickup = 221,
DuelStatus = 222,
FishNotice = 223,
FishNoticeArm = 224,
SlapNotice = 225,
ThrowableHit = 226,
PumpkinLordSummoned = 227,
PumpkinLordKilled = 228,
MerasmusSummoned = 229,
MerasmusKilled = 230,
MerasmusEscapeWarning = 231,
MerasmusEscaped = 232,
EyeballBossSummoned = 233,
EyeballBossStunned = 234,
EyeballBossKilled = 235,
EyeballBossKiller = 236,
EyeballBossEscapeImminent = 237,
EyeballBossEscaped = 238,
NpcHurt = 239,
ControlPointTimerUpdated = 240,
PlayerHighFiveStart = 241,
PlayerHighFiveCancel = 242,
PlayerHighFiveSuccess = 243,
PlayerBonusPoints = 244,
PlayerUpgraded = 245,
PlayerBuyback = 246,
PlayerUsedPowerUpBottle = 247,
ChristmasGiftGrab = 248,
PlayerKilledAchievementZone = 249,
PartyUpdated = 250,
PartyPrefChanged = 251,
PartyCriteriaChanged = 252,
PartyInvitesChanged = 253,
PartyQueueStateChanged = 254,
PartyChat = 255,
PartyMemberJoin = 256,
PartyMemberLeave = 257,
MatchInvitesUpdated = 258,
LobbyUpdated = 259,
MvmMissionUpdate = 260,
RecalculateHolidays = 261,
PlayerCurrencyChanged = 262,
DoomsdayRocketOpen = 263,
RemoveNemesisRelationships = 264,
MvmCreditBonusWave = 265,
MvmCreditBonusAll = 266,
MvmCreditBonusAllAdvanced = 267,
MvmQuickSentryUpgrade = 268,
MvmTankDestroyedByPlayers = 269,
MvmKillRobotDeliveringBomb = 270,
MvmPickupCurrency = 271,
MvmBombCarrierKilled = 272,
MvmSentryBusterDetonate = 273,
MvmScoutMarkedForDeath = 274,
MvmMedicPowerUpShared = 275,
MvmBeginWave = 276,
MvmWaveComplete = 277,
MvmMissionComplete = 278,
MvmBombResetByPlayer = 279,
MvmBombAlarmTriggered = 280,
MvmBombDeployResetByPlayer = 281,
MvmWaveFailed = 282,
MvmResetStats = 283,
DamageResisted = 284,
RevivePlayerNotify = 285,
RevivePlayerStopped = 286,
RevivePlayerComplete = 287,
PlayerTurnedToGhost = 288,
MedigunShieldBlockedDamage = 289,
MvmAdvWaveCompleteNoGates = 290,
MvmSniperHeadshotCurrency = 291,
MvmMannhattanPit = 292,
FlagCarriedInDetectionZone = 293,
MvmAdvWaveKilledStunRadio = 294,
PlayerDirectHitStun = 295,
MvmSentryBusterKilled = 296,
UpgradesFileChanged = 297,
RdTeamPointsChanged = 298,
RdRulesStateChanged = 299,
RdRobotKilled = 300,
RdRobotImpact = 301,
TeamPlayPreRoundTimeLeft = 302,
ParachuteDeploy = 303,
ParachuteHolster = 304,
KillRefillsMeter = 305,
RpsTauntEvent = 306,
CongaKill = 307,
PlayerInitialSpawn = 308,
CompetitiveVictory = 309,
CompetitiveStatsUpdate = 310,
MiniGameWin = 311,
SentryOnGoActive = 312,
DuckXpLevelUp = 313,
QuestLogOpened = 314,
SchemaUpdated = 315,
LocalPlayerPickupWeapon = 316,
RdPlayerScorePoints = 317,
DemomanDetStickies = 318,
QuestObjectiveCompleted = 319,
PlayerScoreChanged = 320,
KilledCappingPlayer = 321,
EnvironmentalDeath = 322,
ProjectileDirectHit = 323,
PassGet = 324,
PassScore = 325,
PassFree = 326,
PassPassCaught = 327,
PassBallStolen = 328,
PassBallBlocked = 329,
DamagePrevented = 330,
HalloweenBossKilled = 331,
EscapedLootIsland = 332,
TaggedPlayerAsIt = 333,
MerasmusStunned = 334,
MerasmusPropFound = 335,
HalloweenSkeletonKilled = 336,
EscapeHell = 337,
CrossSpectralBridge = 338,
MiniGameWon = 339,
RespawnGhost = 340,
KillInHell = 341,
HalloweenDuckCollected = 342,
SpecialScore = 343,
TeamLeaderKilled = 344,
HalloweenSoulCollected = 345,
RecalculateTruce = 346,
DeadRingerCheatDeath = 347,
CrossbowHeal = 348,
DamageMitigated = 349,
PayloadPushed = 350,
PlayerAbandonedMatch = 351,
ClDrawline = 352,
RestartTimerTime = 353,
WinLimitChanged = 354,
WinPanelShowScores = 355,
TopStreamsRequestFinished = 356,
CompetitiveStateChanged = 357,
GlobalWarDataUpdated = 358,
StopWatchChanged = 359,
DsStop = 360,
DsScreenshot = 361,
ShowMatchSummary = 362,
ExperienceChanged = 363,
BeginXpLerp = 364,
MatchmakerStatsUpdated = 365,
RematchVotePeriodOver = 366,
RematchFailedToCreate = 367,
PlayerRematchChange = 368,
PingUpdated = 369,
MMStatsUpdated = 370,
PlayerNextMapVoteChange = 371,
VoteMapsChanged = 372,
ProtoDefChanged = 373,
PlayerDomination = 374,
PlayerRocketPackPushed = 375,
QuestRequest = 376,
QuestResponse = 377,
QuestProgress = 378,
ProjectileRemoved = 379,
QuestMapDataChanged = 380,
GasDousedPlayerIgnited = 381,
QuestTurnInState = 382,
ItemsAcknowledged = 383,
CapperKilled = 384,
MainMenuStabilized = 385,
WorldStatusChanged = 386,
HLTVStatus = 387,
HLTVCameraman = 388,
HLTVRankCamera = 389,
HLTVRankEntity = 390,
HLTVFixed = 391,
HLTVChase = 392,
HLTVMessage = 393,
HLTVTitle = 394,
HLTVChat = 395,
ReplayStartRecord = 396,
ReplaySessionInfo = 397,
ReplayEndRecord = 398,
ReplayReplaysAvailable = 399,
ReplayServerError = 400,
Unknown,
ServerSpawn,
ServerChangeLevelFailed,
ServerShutdown,
ServerCvar,
ServerMessage,
ServerAddBan,
ServerRemoveBan,
PlayerConnect,
PlayerConnectClient,
PlayerInfo,
PlayerDisconnect,
PlayerActivate,
PlayerSay,
ClientDisconnect,
ClientBeginConnect,
ClientConnected,
ClientFullConnect,
HostQuit,
TeamInfo,
TeamScore,
TeamPlayBroadcastAudio,
PlayerTeam,
PlayerClass,
PlayerDeath,
PlayerHurt,
PlayerChat,
PlayerScore,
PlayerSpawn,
PlayerShoot,
PlayerUse,
PlayerChangeName,
PlayerHintMessage,
BasePlayerTeleported,
GameInit,
GameNewMap,
GameStart,
GameEnd,
RoundStart,
RoundEnd,
GameMessage,
BreakBreakable,
BreakProp,
EntityKilled,
BonusUpdated,
AchievementEvent,
AchievementIncrement,
PhysgunPickup,
FlareIgniteNpc,
HelicopterGrenadePuntMiss,
UserDataDownloaded,
RagdollDissolved,
HLTVChangedMode,
HLTVChangedTarget,
VoteEnded,
VoteStarted,
VoteChanged,
VotePassed,
VoteFailed,
VoteCast,
VoteOptions,
ReplaySaved,
EnteredPerformanceMode,
BrowseReplays,
ReplayYoutubeStats,
InventoryUpdated,
CartUpdated,
StorePriceSheetUpdated,
EconInventoryConnected,
ItemSchemaInitialized,
GcNewSession,
GcLostSession,
IntroFinish,
IntroNextCamera,
PlayerChangeClass,
TfMapTimeRemaining,
TfGameOver,
CtfFlagCaptured,
ControlPointInitialized,
ControlPointUpdateImages,
ControlPointUpdateLayout,
ControlPointUpdateCapping,
ControlPointUpdateOwner,
ControlPointStartTouch,
ControlPointEndTouch,
ControlPointPulseElement,
ControlPointFakeCapture,
ControlPointFakeCaptureMultiplier,
TeamPlayRoundSelected,
TeamPlayRoundStart,
TeamPlayRoundActive,
TeamPlayWaitingBegins,
TeamPlayWaitingEnds,
TeamPlayWaitingAboutToEnd,
TeamPlayRestartRound,
TeamPlayReadyRestart,
TeamPlayRoundRestartSeconds,
TeamPlayTeamReady,
TeamPlayRoundWin,
TeamPlayUpdateTimer,
TeamPlayRoundStalemate,
TeamPlayOvertimeBegin,
TeamPlayOvertimeEnd,
TeamPlaySuddenDeathBegin,
TeamPlaySuddenDeathEnd,
TeamPlayGameOver,
TeamPlayMapTimeRemaining,
TeamPlayTimerFlash,
TeamPlayTimerTimeAdded,
TeamPlayPointStartCapture,
TeamPlayPointCaptured,
TeamPlayPointLocked,
TeamPlayPointUnlocked,
TeamPlayCaptureBroken,
TeamPlayCaptureBlocked,
TeamPlayFlagEvent,
TeamPlayWinPanel,
TeamPlayTeamBalancedPlayer,
TeamPlaySetupFinished,
TeamPlayAlert,
TrainingComplete,
ShowFreezePanel,
HideFreezePanel,
FreezeCamStarted,
LocalPlayerChangeTeam,
LocalPlayerScoreChanged,
LocalPlayerChangeClass,
LocalPlayerRespawn,
BuildingInfoChanged,
LocalPlayerChangeDisguise,
PlayerAccountChanged,
SpyPdaReset,
FlagStatusUpdate,
PlayerStatsUpdated,
PlayingCommentary,
PlayerChargeDeployed,
PlayerBuiltObject,
PlayerUpgradedObject,
PlayerCarryObject,
PlayerDropObject,
ObjectRemoved,
ObjectDestroyed,
ObjectDetonated,
AchievementEarned,
SpecTargetUpdated,
TournamentStateUpdate,
TournamentEnableCountdown,
PlayerCalledForMedic,
PlayerAskedForBall,
LocalPlayerBecameObserver,
PlayerIgnitedInv,
PlayerIgnited,
PlayerExtinguished,
PlayerTeleported,
PlayerHealedMedicCall,
LocalPlayerChargeReady,
LocalPlayerWindDown,
PlayerInvulned,
EscortSpeed,
EscortProgress,
EscortRecede,
GameUIActivated,
GameUIHidden,
PlayerEscortScore,
PlayerHealOnHit,
PlayerStealSandvich,
ShowClassLayout,
ShowVsPanel,
PlayerDamaged,
ArenaPlayerNotification,
ArenaMatchMaxStreak,
ArenaRoundStart,
ArenaWinPanel,
PveWinPanel,
AirDash,
Landed,
PlayerDamageDodged,
PlayerStunned,
ScoutGrandSlam,
ScoutSlamdollLanded,
ArrowImpact,
PlayerJarated,
PlayerJaratedFade,
PlayerShieldBlocked,
PlayerPinned,
PlayerHealedByMedic,
PlayerSappedObject,
ItemFound,
ShowAnnotation,
HideAnnotation,
PostInventoryApplication,
ControlPointUnlockUpdated,
DeployBuffBanner,
PlayerBuff,
MedicDeath,
OvertimeNag,
TeamsChanged,
HalloweenPumpkinGrab,
RocketJump,
RocketJumpLanded,
StickyJump,
StickyJumpLanded,
RocketPackLaunch,
RocketPackLanded,
MedicDefended,
LocalPlayerHealed,
PlayerDestroyedPipeBomb,
ObjectDeflected,
PlayerMvp,
RaidSpawnMob,
RaidSpawnSquad,
NavBlocked,
PathTrackPassed,
NumCappersChanged,
PlayerRegenerate,
UpdateStatusItem,
StatsResetRound,
ScoreStatsAccumulatedUpdate,
ScoreStatsAccumulatedReset,
AchievementEarnedLocal,
PlayerHealed,
BuildingHealed,
ItemPickup,
DuelStatus,
FishNotice,
FishNoticeArm,
SlapNotice,
ThrowableHit,
PumpkinLordSummoned,
PumpkinLordKilled,
MerasmusSummoned,
MerasmusKilled,
MerasmusEscapeWarning,
MerasmusEscaped,
EyeballBossSummoned,
EyeballBossStunned,
EyeballBossKilled,
EyeballBossKiller,
EyeballBossEscapeImminent,
EyeballBossEscaped,
NpcHurt,
ControlPointTimerUpdated,
PlayerHighFiveStart,
PlayerHighFiveCancel,
PlayerHighFiveSuccess,
PlayerBonusPoints,
PlayerUpgraded,
PlayerBuyback,
PlayerUsedPowerUpBottle,
ChristmasGiftGrab,
PlayerKilledAchievementZone,
PartyUpdated,
PartyPrefChanged,
PartyCriteriaChanged,
PartyInvitesChanged,
PartyQueueStateChanged,
PartyChat,
PartyMemberJoin,
PartyMemberLeave,
MatchInvitesUpdated,
LobbyUpdated,
MvmMissionUpdate,
RecalculateHolidays,
PlayerCurrencyChanged,
DoomsdayRocketOpen,
RemoveNemesisRelationships,
MvmCreditBonusWave,
MvmCreditBonusAll,
MvmCreditBonusAllAdvanced,
MvmQuickSentryUpgrade,
MvmTankDestroyedByPlayers,
MvmKillRobotDeliveringBomb,
MvmPickupCurrency,
MvmBombCarrierKilled,
MvmSentryBusterDetonate,
MvmScoutMarkedForDeath,
MvmMedicPowerUpShared,
MvmBeginWave,
MvmWaveComplete,
MvmMissionComplete,
MvmBombResetByPlayer,
MvmBombAlarmTriggered,
MvmBombDeployResetByPlayer,
MvmWaveFailed,
MvmResetStats,
DamageResisted,
RevivePlayerNotify,
RevivePlayerStopped,
RevivePlayerComplete,
PlayerTurnedToGhost,
MedigunShieldBlockedDamage,
MvmAdvWaveCompleteNoGates,
MvmSniperHeadshotCurrency,
MvmMannhattanPit,
FlagCarriedInDetectionZone,
MvmAdvWaveKilledStunRadio,
PlayerDirectHitStun,
MvmSentryBusterKilled,
UpgradesFileChanged,
RdTeamPointsChanged,
RdRulesStateChanged,
RdRobotKilled,
RdRobotImpact,
TeamPlayPreRoundTimeLeft,
ParachuteDeploy,
ParachuteHolster,
KillRefillsMeter,
RpsTauntEvent,
CongaKill,
PlayerInitialSpawn,
CompetitiveVictory,
CompetitiveStatsUpdate,
MiniGameWin,
SentryOnGoActive,
DuckXpLevelUp,
QuestLogOpened,
SchemaUpdated,
LocalPlayerPickupWeapon,
RdPlayerScorePoints,
DemomanDetStickies,
QuestObjectiveCompleted,
PlayerScoreChanged,
KilledCappingPlayer,
EnvironmentalDeath,
ProjectileDirectHit,
PassGet,
PassScore,
PassFree,
PassPassCaught,
PassBallStolen,
PassBallBlocked,
DamagePrevented,
HalloweenBossKilled,
EscapedLootIsland,
TaggedPlayerAsIt,
MerasmusStunned,
MerasmusPropFound,
HalloweenSkeletonKilled,
EscapeHell,
CrossSpectralBridge,
MiniGameWon,
RespawnGhost,
KillInHell,
HalloweenDuckCollected,
SpecialScore,
TeamLeaderKilled,
HalloweenSoulCollected,
RecalculateTruce,
DeadRingerCheatDeath,
CrossbowHeal,
DamageMitigated,
PayloadPushed,
PlayerAbandonedMatch,
ClDrawline,
RestartTimerTime,
WinLimitChanged,
WinPanelShowScores,
TopStreamsRequestFinished,
CompetitiveStateChanged,
GlobalWarDataUpdated,
StopWatchChanged,
DsStop,
DsScreenshot,
ShowMatchSummary,
ExperienceChanged,
BeginXpLerp,
MatchmakerStatsUpdated,
RematchVotePeriodOver,
RematchFailedToCreate,
PlayerRematchChange,
PingUpdated,
MMStatsUpdated,
PlayerNextMapVoteChange,
VoteMapsChanged,
ProtoDefChanged,
PlayerDomination,
PlayerRocketPackPushed,
QuestRequest,
QuestResponse,
QuestProgress,
ProjectileRemoved,
QuestMapDataChanged,
GasDousedPlayerIgnited,
QuestTurnInState,
ItemsAcknowledged,
CapperKilled,
MainMenuStabilized,
WorldStatusChanged,
HLTVStatus,
HLTVCameraman,
HLTVRankCamera,
HLTVRankEntity,
HLTVFixed,
HLTVChase,
HLTVMessage,
HLTVTitle,
HLTVChat,
ReplayStartRecord,
ReplaySessionInfo,
ReplayEndRecord,
ReplayReplaysAvailable,
ReplayServerError,
Unknown(String),
}
impl GameEventType {
pub fn from_type_name(name: &str) -> Self {
@ -7091,10 +7091,10 @@ impl GameEventType {
"replay_endrecord" => GameEventType::ReplayEndRecord,
"replay_replaysavailable" => GameEventType::ReplayReplaysAvailable,
"replay_servererror" => GameEventType::ReplayServerError,
_ => GameEventType::Unknown,
ty => GameEventType::Unknown(ty.into()),
}
}
pub fn as_str(&self) -> &'static str {
pub fn as_str(&self) -> &str {
match self {
GameEventType::ServerSpawn => "server_spawn",
GameEventType::ServerChangeLevelFailed => "server_changelevel_failed",
@ -7497,7 +7497,7 @@ impl GameEventType {
GameEventType::ReplayEndRecord => "replay_endrecord",
GameEventType::ReplayReplaysAvailable => "replay_replaysavailable",
GameEventType::ReplayServerError => "replay_servererror",
GameEventType::Unknown => "unknown",
GameEventType::Unknown(ty) => &ty,
}
}
}
@ -8697,7 +8697,9 @@ impl GameEvent {
GameEventType::ReplayServerError => {
GameEvent::ReplayServerError(ReplayServerErrorEvent::read(stream, definition)?)
}
GameEventType::Unknown => GameEvent::Unknown(RawGameEvent::read(stream, definition)?),
GameEventType::Unknown(_) => {
GameEvent::Unknown(RawGameEvent::read(stream, definition)?)
}
})
}
pub fn write(&self, stream: &mut BitWriteStream<LittleEndian>) -> bitbuffer::Result<()> {

View file

@ -168,7 +168,7 @@ impl RawGameEvent {
}
Ok(RawGameEvent {
event_type: definition.event_type,
event_type: definition.event_type.clone(),
values,
})
}

View file

@ -25,7 +25,7 @@ impl Parse<'_> for GameEventMessage {
return Ok(GameEventMessage {
event_type_id,
event: GameEvent::Unknown(RawGameEvent {
event_type: GameEventType::Unknown,
event_type: GameEventType::Unknown(String::new()),
values: Vec::new(),
}),
});
@ -161,6 +161,9 @@ impl BitRead<'_, LittleEndian> for GameEventDefinition {
impl BitWrite<LittleEndian> for GameEventDefinition {
fn write(&self, stream: &mut BitWriteStream<LittleEndian>) -> ReadResult<()> {
self.id.write(stream)?;
// if self.event_type == GameEventType::Unknown {
// panic!("unknown");
// }
self.event_type.as_str().write(stream)?;
for entry in self.entries.iter() {

View file