From dfc98bb475484d0eb957e71c5e8fea006401fade Mon Sep 17 00:00:00 2001 From: Federico Cecchetto Date: Sat, 26 Feb 2022 21:36:29 +0100 Subject: [PATCH] Dvar command + cleanup symbols --- src/client/component/command.cpp | 39 +++- src/client/component/game_console.hpp | 3 - src/client/game/dvars.cpp | 1 - src/client/game/symbols.hpp | 322 ++++++++++++-------------- 4 files changed, 184 insertions(+), 181 deletions(-) diff --git a/src/client/component/command.cpp b/src/client/component/command.cpp index a80c67f2..ed231537 100644 --- a/src/client/component/command.cpp +++ b/src/client/component/command.cpp @@ -93,6 +93,42 @@ namespace command parse_command_line(); reinterpret_cast(0x1400D8210)(); // mwr: test } + + game::dvar_t* dvar_command_stub() + { + const params args; + + if (args.size() <= 0) + { + return 0; + } + + const auto dvar = game::Dvar_FindVar(args[0]); + + if (dvar) + { + if (args.size() == 1) + { + const auto current = game::Dvar_ValueToString(dvar, dvar->current); + const auto reset = game::Dvar_ValueToString(dvar, dvar->reset); + + console::info("\"%s\" is: \"%s\" default: \"%s\" hash: 0x%08lX", + args[0], current, reset, dvar->hash); + + console::info(" %s\n", dvars::dvar_get_domain(dvar->type, dvar->domain).data()); + } + else + { + char command[0x1000] = { 0 }; + game::Dvar_GetCombinedString(command, 1); + game::Dvar_SetCommand(dvar->hash, "", command); + } + + return dvar; + } + + return 0; + } } void read_startup_variable(const std::string& dvar) @@ -110,7 +146,7 @@ namespace command // only +set dvar value if (game::Cmd_Argc() >= 3 && game::Cmd_Argv(0) == "set"s && game::Cmd_Argv(1) == dvar) { - game::Dvar_SetCommand(game::Cmd_Argv(1), game::Cmd_Argv(2)); + game::Dvar_SetCommand(game::generateHashValue(game::Cmd_Argv(1)), "", game::Cmd_Argv(2)); } game::Cmd_EndTokenizeString(); @@ -258,6 +294,7 @@ namespace command else { utils::hook::call(0x1400D728F, &parse_commandline_stub); // MWR TEST + utils::hook::jump(0x14041D750, dvar_command_stub); add_commands_mp(); } diff --git a/src/client/component/game_console.hpp b/src/client/component/game_console.hpp index 82a7aabd..cdc001a7 100644 --- a/src/client/component/game_console.hpp +++ b/src/client/component/game_console.hpp @@ -4,7 +4,4 @@ namespace game_console { bool console_char_event(int local_client_num, int key); bool console_key_event(int local_client_num, int key, int down); - - bool match_compare(const std::string& input, const std::string& text, const bool exact); - void find_matches(std::string input, std::vector& suggestions, const bool exact); } \ No newline at end of file diff --git a/src/client/game/dvars.cpp b/src/client/game/dvars.cpp index abc576a2..941dfdf2 100644 --- a/src/client/game/dvars.cpp +++ b/src/client/game/dvars.cpp @@ -552,7 +552,6 @@ namespace dvars return game::Dvar_RegisterString(hash, "", value, flags); } - game::dvar_t* register_float(const std::string& name, float value, float min, float max, game::DvarFlags flags, bool add_to_list) { diff --git a/src/client/game/symbols.hpp b/src/client/game/symbols.hpp index cff85e80..8ebf02aa 100644 --- a/src/client/game/symbols.hpp +++ b/src/client/game/symbols.hpp @@ -8,213 +8,178 @@ namespace game * Functions **************************************************************/ + WEAK symbol AddRefToValue{0, 0x1405C0EB0}; + WEAK symbol AddRefToObject{0, 0x1405C0EA0}; + WEAK symbol AllocThread{0, 0x1405C1200}; + WEAK symbol RemoveRefToValue{0, 0x1405C29B0}; + WEAK symbol RemoveRefToObject{0, 0x1405C28A0}; + WEAK symbol BG_GetWeaponNameComplete{0, 0x140165580}; - WEAK symbol Cbuf_AddText{0x140342EB0, 0x1404033B0}; // H1(1.4) - WEAK symbol Conbuf_AppendText{0x1403E3300, 0x140513FF0}; // H1(1.4) - WEAK symbol Cmd_ExecuteSingleCommand{0x140343980, 0x140343980}; // H1SP64[CODEX] - WEAK symbol Cmd_AddCommandInternal{0x1403433E0, 0x140403950}; // H1(1.4) - WEAK symbol Cmd_TokenizeString{0x140344110, 0x1404046F0}; // H1(1.4) - WEAK symbol Cmd_EndTokenizeString{0x140343630, 0x140403C20}; // H1(1.4) + WEAK symbol Cbuf_AddText{0x140342EB0, 0x1404033B0}; + WEAK symbol Conbuf_AppendText{0x1403E3300, 0x140513FF0}; + WEAK symbol Cmd_ExecuteSingleCommand{0x140343980, 0x140343980}; + WEAK symbol Cmd_AddCommandInternal{0x1403433E0, 0x140403950}; + WEAK symbol Cmd_TokenizeString{0x140344110, 0x1404046F0}; + WEAK symbol Cmd_EndTokenizeString{0x140343630, 0x140403C20}; - WEAK symbol Com_Frame_Try_Block_Function{0, 0x1400D8310}; //H1MP MWR TEST - WEAK symbol Com_GetCurrentCoDPlayMode{0, 0x1405039A0}; // H1(1.4) - WEAK symbol Com_SetSlowMotion{0, 0x1400DB790}; // H1(1.4) - WEAK symbol Com_Error{0x1403509C0, 0x1400D78A0}; // H1(1.4) - WEAK symbol Com_Quit_f{0x140352BE0, 0x1400DA830}; // H1(1.4) + WEAK symbol Com_Frame_Try_Block_Function{0, 0x1400D8310}; + WEAK symbol Com_GetCurrentCoDPlayMode{0, 0x1405039A0}; + WEAK symbol Com_SetSlowMotion{0, 0x1400DB790}; + WEAK symbol Com_Error{0x1403509C0, 0x1400D78A0}; + WEAK symbol Com_Quit_f{0x140352BE0, 0x1400DA830}; - WEAK symbol Key_KeynumToString{0x140187CC0, 0x14024FE10}; // H1(1.4) + WEAK symbol CG_GameMessage{0x1401389A0, 0x140220CC0}; + WEAK symbol CG_GameMessageBold{0x140138750, 0x140220620}; - WEAK symbol CG_GameMessage{0x1401389A0, 0x140220CC0}; // H1(1.4) - WEAK symbol CG_GameMessageBold{0x140138750, 0x140220620}; // H1(1.4) + WEAK symbol CL_IsCgameInitialized{0x14017EE30, 0x140245650}; - WEAK symbol Dvar_SetCommand{0x1403C72B0, 0x1404FD0A0}; // H1(1.4) - WEAK symbol Dvar_FindVar{0x1403C5D50, 0x1404FBB00}; // H1(1.4) - WEAK symbol Dvar_GetCombinedString{0x140354DF0, 0x14041D830}; // H1(1.4) - //WEAK symbol Dvar_ValueToString{0x1403C8560,0x1404FE660}; // H1(1.4); different typedef from previous titles - WEAK symbol Dvar_ValueToString{0x1403C8560, 0x1404FE660}; // H1(1.4) - //WEAK symbol Dvar_SetCommand{0, 0x1404FD0A0}; // H1(1.4) + WEAK symbol Dvar_SetCommand{0x1403C72B0, 0x1404FD0A0}; + WEAK symbol Dvar_FindVar{0x1403C5D50, 0x1404FBB00}; + WEAK symbol Dvar_GetCombinedString{0x140354DF0, 0x14041D830}; + WEAK symbol Dvar_ValueToString{0x1403C8560, 0x1404FE660}; + WEAK symbol Dvar_RegisterBool{0x1403C47E0, 0x1404FA540}; + WEAK symbol Dvar_RegisterInt{0x1403C4CC0, 0x1404FAA20}; + WEAK symbol Dvar_RegisterFloat{0x1403C4BB0, 0x1404FA910}; + WEAK symbol Dvar_RegisterString{0x1403C4DA0, 0x1404FAB00}; + WEAK symbol Dvar_RegisterVec4{0x1403C5220, 0x1404FAF40}; + WEAK symbol Dvar_RegisterEnum{0x1403C4AC0, 0x1404C0EC0}; - WEAK symbol Dvar_RegisterBool{0x1403C47E0,0x1404FA540}; // H1 - WEAK symbol Dvar_RegisterInt{0x1403C4CC0, 0x1404FAA20}; // H1 - WEAK symbol Dvar_RegisterFloat{0x1403C4BB0,0x1404FA910}; // H1(1.4) - WEAK symbol Dvar_RegisterString{0x1403C4DA0,0x1404FAB00}; // H1(1.4) - WEAK symbol Dvar_RegisterVec4{0x1403C5220, 0x1404FAF40}; // H1(1.4) - WEAK symbol Dvar_RegisterEnum{0x1403C4AC0, 0x1404C0EC0}; // H1(1.4) + WEAK symbol FS_ReadFile{0x1403B9020, 0x1404EE720}; + WEAK symbol FS_FreeFile{0x1403B9010, 0x1404EE710}; + WEAK symbol FS_Startup{0x1403B85D0, 0x1404EDD30}; + WEAK symbol FS_AddLocalizedGameDirectory{0x1403B6030, 0x1404EBE20}; - WEAK symbol Scr_GetFloat{0x140374D20, 0x140442D10}; // H1(1.4) - WEAK symbol Scr_GetNumParam{0x140374F30, 0x140442E70}; // H1(1.4) - - WEAK symbol FS_ReadFile{0x1403B9020, 0x1404EE720}; // H1(1.4) - WEAK symbol FS_FreeFile{0x1403B9010, 0x1404EE710}; // H1(1.4) - WEAK symbol FS_Startup{0x1403B85D0, 0x1404EDD30}; // H1(1.4) - WEAK symbol FS_AddLocalizedGameDirectory{0x1403B6030, 0x1404EBE20}; // H1(1.4) - - WEAK symbol generateHashValue{0x1400FE8A0, 0x1401B1010}; // H1(1.4) - - WEAK symbol CL_IsCgameInitialized{0x14017EE30, 0x140245650}; // H1(1.4) - WEAK symbol Live_SyncOnlineDataFlags{0, 0x14059A700}; // H1(1.4) - - WEAK symbol Sys_Milliseconds{0x1403E2B10, 0x140513710}; // H1(1.4) - WEAK symbol Sys_IsDatabaseReady2{0x1403580B0, 0x14042B090}; // H1(1.4) - - WEAK symbol SV_FastRestart{ 0, 0x14047E990 }; // H1(1.4) - WEAK symbol SV_GameSendServerCommand{ - 0x1403F3A70, 0x140484AD0 - }; // H1MP(1.4) - WEAK symbol SV_DirectConnect{0, 0x140480860}; // H1(1.4) - WEAK symbol SV_Cmd_TokenizeString{0x1402EF050, 0x140404D20}; // H1(1.4) - WEAK symbol SV_Cmd_EndTokenizedString{0x140344700, 0x140404CE0}; // H1(1.4) - - WEAK symbol SV_BotIsBot{ 0, 0x14046E6C0 }; // H1(1.4) - - WEAK symbol Sys_SendPacket{0x1403E2820, 0x1405133B0}; // H1(1.4) - - WEAK symbol NetadrToSockadr{0x1403C11C0, 0x1404F62F0}; // H1(1.4) - WEAK symbol NET_OutOfBandPrint{0x140357560, 0x1404255D0}; // H1(1.4) - WEAK symbol NET_SendLoopPacket{0, 0x140425790}; // H1(1.4) - - WEAK symbol NET_StringToAdr{ 0, 0x140425870 }; // H1(1.4) - - //WEAK symbol R_RegisterFont{ 0x140481F90, 0x1405D91E0 }; // H1MP(1.4) - - WEAK symbol I_CleanStr{0x1403CD230, 0}; // H1(1.4) - WEAK symbol ScrPlace_GetViewPlacement{0x1401981F0, 0x140288550}; // H1(1.4) - - WEAK symbol Material_RegisterHandle{0x1404E48B0, 0x1405EAB30}; // H1(1.4) - - WEAK symbol R_AddCmdDrawStretchPic{0x14017E5C0, 0x1402443A0}; // H1(1.4) - - WEAK symbol R_RegisterFont{0x1404D4100, 0x1405D91E0}; // H1(1.4) - WEAK symbol R_GetFontHeight{0x1405EA360, 0x1405D92C0}; // H1(1.4) - WEAK symbol JUST_DO_OUR_DIRTY_WORK{0x1404D37B0, 0x1405D8890}; // H1(1.4) - - WEAK symbol G_GetClientScore{0, 0x140342F90}; // H1(1.4) - WEAK symbol SV_GetGuid{0, 0x140484B90}; // H1(1.4) - WEAK symbol SV_GetClientPing{0, 0x140484B70}; // H1(1.4) - WEAK symbol SV_GetPlayerstateForClientNum{0x1404426D0, 0}; // H1SP(1.4) - - WEAK symbol H1_AddBaseDrawTextCmd{0x1404F3DC0,0x1405FB1F0}; // H1(1.4) - -#define R_AddCmdDrawText(TXT,MC,F,X,Y,XS,YS,R,C,S) H1_AddBaseDrawTextCmd(TXT,MC,F,game::R_GetFontHeight(F),X,Y,XS,YS,R,C,S,-1,0,game::JUST_DO_OUR_DIRTY_WORK(S)) - -#define R_AddCmdDrawTextWithCursor(TXT,MC,F,UNK,X,Y,XS,YS,R,C,S,CP,CC) H1_AddBaseDrawTextCmd(TXT,MC,F,game::R_GetFontHeight(F),X,Y,XS,YS,R,C,S,CP,CC,game::JUST_DO_OUR_DIRTY_WORK(S)) - - WEAK symbol R_TextWidth{0x1404D43B0, 0x1405D94A0}; // H1(1.4) - - WEAK symbol cmd_functions{0x14AD99AB8,0x14946BAC8}; // H1(1.4) - WEAK symbol keyCatchers{0x14243DAF0,0x142D0BA9C}; // H1(1.4) - WEAK symbol playerKeys{0x1422A873C,0x142C19AFC}; // H1(1.4) - WEAK symbol cmd_args{0x14AD99960, 0x14946B970}; // H1(1.4) - WEAK symbol query_socket{0, 0x14DDFBF98}; // H1(1.4) - - //########################################################################################################################################################################### - //########################################################################################################################################################################### - //########################################################################################################################################################################### - - WEAK symbol G_Glass_Update{0, 0x14033A640}; // H1(1.4) - - WEAK symbol AddRefToValue{0, 0x1405C0EB0}; - WEAK symbol AddRefToObject{0,0x1405C0EA0}; - WEAK symbol AllocThread{0,0x1405C1200}; - WEAK symbol RemoveRefToValue{0, 0x1405C29B0}; - WEAK symbol RemoveRefToObject{0,0x1405C28A0}; - - WEAK symbol - DB_EnumXAssets_Internal{0, 0x1404129F0}; - WEAK symbol DB_GetXAssetName{0,0x1403E4090}; - WEAK symbol DB_LoadXAssets{0,0x140414FF0}; - WEAK symbol DB_FindXAssetHeader{0, 0x140412F60}; - WEAK symbol DB_GetRawFileLen{0,0x140413D80}; - WEAK symbol DB_GetRawBuffer{0,0x140413C40}; - WEAK symbol DB_GetXAssetTypeSize{0x14019A3B0, 0x14028BE70}; // H1(1.4) - - WEAK symbol FindVariable{0,0x1405C1D50}; - WEAK symbol FindEntityId{0, 0x1405C1C50}; - WEAK symbol GetEntityFieldValue{0, 0x1405C6100}; - - WEAK symbol G_GetWeaponForName{0x1402C2A90, 0}; // H1SP(1.4) - //WEAK symbol - //G_GivePlayerWeapon{0, 0x14051B660}; - - WEAK symbol - G_GivePlayerWeapon{0x1402C2DF0, 0x14051B660}; // h1sp + WEAK symbol generateHashValue{0x1400FE8A0, 0x1401B1010}; + WEAK symbol G_Glass_Update{0, 0x14033A640}; + WEAK symbol G_GetClientScore{0, 0x140342F90}; + WEAK symbol G_GetWeaponForName{0x1402C2A90, 0}; + WEAK symbol G_GivePlayerWeapon{0x1402C2DF0, 0x14051B660}; WEAK symbol G_InitializeAmmo{0, 0x1404C4110}; - WEAK symbol G_SelectWeapon{0,0x14051C0D0}; - WEAK symbol G_TakePlayerWeapon{0x1402C3900, 0}; // H1SP(1.4) + WEAK symbol G_SelectWeapon{0, 0x14051C0D0}; + WEAK symbol G_TakePlayerWeapon{0x1402C3900, 0}; + + WEAK symbol I_CleanStr{0x1403CD230, 0}; WEAK symbol Image_Setup{0, 0x14074B2A0}; - WEAK symbol LUI_OpenMenu{0, 0x1404CD210}; // H1(1.4) + WEAK symbol Key_KeynumToString{0x140187CC0, 0x14024FE10}; + WEAK symbol Live_SyncOnlineDataFlags{0, 0x14059A700}; + + WEAK symbol Material_RegisterHandle{0x1404E48B0, 0x1405EAB30}; + + WEAK symbol NetadrToSockadr{0x1403C11C0, 0x1404F62F0}; + WEAK symbol NET_OutOfBandPrint{0x140357560, 0x1404255D0}; + WEAK symbol NET_SendLoopPacket{0, 0x140425790}; + WEAK symbol NET_StringToAdr{0, 0x140425870}; + + WEAK symbol R_AddCmdDrawStretchPic{0x14017E5C0, 0x1402443A0}; + WEAK symbol R_RegisterFont{0x1404D4100, 0x1405D91E0}; + WEAK symbol R_TextWidth{0x1404D43B0, 0x1405D94A0}; + WEAK symbol R_GetFontHeight{0x1405EA360, 0x1405D92C0}; + WEAK symbol R_DrawSomething{0x1404D37B0, 0x1405D8890}; + WEAK symbol R_SyncRenderThread{0, 0x14076E7D0}; + WEAK symbol R_AddDObjToScene{0, 0x140775C40}; + WEAK symbol H1_AddBaseDrawTextCmd{0x1404F3DC0, 0x1405FB1F0}; + +#define R_AddCmdDrawText(TXT, MC, F, X, Y, XS, YS, R, C, S) \ + H1_AddBaseDrawTextCmd(TXT, MC, F, game::R_GetFontHeight(F), X, Y, XS, YS, R, C, S,-1, 0, game::R_DrawSomething(S)) +#define R_AddCmdDrawTextWithCursor(TXT, MC, F, UNK, X, Y, XS, YS, R, C, S, CP, CC) \ + H1_AddBaseDrawTextCmd(TXT, MC, F, game::R_GetFontHeight(F), X, Y, XS, YS, R, C, S, CP, CC, game::R_DrawSomething(S)) + + WEAK symbol Scr_GetFloat{0x140374D20, 0x140442D10}; + WEAK symbol Scr_GetNumParam{0x140374F30, 0x140442E70}; + + WEAK symbol ScrPlace_GetViewPlacement{0x1401981F0, 0x140288550}; + + WEAK symbol + DB_EnumXAssets_Internal{0, 0x1404129F0}; + WEAK symbol DB_GetXAssetName{0, 0x1403E4090}; + WEAK symbol DB_LoadXAssets{0, 0x140414FF0}; + WEAK symbol DB_FindXAssetHeader{0, 0x140412F60}; + WEAK symbol DB_GetRawFileLen{0, 0x140413D80}; + WEAK symbol DB_GetRawBuffer{0, 0x140413C40}; + WEAK symbol DB_GetXAssetTypeSize{0x14019A3B0, 0x14028BE70}; + + WEAK symbol FindVariable{0, 0x1405C1D50}; + WEAK symbol FindEntityId{0, 0x1405C1C50}; + WEAK symbol GetEntityFieldValue{0, 0x1405C6100}; + + WEAK symbol LUI_OpenMenu{0, 0x1404CD210}; WEAK symbol Menu_IsMenuOpenAndVisible{0, 0x1405EE1A0}; WEAK symbol Scr_AllocVector{0, 0x1405C3220}; WEAK symbol Scr_ClearOutParams{0, 0x1405C6E50}; WEAK symbol Scr_GetEntityIdRef{0, 0x1405C56C0}; - WEAK symbol Scr_SetObjectField{0,0x140512190}; - WEAK symbol Scr_NotifyId{0,0x1405C8240}; - - WEAK symbol VM_Execute{0, 0x1405C8DB0}; - - WEAK symbol R_SyncRenderThread{0,0x14076E7D0}; - WEAK symbol R_AddDObjToScene{0, 0x140775C40}; + WEAK symbol Scr_SetObjectField{0, 0x140512190}; + WEAK symbol Scr_NotifyId{0, 0x1405C8240}; WEAK symbol SL_ConvertToString{0x14036D420, 0x1405BFBB0}; WEAK symbol SL_GetString{0x14036D9A0, 0x1405C0170}; - WEAK symbol SV_SetConfigstring{0, 0x140486720}; // H1(1.4) - - WEAK symbol SV_Loaded{0x140442F60, 0x1404864A0}; // H1(1.4) - - WEAK symbol SV_KickClientNum{ 0, 0x14047ED00 }; // H1(1.4) - - WEAK symbol SV_MapExists{0, 0x14047ED60}; // H1(1.4) - - WEAK symbol Sys_ShowConsole{0x1403E3B90, 0x140514910}; // H1(1.4) - - WEAK symbol UI_GetMapDisplayName{0, 0x140408CC0}; // H1(1.4) - - WEAK symbol UI_GetGameTypeDisplayName{0, 0x1404086A0}; // H1(1.4) - - WEAK symbol Sys_Error{0x1403E0C40, 0x140511520}; // H1(1.4) - - WEAK symbol UI_SafeTranslateString{0x140350430, 0x1405A2930}; // H1(1.4) - - WEAK symbol UI_RunMenuScript{0, 0x1404CFE60}; // H1(1.4) - - WEAK symbol longjmp{0x140648FD4, 0x14089EED0}; // H1(1.4) - WEAK symbol _setjmp{0x1406BFDD0, 0x1408EC2E0}; // H1(1.4) - - WEAK symbol UI_TextWidth{ 0, 0x1404D21A0 }; // H1(1.4) - + WEAK symbol SV_DirectConnect{0, 0x140480860}; + WEAK symbol SV_Cmd_TokenizeString{0x1402EF050, 0x140404D20}; + WEAK symbol SV_Cmd_EndTokenizedString{0x140344700, 0x140404CE0}; + WEAK symbol SV_BotIsBot{0, 0x14046E6C0}; + WEAK symbol SV_GetGuid{0, 0x140484B90}; + WEAK symbol SV_GetClientPing{0, 0x140484B70}; + WEAK symbol SV_GetPlayerstateForClientNum{0x1404426D0, 0}; + WEAK symbol SV_SetConfigstring{0, 0x140486720}; + WEAK symbol SV_Loaded{0x140442F60, 0x1404864A0}; + WEAK symbol SV_KickClientNum{0, 0x14047ED00}; + WEAK symbol SV_MapExists{0, 0x14047ED60}; WEAK symbol SV_Cmd_ArgvBuffer{0x1402EEFD0, 0x1403B05C0}; + WEAK symbol SV_FastRestart{0, 0x14047E990}; + WEAK symbol SV_GameSendServerCommand{ + 0x1403F3A70, 0x140484AD0 + }; + WEAK symbol Sys_ShowConsole{0x1403E3B90, 0x140514910}; + WEAK symbol Sys_Error{0x1403E0C40, 0x140511520}; WEAK symbol - Sys_BuildAbsPath{0x1403CFF90, 0x140507010}; // H1(1.4) + Sys_BuildAbsPath{0x1403CFF90, 0x140507010}; + WEAK symbol Sys_Milliseconds{0x1403E2B10, 0x140513710}; + WEAK symbol Sys_IsDatabaseReady2{0x1403580B0, 0x14042B090}; + WEAK symbol Sys_SendPacket{0x1403E2820, 0x1405133B0}; + WEAK symbol Sys_FileExists{0x1403E0CE0, 0x1405115E0}; - WEAK symbol Sys_FileExists{0x1403E0CE0, 0x1405115E0}; // H1(1.4) + WEAK symbol UI_GetMapDisplayName{0, 0x140408CC0}; + WEAK symbol UI_GetGameTypeDisplayName{0, 0x1404086A0}; + WEAK symbol UI_SafeTranslateString{0x140350430, 0x1405A2930}; + WEAK symbol UI_RunMenuScript{0, 0x1404CFE60}; + WEAK symbol UI_TextWidth{0, 0x1404D21A0}; - // Variables + WEAK symbol VM_Execute{0, 0x1405C8DB0}; - WEAK symbol sv_cmd_args{0, 0x14946BA20}; // H1(1.4) + WEAK symbol longjmp{0x140648FD4, 0x14089EED0}; + WEAK symbol _setjmp{0x1406BFDD0, 0x1408EC2E0}; - WEAK symbol command_whitelist{0x141079A60, 0x14120C360}; // H1(1.4) + /*************************************************************** + * Variables + **************************************************************/ + + + WEAK symbol sv_cmd_args{0, 0x14946BA20}; + + WEAK symbol command_whitelist{0x141079A60, 0x14120C360}; + WEAK symbol cmd_functions{0x14AD99AB8, 0x14946BAC8}; + WEAK symbol cmd_args{0x14AD99960, 0x14946B970}; WEAK symbol g_assetNames{0, 0x140BEF280}; - WEAK symbol g_poolSize{0, 0x140FEADF0}; // H1(1.4) + WEAK symbol g_poolSize{0, 0x140FEADF0}; WEAK symbol gfxDrawMethod{0, 0x14EDF9E00}; - WEAK symbol dvarCount{0, 0x14D064CF4}; //h1mp - WEAK symbol sortedDvars{0, 0x14D064D00}; //h1mp + WEAK symbol dvarCount{0, 0x14D064CF4}; + WEAK symbol sortedDvars{0, 0x14D064D00}; WEAK symbol levelEntityId{0, 0x14B5E0B30}; WEAK symbol g_script_error_level{0, 0x14BA9CC24}; @@ -224,19 +189,24 @@ namespace game WEAK symbol scr_VarGlob{0, 0x14B617C00}; WEAK symbol scr_VmPub{0, 0x14BA9EE40}; WEAK symbol scr_function_stack{0, 0x14BAA93C0}; - WEAK symbol DB_XAssetPool{0x140DE8C80, 0x140FEB5D0}; // H1(1.4) + WEAK symbol DB_XAssetPool{0x140DE8C80, 0x140FEB5D0}; - WEAK symbol threadIds{0x14B19B880, 0x149810E00}; // H1(1.4) + WEAK symbol keyCatchers{0x14243DAF0, 0x142D0BA9C}; + WEAK symbol playerKeys{0x1422A873C, 0x142C19AFC}; + + WEAK symbol query_socket{0, 0x14DDFBF98}; + + WEAK symbol threadIds{0x14B19B880, 0x149810E00}; namespace mp { - WEAK symbol g_entities{0, 0x14621E530}; // H1(1.4) - WEAK symbol svs_clients{0, 0x14B204A10}; // H1(1.4) - WEAK symbol gameTime{0, 0x14621BDBC}; // H1(1.4) + WEAK symbol g_entities{0, 0x14621E530}; + WEAK symbol svs_clients{0, 0x14B204A10}; + WEAK symbol gameTime{0, 0x14621BDBC}; } namespace sp { - WEAK symbol g_entities{0x14550DD90, 0}; // H1(1.4) + WEAK symbol g_entities{0x14550DD90, 0}; } }