better structs

This commit is contained in:
6arelyFuture 2021-12-03 19:57:58 +00:00
parent cf85eebf0d
commit 1ffc5ba3f1
No known key found for this signature in database
GPG Key ID: E883E2BC9657D955
4 changed files with 233 additions and 19 deletions

View File

@ -2,8 +2,10 @@
#include <loader/component_loader.hpp> #include <loader/component_loader.hpp>
#include <utils/hook.hpp> #include <utils/hook.hpp>
#include <utils/string.hpp>
#include "key_catcher.hpp" #include "key_catcher.hpp"
#include "command.hpp"
namespace cheats namespace cheats
{ {
@ -84,6 +86,11 @@ namespace cheats
{ {
game::Dvar_SetBool(cl_EnableCheats, false); game::Dvar_SetBool(cl_EnableCheats, false);
}); });
key_catcher::on_key_press("Y", [](const game::LocalClientNum_t&)
{
command::execute(utils::string::va("cmd mr %i 2 allies", *game::serverId), true);
});
} }
}; };
} }

View File

@ -29,7 +29,7 @@ namespace network
} }
const auto offset = cmd_string.size() + 5; const auto offset = cmd_string.size() + 5;
const std::string_view data(message->data + offset, message->cursize - offset); const std::string_view data(reinterpret_cast<char*>(message->data) + offset, message->cursize - offset);
handler->second(*address, data); handler->second(*address, data);
return true; return true;

View File

