#pragma once #include "structs.hpp" #define WEAK __declspec(selectany) namespace game { #define Com_Error(code, fmt, ...) Com_Error_(__FILE__, __LINE__, code, fmt, ##__VA_ARGS__) // CL WEAK symbol CL_ConnectFromLobby {0x14134C570}; // Game WEAK symbol G_Say{0x0, 0x140299170}; WEAK symbol G_LogPrintf{0x0, 0x1402A7BB0}; // Com WEAK symbol Com_Printf{0x142148F60, 0x140505630}; WEAK symbol Com_Error_{0x1420F8170, 0x140501470}; WEAK symbol Com_SessionMode_IsMode{0x1420F7370}; WEAK symbol Com_SessionMode_SetNetworkMode{0x1420F75B0, 0x140500B80}; WEAK symbol Com_SessionMode_SetGameMode{0x1420F7570, 0x140500B40}; WEAK symbol Com_SessionMode_SetMode{0x1420F7570}; WEAK symbol Com_GametypeSettings_SetGametype{ 0x1420F5980 }; WEAK symbol Com_IsRunningUILevel{0x142148350}; WEAK symbol Com_SwitchMode{ 0x14214A4D0 }; WEAK symbol Cbuf_AddText{0x1420EC010, 0x1404F75B0}; WEAK symbol Cbuf_ExecuteBuffer{ 0x14133BE10, 0x1404F78D0 }; WEAK symbol Cmd_AddCommandInternal{ 0x1420ECC90, 0x1404F8210 }; WEAK symbol Cbuf_AddServerText_f{0x0, 0x1407DB4C0}; WEAK symbol Cmd_AddServerCommandInternal { 0x0, 0x1404F8280 }; WEAK symbol Cmd_ExecuteSingleCommand{ 0x1420ED380 }; WEAK symbol Con_GetTextCopy{0x14133A7D0, 0x140182C40}; // DB WEAK symbol DB_LoadXAssets{ 0x1414236A0 }; WEAK symbol DB_EnumXAssets{ 0x141420970, 0x1401D5A50 }; WEAK symbol DB_FindXAssetHeader{ 0x141420ED0, 0x1401D5FB0 }; WEAK symbol DB_GetXAssetName{0x1413E9DA0, 0x14019F080}; WEAK symbol DB_FileExists{0x141420B40}; WEAK symbol DB_ReleaseXAssets{0x1414247C0}; // Live WEAK symbol Live_GetConnectivityInformation{0x141E0C380}; // MSG WEAK symbol MSG_ReadByte{0x142155450, 0x14050D1B0}; // NET WEAK symbol NET_SendPacket{ 0x1423323B0, 0x140596E40 }; WEAK symbol NET_StringToAdr{0x142172780, 0x140515110}; // Sys WEAK symbol Sys_Milliseconds{0x142332870}; WEAK symbol Sys_ShowConsole{0x1423333C0, 0x140597E40}; WEAK symbol Sys_GetTLS{0x1421837B0, 0x140525EB0}; WEAK symbol Sys_IsDatabaseReady{0x142183A60}; // Unnamed WEAK symbol CopyString{0x1422AC220, 0x14056BD70}; WEAK symbol isModLoaded{0x1420D5020}; WEAK symbol loadMod{0x1420D6930}; // Dvar WEAK symbol Dvar_IsSessionModeBaseDvar{0x1422C23A0, 0x140576890}; WEAK symbol Dvar_FindVar{0x1422BCCD0, 0x140575540}; WEAK symbol Dvar_GenerateHash{0x14133DBF0, 0x140185800}; WEAK symbol Dvar_FindMalleableVar{0x1422BCC40}; WEAK symbol Dvar_GetDebugName{0x1422BD250}; WEAK symbol Dvar_GetString{0x1422BF590, 0x140575E30}; WEAK symbol Dvar_DisplayableValue{0x1422BC080}; WEAK symbol Dvar_GetBool{0x1422BCED0}; WEAK symbol Dvar_RegisterBool{ 0x1422D0900 }; WEAK symbol Dvar_RegisterString{ 0x1422D0B70 }; WEAK symbol Dvar_ForEach{0x1422BCD00}; WEAK symbol Dvar_SetFromStringByName{ 0x1422C7500 }; // UI WEAK symbol UI_CoD_Init{0x141F29010, 0x1404A0A50}; WEAK symbol UI_CoD_LobbyUI_Init{0x141F2BD80, 0x1404A1F50}; WEAK symbol UI_CoD_Shutdown{0x141F32E10, 0x0}; WEAK symbol UI_AddMenu{0x1427018F0, 0x0}; WEAK symbol UI_CoD_GetRootNameForController{0x141F28940, 0x0}; WEAK symbol Lua_CoD_LoadLuaFile{0x141F11A20, 0x0}; WEAK symbol CG_LUIHUDRestart{0x140F7E970}; WEAK symbol CL_CheckKeepDrawingConnectScreen{0x1413CCAE0}; // Scr WEAK symbol Scr_AddInt{0x0, 0x14016F160}; WEAK symbol Scr_AddString{0x0, 0x14016F320}; WEAK symbol Scr_GetString{0x0, 0x140171490}; WEAK symbol Scr_Notify_Canon{ 0x0, 0x1402F5FF0 }; WEAK symbol Scr_GetNumParam{0x0, 0x140171320}; WEAK symbol Cinematic_StartPlayback{0x1412BE3A0}; WEAK symbol Cinematic_StopPlayback{0x1412BEA70}; // Rendering WEAK symbol R_AddCmdDrawText{ 0x141CD98D0 }; // SV WEAK symbol SV_Loaded{0x142252250, 0x140535460}; WEAK symbol SV_AddTestClient{0x142248F40, 0x14052E3E0}; WEAK symbol SV_SendServerCommand{0x0, 0x140537F10}; WEAK symbol SV_IsTestClient{0x14224AB60, 0x14052FF40}; WEAK symbol SV_SpawnServer{ 0x1422528C0, 0x140535B20 }; // Utils WEAK symbol I_CleanStr{0x1422E9050, 0x140580E80}; // Variables WEAK symbol cmd_functions{0x15689DF58, 0x14946F860}; WEAK symbol sv_cmd_args{0x15689AE30, 0x14944C740}; WEAK symbol g_entities{0x0, 0x1471031B0}; WEAK symbol level_time{0x0, 0x1474FDC94}; WEAK symbol ip_socket{0x157E75818, 0x14A640988}; WEAK symbol s_join{0x15574A640}; WEAK symbol s_dvarPool{0x157AC6220, 0x14A3CB620}; WEAK symbol g_dvarCount{0x157AC61CC, 0x14A3CB5FC}; namespace s_wcd { WEAK symbol codLogo{0x157E75A50, 0x14A640BC0}; WEAK symbol hfBufferFont{0x157E75A58, 0x14A640BC8}; WEAK symbol hWnd{0x157E75A40, 0x14A640BB0}; WEAK symbol hwndBuffer{0x157E75A48, 0x14A640BB8}; WEAK symbol hwndInputLine{0x157E75A60, 0x14A640BD0}; WEAK symbol windowHeight{0x157E7606C, 0x14A6411DC}; WEAK symbol windowWidth{0x157E76068, 0x14A6411D8}; WEAK symbol SysInputLineWndProc{0x157E76070, 0x14A6411E0}; } // Global game definitions constexpr auto CMD_MAX_NESTING = 8; // Re-implementations eModes Com_SessionMode_GetMode(); bool I_islower(int c); bool I_isupper(int c); unsigned int Scr_CanonHash(const char* str); namespace hks { WEAK symbol lua_state{0x159C76D88, 0x14858C408}; WEAK symbol hksi_lua_pushlstring{0x140A18430, 0x1401DE6F0}; WEAK symbol hks_obj_settable{0x141D4B660, 0x1403F41B0}; WEAK symbol hks_obj_gettable{0x141D4ABF0, 0x1403F3750}; WEAK symbol vm_call_internal{ 0x141D70FE0, 0x140418E40 }; WEAK symbol Hashtable_Create{ 0x141D3B5F0, 0x1403E46D0 }; WEAK symbol cclosure_Create{0x141D3B7E0, 0x1403E48C0}; WEAK symbol hksi_luaL_ref{0x141D4D1A0, 0x1403F5CF0}; WEAK symbol hksi_luaL_unref{0x141D4D320, 0x1403F5E70}; WEAK symbol hksi_hksL_loadbuffer{0x141D4BD80, 0x1403F48D0}; WEAK symbol hksi_lua_getinfo{0x141D4D8D0, 0x1403F64B0}; WEAK symbol hksi_lua_getstack{0x141D4DB90, 0x1403F6770}; WEAK symbol hksi_luaL_error{0x141D4D050, 0x1403F5BA0}; WEAK symbol s_compilerTypeName{0x140A18430}; } }