From c63164d7d9d2a34d32c13c1263f9336167edf2c2 Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 04:54:30 +0000 Subject: [PATCH 01/16] feat: map s2 tokens --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_func.cpp | 52 +++---- src/gsc/engine/s2_meth.cpp | 64 ++++----- src/gsc/engine/s2_token.cpp | 253 ++++++++++++++++++++++++++++++++++ 4 files changed, 312 insertions(+), 59 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 05f05072..0171b8a6 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 5; +constexpr usize token_count = 258; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index 3e25097c..d86bed57 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -61,16 +61,16 @@ extern std::array, func_count> const func_list { 0x031, "_func_031" }, { 0x032, "_func_032" }, { 0x033, "_func_033" }, - { 0x034, "_func_034" }, + { 0x034, "setdvar" }, { 0x035, "_func_035" }, { 0x036, "_func_036" }, { 0x037, "_func_037" }, { 0x038, "_func_038" }, - { 0x039, "_func_039" }, - { 0x03A, "_func_03A" }, - { 0x03B, "_func_03B" }, + { 0x039, "getdvar" }, + { 0x03A, "getdvarint" }, + { 0x03B, "getdvarfloat" }, { 0x03C, "_func_03C" }, - { 0x03D, "_func_03D" }, + { 0x03D, "getTime" }, { 0x03E, "_func_03E" }, { 0x03F, "_func_03F" }, { 0x040, "_func_040" }, @@ -113,8 +113,8 @@ extern std::array, func_count> const func_list { 0x065, "_func_065" }, { 0x066, "_func_066" }, { 0x067, "_func_067" }, - { 0x068, "_func_068" }, - { 0x069, "_func_069" }, + { 0x068, "spawn" }, + { 0x069, "bullettrace" }, { 0x06A, "_func_06A" }, { 0x06B, "_func_06B" }, { 0x06C, "_func_06C" }, @@ -181,7 +181,7 @@ extern std::array, func_count> const func_list { 0x0A9, "_func_0A9" }, { 0x0AA, "_func_0AA" }, { 0x0AB, "_func_0AB" }, - { 0x0AC, "_func_0AC" }, + { 0x0AC, "int" }, { 0x0AD, "_func_0AD" }, { 0x0AE, "_func_0AE" }, { 0x0AF, "_func_0AF" }, @@ -220,7 +220,7 @@ extern std::array, func_count> const func_list { 0x0D0, "_func_0D0" }, { 0x0D1, "_func_0D1" }, { 0x0D2, "_func_0D2" }, - { 0x0D3, "_func_0D3" }, + { 0x0D3, "max" }, { 0x0D4, "_func_0D4" }, { 0x0D5, "_func_0D5" }, { 0x0D6, "_func_0D6" }, @@ -236,7 +236,7 @@ extern std::array, func_count> const func_list { 0x0E0, "_func_0E0" }, { 0x0E1, "_func_0E1" }, { 0x0E2, "_func_0E2" }, - { 0x0E3, "_func_0E3" }, + { 0x0E3, "length" }, { 0x0E4, "_func_0E4" }, { 0x0E5, "_func_0E5" }, { 0x0E6, "_func_0E6" }, @@ -272,24 +272,24 @@ extern std::array, func_count> const func_list { 0x104, "_func_104" }, { 0x105, "_func_105" }, { 0x106, "_func_106" }, - { 0x107, "_func_107" }, - { 0x108, "_func_108" }, + { 0x107, "vectornormalize" }, + { 0x108, "vectortoangles" }, { 0x109, "_func_109" }, { 0x10A, "_func_10A" }, { 0x10B, "_func_10B" }, { 0x10C, "_func_10C" }, { 0x10D, "_func_10D" }, - { 0x10E, "_func_10E" }, + { 0x10E, "anglestoforward" }, { 0x10F, "_func_10F" }, { 0x110, "_func_110" }, { 0x111, "_func_111" }, { 0x112, "_func_112" }, { 0x113, "_func_113" }, - { 0x114, "_func_114" }, + { 0x114, "issubstr" }, { 0x115, "_func_115" }, - { 0x116, "_func_116" }, + { 0x116, "getsubstr" }, { 0x117, "_func_117" }, - { 0x118, "_func_118" }, + { 0x118, "strtok" }, { 0x119, "_func_119" }, { 0x11A, "_func_11A" }, { 0x11B, "_func_11B" }, @@ -300,8 +300,8 @@ extern std::array, func_count> const func_list { 0x120, "_func_120" }, { 0x121, "_func_121" }, { 0x122, "_func_122" }, - { 0x123, "_func_123" }, - { 0x124, "_func_124" }, + { 0x123, "setmatchdata" }, + { 0x124, "getmatchdata" }, { 0x125, "_func_125" }, { 0x126, "_func_126" }, { 0x127, "_func_127" }, @@ -408,11 +408,11 @@ extern std::array, func_count> const func_list { 0x18C, "_func_18C" }, { 0x18D, "_func_18D" }, { 0x18E, "_func_18E" }, - { 0x18F, "_func_18F" }, + { 0x18F, "getentarray" }, { 0x190, "_func_190" }, - { 0x191, "_func_191" }, + { 0x191, "spawnstruct" }, { 0x192, "_func_192" }, - { 0x193, "_func_193" }, + { 0x193, "isalive" }, { 0x194, "_func_194" }, { 0x195, "_func_195" }, { 0x196, "_func_196" }, @@ -424,7 +424,7 @@ extern std::array, func_count> const func_list { 0x19C, "_func_19C" }, { 0x19D, "_func_19D" }, { 0x19E, "_func_19E" }, - { 0x19F, "_func_19F" }, + { 0x19F, "isplayer" }, { 0x1A0, "_func_1A0" }, { 0x1A1, "_func_1A1" }, { 0x1A2, "_func_1A2" }, @@ -472,12 +472,12 @@ extern std::array, func_count> const func_list { 0x1CC, "_func_1CC" }, { 0x1CD, "_func_1CD" }, { 0x1CE, "_func_1CE" }, - { 0x1CF, "_func_1CF" }, + { 0x1CF, "objective_delete" }, { 0x1D0, "_func_1D0" }, { 0x1D1, "_func_1D1" }, { 0x1D2, "_func_1D2" }, { 0x1D3, "_func_1D3" }, - { 0x1D4, "_func_1D4" }, + { 0x1D4, "weaponinventorytype" }, { 0x1D5, "_func_1D5" }, { 0x1D6, "_func_1D6" }, { 0x1D7, "_func_1D7" }, @@ -731,7 +731,7 @@ extern std::array, func_count> const func_list { 0x2CF, "_func_2CF" }, { 0x2D0, "_func_2D0" }, { 0x2D1, "_func_2D1" }, - { 0x2D2, "_func_2D2" }, + { 0x2D2, "isdefined" }, { 0x2D3, "_func_2D3" }, { 0x2D4, "_func_2D4" }, { 0x2D5, "_func_2D5" }, @@ -834,7 +834,7 @@ extern std::array, func_count> const func_list { 0x336, "_func_336" }, { 0x337, "_func_337" }, { 0x338, "_func_338" }, - { 0x339, "_func_339" }, + { 0x339, "playsoundatpos" }, { 0x33A, "_func_33A" }, { 0x33B, "_func_33B" }, { 0x33C, "_func_33C" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index fe9d34a6..784f5b71 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -22,8 +22,8 @@ extern std::array, meth_count> const meth_list { 0x8009, "_meth_8009" }, { 0x800A, "_meth_800A" }, { 0x800B, "_meth_800B" }, - { 0x800C, "_meth_800C" }, - { 0x800D, "_meth_800D" }, + { 0x800C, "enableplayeruse" }, + { 0x800D, "disableplayeruse" }, { 0x800E, "_meth_800E" }, { 0x800F, "_meth_800F" }, { 0x8010, "_meth_8010" }, @@ -167,12 +167,12 @@ extern std::array, meth_count> const meth_list { 0x809A, "_meth_809A" }, { 0x809B, "_meth_809B" }, { 0x809C, "_meth_809C" }, - { 0x809D, "_meth_809D" }, + { 0x809D, "istouching" }, { 0x809E, "_meth_809E" }, { 0x809F, "_meth_809F" }, { 0x80A0, "_meth_80A0" }, { 0x80A1, "_meth_80A1" }, - { 0x80A2, "_meth_80A2" }, + { 0x80A2, "delete" }, { 0x80A3, "_meth_80A3" }, { 0x80A4, "_meth_80A4" }, { 0x80A5, "_meth_80A5" }, @@ -188,7 +188,7 @@ extern std::array, meth_count> const meth_list { 0x80AF, "_meth_80AF" }, { 0x80B0, "_meth_80B0" }, { 0x80B1, "_meth_80B1" }, - { 0x80B2, "_meth_80B2" }, + { 0x80B2, "makeusable" }, { 0x80B3, "_meth_80B3" }, { 0x80B4, "_meth_80B4" }, { 0x80B5, "_meth_80B5" }, @@ -199,12 +199,12 @@ extern std::array, meth_count> const meth_list { 0x80BA, "_meth_80BA" }, { 0x80BB, "_meth_80BB" }, { 0x80BC, "_meth_80BC" }, - { 0x80BD, "_meth_80BD" }, + { 0x80BD, "settext" }, { 0x80BE, "_meth_80BE" }, { 0x80BF, "_meth_80BF" }, { 0x80C0, "_meth_80C0" }, { 0x80C1, "_meth_80C1" }, - { 0x80C2, "_meth_80C2" }, + { 0x80C2, "settimer" }, { 0x80C3, "_meth_80C3" }, { 0x80C4, "_meth_80C4" }, { 0x80C5, "_meth_80C5" }, @@ -394,13 +394,13 @@ extern std::array, meth_count> const meth_list { 0x817D, "_meth_817D" }, { 0x817E, "_meth_817E" }, { 0x817F, "_meth_817F" }, - { 0x8180, "_meth_8180" }, + { 0x8180, "gettagorigin" }, { 0x8181, "_meth_8181" }, { 0x8182, "_meth_8182" }, { 0x8183, "_meth_8183" }, { 0x8184, "_meth_8184" }, { 0x8185, "_meth_8185" }, - { 0x8186, "_meth_8186" }, + { 0x8186, "setdepthoffield" }, { 0x8187, "_meth_8187" }, { 0x8188, "_meth_8188" }, { 0x8189, "_meth_8189" }, @@ -438,7 +438,7 @@ extern std::array, meth_count> const meth_list { 0x81A9, "_meth_81A9" }, { 0x81AA, "_meth_81AA" }, { 0x81AB, "_meth_81AB" }, - { 0x81AC, "_meth_81AC" }, + { 0x81AC, "getentitynumber" }, { 0x81AD, "_meth_81AD" }, { 0x81AE, "_meth_81AE" }, { 0x81AF, "_meth_81AF" }, @@ -592,7 +592,7 @@ extern std::array, meth_count> const meth_list { 0x8243, "_meth_8243" }, { 0x8244, "_meth_8244" }, { 0x8245, "_meth_8245" }, - { 0x8246, "_meth_8246" }, + { 0x8246, "setspawnweapon" }, { 0x8247, "_meth_8247" }, { 0x8248, "_meth_8248" }, { 0x8249, "_meth_8249" }, @@ -624,10 +624,10 @@ extern std::array, meth_count> const meth_list { 0x8263, "_meth_8263" }, { 0x8264, "_meth_8264" }, { 0x8265, "_meth_8265" }, - { 0x8266, "_meth_8266" }, + { 0x8266, "suicide" }, { 0x8267, "_meth_8267" }, - { 0x8268, "_meth_8268" }, - { 0x8269, "_meth_8269" }, + { 0x8268, "iprintln" }, + { 0x8269, "iprintlnbold" }, { 0x826A, "_meth_826A" }, { 0x826B, "_meth_826B" }, { 0x826C, "_meth_826C" }, @@ -691,10 +691,10 @@ extern std::array, meth_count> const meth_list { 0x82A6, "_meth_82A6" }, { 0x82A7, "_meth_82A7" }, { 0x82A8, "_meth_82A8" }, - { 0x82A9, "_meth_82A9" }, + { 0x82A9, "setperk" }, { 0x82AA, "_meth_82AA" }, { 0x82AB, "_meth_82AB" }, - { 0x82AC, "_meth_82AC" }, + { 0x82AC, "unsetperk" }, { 0x82AD, "_meth_82AD" }, { 0x82AE, "_meth_82AE" }, { 0x82AF, "_meth_82AF" }, @@ -772,13 +772,13 @@ extern std::array, meth_count> const meth_list { 0x82F7, "_meth_82F7" }, { 0x82F8, "_meth_82F8" }, { 0x82F9, "_meth_82F9" }, - { 0x82FA, "_meth_82FA" }, - { 0x82FB, "_meth_82FB" }, - { 0x82FC, "_meth_82FC" }, - { 0x82FD, "_meth_82FD" }, + { 0x82FA, "setweaponammoclip" }, + { 0x82FB, "setweaponammostock" }, + { 0x82FC, "getweaponammoclip" }, + { 0x82FD, "getweaponammostock" }, { 0x82FE, "_meth_82FE" }, { 0x82FF, "_meth_82FF" }, - { 0x8300, "_meth_8300" }, + { 0x8300, "setclientdvar" }, { 0x8301, "_meth_8301" }, { 0x8302, "_meth_8302" }, { 0x8303, "_meth_8303" }, @@ -791,25 +791,25 @@ extern std::array, meth_count> const meth_list { 0x830A, "_meth_830A" }, { 0x830B, "_meth_830B" }, { 0x830C, "_meth_830C" }, - { 0x830D, "_meth_830D" }, + { 0x830D, "setactionslot" }, { 0x830E, "_meth_830E" }, { 0x830F, "_meth_830F" }, - { 0x8310, "_meth_8310" }, + { 0x8310, "getweaponlistall" }, { 0x8311, "_meth_8311" }, { 0x8312, "_meth_8312" }, - { 0x8313, "_meth_8313" }, - { 0x8314, "_meth_8314" }, + { 0x8313, "giveweapon" }, + { 0x8314, "takeweapon" }, { 0x8315, "_meth_8315" }, - { 0x8316, "_meth_8316" }, + { 0x8316, "getcurrentweapon" }, { 0x8317, "_meth_8317" }, { 0x8318, "_meth_8318" }, { 0x8319, "_meth_8319" }, - { 0x831A, "_meth_831A" }, + { 0x831A, "switchtoweapon" }, { 0x831B, "_meth_831B" }, { 0x831C, "_meth_831C" }, { 0x831D, "_meth_831D" }, - { 0x831E, "_meth_831E" }, - { 0x831F, "_meth_831F" }, + { 0x831E, "setoffhandsecondaryclass" }, + { 0x831F, "getoffhandsecondaryclass" }, { 0x8320, "_meth_8320" }, { 0x8321, "_meth_8321" }, { 0x8322, "_meth_8322" }, @@ -826,7 +826,7 @@ extern std::array, meth_count> const meth_list { 0x832D, "_meth_832D" }, { 0x832E, "_meth_832E" }, { 0x832F, "_meth_832F" }, - { 0x8330, "_meth_8330" }, + { 0x8330, "freezecontrols" }, { 0x8331, "_meth_8331" }, { 0x8332, "_meth_8332" }, { 0x8333, "_meth_8333" }, @@ -1567,9 +1567,9 @@ extern std::array, meth_count> const meth_list { 0x8612, "_meth_8612" }, { 0x8613, "_meth_8613" }, { 0x8614, "_meth_8614" }, - { 0x8615, "_meth_8615" }, + { 0x8615, "playlocalsound" }, { 0x8616, "_meth_8616" }, - { 0x8617, "_meth_8617" }, + { 0x8617, "playsound" }, { 0x8618, "_meth_8618" }, { 0x8619, "_meth_8619" }, { 0x861A, "_meth_861A" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index 289529a3..72233a9a 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -15,6 +15,259 @@ extern std::array, token_count> const token_list { 0x02, "-" }, { 0x03, "radius`" }, { 0x04, "note:" }, + { 0x18, "alpha" }, + { 0x1D, "angles" }, + { 0x8E, "entity" }, + { 0x9F, "forcespectatorclient" }, + { 0xBC, "health" }, + { 0xD5, "init" }, + { 0xE1, "killcamentity" }, + { 0xF9, "main" }, + { 0xFB, "maxhealth" }, + { 0x109, "name" }, + { 0x116, "origin" }, + { 0x12C, "pers" }, + { 0x15C, "score" }, + { 0x161, "script_delay" }, + { 0x1A7, "team" }, + { 0x1B9, "type" }, + { 0x495, "maps/mp/_utility"}, + { 0x4C6, "maps/mp/gametypes/_damage"}, + { 0x4E4, "maps/mp/gametypes/_hud_message"}, + { 0x4ED, "maps/mp/gametypes/_persistence"}, + { 0x4EF, "maps/mp/gametypes/_playerlogic"}, + { 0x600, "_disableoffhandweapons"}, + { 0x642, "_giveweapon"}, + { 0x68B, "_objective_delete"}, + { 0x69F, "_playlocalsound"}, + { 0x6CF, "_setperk"}, + { 0x6D0, "_setactionslot"}, + { 0x728, "_suicide"}, + { 0x72B, "_takeweaponsexcept"}, + { 0x734, "_unsetperk"}, + { 0x737, "_updateenemyusable"}, + { 0x73A, "_updateteamusable"}, + { 0x83B, "perks"}, + { 0x842, "perkunsetfuncs"}, + { 0x888, "actionslots"}, + { 0x9C7, "addlowermessage"}, + { 0x9F6, "addtime"}, + { 0x2015, "carryicon"}, + { 0x23FF, "clearkillcamstate"}, + { 0x2402, "clearlowermessages"}, + { 0x2414, "clearusingremote"}, + { 0x2418, "clientid"}, + { 0x2429, "clipammol"}, + { 0x242A, "clipammor"}, + { 0x260C, "frozen"}, + { 0x2893, "_stoplocalsound"}, + { 0x2953, "currentweapon"}, + { 0x29B6, "damagecenter"}, + { 0x2D46, "deleteplacedentity"}, + { 0x2FB1, "discardtime"}, + { 0x35F6, "empplayer"}, + { 0x3516, "dvarfloatvalue"}, + { 0x3517, "dvarintvalue"}, + { 0x36E4, "endsceneondeath"}, + { 0x3E8E, "freezecontrolswrapper"}, + { 0x3941, "exploder_sound"}, + { 0x3FA0, "gameflag"}, + { 0x3FA1, "gameflagclear"}, + { 0x3FA2, "gameflagexists"}, + { 0x3FA3, "gameflaginit"}, + { 0x3FA4, "gameflagset"}, + { 0x3FA5, "gameflagwait"}, + { 0x3FA6, "gamehasstarted"}, + { 0x3FDC, "gametype"}, + { 0x4137, "get_damagable_grenade"}, + { 0x4138, "get_damagable_grenade_pos"}, + { 0x413A, "get_damagable_player"}, + { 0x413B, "get_damagable_player_pos"}, + { 0x413C, "get_damagable_sentry"}, + { 0x442E, "getaverageorigin"}, + { 0x44AB, "getdvarvec"}, + { 0x44E8, "getfloatproperty"}, + { 0x44FC, "getgametypenumlives"}, + { 0x4502, "gethalftime"}, + { 0x4529, "getintproperty"}, + { 0x454F, "getlastlivingplayer"}, + { 0x455E, "getlivingplayers"}, + { 0x4569, "getlowermessage"}, + { 0x4589, "getminutespassed"}, + { 0x45AD, "getnextlifeid"}, + { 0x45CD, "getobjectivehinttext"}, + { 0x45D2, "getobjectivescoretext"}, + { 0x45D3, "getobjectivetext"}, + { 0x45DE, "getotherteam"}, + { 0x4607, "getpersstat"}, + { 0x4617, "getplant"}, + { 0x4621, "getplayerforguid"}, + { 0x4628, "getplayerstat"}, + { 0x4629, "getplayerstattime"}, + { 0x4630, "getpotentiallivingplayers"}, + { 0x463A, "getproperty"}, + { 0x4664, "getremotename"}, + { 0x4669, "getroundswon"}, + { 0x4672, "getscorelimit"}, + { 0x46E3, "gettimepassed"}, + { 0x467B, "getsecondspassed"}, + { 0x46E2, "gettimelimit"}, + { 0x470E, "getvalueinrange"}, + { 0x471A, "getwatcheddvar"}, + { 0x472A, "getweaponclass"}, + { 0x4B96, "hasspawned"}, + { 0x48CA, "guid"}, + { 0x4B17, "hardcoremode"}, + { 0x4DDD, "hitroundlimit"}, + { 0x4DE2, "hitscorelimit"}, + { 0x4E09, "hostmigrationtimer"}, + { 0x4DE7, "hitwinlimit"}, + { 0x50E9, "incpersstat"}, + { 0x50EA, "incplayerstat"}, + { 0x52BE, "initgameflags"}, + { 0x5315, "initlevelflags"}, + { 0x532D, "initpersstat"}, + { 0x5335, "initplayerstat"}, + { 0x5380, "inovertime"}, + { 0x5662, "isadestructable"}, + { 0x5694, "isbulletdamage"}, + { 0x5699, "iscacprimaryweapon"}, + { 0x569A, "iscacsecondaryweapon"}, + { 0x56D8, "isemped"}, + { 0x56E0, "isexcluded"}, + { 0x56E5, "isexplosivedamage"}, + { 0x56F6, "isfloat"}, + { 0x5740, "iskillstreakweapon"}, + { 0x5743, "islastround"}, + { 0x575F, "isnuked"}, + { 0x5760, "isobjectivebased"}, + { 0x5779, "isplayer"}, + { 0x57A0, "isreallyalive"}, + { 0x57B2, "isroundbased"}, + { 0x57C4, "issentry"}, + { 0x581D, "isusingremote"}, + { 0x5822, "isvalidclass"}, + { 0x5A81, "killtrigger"}, + { 0x5BDF, "lastslowprocessframe"}, + { 0x5C39, "leaderdialog"}, + { 0x5C3D, "leaderdialogactive"}, + { 0x5C3E, "leaderdialogbothteams"}, + { 0x5C3F, "leaderdialoggroup"}, + { 0x5C40, "leaderdialoggroups"}, + { 0x5C41, "leaderdialoglocalsound"}, + { 0x5C43, "leaderdialogonplayer"}, + { 0x5C45, "playleaderdialogonplayer"}, + { 0x5C46, "leaderdialogonplayers"}, + { 0x5C47, "leaderdialogqueue"}, + { 0x5CBA, "levelflag"}, + { 0x5CBA, "levelflagclear"}, + { 0x5CBC, "levelflaginit"}, + { 0x5CBD, "levelflags"}, + { 0x5CBE, "levelflagset"}, + { 0x5CBF, "levelflagwait"}, + { 0x5CC0, "levelflagwaitopen"}, + { 0x5D7F, "limitdecimalplaces"}, + { 0x5F29, "lowermessage"}, + { 0x5F30, "lowertimer"}, + { 0x5F2B, "lowermessages"}, + { 0x5FB6, "makeenemyusable"}, + { 0x5FBD, "maketeamusable"}, + { 0x608B, "maxlives"}, + { 0x6094, "maxplayercount"}, + { 0x60B2, "mayspawn"}, + { 0x6810, "notifystring"}, + { 0x6857, "nuked"}, + { 0x6933, "objectivebased"}, + { 0x69A9, "offhandclass"}, + { 0x6C3A, "orienttonormal"}, + { 0x71AC, "play_sound_on_tag"}, + { 0x73C2, "playercardsplashnotify"}, + { 0x73E2, "playerforclientid"}, + { 0x7418, "playerkilled_internal"}, + { 0x744A, "players"}, + { 0x74D8, "playsoundinspace"}, + { 0x74D9, "playsoundonplayers"}, + { 0x771A, "printandsoundoneveryone"}, + { 0x771B, "printandsoundonplayer"}, + { 0x771C, "printandsoundonteam"}, + { 0x771E, "printboldonteam"}, + { 0x771F, "printboldonteamarg"}, + { 0x7727, "printonplayers"}, + { 0x7728, "printonteam"}, + { 0x7729, "printonteamarg"}, + { 0x772A, "printonteam"}, + { 0x7734, "priority"}, + { 0x7AD6, "reclaimedreservedobjectives"}, + { 0x7BE5, "registerhalftimedvar"}, + { 0x7BF1, "registernumlivesdvar"}, + { 0x7BF2, "registernumteamsdvar"}, + { 0x7BF7, "registerroundlimitdvar"}, + { 0x7BF8, "registerroundswitchdvar"}, + { 0x7BF9, "registerscorelimitdvar"}, + { 0x7BFA, "registertimelimitdvar"}, + { 0x7BFF, "registerwatchdvar"}, + { 0x7C00, "registerwatchdvarfloat"}, + { 0x7C01, "registerwatchdvarint"}, + { 0x7C04, "registerwinlimitdvar"}, + { 0x7CE9, "removelowermessage"}, + { 0x7DEF, "restoredata"}, + { 0x7F26, "roundswitch"}, + { 0x7F27, "roundswitchdvar"}, + { 0x7F28, "roundswitchmax"}, + { 0x7F29, "roundswitchmin"}, + { 0x805F, "saved_actionslotdata"}, + { 0x8064, "savedata"}, + { 0x80D2, "scr_sound"}, + { 0x827E, "script_savedata"}, + { 0x828A, "script_sound"}, + { 0x82EE, "scriptperks"}, + { 0x86D8, "setobjectivehinttext"}, + { 0x86DB, "setobjectivescoretext"}, + { 0x86DC, "setobjectivetext"}, + { 0x86EB, "setovertimelimitdvar"}, + { 0x86F5, "setpersstat"}, + { 0x8702, "setplayerstat"}, + { 0x8703, "setplayerstatifgreater"}, + { 0x8704, "setplayerstatiflower"}, + { 0x871E, "setselfusable"}, + { 0x8742, "setthirdpersondof"}, + { 0x8A5B, "setusingremote"}, + { 0x8F25, "sortlowermessages"}, + { 0x910F, "splitscreen"}, + { 0x9309, "starttime"}, + { 0x9314, "statadd"}, + { 0x932F, "statget"}, + { 0x9330, "statgetbuffered"}, + { 0x9337, "stats"}, + { 0x9338, "statset"}, + { 0x9339, "statsetbuffered"}, + { 0x93B1, "stockammo"}, + { 0x9472, "strip_suffix"}, + { 0x984D, "teambased"}, + { 0x9852, "teamemped"}, + { 0x9863, "teamplayercardsplash"}, + { 0x991F, "text"}, + { 0x99AC, "throwinggrenade"}, + { 0x99DA, "time"}, + { 0x9A11, "timerpausetime"}, + { 0x9A12, "timerstopped"}, + { 0x9AC1, "touchingbadtrigger"}, + { 0xA131, "updatelowermessage"}, + { 0xA132, "updatemainmenu"}, + { 0xA143, "updateobjectivetext"}, + { 0xA14B, "updatepersratio"}, + { 0xA14C, "updatepersratiobuffered"}, + { 0xA193, "updatewatcheddvar"}, + { 0xA194, "updatewatcheddvars"}, + { 0xA25C, "usingremote"}, + { 0xA281, "value"}, + { 0xA6D1, "waitfortimeornotify"}, + { 0xA78E, "waittillrecoveredhealth"}, + { 0xA790, "waittillslowprocessallowed"}, + { 0xA872, "waslastround"}, + { 0xA875, "wasonlyround"}, + { 0xA901, "watchdvars"}, + { 0xA9E7, "weapons"}, }}; } // namespace xsk::gsc::s2 From 77cbef0acdcbda30dfcf665a16d2820f00b078b0 Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 06:05:35 +0000 Subject: [PATCH 02/16] feat: s2 tokens for _persistence --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_meth.cpp | 4 ++-- src/gsc/engine/s2_token.cpp | 22 ++++++++++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 0171b8a6..07de5583 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 258; +constexpr usize token_count = 280; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index 784f5b71..ac12ba5f 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -553,7 +553,7 @@ extern std::array, meth_count> const meth_list { 0x821C, "_meth_821C" }, { 0x821D, "_meth_821D" }, { 0x821E, "_meth_821E" }, - { 0x821F, "_meth_821F" }, + { 0x821F, "getplayerdata" }, { 0x8220, "_meth_8220" }, { 0x8221, "_meth_8221" }, { 0x8222, "_meth_8222" }, @@ -584,7 +584,7 @@ extern std::array, meth_count> const meth_list { 0x823B, "_meth_823B" }, { 0x823C, "_meth_823C" }, { 0x823D, "_meth_823D" }, - { 0x823E, "_meth_823E" }, + { 0x823E, "setplayerdata" }, { 0x823F, "_meth_823F" }, { 0x8240, "_meth_8240" }, { 0x8241, "_meth_8241" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index 72233a9a..cb6f7839 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -32,10 +32,14 @@ extern std::array, token_count> const token_list { 0x1A7, "team" }, { 0x1B9, "type" }, { 0x495, "maps/mp/_utility"}, + { 0x4C4, "maps/mp/gametypes/_class"}, { 0x4C6, "maps/mp/gametypes/_damage"}, { 0x4E4, "maps/mp/gametypes/_hud_message"}, + { 0x4E9, "maps/mp/gametypes/_missions"}, { 0x4ED, "maps/mp/gametypes/_persistence"}, + { 0x4EE, "maps/mp/gametypes/_playercards"}, { 0x4EF, "maps/mp/gametypes/_playerlogic"}, + { 0x507, "maps/mp/gametypes/_rank"}, { 0x600, "_disableoffhandweapons"}, { 0x642, "_giveweapon"}, { 0x68B, "_objective_delete"}, @@ -52,6 +56,8 @@ extern std::array, token_count> const token_list { 0x888, "actionslots"}, { 0x9C7, "addlowermessage"}, { 0x9F6, "addtime"}, + { 0x1CEE, "bufferedchildstats"}, + { 0x1CEF, "bufferedstats"}, { 0x2015, "carryicon"}, { 0x23FF, "clearkillcamstate"}, { 0x2402, "clearlowermessages"}, @@ -71,6 +77,7 @@ extern std::array, token_count> const token_list { 0x36E4, "endsceneondeath"}, { 0x3E8E, "freezecontrolswrapper"}, { 0x3941, "exploder_sound"}, + { 0x3F9D, "gameended"}, { 0x3FA0, "gameflag"}, { 0x3FA1, "gameflagclear"}, { 0x3FA2, "gameflagexists"}, @@ -172,6 +179,7 @@ extern std::array, token_count> const token_list { 0x5F2B, "lowermessages"}, { 0x5FB6, "makeenemyusable"}, { 0x5FBD, "maketeamusable"}, + { 0x602B, "matchmakinggame"}, { 0x608B, "maxlives"}, { 0x6094, "maxplayercount"}, { 0x60B2, "mayspawn"}, @@ -179,7 +187,9 @@ extern std::array, token_count> const token_list { 0x6857, "nuked"}, { 0x6933, "objectivebased"}, { 0x69A9, "offhandclass"}, + { 0x6B4D, "onlinegame"}, { 0x6C3A, "orienttonormal"}, + { 0x6F79, "persistentdatainfo"}, { 0x71AC, "play_sound_on_tag"}, { 0x73C2, "playercardsplashnotify"}, { 0x73E2, "playerforclientid"}, @@ -197,6 +207,8 @@ extern std::array, token_count> const token_list { 0x7729, "printonteamarg"}, { 0x772A, "printonteam"}, { 0x7734, "priority"}, + { 0x773F, "privatematch"}, + { 0x7A69, "rankingenabled"}, { 0x7AD6, "reclaimedreservedobjectives"}, { 0x7BE5, "registerhalftimedvar"}, { 0x7BF1, "registernumlivesdvar"}, @@ -221,6 +233,7 @@ extern std::array, token_count> const token_list { 0x827E, "script_savedata"}, { 0x828A, "script_sound"}, { 0x82EE, "scriptperks"}, + { 0x8626, "setaltsceneobj"}, { 0x86D8, "setobjectivehinttext"}, { 0x86DB, "setobjectivescoretext"}, { 0x86DC, "setobjectivetext"}, @@ -236,11 +249,18 @@ extern std::array, token_count> const token_list { 0x910F, "splitscreen"}, { 0x9309, "starttime"}, { 0x9314, "statadd"}, + { 0x9315, "stataddbuffered"}, + { 0x9317, "stataddchild"}, + { 0x9318, "stataddchildbuffered"}, { 0x932F, "statget"}, { 0x9330, "statgetbuffered"}, + { 0x9331, "statgetchild"}, + { 0x9332, "statgetchildbuffered"}, { 0x9337, "stats"}, { 0x9338, "statset"}, { 0x9339, "statsetbuffered"}, + { 0x933A, "statsetchild"}, + { 0x933B, "statsetchildbuffered"}, { 0x93B1, "stockammo"}, { 0x9472, "strip_suffix"}, { 0x984D, "teambased"}, @@ -252,6 +272,7 @@ extern std::array, token_count> const token_list { 0x9A11, "timerpausetime"}, { 0x9A12, "timerstopped"}, { 0x9AC1, "touchingbadtrigger"}, + { 0xA0ED, "updatebufferedstats"}, { 0xA131, "updatelowermessage"}, { 0xA132, "updatemainmenu"}, { 0xA143, "updateobjectivetext"}, @@ -268,6 +289,7 @@ extern std::array, token_count> const token_list { 0xA875, "wasonlyround"}, { 0xA901, "watchdvars"}, { 0xA9E7, "weapons"}, + { 0xAAB9, "writebufferedstats"}, }}; } // namespace xsk::gsc::s2 From 18891b1eddc4e663aad112cde3cfae8dbae3b334 Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 06:30:47 +0000 Subject: [PATCH 03/16] feat: s2 tokens and methods --- src/gsc/engine/s2_func.cpp | 4 ++-- src/gsc/engine/s2_meth.cpp | 2 +- src/gsc/engine/s2_token.cpp | 23 +++++++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index d86bed57..7b60e257 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -329,7 +329,7 @@ extern std::array, func_count> const func_list { 0x13D, "_func_13D" }, { 0x13E, "_func_13E" }, { 0x13F, "_func_13F" }, - { 0x140, "_func_140" }, + { 0x140, "precachestring" }, { 0x141, "_func_141" }, { 0x142, "_func_142" }, { 0x143, "_func_143" }, @@ -480,7 +480,7 @@ extern std::array, func_count> const func_list { 0x1D4, "weaponinventorytype" }, { 0x1D5, "_func_1D5" }, { 0x1D6, "_func_1D6" }, - { 0x1D7, "_func_1D7" }, + { 0x1D7, "weaponaltweaponname" }, { 0x1D8, "_func_1D8" }, { 0x1D9, "_func_1D9" }, { 0x1DA, "_func_1DA" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index ac12ba5f..b1e5f62f 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -795,7 +795,7 @@ extern std::array, meth_count> const meth_list { 0x830E, "_meth_830E" }, { 0x830F, "_meth_830F" }, { 0x8310, "getweaponlistall" }, - { 0x8311, "_meth_8311" }, + { 0x8311, "getweaponlistprimaries" }, { 0x8312, "_meth_8312" }, { 0x8313, "giveweapon" }, { 0x8314, "takeweapon" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index cb6f7839..e878f8e8 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -42,6 +42,7 @@ extern std::array, token_count> const token_list { 0x507, "maps/mp/gametypes/_rank"}, { 0x600, "_disableoffhandweapons"}, { 0x642, "_giveweapon"}, + { 0x649, "_hasperk"}, { 0x68B, "_objective_delete"}, { 0x69F, "_playlocalsound"}, { 0x6CF, "_setperk"}, @@ -59,6 +60,13 @@ extern std::array, token_count> const token_list { 0x1CEE, "bufferedchildstats"}, { 0x1CEF, "bufferedstats"}, { 0x2015, "carryicon"}, + { 0x2091, "ch_assists"}, + { 0x209A, "ch_hardpoints"}, + { 0x209B, "ch_kills"}, + { 0x209C, "ch_roundplayed"}, + { 0x209D, "ch_roundwin"}, + { 0x20A2, "ch_vehicle_killed"}, + { 0x20A3, "ch_vehicle_kills"}, { 0x23FF, "clearkillcamstate"}, { 0x2402, "clearlowermessages"}, { 0x2414, "clearusingremote"}, @@ -86,6 +94,7 @@ extern std::array, token_count> const token_list { 0x3FA5, "gameflagwait"}, { 0x3FA6, "gamehasstarted"}, { 0x3FDC, "gametype"}, + { 0x4032, "genericchallenge"}, { 0x4137, "get_damagable_grenade"}, { 0x4138, "get_damagable_grenade_pos"}, { 0x413A, "get_damagable_player"}, @@ -133,6 +142,7 @@ extern std::array, token_count> const token_list { 0x50EA, "incplayerstat"}, { 0x52BE, "initgameflags"}, { 0x5315, "initlevelflags"}, + { 0x5317, "initmissiondata"}, { 0x532D, "initpersstat"}, { 0x5335, "initplayerstat"}, { 0x5380, "inovertime"}, @@ -154,6 +164,7 @@ extern std::array, token_count> const token_list { 0x57C4, "issentry"}, { 0x581D, "isusingremote"}, { 0x5822, "isvalidclass"}, + { 0x5A71, "killstreaks"}, { 0x5A81, "killtrigger"}, { 0x5BDF, "lastslowprocessframe"}, { 0x5C39, "leaderdialog"}, @@ -182,17 +193,26 @@ extern std::array, token_count> const token_list { 0x602B, "matchmakinggame"}, { 0x608B, "maxlives"}, { 0x6094, "maxplayercount"}, + { 0x60B1, "mayprocesschallenges"}, { 0x60B2, "mayspawn"}, + { 0x6369, "monitorbombuse"}, + { 0x6392, "monitorfinalstandsurvival"}, + { 0x63A2, "monitorkilledkillstreak"}, + { 0x63A3, "monitorkillstreakprogress"}, + { 0x63DB, "monitorscavengerpickup"}, { 0x6810, "notifystring"}, { 0x6857, "nuked"}, { 0x6933, "objectivebased"}, { 0x69A9, "offhandclass"}, { 0x6B4D, "onlinegame"}, + { 0x6B6C, "onplayerconnect"}, { 0x6C3A, "orienttonormal"}, { 0x6F79, "persistentdatainfo"}, + { 0x6B82, "onplayerspawned"}, { 0x71AC, "play_sound_on_tag"}, { 0x73C2, "playercardsplashnotify"}, { 0x73E2, "playerforclientid"}, + { 0x73F4, "playerhasammo"}, { 0x7418, "playerkilled_internal"}, { 0x744A, "players"}, { 0x74D8, "playsoundinspace"}, @@ -208,6 +228,8 @@ extern std::array, token_count> const token_list { 0x772A, "printonteam"}, { 0x7734, "priority"}, { 0x773F, "privatematch"}, + { 0x7750, "processchallenge"}, + { 0x7A67, "rankedmatch"}, { 0x7A69, "rankingenabled"}, { 0x7AD6, "reclaimedreservedobjectives"}, { 0x7BE5, "registerhalftimedvar"}, @@ -218,6 +240,7 @@ extern std::array, token_count> const token_list { 0x7BF9, "registerscorelimitdvar"}, { 0x7BFA, "registertimelimitdvar"}, { 0x7BFF, "registerwatchdvar"}, + { 0x7BEF, "registermissioncallback"}, { 0x7C00, "registerwatchdvarfloat"}, { 0x7C01, "registerwatchdvarint"}, { 0x7C04, "registerwinlimitdvar"}, From b5ae91494267c7be0403fd9dd8b3064123f57f97 Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 06:33:56 +0000 Subject: [PATCH 04/16] fix: update token_count size --- include/xsk/gsc/engine/s2.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 07de5583..3601ed12 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 280; +constexpr usize token_count = 303; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context From 094ec6ca647149ff0bb212799438296e0afaef83 Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 07:34:05 +0000 Subject: [PATCH 05/16] chore: s2 token mapping --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_func.cpp | 4 +-- src/gsc/engine/s2_meth.cpp | 14 ++++----- src/gsc/engine/s2_token.cpp | 57 ++++++++++++++++++++++++++++++++++- 4 files changed, 66 insertions(+), 11 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 3601ed12..67014d02 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 303; +constexpr usize token_count = 358; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index 7b60e257..fd9b45cd 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -435,10 +435,10 @@ extern std::array, func_count> const func_list { 0x1A7, "_func_1A7" }, { 0x1A8, "_func_1A8" }, { 0x1A9, "_func_1A9" }, - { 0x1AA, "_func_1AA" }, + { 0x1AA, "weaponclass" }, { 0x1AB, "getnextarraykey" }, { 0x1AC, "_func_1AC" }, - { 0x1AD, "_func_1AD" }, + { 0x1AD, "tablelookup" }, { 0x1AE, "_func_1AE" }, { 0x1AF, "_func_1AF" }, { 0x1B0, "_func_1B0" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index b1e5f62f..ed55c499 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -53,7 +53,7 @@ extern std::array, meth_count> const meth_list { 0x8028, "_meth_8028" }, { 0x8029, "_meth_8029" }, { 0x802A, "_meth_802A" }, - { 0x802B, "_meth_802B" }, + { 0x802B, "logstring" }, { 0x802C, "_meth_802C" }, { 0x802D, "_meth_802D" }, { 0x802E, "_meth_802E" }, @@ -136,7 +136,7 @@ extern std::array, meth_count> const meth_list { 0x807B, "_meth_807B" }, { 0x807C, "_meth_807C" }, { 0x807D, "_meth_807D" }, - { 0x807E, "_meth_807E" }, + { 0x807E, "fadeovertime" }, { 0x807F, "_meth_807F" }, { 0x8080, "_meth_8080" }, { 0x8081, "_meth_8081" }, @@ -393,7 +393,7 @@ extern std::array, meth_count> const meth_list { 0x817C, "_meth_817C" }, { 0x817D, "_meth_817D" }, { 0x817E, "_meth_817E" }, - { 0x817F, "_meth_817F" }, + { 0x817F, "getammocount" }, { 0x8180, "gettagorigin" }, { 0x8181, "_meth_8181" }, { 0x8182, "_meth_8182" }, @@ -831,8 +831,8 @@ extern std::array, meth_count> const meth_list { 0x8332, "_meth_8332" }, { 0x8333, "_meth_8333" }, { 0x8334, "_meth_8334" }, - { 0x8335, "_meth_8335" }, - { 0x8336, "_meth_8336" }, + { 0x8335, "givestartammo" }, + { 0x8336, "givemaxammo" }, { 0x8337, "_meth_8337" }, { 0x8338, "_meth_8338" }, { 0x8339, "_meth_8339" }, @@ -1543,8 +1543,8 @@ extern std::array, meth_count> const meth_list { 0x85FA, "_meth_85FA" }, { 0x85FB, "_meth_85FB" }, { 0x85FC, "_meth_85FC" }, - { 0x85FD, "_meth_85FD" }, - { 0x85FE, "_meth_85FE" }, + { 0x85FD, "isitemunlocked2" }, + { 0x85FE, "isitemunlocked" }, { 0x85FF, "_meth_85FF" }, { 0x8600, "_meth_8600" }, { 0x8601, "_meth_8601" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index e878f8e8..114f2ee1 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -47,6 +47,7 @@ extern std::array, token_count> const token_list { 0x69F, "_playlocalsound"}, { 0x6CF, "_setperk"}, { 0x6D0, "_setactionslot"}, + { 0x6D7, "_setperk1"}, { 0x728, "_suicide"}, { 0x72B, "_takeweaponsexcept"}, { 0x734, "_unsetperk"}, @@ -57,8 +58,24 @@ extern std::array, token_count> const token_list { 0x888, "actionslots"}, { 0x9C7, "addlowermessage"}, { 0x9F6, "addtime"}, + { 0x1905, "bombsquadicons"}, + { 0x1905, "bombsquadids"}, { 0x1CEE, "bufferedchildstats"}, { 0x1CEF, "bufferedstats"}, + { 0x1E02, "cac_getdivision"}, + { 0x1E03, "cac_getequipment"}, + { 0x1E04, "cac_getequipmentextra"}, + { 0x1E06, "cac_getkillstreak"}, + { 0x1E09, "cac_getperk"}, + { 0x1E0A, "cac_getweapon"}, + { 0x1E0B, "cac_getweaponattachment"}, + { 0x1E0C, "cac_getweaponcamo"}, + { 0x1E0D, "cac_getweaponcamo2"}, + { 0x1E0F, "cac_getweaponcustomization"}, + { 0x1E0F, "cac_getweaponreticle"}, + { 0x1E10, "cac_getdefaultequipment"}, + { 0x1E11, "cac_getdefaultperk"}, + { 0x1E12, "cac_getdefaultweapon"}, { 0x2015, "carryicon"}, { 0x2091, "ch_assists"}, { 0x209A, "ch_hardpoints"}, @@ -67,17 +84,25 @@ extern std::array, token_count> const token_list { 0x209D, "ch_roundwin"}, { 0x20A2, "ch_vehicle_killed"}, { 0x20A3, "ch_vehicle_kills"}, + { 0x2319, "class"}, + { 0x231E, "classgrenades"}, + { 0x2321, "classmap"}, + { 0x2324, "classtablename"}, { 0x23FF, "clearkillcamstate"}, { 0x2402, "clearlowermessages"}, { 0x2414, "clearusingremote"}, { 0x2418, "clientid"}, { 0x2429, "clipammol"}, { 0x242A, "clipammor"}, + { 0x242D, "cloneloadout"}, { 0x260C, "frozen"}, { 0x2893, "_stoplocalsound"}, + { 0x28D0, "curclass"}, { 0x2953, "currentweapon"}, { 0x29B6, "damagecenter"}, + { 0x2BC2, "defaultclass"}, { 0x2D46, "deleteplacedentity"}, + { 0x2E51, "detectexplosives"}, { 0x2FB1, "discardtime"}, { 0x35F6, "empplayer"}, { 0x3516, "dvarfloatvalue"}, @@ -85,6 +110,7 @@ extern std::array, token_count> const token_list { 0x36E4, "endsceneondeath"}, { 0x3E8E, "freezecontrolswrapper"}, { 0x3941, "exploder_sound"}, + { 0x39C3, "fadeaway"}, { 0x3F9D, "gameended"}, { 0x3FA0, "gameflag"}, { 0x3FA1, "gameflagclear"}, @@ -101,6 +127,8 @@ extern std::array, token_count> const token_list { 0x413B, "get_damagable_player_pos"}, { 0x413C, "get_damagable_sentry"}, { 0x442E, "getaverageorigin"}, + { 0x445C, "getclasschoice"}, + { 0x445D, "getclassindex"}, { 0x44AB, "getdvarvec"}, { 0x44E8, "getfloatproperty"}, { 0x44FC, "getgametypenumlives"}, @@ -108,6 +136,7 @@ extern std::array, token_count> const token_list { 0x4529, "getintproperty"}, { 0x454F, "getlastlivingplayer"}, { 0x455E, "getlivingplayers"}, + { 0x455F, "giveloadout"}, { 0x4569, "getlowermessage"}, { 0x4589, "getminutespassed"}, { 0x45AD, "getnextlifeid"}, @@ -130,7 +159,9 @@ extern std::array, token_count> const token_list { 0x46E2, "gettimelimit"}, { 0x470E, "getvalueinrange"}, { 0x471A, "getwatcheddvar"}, + { 0x4729, "getweaponchoice"}, { 0x472A, "getweaponclass"}, + { 0x47A2, "giveperk"}, { 0x4B96, "hasspawned"}, { 0x48CA, "guid"}, { 0x4B17, "hardcoremode"}, @@ -163,9 +194,13 @@ extern std::array, token_count> const token_list { 0x57B2, "isroundbased"}, { 0x57C4, "issentry"}, { 0x581D, "isusingremote"}, + { 0x5820, "isvalidattachment"}, { 0x5822, "isvalidclass"}, + { 0x5835, "isvalidprimary"}, + { 0x5839, "isvalidsecondary"}, { 0x5A71, "killstreaks"}, { 0x5A81, "killtrigger"}, + { 0x5B84, "lastclass"}, { 0x5BDF, "lastslowprocessframe"}, { 0x5C39, "leaderdialog"}, { 0x5C3D, "leaderdialogactive"}, @@ -185,6 +220,7 @@ extern std::array, token_count> const token_list { 0x5CBF, "levelflagwait"}, { 0x5CC0, "levelflagwaitopen"}, { 0x5D7F, "limitdecimalplaces"}, + { 0x5E8D, "logclasschoice"}, { 0x5F29, "lowermessage"}, { 0x5F30, "lowertimer"}, { 0x5F2B, "lowermessages"}, @@ -195,6 +231,7 @@ extern std::array, token_count> const token_list { 0x6094, "maxplayercount"}, { 0x60B1, "mayprocesschallenges"}, { 0x60B2, "mayspawn"}, + { 0x6254, "missioncallbacks"}, { 0x6369, "monitorbombuse"}, { 0x6392, "monitorfinalstandsurvival"}, { 0x63A2, "monitorkilledkillstreak"}, @@ -206,9 +243,10 @@ extern std::array, token_count> const token_list { 0x69A9, "offhandclass"}, { 0x6B4D, "onlinegame"}, { 0x6B6C, "onplayerconnect"}, + { 0x6B71, "onplayerconnecting"}, + { 0x6B82, "onplayerspawned"}, { 0x6C3A, "orienttonormal"}, { 0x6F79, "persistentdatainfo"}, - { 0x6B82, "onplayerspawned"}, { 0x71AC, "play_sound_on_tag"}, { 0x73C2, "playercardsplashnotify"}, { 0x73E2, "playerforclientid"}, @@ -217,6 +255,7 @@ extern std::array, token_count> const token_list { 0x744A, "players"}, { 0x74D8, "playsoundinspace"}, { 0x74D9, "playsoundonplayers"}, + { 0x7704, "primaryweapon"}, { 0x771A, "printandsoundoneveryone"}, { 0x771B, "printandsoundonplayer"}, { 0x771C, "printandsoundonteam"}, @@ -245,6 +284,7 @@ extern std::array, token_count> const token_list { 0x7C01, "registerwatchdvarint"}, { 0x7C04, "registerwinlimitdvar"}, { 0x7CE9, "removelowermessage"}, + { 0x7D13, "replenishloadout"}, { 0x7DEF, "restoredata"}, { 0x7F26, "roundswitch"}, { 0x7F27, "roundswitchdvar"}, @@ -257,6 +297,7 @@ extern std::array, token_count> const token_list { 0x828A, "script_sound"}, { 0x82EE, "scriptperks"}, { 0x8626, "setaltsceneobj"}, + { 0x864F, "setclass"}, { 0x86D8, "setobjectivehinttext"}, { 0x86DB, "setobjectivescoretext"}, { 0x86DC, "setobjectivetext"}, @@ -286,6 +327,20 @@ extern std::array, token_count> const token_list { 0x933B, "statsetchildbuffered"}, { 0x93B1, "stockammo"}, { 0x9472, "strip_suffix"}, + { 0x9583, "table_getdivision"}, + { 0x9584, "table_getequipment"}, + { 0x9586, "table_getkillstreak"}, + { 0x9587, "table_getoffhand"}, + { 0x9588, "table_getoffhandextra"}, + { 0x9589, "table_getperk"}, + { 0x958A, "table_getperkteam"}, + { 0x958B, "table_getweaponattachment"}, + { 0x958C, "table_getweaponbuff"}, + { 0x958D, "table_getweaponcamo2"}, + { 0x958E, "table_getweaponcamo"}, + { 0x958F, "table_getweaponcustomization"}, + { 0x9590, "table_getweapon"}, + { 0x9591, "table_getweaponreticle"}, { 0x984D, "teambased"}, { 0x9852, "teamemped"}, { 0x9863, "teamplayercardsplash"}, From a23f5a5c7665841232db80c915b2ed66d05e661c Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 08:06:44 +0000 Subject: [PATCH 06/16] chore: s2 token mapping --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_func.cpp | 2 +- src/gsc/engine/s2_meth.cpp | 4 ++-- src/gsc/engine/s2_token.cpp | 26 ++++++++++++++++++++++++++ 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 67014d02..eb6f5fd2 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 358; +constexpr usize token_count = 384; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index fd9b45cd..d6c346f8 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -366,7 +366,7 @@ extern std::array, func_count> const func_list { 0x162, "_func_162" }, { 0x163, "_func_163" }, { 0x164, "_func_164" }, - { 0x165, "_func_165" }, + { 0x165, "exitlevel" }, { 0x166, "_func_166" }, { 0x167, "_func_167" }, { 0x168, "_func_168" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index ed55c499..03134cbf 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -687,7 +687,7 @@ extern std::array, meth_count> const meth_list { 0x82A2, "_meth_82A2" }, { 0x82A3, "_meth_82A3" }, { 0x82A4, "_meth_82A4" }, - { 0x82A5, "_meth_82A5" }, + { 0x82A5, "setrank" }, { 0x82A6, "_meth_82A6" }, { 0x82A7, "_meth_82A7" }, { 0x82A8, "_meth_82A8" }, @@ -779,7 +779,7 @@ extern std::array, meth_count> const meth_list { 0x82FE, "_meth_82FE" }, { 0x82FF, "_meth_82FF" }, { 0x8300, "setclientdvar" }, - { 0x8301, "_meth_8301" }, + { 0x8301, "setclientdvars" }, { 0x8302, "_meth_8302" }, { 0x8303, "_meth_8303" }, { 0x8304, "_meth_8304" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index 114f2ee1..2cfcbc3b 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -104,6 +104,7 @@ extern std::array, token_count> const token_list { 0x2D46, "deleteplacedentity"}, { 0x2E51, "detectexplosives"}, { 0x2FB1, "discardtime"}, + { 0x305B, "divisionrankscale"}, { 0x35F6, "empplayer"}, { 0x3516, "dvarfloatvalue"}, { 0x3517, "dvarintvalue"}, @@ -129,6 +130,7 @@ extern std::array, token_count> const token_list { 0x442E, "getaverageorigin"}, { 0x445C, "getclasschoice"}, { 0x445D, "getclassindex"}, + { 0x44A3, "getdivisionrankscale"}, { 0x44AB, "getdvarvec"}, { 0x44E8, "getfloatproperty"}, { 0x44FC, "getgametypenumlives"}, @@ -150,18 +152,31 @@ extern std::array, token_count> const token_list { 0x4628, "getplayerstat"}, { 0x4629, "getplayerstattime"}, { 0x4630, "getpotentiallivingplayers"}, + { 0x4639, "getprestigelevel"}, { 0x463A, "getproperty"}, + { 0x4653, "getrankforxp"}, + { 0x4655, "getrankinfofull"}, + { 0x4656, "getrankinfolevel"}, + { 0x4657, "getrankinfomaxxp"}, + { 0x4658, "getrankinfominxp"}, + { 0x465A, "getrankinfoxpamt"}, + { 0x465B, "getranktable"}, + { 0x465D, "getrankscale"}, { 0x4664, "getremotename"}, { 0x4669, "getroundswon"}, + { 0x4671, "getscoreinfovalue"}, { 0x4672, "getscorelimit"}, { 0x46E3, "gettimepassed"}, + { 0x46EC, "getrankxp"}, { 0x467B, "getsecondspassed"}, { 0x46E2, "gettimelimit"}, { 0x470E, "getvalueinrange"}, { 0x471A, "getwatcheddvar"}, { 0x4729, "getweaponchoice"}, { 0x472A, "getweaponclass"}, + { 0x473E, "getweaponrankscale"}, { 0x47A2, "giveperk"}, + { 0x47B2, "giverankxp"}, { 0x4B96, "hasspawned"}, { 0x48CA, "guid"}, { 0x4B17, "hardcoremode"}, @@ -229,6 +244,9 @@ extern std::array, token_count> const token_list { 0x602B, "matchmakinggame"}, { 0x608B, "maxlives"}, { 0x6094, "maxplayercount"}, + { 0x6097, "maxprestige"}, + { 0x609A, "maxrank"}, + { 0x609B, "maxrankfinalprestige"}, { 0x60B1, "mayprocesschallenges"}, { 0x60B2, "mayspawn"}, { 0x6254, "missioncallbacks"}, @@ -270,6 +288,8 @@ extern std::array, token_count> const token_list { 0x7750, "processchallenge"}, { 0x7A67, "rankedmatch"}, { 0x7A69, "rankingenabled"}, + { 0x7A6B, "ranktable"}, + { 0x7A6E, "rankscale"}, { 0x7AD6, "reclaimedreservedobjectives"}, { 0x7BE5, "registerhalftimedvar"}, { 0x7BF1, "registernumlivesdvar"}, @@ -342,6 +362,7 @@ extern std::array, token_count> const token_list { 0x9590, "table_getweapon"}, { 0x9591, "table_getweaponreticle"}, { 0x984D, "teambased"}, + { 0x984F, "teamcount"}, { 0x9852, "teamemped"}, { 0x9863, "teamplayercardsplash"}, { 0x991F, "text"}, @@ -356,18 +377,23 @@ extern std::array, token_count> const token_list { 0xA143, "updateobjectivetext"}, { 0xA14B, "updatepersratio"}, { 0xA14C, "updatepersratiobuffered"}, + { 0xA158, "updaterankannouncehud"}, { 0xA193, "updatewatcheddvar"}, { 0xA194, "updatewatcheddvars"}, { 0xA25C, "usingremote"}, { 0xA281, "value"}, { 0xA6D1, "waitfortimeornotify"}, + { 0xA74B, "waittill_notify_or_timeout"}, { 0xA78E, "waittillrecoveredhealth"}, { 0xA790, "waittillslowprocessallowed"}, { 0xA872, "waslastround"}, { 0xA875, "wasonlyround"}, { 0xA901, "watchdvars"}, { 0xA9E7, "weapons"}, + { 0xA9FA, "weaponrankscale"}, { 0xAAB9, "writebufferedstats"}, + { 0xAAD1, "scoreinfo"}, + { 0xA0F3, "updatechalleges"}, }}; } // namespace xsk::gsc::s2 From 9f14e09af79bef7424beb23a1d73941e5dbab472 Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 24 Jan 2025 09:03:58 +0000 Subject: [PATCH 07/16] chore: s2 token mapping --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_meth.cpp | 6 ++-- src/gsc/engine/s2_token.cpp | 67 +++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 4 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index eb6f5fd2..f337735e 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 384; +constexpr usize token_count = 451; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index 03134cbf..bc40dbbd 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -137,7 +137,7 @@ extern std::array, meth_count> const meth_list { 0x807C, "_meth_807C" }, { 0x807D, "_meth_807D" }, { 0x807E, "fadeovertime" }, - { 0x807F, "_meth_807F" }, + { 0x807F, "scaleovertime" }, { 0x8080, "_meth_8080" }, { 0x8081, "_meth_8081" }, { 0x8082, "_meth_8082" }, @@ -201,7 +201,7 @@ extern std::array, meth_count> const meth_list { 0x80BC, "_meth_80BC" }, { 0x80BD, "settext" }, { 0x80BE, "_meth_80BE" }, - { 0x80BF, "_meth_80BF" }, + { 0x80BF, "setshader" }, { 0x80C0, "_meth_80C0" }, { 0x80C1, "_meth_80C1" }, { 0x80C2, "settimer" }, @@ -212,7 +212,7 @@ extern std::array, meth_count> const meth_list { 0x80C7, "_meth_80C7" }, { 0x80C8, "_meth_80C8" }, { 0x80C9, "_meth_80C9" }, - { 0x80CA, "_meth_80CA" }, + { 0x80CA, "setvalue" }, { 0x80CB, "_meth_80CB" }, { 0x80CC, "_meth_80CC" }, { 0x80CD, "_meth_80CD" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index 2cfcbc3b..ea2b38e3 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -17,11 +17,19 @@ extern std::array, token_count> const token_list { 0x04, "note:" }, { 0x18, "alpha" }, { 0x1D, "angles" }, + { 0x1F, "archived" }, + { 0x56, "color" }, + { 0x70, "deaths" }, { 0x8E, "entity" }, { 0x9F, "forcespectatorclient" }, + { 0xA0, "foreground" }, + { 0xAA, "glowalpha" }, + { 0xAB, "glowcolor" }, { 0xBC, "health" }, + { 0xC2, "hidewheninmenu" }, { 0xD5, "init" }, { 0xE1, "killcamentity" }, + { 0xE5, "label" }, { 0xF9, "main" }, { 0xFB, "maxhealth" }, { 0x109, "name" }, @@ -29,12 +37,16 @@ extern std::array, token_count> const token_list { 0x12C, "pers" }, { 0x15C, "score" }, { 0x161, "script_delay" }, + { 0x184, "sort" }, { 0x1A7, "team" }, { 0x1B9, "type" }, + { 0x28E, "maps/mp/__utility"}, + { 0x47D, "maps/mp/_flashgrenades"}, { 0x495, "maps/mp/_utility"}, { 0x4C4, "maps/mp/gametypes/_class"}, { 0x4C6, "maps/mp/gametypes/_damage"}, { 0x4E4, "maps/mp/gametypes/_hud_message"}, + { 0x4E5, "maps/mp/gametypes/_hud_util"}, { 0x4E9, "maps/mp/gametypes/_missions"}, { 0x4ED, "maps/mp/gametypes/_persistence"}, { 0x4EE, "maps/mp/gametypes/_playercards"}, @@ -55,6 +67,8 @@ extern std::array, token_count> const token_list { 0x73A, "_updateteamusable"}, { 0x83B, "perks"}, { 0x842, "perkunsetfuncs"}, + { 0x884, "actionnotify"}, + { 0x885, "actionnotifymessage"}, { 0x888, "actionslots"}, { 0x9C7, "addlowermessage"}, { 0x9F6, "addtime"}, @@ -76,6 +90,7 @@ extern std::array, token_count> const token_list { 0x1E10, "cac_getdefaultequipment"}, { 0x1E11, "cac_getdefaultperk"}, { 0x1E12, "cac_getdefaultweapon"}, + { 0x1F68, "canreadtext"}, { 0x2015, "carryicon"}, { 0x2091, "ch_assists"}, { 0x209A, "ch_hardpoints"}, @@ -96,16 +111,22 @@ extern std::array, token_count> const token_list { 0x242A, "clipammor"}, { 0x242D, "cloneloadout"}, { 0x260C, "frozen"}, + { 0x27ED, "createfontstring"}, + { 0x280B, "createicon"}, { 0x2893, "_stoplocalsound"}, { 0x28D0, "curclass"}, { 0x2953, "currentweapon"}, { 0x29B6, "damagecenter"}, { 0x2BC2, "defaultclass"}, { 0x2D46, "deleteplacedentity"}, + { 0x2DCC, "destroyelem"}, { 0x2E51, "detectexplosives"}, { 0x2FB1, "discardtime"}, + { 0x2FEF, "dispatchnotify"}, { 0x305B, "divisionrankscale"}, + { 0x3202, "doingsplash"}, { 0x35F6, "empplayer"}, + { 0x3511, "duration"}, { 0x3516, "dvarfloatvalue"}, { 0x3517, "dvarintvalue"}, { 0x36E4, "endsceneondeath"}, @@ -127,6 +148,7 @@ extern std::array, token_count> const token_list { 0x413A, "get_damagable_player"}, { 0x413B, "get_damagable_player_pos"}, { 0x413C, "get_damagable_sentry"}, + { 0x4369, "getsplashtable"}, { 0x442E, "getaverageorigin"}, { 0x445C, "getclasschoice"}, { 0x445D, "getclassindex"}, @@ -180,15 +202,19 @@ extern std::array, token_count> const token_list { 0x4B96, "hasspawned"}, { 0x48CA, "guid"}, { 0x4B17, "hardcoremode"}, + { 0x4DC1, "hintmessage"}, { 0x4DDD, "hitroundlimit"}, { 0x4DE2, "hitscorelimit"}, { 0x4E09, "hostmigrationtimer"}, { 0x4DE7, "hitwinlimit"}, + { 0x5019, "iconname"}, + { 0x501E, "iconoverlay"}, { 0x50E9, "incpersstat"}, { 0x50EA, "incplayerstat"}, { 0x52BE, "initgameflags"}, { 0x5315, "initlevelflags"}, { 0x5317, "initmissiondata"}, + { 0x5320, "initnotifymessage"}, { 0x532D, "initpersstat"}, { 0x5335, "initplayerstat"}, { 0x5380, "inovertime"}, @@ -196,9 +222,11 @@ extern std::array, token_count> const token_list { 0x5694, "isbulletdamage"}, { 0x5699, "iscacprimaryweapon"}, { 0x569A, "iscacsecondaryweapon"}, + { 0x56CE, "isdoingsplash"}, { 0x56D8, "isemped"}, { 0x56E0, "isexcluded"}, { 0x56E5, "isexplosivedamage"}, + { 0x56F3, "isflashbanged"}, { 0x56F6, "isfloat"}, { 0x5740, "iskillstreakweapon"}, { 0x5743, "islastround"}, @@ -214,6 +242,7 @@ extern std::array, token_count> const token_list { 0x5835, "isvalidprimary"}, { 0x5839, "isvalidsecondary"}, { 0x5A71, "killstreaks"}, + { 0x5A78, "killstreaksplashnotify"}, { 0x5A81, "killtrigger"}, { 0x5B84, "lastclass"}, { 0x5BDF, "lastslowprocessframe"}, @@ -227,6 +256,8 @@ extern std::array, token_count> const token_list { 0x5C45, "playleaderdialogonplayer"}, { 0x5C46, "leaderdialogonplayers"}, { 0x5C47, "leaderdialogqueue"}, + { 0x5C49, "leadersound"}, + { 0x5C4A, "leadersoundgroup"}, { 0x5CBA, "levelflag"}, { 0x5CBA, "levelflagclear"}, { 0x5CBC, "levelflaginit"}, @@ -239,9 +270,13 @@ extern std::array, token_count> const token_list { 0x5F29, "lowermessage"}, { 0x5F30, "lowertimer"}, { 0x5F2B, "lowermessages"}, + { 0x5F2C, "lowermessagethink"}, + { 0x5F2D, "lowertextfontsize"}, + { 0x5F2F, "lowetextyalign"}, { 0x5FB6, "makeenemyusable"}, { 0x5FBD, "maketeamusable"}, { 0x602B, "matchmakinggame"}, + { 0x602C, "matchoutcomenotify"}, { 0x608B, "maxlives"}, { 0x6094, "maxplayercount"}, { 0x6097, "maxprestige"}, @@ -256,15 +291,27 @@ extern std::array, token_count> const token_list { 0x63A3, "monitorkillstreakprogress"}, { 0x63DB, "monitorscavengerpickup"}, { 0x6810, "notifystring"}, + { 0x6811, "notifytext"}, + { 0x6812, "notifytext2"}, + { 0x6813, "notifytitle"}, + { 0x680A, "notifyicon"}, + { 0x680B, "notifymessage"}, + { 0x680F, "notifyoverlay"}, { 0x6857, "nuked"}, { 0x6933, "objectivebased"}, { 0x69A9, "offhandclass"}, + { 0x6A64, "oldnotifymessage"}, { 0x6B4D, "onlinegame"}, { 0x6B6C, "onplayerconnect"}, { 0x6B71, "onplayerconnecting"}, { 0x6B82, "onplayerspawned"}, + { 0x6C18, "optionalnumber"}, { 0x6C3A, "orienttonormal"}, + { 0x6C65, "outcomenotify"}, + { 0x6C66, "outcomeoverlay"}, + { 0x6CAE, "overlayoffsety"}, { 0x6F79, "persistentdatainfo"}, + { 0x7006, "placement"}, { 0x71AC, "play_sound_on_tag"}, { 0x73C2, "playercardsplashnotify"}, { 0x73E2, "playerforclientid"}, @@ -273,6 +320,7 @@ extern std::array, token_count> const token_list { 0x744A, "players"}, { 0x74D8, "playsoundinspace"}, { 0x74D9, "playsoundonplayers"}, + { 0x75E5, "postgamepromotion"}, { 0x7704, "primaryweapon"}, { 0x771A, "printandsoundoneveryone"}, { 0x771B, "printandsoundonplayer"}, @@ -286,8 +334,10 @@ extern std::array, token_count> const token_list { 0x7734, "priority"}, { 0x773F, "privatematch"}, { 0x7750, "processchallenge"}, + { 0x7777, "promotionsplashnotify"}, { 0x7A67, "rankedmatch"}, { 0x7A69, "rankingenabled"}, + { 0x7A6A, "ranksplashnotify"}, { 0x7A6B, "ranktable"}, { 0x7A6E, "rankscale"}, { 0x7AD6, "reclaimedreservedobjectives"}, @@ -305,6 +355,9 @@ extern std::array, token_count> const token_list { 0x7C04, "registerwinlimitdvar"}, { 0x7CE9, "removelowermessage"}, { 0x7D13, "replenishloadout"}, + { 0x7D64, "resetnotify"}, + { 0x7D65, "resetoncancel"}, + { 0x7D66, "resetondeath"}, { 0x7DEF, "restoredata"}, { 0x7F26, "roundswitch"}, { 0x7F27, "roundswitchdvar"}, @@ -322,14 +375,20 @@ extern std::array, token_count> const token_list { 0x86DB, "setobjectivescoretext"}, { 0x86DC, "setobjectivetext"}, { 0x86EB, "setovertimelimitdvar"}, + { 0x86EF, "setparent"}, { 0x86F5, "setpersstat"}, { 0x8702, "setplayerstat"}, { 0x8703, "setplayerstatifgreater"}, { 0x8704, "setplayerstatiflower"}, + { 0x8707, "setpoint"}, { 0x871E, "setselfusable"}, { 0x8742, "setthirdpersondof"}, { 0x8A5B, "setusingremote"}, + { 0x8C0F, "shownotifymessage"}, + { 0x8CA3, "slot"}, { 0x8F25, "sortlowermessages"}, + { 0x8F2C, "sound"}, + { 0x9106, "splashqueue"}, { 0x910F, "splitscreen"}, { 0x9309, "starttime"}, { 0x9314, "statadd"}, @@ -346,6 +405,7 @@ extern std::array, token_count> const token_list { 0x933A, "statsetchild"}, { 0x933B, "statsetchildbuffered"}, { 0x93B1, "stockammo"}, + { 0x9468, "stringtofloat"}, { 0x9472, "strip_suffix"}, { 0x9583, "table_getdivision"}, { 0x9584, "table_getequipment"}, @@ -364,12 +424,18 @@ extern std::array, token_count> const token_list { 0x984D, "teambased"}, { 0x984F, "teamcount"}, { 0x9852, "teamemped"}, + { 0x985C, "teamoutcomenotify"}, { 0x9863, "teamplayercardsplash"}, { 0x991F, "text"}, + { 0x9928, "text2label"}, + { 0x992B, "textglowcolor"}, { 0x99AC, "throwinggrenade"}, { 0x99DA, "time"}, { 0x9A11, "timerpausetime"}, { 0x9A12, "timerstopped"}, + { 0x9A2C, "titleisstring"}, + { 0x9A2D, "titlelabel"}, + { 0x9A2E, "titletext"}, { 0x9AC1, "touchingbadtrigger"}, { 0xA0ED, "updatebufferedstats"}, { 0xA131, "updatelowermessage"}, @@ -383,6 +449,7 @@ extern std::array, token_count> const token_list { 0xA25C, "usingremote"}, { 0xA281, "value"}, { 0xA6D1, "waitfortimeornotify"}, + { 0xA6F9, "waitrequirevisibility"}, { 0xA74B, "waittill_notify_or_timeout"}, { 0xA78E, "waittillrecoveredhealth"}, { 0xA790, "waittillslowprocessallowed"}, From 3a74405c045c64facd74ffaf06080acac15c40a0 Mon Sep 17 00:00:00 2001 From: Liam Date: Sat, 25 Jan 2025 12:47:15 +0000 Subject: [PATCH 08/16] fix: ensure lowercase on functions --- src/gsc/engine/s2_func.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index d6c346f8..b4c9c942 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -70,7 +70,7 @@ extern std::array, func_count> const func_list { 0x03A, "getdvarint" }, { 0x03B, "getdvarfloat" }, { 0x03C, "_func_03C" }, - { 0x03D, "getTime" }, + { 0x03D, "gettime" }, { 0x03E, "_func_03E" }, { 0x03F, "_func_03F" }, { 0x040, "_func_040" }, From 84cd42ad5f8a25e2d118ab95397f08373f26a2e3 Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 26 Jan 2025 14:18:42 +0000 Subject: [PATCH 09/16] feat: s2 token mapping --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_func.cpp | 20 ++-- src/gsc/engine/s2_meth.cpp | 20 ++-- src/gsc/engine/s2_token.cpp | 218 +++++++++++++++++++++++++++++++++- 4 files changed, 234 insertions(+), 26 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index d6590239..7153906d 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 451; +constexpr usize token_count = 647; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index b985cf28..c243a8ee 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -63,7 +63,7 @@ extern std::array, func_count> const func_list { 0x033, "_func_033" }, { 0x034, "setdvar" }, { 0x035, "_func_035" }, - { 0x036, "_func_036" }, + { 0x036, "setdvarifuninitialized" }, { 0x037, "_func_037" }, { 0x038, "_func_038" }, { 0x039, "getdvar" }, @@ -171,7 +171,7 @@ extern std::array, func_count> const func_list { 0x09F, "_func_09F" }, { 0x0A0, "_func_0A0" }, { 0x0A1, "_func_0A1" }, - { 0x0A2, "_func_0A2" }, + { 0x0A2, "randomint" }, { 0x0A3, "_func_0A3" }, { 0x0A4, "_func_0A4" }, { 0x0A5, "_func_0A5" }, @@ -228,20 +228,20 @@ extern std::array, func_count> const func_list { 0x0D8, "_func_0D8" }, { 0x0D9, "_func_0D9" }, { 0x0DA, "_func_0DA" }, - { 0x0DB, "_func_0DB" }, + { 0x0DB, "clamp" }, { 0x0DC, "_func_0DC" }, { 0x0DD, "_func_0DD" }, { 0x0DE, "_func_0DE" }, { 0x0DF, "_func_0DF" }, - { 0x0E0, "_func_0E0" }, + { 0x0E0, "distance" }, { 0x0E1, "_func_0E1" }, - { 0x0E2, "_func_0E2" }, + { 0x0E2, "distancesquared" }, { 0x0E3, "length" }, { 0x0E4, "_func_0E4" }, { 0x0E5, "_func_0E5" }, { 0x0E6, "_func_0E6" }, { 0x0E7, "_func_0E7" }, - { 0x0E8, "_func_0E8" }, + { 0x0E8, "vectordot" }, { 0x0E9, "_func_0E9" }, { 0x0EA, "_func_0EA" }, { 0x0EB, "_func_0EB" }, @@ -277,8 +277,8 @@ extern std::array, func_count> const func_list { 0x109, "_func_109" }, { 0x10A, "_func_10A" }, { 0x10B, "_func_10B" }, - { 0x10C, "_func_10C" }, - { 0x10D, "_func_10D" }, + { 0x10C, "anglestoup" }, + { 0x10D, "anglestoright" }, { 0x10E, "anglestoforward" }, { 0x10F, "_func_10F" }, { 0x110, "_func_110" }, @@ -326,7 +326,7 @@ extern std::array, func_count> const func_list { 0x13A, "_func_13A" }, { 0x13B, "_func_13B" }, { 0x13C, "_func_13C" }, - { 0x13D, "_func_13D" }, + { 0x13D, "precachemodel" }, { 0x13E, "_func_13E" }, { 0x13F, "_func_13F" }, { 0x140, "precachestring" }, @@ -343,7 +343,7 @@ extern std::array, func_count> const func_list { 0x14B, "_func_14B" }, { 0x14C, "_func_14C" }, { 0x14D, "_func_14D" }, - { 0x14E, "_func_14E" }, + { 0x14E, "setfxkillondelete" }, { 0x14F, "_func_14F" }, { 0x150, "_func_150" }, { 0x151, "_func_151" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index d19d78b5..01e55d74 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -44,7 +44,7 @@ extern std::array, meth_count> const meth_list { 0x801F, "_meth_801F" }, { 0x8020, "_meth_8020" }, { 0x8021, "_meth_8021" }, - { 0x8022, "_meth_8022" }, + { 0x8022, "attach" }, { 0x8023, "_meth_8023" }, { 0x8024, "_meth_8024" }, { 0x8025, "_meth_8025" }, @@ -56,11 +56,11 @@ extern std::array, meth_count> const meth_list { 0x802B, "logstring" }, { 0x802C, "_meth_802C" }, { 0x802D, "_meth_802D" }, - { 0x802E, "_meth_802E" }, - { 0x802F, "_meth_802F" }, - { 0x8030, "_meth_8030" }, - { 0x8031, "_meth_8031" }, - { 0x8032, "_meth_8032" }, + { 0x802E, "detach" }, + { 0x802F, "detachall" }, + { 0x8030, "getattachsize" }, + { 0x8031, "getattachmodelname" }, + { 0x8032, "getattachtagname" }, { 0x8033, "_meth_8033" }, { 0x8034, "_meth_8034" }, { 0x8035, "_meth_8035" }, @@ -166,14 +166,14 @@ extern std::array, meth_count> const meth_list { 0x8099, "_meth_8099" }, { 0x809A, "_meth_809A" }, { 0x809B, "_meth_809B" }, - { 0x809C, "_meth_809C" }, + { 0x809C, "geteye" }, { 0x809D, "istouching" }, { 0x809E, "_meth_809E" }, { 0x809F, "_meth_809F" }, { 0x80A0, "_meth_80A0" }, { 0x80A1, "_meth_80A1" }, { 0x80A2, "delete" }, - { 0x80A3, "_meth_80A3" }, + { 0x80A3, "setmodel" }, { 0x80A4, "_meth_80A4" }, { 0x80A5, "_meth_80A5" }, { 0x80A6, "_meth_80A6" }, @@ -841,7 +841,7 @@ extern std::array, meth_count> const meth_list { 0x833C, "_meth_833C" }, { 0x833D, "_meth_833D" }, { 0x833E, "_meth_833E" }, - { 0x833F, "_meth_833F" }, + { 0x833F, "getplayerangles" }, { 0x8340, "_meth_8340" }, { 0x8341, "_meth_8341" }, { 0x8342, "_meth_8342" }, @@ -1132,7 +1132,7 @@ extern std::array, meth_count> const meth_list { 0x845F, "_meth_845F" }, { 0x8460, "_meth_8460" }, { 0x8461, "_meth_8461" }, - { 0x8462, "_meth_8462" }, + { 0x8462, "getvieworigin" }, { 0x8463, "_meth_8463" }, { 0x8464, "_meth_8464" }, { 0x8465, "_meth_8465" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index 4f2fe561..b32c8dff 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -18,29 +18,42 @@ extern std::array, token_count> const token_list { 0x18, "alpha" }, { 0x1D, "angles" }, { 0x1F, "archived" }, + { 0x3A, "classname" }, { 0x56, "color" }, + { 0x5E, "createstruct" }, { 0x70, "deaths" }, { 0x8E, "entity" }, { 0x9F, "forcespectatorclient" }, { 0xA0, "foreground" }, { 0xAA, "glowalpha" }, { 0xAB, "glowcolor" }, + { 0xB1, "grenade" }, { 0xBC, "health" }, { 0xC2, "hidewheninmenu" }, { 0xD5, "init" }, + { 0xD6, "initstructs" }, { 0xE1, "killcamentity" }, { 0xE5, "label" }, { 0xF9, "main" }, { 0xFB, "maxhealth" }, + { 0x106, "model" }, { 0x109, "name" }, { 0x116, "origin" }, { 0x12C, "pers" }, + { 0x136, "precache" }, + { 0x14F, "radius"}, { 0x15C, "score" }, { 0x161, "script_delay" }, { 0x184, "sort" }, { 0x1A7, "team" }, { 0x1B9, "type" }, - { 0x28E, "maps/mp/__utility"}, + { 0x1DA, "codescripts/delete"}, + { 0x1DB, "codescripts/struct"}, + { 0x281, "codescripts/character"}, + { 0x283, "common_scripts/_bcs_location_trigs"}, + { 0x284, "common_scripts/_createfx"}, + { 0x285, "common_scripts/_createfxmenu"}, + { 0x28E, "common_scripts/utility"}, { 0x47D, "maps/mp/_flashgrenades"}, { 0x495, "maps/mp/_utility"}, { 0x4C4, "maps/mp/gametypes/_class"}, @@ -52,7 +65,9 @@ extern std::array, token_count> const token_list { 0x4EE, "maps/mp/gametypes/_playercards"}, { 0x4EF, "maps/mp/gametypes/_playerlogic"}, { 0x507, "maps/mp/gametypes/_rank"}, + { 0x5ED, "_createfx"}, { 0x600, "_disableoffhandweapons"}, + { 0x611, "_effect"}, { 0x642, "_giveweapon"}, { 0x649, "_hasperk"}, { 0x68B, "_objective_delete"}, @@ -70,12 +85,31 @@ extern std::array, token_count> const token_list { 0x884, "actionnotify"}, { 0x885, "actionnotifymessage"}, { 0x888, "actionslots"}, + { 0x894, "activate_individual_exploder"}, + { 0x8FE, "add_and_select_entity"}, + { 0x903, "add_bcs_location_mapping"}, { 0x9C7, "addlowermessage"}, { 0x9F6, "addtime"}, + { 0xB60, "aim_axis_of_selected_ents"}, + { 0xE14, "anim_gunhand"}, + { 0xE15, "anim_guninhand"}, + { 0xF92, "array_randomize"}, + { 0x1149, "attachhat"}, + { 0x114A, "attachhead"}, + { 0x1486, "axismode"}, + { 0x166F, "bcs_location_mappings"}, + { 0x1670, "bcs_location_trigs_do_mappings"}, + { 0x1672, "bcs_locations"}, + { 0x1674, "bcs_trigs_assign_aliases"}, { 0x1905, "bombsquadicons"}, { 0x1905, "bombsquadids"}, { 0x1CEE, "bufferedchildstats"}, { 0x1CEF, "bufferedstats"}, + { 0x1DCE, "button_is_clicked"}, + { 0x1DCF, "button_is_held"}, + { 0x1DD0, "button_is_kb"}, + { 0x1DD8, "buttonclick"}, + { 0x1DDB, "buttonisheld"}, { 0x1E02, "cac_getdivision"}, { 0x1E03, "cac_getequipment"}, { 0x1E04, "cac_getequipmentextra"}, @@ -99,10 +133,17 @@ extern std::array, token_count> const token_list { 0x209D, "ch_roundwin"}, { 0x20A2, "ch_vehicle_killed"}, { 0x20A3, "ch_vehicle_kills"}, + { 0x20CF, "character_hat_index"}, + { 0x20D0, "character_head_index"}, + { 0x20D1, "character_index_cache"}, { 0x2319, "class"}, { 0x231E, "classgrenades"}, { 0x2321, "classmap"}, { 0x2324, "classtablename"}, + { 0x23B6, "clear_entity_selection"}, + { 0x23BA, "clear_fx_hudelements"}, + { 0x23CB, "clear_settable_fx"}, + { 0x23D2, "clear_tool_hud"}, { 0x23FF, "clearkillcamstate"}, { 0x2402, "clearlowermessages"}, { 0x2414, "clearusingremote"}, @@ -110,29 +151,88 @@ extern std::array, token_count> const token_list { 0x2429, "clipammol"}, { 0x242A, "clipammor"}, { 0x242D, "cloneloadout"}, - { 0x260C, "frozen"}, + { 0x2508, "colors"}, + { 0x2662, "copy_angles_of_selected_ents"}, + { 0x2666, "copy_ents"}, + { 0x260C, "controlsfrozen"}, + { 0x2619, "convertoneshotfx"}, + { 0x279D, "create_fx_menu"}, + { 0x27E4, "createdynamicambience"}, + { 0x27E5, "createeffect"}, + { 0x27E7, "createexploder"}, + { 0x27E8, "createexploderex"}, { 0x27ED, "createfontstring"}, + { 0x27EE, "createfx"}, + { 0x27F0, "createfx_autosave"}, + { 0x27F1, "createfx_centerprint"}, + { 0x27F2, "createfx_centerprint_thread"}, + { 0x27F4, "createfx_common"}, + { 0x27F5, "createfx_draw_enabled"}, + { 0x27F9, "createfx_help_active"}, + { 0x27FC, "createfx_last_movement_timer"}, + { 0x27FD, "createfx_loopcounter"}, + { 0x27FE, "createfx_menu_list_active"}, + { 0x27FF, "createfx_offset"}, + { 0x2800, "createfx_print3d"}, + { 0x2801, "createfx_selecting"}, + { 0x2802, "createfxbyfxid"}, + { 0x2803, "createfxcursor"}, + { 0x2804, "createfxent"}, + { 0x2808, "createfxlogic"}, { 0x280B, "createicon"}, + { 0x280F, "createintervalsound"}, + { 0x2815, "createloopsound"}, + { 0x281A, "createnewexploder"}, + { 0x2824, "createreactiveent"}, { 0x2893, "_stoplocalsound"}, { 0x28D0, "curclass"}, + { 0x2906, "current_mode_hud"}, { 0x2953, "currentweapon"}, { 0x29B6, "damagecenter"}, { 0x2BC2, "defaultclass"}, + { 0x2D24, "delete_pressed"}, { 0x2D46, "deleteplacedentity"}, + { 0x2D94, "deselect_entity"}, { 0x2DCC, "destroyelem"}, { 0x2E51, "detectexplosives"}, { 0x2FB1, "discardtime"}, { 0x2FEF, "dispatchnotify"}, + { 0x2FF6, "display_fx_info"}, { 0x305B, "divisionrankscale"}, { 0x3202, "doingsplash"}, + { 0x33A1, "draw_axis"}, + { 0x33B1, "draw_cross"}, + { 0x33B3, "draw_distance"}, + { 0x33B6, "draw_effects_list"}, + { 0x33C3, "draw_origin"}, + { 0x33DB, "drawn"}, + { 0x348A, "drop_selection_to_ground"}, + { 0x359D, "effect_list_offset"}, { 0x35F6, "empplayer"}, { 0x3511, "duration"}, { 0x3516, "dvarfloatvalue"}, { 0x3517, "dvarintvalue"}, { 0x36E4, "endsceneondeath"}, - { 0x3E8E, "freezecontrolswrapper"}, + { 0x3793, "ent_draw_axis"}, + { 0x37A7, "ent_is_highlighted"}, + { 0x37A8, "ent_is_selected"}, + { 0x37C4, "entities_are_selected"}, + { 0x37CA, "entity_highlight_disable"}, + { 0x37CB, "entity_highlight_enable"}, { 0x3941, "exploder_sound"}, { 0x39C3, "fadeaway"}, + { 0x3C87, "flag_init"}, + { 0x3C8F, "flag_set"}, + { 0x3E70, "frame_selected"}, + { 0x3E8E, "freezecontrolswrapper"}, + { 0x3F0B, "func_player_speed"}, + { 0x3F0C, "func_position_player"}, + { 0x3F0D, "func_position_player_get"}, + { 0x3F0E, "func_process_fx_rotater"}, + { 0x3F2F, "fx"}, + { 0x3F43, "fx_highlightedent"}, + { 0x3F4F, "fx_rotating"}, + { 0x3F75, "fxonly"}, { 0x3F9D, "gameended"}, { 0x3FA0, "gameflag"}, { 0x3FA1, "gameflagclear"}, @@ -142,31 +242,45 @@ extern std::array, token_count> const token_list { 0x3FA5, "gameflagwait"}, { 0x3FA6, "gamehasstarted"}, { 0x3FDC, "gametype"}, + { 0x4014, "generate_fx_log"}, { 0x4032, "genericchallenge"}, + { 0x40ED, "get_center_of_array"}, { 0x4137, "get_damagable_grenade"}, { 0x4138, "get_damagable_grenade_pos"}, { 0x413A, "get_damagable_player"}, { 0x413B, "get_damagable_player_pos"}, { 0x413C, "get_damagable_sentry"}, - { 0x4369, "getsplashtable"}, + { 0x41E6, "get_least_used_index"}, + { 0x42CE, "get_print3d_text"}, + { 0x42D8, "get_radius_of_array"}, + { 0x42DF, "get_random_character"}, + { 0x42EA, "get_random_weapon"}, + { 0x431D, "get_selected_move_vector"}, + { 0x4369, "get_splash_table"}, + { 0x4381, "get_template_level"}, { 0x442E, "getaverageorigin"}, { 0x445C, "getclasschoice"}, { 0x445D, "getclassindex"}, { 0x44A3, "getdivisionrankscale"}, { 0x44AB, "getdvarvec"}, + { 0x44D0, "getexploderdelaydefault"}, { 0x44E8, "getfloatproperty"}, { 0x44FC, "getgametypenumlives"}, { 0x4502, "gethalftime"}, + { 0x4527, "getintervalsounddelaymaxdefault"}, + { 0x4528, "getintervalsounddelaymindefault"}, { 0x4529, "getintproperty"}, { 0x454F, "getlastlivingplayer"}, { 0x455E, "getlivingplayers"}, { 0x455F, "giveloadout"}, + { 0x4566, "getloopeffectdelaydefault"}, { 0x4569, "getlowermessage"}, { 0x4589, "getminutespassed"}, { 0x45AD, "getnextlifeid"}, { 0x45CD, "getobjectivehinttext"}, { 0x45D2, "getobjectivescoretext"}, { 0x45D3, "getobjectivetext"}, + { 0x45D9, "getoneshoteffectdelaydefault"}, { 0x45DE, "getotherteam"}, { 0x4607, "getpersstat"}, { 0x4617, "getplant"}, @@ -199,9 +313,12 @@ extern std::array, token_count> const token_list { 0x473E, "getweaponrankscale"}, { 0x47A2, "giveperk"}, { 0x47B2, "giverankxp"}, - { 0x4B96, "hasspawned"}, { 0x48CA, "guid"}, + { 0x4A5A, "handle_selected_ents"}, { 0x4B17, "hardcoremode"}, + { 0x4B96, "hasspawned"}, + { 0x4BA9, "hatmodel"}, + { 0x4BF2, "headmodel"}, { 0x4DC1, "hintmessage"}, { 0x4DDD, "hitroundlimit"}, { 0x4DE2, "hitscorelimit"}, @@ -211,13 +328,24 @@ extern std::array, token_count> const token_list { 0x501E, "iconoverlay"}, { 0x50E9, "incpersstat"}, { 0x50EA, "incplayerstat"}, + { 0x5102, "index_is_selected"}, + { 0x5194, "init_colors"}, + { 0x51A1, "init_crosshair"}, + { 0x51E1, "init_huds"}, + { 0x51F6, "init_level_variables"}, + { 0x51FE, "init_locked_list"}, + { 0x5205, "init_menu"}, + { 0x5272, "init_tools_hud"}, { 0x52BE, "initgameflags"}, + { 0x52DF, "initialize_character_group"}, { 0x5315, "initlevelflags"}, { 0x5317, "initmissiondata"}, { 0x5320, "initnotifymessage"}, { 0x532D, "initpersstat"}, { 0x5335, "initplayerstat"}, { 0x5380, "inovertime"}, + { 0x53C8, "insert_effect"}, + { 0x5573, "is_ent_filtered_out"}, { 0x5662, "isadestructable"}, { 0x5694, "isbulletdamage"}, { 0x5699, "iscacprimaryweapon"}, @@ -236,14 +364,18 @@ extern std::array, token_count> const token_list { 0x57A0, "isreallyalive"}, { 0x57B2, "isroundbased"}, { 0x57C4, "issentry"}, + { 0x57D7, "issp"}, { 0x581D, "isusingremote"}, { 0x5820, "isvalidattachment"}, { 0x5822, "isvalidclass"}, { 0x5835, "isvalidprimary"}, { 0x5839, "isvalidsecondary"}, + { 0x5991, "justconvertedoneshot"}, { 0x5A71, "killstreaks"}, { 0x5A78, "killstreaksplashnotify"}, { 0x5A81, "killtrigger"}, + { 0x5B1E, "last_displayed_ent"}, + { 0x5B47, "last_selected_entity_has_changed"}, { 0x5B84, "lastclass"}, { 0x5BDF, "lastslowprocessframe"}, { 0x5C39, "leaderdialog"}, @@ -266,7 +398,12 @@ extern std::array, token_count> const token_list { 0x5CBF, "levelflagwait"}, { 0x5CC0, "levelflagwaitopen"}, { 0x5D7F, "limitdecimalplaces"}, + { 0x55E4, "is_playing"}, + { 0x5DDF, "load"}, + { 0x5E43, "localrot"}, + { 0x5E6F, "lockedlist"}, { 0x5E8D, "logclasschoice"}, + { 0x5EED, "looper"}, { 0x5F29, "lowermessage"}, { 0x5F30, "lowertimer"}, { 0x5F2B, "lowermessages"}, @@ -275,6 +412,7 @@ extern std::array, token_count> const token_list { 0x5F2F, "lowetextyalign"}, { 0x5FB6, "makeenemyusable"}, { 0x5FBD, "maketeamusable"}, + { 0x5FCF, "manipulate_createfx_ents"}, { 0x602B, "matchmakinggame"}, { 0x602C, "matchoutcomenotify"}, { 0x608B, "maxlives"}, @@ -284,12 +422,18 @@ extern std::array, token_count> const token_list { 0x609B, "maxrankfinalprestige"}, { 0x60B1, "mayprocesschallenges"}, { 0x60B2, "mayspawn"}, + { 0x610E, "menu_fx_option_set"}, { 0x6254, "missioncallbacks"}, + { 0x62A4, "modify_player_speed"}, + { 0x62A5, "modify_rate"}, { 0x6369, "monitorbombuse"}, { 0x6392, "monitorfinalstandsurvival"}, { 0x63A2, "monitorkilledkillstreak"}, { 0x63A3, "monitorkillstreakprogress"}, { 0x63DB, "monitorscavengerpickup"}, + { 0x648C, "move_selection_to_cursor"}, + { 0x6685, "new"}, + { 0x6691, "new_tool_hud"}, { 0x6810, "notifystring"}, { 0x6811, "notifytext"}, { 0x6812, "notifytext2"}, @@ -310,9 +454,15 @@ extern std::array, token_count> const token_list { 0x6C65, "outcomenotify"}, { 0x6C66, "outcomeoverlay"}, { 0x6CAE, "overlayoffsety"}, + { 0x6E89, "parselocationaliases"}, + { 0x6EB6, "paste_ents"}, + { 0x6F21, "pauseeffect"}, { 0x6F79, "persistentdatainfo"}, + { 0x64F8, "mp_createfx"}, { 0x7006, "placement"}, { 0x71AC, "play_sound_on_tag"}, + { 0x721C, "player"}, + { 0x7332, "player_speed"}, { 0x73C2, "playercardsplashnotify"}, { 0x73E2, "playerforclientid"}, { 0x73F4, "playerhasammo"}, @@ -321,6 +471,8 @@ extern std::array, token_count> const token_list { 0x74D8, "playsoundinspace"}, { 0x74D9, "playsoundonplayers"}, { 0x75E5, "postgamepromotion"}, + { 0x75BE, "post_entity_creation_function"}, + { 0x7653, "precachemodelarray"}, { 0x7704, "primaryweapon"}, { 0x771A, "printandsoundoneveryone"}, { 0x771B, "printandsoundonplayer"}, @@ -333,14 +485,20 @@ extern std::array, token_count> const token_list { 0x772A, "printonteam"}, { 0x7734, "priority"}, { 0x773F, "privatematch"}, + { 0x7745, "porcess_button_held_and_clicked"}, { 0x7750, "processchallenge"}, { 0x7777, "promotionsplashnotify"}, + { 0x77C6, "put_guninhand"}, + { 0x7A33, "random"}, { 0x7A67, "rankedmatch"}, { 0x7A69, "rankingenabled"}, { 0x7A6A, "ranksplashnotify"}, { 0x7A6B, "ranktable"}, { 0x7A6E, "rankscale"}, + { 0x7A76, "rate"}, + { 0x7A77, "rate1"}, { 0x7AD6, "reclaimedreservedobjectives"}, + { 0x7B4F, "redo"}, { 0x7BE5, "registerhalftimedvar"}, { 0x7BF1, "registernumlivesdvar"}, { 0x7BF2, "registernumteamsdvar"}, @@ -355,6 +513,7 @@ extern std::array, token_count> const token_list { 0x7C04, "registerwinlimitdvar"}, { 0x7CE9, "removelowermessage"}, { 0x7D13, "replenishloadout"}, + { 0x7D2B, "reset_axis_of_selected_ent"}, { 0x7D64, "resetnotify"}, { 0x7D65, "resetoncancel"}, { 0x7D66, "resetondeath"}, @@ -363,31 +522,63 @@ extern std::array, token_count> const token_list { 0x7F27, "roundswitchdvar"}, { 0x7F28, "roundswitchmax"}, { 0x7F29, "roundswitchmin"}, + { 0x8055, "save"}, + { 0x805C, "save_undo_buffer"}, { 0x805F, "saved_actionslotdata"}, { 0x8064, "savedata"}, { 0x80D2, "scr_sound"}, { 0x827E, "script_savedata"}, { 0x828A, "script_sound"}, { 0x82EE, "scriptperks"}, + { 0x838B, "select_all_exploders_of_currently_selected"}, + { 0x838D, "select_by_name"}, + { 0x838E, "select_by_name_list"}, + { 0x838F, "select_by_substring"}, + { 0x8390, "select_entity"}, + { 0x8392, "select_last_entity"}, + { 0x83A1, "selected_ent_buttons"}, + { 0x83A2, "selected_fx"}, + { 0x83A3, "selected_fx_ents"}, + { 0x83A4, "selected_fx_option_index"}, + { 0x83A8, "selectedmove_forward"}, + { 0x83A9, "selectedmove_right"}, + { 0x83AA, "selectedmove_up"}, + { 0x83AB, "selectedrotate_pitch"}, + { 0x83AC, "selectedrotate_roll"}, + { 0x83AD, "selectedrotate_yaw"}, + { 0x84A8, "set_forward_and_up_vectors"}, + { 0x84AD, "set_fx_hudelement"}, + { 0x8541, "set_off_exploders"}, + { 0x8543, "set_origin_and_angles"}, + { 0x85A6, "set_tool_hudelem"}, { 0x8626, "setaltsceneobj"}, { 0x864F, "setclass"}, + { 0x86C9, "setmenu"}, + { 0x86CC, "setmodelfromarray"}, { 0x86D8, "setobjectivehinttext"}, { 0x86DB, "setobjectivescoretext"}, { 0x86DC, "setobjectivetext"}, { 0x86EB, "setovertimelimitdvar"}, { 0x86EF, "setparent"}, { 0x86F5, "setpersstat"}, + { 0x86A0, "setplayerheadmodel"}, { 0x8702, "setplayerstat"}, { 0x8703, "setplayerstatifgreater"}, { 0x8704, "setplayerstatiflower"}, { 0x8707, "setpoint"}, { 0x871E, "setselfusable"}, { 0x8742, "setthirdpersondof"}, + { 0x8875, "setup_last_movement_timer"}, { 0x8A5B, "setusingremote"}, + { 0x8BCE, "show_help"}, { 0x8C0F, "shownotifymessage"}, { 0x8CA3, "slot"}, + { 0x8CFC, "snap2normal"}, + { 0x8CFE, "snap90deg"}, { 0x8F25, "sortlowermessages"}, { 0x8F2C, "sound"}, + { 0x8F48, "soundonly"}, + { 0x8FBB, "spawn_grenade"}, { 0x9106, "splashqueue"}, { 0x910F, "splitscreen"}, { 0x9309, "starttime"}, @@ -405,8 +596,10 @@ extern std::array, token_count> const token_list { 0x933A, "statsetchild"}, { 0x933B, "statsetchildbuffered"}, { 0x93B1, "stockammo"}, + { 0x9425, "stored_ents"}, { 0x9468, "stringtofloat"}, { 0x9472, "strip_suffix"}, + { 0x9478, "struct"}, { 0x9583, "table_getdivision"}, { 0x9584, "table_getequipment"}, { 0x9586, "table_getkillstreak"}, @@ -428,6 +621,7 @@ extern std::array, token_count> const token_list { 0x9863, "teamplayercardsplash"}, { 0x991F, "text"}, { 0x9928, "text2label"}, + { 0x9929, "textalpha"}, { 0x992B, "textglowcolor"}, { 0x99AC, "throwinggrenade"}, { 0x99DA, "time"}, @@ -436,7 +630,19 @@ extern std::array, token_count> const token_list { 0x9A2C, "titleisstring"}, { 0x9A2D, "titlelabel"}, { 0x9A2E, "titletext"}, + { 0x9A6D, "toggle_axismode"}, + { 0x9A6E, "toggle_createfx_drawing"}, + { 0x9A6F, "toggle_entity_selection"}, + { 0x9A75, "toggle_localrot"}, + { 0x9A7A, "toggle_snap2normal"}, + { 0x9A7B, "toggle_snap90deg"}, + { 0x9BA2, "tracked_ent"}, + { 0x9BA3, "tracked_ents"}, + { 0x9BC1, "tracknoneditfx"}, { 0x9AC1, "touchingbadtrigger"}, + { 0x9E8B, "turn_off_exploders"}, + { 0xA01B, "undo"}, + { 0xA0CA, "update_selected_ents"}, { 0xA0ED, "updatebufferedstats"}, { 0xA131, "updatelowermessage"}, { 0xA132, "updatemainmenu"}, @@ -447,6 +653,7 @@ extern std::array, token_count> const token_list { 0xA193, "updatewatcheddvar"}, { 0xA194, "updatewatcheddvars"}, { 0xA25C, "usingremote"}, + { 0xA265, "v"}, { 0xA281, "value"}, { 0xA6D1, "waitfortimeornotify"}, { 0xA6F9, "waitrequirevisibility"}, @@ -458,6 +665,7 @@ extern std::array, token_count> const token_list { 0xA901, "watchdvars"}, { 0xA9E7, "weapons"}, { 0xA9FA, "weaponrankscale"}, + { 0xAA4A, "within_fov"}, { 0xAAB9, "writebufferedstats"}, { 0xAAD1, "scoreinfo"}, { 0xA0F3, "updatechalleges"}, From 8e84311b15b4b627f5692062785f67adc06f8985 Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 26 Jan 2025 14:22:36 +0000 Subject: [PATCH 10/16] fix(s2): update token count --- include/xsk/gsc/engine/s2.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 7153906d..f404fd8d 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 647; +constexpr usize token_count = 659; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context From c4a05b754be57daa0bcbe65d468168fe7c1809e3 Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 26 Jan 2025 16:19:16 +0000 Subject: [PATCH 11/16] feat: s2 token mapping --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_func.cpp | 10 ++-- src/gsc/engine/s2_meth.cpp | 16 +++---- src/gsc/engine/s2_token.cpp | 90 +++++++++++++++++++++++++++++++++-- 4 files changed, 101 insertions(+), 17 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index f404fd8d..49d4141e 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 659; +constexpr usize token_count = 743; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index c243a8ee..ce5d30d6 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -334,8 +334,8 @@ extern std::array, func_count> const func_list { 0x142, "_func_142" }, { 0x143, "_func_143" }, { 0x144, "_func_144" }, - { 0x145, "_func_145" }, - { 0x146, "_func_146" }, + { 0x145, "loadfx" }, + { 0x146, "playfx" }, { 0x147, "_func_147" }, { 0x148, "_func_148" }, { 0x149, "_func_149" }, @@ -389,7 +389,7 @@ extern std::array, func_count> const func_list { 0x179, "_func_179" }, { 0x17A, "_func_17A" }, { 0x17B, "_func_17B" }, - { 0x17C, "_func_17C" }, + { 0x17C, "radiusdamage" }, { 0x17D, "_func_17D" }, { 0x17E, "_func_17E" }, { 0x17F, "_func_17F" }, @@ -419,7 +419,7 @@ extern std::array, func_count> const func_list { 0x197, "_func_197" }, { 0x198, "_func_198" }, { 0x199, "_func_199" }, - { 0x19A, "_func_19A" }, + { 0x19A, "newhudelem" }, { 0x19B, "_func_19B" }, { 0x19C, "_func_19C" }, { 0x19D, "_func_19D" }, @@ -463,7 +463,7 @@ extern std::array, func_count> const func_list { 0x1C3, "_func_1C3" }, { 0x1C4, "_func_1C4" }, { 0x1C5, "_func_1C5" }, - { 0x1C6, "_func_1C6" }, + { 0x1C6, "getarraykeys" }, { 0x1C7, "getfirstarraykey" }, { 0x1C8, "_func_1C8" }, { 0x1C9, "_func_1C9" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index 01e55d74..cbae1a43 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -140,7 +140,7 @@ extern std::array, meth_count> const meth_list { 0x807F, "scaleovertime" }, { 0x8080, "_meth_8080" }, { 0x8081, "_meth_8081" }, - { 0x8082, "_meth_8082" }, + { 0x8082, "destroy" }, { 0x8083, "_meth_8083" }, { 0x8084, "_meth_8084" }, { 0x8085, "_meth_8085" }, @@ -200,7 +200,7 @@ extern std::array, meth_count> const meth_list { 0x80BB, "_meth_80BB" }, { 0x80BC, "_meth_80BC" }, { 0x80BD, "settext" }, - { 0x80BE, "_meth_80BE" }, + { 0x80BE, "clearalltextafterhudelem" }, { 0x80BF, "setshader" }, { 0x80C0, "_meth_80C0" }, { 0x80C1, "_meth_80C1" }, @@ -589,7 +589,7 @@ extern std::array, meth_count> const meth_list { 0x8240, "_meth_8240" }, { 0x8241, "_meth_8241" }, { 0x8242, "_meth_8242" }, - { 0x8243, "_meth_8243" }, + { 0x8243, "buttonpressed" }, { 0x8244, "_meth_8244" }, { 0x8245, "_meth_8245" }, { 0x8246, "setspawnweapon" }, @@ -710,9 +710,9 @@ extern std::array, meth_count> const meth_list { 0x82B9, "_meth_82B9" }, { 0x82BA, "_meth_82BA" }, { 0x82BB, "_meth_82BB" }, - { 0x82BC, "_meth_82BC" }, - { 0x82BD, "_meth_82BD" }, - { 0x82BE, "_meth_82BE" }, + { 0x82BC, "addpitch" }, + { 0x82BD, "addyaw" }, + { 0x82BE, "addroll" }, { 0x82BF, "_meth_82BF" }, { 0x82C0, "_meth_82C0" }, { 0x82C1, "_meth_82C1" }, @@ -838,7 +838,7 @@ extern std::array, meth_count> const meth_list { 0x8339, "_meth_8339" }, { 0x833A, "_meth_833A" }, { 0x833B, "_meth_833B" }, - { 0x833C, "_meth_833C" }, + { 0x833C, "setorigin" }, { 0x833D, "_meth_833D" }, { 0x833E, "_meth_833E" }, { 0x833F, "getplayerangles" }, @@ -1107,7 +1107,7 @@ extern std::array, meth_count> const meth_list { 0x8446, "_meth_8446" }, { 0x8447, "_meth_8447" }, { 0x8448, "_meth_8448" }, - { 0x8449, "_meth_8449" }, + { 0x8449, "linktosynchronizedparent" }, { 0x844A, "_meth_844A" }, { 0x844B, "_meth_844B" }, { 0x844C, "_meth_844C" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index b32c8dff..c060037a 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -15,6 +15,8 @@ extern std::array, token_count> const token_list { 0x02, "-" }, { 0x03, "radius`" }, { 0x04, "note:" }, + { 0x10, "alignx" }, + { 0x11, "aligny" }, { 0x18, "alpha" }, { 0x1D, "angles" }, { 0x1F, "archived" }, @@ -23,6 +25,7 @@ extern std::array, token_count> const token_list { 0x5E, "createstruct" }, { 0x70, "deaths" }, { 0x8E, "entity" }, + { 0x9B, "fontscale" }, { 0x9F, "forcespectatorclient" }, { 0xA0, "foreground" }, { 0xAA, "glowalpha" }, @@ -47,12 +50,16 @@ extern std::array, token_count> const token_list { 0x184, "sort" }, { 0x1A7, "team" }, { 0x1B9, "type" }, + { 0x1D3, "x"}, + { 0x1D7, "y"}, { 0x1DA, "codescripts/delete"}, { 0x1DB, "codescripts/struct"}, { 0x281, "codescripts/character"}, { 0x283, "common_scripts/_bcs_location_trigs"}, { 0x284, "common_scripts/_createfx"}, { 0x285, "common_scripts/_createfxmenu"}, + { 0x289, "common_scripts/_exploder"}, + { 0x28A, "common_scripts/_fx"}, { 0x28E, "common_scripts/utility"}, { 0x47D, "maps/mp/_flashgrenades"}, { 0x495, "maps/mp/_utility"}, @@ -68,6 +75,8 @@ extern std::array, token_count> const token_list { 0x5ED, "_createfx"}, { 0x600, "_disableoffhandweapons"}, { 0x611, "_effect"}, + { 0x612, "_effect_keys"}, + { 0x62E, "_fx"}, { 0x642, "_giveweapon"}, { 0x649, "_hasperk"}, { 0x68B, "_objective_delete"}, @@ -88,9 +97,13 @@ extern std::array, token_count> const token_list { 0x894, "activate_individual_exploder"}, { 0x8FE, "add_and_select_entity"}, { 0x903, "add_bcs_location_mapping"}, + { 0x905, "add_button"}, + { 0x938, "add_kb_button"}, + { 0x958, "add_reactive_fx"}, { 0x9C7, "addlowermessage"}, { 0x9F6, "addtime"}, { 0xB60, "aim_axis_of_selected_ents"}, + { 0xC9E, "alphabetize"}, { 0xE14, "anim_gunhand"}, { 0xE15, "anim_guninhand"}, { 0xF92, "array_randomize"}, @@ -109,7 +122,9 @@ extern std::array, token_count> const token_list { 0x1DCF, "button_is_held"}, { 0x1DD0, "button_is_kb"}, { 0x1DD8, "buttonclick"}, + { 0x1DD9, "buttondown"}, { 0x1DDB, "buttonisheld"}, + { 0x1DDE, "buttonpressed_internal"}, { 0x1E02, "cac_getdivision"}, { 0x1E03, "cac_getequipment"}, { 0x1E04, "cac_getequipmentextra"}, @@ -126,6 +141,9 @@ extern std::array, token_count> const token_list { 0x1E12, "cac_getdefaultweapon"}, { 0x1F68, "canreadtext"}, { 0x2015, "carryicon"}, + { 0x208A, "cfxprintln"}, + { 0x208B, "cfxprintlnend"}, + { 0x208C, "cfxprintlnstart"}, { 0x2091, "ch_assists"}, { 0x209A, "ch_hardpoints"}, { 0x209B, "ch_kills"}, @@ -140,12 +158,14 @@ extern std::array, token_count> const token_list { 0x231E, "classgrenades"}, { 0x2321, "classmap"}, { 0x2324, "classtablename"}, + { 0x239F, "clear_all_loopers"}, { 0x23B6, "clear_entity_selection"}, { 0x23BA, "clear_fx_hudelements"}, { 0x23CB, "clear_settable_fx"}, { 0x23D2, "clear_tool_hud"}, { 0x23FF, "clearkillcamstate"}, { 0x2402, "clearlowermessages"}, + { 0x2411, "cleartextmarker"}, { 0x2414, "clearusingremote"}, { 0x2418, "clientid"}, { 0x2429, "clipammol"}, @@ -154,21 +174,30 @@ extern std::array, token_count> const token_list { 0x2508, "colors"}, { 0x2662, "copy_angles_of_selected_ents"}, { 0x2666, "copy_ents"}, + { 0x266A, "copystructarrayvalues"}, { 0x260C, "controlsfrozen"}, { 0x2619, "convertoneshotfx"}, + { 0x2794, "create_dynamicambience"}, { 0x279D, "create_fx_menu"}, + { 0x27A1, "create_interval_sound"}, + { 0x27A7, "create_looper"}, + { 0x27A8, "create_loopsound"}, + { 0x27C2, "create_triggerfx"}, { 0x27E4, "createdynamicambience"}, { 0x27E5, "createeffect"}, { 0x27E7, "createexploder"}, { 0x27E8, "createexploderex"}, { 0x27ED, "createfontstring"}, { 0x27EE, "createfx"}, + { 0x27EF, "createfx_adjust_array"}, { 0x27F0, "createfx_autosave"}, { 0x27F1, "createfx_centerprint"}, { 0x27F2, "createfx_centerprint_thread"}, { 0x27F4, "createfx_common"}, { 0x27F5, "createfx_draw_enabled"}, + { 0x27F8, "createfx_filter_types"}, { 0x27F9, "createfx_help_active"}, + { 0x27FB, "createfx_inputlocked"}, { 0x27FC, "createfx_last_movement_timer"}, { 0x27FD, "createfx_loopcounter"}, { 0x27FE, "createfx_menu_list_active"}, @@ -178,6 +207,8 @@ extern std::array, token_count> const token_list { 0x2802, "createfxbyfxid"}, { 0x2803, "createfxcursor"}, { 0x2804, "createfxent"}, + { 0x2806, "createfxent_redo"}, + { 0x2806, "createfxent_undo"}, { 0x2808, "createfxlogic"}, { 0x280B, "createicon"}, { 0x280F, "createintervalsound"}, @@ -190,13 +221,17 @@ extern std::array, token_count> const token_list { 0x2953, "currentweapon"}, { 0x29B6, "damagecenter"}, { 0x2BC2, "defaultclass"}, + { 0x2BD2, "defaults"}, { 0x2D24, "delete_pressed"}, + { 0x2D27, "delete_selection"}, { 0x2D46, "deleteplacedentity"}, + { 0x2D93, "deselect_all_ents"}, { 0x2D94, "deselect_entity"}, { 0x2DCC, "destroyelem"}, { 0x2E51, "detectexplosives"}, { 0x2FB1, "discardtime"}, { 0x2FEF, "dispatchnotify"}, + { 0x2FF2, "display_current_translations"}, { 0x2FF6, "display_fx_info"}, { 0x305B, "divisionrankscale"}, { 0x3202, "doingsplash"}, @@ -204,6 +239,7 @@ extern std::array, token_count> const token_list { 0x33B1, "draw_cross"}, { 0x33B3, "draw_distance"}, { 0x33B6, "draw_effects_list"}, + { 0x33B8, "draw_help_list"}, { 0x33C3, "draw_origin"}, { 0x33DB, "drawn"}, { 0x348A, "drop_selection_to_ground"}, @@ -219,19 +255,27 @@ extern std::array, token_count> const token_list { 0x37C4, "entities_are_selected"}, { 0x37CA, "entity_highlight_disable"}, { 0x37CB, "entity_highlight_enable"}, + { 0x392A, "exploder"}, { 0x3941, "exploder_sound"}, { 0x39C3, "fadeaway"}, + { 0x3AB3, "fileprint_launcher_start_file"}, + { 0x3AB4, "fileprint_launcher_end_file"}, + { 0x3AB5, "fileprint_launcher"}, { 0x3C87, "flag_init"}, { 0x3C8F, "flag_set"}, + { 0x3CA9, "flag_waitopen"}, { 0x3E70, "frame_selected"}, { 0x3E8E, "freezecontrolswrapper"}, + { 0x3F06, "func_get_level_fx"}, { 0x3F0B, "func_player_speed"}, { 0x3F0C, "func_position_player"}, { 0x3F0D, "func_position_player_get"}, { 0x3F0E, "func_process_fx_rotater"}, + { 0x3F10, "func_updatefx"}, { 0x3F2F, "fx"}, { 0x3F43, "fx_highlightedent"}, { 0x3F4F, "fx_rotating"}, + { 0x3F72, "fxhudelements"}, { 0x3F75, "fxonly"}, { 0x3F9D, "gameended"}, { 0x3FA0, "gameflag"}, @@ -245,11 +289,14 @@ extern std::array, token_count> const token_list { 0x4014, "generate_fx_log"}, { 0x4032, "genericchallenge"}, { 0x40ED, "get_center_of_array"}, + { 0x4125, "get_createfx_array"}, + { 0x4126, "get_createfx_types"}, { 0x4137, "get_damagable_grenade"}, { 0x4138, "get_damagable_grenade_pos"}, { 0x413A, "get_damagable_player"}, { 0x413B, "get_damagable_player_pos"}, { 0x413C, "get_damagable_sentry"}, + { 0x41E4, "get_last_selected_ent"}, { 0x41E6, "get_least_used_index"}, { 0x42CE, "get_print3d_text"}, { 0x42D8, "get_radius_of_array"}, @@ -258,6 +305,7 @@ extern std::array, token_count> const token_list { 0x431D, "get_selected_move_vector"}, { 0x4369, "get_splash_table"}, { 0x4381, "get_template_level"}, + { 0x4386, "get_tool_hudelem"}, { 0x442E, "getaverageorigin"}, { 0x445C, "getclasschoice"}, { 0x445D, "getclassindex"}, @@ -319,11 +367,14 @@ extern std::array, token_count> const token_list { 0x4B96, "hasspawned"}, { 0x4BA9, "hatmodel"}, { 0x4BF2, "headmodel"}, + { 0x4CAF, "help_navigation_buttons"}, { 0x4DC1, "hintmessage"}, { 0x4DDD, "hitroundlimit"}, { 0x4DE2, "hitscorelimit"}, - { 0x4E09, "hostmigrationtimer"}, { 0x4DE7, "hitwinlimit"}, + { 0x4E09, "hostmigrationtimer"}, + { 0x4F6C, "hudelem_count"}, + { 0x4F6E, "hudelems"}, { 0x5019, "iconname"}, { 0x501E, "iconoverlay"}, { 0x50E9, "incpersstat"}, @@ -345,6 +396,7 @@ extern std::array, token_count> const token_list { 0x5335, "initplayerstat"}, { 0x5380, "inovertime"}, { 0x53C8, "insert_effect"}, + { 0x5556, "is_createfx_type"}, { 0x5573, "is_ent_filtered_out"}, { 0x5662, "isadestructable"}, { 0x5694, "isbulletdamage"}, @@ -371,6 +423,8 @@ extern std::array, token_count> const token_list { 0x5835, "isvalidprimary"}, { 0x5839, "isvalidsecondary"}, { 0x5991, "justconvertedoneshot"}, + { 0x5996, "kb_locked"}, + { 0x5A01, "kill_exploder"}, { 0x5A71, "killstreaks"}, { 0x5A78, "killstreaksplashnotify"}, { 0x5A81, "killtrigger"}, @@ -401,6 +455,8 @@ extern std::array, token_count> const token_list { 0x55E4, "is_playing"}, { 0x5DDF, "load"}, { 0x5E43, "localrot"}, + { 0x5E55, "location"}, + { 0x5E6A, "locked"}, { 0x5E6F, "lockedlist"}, { 0x5E8D, "logclasschoice"}, { 0x5EED, "looper"}, @@ -413,6 +469,7 @@ extern std::array, token_count> const token_list { 0x5FB6, "makeenemyusable"}, { 0x5FBD, "maketeamusable"}, { 0x5FCF, "manipulate_createfx_ents"}, + { 0x6015, "mask"}, { 0x602B, "matchmakinggame"}, { 0x602C, "matchoutcomenotify"}, { 0x608B, "maxlives"}, @@ -434,6 +491,7 @@ extern std::array, token_count> const token_list { 0x648C, "move_selection_to_cursor"}, { 0x6685, "new"}, { 0x6691, "new_tool_hud"}, + { 0x6692, "new_tool_hudelem"}, { 0x6810, "notifystring"}, { 0x6811, "notifytext"}, { 0x6812, "notifytext2"}, @@ -450,6 +508,7 @@ extern std::array, token_count> const token_list { 0x6B71, "onplayerconnecting"}, { 0x6B82, "onplayerspawned"}, { 0x6C18, "optionalnumber"}, + { 0x6C1E, "options"}, { 0x6C3A, "orienttonormal"}, { 0x6C65, "outcomenotify"}, { 0x6C66, "outcomeoverlay"}, @@ -474,6 +533,7 @@ extern std::array, token_count> const token_list { 0x75BE, "post_entity_creation_function"}, { 0x7653, "precachemodelarray"}, { 0x7704, "primaryweapon"}, + { 0x770E, "print_fx_options"}, { 0x771A, "printandsoundoneveryone"}, { 0x771B, "printandsoundonplayer"}, { 0x771C, "printandsoundonteam"}, @@ -485,7 +545,8 @@ extern std::array, token_count> const token_list { 0x772A, "printonteam"}, { 0x7734, "priority"}, { 0x773F, "privatematch"}, - { 0x7745, "porcess_button_held_and_clicked"}, + { 0x7745, "process_button_held_and_clicked"}, + { 0x774A, "process_fx_rotater"}, { 0x7750, "processchallenge"}, { 0x7777, "promotionsplashnotify"}, { 0x77C6, "put_guninhand"}, @@ -497,9 +558,12 @@ extern std::array, token_count> const token_list { 0x7A6E, "rankscale"}, { 0x7A76, "rate"}, { 0x7A77, "rate1"}, + { 0x7AAD, "reactive_fx_ents"}, { 0x7AD6, "reclaimedreservedobjectives"}, { 0x7B4F, "redo"}, + { 0x7B8E, "refresh_reactive_fx_ents"}, { 0x7BE5, "registerhalftimedvar"}, + { 0x7BEF, "registermissioncallback"}, { 0x7BF1, "registernumlivesdvar"}, { 0x7BF2, "registernumteamsdvar"}, { 0x7BF7, "registerroundlimitdvar"}, @@ -507,22 +571,32 @@ extern std::array, token_count> const token_list { 0x7BF9, "registerscorelimitdvar"}, { 0x7BFA, "registertimelimitdvar"}, { 0x7BFF, "registerwatchdvar"}, - { 0x7BEF, "registermissioncallback"}, { 0x7C00, "registerwatchdvarfloat"}, { 0x7C01, "registerwatchdvarint"}, { 0x7C04, "registerwinlimitdvar"}, + { 0x7CAB, "remove_option"}, + { 0x7CB4, "remove_selected_option"}, + { 0x7CE2, "removefxentwithentity"}, { 0x7CE9, "removelowermessage"}, { 0x7D13, "replenishloadout"}, + { 0x7D27, "reselect_entities"}, { 0x7D2B, "reset_axis_of_selected_ent"}, + { 0x7D35, "reset_fx_hud_colors"}, { 0x7D64, "resetnotify"}, { 0x7D65, "resetoncancel"}, { 0x7D66, "resetondeath"}, + { 0x7DCD, "restart_fx_looper"}, + { 0x7DCF, "restart_oneshots"}, + { 0x7DD0, "restart_selected_exploders"}, { 0x7DEF, "restoredata"}, + { 0x7EE2, "rotate_over_time"}, + { 0x7EF3, "rotation_is_occuring"}, { 0x7F26, "roundswitch"}, { 0x7F27, "roundswitchdvar"}, { 0x7F28, "roundswitchmax"}, { 0x7F29, "roundswitchmin"}, { 0x8055, "save"}, + { 0x805A, "save_redo_buffer"}, { 0x805C, "save_undo_buffer"}, { 0x805F, "saved_actionslotdata"}, { 0x8064, "savedata"}, @@ -535,6 +609,7 @@ extern std::array, token_count> const token_list { 0x838E, "select_by_name_list"}, { 0x838F, "select_by_substring"}, { 0x8390, "select_entity"}, + { 0x8391, "select_index_array"}, { 0x8392, "select_last_entity"}, { 0x83A1, "selected_ent_buttons"}, { 0x83A2, "selected_fx"}, @@ -546,6 +621,7 @@ extern std::array, token_count> const token_list { 0x83AB, "selectedrotate_pitch"}, { 0x83AC, "selectedrotate_roll"}, { 0x83AD, "selectedrotate_yaw"}, + { 0x840E, "set_anglemod_move_vector"}, { 0x84A8, "set_forward_and_up_vectors"}, { 0x84AD, "set_fx_hudelement"}, { 0x8541, "set_off_exploders"}, @@ -596,6 +672,8 @@ extern std::array, token_count> const token_list { 0x933A, "statsetchild"}, { 0x933B, "statsetchildbuffered"}, { 0x93B1, "stockammo"}, + { 0x93CD, "stop_fx_looper"}, + { 0x93D7, "stop_loopsound"}, { 0x9425, "stored_ents"}, { 0x9468, "stringtofloat"}, { 0x9472, "strip_suffix"}, @@ -636,6 +714,9 @@ extern std::array, token_count> const token_list { 0x9A75, "toggle_localrot"}, { 0x9A7A, "toggle_snap2normal"}, { 0x9A7B, "toggle_snap90deg"}, + { 0x9A8F, "tool_hud"}, + { 0x9A90, "tool_hud_visible"}, + { 0x9A91, "tool_hudelems"}, { 0x9BA2, "tracked_ent"}, { 0x9BA3, "tracked_ents"}, { 0x9BC1, "tracknoneditfx"}, @@ -655,6 +736,7 @@ extern std::array, token_count> const token_list { 0xA25C, "usingremote"}, { 0xA265, "v"}, { 0xA281, "value"}, + { 0xA282, "value_hudelem"}, { 0xA6D1, "waitfortimeornotify"}, { 0xA6F9, "waitrequirevisibility"}, { 0xA74B, "waittill_notify_or_timeout"}, @@ -666,6 +748,8 @@ extern std::array, token_count> const token_list { 0xA9E7, "weapons"}, { 0xA9FA, "weaponrankscale"}, { 0xAA4A, "within_fov"}, + { 0xAAB7, "write_entity"}, + { 0xAAB8, "write_log"}, { 0xAAB9, "writebufferedstats"}, { 0xAAD1, "scoreinfo"}, { 0xA0F3, "updatechalleges"}, From 989f2c425fb10ce7e00f58322f7a71251cdc18da Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 26 Jan 2025 16:58:14 +0000 Subject: [PATCH 12/16] feat: s2 token mapping --- include/xsk/gsc/engine/s2.hpp | 2 +- src/gsc/engine/s2_func.cpp | 4 +-- src/gsc/engine/s2_meth.cpp | 4 +-- src/gsc/engine/s2_token.cpp | 60 +++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 5 deletions(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 49d4141e..2f1272a8 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 743; +constexpr usize token_count = 803; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index ce5d30d6..912e6799 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -503,7 +503,7 @@ extern std::array, func_count> const func_list { 0x1EB, "_func_1EB" }, { 0x1EC, "_func_1EC" }, { 0x1ED, "_func_1ED" }, - { 0x1EE, "_func_1EE" }, + { 0x1EE, "isbot" }, { 0x1EF, "_func_1EF" }, { 0x1F0, "_func_1F0" }, { 0x1F1, "_func_1F1" }, @@ -630,7 +630,7 @@ extern std::array, func_count> const func_list { 0x26A, "_func_26A" }, { 0x26B, "_func_26B" }, { 0x26C, "_func_26C" }, - { 0x26D, "_func_26D" }, + { 0x26D, "istestclient" }, { 0x26E, "_func_26E" }, { 0x26F, "_func_26F" }, { 0x270, "_func_270" }, diff --git a/src/gsc/engine/s2_meth.cpp b/src/gsc/engine/s2_meth.cpp index cbae1a43..0ec23b03 100644 --- a/src/gsc/engine/s2_meth.cpp +++ b/src/gsc/engine/s2_meth.cpp @@ -649,7 +649,7 @@ extern std::array, meth_count> const meth_list { 0x827C, "_meth_827C" }, { 0x827D, "_meth_827D" }, { 0x827E, "_meth_827E" }, - { 0x827F, "_meth_827F" }, + { 0x827F, "vehicle_finishdamage" }, { 0x8280, "_meth_8280" }, { 0x8281, "_meth_8281" }, { 0x8282, "_meth_8282" }, @@ -1194,7 +1194,7 @@ extern std::array, meth_count> const meth_list { 0x849D, "_meth_849D" }, { 0x849E, "_meth_849E" }, { 0x849F, "_meth_849F" }, - { 0x84A0, "_meth_84A0" }, + { 0x84A0, "finishentitydamage" }, { 0x84A1, "_meth_84A1" }, { 0x84A2, "_meth_84A2" }, { 0x84A3, "_meth_84A3" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index c060037a..adb8ae74 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -21,6 +21,21 @@ extern std::array, token_count> const token_list { 0x1D, "angles" }, { 0x1F, "archived" }, { 0x3A, "classname" }, + { 0x40, "codecallback_bullethitentity" }, + { 0x41, "codecallback_codeendgame" }, + { 0x43, "codecallback_entitydamage" }, + { 0x44, "codecallback_entityoutofworld" }, + { 0x47, "codecallback_hostmigration" }, + { 0x4A, "codecallback_partymembers" }, + { 0x4B, "codecallback_playerconnect" }, + { 0x4C, "codecallback_playerdamage" }, + { 0x4D, "codecallback_playerdisconnect" }, + { 0x4E, "codecallback_playergrenadesuicide" }, + { 0x4F, "codecallback_playerkilled" }, + { 0x50, "codecallback_playerlaststand" }, + { 0x51, "codecallback_playermigrated" }, + { 0x52, "codecallback_startgametype" }, + { 0x54, "codecallback_vehicledamage" }, { 0x56, "color" }, { 0x5E, "createstruct" }, { 0x70, "deaths" }, @@ -47,6 +62,7 @@ extern std::array, token_count> const token_list { 0x14F, "radius"}, { 0x15C, "score" }, { 0x161, "script_delay" }, + { 0x178, "sessionstate" }, { 0x184, "sort" }, { 0x1A7, "team" }, { 0x1B9, "type" }, @@ -65,6 +81,8 @@ extern std::array, token_count> const token_list { 0x495, "maps/mp/_utility"}, { 0x4C4, "maps/mp/gametypes/_class"}, { 0x4C6, "maps/mp/gametypes/_damage"}, + { 0x4D0, "maps/mp/gametypes/_gamelogic"}, + { 0x4D7, "maps/mp/gametypes/_hostmigration"}, { 0x4E4, "maps/mp/gametypes/_hud_message"}, { 0x4E5, "maps/mp/gametypes/_hud_util"}, { 0x4E9, "maps/mp/gametypes/_missions"}, @@ -91,6 +109,7 @@ extern std::array, token_count> const token_list { 0x73A, "_updateteamusable"}, { 0x83B, "perks"}, { 0x842, "perkunsetfuncs"}, + { 0x847, "abortlevel"}, { 0x884, "actionnotify"}, { 0x885, "actionnotifymessage"}, { 0x888, "actionslots"}, @@ -118,6 +137,7 @@ extern std::array, token_count> const token_list { 0x1905, "bombsquadids"}, { 0x1CEE, "bufferedchildstats"}, { 0x1CEF, "bufferedstats"}, + { 0x1D7D, "bullethitcallback"}, { 0x1DCE, "button_is_clicked"}, { 0x1DCF, "button_is_held"}, { 0x1DD0, "button_is_kb"}, @@ -139,6 +159,29 @@ extern std::array, token_count> const token_list { 0x1E10, "cac_getdefaultequipment"}, { 0x1E11, "cac_getdefaultperk"}, { 0x1E12, "cac_getdefaultweapon"}, + { 0x1E62, "callback_codeendgame"}, + { 0x1E63, "callback_entityoutofworld"}, + { 0x1E65, "callback_hostmigration"}, + { 0x1E67, "callback_playerconnect"}, + { 0x1E68, "callback_playerdamage"}, + { 0x1E6A, "callback_playerdisconnect"}, + { 0x1E6B, "callback_playergrenadesuicide"}, + { 0x1E6C, "callback_playerkilled"}, + { 0x1E6D, "callback_playerlaststand"}, + { 0x1E6F, "callback_playermigrated"}, + { 0x1E70, "callback_startgametype"}, + { 0x1E71, "callbackcodeendgame"}, + { 0x1E73, "callbackentityoutofworld"}, + { 0x1E75, "callbackhostmigration"}, + { 0x1E77, "callbackplayerconnect"}, + { 0x1E78, "callbackplayerdamage"}, + { 0x1E79, "callbackplayerdisconnect"}, + { 0x1E7A, "callbackplayergrenadesuicide"}, + { 0x1E7B, "callbackplayerkilled"}, + { 0x1E7C, "callbackplayerlaststand"}, + { 0x1E7D, "callbackplayermigrated"}, + { 0x1E7F, "callbackstartgametype"}, + { 0x1E81, "callbackvoid"}, { 0x1F68, "canreadtext"}, { 0x2015, "carryicon"}, { 0x208A, "cfxprintln"}, @@ -219,6 +262,7 @@ extern std::array, token_count> const token_list { 0x28D0, "curclass"}, { 0x2906, "current_mode_hud"}, { 0x2953, "currentweapon"}, + { 0x29B5, "damagecallback"}, { 0x29B6, "damagecenter"}, { 0x2BC2, "defaultclass"}, { 0x2BD2, "defaults"}, @@ -286,6 +330,7 @@ extern std::array, token_count> const token_list { 0x3FA5, "gameflagwait"}, { 0x3FA6, "gamehasstarted"}, { 0x3FDC, "gametype"}, + { 0x3FDF, "gametypestarted"}, { 0x4014, "generate_fx_log"}, { 0x4032, "genericchallenge"}, { 0x40ED, "get_center_of_array"}, @@ -377,6 +422,17 @@ extern std::array, token_count> const token_list { 0x4F6E, "hudelems"}, { 0x5019, "iconname"}, { 0x501E, "iconoverlay"}, + { 0x5034, "idflags_no_armor"}, + { 0x5035, "idflags_no_knockback"}, + { 0x5036, "idflags_passthru"}, + { 0x5037, "idflags_no_protection"}, + { 0x503A, "idflags_stun"}, + { 0x503D, "idflags_shield_explosive_impact_huge"}, + { 0x503E, "idflags_shield_explosive_splash"}, + { 0x503F, "idflags_no_team_protection"}, + { 0x503B, "idflags_penetration"}, + { 0x503C, "idflags_radius"}, + { 0x5040, "idflags_shield_explosive_impact"}, { 0x50E9, "incpersstat"}, { 0x50EA, "incplayerstat"}, { 0x5102, "index_is_selected"}, @@ -514,6 +570,7 @@ extern std::array, token_count> const token_list { 0x6C66, "outcomeoverlay"}, { 0x6CAE, "overlayoffsety"}, { 0x6E89, "parselocationaliases"}, + { 0x6EA3, "partymembers_cb"}, { 0x6EB6, "paste_ents"}, { 0x6F21, "pauseeffect"}, { 0x6F79, "persistentdatainfo"}, @@ -629,6 +686,7 @@ extern std::array, token_count> const token_list { 0x85A6, "set_tool_hudelem"}, { 0x8626, "setaltsceneobj"}, { 0x864F, "setclass"}, + { 0x865F, "setdefaultcallbacks"}, { 0x86C9, "setmenu"}, { 0x86CC, "setmodelfromarray"}, { 0x86D8, "setobjectivehinttext"}, @@ -645,6 +703,8 @@ extern std::array, token_count> const token_list { 0x871E, "setselfusable"}, { 0x8742, "setthirdpersondof"}, { 0x8875, "setup_last_movement_timer"}, + { 0x8A0C, "setupcallbacks"}, + { 0x8A13, "setupdamageflags"}, { 0x8A5B, "setusingremote"}, { 0x8BCE, "show_help"}, { 0x8C0F, "shownotifymessage"}, From c223122552c6a4091a31fd310bd80061af1cfa55 Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 26 Jan 2025 17:14:59 +0000 Subject: [PATCH 13/16] feat: s2 token mapping --- src/gsc/engine/s2_func.cpp | 2 +- src/gsc/engine/s2_token.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gsc/engine/s2_func.cpp b/src/gsc/engine/s2_func.cpp index 912e6799..0368cad1 100644 --- a/src/gsc/engine/s2_func.cpp +++ b/src/gsc/engine/s2_func.cpp @@ -330,7 +330,7 @@ extern std::array, func_count> const func_list { 0x13E, "_func_13E" }, { 0x13F, "_func_13F" }, { 0x140, "precachestring" }, - { 0x141, "_func_141" }, + { 0x141, "precachemenu" }, { 0x142, "_func_142" }, { 0x143, "_func_143" }, { 0x144, "_func_144" }, diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index adb8ae74..10169b10 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -70,6 +70,7 @@ extern std::array, token_count> const token_list { 0x1D7, "y"}, { 0x1DA, "codescripts/delete"}, { 0x1DB, "codescripts/struct"}, + { 0x1DD, "maps/mp/gametypes/_callbacksetup"}, { 0x281, "codescripts/character"}, { 0x283, "common_scripts/_bcs_location_trigs"}, { 0x284, "common_scripts/_createfx"}, @@ -287,11 +288,11 @@ extern std::array, token_count> const token_list { 0x33C3, "draw_origin"}, { 0x33DB, "drawn"}, { 0x348A, "drop_selection_to_ground"}, - { 0x359D, "effect_list_offset"}, - { 0x35F6, "empplayer"}, { 0x3511, "duration"}, { 0x3516, "dvarfloatvalue"}, { 0x3517, "dvarintvalue"}, + { 0x359D, "effect_list_offset"}, + { 0x35F6, "empplayer"}, { 0x36E4, "endsceneondeath"}, { 0x3793, "ent_draw_axis"}, { 0x37A7, "ent_is_highlighted"}, From cb963941b63bb4c362da3b1293e81be89af301bf Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 26 Jan 2025 17:25:09 +0000 Subject: [PATCH 14/16] fix(s2): correct token count --- include/xsk/gsc/engine/s2.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 2f1272a8..867fbe6c 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 803; +constexpr usize token_count = 804; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context From e243d3d102268cb7f1c498a2797d68ca0685e6a4 Mon Sep 17 00:00:00 2001 From: Liam Date: Sat, 1 Feb 2025 08:20:54 +0000 Subject: [PATCH 15/16] chore: s2 token mapping --- src/gsc/engine/s2_token.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/gsc/engine/s2_token.cpp b/src/gsc/engine/s2_token.cpp index 10169b10..249c9f48 100644 --- a/src/gsc/engine/s2_token.cpp +++ b/src/gsc/engine/s2_token.cpp @@ -39,6 +39,7 @@ extern std::array, token_count> const token_list { 0x56, "color" }, { 0x5E, "createstruct" }, { 0x70, "deaths" }, + { 0x7A, "dmg" }, { 0x8E, "entity" }, { 0x9B, "fontscale" }, { 0x9F, "forcespectatorclient" }, @@ -50,6 +51,7 @@ extern std::array, token_count> const token_list { 0xC2, "hidewheninmenu" }, { 0xD5, "init" }, { 0xD6, "initstructs" }, + { 0xD8, "intensity" }, { 0xE1, "killcamentity" }, { 0xE5, "label" }, { 0xF9, "main" }, @@ -64,6 +66,11 @@ extern std::array, token_count> const token_list { 0x161, "script_delay" }, { 0x178, "sessionstate" }, { 0x184, "sort" }, + { 0x187, "spawnflags"}, + { 0x194, "suncolor" }, + { 0x195, "sundirection" }, + { 0x1A2, "target" }, + { 0x1A5, "targetname" }, { 0x1A7, "team" }, { 0x1B9, "type" }, { 0x1D3, "x"}, @@ -91,6 +98,11 @@ extern std::array, token_count> const token_list { 0x4EE, "maps/mp/gametypes/_playercards"}, { 0x4EF, "maps/mp/gametypes/_playerlogic"}, { 0x507, "maps/mp/gametypes/_rank"}, + { 0x58E, "__smangles"}, + { 0x58F, "__smid"}, + { 0x590, "__smname"}, + { 0x591, "__smorigin"}, + { 0x5E8, "_color"}, { 0x5ED, "_createfx"}, { 0x600, "_disableoffhandweapons"}, { 0x611, "_effect"}, @@ -126,6 +138,7 @@ extern std::array, token_count> const token_list { 0xC9E, "alphabetize"}, { 0xE14, "anim_gunhand"}, { 0xE15, "anim_guninhand"}, + { 0xEA4, "animation"}, { 0xF92, "array_randomize"}, { 0x1149, "attachhat"}, { 0x114A, "attachhead"}, @@ -138,6 +151,7 @@ extern std::array, token_count> const token_list { 0x1905, "bombsquadids"}, { 0x1CEE, "bufferedchildstats"}, { 0x1CEF, "bufferedstats"}, + { 0x1D6C, "bulbradius"}, { 0x1D7D, "bullethitcallback"}, { 0x1DCE, "button_is_clicked"}, { 0x1DCF, "button_is_held"}, @@ -265,6 +279,7 @@ extern std::array, token_count> const token_list { 0x2953, "currentweapon"}, { 0x29B5, "damagecallback"}, { 0x29B6, "damagecenter"}, + { 0x2B7F, "def"}, { 0x2BC2, "defaultclass"}, { 0x2BD2, "defaults"}, { 0x2D24, "delete_pressed"}, @@ -302,6 +317,7 @@ extern std::array, token_count> const token_list { 0x37CB, "entity_highlight_enable"}, { 0x392A, "exploder"}, { 0x3941, "exploder_sound"}, + { 0x3974, "exponent"}, { 0x39C3, "fadeaway"}, { 0x3AB3, "fileprint_launcher_start_file"}, { 0x3AB4, "fileprint_launcher_end_file"}, @@ -309,6 +325,8 @@ extern std::array, token_count> const token_list { 0x3C87, "flag_init"}, { 0x3C8F, "flag_set"}, { 0x3CA9, "flag_waitopen"}, + { 0x3E4F, "fov_inner"}, + { 0x3E51, "fov_outer"}, { 0x3E70, "frame_selected"}, { 0x3E8E, "freezecontrolswrapper"}, { 0x3F06, "func_get_level_fx"}, @@ -453,6 +471,7 @@ extern std::array, token_count> const token_list { 0x5335, "initplayerstat"}, { 0x5380, "inovertime"}, { 0x53C8, "insert_effect"}, + { 0x53F8, "intensityhdr"}, { 0x5556, "is_createfx_type"}, { 0x5573, "is_ent_filtered_out"}, { 0x5662, "isadestructable"}, @@ -659,6 +678,9 @@ extern std::array, token_count> const token_list { 0x805F, "saved_actionslotdata"}, { 0x8064, "savedata"}, { 0x80D2, "scr_sound"}, + { 0x80F6, "script_accel"}, + { 0x80FE, "script_airspeed"}, + { 0x81EF, "script_exploder"}, { 0x827E, "script_savedata"}, { 0x828A, "script_sound"}, { 0x82EE, "scriptperks"}, From fe1edf657c7a0678d7f6307da13dd6be702feaf0 Mon Sep 17 00:00:00 2001 From: Liam Date: Sat, 1 Feb 2025 08:22:24 +0000 Subject: [PATCH 16/16] chore: s2 update token count --- include/xsk/gsc/engine/s2.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xsk/gsc/engine/s2.hpp b/include/xsk/gsc/engine/s2.hpp index 867fbe6c..bac9e6c1 100644 --- a/include/xsk/gsc/engine/s2.hpp +++ b/include/xsk/gsc/engine/s2.hpp @@ -14,7 +14,7 @@ namespace xsk::gsc::s2 constexpr usize code_count = 155; constexpr usize func_count = 1000; constexpr usize meth_count = 1700; -constexpr usize token_count = 804; +constexpr usize token_count = 826; constexpr u32 max_string_id = 0xACEE; struct context : public gsc::context