@ -1,5 +1,8 @@
#pragma once #pragma once
#pragma warning(push)
#pragma warning(disable: 4324)
namespace game namespace game
{ {
typedef float vec_t; typedef float vec_t;
@ -28,26 +31,153 @@ namespace game
typedef enum typedef enum
{ {
ERR_FATAL = 0x0, K_NONE = 0x0,
ERR_DROP = 0x1, K_FIRSTGAMEPADBUTTON_RANGE_1 = 0x1, // First Gamepad 1
ERR_SERVERDISCONNECT = 0x2, K_BUTTON_A = 0x1,
ERR_DISCONNECT = 0x3, K_BUTTON_B = 0x2,
ERR_SCRIPT = 0x4, K_BUTTON_X = 0x3,
ERR_SCRIPT_DROP = 0x5, K_BUTTON_Y = 0x4,
ERR_LOCALIZATION = 0x6, K_BUTTON_LSHLDR = 0x5,
ERR_MAPLOADERRORSUMMARY = 0x7 K_BUTTON_RSHLDR = 0x6,
} errorParm_t; K_LASTGAMEPADBUTTON_RANGE_1 = 0x6, // Last Gamepad 1
K_TAB = 0x9,
K_ENTER = 0xD,
K_FIRSTGAMEPADBUTTON_RANGE_2 = 0xE, // First Gamepad 2
K_BUTTON_START = 0xE,
K_BUTTON_BACK = 0xF,
K_BUTTON_LSTICK = 0x10,
K_BUTTON_RSTICK = 0x11,
K_BUTTON_LTRIG = 0x12,
K_BUTTON_RTRIG = 0x13,
K_FIRSTDPAD = 0x14, // First Dpad
K_DPAD_UP = 0x14,
K_DPAD_DOWN = 0x15,
K_DPAD_LEFT = 0x16,
K_DPAD_RIGHT = 0x17,
K_LASTDPAD = 0x17, // Last Dpad
K_DPAD_LEFTRIGHT = 0x18,
K_DPAD_UPDOWN = 0x19,
K_LASTGAMEPADBUTTON_RANGE_2 = 0x19, // Last Gamepad 2
K_ESCAPE = 0x1B,
K_FIRSTGAMEPADBUTTON_RANGE_3 = 0x1C, // First Gamepad 3
K_FIRSTAPAD = 0x1C, // First APad
K_APAD_UP = 0x1C,
K_APAD_DOWN = 0x1D,
K_APAD_LEFT = 0x1E,
K_APAD_RIGHT = 0x1F,
K_LASTAPAD = 0x1F, // Last APad
K_LASTGAMEPADBUTTON_RANGE_3 = 0x1F, // Last Gamepad 3
K_SPACE = 0x20,
K_BACKSPACE = 0x7F,
K_ASCII_FIRST = 0x80,
K_ASCII_181 = 0x80,
K_ASCII_191 = 0x81,
K_ASCII_223 = 0x82,
K_ASCII_224 = 0x83,
K_ASCII_225 = 0x84,
K_ASCII_228 = 0x85,
K_ASCII_229 = 0x86,
K_ASCII_230 = 0x87,
K_ASCII_231 = 0x88,
K_ASCII_232 = 0x89,
K_ASCII_233 = 0x8A,
K_ASCII_236 = 0x8B,
K_ASCII_241 = 0x8C,
K_ASCII_242 = 0x8D,
K_ASCII_243 = 0x8E,
K_ASCII_246 = 0x8F,
K_ASCII_248 = 0x90,
K_ASCII_249 = 0x91,
K_ASCII_250 = 0x92,
K_ASCII_252 = 0x93,
K_END_ASCII_CHARS = 0x94,
K_COMMAND = 0x96,
K_CAPSLOCK = 0x97,
K_POWER = 0x98,
K_PAUSE = 0x99,
K_UPARROW = 0x9A,
K_DOWNARROW = 0x9B,
K_LEFTARROW = 0x9C,
K_RIGHTARROW = 0x9D,
K_ALT = 0x9E,
K_CTRL = 0x9F,
K_SHIFT = 0xA0,
K_INS = 0xA1,
K_DEL = 0xA2,
K_PGDN = 0xA3,
K_PGUP = 0xA4,
K_HOME = 0xA5,
K_END = 0xA6,
K_F1 = 0xA7,
K_F2 = 0xA8,
K_F3 = 0xA9,
K_F4 = 0xAA,
K_F5 = 0xAB,
K_F6 = 0xAC,
K_F7 = 0xAD,
K_F8 = 0xAE,
K_F9 = 0xAF,
K_F10 = 0xB0,
K_F11 = 0xB1,
K_F12 = 0xB2,
K_F13 = 0xB3,
K_F14 = 0xB4,
K_F15 = 0xB5,
K_KP_HOME = 0xB6,
K_KP_UPARROW = 0xB7,
K_KP_PGUP = 0xB8,
K_KP_LEFTARROW = 0xB9,
K_KP_5 = 0xBA,
K_KP_RIGHTARROW = 0xBB,
K_KP_END = 0xBC,
K_KP_DOWNARROW = 0xBD,
K_KP_PGDN = 0xBE,
K_KP_ENTER = 0xBF,
K_KP_INS = 0xC0,
K_KP_DEL = 0xC1,
K_KP_SLASH = 0xC2,
K_KP_MINUS = 0xC3,
K_KP_PLUS = 0xC4,
K_KP_NUMLOCK = 0xC5,
K_KP_STAR = 0xC6,
K_KP_EQUALS = 0xC7,
K_MOUSE1 = 0xC8,
K_MOUSE2 = 0xC9,
K_MOUSE3 = 0xCA,
K_MOUSE4 = 0xCB,
K_MOUSE5 = 0xCC,
K_MWHEELDOWN = 0xCD,
K_MWHEELUP = 0xCE,
K_AUX1 = 0xCF,
K_AUX2 = 0xD0,
K_AUX3 = 0xD1,
K_AUX4 = 0xD2,
K_AUX5 = 0xD3,
K_AUX6 = 0xD4,
K_AUX7 = 0xD5,
K_AUX8 = 0xD6,
K_AUX9 = 0xD7,
K_AUX10 = 0xD8,
K_AUX11 = 0xD9,
K_AUX12 = 0xDA,
K_AUX13 = 0xDB,
K_AUX14 = 0xDC,
K_AUX15 = 0xDD,
K_AUX16 = 0xDE,
K_LAST_KEY = 0xDF
} keyNum_t;
enum class LocalClientNum_t struct kbutton_t
{ {
LOCAL_CLIENT_0 = 0, int down[2];
LOCAL_CLIENT_1 = 1, unsigned int downtime;
LOCAL_CLIENT_2 = 2, unsigned int msec;
LOCAL_CLIENT_3 = 3, bool active;
LOCAL_CLIENT_LAST = 3, bool wasPressed;
LOCAL_CLIENT_COUNT = 4
}; };
static_assert(sizeof(kbutton_t) == 20);
typedef enum typedef enum
{ {
NS_CLIENT1 = 0, NS_CLIENT1 = 0,
@ -81,12 +211,79 @@ namespace game
static_assert(sizeof(netadr_s) == 24); static_assert(sizeof(netadr_s) == 24);
typedef enum
{
BD_ECC_KEY_UNINITIALIZED = 0x0,
BD_ECC_KEY_INITIALIZED = 0x1
} bdECCKeyStatus;
typedef enum
{
BD_DTLS_INIT = 0x1,
BD_DTLS_INIT_ACK = 0x2,
BD_DTLS_COOKIE_ECHO = 0x3,
BD_DTLS_COOKIE_ACK = 0x4,
BD_DTLS_ERROR = 0x5,
BD_DTLS_DATA = 0x6
} bdDTLSPacketTypes;
typedef enum
{
BD_DTLS_CLOSED = 0x0,
BD_DTLS_COOKIE_WAIT = 0x1,
BD_DTLS_COOKIE_ECHOED = 0x2,
BD_DTLS_ESTABLISHED = 0x3
} bdDTLSStatus;
typedef enum
{
BD_DTLS_ERROR_BAD_SECID = 0x0,
BD_DTLS_INVALID_STATE = 0x1
} bdDTLSErrorType;
typedef enum
{
BD_NAT_OPEN = 0x1,
BD_NAT_MODERATE = 0x2,
BD_NAT_STRICT = 0x3
} bdNATType;
typedef enum
{
BD_SOCKET_IDLE = 0x0,
BD_SOCKET_PENDING = 0x1,
BD_SOCKET_CONNECTED = 0x2,
BD_SOCKET_LOST = 0x3
} bdDTLSAssociationStatus;
typedef enum
{
ERR_FATAL = 0x0,
ERR_DROP = 0x1,
ERR_SERVERDISCONNECT = 0x2,
ERR_DISCONNECT = 0x3,
ERR_SCRIPT = 0x4,
ERR_SCRIPT_DROP = 0x5,
ERR_LOCALIZATION = 0x6,
ERR_MAPLOADERRORSUMMARY = 0x7
} errorParm_t;
enum class LocalClientNum_t
{
LOCAL_CLIENT_0 = 0,
LOCAL_CLIENT_1 = 1,
LOCAL_CLIENT_2 = 2,
LOCAL_CLIENT_3 = 3,
LOCAL_CLIENT_LAST = 3,
LOCAL_CLIENT_COUNT = 4
};
struct msg_t struct msg_t
{ {
int overflowed; int overflowed;
int readOnly; int readOnly;
char* data; unsigned char* data;
char* splitData; unsigned char* splitData;
int maxsize; int maxsize;
int cursize; int cursize;
int splitSize; int splitSize;
@ -852,4 +1049,10 @@ namespace game
int statPacketSendTime[10]; // From here it might be wrong int statPacketSendTime[10]; // From here it might be wrong
int currentGamestatePacket; int currentGamestatePacket;
}; };
struct clientStatic_t
{
};
} }
#pragma warning(pop)

View File

@ -5,6 +5,7 @@
namespace game namespace game
{ {
// Functions // Functions
WEAK symbol<void()> Sys_ShowConsole{0x515CD0};
WEAK symbol<void(errorParm_t, const char* fmt, ...)> Com_Error{0x4A6660}; WEAK symbol<void(errorParm_t, const char* fmt, ...)> Com_Error{0x4A6660};
WEAK symbol<const char*(int index)> ConcatArgs{0x539060}; WEAK symbol<const char*(int index)> ConcatArgs{0x539060};
WEAK symbol<void(LocalClientNum_t, const char* text)> Cbuf_AddText{0x4C1030}; WEAK symbol<void(LocalClientNum_t, const char* text)> Cbuf_AddText{0x4C1030};
@ -53,4 +54,7 @@ namespace game
WEAK symbol<CmdArgs> cmd_args{0x1C96850}; WEAK symbol<CmdArgs> cmd_args{0x1C96850};
WEAK symbol<PlayerKeyState> playerKeys{0xB3A38C}; WEAK symbol<PlayerKeyState> playerKeys{0xB3A38C};
WEAK symbol<clientConnection_t> localClientConnection{0xB3D360}; WEAK symbol<clientConnection_t> localClientConnection{0xB3D360};
WEAK symbol<HWND> g_wv_hWnd{0x5A86AF0};
WEAK symbol<HWND> s_wcd_hWnd{0x5A86330};
WEAK symbol<int> serverId{0x0FF5058};
} }