From ca263a16e796e0575de2af26e2db2e0cb567d912 Mon Sep 17 00:00:00 2001 From: Diavolo Date: Wed, 10 Aug 2022 11:26:19 +0200 Subject: [PATCH] Label some useful functions --- src/client/game/game.hpp | 7 +++- src/client/game/structs.hpp | 67 +++++++++++++++++++++++++++++++++++++ src/client/game/symbols.hpp | 20 ++++++++++- 3 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 src/client/game/structs.hpp diff --git a/src/client/game/game.hpp b/src/client/game/game.hpp index 11b3ee74..abdf58a3 100644 --- a/src/client/game/game.hpp +++ b/src/client/game/game.hpp @@ -1,9 +1,12 @@ #pragma once -//#include "structs.hpp" +#include "structs.hpp" namespace game { + #define Com_Error(code, fmt, ...) \ + Com_Error_(__FILE__, __LINE__, code, fmt, ##__VA_ARGS__) + int Conbuf_CleanText(const char* source, char* target); template @@ -34,6 +37,8 @@ namespace game T* address_; }; + // Global game definitions + constexpr auto CMD_MAX_NESTING = 8; } #include "symbols.hpp" diff --git a/src/client/game/structs.hpp b/src/client/game/structs.hpp new file mode 100644 index 00000000..4191e19b --- /dev/null +++ b/src/client/game/structs.hpp @@ -0,0 +1,67 @@ +#pragma once + +namespace game +{ + typedef void (*xcommand_t)(); + + enum errorCode + { + ERROR_NONE = 0x0, + ERROR_FATAL = 0x1, + ERROR_DROP = 0x2, + ERROR_FROM_STARTUP = 0x4, + ERROR_SERVERDISCONNECT = 0x8, + ERROR_DISCONNECT = 0x10, + ERROR_SCRIPT = 0x20, + ERROR_SCRIPT_DROP = 0x40, + ERROR_LOCALIZATION = 0x80, + ERROR_UI = 0x100, + ERROR_LUA = 0x200, + ERROR_SOFTRESTART = 0x400, + ERROR_SOFTRESTART_KEEPDW = 0x800, + }; + + struct cmd_function_s + { + cmd_function_s* next; + const char* name; + const char* autoCompleteDir; + const char* autoCompleteExt; + xcommand_t function; + }; + + struct CmdArgs + { + int nesting; + int localClientNum[8]; + int controllerIndex[8]; + int argshift[8]; + int argc[8]; + const char** argv[8]; + char textPool[8192]; + const char* argvPool[512]; + int usedTextPool[8]; + int totalUsedArgvPool; + int totalUsedTextPool; + }; + + struct va_info_t + { + char va_string[4][1024]; + int index; + }; + + struct TLSData + { + va_info_t* vaInfo; + jmp_buf* errorJmpBuf; + void* traceInfo; + CmdArgs* cmdArgs; + void* errorData; + }; + + struct dvar_t + { + unsigned int name; + }; // Incomplete +} diff --git a/src/client/game/symbols.hpp b/src/client/game/symbols.hpp index 32dbd7ab..7aa24cdd 100644 --- a/src/client/game/symbols.hpp +++ b/src/client/game/symbols.hpp @@ -4,10 +4,28 @@ namespace game { - WEAK symbol Cbuf_AddText{0x1420EC8B0_g}; + // Com WEAK symbol Com_Printf{0x1421499C0_g}; + WEAK symbol Com_Error_{0x1420F8BD0_g}; + + WEAK symbol Cbuf_AddText{0x1420EC8B0_g}; + WEAK symbol Cmd_AddCommandInternal{0x1420ED530_g}; WEAK symbol Con_GetTextCopy{0x14133A7D0_g}; + + // Sys WEAK symbol Sys_ShowConsole{0x142333F80_g}; + WEAK symbol Sys_GetTLS{0x142184210_g}; + + // Dvar + WEAK symbol Dvar_FindVar{0x1422BD730_g}; + WEAK symbol Dvar_GenerateHash{0x14133DBF0_g}; + WEAK symbol Dvar_FindMalleableVar{0x1422BD6A0_g}; + WEAK symbol Dvar_GetDebugName{0x1422BDCB0_g}; + WEAK symbol Dvar_GetString{0x1422BFFF0_g}; + + // Variables + WEAK symbol cmd_functions{0x15689FF58_g}; + WEAK symbol sv_cmd_args{0x15689CE30_g}; namespace s_wcd {