3120 lines
67 KiB
C++
3120 lines
67 KiB
C++
#pragma once
|
|
#include <d3d11.h>
|
|
|
|
#define PROTOCOL 1
|
|
|
|
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 ControllerIndex_t
|
|
{
|
|
INVALID_CONTROLLER_PORT = -1,
|
|
CONTROLLER_INDEX_0 = 0x0,
|
|
CONTROLLER_INDEX_FIRST = 0x0,
|
|
CONTROLLER_INDEX_COUNT = 0x1,
|
|
};
|
|
|
|
enum
|
|
{
|
|
FL_GODMODE = 0x1,
|
|
FL_DEMI_GODMODE = 0x2,
|
|
FL_NOTARGET = 0x4,
|
|
FL_NO_KNOCKBACK = 0x8,
|
|
FL_NO_RADIUS_DAMAGE = 0x10,
|
|
FL_SUPPORTS_LINKTO = 0x20,
|
|
FL_NO_AUTO_ANIM_UPDATE = 0x40,
|
|
FL_GRENADE_TOUCH_DAMAGE = 0x80,
|
|
FL_STABLE_MISSILES = 0x100,
|
|
FL_REPEAT_ANIM_UPDATE = 0x200,
|
|
FL_VEHICLE_TARGET = 0x400,
|
|
FL_GROUND_ENT = 0x800,
|
|
FL_CURSOR_HINT = 0x1000,
|
|
FL_MISSILE_ATTRACTOR_OR_REPULSOR = 0x2000,
|
|
FL_WEAPON_BEING_GRABBED = 0x4000,
|
|
FL_DELETE = 0x8000,
|
|
FL_BOUNCE = 0x10000,
|
|
FL_MOVER_SLIDE = 0x20000,
|
|
FL_MOVING = 0x40000,
|
|
FL_DONT_AUTOBOLT_MISSILE_EFFECTS = 0x80000,
|
|
FL_DISABLE_MISSILE_STICK = 0x100000,
|
|
FL_NO_MELEE_TARGET = 0x2000000,
|
|
FL_DYNAMICPATH = 0x8000000,
|
|
FL_AUTO_BLOCKPATHS = 0x10000000,
|
|
FL_OBSTACLE = 0x20000000,
|
|
};
|
|
|
|
enum
|
|
{
|
|
PMF_UNK1 = 0x80,
|
|
PMF_UNK2 = 0x100,
|
|
PMF_JUMPING = 0x2000,
|
|
PMF_UNK3 = 0x4000,
|
|
};
|
|
|
|
enum svscmd_type
|
|
{
|
|
SV_CMD_CAN_IGNORE,
|
|
SV_CMD_RELIABLE,
|
|
};
|
|
|
|
enum XAssetType
|
|
{
|
|
ASSET_TYPE_PHYSPRESET = 0x0,
|
|
ASSET_TYPE_PHYSCOLLMAP = 0x1,
|
|
ASSET_TYPE_XANIMPARTS = 0x2,
|
|
ASSET_TYPE_XMODEL_SURFS = 0x3,
|
|
ASSET_TYPE_XMODEL = 0x4,
|
|
ASSET_TYPE_MATERIAL = 0x5,
|
|
ASSET_TYPE_COMPUTESHADER = 0x6,
|
|
ASSET_TYPE_VERTEXSHADER = 0x7,
|
|
ASSET_TYPE_HULLSHADER = 0x8,
|
|
ASSET_TYPE_DOMAINSHADER = 0x9,
|
|
ASSET_TYPE_PIXELSHADER = 0xA,
|
|
ASSET_TYPE_VERTEXDECL = 0xB,
|
|
ASSET_TYPE_TECHNIQUE_SET = 0xC,
|
|
ASSET_TYPE_IMAGE = 0xD,
|
|
ASSET_TYPE_SOUND = 0xE,
|
|
ASSET_TYPE_SOUND_CURVE = 0xF,
|
|
ASSET_TYPE_LPF_CURVE = 0x10,
|
|
ASSET_TYPE_REVERB_CURVE = 0x11,
|
|
ASSET_TYPE_LOADED_SOUND = 0x12,
|
|
ASSET_TYPE_CLIPMAP = 0x13,
|
|
ASSET_TYPE_COMWORLD = 0x14,
|
|
ASSET_TYPE_GLASSWORLD = 0x15,
|
|
ASSET_TYPE_PATHDATA = 0x16,
|
|
ASSET_TYPE_VEHICLE_TRACK = 0x17,
|
|
ASSET_TYPE_MAP_ENTS = 0x18,
|
|
ASSET_TYPE_FXWORLD = 0x19,
|
|
ASSET_TYPE_GFXWORLD = 0x1A,
|
|
ASSET_TYPE_LIGHT_DEF = 0x1B,
|
|
ASSET_TYPE_UI_MAP = 0x1C,
|
|
ASSET_TYPE_FONT = 0x1D,
|
|
ASSET_TYPE_MENULIST = 0x1E,
|
|
ASSET_TYPE_MENU = 0x1F,
|
|
ASSET_TYPE_ANIMCLASS = 0x20,
|
|
ASSET_TYPE_LOCALIZE_ENTRY = 0x21,
|
|
ASSET_TYPE_ATTACHMENT = 0x22,
|
|
ASSET_TYPE_WEAPON = 0x23,
|
|
ASSET_TYPE_SNDDRIVER_GLOBALS = 0x24,
|
|
ASSET_TYPE_FX = 0x25,
|
|
ASSET_TYPE_IMPACT_FX = 0x26,
|
|
ASSET_TYPE_SURFACE_FX = 0x27,
|
|
ASSET_TYPE_AITYPE = 0x28,
|
|
ASSET_TYPE_MPTYPE = 0x29,
|
|
ASSET_TYPE_CHARACTER = 0x2A,
|
|
ASSET_TYPE_XMODELALIAS = 0x2B,
|
|
ASSET_TYPE_RAWFILE = 0x2C,
|
|
ASSET_TYPE_SCRIPTFILE = 0x2D,
|
|
ASSET_TYPE_STRINGTABLE = 0x2E,
|
|
ASSET_TYPE_LEADERBOARD = 0x2F,
|
|
ASSET_TYPE_STRUCTURED_DATA_DEF = 0x30,
|
|
ASSET_TYPE_TRACER = 0x31,
|
|
ASSET_TYPE_VEHICLE = 0x32,
|
|
ASSET_TYPE_ADDON_MAP_ENTS = 0x33,
|
|
ASSET_TYPE_NET_CONST_STRINGS = 0x34,
|
|
ASSET_TYPE_REVERB_PRESET = 0x35,
|
|
ASSET_TYPE_LUA_FILE = 0x36,
|
|
ASSET_TYPE_SCRIPTABLE = 0x37,
|
|
ASSET_TYPE_COLORIZATION = 0x38,
|
|
ASSET_TYPE_COLORIZATIONSET = 0x39,
|
|
ASSET_TYPE_TONEMAPPING = 0x3A,
|
|
ASSET_TYPE_EQUIPMENT_SND_TABLE = 0x3B,
|
|
ASSET_TYPE_VECTORFIELD = 0x3C,
|
|
ASSET_TYPE_DOPPLER_PRESET = 0x3D,
|
|
ASSET_TYPE_PARTICLE_SIM_ANIMATION = 0x3E,
|
|
ASSET_TYPE_COUNT = 0x3F,
|
|
ASSET_TYPE_STRING = 0x3F,
|
|
ASSET_TYPE_ASSETLIST = 0x40,
|
|
};
|
|
|
|
enum DBSyncMode
|
|
{
|
|
DB_LOAD_ASYNC = 0x0,
|
|
DB_LOAD_SYNC = 0x1,
|
|
DB_LOAD_ASYNC_WAIT_ALLOC = 0x2,
|
|
DB_LOAD_ASYNC_FORCE_FREE = 0x3,
|
|
DB_LOAD_ASYNC_NO_SYNC_THREADS = 0x4,
|
|
DB_LOAD_SYNC_SKIP_ALWAYS_LOADED = 0x5,
|
|
};
|
|
|
|
enum
|
|
{
|
|
DB_ZONE_COMMON = 0x1,
|
|
DB_ZONE_UI = 0x2,
|
|
DB_ZONE_GAME = 0x4,
|
|
DB_ZONE_LOAD = 0x8,
|
|
DB_ZONE_DEV = 0x10,
|
|
DB_ZONE_BASEMAP = 0x20,
|
|
DB_ZONE_TRANSIENT_POOL = 0x40,
|
|
DB_ZONE_TRANSIENT_MASK = 0x40,
|
|
DB_ZONE_CUSTOM = 0x80,
|
|
};
|
|
|
|
enum
|
|
{
|
|
THREAD_CONTEXT_MAIN = 0x0,
|
|
THREAD_CONTEXT_BACKEND = 0x1,
|
|
THREAD_CONTEXT_WORKER0 = 0x2,
|
|
THREAD_CONTEXT_WORKER1 = 0x3,
|
|
THREAD_CONTEXT_WORKER2 = 0x4,
|
|
THREAD_CONTEXT_WORKER3 = 0x5,
|
|
THREAD_CONTEXT_WORKER4 = 0x6,
|
|
THREAD_CONTEXT_WORKER5 = 0x7,
|
|
THREAD_CONTEXT_WORKER6 = 0x8,
|
|
THREAD_CONTEXT_WORKER7 = 0x9,
|
|
THREAD_CONTEXT_SERVER = 0xA,
|
|
THREAD_CONTEXT_TRACE_COUNT = 0xB,
|
|
THREAD_CONTEXT_TRACE_LAST = 0xA,
|
|
THREAD_CONTEXT_CINEMATIC = 0xB,
|
|
THREAD_CONTEXT_DATABASE = 0xC,
|
|
THREAD_CONTEXT_STREAM = 0xD,
|
|
THREAD_CONTEXT_SNDSTREAMPACKETCALLBACK = 0xE,
|
|
THREAD_CONTEXT_STATS_WRITE = 0xF,
|
|
THREAD_CONTEXT_COUNT = 0x10,
|
|
};
|
|
|
|
enum Sys_Folder
|
|
{
|
|
SF_ZONE = 0x0,
|
|
SF_ZONE_LOC = 0x1,
|
|
SF_VIDEO = 0x2,
|
|
SF_VIDEO_LOC = 0x3,
|
|
SF_PAKFILE = 0x4,
|
|
SF_PAKFILE_LOC = 0x5,
|
|
SF_COUNT = 0x6,
|
|
};
|
|
|
|
struct db_internal_state
|
|
{
|
|
int mode;
|
|
union
|
|
{
|
|
unsigned int method;
|
|
struct
|
|
{
|
|
unsigned int was;
|
|
unsigned int need;
|
|
} check;
|
|
unsigned int marker;
|
|
} sub;
|
|
int nowrap;
|
|
unsigned int wbits;
|
|
void* blocks;
|
|
};
|
|
|
|
static_assert(sizeof(db_internal_state) == 0x20);
|
|
|
|
struct db_z_stream_s
|
|
{
|
|
unsigned char* next_in;
|
|
unsigned int avail_in;
|
|
unsigned int total_in;
|
|
unsigned char* next_out;
|
|
unsigned int avail_out;
|
|
unsigned int total_out;
|
|
char* msg;
|
|
db_internal_state* state;
|
|
unsigned char* (*zalloc)(unsigned char*, unsigned int, unsigned int);
|
|
void (*zfree)(unsigned char*, unsigned char*);
|
|
unsigned char* opaque;
|
|
int data_type;
|
|
unsigned int adler;
|
|
};
|
|
|
|
struct DBFile
|
|
{
|
|
void* handle;
|
|
unsigned __int64 memoryBufferSize;
|
|
unsigned char* memoryBuffer;
|
|
char name[64];
|
|
};
|
|
|
|
struct DB_LoadData
|
|
{
|
|
DBFile* file;
|
|
unsigned char* fileBuffer;
|
|
unsigned __int64 readSize;
|
|
unsigned __int64 completedReadSize;
|
|
unsigned __int64 offset;
|
|
unsigned char* start_in;
|
|
_OVERLAPPED overlapped;
|
|
unsigned int readError;
|
|
db_z_stream_s stream;
|
|
int readingResident;
|
|
};
|
|
|
|
static_assert(sizeof(DB_LoadData) == 0xB0);
|
|
|
|
union Weapon
|
|
{
|
|
struct
|
|
{
|
|
unsigned int weaponIdx : 8;
|
|
unsigned int weaponVariation : 6;
|
|
unsigned int weaponScopes : 3;
|
|
unsigned int weaponUnderBarrels : 2;
|
|
unsigned int weaponOthers : 7;
|
|
unsigned int scopeVariation : 6;
|
|
} __s0;
|
|
unsigned int data;
|
|
};
|
|
|
|
enum PMem_Source
|
|
{
|
|
PMEM_SOURCE_EXTERNAL = 0x0,
|
|
PMEM_SOURCE_DATABASE = 0x1,
|
|
PMEM_SOURCE_DEFAULT_LOW = 0x2,
|
|
PMEM_SOURCE_DEFAULT_HIGH = 0x3,
|
|
PMEM_SOURCE_MOVIE = 0x4,
|
|
PMEM_SOURCE_SCRIPT = 0x5,
|
|
};
|
|
|
|
enum PMem_Direction
|
|
{
|
|
PHYS_ALLOC_LOW = 0x0,
|
|
PHYS_ALLOC_HIGH = 0x1,
|
|
PHYS_ALLOC_COUNT = 0x2,
|
|
};
|
|
|
|
enum errorParm
|
|
{
|
|
ERR_FATAL = 0,
|
|
ERR_DROP = 1,
|
|
ERR_SERVERDISCONNECT = 2,
|
|
ERR_DISCONNECT = 3,
|
|
ERR_SCRIPT = 4,
|
|
ERR_SCRIPT_DROP = 5,
|
|
ERR_LOCALIZATION = 6,
|
|
ERR_MAPLOADERRORSUMMARY = 7,
|
|
};
|
|
|
|
enum CodPlayMode
|
|
{
|
|
CODPLAYMODE_NONE = 0x0,
|
|
CODPLAYMODE_SP = 0x1,
|
|
CODPLAYMODE_CORE = 0x2,
|
|
CODPLAYMODE_ALIENS = 0x3,
|
|
CODPLAYMODE_SQUADVSSQUAD = 0x4,
|
|
CODPLAYMODE_COUNT = 0x5,
|
|
};
|
|
|
|
enum DWOnlineStatus
|
|
{
|
|
DW_LIVE_DISCONNECTED = 0x0,
|
|
DW_LIVE_CONNECTING = 0x1,
|
|
DW_LIVE_CONNECTED = 0x2,
|
|
};
|
|
|
|
enum bdLobbyErrorCode : uint32_t
|
|
{
|
|
BD_NO_ERROR = 0x0,
|
|
BD_TOO_MANY_TASKS = 0x1,
|
|
BD_NOT_CONNECTED = 0x2,
|
|
BD_SEND_FAILED = 0x3,
|
|
BD_HANDLE_TASK_FAILED = 0x4,
|
|
BD_START_TASK_FAILED = 0x5,
|
|
BD_RESULT_EXCEEDS_BUFFER_SIZE = 0x64,
|
|
BD_ACCESS_DENIED = 0x65,
|
|
BD_EXCEPTION_IN_DB = 0x66,
|
|
BD_MALFORMED_TASK_HEADER = 0x67,
|
|
BD_INVALID_ROW = 0x68,
|
|
BD_EMPTY_ARG_LIST = 0x69,
|
|
BD_PARAM_PARSE_ERROR = 0x6A,
|
|
BD_PARAM_MISMATCHED_TYPE = 0x6B,
|
|
BD_SERVICE_NOT_AVAILABLE = 0x6C,
|
|
BD_CONNECTION_RESET = 0x6D,
|
|
BD_INVALID_USER_ID = 0x6E,
|
|
BD_LOBBY_PROTOCOL_VERSION_FAILURE = 0x6F,
|
|
BD_LOBBY_INTERNAL_FAILURE = 0x70,
|
|
BD_LOBBY_PROTOCOL_ERROR = 0x71,
|
|
BD_LOBBY_FAILED_TO_DECODE_UTF8 = 0x72,
|
|
BD_LOBBY_ASCII_EXPECTED = 0x73,
|
|
BD_ASYNCHRONOUS_ERROR = 0xC8,
|
|
BD_STREAMING_COMPLETE = 0xC9,
|
|
BD_MEMBER_NO_PROPOSAL = 0x12C,
|
|
BD_TEAMNAME_ALREADY_EXISTS = 0x12D,
|
|
BD_MAX_TEAM_MEMBERSHIPS_LIMITED = 0x12E,
|
|
BD_MAX_TEAM_OWNERSHIPS_LIMITED = 0x12F,
|
|
BD_NOT_A_TEAM_MEMBER = 0x130,
|
|
BD_INVALID_TEAM_ID = 0x131,
|
|
BD_INVALID_TEAM_NAME = 0x132,
|
|
BD_NOT_A_TEAM_OWNER = 0x133,
|
|
BD_NOT_AN_ADMIN_OR_OWNER = 0x134,
|
|
BD_MEMBER_PROPOSAL_EXISTS = 0x135,
|
|
BD_MEMBER_EXISTS = 0x136,
|
|
BD_TEAM_FULL = 0x137,
|
|
BD_VULGAR_TEAM_NAME = 0x138,
|
|
BD_TEAM_USERID_BANNED = 0x139,
|
|
BD_TEAM_EMPTY = 0x13A,
|
|
BD_INVALID_TEAM_PROFILE_QUERY_ID = 0x13B,
|
|
BD_TEAMNAME_TOO_SHORT = 0x13C,
|
|
BD_UNIQUE_PROFILE_DATA_EXISTS_ALREADY = 0x13D,
|
|
BD_INVALID_LEADERBOARD_ID = 0x190,
|
|
BD_INVALID_STATS_SET = 0x191,
|
|
BD_EMPTY_STATS_SET_IGNORED = 0x193,
|
|
BD_NO_DIRECT_ACCESS_TO_ARBITRATED_LBS = 0x194,
|
|
BD_STATS_WRITE_PERMISSION_DENIED = 0x195,
|
|
BD_STATS_WRITE_TYPE_DATA_TYPE_MISMATCH = 0x196,
|
|
BD_NO_STATS_FOR_USER = 0x197,
|
|
BD_INVALID_ACCESS_TO_UNRANKED_LB = 0x198,
|
|
BD_INVALID_EXTERNAL_TITLE_ID = 0x199,
|
|
BD_DIFFERENT_LEADERBOARD_SCHEMAS = 0x19A,
|
|
BD_TOO_MANY_LEADERBOARDS_REQUESTED = 0x19B,
|
|
BD_ENTITLEMENTS_ERROR = 0x19C,
|
|
BD_ENTITLEMENTS_INVALID_TITLEID = 0x19D,
|
|
BD_ENTITLEMENTS_INVALID_LEADERBOARDID = 0x19E,
|
|
BD_ENTITLEMENTS_INVALID_GET_MODE_FOR_TITLE = 0x19F,
|
|
BD_ENTITLEMENTS_URL_CONNECTION_ERROR = 0x1A0,
|
|
BD_ENTITLEMENTS_CONFIG_ERROR = 0x1A1,
|
|
BD_ENTITLEMENTS_NAMED_PARENT_ERROR = 0x1A2,
|
|
BD_ENTITLEMENTS_NAMED_KEY_ERROR = 0x1A3,
|
|
BD_TOO_MANY_ENTITY_IDS_REQUESTED = 0x1A4,
|
|
BD_STATS_READ_FAILED = 0x1A5,
|
|
BD_INVALID_TITLE_ID = 0x1F4,
|
|
BD_MESSAGING_INVALID_MAIL_ID = 0x258,
|
|
BD_SELF_BLOCK_NOT_ALLOWED = 0x259,
|
|
BD_GLOBAL_MESSAGE_ACCESS_DENIED = 0x25A,
|
|
BD_GLOBAL_MESSAGES_USER_LIMIT_EXCEEDED = 0x25B,
|
|
BD_MESSAGING_SENDER_DOES_NOT_EXIST = 0x25C,
|
|
BD_AUTH_NO_ERROR = 0x2BC,
|
|
BD_AUTH_BAD_REQUEST = 0x2BD,
|
|
BD_AUTH_SERVER_CONFIG_ERROR = 0x2BE,
|
|
BD_AUTH_BAD_TITLE_ID = 0x2BF,
|
|
BD_AUTH_BAD_ACCOUNT = 0x2C0,
|
|
BD_AUTH_ILLEGAL_OPERATION = 0x2C1,
|
|
BD_AUTH_INCORRECT_LICENSE_CODE = 0x2C2,
|
|
BD_AUTH_CREATE_USERNAME_EXISTS = 0x2C3,
|
|
BD_AUTH_CREATE_USERNAME_ILLEGAL = 0x2C4,
|
|
BD_AUTH_CREATE_USERNAME_VULGAR = 0x2C5,
|
|
BD_AUTH_CREATE_MAX_ACC_EXCEEDED = 0x2C6,
|
|
BD_AUTH_MIGRATE_NOT_SUPPORTED = 0x2C7,
|
|
BD_AUTH_TITLE_DISABLED = 0x2C8,
|
|
BD_AUTH_ACCOUNT_EXPIRED = 0x2C9,
|
|
BD_AUTH_ACCOUNT_LOCKED = 0x2CA,
|
|
BD_AUTH_UNKNOWN_ERROR = 0x2CB,
|
|
BD_AUTH_INCORRECT_PASSWORD = 0x2CC,
|
|
BD_AUTH_IP_NOT_IN_ALLOWED_RANGE = 0x2CD,
|
|
BD_AUTH_WII_TOKEN_VERIFICATION_FAILED = 0x2CE,
|
|
BD_AUTH_WII_AUTHENTICATION_FAILED = 0x2CF,
|
|
BD_AUTH_IP_KEY_LIMIT_REACHED = 0x2D0,
|
|
BD_AUTH_INVALID_GSPID = 0x2D1,
|
|
BD_AUTH_INVALID_IP_RANGE_ID = 0x2D2,
|
|
BD_AUTH_3DS_TOKEN_VERIFICATION_FAILED = 0x2D1,
|
|
BD_AUTH_3DS_AUTHENTICATION_FAILED = 0x2D2,
|
|
BD_AUTH_STEAM_APP_ID_MISMATCH = 0x2D3,
|
|
BD_AUTH_ABACCOUNTS_APP_ID_MISMATCH = 0x2D4,
|
|
BD_AUTH_CODO_USERNAME_NOT_SET = 0x2D5,
|
|
BD_AUTH_WIIU_TOKEN_VERIFICATION_FAILED = 0x2D6,
|
|
BD_AUTH_WIIU_AUTHENTICATION_FAILED = 0x2D7,
|
|
BD_AUTH_CODO_USERNAME_NOT_BASE64 = 0x2D8,
|
|
BD_AUTH_CODO_USERNAME_NOT_UTF8 = 0x2D9,
|
|
BD_AUTH_TENCENT_TICKET_EXPIRED = 0x2DA,
|
|
BD_AUTH_PS3_SERVICE_ID_MISMATCH = 0x2DB,
|
|
BD_AUTH_CODOID_NOT_WHITELISTED = 0x2DC,
|
|
BD_AUTH_PLATFORM_TOKEN_ERROR = 0x2DD,
|
|
BD_AUTH_JSON_FORMAT_ERROR = 0x2DE,
|
|
BD_AUTH_REPLY_CONTENT_ERROR = 0x2DF,
|
|
BD_AUTH_THIRD_PARTY_TOKEN_EXPIRED = 0x2E0,
|
|
BD_AUTH_CONTINUING = 0x2E1,
|
|
BD_AUTH_PLATFORM_DEVICE_ID_ERROR = 0x2E4,
|
|
BD_NO_PROFILE_INFO_EXISTS = 0x320,
|
|
BD_FRIENDSHIP_NOT_REQUSTED = 0x384,
|
|
BD_NOT_A_FRIEND = 0x385,
|
|
BD_SELF_FRIENDSHIP_NOT_ALLOWED = 0x387,
|
|
BD_FRIENDSHIP_EXISTS = 0x388,
|
|
BD_PENDING_FRIENDSHIP_EXISTS = 0x389,
|
|
BD_USERID_BANNED = 0x38A,
|
|
BD_FRIENDS_FULL = 0x38C,
|
|
BD_FRIENDS_NO_RICH_PRESENCE = 0x38D,
|
|
BD_RICH_PRESENCE_TOO_LARGE = 0x38E,
|
|
BD_NO_FILE = 0x3E8,
|
|
BD_PERMISSION_DENIED = 0x3E9,
|
|
BD_FILESIZE_LIMIT_EXCEEDED = 0x3EA,
|
|
BD_FILENAME_MAX_LENGTH_EXCEEDED = 0x3EB,
|
|
BD_EXTERNAL_STORAGE_SERVICE_ERROR = 0x3EC,
|
|
BD_CHANNEL_DOES_NOT_EXIST = 0x44D,
|
|
BD_CHANNEL_ALREADY_SUBSCRIBED = 0x44E,
|
|
BD_CHANNEL_NOT_SUBSCRIBED = 0x44F,
|
|
BD_CHANNEL_FULL = 0x450,
|
|
BD_CHANNEL_SUBSCRIPTIONS_FULL = 0x451,
|
|
BD_CHANNEL_NO_SELF_WHISPERING = 0x452,
|
|
BD_CHANNEL_ADMIN_REQUIRED = 0x453,
|
|
BD_CHANNEL_TARGET_NOT_SUBSCRIBED = 0x454,
|
|
BD_CHANNEL_REQUIRES_PASSWORD = 0x455,
|
|
BD_CHANNEL_TARGET_IS_SELF = 0x456,
|
|
BD_CHANNEL_PUBLIC_BAN_NOT_ALLOWED = 0x457,
|
|
BD_CHANNEL_USER_BANNED = 0x458,
|
|
BD_CHANNEL_PUBLIC_PASSWORD_NOT_ALLOWED = 0x459,
|
|
BD_CHANNEL_PUBLIC_KICK_NOT_ALLOWED = 0x45A,
|
|
BD_CHANNEL_MUTED = 0x45B,
|
|
BD_EVENT_DESC_TRUNCATED = 0x4B0,
|
|
BD_CONTENT_UNLOCK_UNKNOWN_ERROR = 0x514,
|
|
BD_UNLOCK_KEY_INVALID = 0x515,
|
|
BD_UNLOCK_KEY_ALREADY_USED_UP = 0x516,
|
|
BD_SHARED_UNLOCK_LIMIT_REACHED = 0x517,
|
|
BD_DIFFERENT_HARDWARE_ID = 0x518,
|
|
BD_INVALID_CONTENT_OWNER = 0x519,
|
|
BD_CONTENT_UNLOCK_INVALID_USER = 0x51A,
|
|
BD_CONTENT_UNLOCK_INVALID_CATEGORY = 0x51B,
|
|
BD_KEY_ARCHIVE_INVALID_WRITE_TYPE = 0x5DC,
|
|
BD_KEY_ARCHIVE_EXCEEDED_MAX_IDS_PER_REQUEST = 0x5DD,
|
|
BD_BANDWIDTH_TEST_TRY_AGAIN = 0x712,
|
|
BD_BANDWIDTH_TEST_STILL_IN_PROGRESS = 0x713,
|
|
BD_BANDWIDTH_TEST_NOT_PROGRESS = 0x714,
|
|
BD_BANDWIDTH_TEST_SOCKET_ERROR = 0x715,
|
|
BD_INVALID_SESSION_NONCE = 0x76D,
|
|
BD_ARBITRATION_FAILURE = 0x76F,
|
|
BD_ARBITRATION_USER_NOT_REGISTERED = 0x771,
|
|
BD_ARBITRATION_NOT_CONFIGURED = 0x772,
|
|
BD_CONTENTSTREAMING_FILE_NOT_AVAILABLE = 0x7D0,
|
|
BD_CONTENTSTREAMING_STORAGE_SPACE_EXCEEDED = 0x7D1,
|
|
BD_CONTENTSTREAMING_NUM_FILES_EXCEEDED = 0x7D2,
|
|
BD_CONTENTSTREAMING_UPLOAD_BANDWIDTH_EXCEEDED = 0x7D3,
|
|
BD_CONTENTSTREAMING_FILENAME_MAX_LENGTH_EXCEEDED = 0x7D4,
|
|
BD_CONTENTSTREAMING_MAX_THUMB_DATA_SIZE_EXCEEDED = 0x7D5,
|
|
BD_CONTENTSTREAMING_DOWNLOAD_BANDWIDTH_EXCEEDED = 0x7D6,
|
|
BD_CONTENTSTREAMING_NOT_ENOUGH_DOWNLOAD_BUFFER_SPACE = 0x7D7,
|
|
BD_CONTENTSTREAMING_SERVER_NOT_CONFIGURED = 0x7D8,
|
|
BD_CONTENTSTREAMING_INVALID_APPLE_RECEIPT = 0x7DA,
|
|
BD_CONTENTSTREAMING_APPLE_STORE_NOT_AVAILABLE = 0x7DB,
|
|
BD_CONTENTSTREAMING_APPLE_RECEIPT_FILENAME_MISMATCH = 0x7DC,
|
|
BD_CONTENTSTREAMING_HTTP_ERROR = 0x7E4,
|
|
BD_CONTENTSTREAMING_FAILED_TO_START_HTTP = 0x7E5,
|
|
BD_CONTENTSTREAMING_LOCALE_INVALID = 0x7E6,
|
|
BD_CONTENTSTREAMING_LOCALE_MISSING = 0x7E7,
|
|
BD_VOTERANK_ERROR_EMPTY_RATING_SUBMISSION = 0x7EE,
|
|
BD_VOTERANK_ERROR_MAX_VOTES_EXCEEDED = 0x7EF,
|
|
BD_VOTERANK_ERROR_INVALID_RATING = 0x7F0,
|
|
BD_MAX_NUM_TAGS_EXCEEDED = 0x82A,
|
|
BD_TAGGED_COLLECTION_DOES_NOT_EXIST = 0x82B,
|
|
BD_EMPTY_TAG_ARRAY = 0x82C,
|
|
BD_INVALID_QUERY_ID = 0x834,
|
|
BD_NO_ENTRY_TO_UPDATE = 0x835,
|
|
BD_SESSION_INVITE_EXISTS = 0x836,
|
|
BD_INVALID_SESSION_ID = 0x837,
|
|
BD_ATTACHMENT_TOO_LARGE = 0x838,
|
|
BD_INVALID_GROUP_ID = 0xAF0,
|
|
BD_MAIL_INVALID_MAIL_ID_ERROR = 0xB55,
|
|
BD_UCD_SERVICE_ERROR = 0xC80,
|
|
BD_UCD_SERVICE_DISABLED = 0xC81,
|
|
BD_UCD_UNINTIALIZED_ERROR = 0xC82,
|
|
BD_UCD_ACCOUNT_ALREADY_REGISTERED = 0xC83,
|
|
BD_UCD_ACCOUNT_NOT_REGISTERED = 0xC84,
|
|
BD_UCD_AUTH_ATTEMPT_FAILED = 0xC85,
|
|
BD_UCD_ACCOUNT_LINKING_ERROR = 0xC86,
|
|
BD_UCD_ENCRYPTION_ERROR = 0xC87,
|
|
BD_UCD_ACCOUNT_DATA_INVALID = 0xC88,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_FIRSTNAME = 0xC89,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_LASTNAME = 0xC8A,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_DOB = 0xC8B,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_EMAIL = 0xC8C,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_COUNTRY = 0xC8D,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_POSTCODE = 0xC8E,
|
|
BD_UCD_ACCOUNT_DATA_INVALID_PASSWORD = 0xC8F,
|
|
BD_UCD_ACCOUNT_NAME_ALREADY_RESISTERED = 0xC94,
|
|
BD_UCD_ACCOUNT_EMAIL_ALREADY_RESISTERED = 0xC95,
|
|
BD_UCD_GUEST_ACCOUNT_AUTH_CONFLICT = 0xC96,
|
|
BD_TWITCH_SERVICE_ERROR = 0xC1D,
|
|
BD_TWITCH_ACCOUNT_ALREADY_LINKED = 0xC1E,
|
|
BD_TWITCH_NO_LINKED_ACCOUNT = 0xC1F,
|
|
BD_YOUTUBE_SERVICE_ERROR = 0xCE5,
|
|
BD_YOUTUBE_SERVICE_COMMUNICATION_ERROR = 0xCE6,
|
|
BD_YOUTUBE_USER_DENIED_AUTHORIZATION = 0xCE7,
|
|
BD_YOUTUBE_AUTH_MAX_TIME_EXCEEDED = 0xCE8,
|
|
BD_YOUTUBE_USER_UNAUTHORIZED = 0xCE9,
|
|
BD_YOUTUBE_UPLOAD_MAX_TIME_EXCEEDED = 0xCEA,
|
|
BD_YOUTUBE_DUPLICATE_UPLOAD = 0xCEB,
|
|
BD_YOUTUBE_FAILED_UPLOAD = 0xCEC,
|
|
BD_YOUTUBE_ACCOUNT_ALREADY_REGISTERED = 0xCED,
|
|
BD_YOUTUBE_ACCOUNT_NOT_REGISTERED = 0xCEE,
|
|
BD_YOUTUBE_CONTENT_SERVER_ERROR = 0xCEF,
|
|
BD_YOUTUBE_UPLOAD_DOES_NOT_EXIST = 0xCF0,
|
|
BD_YOUTUBE_NO_LINKED_ACCOUNT = 0xCF1,
|
|
BD_YOUTUBE_DEVELOPER_TAGS_INVALID = 0xCF2,
|
|
BD_TWITTER_AUTH_ATTEMPT_FAILED = 0xDAD,
|
|
BD_TWITTER_AUTH_TOKEN_INVALID = 0xDAE,
|
|
BD_TWITTER_UPDATE_LIMIT_REACHED = 0xDAF,
|
|
BD_TWITTER_UNAVAILABLE = 0xDB0,
|
|
BD_TWITTER_ERROR = 0xDB1,
|
|
BD_TWITTER_TIMED_OUT = 0xDB2,
|
|
BD_TWITTER_DISABLED_FOR_USER = 0xDB3,
|
|
BD_TWITTER_ACCOUNT_AMBIGUOUS = 0xDB4,
|
|
BD_TWITTER_MAXIMUM_ACCOUNTS_REACHED = 0xDB5,
|
|
BD_TWITTER_ACCOUNT_NOT_REGISTERED = 0xDB6,
|
|
BD_TWITTER_DUPLICATE_STATUS = 0xDB7,
|
|
BD_TWITTER_ACCOUNT_ALREADY_REGISTERED = 0xE1C,
|
|
BD_FACEBOOK_AUTH_ATTEMPT_FAILED = 0xE11,
|
|
BD_FACEBOOK_AUTH_TOKEN_INVALID = 0xE12,
|
|
BD_FACEBOOK_PHOTO_DOES_NOT_EXIST = 0xE13,
|
|
BD_FACEBOOK_PHOTO_INVALID = 0xE14,
|
|
BD_FACEBOOK_PHOTO_ALBUM_FULL = 0xE15,
|
|
BD_FACEBOOK_UNAVAILABLE = 0xE16,
|
|
BD_FACEBOOK_ERROR = 0xE17,
|
|
BD_FACEBOOK_TIMED_OUT = 0xE18,
|
|
BD_FACEBOOK_DISABLED_FOR_USER = 0xE19,
|
|
BD_FACEBOOK_ACCOUNT_AMBIGUOUS = 0xE1A,
|
|
BD_FACEBOOK_MAXIMUM_ACCOUNTS_REACHED = 0xE1B,
|
|
BD_FACEBOOK_INVALID_NUM_PICTURES_REQUESTED = 0xE1C,
|
|
BD_FACEBOOK_VIDEO_DOES_NOT_EXIST = 0xE1D,
|
|
BD_FACEBOOK_ACCOUNT_ALREADY_REGISTERED = 0xE1E,
|
|
BD_APNS_INVALID_PAYLOAD = 0xE74,
|
|
BD_APNS_INVALID_TOKEN_LENGTH_ERROR = 0xE76,
|
|
BD_MAX_CONSOLEID_LENGTH_EXCEEDED = 0xEE1,
|
|
BD_MAX_WHITELIST_LENGTH_EXCEEDED = 0xEE2,
|
|
BD_USERGROUP_NAME_ALREADY_EXISTS = 0x1770,
|
|
BD_INVALID_USERGROUP_ID = 0x1771,
|
|
BD_USER_ALREADY_IN_USERGROUP = 0x1772,
|
|
BD_USER_NOT_IN_USERGROUP = 0x1773,
|
|
BD_INVALID_USERGROUP_MEMBER_TYPE = 0x1774,
|
|
BD_TOO_MANY_MEMBERS_REQUESTED = 0x1775,
|
|
BD_USERGROUP_NAME_TOO_SHORT = 0x1776,
|
|
BD_RICH_PRESENCE_DATA_TOO_LARGE = 0x1A90,
|
|
BD_RICH_PRESENCE_TOO_MANY_USERS = 0x1A91,
|
|
BD_PRESENCE_DATA_TOO_LARGE = 0x283C,
|
|
BD_PRESENCE_TOO_MANY_USERS = 0x283D,
|
|
BD_USER_LOGGED_IN_OTHER_TITLE = 0x283E,
|
|
BD_USER_NOT_LOGGED_IN = 0x283F,
|
|
BD_SUBSCRIPTION_TOO_MANY_USERS = 0x1B58,
|
|
BD_SUBSCRIPTION_TICKET_PARSE_ERROR = 0x1B59,
|
|
BD_CODO_ID_INVALID_DATA = 0x1BBC,
|
|
BD_INVALID_MESSAGE_FORMAT = 0x1BBD,
|
|
BD_TLOG_TOO_MANY_MESSAGES = 0x1BBE,
|
|
BD_CODO_ID_NOT_IN_WHITELIST = 0x1BBF,
|
|
BD_TLOG_MESSAGE_TRANSFORMATION_ERROR = 0x1BC0,
|
|
BD_REWARDS_NOT_ENABLED = 0x1BC1,
|
|
BD_MARKETPLACE_ERROR = 0x1F40,
|
|
BD_MARKETPLACE_RESOURCE_NOT_FOUND = 0x1F41,
|
|
BD_MARKETPLACE_INVALID_CURRENCY = 0x1F42,
|
|
BD_MARKETPLACE_INVALID_PARAMETER = 0x1F43,
|
|
BD_MARKETPLACE_RESOURCE_CONFLICT = 0x1F44,
|
|
BD_MARKETPLACE_STORAGE_ERROR = 0x1F45,
|
|
BD_MARKETPLACE_INTEGRITY_ERROR = 0x1F46,
|
|
BD_MARKETPLACE_INSUFFICIENT_FUNDS_ERROR = 0x1F47,
|
|
BD_MARKETPLACE_MMP_SERVICE_ERROR = 0x1F48,
|
|
BD_MARKETPLACE_PRECONDITION_REQUIRED = 0x1F49,
|
|
BD_MARKETPLACE_ITEM_MULTIPLE_PURCHASE_ERROR = 0x1F4A,
|
|
BD_MARKETPLACE_MISSING_REQUIRED_ENTITLEMENT = 0x1F4B,
|
|
BD_MARKETPLACE_VALIDATION_ERROR = 0x1F4C,
|
|
BD_MARKETPLACE_TENCENT_PAYMENT_ERROR = 0x1F4D,
|
|
BD_MARKETPLACE_SKU_NOT_COUPON_ENABLED_ERROR = 0x1F4E,
|
|
BD_LEAGUE_INVALID_TEAM_SIZE = 0x1FA4,
|
|
BD_LEAGUE_INVALID_TEAM = 0x1FA5,
|
|
BD_LEAGUE_INVALID_SUBDIVISION = 0x1FA6,
|
|
BD_LEAGUE_INVALID_LEAGUE = 0x1FA7,
|
|
BD_LEAGUE_TOO_MANY_RESULTS_REQUESTED = 0x1FA8,
|
|
BD_LEAGUE_METADATA_TOO_LARGE = 0x1FA9,
|
|
BD_LEAGUE_TEAM_ICON_TOO_LARGE = 0x1FAA,
|
|
BD_LEAGUE_TEAM_NAME_TOO_LONG = 0x1FAB,
|
|
BD_LEAGUE_ARRAY_SIZE_MISMATCH = 0x1FAC,
|
|
BD_LEAGUE_SUBDIVISION_MISMATCH = 0x2008,
|
|
BD_LEAGUE_INVALID_WRITE_TYPE = 0x2009,
|
|
BD_LEAGUE_INVALID_STATS_DATA = 0x200A,
|
|
BD_LEAGUE_SUBDIVISION_UNRANKED = 0x200B,
|
|
BD_LEAGUE_CROSS_TEAM_STATS_WRITE_PREVENTED = 0x200C,
|
|
BD_LEAGUE_INVALID_STATS_SEASON = 0x200D,
|
|
BD_COMMERCE_ERROR = 0x206C,
|
|
BD_COMMERCE_RESOURCE_NOT_FOUND = 0x206D,
|
|
BD_COMMERCE_STORAGE_INVALID_PARAMETER = 0x206E,
|
|
BD_COMMERCE_APPLICATION_INVALID_PARAMETER = 0x206F,
|
|
BD_COMMERCE_RESOURCE_CONFLICT = 0x2070,
|
|
BD_COMMERCE_STORAGE_ERROR = 0x2071,
|
|
BD_COMMERCE_INTEGRITY_ERROR = 0x2072,
|
|
BD_COMMERCE_MMP_SERVICE_ERROR = 0x2073,
|
|
BD_COMMERCE_PERMISSION_DENIED = 0x2074,
|
|
BD_COMMERCE_INSUFFICIENT_FUNDS_ERROR = 0x2075,
|
|
BD_COMMERCE_UNKNOWN_CURRENCY = 0x2076,
|
|
BD_COMMERCE_INVALID_RECEIPT = 0x2077,
|
|
BD_COMMERCE_RECEIPT_USED = 0x2078,
|
|
BD_COMMERCE_TRANSACTION_ALREADY_APPLIED = 0x2079,
|
|
BD_COMMERCE_INVALID_CURRENCY_TYPE = 0x207A,
|
|
BD_CONNECTION_COUNTER_ERROR = 0x20D0,
|
|
BD_LINKED_ACCOUNTS_INVALID_CONTEXT = 0x2198,
|
|
BD_LINKED_ACCOUNTS_INVALID_PLATFORM = 0x2199,
|
|
BD_LINKED_ACCOUNTS_LINKED_ACCOUNTS_FETCH_ERROR = 0x219A,
|
|
BD_LINKED_ACCOUNTS_INVALID_ACCOUNT = 0x219B,
|
|
BD_GMSG_INVALID_CATEGORY_ID = 0x27D8,
|
|
BD_GMSG_CATEGORY_MEMBERSHIPS_LIMIT = 0x27D9,
|
|
BD_GMSG_NONMEMBER_POST_DISALLOWED = 0x27DA,
|
|
BD_GMSG_CATEGORY_DISALLOWS_CLIENT_TYPE = 0x27DB,
|
|
BD_GMSG_PAYLOAD_TOO_BIG = 0x27DC,
|
|
BD_GMSG_MEMBER_POST_DISALLOWED = 0x27DD,
|
|
BD_GMSG_OVERLOADED = 0x27DE,
|
|
BD_GMSG_USER_PERCATEGORY_POST_RATE_EXCEEDED = 0x27DF,
|
|
BD_GMSG_USER_GLOBAL_POST_RATE_EXCEEDED = 0x27E0,
|
|
BD_GMSG_GROUP_POST_RATE_EXCEEDED = 0x27E1,
|
|
BD_MAX_ERROR_CODE = 0x27E2,
|
|
};
|
|
|
|
enum bdBitBufferDataType
|
|
{
|
|
BD_BB_NO_TYPE = 0x0,
|
|
BD_BB_BOOL_TYPE = 0x1,
|
|
BD_BB_SIGNED_CHAR8_TYPE = 0x2,
|
|
BD_BB_UNSIGNED_CHAR8_TYPE = 0x3,
|
|
BD_BB_WCHAR16_TYPE = 0x4,
|
|
BD_BB_SIGNED_INTEGER16_TYPE = 0x5,
|
|
BD_BB_UNSIGNED_INTEGER16_TYPE = 0x6,
|
|
BD_BB_SIGNED_INTEGER32_TYPE = 0x7,
|
|
BD_BB_UNSIGNED_INTEGER32_TYPE = 0x8,
|
|
BD_BB_SIGNED_INTEGER64_TYPE = 0x9,
|
|
BD_BB_UNSIGNED_INTEGER64_TYPE = 0xA,
|
|
BD_BB_RANGED_SIGNED_INTEGER32_TYPE = 0xB,
|
|
BD_BB_RANGED_UNSIGNED_INTEGER32_TYPE = 0xC,
|
|
BD_BB_FLOAT32_TYPE = 0xD,
|
|
BD_BB_FLOAT64_TYPE = 0xE,
|
|
BD_BB_RANGED_FLOAT32_TYPE = 0xF,
|
|
BD_BB_SIGNED_CHAR8_STRING_TYPE = 0x10,
|
|
BD_BB_UNSIGNED_CHAR8_STRING_TYPE = 0x11,
|
|
BD_BB_MBSTRING_TYPE = 0x12,
|
|
BD_BB_BLOB_TYPE = 0x13,
|
|
BD_BB_NAN_TYPE = 0x14,
|
|
BD_BB_FULL_TYPE = 0x15,
|
|
BD_BB_MAX_TYPE = 0x20,
|
|
};
|
|
|
|
enum bdNATType : uint8_t
|
|
{
|
|
BD_NAT_UNKNOWN = 0x0,
|
|
BD_NAT_OPEN = 0x1,
|
|
BD_NAT_MODERATE = 0x2,
|
|
BD_NAT_STRICT = 0x3,
|
|
};
|
|
|
|
#pragma pack(push, 1)
|
|
struct bdAuthTicket
|
|
{
|
|
unsigned int m_magicNumber;
|
|
char m_type;
|
|
unsigned int m_titleID;
|
|
unsigned int m_timeIssued;
|
|
unsigned int m_timeExpires;
|
|
unsigned long long m_licenseID;
|
|
unsigned long long m_userID;
|
|
char m_username[64];
|
|
char m_sessionKey[24];
|
|
char m_usingHashMagicNumber[3];
|
|
char m_hash[4];
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
enum keyNum_t
|
|
{
|
|
K_NONE = 0x0,
|
|
K_FIRSTGAMEPADBUTTON_RANGE_1 = 0x1,
|
|
K_BUTTON_A = 0x1,
|
|
K_BUTTON_B = 0x2,
|
|
K_BUTTON_X = 0x3,
|
|
K_BUTTON_Y = 0x4,
|
|
K_BUTTON_LSHLDR = 0x5,
|
|
K_BUTTON_RSHLDR = 0x6,
|
|
K_LASTGAMEPADBUTTON_RANGE_1 = 0x6,
|
|
K_BS = 0x8,
|
|
K_TAB = 0x9,
|
|
K_ENTER = 0xD,
|
|
K_FIRSTGAMEPADBUTTON_RANGE_2 = 0xE,
|
|
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_DPAD_UP = 0x14,
|
|
K_FIRSTDPAD = 0x14,
|
|
K_DPAD_DOWN = 0x15,
|
|
K_DPAD_LEFT = 0x16,
|
|
K_DPAD_RIGHT = 0x17,
|
|
K_BUTTON_LSTICK_ALTIMAGE2 = 0x10,
|
|
K_BUTTON_RSTICK_ALTIMAGE2 = 0x11,
|
|
K_BUTTON_LSTICK_ALTIMAGE = 0xBC,
|
|
K_BUTTON_RSTICK_ALTIMAGE = 0xBD,
|
|
K_LASTDPAD = 0x17,
|
|
K_LASTGAMEPADBUTTON_RANGE_2 = 0x17,
|
|
K_ESCAPE = 0x1B,
|
|
K_FIRSTGAMEPADBUTTON_RANGE_3 = 0x1C,
|
|
K_APAD_UP = 0x1C,
|
|
K_FIRSTAPAD = 0x1C,
|
|
K_APAD_DOWN = 0x1D,
|
|
K_APAD_LEFT = 0x1E,
|
|
K_APAD_RIGHT = 0x1F,
|
|
K_LASTAPAD = 0x1F,
|
|
K_LASTGAMEPADBUTTON_RANGE_3 = 0x1F,
|
|
K_SPACE = 0x20,
|
|
K_GRAVE = 0x60,
|
|
K_TILDE = 0x7E,
|
|
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
|
|
};
|
|
|
|
enum ConfigString
|
|
{
|
|
CS_FIRST = 0x0,
|
|
CS_SERVERINFO = 0x0,
|
|
CS_SYSTEMINFO = 0x1,
|
|
CS_SUNLIGHT = 0x2,
|
|
CS_SERVERID = 0x3,
|
|
CS_SCORES1 = 0x4,
|
|
CS_SCORES2 = 0x5,
|
|
CS_FOGVARS = 0x6,
|
|
CS_GAMEENDTIME = 0x7,
|
|
CS_MAPCENTER = 0x8,
|
|
CS_SESSIONNONCE = 0x9,
|
|
CS_TIMESCALE = 0xA,
|
|
CS_CODINFO = 0xB,
|
|
CS_CODINFO_LAST = 0x8A,
|
|
CS_CODINFO_VALUE = 0x8B,
|
|
CS_CODINFO_VALUE_LAST = 0x10A,
|
|
CS_PLAYERINFOS = 0x10B,
|
|
CS_PLAYERINFOS_LAST = 0x116,
|
|
CS_ENABLE_HUD_LIGHTING = 0x117,
|
|
CS_USE_TRIG_STRINGS = 0x118,
|
|
CS_USE_TRIG_STRINGS_LAST = 0x216,
|
|
CS_LOCALIZED_STRINGS = 0x217,
|
|
CS_LOCALIZED_STRINGS_LAST = 0x415,
|
|
CS_MATCHID = 0x416,
|
|
CS_CASE_INSENSITIVE_BEGIN = 0x417,
|
|
CS_AMBIENT = 0x417,
|
|
CS_AMBIENT_LAST = 0x418,
|
|
CS_AMBIENT_AC130 = 0x419,
|
|
CS_RUMBLES = 0x41A,
|
|
CS_RUMBLE_LAST = 0x439,
|
|
CS_NORTHYAW = 0x43A,
|
|
CS_MINIMAP = 0x43B,
|
|
CS_MATERIAL_THERMALBODY = 0x43C,
|
|
CS_VISIONSET_NORMAL = 0x43D,
|
|
CS_VISIONSET_NIGHT = 0x43E,
|
|
CS_VISIONSET_MISSILECAM = 0x43F,
|
|
CS_VISIONSET_THERMAL = 0x440,
|
|
CS_VISIONSET_PAIN = 0x441,
|
|
CS_VISIONSET_POST_APPLY = 0x442,
|
|
CS_LOC_SEL_MTLS = 0x443,
|
|
CS_LOC_SEL_MTLS_LAST = 0x445,
|
|
CS_MODELS = 0x446,
|
|
CS_MODELS_LAST = 0x845,
|
|
CS_VEHICLE_DEFS = 0x846,
|
|
CS_VEHICLE_DEFS_LAST = 0x865,
|
|
CS_SOUNDALIASES = 0x866,
|
|
CS_SOUNDALIASES_LAST = 0x965,
|
|
CS_EFFECT_NAMES = 0x966,
|
|
CS_EFFECT_NAMES_LAST = 0xA65,
|
|
CS_SHELLSHOCKS = 0xA66,
|
|
CS_SHELLSHOCKS_LAST = 0xA75,
|
|
CS_SCRIPT_MENUS = 0xA76,
|
|
CS_SCRIPT_MENUS_LAST = 0xAA0,
|
|
CS_SERVER_MATERIALS = 0xAA1,
|
|
CS_SERVER_MATERIALS_LAST = 0xBFE,
|
|
CS_CLIENT_TAGS = 0xBFF,
|
|
CS_CLIENT_TAGS_LAST = 0xC0E,
|
|
CS_HEAD_ICONS = 0xC0F,
|
|
CS_HEAD_ICONS_LAST = 0xC1D,
|
|
CS_WEAPONFILES = 0xC1E,
|
|
CS_WEAPONFILES_LAST = 0xCBD,
|
|
CS_STATUS_ICONS = 0xCBE,
|
|
CS_STATUS_ICONS_LAST = 0xCC5,
|
|
CS_MINIMAP_ICONS = 0xCC6,
|
|
CS_MINIMAP_ICONS_LAST = 0xCD4,
|
|
CS_NAMEPLATE_MTLS = 0xCD5,
|
|
CS_NAMEPLATE_MTLS_LAST = 0xCE2,
|
|
CS_MP_ANIMS = 0xCE3,
|
|
CS_MP_ANIMS_LAST = 0xD21,
|
|
CS_ITEMS = 0xD22,
|
|
CS_LEADERBOARDS = 0xD23,
|
|
MAX_CONFIGSTRINGS = 0xD24,
|
|
};
|
|
|
|
enum LiveClientDropType
|
|
{
|
|
SV_LIVE_DROP_NONE = 0x0,
|
|
SV_LIVE_DROP_DISCONNECT = 0x1,
|
|
SV_LIVE_DROP_RMSG_LOST = 0x2,
|
|
SV_LIVE_DROP_INACTIVE = 0x3,
|
|
SV_LIVE_DROP_P2P_AUTH = 0x4,
|
|
SV_LIVE_DROP_COUNT = 0x5,
|
|
};
|
|
|
|
enum TestClientType
|
|
{
|
|
TC_NONE = 0x0,
|
|
TC_TEST_CLIENT = 0x1,
|
|
TC_BOT = 0x2,
|
|
TC_COUNT = 0x3,
|
|
};
|
|
|
|
enum StatsGroup
|
|
{
|
|
STATSGROUP_RANKED = 0x0,
|
|
STATSGROUP_PRIVATE = 0x1,
|
|
STATSGROUP_COOP = 0x2,
|
|
STATSGROUP_COMMON = 0x3,
|
|
STATSGROUP_COUNT = 0x4,
|
|
STATSGROUP_IGNORE = 0x5,
|
|
};
|
|
|
|
enum StatsSource
|
|
{
|
|
STATS_ONLINE = 0x0,
|
|
STATS_COUNT = 0x1,
|
|
};
|
|
|
|
enum StructuredDataTypeCategory
|
|
{
|
|
DATA_INT = 0x0,
|
|
DATA_BYTE = 0x1,
|
|
DATA_BOOL = 0x2,
|
|
DATA_STRING = 0x3,
|
|
DATA_ENUM = 0x4,
|
|
DATA_STRUCT = 0x5,
|
|
DATA_INDEXED_ARRAY = 0x6,
|
|
DATA_ENUM_ARRAY = 0x7,
|
|
DATA_FLOAT = 0x8,
|
|
DATA_SHORT = 0x9,
|
|
DATA_COUNT = 0xA,
|
|
};
|
|
|
|
enum StructuredData_SetResult
|
|
{
|
|
SETRESULT_SUCCESS_CHANGED = 0x0,
|
|
SETRESULT_SUCCESS_NOCHANGE = 0x1,
|
|
SETRESULT_WRONG_DATA_TYPE = 0x2,
|
|
SETRESULT_ERROR_INT_TOO_LARGE_FOR_BYTE = 0x3,
|
|
SETRESULT_ERROR_STRING_TOO_LONG = 0x4,
|
|
SETRESULT_ERROR_INVALID_ENUM_VALUE = 0x5,
|
|
SETRESULT_COUNT = 0x6,
|
|
};
|
|
|
|
enum LookupError
|
|
{
|
|
LOOKUP_ERROR_NONE = 0x0,
|
|
LOOKUP_ERROR_WRONG_DATA_TYPE = 0x1,
|
|
LOOKUP_ERROR_INDEX_OUTSIDE_BOUNDS = 0x2,
|
|
LOOKUP_ERROR_INVALID_STRUCT_PROPERTY = 0x3,
|
|
LOOKUP_ERROR_INVALID_ENUM_VALUE = 0x4,
|
|
LOOKUP_ERROR_COUNT = 0x5,
|
|
};
|
|
|
|
struct StructuredDataEnumEntry
|
|
{
|
|
unsigned int name;
|
|
unsigned __int16 index;
|
|
};
|
|
|
|
struct StructuredDataEnum
|
|
{
|
|
int entryCount;
|
|
int reservedEntryCount;
|
|
StructuredDataEnumEntry* entries;
|
|
};
|
|
|
|
union StructuredDataTypeUnion
|
|
{
|
|
unsigned int stringDataLength;
|
|
int enumIndex;
|
|
int structIndex;
|
|
int indexedArrayIndex;
|
|
int enumedArrayIndex;
|
|
};
|
|
|
|
struct StructuredDataType
|
|
{
|
|
StructuredDataTypeCategory type;
|
|
StructuredDataTypeUnion u;
|
|
};
|
|
|
|
struct StructuredDataStructProperty
|
|
{
|
|
unsigned int name;
|
|
StructuredDataType item;
|
|
int offset;
|
|
int validation;
|
|
};
|
|
|
|
struct StructuredDataStruct
|
|
{
|
|
int propertyCount;
|
|
StructuredDataStructProperty* properties;
|
|
int size;
|
|
unsigned int bitOffset;
|
|
};
|
|
|
|
struct StructuredDataIndexedArray
|
|
{
|
|
int arraySize;
|
|
StructuredDataType elementType;
|
|
unsigned int elementSize;
|
|
};
|
|
|
|
struct StructuredDataEnumedArray
|
|
{
|
|
int enumIndex;
|
|
StructuredDataType elementType;
|
|
unsigned int elementSize;
|
|
};
|
|
|
|
struct StructuredDataDef
|
|
{
|
|
int version;
|
|
unsigned int formatChecksum;
|
|
int enumCount;
|
|
StructuredDataEnum* enums;
|
|
int structCount;
|
|
StructuredDataStruct* structs;
|
|
int indexedArrayCount;
|
|
StructuredDataIndexedArray* indexedArrays;
|
|
int enumedArrayCount;
|
|
StructuredDataEnumedArray* enumedArrays;
|
|
StructuredDataType rootType;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct StructuredDataDefSet
|
|
{
|
|
const char* name;
|
|
unsigned int defCount;
|
|
StructuredDataDef* defs;
|
|
};
|
|
|
|
struct StructuredDataLookup
|
|
{
|
|
StructuredDataDef* def;
|
|
StructuredDataType* rootType;
|
|
unsigned int offset;
|
|
LookupError error;
|
|
};
|
|
|
|
struct StructuredDataBuffer
|
|
{
|
|
char* data;
|
|
unsigned int size;
|
|
};
|
|
|
|
struct StringTableCell
|
|
{
|
|
const char* string;
|
|
int hash;
|
|
};
|
|
|
|
struct StringTable
|
|
{
|
|
const char* name;
|
|
int columnCount;
|
|
int rowCount;
|
|
StringTableCell* values;
|
|
};
|
|
|
|
struct Material
|
|
{
|
|
const char* name;
|
|
};
|
|
|
|
struct Glyph
|
|
{
|
|
unsigned short letter;
|
|
char x0;
|
|
char y0;
|
|
char dx;
|
|
char pixelWidth;
|
|
char pixelHeight;
|
|
float s0;
|
|
float t0;
|
|
float s1;
|
|
float t1;
|
|
};
|
|
|
|
struct Font_s
|
|
{
|
|
const char* fontName;
|
|
int pixelHeight;
|
|
int glyphCount;
|
|
Material* material;
|
|
Material* glowMaterial;
|
|
Glyph* glyphs;
|
|
};
|
|
|
|
enum connstate_t
|
|
{
|
|
CA_DISCONNECTED = 0x0,
|
|
CA_CINEMATIC = 0x1,
|
|
CA_LOGO = 0x2,
|
|
CA_CONNECTING = 0x3,
|
|
CA_CHALLENGING = 0x4,
|
|
CA_CONNECTED = 0x5,
|
|
CA_SENDINGSTATS = 0x6,
|
|
CA_SYNCHRONIZING_DATA = 0x7,
|
|
CA_LOADING = 0x8,
|
|
CA_PRIMED = 0x9,
|
|
CA_ACTIVE = 0xA,
|
|
};
|
|
|
|
enum DvarSetSource : std::uint32_t
|
|
{
|
|
DVAR_SOURCE_INTERNAL = 0x0,
|
|
DVAR_SOURCE_EXTERNAL = 0x1,
|
|
DVAR_SOURCE_SCRIPT = 0x2,
|
|
DVAR_SOURCE_UISCRIPT = 0x3,
|
|
DVAR_SOURCE_SERVERCMD = 0x4,
|
|
DVAR_SOURCE_NUM = 0x5,
|
|
};
|
|
|
|
enum DvarFlags : std::uint32_t
|
|
{
|
|
DVAR_FLAG_NONE = 0,
|
|
DVAR_FLAG_SAVED = 0x1,
|
|
DVAR_FLAG_LATCHED = 0x2,
|
|
DVAR_FLAG_CHEAT = 0x4,
|
|
DVAR_FLAG_REPLICATED = 0x8,
|
|
DVAR_FLAG_INTERNAL = 0x80,
|
|
DVAR_FLAG_EXTERNAL = 0x100,
|
|
DVAR_FLAG_SERVERINFO = 0x400,
|
|
DVAR_FLAG_WRITE = 0x800,
|
|
DVAR_FLAG_READ = 0x2000,
|
|
};
|
|
|
|
enum dvar_type : std::int8_t
|
|
{
|
|
boolean = 0,
|
|
value = 1,
|
|
vec2 = 2,
|
|
vec3 = 3,
|
|
vec4 = 4,
|
|
integer = 5,
|
|
enumeration = 6,
|
|
string = 7,
|
|
color = 8,
|
|
rgb = 9 // Color without alpha
|
|
};
|
|
|
|
union DvarValue
|
|
{
|
|
bool enabled;
|
|
int integer;
|
|
unsigned int unsignedInt;
|
|
float value;
|
|
float vector[4];
|
|
const char* string;
|
|
char color[4];
|
|
};
|
|
|
|
struct $A37BA207B3DDD6345C554D4661813EDD
|
|
{
|
|
int stringCount;
|
|
const char* const* strings;
|
|
};
|
|
|
|
struct $9CA192F9DB66A3CB7E01DE78A0DEA53D
|
|
{
|
|
int min;
|
|
int max;
|
|
};
|
|
|
|
struct $251C2428A496074035CACA7AAF3D55BD
|
|
{
|
|
float min;
|
|
float max;
|
|
};
|
|
|
|
union dvar_limits
|
|
{
|
|
$A37BA207B3DDD6345C554D4661813EDD enumeration;
|
|
$9CA192F9DB66A3CB7E01DE78A0DEA53D integer;
|
|
$251C2428A496074035CACA7AAF3D55BD value;
|
|
$251C2428A496074035CACA7AAF3D55BD vector;
|
|
};
|
|
|
|
struct dvar_t
|
|
{
|
|
const char* name; //00
|
|
unsigned int flags; //08
|
|
dvar_type type; //0C
|
|
bool modified; //0D
|
|
DvarValue current; //10
|
|
DvarValue latched;
|
|
DvarValue reset;
|
|
dvar_limits domain;
|
|
};
|
|
|
|
struct CmdArgs
|
|
{
|
|
int nesting;
|
|
int localClientNum[8];
|
|
int controllerIndex[8];
|
|
int argc[8];
|
|
const char** argv[8];
|
|
};
|
|
|
|
struct cmd_function_s
|
|
{
|
|
cmd_function_s* next;
|
|
const char* name;
|
|
void (__cdecl* function)();
|
|
};
|
|
|
|
struct KeyState
|
|
{
|
|
int down;
|
|
int repeats;
|
|
int binding;
|
|
};
|
|
|
|
struct PlayerKeyState
|
|
{
|
|
int overstrikeMode;
|
|
int anyKeyDown;
|
|
KeyState keys[256];
|
|
};
|
|
|
|
struct ScreenPlacement
|
|
{
|
|
vec2_t scaleVirtualToReal;
|
|
vec2_t scaleVirtualToFull;
|
|
vec2_t scaleRealToVirtual;
|
|
vec2_t realViewportPosition;
|
|
vec2_t realViewportSize;
|
|
vec2_t virtualViewableMin;
|
|
vec2_t virtualViewableMax;
|
|
vec2_t realViewableMin;
|
|
vec2_t realViewableMax;
|
|
vec2_t virtualAdjustableMin;
|
|
vec2_t virtualAdjustableMax;
|
|
vec2_t realAdjustableMin;
|
|
vec2_t realAdjustableMax;
|
|
vec2_t subScreenLeft;
|
|
};
|
|
|
|
struct Bounds
|
|
{
|
|
vec3_t midPoint;
|
|
vec3_t halfSize;
|
|
};
|
|
|
|
enum PlayerHandIndex
|
|
{
|
|
WEAPON_HAND_RIGHT = 0x0,
|
|
WEAPON_HAND_LEFT = 0x1,
|
|
NUM_WEAPON_HANDS = 0x2,
|
|
WEAPON_HAND_DEFAULT = 0x0,
|
|
};
|
|
|
|
struct usercmd_s
|
|
{
|
|
int serverTime;
|
|
unsigned int buttons;
|
|
int angles[3];
|
|
int weapon;
|
|
int offHand;
|
|
char forwardmove;
|
|
char rightmove;
|
|
unsigned short airburstMarkDistance;
|
|
unsigned short meleeChargeEnt;
|
|
char meleeChargeDist;
|
|
char selectedLoc[2];
|
|
char selectedLocAngle;
|
|
char remoteControlAngles[2];
|
|
char remoteControlMove[3];
|
|
unsigned int sightedClientsMask;
|
|
unsigned __int16 spawnTraceEntIndex;
|
|
unsigned int sightedSpawnsMask;
|
|
unsigned int partialSightedSpawnsMask;
|
|
};
|
|
|
|
struct EntityEvent
|
|
{
|
|
int eventType;
|
|
int eventParm;
|
|
};
|
|
|
|
struct playerEvents_t
|
|
{
|
|
int eventSequence;
|
|
EntityEvent events[4];
|
|
int oldEventSequence;
|
|
int timeADSCameUp;
|
|
};
|
|
|
|
struct PlayerVehicleState
|
|
{
|
|
int entity;
|
|
int flags;
|
|
int targetEntity;
|
|
vec3_t origin;
|
|
vec3_t angles;
|
|
vec3_t velocity;
|
|
vec3_t angVelocity;
|
|
vec2_t tilt;
|
|
vec2_t tiltVelocity;
|
|
vec2_t gunAngles;
|
|
unsigned int splineId;
|
|
unsigned int splineNodeIndex;
|
|
float splineLambda;
|
|
vec2_t corridorSpeeds;
|
|
};
|
|
|
|
struct PlayerActiveWeaponState
|
|
{
|
|
int weapAnim;
|
|
int weaponTime;
|
|
int weaponDelay;
|
|
int weaponRestrictKickTime;
|
|
int weaponState;
|
|
int weapHandFlags;
|
|
unsigned int weaponShotCount;
|
|
};
|
|
|
|
struct PlayerEquippedWeaponState
|
|
{
|
|
bool usedBefore;
|
|
bool dualWielding;
|
|
bool inAltMode;
|
|
bool needsRechamber[2];
|
|
int zoomLevelIndex;
|
|
bool thermalEnabled;
|
|
bool hybridScope;
|
|
};
|
|
|
|
struct compressedAnimData_s
|
|
{
|
|
int flags;
|
|
int animRate;
|
|
int distanceIn2D;
|
|
int distanceOut2D;
|
|
int distanceInZ;
|
|
int distanceOutZ;
|
|
int endScriptAnimTableIndex;
|
|
};
|
|
|
|
struct MantleState
|
|
{
|
|
float yaw;
|
|
int startPitch;
|
|
int transIndex;
|
|
int flags;
|
|
int startTime;
|
|
float startPosition[3];
|
|
compressedAnimData_s compressedAnimData;
|
|
};
|
|
|
|
struct SlideState
|
|
{
|
|
int flags;
|
|
int noFricTime;
|
|
};
|
|
|
|
struct SprintState_s
|
|
{
|
|
int sprintButtonUpRequired;
|
|
int sprintDelay;
|
|
int lastSprintStart;
|
|
int lastSprintEnd;
|
|
int sprintStartMaxLength;
|
|
};
|
|
|
|
struct GlobalAmmo
|
|
{
|
|
uint64_t ammoType;
|
|
int ammoCount;
|
|
int pad;
|
|
};
|
|
|
|
struct ClipAmmo
|
|
{
|
|
uint64_t clipIndex;
|
|
int ammoCount[2];
|
|
};
|
|
|
|
struct trajectory_t
|
|
{
|
|
int type;
|
|
int time;
|
|
int duration;
|
|
vec3_t vBase;
|
|
vec3_t vDelta;
|
|
};
|
|
|
|
enum clientstate_t
|
|
{
|
|
CS_FREE = 0x0,
|
|
CS_ZOMBIE = 0x1,
|
|
CS_RECONNECTING = 0x2,
|
|
CS_CONNECTED = 0x3,
|
|
CS_CLIENTLOADING = 0x4,
|
|
CS_ACTIVE = 0x5,
|
|
};
|
|
|
|
enum netadrtype_t
|
|
{
|
|
NA_BOT = 0x0,
|
|
NA_BAD = 0x1,
|
|
NA_LOOPBACK = 0x2,
|
|
NA_BROADCAST = 0x3,
|
|
NA_IP = 0x4,
|
|
};
|
|
|
|
enum netsrc_t
|
|
{
|
|
NS_CLIENT1 = 0x0,
|
|
NS_MAXCLIENTS = 0x1,
|
|
NS_SERVER = 0x2,
|
|
NS_PACKET = 0x3,
|
|
NS_INVALID_NETSRC = 0x4,
|
|
};
|
|
|
|
struct netadr_s
|
|
{
|
|
netadrtype_t type;
|
|
unsigned char ip[4];
|
|
unsigned __int16 port;
|
|
netsrc_t localNetID;
|
|
unsigned int addrHandleIndex;
|
|
};
|
|
|
|
struct msg_t
|
|
{
|
|
int overflowed;
|
|
int readOnly;
|
|
char* data;
|
|
char* splitData;
|
|
int maxsize;
|
|
int cursize;
|
|
int splitSize;
|
|
int readcount;
|
|
int bit;
|
|
int lastEntityRef;
|
|
netsrc_t targetLocalNetID;
|
|
int useZlib;
|
|
};
|
|
|
|
struct HsvColor
|
|
{
|
|
unsigned char h;
|
|
unsigned char s;
|
|
unsigned char v;
|
|
};
|
|
|
|
enum class he_type_t
|
|
{
|
|
HE_TYPE_FREE = 0x0,
|
|
HE_TYPE_TEXT = 0x1,
|
|
HE_TYPE_VALUE = 0x2,
|
|
HE_TYPE_PLAYERNAME = 0x3,
|
|
HE_TYPE_MATERIAL = 0x4,
|
|
HE_TYPE_TIMER_DOWN = 0x5,
|
|
HE_TYPE_TIMER_UP = 0x6,
|
|
HE_TYPE_TIMER_STATIC = 0x7,
|
|
HE_TYPE_TENTHS_TIMER_DOWN = 0x8,
|
|
HE_TYPE_TENTHS_TIMER_UP = 0x9,
|
|
HE_TYPE_TENTHS_TIMER_STATIC = 0xA,
|
|
HE_TYPE_CLOCK_DOWN = 0xB,
|
|
HE_TYPE_CLOCK_UP = 0xC,
|
|
HE_TYPE_WAYPOINT = 0xD,
|
|
HE_TYPE_COUNT = 0xE,
|
|
};
|
|
|
|
struct $C96EA5EC2ACBB9C0BF22693F316ACC67
|
|
{
|
|
unsigned char r;
|
|
unsigned char g;
|
|
unsigned char b;
|
|
unsigned char a;
|
|
};
|
|
|
|
union hudelem_color_t
|
|
{
|
|
$C96EA5EC2ACBB9C0BF22693F316ACC67 _s0;
|
|
unsigned int rgba;
|
|
};
|
|
|
|
struct hudelem_s
|
|
{
|
|
he_type_t type;
|
|
float x;
|
|
float y;
|
|
float z;
|
|
int targetEntNum;
|
|
float fontScale;
|
|
float fromFontScale;
|
|
int fontScaleStartTime;
|
|
int fontScaleTime;
|
|
int font;
|
|
int alignOrg;
|
|
int alignScreen;
|
|
hudelem_color_t color;
|
|
hudelem_color_t fromColor;
|
|
int fadeStartTime;
|
|
int fadeTime;
|
|
int label;
|
|
int width;
|
|
int height;
|
|
int materialIndex;
|
|
int fromWidth;
|
|
int fromHeight;
|
|
int scaleStartTime;
|
|
int scaleTime;
|
|
float fromX;
|
|
float fromY;
|
|
int fromAlignOrg;
|
|
int fromAlignScreen;
|
|
int moveStartTime;
|
|
int moveTime;
|
|
int time;
|
|
int duration;
|
|
float value;
|
|
int text;
|
|
float sort;
|
|
hudelem_color_t glowColor;
|
|
int fxBirthTime;
|
|
int fxLetterTime;
|
|
int fxDecayStartTime;
|
|
int fxDecayDuration;
|
|
int soundID;
|
|
int flags;
|
|
};
|
|
|
|
struct game_hudelem_s
|
|
{
|
|
hudelem_s elem;
|
|
int clientNum;
|
|
int team;
|
|
int archived;
|
|
int currentShowInKillcam;
|
|
};
|
|
|
|
enum
|
|
{
|
|
VAR_UNDEFINED = 0x0,
|
|
VAR_BEGIN_REF = 0x1,
|
|
VAR_POINTER = 0x1,
|
|
VAR_STRING = 0x2,
|
|
VAR_ISTRING = 0x3,
|
|
VAR_VECTOR = 0x4,
|
|
VAR_END_REF = 0x5,
|
|
VAR_FLOAT = 0x5,
|
|
VAR_INTEGER = 0x6,
|
|
VAR_CODEPOS = 0x7,
|
|
VAR_PRECODEPOS = 0x8,
|
|
VAR_FUNCTION = 0x9,
|
|
VAR_BUILTIN_FUNCTION = 0xA,
|
|
VAR_BUILTIN_METHOD = 0xB,
|
|
VAR_STACK = 0xC,
|
|
VAR_ANIMATION = 0xD,
|
|
VAR_PRE_ANIMATION = 0xE,
|
|
VAR_THREAD = 0xF,
|
|
VAR_NOTIFY_THREAD = 0x10,
|
|
VAR_TIME_THREAD = 0x11,
|
|
VAR_CHILD_THREAD = 0x12,
|
|
VAR_OBJECT = 0x13,
|
|
VAR_DEAD_ENTITY = 0x14,
|
|
VAR_ENTITY = 0x15,
|
|
VAR_ARRAY = 0x16,
|
|
VAR_DEAD_THREAD = 0x17,
|
|
VAR_COUNT = 0x18,
|
|
VAR_FREE = 0x18,
|
|
VAR_THREAD_LIST = 0x19,
|
|
VAR_ENDON_LIST = 0x1A,
|
|
VAR_TOTAL_COUNT = 0x1B,
|
|
};
|
|
|
|
struct ScriptFunctions
|
|
{
|
|
int maxSize;
|
|
int count;
|
|
int* address;
|
|
};
|
|
|
|
struct VariableStackBuffer
|
|
{
|
|
const char* pos;
|
|
unsigned __int16 size;
|
|
unsigned __int16 bufLen;
|
|
unsigned __int16 localId;
|
|
char time;
|
|
char buf[1];
|
|
};
|
|
|
|
union VariableUnion
|
|
{
|
|
int intValue;
|
|
unsigned int uintValue;
|
|
float floatValue;
|
|
unsigned int stringValue;
|
|
const float* vectorValue;
|
|
const char* codePosValue;
|
|
unsigned int pointerValue;
|
|
VariableStackBuffer* stackValue;
|
|
unsigned int entityOffset;
|
|
};
|
|
|
|
struct VariableValue
|
|
{
|
|
VariableUnion u;
|
|
int type;
|
|
};
|
|
|
|
struct scr_entref_t
|
|
{
|
|
unsigned short entnum;
|
|
unsigned short classnum;
|
|
};
|
|
|
|
typedef void(*BuiltinMethod)(scr_entref_t);
|
|
typedef void(*BuiltinFunction)();
|
|
|
|
struct function_stack_t
|
|
{
|
|
const char* pos;
|
|
unsigned int localId;
|
|
unsigned int localVarCount;
|
|
VariableValue* top;
|
|
VariableValue* startTop;
|
|
};
|
|
|
|
struct function_frame_t
|
|
{
|
|
function_stack_t fs;
|
|
int topType;
|
|
};
|
|
|
|
struct scrVmPub_t
|
|
{
|
|
unsigned int* localVars;
|
|
VariableValue* maxstack;
|
|
int function_count;
|
|
function_frame_t* function_frame;
|
|
VariableValue* top;
|
|
unsigned int inparamcount;
|
|
unsigned int outparamcount;
|
|
function_frame_t function_frame_start[32];
|
|
VariableValue stack[2048];
|
|
};
|
|
|
|
struct ObjectVariableChildren
|
|
{
|
|
unsigned __int16 firstChild;
|
|
unsigned __int16 lastChild;
|
|
};
|
|
|
|
struct ObjectVariableValue_u_f
|
|
{
|
|
unsigned __int16 prev;
|
|
unsigned __int16 next;
|
|
};
|
|
|
|
union ObjectVariableValue_u_o_u
|
|
{
|
|
unsigned __int16 size;
|
|
unsigned __int16 entnum;
|
|
unsigned __int16 nextEntId;
|
|
unsigned __int16 self;
|
|
};
|
|
|
|
struct ObjectVariableValue_u_o
|
|
{
|
|
unsigned __int16 refCount;
|
|
ObjectVariableValue_u_o_u u;
|
|
};
|
|
|
|
union ObjectVariableValue_w
|
|
{
|
|
unsigned int type;
|
|
unsigned int classnum;
|
|
unsigned int notifyName;
|
|
unsigned int waitTime;
|
|
unsigned int parentLocalId;
|
|
};
|
|
|
|
struct ChildVariableValue_u_f
|
|
{
|
|
unsigned __int16 prev;
|
|
unsigned __int16 next;
|
|
};
|
|
|
|
union ChildVariableValue_u
|
|
{
|
|
ChildVariableValue_u_f f;
|
|
VariableUnion u;
|
|
};
|
|
|
|
struct ChildBucketMatchKeys_keys
|
|
{
|
|
unsigned __int16 name_hi;
|
|
unsigned __int16 parentId;
|
|
};
|
|
|
|
union ChildBucketMatchKeys
|
|
{
|
|
ChildBucketMatchKeys_keys keys;
|
|
unsigned int match;
|
|
};
|
|
|
|
struct ChildVariableValue
|
|
{
|
|
ChildVariableValue_u u;
|
|
unsigned __int16 next;
|
|
char type;
|
|
char name_lo;
|
|
ChildBucketMatchKeys k;
|
|
unsigned __int16 nextSibling;
|
|
unsigned __int16 prevSibling;
|
|
};
|
|
|
|
union ObjectVariableValue_u
|
|
{
|
|
ObjectVariableValue_u_f f;
|
|
ObjectVariableValue_u_o o;
|
|
};
|
|
|
|
struct ObjectVariableValue
|
|
{
|
|
ObjectVariableValue_u u;
|
|
ObjectVariableValue_w w;
|
|
};
|
|
|
|
struct scrVarGlob_t
|
|
{
|
|
ObjectVariableValue objectVariableValue[36864];
|
|
ObjectVariableChildren objectVariableChildren[36864];
|
|
unsigned __int16 childVariableBucket[65536];
|
|
ChildVariableValue childVariableValue[102400];
|
|
};
|
|
|
|
struct scr_classStruct_t
|
|
{
|
|
unsigned __int16 id;
|
|
unsigned __int16 entArrayId;
|
|
char charId;
|
|
const char* name;
|
|
};
|
|
|
|
struct LuaFile
|
|
{
|
|
const char* name;
|
|
int len;
|
|
char strippingType;
|
|
const char* buffer;
|
|
};
|
|
|
|
struct GfxImageLoadDef
|
|
{
|
|
char levelCount;
|
|
char numElements;
|
|
char pad[2];
|
|
int flags;
|
|
int format;
|
|
int resourceSize;
|
|
char data[1];
|
|
};
|
|
|
|
union $3FA29451CE6F1FA138A5ABAB84BE9676
|
|
{
|
|
ID3D11Texture1D* linemap;
|
|
ID3D11Texture2D* map;
|
|
ID3D11Texture3D* volmap;
|
|
ID3D11Texture2D* cubemap;
|
|
GfxImageLoadDef* loadDef;
|
|
};
|
|
|
|
struct GfxTexture
|
|
{
|
|
$3FA29451CE6F1FA138A5ABAB84BE9676 ___u0;
|
|
ID3D11ShaderResourceView* shaderView;
|
|
ID3D11ShaderResourceView* shaderViewAlternate;
|
|
};
|
|
|
|
struct Picmip
|
|
{
|
|
char platform[2];
|
|
};
|
|
|
|
struct CardMemory
|
|
{
|
|
int platform[2];
|
|
};
|
|
|
|
struct GfxImage
|
|
{
|
|
GfxTexture textures;
|
|
int flags;
|
|
int imageFormat;
|
|
int resourceSize;
|
|
char mapType;
|
|
char semantic;
|
|
char category;
|
|
char flags2;
|
|
Picmip picmip;
|
|
char track;
|
|
//CardMemory cardMemory;
|
|
unsigned short width;
|
|
unsigned short height;
|
|
unsigned short depth;
|
|
unsigned short numElements;
|
|
char pad3[4];
|
|
void* pixelData;
|
|
//GfxImageLoadDef *loadDef;
|
|
uint64_t streams[4];
|
|
const char* name;
|
|
};
|
|
|
|
struct StreamFileNameRaw
|
|
{
|
|
const char* dir;
|
|
const char* name;
|
|
};
|
|
|
|
struct StreamFileNamePacked
|
|
{
|
|
unsigned __int64 offset;
|
|
unsigned __int64 length;
|
|
};
|
|
|
|
union StreamFileInfo
|
|
{
|
|
StreamFileNameRaw raw;
|
|
StreamFileNamePacked packed;
|
|
};
|
|
|
|
struct StreamFileName
|
|
{
|
|
unsigned __int16 isLocalized;
|
|
unsigned __int16 fileIndex;
|
|
StreamFileInfo info;
|
|
};
|
|
|
|
struct StreamedSound
|
|
{
|
|
StreamFileName filename;
|
|
unsigned int totalMsec;
|
|
};
|
|
|
|
struct ScriptFile
|
|
{
|
|
const char* name;
|
|
int compressedLen;
|
|
int len;
|
|
int bytecodeLen;
|
|
const char* buffer;
|
|
unsigned char* bytecode;
|
|
};
|
|
|
|
enum weapType_t
|
|
{
|
|
WEAPTYPE_NONE = 0x0,
|
|
WEAPTYPE_BULLET = 0x1,
|
|
WEAPTYPE_GRENADE = 0x2,
|
|
WEAPTYPE_PROJECTILE = 0x3,
|
|
WEAPTYPE_RIOTSHIELD = 0x4,
|
|
WEAPTYPE_NUM = 0x5,
|
|
};
|
|
|
|
enum weapClass_t
|
|
{
|
|
WEAPCLASS_RIFLE = 0x0,
|
|
WEAPCLASS_SNIPER = 0x1,
|
|
WEAPCLASS_MG = 0x2,
|
|
WEAPCLASS_SMG = 0x3,
|
|
WEAPCLASS_SPREAD = 0x4,
|
|
WEAPCLASS_PISTOL = 0x5,
|
|
WEAPCLASS_GRENADE = 0x6,
|
|
WEAPCLASS_ROCKETLAUNCHER = 0x7,
|
|
WEAPCLASS_TURRET = 0x8,
|
|
WEAPCLASS_THROWINGKNIFE = 0x9,
|
|
WEAPCLASS_NON_PLAYER = 0xA,
|
|
WEAPCLASS_ITEM = 0xB,
|
|
WEAPCLASS_NUM = 0xC,
|
|
};
|
|
|
|
enum PenetrateType
|
|
{
|
|
PENETRATE_TYPE_NONE = 0x0,
|
|
PENETRATE_TYPE_SMALL = 0x1,
|
|
PENETRATE_TYPE_MEDIUM = 0x2,
|
|
PENETRATE_TYPE_LARGE = 0x3,
|
|
PENETRATE_TYPE_COUNT = 0x4,
|
|
};
|
|
|
|
enum weapInventoryType_t
|
|
{
|
|
WEAPINVENTORY_PRIMARY = 0x0,
|
|
WEAPINVENTORY_OFFHAND = 0x1,
|
|
WEAPINVENTORY_ITEM = 0x2,
|
|
WEAPINVENTORY_ALTMODE = 0x3,
|
|
WEAPINVENTORY_EXCLUSIVE = 0x4,
|
|
WEAPINVENTORY_SCAVENGER = 0x5,
|
|
WEAPINVENTORYCOUNT = 0x6,
|
|
};
|
|
|
|
struct WeaponDef
|
|
{
|
|
const char* szOverlayName;
|
|
void** gunXModel;
|
|
void* handXModel;
|
|
void* camoWorldModel;
|
|
void* camoViewModel;
|
|
Material* camoWorldModelMaterialOverride;
|
|
Material* camoViewModelMaterialOverride;
|
|
Material** camoMaterialTarget;
|
|
void** szXAnimsRightHanded;
|
|
void** szXAnimsLeftHanded;
|
|
const char* szModeName;
|
|
unsigned int* notetrackSoundMapKeys;
|
|
unsigned int* notetrackSoundMapValues;
|
|
unsigned int* notetrackRumbleMapKeys;
|
|
unsigned int* notetrackRumbleMapValues;
|
|
unsigned int* notetrackFXMapKeys;
|
|
const void** notetrackFXMapValues;
|
|
unsigned int* notetrackFXMapTagValues;
|
|
int playerAnimType;
|
|
weapType_t weapType;
|
|
weapClass_t weapClass;
|
|
PenetrateType penetrateType;
|
|
weapInventoryType_t inventoryType;
|
|
}; // Incomplete
|
|
|
|
struct RawFile
|
|
{
|
|
const char* name;
|
|
int compressedLen;
|
|
int len;
|
|
const char* buffer;
|
|
};
|
|
|
|
struct WeaponCompleteDef
|
|
{
|
|
const char* szInternalName;
|
|
WeaponDef* weapDef;
|
|
};
|
|
|
|
union XAssetHeader
|
|
{
|
|
void* data;
|
|
/*PhysPreset *physPreset;
|
|
PhysCollmap *physCollmap;
|
|
XAnimParts *parts;
|
|
XModelSurfs *modelSurfs;
|
|
XModel *model;*/
|
|
Material* material;
|
|
/*ComputeShader *computeShader;
|
|
MaterialVertexShader *vertexShader;
|
|
MaterialHullShader *hullShader;
|
|
MaterialDomainShader *domainShader;
|
|
MaterialPixelShader *pixelShader;
|
|
MaterialVertexDeclaration *vertexDecl;
|
|
MaterialTechniqueSet *techniqueSet;
|
|
snd_alias_list_t *sound;
|
|
SndCurve *sndCurve;
|
|
SndCurve *lpfCurve;
|
|
SndCurve *reverbCurve;
|
|
LoadedSound *loadSnd;
|
|
clipMap_t *clipMap;
|
|
ComWorld *comWorld;
|
|
GlassWorld *glassWorld;
|
|
PathData *pathData;
|
|
VehicleTrack *vehicleTrack;
|
|
MapEnts *mapEnts;
|
|
FxWorld *fxWorld;
|
|
GfxWorld *gfxWorld;
|
|
GfxLightDef *lightDef;*/
|
|
Font_s* font;
|
|
/*MenuList *menuList;
|
|
menuDef_t *menu;
|
|
AnimationClass *animClass;
|
|
LocalizeEntry *localize;
|
|
WeaponAttachment *attachment;*/
|
|
WeaponCompleteDef* weapon;
|
|
/*SndDriverGlobals *sndDriverGlobals;
|
|
FxEffectDef *fx;
|
|
FxImpactTable *impactFx;
|
|
SurfaceFxTable *surfaceFx;*/
|
|
RawFile* rawfile;
|
|
ScriptFile* scriptfile;
|
|
StringTable* stringTable;
|
|
/*LeaderboardDef *leaderboardDef;
|
|
StructuredDataDefSet *structuredDataDefSet;
|
|
TracerDef *tracerDef;
|
|
VehicleDef *vehDef;
|
|
AddonMapEnts *addonMapEnts;
|
|
NetConstStrings *netConstStrings;
|
|
ReverbPreset *reverbPreset;*/
|
|
LuaFile* luaFile;
|
|
/*ScriptableDef *scriptable;
|
|
Colorization *colorization;
|
|
ColorizationSet *colorizationSet;
|
|
ToneMapping *toneMapping;
|
|
EquipmentSoundTable *equipSndTable;
|
|
VectorField *vectorField;
|
|
DopplerPreset *dopplerPreset;
|
|
FxParticleSimAnimation *particleSimAnimation;*/
|
|
GfxImage* image;
|
|
};
|
|
|
|
struct XZoneInfo
|
|
{
|
|
const char* name;
|
|
int allocFlags;
|
|
int freeFlags;
|
|
};
|
|
|
|
struct XZoneInfoInternal
|
|
{
|
|
char name[64];
|
|
int flags;
|
|
int isBaseMap;
|
|
};
|
|
|
|
struct XAsset
|
|
{
|
|
XAssetType type;
|
|
XAssetHeader header;
|
|
};
|
|
|
|
struct XAssetEntry
|
|
{
|
|
XAsset asset;
|
|
unsigned __int16 zoneIndex;
|
|
volatile int inuseMask;
|
|
unsigned int nextHash;
|
|
unsigned int nextOverride;
|
|
unsigned int nextPoolEntry;
|
|
};
|
|
|
|
struct weaponParms
|
|
{
|
|
float forward[3];
|
|
float right[3];
|
|
float up[3];
|
|
float muzzleTrace[3];
|
|
float gunForward[3];
|
|
Weapon weapon;
|
|
bool isAlternate;
|
|
const WeaponDef* weapDef;
|
|
const void* weapCompleteDef;
|
|
};
|
|
|
|
enum FF_DIR
|
|
{
|
|
FFD_DEFAULT = 0x0,
|
|
FFD_MOD_DIR = 0x1,
|
|
FFD_USER_MAP = 0x2,
|
|
};
|
|
|
|
struct Sys_File
|
|
{
|
|
HANDLE handle;
|
|
};
|
|
|
|
namespace sp
|
|
{
|
|
// very shit structures for the moment cuz i cba mapping the whole thing out right now...
|
|
struct gclient_s
|
|
{
|
|
char __0x00[0xB6DC];
|
|
int flags;
|
|
};
|
|
|
|
struct gentity_s
|
|
{
|
|
char __0x00[0x110];
|
|
gclient_s* client;
|
|
char __0x118[0x4C];
|
|
int flags;
|
|
};
|
|
|
|
struct playerState_s
|
|
{
|
|
};
|
|
|
|
struct XZone
|
|
{
|
|
char name[64];
|
|
char gap2[24];
|
|
XAssetEntry* entry;
|
|
char gap4[121];
|
|
char gap5;
|
|
};
|
|
}
|
|
|
|
namespace mp
|
|
{
|
|
#pragma pack(push, 4)
|
|
struct playerState_s
|
|
{
|
|
int commandTime;
|
|
int pm_type;
|
|
int pm_time;
|
|
int pm_flags;
|
|
int otherFlags;
|
|
int linkFlags;
|
|
int bobCycle;
|
|
vec3_t origin;
|
|
vec3_t velocity;
|
|
int grenadeTimeLeft;
|
|
int throwbackGrenadeOwner;
|
|
int throwbackGrenadeTimeLeft;
|
|
int throwbackWeapon;
|
|
int movingPlatformEntity;
|
|
int remoteEyesEnt;
|
|
int remoteEyesTagname;
|
|
int remoteControlEnt;
|
|
int remoteTurretEnt;
|
|
int foliageSoundTime;
|
|
int gravity;
|
|
int speed;
|
|
vec3_t delta_angles;
|
|
int groundEntityNum;
|
|
vec3_t vLadderVec;
|
|
int jumpTime;
|
|
float jumpOriginZ;
|
|
int legsTimer;
|
|
int legsAnim;
|
|
int torsoTimer;
|
|
int torsoAnim;
|
|
int animMoveType;
|
|
int damageTimer;
|
|
int damageDuration;
|
|
int flinch;
|
|
int movementDir;
|
|
int turnStartTime;
|
|
int turnDirection;
|
|
int turnRemaining;
|
|
int corpseIndex;
|
|
PlayerVehicleState vehicleState;
|
|
int eFlags;
|
|
playerEvents_t pe;
|
|
int unpredictableEventSequence;
|
|
int unpredictableEventSequenceOld;
|
|
EntityEvent unpredictableEvents[4];
|
|
int clientNum;
|
|
int viewmodelIndex;
|
|
vec3_t viewangles;
|
|
char _0x190[0xAC];
|
|
int locationSelectionInfo;
|
|
SprintState_s sprintState;
|
|
float holdBreathScale;
|
|
int holdBreathTimer;
|
|
float moveSpeedScaleMultiplier;
|
|
float grenadeCookScale;
|
|
MantleState mantleState;
|
|
SlideState slideState;
|
|
float leanf;
|
|
PlayerActiveWeaponState weapState[2];
|
|
int weaponsEquipped[15];
|
|
PlayerEquippedWeaponState weapEquippedData[15];
|
|
int offHand;
|
|
int offhandPrimaryClass;
|
|
int offhandSecondaryClass;
|
|
int weapon;
|
|
int weapFlags;
|
|
float fWeaponPosFrac;
|
|
float aimSpreadScale;
|
|
int adsDelayTime;
|
|
int spreadOverride;
|
|
int spreadOverrideState;
|
|
float fAimSpreadMovementScale;
|
|
PlayerHandIndex lastWeaponHand;
|
|
GlobalAmmo ammoNotInClip[15];
|
|
ClipAmmo ammoInClip[15];
|
|
int weapLockFlags;
|
|
int weapLockedEntnum;
|
|
vec3_t weapLockedPos;
|
|
int weaponIdleTime;
|
|
int lastStowedWeapon;
|
|
char __0x638[0x2CE8];
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
struct ClientCustomizationInfo
|
|
{
|
|
unsigned int modelIndex[3];
|
|
};
|
|
|
|
struct ScoreInfo
|
|
{
|
|
unsigned short ping;
|
|
char status;
|
|
char pad;
|
|
unsigned short score;
|
|
unsigned short kills;
|
|
unsigned short deaths;
|
|
unsigned short assists;
|
|
unsigned short extrascore0;
|
|
unsigned short extrascore1;
|
|
unsigned short adrenaline;
|
|
};
|
|
|
|
union OmnvarValue
|
|
{
|
|
bool enabled;
|
|
int integer;
|
|
unsigned int time;
|
|
float value;
|
|
unsigned int ncsString;
|
|
};
|
|
|
|
struct OmnvarData
|
|
{
|
|
unsigned int timeModified;
|
|
OmnvarValue current;
|
|
};
|
|
|
|
enum team_t
|
|
{
|
|
TEAM_FREE = 0x0,
|
|
TEAM_BAD = 0x0,
|
|
TEAM_AXIS = 0x1,
|
|
TEAM_ALLIES = 0x2,
|
|
TEAM_SPECTATOR = 0x3,
|
|
TEAM_NUM_TEAMS = 0x4,
|
|
};
|
|
|
|
struct clientState_s
|
|
{
|
|
int clientIndex;
|
|
team_t team;
|
|
int modelindex;
|
|
int dualWielding;
|
|
char _0x10[0x30];
|
|
char name[0x10];
|
|
int rank;
|
|
int prestige;
|
|
char _0x00[0x10];
|
|
int nameplateFriendlyIndex;
|
|
int nameplateEnemyIndex;
|
|
unsigned int perks[2];
|
|
char _0x78[0x80];
|
|
};
|
|
|
|
struct clientSession_t
|
|
{
|
|
int sessionState;
|
|
int forceSpectatorClient;
|
|
int killCamEntity;
|
|
int isInKillcam;
|
|
char __0x332C[0x14];
|
|
usercmd_s cmd;
|
|
usercmd_s oldcmd;
|
|
int localClient;
|
|
char __0x33C4[0x24];
|
|
float moveSpeedScaleMultiplier;
|
|
int viewmodelIndex;
|
|
int noSpectate;
|
|
clientState_s cs;
|
|
ScoreInfo scores;
|
|
char __pad[0x1B0];
|
|
};
|
|
|
|
struct gclient_s
|
|
{
|
|
playerState_s ps;
|
|
clientSession_t sess;
|
|
int flags;
|
|
int spectatorClient;
|
|
char __0x36B4[0x3B0];
|
|
};
|
|
|
|
struct LerpEntityState
|
|
{
|
|
int entFlags;
|
|
trajectory_t positionTrajectory;
|
|
trajectory_t angleTrajectory;
|
|
char _0x4C[0x10];
|
|
int primaryWeapon;
|
|
int secondaryWeapon;
|
|
char _0x64[0x4];
|
|
};
|
|
|
|
struct EntityState
|
|
{
|
|
int number;
|
|
int eType;
|
|
LerpEntityState lerp;
|
|
char _0x70[0x8];
|
|
int otherEntityNum;
|
|
int attackerEntityNum;
|
|
int groundEntityNum;
|
|
char _0x84[0xC];
|
|
int clientNum;
|
|
char _0x94[0x4];
|
|
int solid;
|
|
int eventParam;
|
|
int eventSequence;
|
|
EntityEvent entityEvent[4];
|
|
int weapon;
|
|
int inAltWeaponMode;
|
|
char _0xCC[0x8];
|
|
int eventParam2;
|
|
char _0xD8[0x30];
|
|
};
|
|
|
|
struct EntityShared
|
|
{
|
|
char _0x108[0x38];
|
|
vec3_t origin;
|
|
vec3_t angles;
|
|
char _0x14C[0xC];
|
|
};
|
|
|
|
struct gentity_s
|
|
{
|
|
EntityState s;
|
|
EntityShared r;
|
|
gclient_s* client;
|
|
char _0x170[0x50];
|
|
int flags;
|
|
char _0x1C4[0x18];
|
|
int health;
|
|
int maxHealth;
|
|
char _0x1E4[0x10C];
|
|
};
|
|
|
|
struct snapshot_s
|
|
{
|
|
char _0x0[0x3C78];
|
|
int ping;
|
|
int serverTime;
|
|
int numEntities;
|
|
int numClients;
|
|
};
|
|
|
|
struct cg_s
|
|
{
|
|
playerState_s ps;
|
|
char _0x3324[0x64];
|
|
snapshot_s* snap;
|
|
snapshot_s* nextSnap; // theres alot after this cba rn
|
|
};
|
|
|
|
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;
|
|
};
|
|
|
|
struct __declspec(align(8)) netchan_t
|
|
{
|
|
int outgoingSequence;
|
|
netsrc_t sock;
|
|
int dropped;
|
|
int incomingSequence;
|
|
netadr_s remoteAddress;
|
|
int fragmentSequence;
|
|
int fragmentLength;
|
|
char* fragmentBuffer;
|
|
int fragmentBufferSize;
|
|
int unsentFragments;
|
|
int unsentFragmentStart;
|
|
int unsentLength;
|
|
char* unsentBuffer;
|
|
int unsentBufferSize;
|
|
netProfileInfo_t prof;
|
|
};
|
|
|
|
struct __declspec(align(8)) clientHeader_t
|
|
{
|
|
int state;
|
|
int sendAsActive;
|
|
int deltaMessage;
|
|
int rateDelayed;
|
|
int hasAckedBaselineData;
|
|
int hugeSnapshotSent;
|
|
netchan_t netchan;
|
|
float predictedOrigin[3];
|
|
int predictedOriginServerTime;
|
|
int migrationState;
|
|
unsigned int predictedVehicleSplineId;
|
|
int predictedVehicleTargetEntity;
|
|
float predictedVehicleOrigin[3];
|
|
int predictedVehicleServerTime;
|
|
int ackedMessage[32];
|
|
unsigned int ackedMessageCount;
|
|
int sentMessage[32];
|
|
int wasKillcam[32];
|
|
unsigned int sendMessageCount;
|
|
bool overrideDeltaMessage;
|
|
int overrideSequenceNumber;
|
|
int sequenceResume;
|
|
int isInKillcam;
|
|
};
|
|
|
|
struct svscmd_info_t
|
|
{
|
|
int time;
|
|
int type;
|
|
char cmd[1024];
|
|
};
|
|
|
|
static_assert(sizeof(svscmd_info_t) == 0x408);
|
|
|
|
struct client_net_buffers_t
|
|
{
|
|
svscmd_info_t reliableCommandInfo[128];
|
|
char netchanOutgoingBuffer[131072];
|
|
char netchanIncomingBuffer[2048];
|
|
};
|
|
|
|
static_assert(sizeof(client_net_buffers_t) == 0x40C00);
|
|
|
|
struct client_t
|
|
{
|
|
clientHeader_t header;
|
|
const char* dropReason;
|
|
char userinfo[0x400];
|
|
int reliableSequence;
|
|
int reliableAcknowledge;
|
|
int reliableSent;
|
|
int messageAcknowledge;
|
|
int largeCommandSequence;
|
|
int gamestateMessageNum;
|
|
int challenge;
|
|
client_net_buffers_t netBuf;
|
|
int cumulThinkTime;
|
|
int beginCmdIndex;
|
|
int currCmdIndex;
|
|
usercmd_s lastUsercmd;
|
|
usercmd_s cmds[8];
|
|
int lastClientCommand;
|
|
char lastClientCommandString[1024];
|
|
gentity_s* gentity;
|
|
char name[16];
|
|
int lastPacketTime;
|
|
int lastConnectTime;
|
|
int nextSnapshotTime;
|
|
int timeoutCount;
|
|
int ping;
|
|
int minPing;
|
|
int currFramePing;
|
|
int snapshotBackoffCount;
|
|
int rate;
|
|
int pureAuthentic;
|
|
unsigned int streamSyncWaitBits;
|
|
unsigned int streamSyncWaitTimeout;
|
|
LiveClientDropType liveDropRequest;
|
|
char playerGuid[17];
|
|
unsigned short scriptId;
|
|
int bIsSplitscreenClient;
|
|
TestClientType testClient;
|
|
char _0x41E94[0x416A0];
|
|
};
|
|
|
|
struct XZone
|
|
{
|
|
char name[64];
|
|
char gap2[24];
|
|
XAssetEntry* entry;
|
|
char gap4[399];
|
|
char gap5;
|
|
};
|
|
|
|
struct missileFireParms
|
|
{
|
|
gentity_s* target;
|
|
float targetPosOrOffset[3];
|
|
float autoDetonateTime;
|
|
bool lockon;
|
|
bool topFire;
|
|
};
|
|
|
|
static_assert(sizeof(missileFireParms) == 0x20);
|
|
}
|
|
|
|
static_assert(sizeof(mp::client_t) == 0x83570);
|
|
|
|
union playerState_s
|
|
{
|
|
sp::playerState_s* sp;
|
|
mp::playerState_s* mp;
|
|
};
|
|
|
|
enum GfxDrawSceneMethod
|
|
{
|
|
GFX_DRAW_SCENE_STANDARD = 0x0,
|
|
};
|
|
|
|
enum MaterialTechniqueType
|
|
{
|
|
TECHNIQUE_DEPTH_PREPASS = 0x0,
|
|
TECHNIQUE_BUILD_SHADOWMAP_DEPTH = 0x1,
|
|
TECHNIQUE_UNLIT = 0x2,
|
|
TECHNIQUE_EMISSIVE = 0x3,
|
|
TECHNIQUE_EMISSIVE_DFOG = 0x4,
|
|
TECHNIQUE_EMISSIVE_SHADOW = 0x5,
|
|
TECHNIQUE_EMISSIVE_SHADOW_DFOG = 0x6,
|
|
TECHNIQUE_LIT = 0x7,
|
|
LIT_FIRST_ONE_LIGHT_TECHNIQUE = 0x8,
|
|
TECHNIQUE_WIREFRAME_SOLID = 0x61,
|
|
TECHNIQUE_WIREFRAME_SHADED = 0x62,
|
|
TECHNIQUE_THERMAL = 0x63,
|
|
TECHNIQUE_VELOCITY_RIGID = 0x64,
|
|
TECHNIQUE_VELOCITY_SKINNED = 0x65,
|
|
TECHNIQUE_DEBUG_BUMPMAP = 0x66,
|
|
TECHNIQUE_NO_DISPLACEMENT_DEBUG_BUMPMAP = 0x134,
|
|
TECHNIQUE_COUNT = 0x135,
|
|
TECHNIQUE_TOTAL_COUNT = 0x136,
|
|
TECHNIQUE_NONE = 0x137,
|
|
};
|
|
|
|
struct GfxDrawMethod_s
|
|
{
|
|
int drawScene;
|
|
int baseTechType;
|
|
int emissiveTechType;
|
|
int forceTechType;
|
|
};
|
|
|
|
enum TraceHitType
|
|
{
|
|
TRACE_HITTYPE_NONE,
|
|
TRACE_HITTYPE_ENTITY,
|
|
TRACE_HITTYPE_DYNENT_MODEL,
|
|
TRACE_HITTYPE_DYNENT_BRUSH,
|
|
TRACE_HITTYPE_GLASS
|
|
};
|
|
|
|
struct trace_t
|
|
{
|
|
float fraction;
|
|
float normal[3];
|
|
int surfaceFlags;
|
|
int contents;
|
|
TraceHitType hitType;
|
|
unsigned __int16 hitId;
|
|
unsigned __int16 modelIndex;
|
|
unsigned int partName;
|
|
unsigned __int16 partGroup;
|
|
bool allsolid;
|
|
bool startsolid;
|
|
bool walkable;
|
|
bool getPenetration;
|
|
bool removePitchAndRollRotations;
|
|
};
|
|
|
|
static_assert(sizeof(trace_t) == 0x2C);
|
|
|
|
struct pml_t
|
|
{
|
|
float forward[3];
|
|
float right[3];
|
|
float up[3];
|
|
float frametime;
|
|
int msec;
|
|
int walking;
|
|
int groundPlane;
|
|
int almostGroundPlane;
|
|
};
|
|
|
|
struct pmove_t
|
|
{
|
|
void* ps;
|
|
usercmd_s cmd;
|
|
usercmd_s oldcmd;
|
|
int tracemask;
|
|
int numtouch;
|
|
int touchents[32];
|
|
Bounds bounds;
|
|
float speed;
|
|
int contactEntity;
|
|
int proneChange;
|
|
bool mantleStarted;
|
|
float mantleEndPos[3];
|
|
int mantleDuration;
|
|
float meleeEntOrigin[3];
|
|
float meleeEntVelocity[3];
|
|
int viewChangeTime;
|
|
float viewChange;
|
|
float fTorsoPitch;
|
|
float fWaistPitch;
|
|
int remoteTurretFireTime;
|
|
int lastUpdateCMDServerTime;
|
|
unsigned int groundSurfaceType;
|
|
unsigned char handler;
|
|
};
|
|
|
|
struct WinVars_t
|
|
{
|
|
HINSTANCE reflib_library;
|
|
int reflib_active;
|
|
HWND hWnd;
|
|
HINSTANCE hInstance;
|
|
int activeApp;
|
|
int isMinimized;
|
|
int hasFocus;
|
|
int activationStateChanged;
|
|
int recenterMouse;
|
|
HHOOK lowLevelKeyboardHook;
|
|
unsigned int sysMsgTime;
|
|
};
|
|
|
|
static_assert(sizeof(WinVars_t) == 0x48);
|
|
|
|
struct WinMouseVars_t
|
|
{
|
|
int oldButtonState;
|
|
tagPOINT oldPos;
|
|
bool mouseActive;
|
|
bool mouseInitialized;
|
|
};
|
|
|
|
static_assert(sizeof(WinMouseVars_t) == 0x10);
|
|
|
|
struct displayFreq_t
|
|
{
|
|
unsigned int numerator;
|
|
unsigned int denominator;
|
|
};
|
|
|
|
struct vidConfig_t
|
|
{
|
|
unsigned int sceneWidth;
|
|
unsigned int sceneHeight;
|
|
unsigned int displayWidth;
|
|
unsigned int displayHeight;
|
|
char omitRTFlags;
|
|
unsigned __int16 shadowTileResSmall;
|
|
unsigned __int16 shadowTileResLarge;
|
|
displayFreq_t displayFrequency;
|
|
unsigned int monitorWidth;
|
|
unsigned int monitorHeight;
|
|
int displayMode;
|
|
float windowAspectRatio;
|
|
float displayAspectRatio;
|
|
float sceneAspectRatio;
|
|
float aspectRatioScenePixel;
|
|
float aspectRatioDisplayPixel;
|
|
};
|
|
|
|
namespace hks
|
|
{
|
|
struct lua_State;
|
|
struct HashTable;
|
|
struct cclosure;
|
|
|
|
struct GenericChunkHeader
|
|
{
|
|
unsigned __int64 m_flags;
|
|
};
|
|
|
|
struct ChunkHeader : GenericChunkHeader
|
|
{
|
|
ChunkHeader* m_next;
|
|
};
|
|
|
|
struct UserData : ChunkHeader
|
|
{
|
|
unsigned __int64 m_envAndSizeOffsetHighBits;
|
|
unsigned __int64 m_metaAndSizeOffsetLowBits;
|
|
char m_data[8];
|
|
};
|
|
|
|
struct InternString
|
|
{
|
|
unsigned __int64 m_flags;
|
|
unsigned __int64 m_lengthbits;
|
|
unsigned int m_hash;
|
|
char m_data[30];
|
|
};
|
|
|
|
union HksValue
|
|
{
|
|
cclosure* cClosure;
|
|
void* closure;
|
|
UserData* userData;
|
|
HashTable* table;
|
|
void* tstruct;
|
|
InternString* str;
|
|
void* thread;
|
|
void* ptr;
|
|
float number;
|
|
unsigned int native;
|
|
bool boolean;
|
|
};
|
|
|
|
enum HksObjectType
|
|
{
|
|
TANY = 0xFFFFFFFE,
|
|
TNONE = 0xFFFFFFFF,
|
|
TNIL = 0x0,
|
|
TBOOLEAN = 0x1,
|
|
TLIGHTUSERDATA = 0x2,
|
|
TNUMBER = 0x3,
|
|
TSTRING = 0x4,
|
|
TTABLE = 0x5,
|
|
TFUNCTION = 0x6, // idk
|
|
TUSERDATA = 0x7,
|
|
TTHREAD = 0x8,
|
|
TIFUNCTION = 0x9, // Lua function
|
|
TCFUNCTION = 0xA, // C function
|
|
TUI64 = 0xB,
|
|
TSTRUCT = 0xC,
|
|
NUM_TYPE_OBJECTS = 0xE,
|
|
};
|
|
|
|
struct HksObject
|
|
{
|
|
HksObjectType t;
|
|
HksValue v;
|
|
};
|
|
|
|
const struct hksInstruction
|
|
{
|
|
unsigned int code;
|
|
};
|
|
|
|
struct ActivationRecord
|
|
{
|
|
HksObject* m_base;
|
|
const hksInstruction* m_returnAddress;
|
|
__int16 m_tailCallDepth;
|
|
__int16 m_numVarargs;
|
|
int m_numExpectedReturns;
|
|
};
|
|
|
|
struct CallStack
|
|
{
|
|
ActivationRecord* m_records;
|
|
ActivationRecord* m_lastrecord;
|
|
ActivationRecord* m_current;
|
|
const hksInstruction* m_current_lua_pc;
|
|
const hksInstruction* m_hook_return_addr;
|
|
int m_hook_level;
|
|
};
|
|
|
|
struct ApiStack
|
|
{
|
|
HksObject* top;
|
|
HksObject* base;
|
|
HksObject* alloc_top;
|
|
HksObject* bottom;
|
|
};
|
|
|
|
struct UpValue : ChunkHeader
|
|
{
|
|
HksObject m_storage;
|
|
HksObject* loc;
|
|
UpValue* m_next;
|
|
};
|
|
|
|
struct CallSite
|
|
{
|
|
_SETJMP_FLOAT128 m_jumpBuffer[16];
|
|
CallSite* m_prev;
|
|
};
|
|
|
|
enum Status
|
|
{
|
|
NEW = 0x1,
|
|
RUNNING = 0x2,
|
|
YIELDED = 0x3,
|
|
DEAD_ERROR = 0x4,
|
|
};
|
|
|
|
enum HksError
|
|
{
|
|
HKS_NO_ERROR = 0,
|
|
HKS_ERRSYNTAX = -4,
|
|
HKS_ERRFILE = -5,
|
|
HKS_ERRRUN = -100,
|
|
HKS_ERRMEM = -200,
|
|
HKS_ERRERR = -300,
|
|
HKS_THROWING_ERROR = -500,
|
|
HKS_GC_YIELD = 1,
|
|
};
|
|
|
|
struct lua_Debug
|
|
{
|
|
int event;
|
|
const char* name;
|
|
const char* namewhat;
|
|
const char* what;
|
|
const char* source;
|
|
int currentline;
|
|
int nups;
|
|
int nparams;
|
|
int ishksfunc;
|
|
int linedefined;
|
|
int lastlinedefined;
|
|
char short_src[512];
|
|
int callstack_level;
|
|
int is_tail_call;
|
|
};
|
|
|
|
using lua_function = int(__fastcall*)(lua_State*);
|
|
|
|
struct luaL_Reg
|
|
{
|
|
const char* name;
|
|
lua_function function;
|
|
};
|
|
|
|
struct Node
|
|
{
|
|
HksObject m_key;
|
|
HksObject m_value;
|
|
};
|
|
|
|
struct Metatable
|
|
{
|
|
};
|
|
|
|
struct HashTable : ChunkHeader
|
|
{
|
|
Metatable* m_meta;
|
|
unsigned int m_version;
|
|
unsigned int m_mask;
|
|
Node* m_hashPart;
|
|
HksObject* m_arrayPart;
|
|
unsigned int m_arraySize;
|
|
Node* m_freeNode;
|
|
};
|
|
|
|
struct cclosure : ChunkHeader
|
|
{
|
|
lua_function m_function;
|
|
HashTable* m_env;
|
|
__int16 m_numUpvalues;
|
|
__int16 m_flags;
|
|
InternString* m_name;
|
|
HksObject m_upvalues[1];
|
|
};
|
|
|
|
enum HksCompilerSettings_BytecodeSharingFormat
|
|
{
|
|
BYTECODE_DEFAULT = 0x0,
|
|
BYTECODE_INPLACE = 0x1,
|
|
BYTECODE_REFERENCED = 0x2,
|
|
};
|
|
|
|
enum HksCompilerSettings_IntLiteralOptions
|
|
{
|
|
INT_LITERALS_NONE = 0x0,
|
|
INT_LITERALS_LUD = 0x1,
|
|
INT_LITERALS_32BIT = 0x1,
|
|
INT_LITERALS_UI64 = 0x2,
|
|
INT_LITERALS_64BIT = 0x2,
|
|
INT_LITERALS_ALL = 0x3,
|
|
};
|
|
|
|
struct HksCompilerSettings
|
|
{
|
|
int m_emitStructCode;
|
|
const char** m_stripNames;
|
|
int m_emitGlobalMemoization;
|
|
int _m_isHksGlobalMemoTestingMode;
|
|
HksCompilerSettings_BytecodeSharingFormat m_bytecodeSharingFormat;
|
|
HksCompilerSettings_IntLiteralOptions m_enableIntLiterals;
|
|
int(*m_debugMap)(const char*, int);
|
|
};
|
|
|
|
enum HksBytecodeSharingMode
|
|
{
|
|
HKS_BYTECODE_SHARING_OFF = 0x0,
|
|
HKS_BYTECODE_SHARING_ON = 0x1,
|
|
HKS_BYTECODE_SHARING_SECURE = 0x2,
|
|
};
|
|
|
|
struct HksGcWeights
|
|
{
|
|
int m_removeString;
|
|
int m_finalizeUserdataNoMM;
|
|
int m_finalizeUserdataGcMM;
|
|
int m_cleanCoroutine;
|
|
int m_removeWeak;
|
|
int m_markObject;
|
|
int m_traverseString;
|
|
int m_traverseUserdata;
|
|
int m_traverseCoroutine;
|
|
int m_traverseWeakTable;
|
|
int m_freeChunk;
|
|
int m_sweepTraverse;
|
|
};
|
|
|
|
struct GarbageCollector_Stack
|
|
{
|
|
void* m_storage;
|
|
unsigned int m_numEntries;
|
|
unsigned int m_numAllocated;
|
|
};
|
|
|
|
struct ProtoList
|
|
{
|
|
void** m_protoList;
|
|
unsigned __int16 m_protoSize;
|
|
unsigned __int16 m_protoAllocSize;
|
|
};
|
|
|
|
struct GarbageCollector
|
|
{
|
|
int m_target;
|
|
int m_stepsLeft;
|
|
int m_stepLimit;
|
|
HksGcWeights m_costs;
|
|
int m_unit;
|
|
_SETJMP_FLOAT128(*m_jumpPoint)[16];
|
|
lua_State* m_mainState;
|
|
lua_State* m_finalizerState;
|
|
void* m_memory;
|
|
int m_phase;
|
|
GarbageCollector_Stack m_resumeStack;
|
|
GarbageCollector_Stack m_greyStack;
|
|
GarbageCollector_Stack m_remarkStack;
|
|
GarbageCollector_Stack m_weakStack;
|
|
int m_finalizing;
|
|
HksObject m_safeTableValue;
|
|
lua_State* m_startOfStateStackList;
|
|
lua_State* m_endOfStateStackList;
|
|
lua_State* m_currentState;
|
|
HksObject m_safeValue;
|
|
void* m_compiler;
|
|
void* m_bytecodeReader;
|
|
void* m_bytecodeWriter;
|
|
int m_pauseMultiplier;
|
|
int m_stepMultiplier;
|
|
bool m_stopped;
|
|
int(*m_gcPolicy)(lua_State*);
|
|
unsigned __int64 m_pauseTriggerMemoryUsage;
|
|
int m_stepTriggerCountdown;
|
|
unsigned int m_stringTableIndex;
|
|
unsigned int m_stringTableSize;
|
|
UserData* m_lastBlackUD;
|
|
UserData* m_activeUD;
|
|
};
|
|
|
|
enum MemoryManager_ChunkColor
|
|
{
|
|
RED = 0x0,
|
|
BLACK = 0x1,
|
|
};
|
|
|
|
struct ChunkList
|
|
{
|
|
ChunkHeader m_prevToStart;
|
|
};
|
|
|
|
enum Hks_DeleteCheckingMode
|
|
{
|
|
HKS_DELETE_CHECKING_OFF = 0x0,
|
|
HKS_DELETE_CHECKING_ACCURATE = 0x1,
|
|
HKS_DELETE_CHECKING_SAFE = 0x2,
|
|
};
|
|
|
|
struct MemoryManager
|
|
{
|
|
void* (*m_allocator)(void*, void*, unsigned __int64, unsigned __int64);
|
|
void* m_allocatorUd;
|
|
MemoryManager_ChunkColor m_chunkColor;
|
|
unsigned __int64 m_used;
|
|
unsigned __int64 m_highwatermark;
|
|
ChunkList m_allocationList;
|
|
ChunkList m_sweepList;
|
|
ChunkHeader* m_lastKeptChunk;
|
|
lua_State* m_state;
|
|
ChunkList m_deletedList;
|
|
int m_deleteMode;
|
|
Hks_DeleteCheckingMode m_deleteCheckingMode;
|
|
};
|
|
|
|
struct StaticStringCache
|
|
{
|
|
HksObject m_objects[41];
|
|
};
|
|
|
|
enum HksBytecodeEndianness
|
|
{
|
|
HKS_BYTECODE_DEFAULT_ENDIAN = 0x0,
|
|
HKS_BYTECODE_BIG_ENDIAN = 0x1,
|
|
HKS_BYTECODE_LITTLE_ENDIAN = 0x2,
|
|
};
|
|
|
|
struct RuntimeProfileData_Stats
|
|
{
|
|
unsigned __int64 hksTime;
|
|
unsigned __int64 callbackTime;
|
|
unsigned __int64 gcTime;
|
|
unsigned __int64 cFinalizerTime;
|
|
unsigned __int64 compilerTime;
|
|
unsigned int hkssTimeSamples;
|
|
unsigned int callbackTimeSamples;
|
|
unsigned int gcTimeSamples;
|
|
unsigned int compilerTimeSamples;
|
|
unsigned int num_newuserdata;
|
|
unsigned int num_tablerehash;
|
|
unsigned int num_pushstring;
|
|
unsigned int num_pushcfunction;
|
|
unsigned int num_newtables;
|
|
};
|
|
|
|
struct RuntimeProfileData
|
|
{
|
|
__int64 stackDepth;
|
|
__int64 callbackDepth;
|
|
unsigned __int64 lastTimer;
|
|
RuntimeProfileData_Stats frameStats;
|
|
unsigned __int64 gcStartTime;
|
|
unsigned __int64 finalizerStartTime;
|
|
unsigned __int64 compilerStartTime;
|
|
unsigned __int64 compilerStartGCTime;
|
|
unsigned __int64 compilerStartGCFinalizerTime;
|
|
unsigned __int64 compilerCallbackStartTime;
|
|
__int64 compilerDepth;
|
|
void* outFile;
|
|
lua_State* rootState;
|
|
};
|
|
|
|
struct HksGlobal
|
|
{
|
|
MemoryManager m_memory;
|
|
GarbageCollector m_collector;
|
|
StringTable m_stringTable;
|
|
HksBytecodeSharingMode m_bytecodeSharingMode;
|
|
unsigned int m_tableVersionInitializer;
|
|
HksObject m_registry;
|
|
ProtoList m_protoList;
|
|
HashTable* m_structProtoByName;
|
|
ChunkList m_userDataList;
|
|
lua_State* m_root;
|
|
StaticStringCache m_staticStringCache;
|
|
void* m_debugger;
|
|
void* m_profiler;
|
|
RuntimeProfileData m_runProfilerData;
|
|
HksCompilerSettings m_compilerSettings;
|
|
int(*m_panicFunction)(lua_State*);
|
|
void* m_luaplusObjectList;
|
|
int m_heapAssertionFrequency;
|
|
int m_heapAssertionCount;
|
|
void (*m_logFunction)(lua_State*, const char*, ...);
|
|
HksBytecodeEndianness m_bytecodeDumpEndianness;
|
|
};
|
|
|
|
struct lua_State : ChunkHeader
|
|
{
|
|
HksGlobal* m_global;
|
|
CallStack m_callStack;
|
|
ApiStack m_apistack;
|
|
UpValue* pending;
|
|
HksObject globals;
|
|
HksObject m_cEnv;
|
|
CallSite* m_callsites;
|
|
int m_numberOfCCalls;
|
|
void* m_context;
|
|
InternString* m_name;
|
|
lua_State* m_nextState;
|
|
lua_State* m_nextStateStack;
|
|
Status m_status;
|
|
HksError m_error;
|
|
};
|
|
}
|
|
}
|