2023-01-30 19:31:14 +00:00

502 lines
10 KiB
C++

#pragma once
namespace game {
typedef float vec_t;
typedef vec_t vec2_t[2];
typedef vec_t vec3_t[3];
typedef vec_t vec4_t[4];
enum FsListBehavior_e { FS_LIST_PURE_ONLY = 0x0, FS_LIST_ALL = 0x1 };
enum svscmd_type { SV_CMD_CAN_IGNORE, SV_CMD_RELIABLE };
typedef enum {
ERR_FATAL = 0x0,
ERR_DROP = 0x1,
ERR_SERVERDISCONNECT = 0x2,
ERR_DISCONNECT = 0x3,
ERR_SCRIPT = 0x4,
ERR_SCRIPT_DROP = 0x5,
ERR_LOCALIZATION = 0x6
} errorParm_t;
typedef enum {
LOCAL_CLIENT_INVALID = -1,
LOCAL_CLIENT_0 = 0,
LOCAL_CLIENT_1 = 1,
LOCAL_CLIENT_2 = 2,
LOCAL_CLIENT_3 = 3,
LOCAL_CLIENT_LAST = 3,
LOCAL_CLIENT_COUNT = 4
} LocalClientNum_t;
typedef enum {
CON_CHANNEL_DONT_FILTER = 0x0,
CON_CHANNEL_ERROR = 0x1,
CON_CHANNEL_GAMENOTIFY = 0x2,
CON_CHANNEL_BOLDGAME = 0x3,
CON_CHANNEL_SUBTITLE = 0x4,
CON_CHANNEL_OBITUARY = 0x5,
CON_CHANNEL_LOGFILEONLY = 0x6,
CON_CHANNEL_CONSOLEONLY = 0x7,
CON_CHANNEL_GFX = 0x8,
CON_CHANNEL_SOUND = 0x9,
CON_CHANNEL_FILES = 0xA,
CON_CHANNEL_DEVGUI = 0xB,
CON_CHANNEL_PROFILE = 0xC,
CON_CHANNEL_UI = 0xD,
CON_CHANNEL_CLIENT = 0xE,
CON_CHANNEL_SERVER = 0xF,
CON_CHANNEL_SYSTEM = 0x10,
CON_CHANNEL_PLAYERWEAP = 0x11,
CON_CHANNEL_AI = 0x12,
CON_CHANNEL_ANIM = 0x13,
CON_CHANNEL_PHYS = 0x14,
CON_CHANNEL_FX = 0x15,
CON_CHANNEL_LEADERBOARDS = 0x16,
CON_CHANNEL_LIVE = 0x17,
CON_CHANNEL_PARSERSCRIPT = 0x18,
CON_CHANNEL_SCRIPT = 0x19,
CON_CHANNEL_SPAWNSYSTEM = 0x1A,
CON_CHANNEL_COOPINFO = 0x1B,
CON_CHANNEL_SERVERDEMO = 0x1C,
CON_CHANNEL_DDL = 0x1D,
CON_CHANNEL_NETWORK = 0x1E,
CON_CHANNEL_SCHEDULER = 0x1F,
CON_FIRST_DEBUG_CHANNEL = 0x1F,
CON_CHANNEL_TASK = 0x20,
CON_CHANNEL_SPU = 0x21,
CON_BUILTIN_CHANNEL_COUNT = 0x22
} conChannel_t;
typedef enum {
CON_DEST_CONSOLE = 0,
CON_DEST_MINICON = 1,
CON_DEST_ERROR = 2,
CON_DEST_GAME_FIRST = 3,
CON_DEST_GAME1 = 3,
CON_DEST_GAME2 = 4,
CON_DEST_GAME3 = 5,
CON_DEST_GAME_LAST = 5,
CON_DEST_COUNT = 6
} print_msg_dest_t;
typedef enum {
NS_CLIENT1 = 0x0,
NS_SERVER = 0x1,
NS_MAXCLIENTS = 0x1,
NS_PACKET = 0x2
} netsrc_t;
typedef enum { CS_MOTD = 11, CS_TIMESCALE = 14 } ConfigString;
typedef enum {
FS_READ = 0,
FS_WRITE = 1,
FS_APPEND = 2,
FS_APPEND_SYNC = 3
} fsMode_t;
struct PrintChannel {
char name[32];
bool allowScript;
};
static_assert(sizeof(PrintChannel) == 33);
struct PrintChannelGlob {
PrintChannel openChannels[256];
unsigned int filters[6][8];
};
struct usercmd_s {
int serverTime;
int button_bits[2];
int angles[3];
unsigned __int16 weapon;
unsigned __int16 offHandIndex;
unsigned __int16 lastWeaponAltModeSwitch;
char forwardmove;
char rightmove;
char upmove;
char pitchmove;
char yawmove;
float meleeChargeYaw;
unsigned char meleeChargeDist;
float rollmove;
char selectedLocation[2];
unsigned char selectedYaw;
};
static_assert(sizeof(usercmd_s) == 52);
struct cmd_function_s {
cmd_function_s* next;
const char* name;
const char* autoCompleteDir;
const char* autoCompleteExt;
void(__cdecl* function)();
bool consoleAccess;
};
static_assert(sizeof(cmd_function_s) == 24);
struct CmdArgs {
int nesting;
int localClientNum[8];
int controllerIndex[8];
void* itemDef[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;
};
static_assert(sizeof(CmdArgs) == 10476);
typedef enum {
NA_BOT = 0x0,
NA_BAD = 0x1,
NA_LOOPBACK = 0x2,
NA_BROADCAST = 0x3,
NA_IP = 0x4
} netadrtype_t;
struct netadr_s // Confirm nigga
{
netadrtype_t type;
unsigned char ip[4];
unsigned __int16 port;
int addrHandleIndex;
};
static_assert(sizeof(netadr_s) == 16);
struct msg_t {
int overflowed;
int readOnly;
unsigned char* data;
unsigned char* splitData;
int maxsize;
int cursize;
int splitSize;
int readcount;
int bit;
int lastEntityRef;
int flush;
netsrc_t targetLocalNetID;
};
static_assert(sizeof(msg_t) == 48);
typedef enum {
SCRIPTINSTANCE_SERVER,
SCRIPTINSTANCE_CLIENT,
SCRIPT_INSTANCE_MAX
} scriptInstance_t;
enum dvar_flags : unsigned __int16 {
DVAR_ARCHIVE = 0x1,
DVAR_WRITEPROTECTED = 0x10,
DVAR_READONLY = 0x40,
DVAR_CHEAT = 0x80,
DVAR_CODINFO = 0x100,
};
typedef enum : char {
DVAR_TYPE_BOOL = 0x0,
DVAR_TYPE_FLOAT = 0x1,
DVAR_TYPE_FLOAT_2 = 0x2,
DVAR_TYPE_FLOAT_3 = 0x3,
DVAR_TYPE_FLOAT_4 = 0x4,
DVAR_TYPE_INT = 0x5,
DVAR_TYPE_ENUM = 0x6,
DVAR_TYPE_STRING = 0x7,
DVAR_TYPE_COLOR = 0x8,
DVAR_TYPE_INT64 = 0x9,
DVAR_TYPE_LINEAR_COLOR_RGB = 0xA,
DVAR_TYPE_COLOR_XYZ = 0xB,
DVAR_TYPE_COUNT = 0xC,
} dvarType_t;
union DvarValue {
bool enabled;
int integer;
unsigned int unsignedInt;
__int64 integer64;
unsigned __int64 unsignedInt64;
float value;
float vector[4];
const char* string;
unsigned char color[4];
};
struct enum_limit {
int stringCount;
const char** strings;
};
struct int_limit {
int min;
int max;
};
struct int64_limit {
__int64 min;
__int64 max;
};
struct float_limit {
float min;
float max;
};
union DvarLimits {
enum_limit enumeration;
int_limit integer;
float_limit value;
float_limit vector;
};
typedef struct dvar_s {
const char* name;
const char* description;
long hash;
unsigned int flags;
dvarType_t type;
bool modified;
bool loadedFromSaveGame;
DvarValue current;
DvarValue latched;
DvarValue reset;
DvarValue saved;
DvarLimits domain;
dvar_s* hashNext;
} dvar_t;
static_assert(sizeof(dvar_s) == 104);
enum playerFlag {
PLAYER_FLAG_NOCLIP = 1 << 0,
PLAYER_FLAG_UFO = 1 << 1,
PLAYER_FLAG_FROZEN = 1 << 2,
};
struct playerState_s {
int commandTime;
int pm_type;
int bobCycle;
int pm_flags;
int weapFlags;
int otherFlags;
int pm_time;
};
struct pmove_t {
playerState_s* ps;
};
struct gclient_s {
char __pad0[10396];
int flags;
char __pad1[320];
};
static_assert(sizeof(gclient_s) == 10720);
enum entityFlag {
FL_GODMODE = 1,
FL_DEMI_GODMODE = 2,
FL_NOTARGET = 4,
FL_NO_KNOCKBACK = 8,
FL_DROPPED_ITEM = 16,
FL_NO_BOTS = 32,
FL_NO_HUMANS = 64,
FL_TOGGLE = 128,
FL_SOFTACTIVATE = 256,
FL_LOW_PRIORITY_USEABLE = 512,
FL_NO_HEADCHECK = 1024,
FL_DYNAMICPATH = 2048,
FL_SUPPORTS_LINKTO = 4096,
FL_NO_AUTO_ANIM_UPDATE = 8192,
FL_GRENADE_TOUCH_DAMAGE = 16384,
FL_GRENADE_MARTYRDOM = 32768,
FL_MISSILE_DESTABILIZED = 65536,
FL_STABLE_MISSILES = 131072,
FL_REPEAT_ANIM_UPDATE = 262144,
FL_VEHICLE_TARGET = 524288,
FL_GROUND_ENT = 1048576,
FL_CURSOR_HINT = 2097152,
FL_USE_TURRET = 4194304,
FL_MISSILE_ATTRACTOR = 8388608,
FL_TARGET = 16777216,
FL_WEAPON_BEING_GRABBED = 33554432,
FL_OBSTACLE = 67108864,
FL_DODGE_LEFT = 134217728,
FL_DODGE_RIGHT = 268435456,
FL_BADPLACE_VOLUME = 536870912,
FL_AUTO_BLOCKPATHS = 1073741824
};
enum playerStateFlag { PMF_PRONE = 0x1, PMF_DUCKED = 0x2, PMF_MANTLE = 0x4 };
struct gentity_s {
int entnum;
char __pad0[320];
gclient_s* client;
char __pad1[44];
int flags;
char __pad2[384];
};
static_assert(sizeof(gentity_s) == 760);
struct netProfilePacket_t {
int iTime;
int iSize;
int bFragment;
};
struct netProfileStream_t {
netProfilePacket_t packets[60];
int iCurrPacket;
int iBytesPerSecond;
int iLastBPSCalcTime;
int iCountedPackets;
int iCountedFragments;
int iFragmentPercentage;
int iLargestPacket;
int iSmallestPacket;
};
struct netProfileInfo_t {
netProfileStream_t send;
netProfileStream_t recieve;
};
static_assert(sizeof(netProfileInfo_t) == 1504);
struct netchan_t {
int outgoingSequence;
netsrc_t sock;
int dropped;
int incomingSequence;
netadr_s remoteAddress;
int qport;
int fragmentSequence;
int fragmentLength;
unsigned char* fragmentBuffer;
int fragmentBufferSize;
int unsentFragments;
int unsentFragmentStart;
int unsentLength;
unsigned char* unsentBuffer;
int unsentBufferSize;
int reliable_fragments;
unsigned char fragment_send_count[128];
unsigned int fragment_ack[4];
int lowest_send_count;
netProfileInfo_t prof;
};
static_assert(sizeof(netchan_t) == 1728);
struct MantleState {
float yaw;
int timer;
int transIndex;
int flags;
};
enum ViewLockTypes {
PLAYERVIEWLOCK_NONE = 0,
PLAYERVIEWLOCK_FULL = 1,
PLAYERVIEWLOCK_WEAPONJITTER = 2,
PLAYERVIEWLOCKCOUNT = 3
};
typedef enum {
PM_NORMAL = 0,
PM_NORMAL_LINKED = 1,
PM_NOCLIP = 2,
PM_UFO = 3,
PM_SPECTATOR = 4,
PM_INTERMISSION = 5,
PM_LASTSTAND = 6,
PM_REVIVEE = 7,
PM_LASTSTAND_TRANSITION = 8,
PM_DEAD = 9,
PM_DEAD_LINKED = 10
} pmtype_t;
enum clientState_t {
CS_FREE = 0,
CS_ZOMBIE = 1,
CS_RECONNECTING = 2,
CS_CONNECTED = 3,
CS_CLIENTLOADING = 4,
CS_ACTIVE = 5
};
struct PredictedVehicleInfo {
bool inVehicle;
vec3_t origin;
vec3_t angles;
vec3_t tVel;
vec3_t aVel;
};
static_assert(sizeof(PredictedVehicleInfo) == 52);
struct clientHeader_t {
clientState_t state;
int sendAsActive;
int deltaMessage;
int rateDealyed;
netchan_t netchan;
vec3_t predictedOrigin;
int predictedOriginServerTime;
PredictedVehicleInfo vehicle;
};
static_assert(sizeof(clientHeader_t) == 1812);
struct svscmd_info_t {
const char* cmd;
int time;
int type;
};
struct client_s {
clientHeader_t header;
const char* dropReason; // 1812
char userinfo[1024]; // 1816
char reliableCommandBuffer[16384]; // 2840
int reliableCommandBufferNext; // 19224
svscmd_info_t reliableCommandInfo[128]; // 19228
int reliableSequence; // 20764
int reliableAcknowledge; // 20768
int reliableSent; // 20772
int messageAcknowledge; // 20776
int gamestateMessageNum; // 20780
int challenge; // 20784
usercmd_s lastUsercmd; // 20788
int lastClientCommand; // 20840
char lastClientCommandString[1024]; // 20844
gentity_s* gentity; // 21868
char name[32]; // 21872
char clanAbbrev[5]; // 21904
unsigned __int64 xuid; // 21912
char __pad0[0x54FB0];
int bIsTestClient;
unsigned char __pad1[0x21D90];
};
static_assert(offsetof(client_s, bIsTestClient) == 0x5A550);
static_assert(sizeof(client_s) == 0x7C2E8);
} // namespace game