mirror of
https://github.com/diamante0018/BlackOpsPlugin.git
synced 2025-04-20 18:35:42 +00:00
502 lines
10 KiB
C++
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
|