1352 lines
34 KiB
C++
1352 lines
34 KiB
C++
#pragma once
|
|
|
|
namespace game
|
|
{
|
|
namespace native
|
|
{
|
|
typedef float vec_t;
|
|
typedef vec_t vec2_t[2];
|
|
typedef vec_t vec3_t[3];
|
|
typedef vec_t vec4_t[4];
|
|
|
|
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 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 __int64 m_licenseID;
|
|
unsigned __int64 m_userID;
|
|
char m_username[64];
|
|
char m_sessionKey[24];
|
|
char m_usingHashMagicNumber[3];
|
|
char m_hash[4];
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
enum errorParm_t
|
|
{
|
|
ERR_FATAL = 0x0,
|
|
ERR_DROP = 0x1,
|
|
ERR_SERVERDISCONNECT = 0x2,
|
|
ERR_DISCONNECT = 0x3,
|
|
ERR_SCRIPT = 0x4,
|
|
ERR_SCRIPT_DROP = 0x5,
|
|
ERR_LOCALIZATION = 0x6,
|
|
ERR_MAPLOADERRORSUMMARY = 0x7
|
|
};
|
|
|
|
enum svscmd_type
|
|
{
|
|
SV_CMD_CAN_IGNORE,
|
|
SV_CMD_RELIABLE,
|
|
};
|
|
|
|
enum LocalClientNum_t
|
|
{
|
|
LOCAL_CLIENT_0 = 0,
|
|
LOCAL_CLIENT_1 = 1,
|
|
LOCAL_CLIENT_2 = 2,
|
|
LOCAL_CLIENT_3 = 3,
|
|
LOCAL_CLIENT_LAST = 3,
|
|
LOCAL_CLIENT_COUNT = 4,
|
|
};
|
|
|
|
enum fsMode_t
|
|
{
|
|
FS_READ,
|
|
FS_WRITE,
|
|
FS_APPEND,
|
|
FS_APPEND_SYNC,
|
|
};
|
|
|
|
enum msgLocErrType_t
|
|
{
|
|
LOCMSG_SAFE,
|
|
LOCMSG_NOERR,
|
|
};
|
|
|
|
struct cmd_function_t
|
|
{
|
|
cmd_function_t* next;
|
|
const char* name;
|
|
const char* autoCompleteDir;
|
|
const char* autoCompleteExt;
|
|
void (__cdecl *function)();
|
|
int flags;
|
|
};
|
|
|
|
struct CmdArgs
|
|
{
|
|
int nesting;
|
|
int localClientNum[8];
|
|
int controllerIndex[8];
|
|
int argc[8];
|
|
const char** argv[8];
|
|
};
|
|
|
|
struct msg_t
|
|
{
|
|
int overflowed;
|
|
int readOnly;
|
|
char* data;
|
|
char* splitData;
|
|
int maxsize;
|
|
int cursize;
|
|
int splitSize;
|
|
int readcount;
|
|
int bit;
|
|
int lastEntityRef;
|
|
};
|
|
|
|
struct XZoneInfo
|
|
{
|
|
const char* name;
|
|
int allocFlags;
|
|
int freeFlags;
|
|
};
|
|
|
|
struct scr_entref_raw
|
|
{
|
|
unsigned __int16 entnum;
|
|
unsigned __int16 classnum;
|
|
};
|
|
|
|
union scr_entref_t
|
|
{
|
|
unsigned int val;
|
|
scr_entref_raw raw;
|
|
};
|
|
|
|
typedef void (__cdecl * scr_call_t)(int entref);
|
|
|
|
typedef unsigned __int16 scr_string_t;
|
|
|
|
enum scriptType_e
|
|
{
|
|
SCRIPT_NONE = 0,
|
|
SCRIPT_OBJECT = 1,
|
|
SCRIPT_STRING = 2,
|
|
SCRIPT_ISTRING = 2,
|
|
SCRIPT_VECTOR = 4,
|
|
SCRIPT_FLOAT = 5,
|
|
SCRIPT_INTEGER = 6,
|
|
SCRIPT_CODEPOS = 7,
|
|
SCRIPT_END = 8,
|
|
// Custom
|
|
};
|
|
|
|
struct VariableStackBuffer
|
|
{
|
|
const char* pos;
|
|
unsigned __int16 size;
|
|
unsigned __int16 bufLen;
|
|
unsigned __int16 localId;
|
|
char time;
|
|
char buf[1];
|
|
};
|
|
|
|
union VariableUnion
|
|
{
|
|
int intValue;
|
|
float floatValue;
|
|
unsigned int stringValue;
|
|
const float* vectorValue;
|
|
const char* codePosValue;
|
|
unsigned int pointerValue;
|
|
VariableStackBuffer* stackValue;
|
|
unsigned int entityId;
|
|
};
|
|
|
|
struct VariableValue
|
|
{
|
|
VariableUnion u;
|
|
scriptType_e type;
|
|
};
|
|
|
|
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;
|
|
/*bool debugCode;
|
|
bool abort_on_error;
|
|
bool terminal_error;
|
|
bool block_execution;*/
|
|
unsigned int inparamcount;
|
|
unsigned int outparamcount;
|
|
unsigned int breakpointOutparamcount;
|
|
bool showError;
|
|
function_frame_t function_frame_start[32];
|
|
VariableValue stack[2048];
|
|
};
|
|
|
|
struct HunkUser
|
|
{
|
|
HunkUser* current;
|
|
HunkUser* next;
|
|
int maxSize;
|
|
int end;
|
|
int pos;
|
|
const char* name;
|
|
bool fixed;
|
|
int type;
|
|
unsigned char buf[1];
|
|
};
|
|
|
|
static_assert(sizeof(HunkUser) == 0x24);
|
|
|
|
struct scrVarPub_t
|
|
{
|
|
const char* fieldBuffer;
|
|
bool evaluate;
|
|
unsigned int time;
|
|
unsigned int timeArrayId;
|
|
unsigned int pauseArrayId;
|
|
unsigned int notifyArrayId;
|
|
unsigned int objectStackId;
|
|
unsigned int levelId;
|
|
unsigned int gameId;
|
|
unsigned int animId;
|
|
unsigned int freeEntList;
|
|
unsigned int tempVariable;
|
|
unsigned int numScriptValues[2];
|
|
bool bInited;
|
|
bool abort;
|
|
unsigned __int16 savecount;
|
|
unsigned __int16 savecountMark;
|
|
unsigned int entId;
|
|
unsigned int entFieldName;
|
|
unsigned int checksum;
|
|
HunkUser* programHunkUser;
|
|
HunkUser* canonicalStringHunkUser;
|
|
const char* programBuffer;
|
|
unsigned __int16 saveIdMap[36864];
|
|
unsigned __int16 saveIdMapRev[36864];
|
|
};
|
|
|
|
static_assert(sizeof(scrVarPub_t) == 0x24058);
|
|
|
|
struct scr_classStruct_t
|
|
{
|
|
unsigned __int16 id;
|
|
unsigned __int16 entArrayId;
|
|
char charId;
|
|
const char* name;
|
|
};
|
|
|
|
enum dvar_flags : std::uint16_t
|
|
{
|
|
DVAR_NONE = 0,
|
|
DVAR_ARCHIVE = 1 << 0,
|
|
DVAR_LATCH = 1 << 1,
|
|
DVAR_CHEAT = 1 << 2,
|
|
DVAR_CODINFO = 1 << 3,
|
|
DVAR_SCRIPTINFO = 1 << 4,
|
|
DVAR_SERVERINFO = 1 << 10,
|
|
DVAR_WRITEPROTECTED = 1 << 11,
|
|
DVAR_READONLY = 1 << 13,
|
|
DVAR_AUTOEXEC = 1 << 15,
|
|
}; // Incomplete
|
|
|
|
enum dvar_type : std::int8_t
|
|
{
|
|
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_FLOAT_3_COLOR = 0x9,
|
|
};
|
|
|
|
union DvarValue
|
|
{
|
|
bool enabled;
|
|
int integer;
|
|
unsigned int unsignedInt;
|
|
float value;
|
|
float vector[4];
|
|
const char* string;
|
|
char color[4];
|
|
};
|
|
|
|
static_assert(sizeof(DvarValue) == 0x10);
|
|
|
|
struct enum_limit
|
|
{
|
|
int stringCount;
|
|
const char** strings;
|
|
};
|
|
|
|
struct int_limit
|
|
{
|
|
int min;
|
|
int max;
|
|
};
|
|
|
|
struct float_limit
|
|
{
|
|
float min;
|
|
float max;
|
|
};
|
|
|
|
union DvarLimits
|
|
{
|
|
enum_limit enumeration;
|
|
int_limit integer;
|
|
float_limit value;
|
|
float_limit vector;
|
|
};
|
|
|
|
struct dvar_t
|
|
{
|
|
const char* name;
|
|
unsigned int flags;
|
|
char type;
|
|
bool modified;
|
|
DvarValue current;
|
|
DvarValue latched;
|
|
DvarValue reset;
|
|
DvarLimits domain;
|
|
bool (__cdecl *domainFunc)(dvar_t*, DvarValue);
|
|
dvar_t* hashNext;
|
|
};
|
|
|
|
struct Bounds
|
|
{
|
|
float midPoint[3];
|
|
float halfSize[3];
|
|
};
|
|
|
|
enum TraceHitType
|
|
{
|
|
TRACE_HITTYPE_NONE = 0x0,
|
|
TRACE_HITTYPE_ENTITY = 0x1,
|
|
TRACE_HITTYPE_DYNENT_MODEL = 0x2,
|
|
TRACE_HITTYPE_DYNENT_BRUSH = 0x3,
|
|
TRACE_HITTYPE_GLASS = 0x4,
|
|
};
|
|
|
|
struct trace_t
|
|
{
|
|
float fraction;
|
|
float normal[3];
|
|
int surfaceFlags;
|
|
int contents;
|
|
const char* material;
|
|
TraceHitType hitType;
|
|
unsigned __int16 hitId;
|
|
unsigned __int16 modelIndex;
|
|
unsigned __int16 partName;
|
|
unsigned __int16 partGroup;
|
|
bool allsolid;
|
|
bool startsolid;
|
|
bool walkable;
|
|
};
|
|
|
|
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;
|
|
trace_t groundTrace;
|
|
float impactSpeed;
|
|
float previous_origin[3];
|
|
float previous_velocity[3];
|
|
unsigned int holdrand;
|
|
};
|
|
|
|
static_assert(sizeof(pml_t) == 0x84);
|
|
|
|
struct usercmd_s
|
|
{
|
|
int serverTime;
|
|
int buttons;
|
|
int angles[3];
|
|
unsigned int weapon;
|
|
unsigned int offHand;
|
|
char forwardmove;
|
|
char rightmove;
|
|
unsigned __int16 airburstMarkDistance;
|
|
unsigned __int16 meleeChargeEnt;
|
|
unsigned char meleeChargeDist;
|
|
char selectedLoc[2];
|
|
unsigned char selectedLocAngle;
|
|
char remoteControlAngles[2];
|
|
char remoteControlMove[3];
|
|
};
|
|
|
|
static_assert(sizeof(usercmd_s) == 0x2C);
|
|
|
|
enum PlayerHandIndex
|
|
{
|
|
WEAPON_HAND_RIGHT = 0,
|
|
WEAPON_HAND_LEFT = 1,
|
|
NUM_WEAPON_HANDS = 2,
|
|
WEAPON_HAND_DEFAULT = 0,
|
|
};
|
|
|
|
struct Weapon_s
|
|
{
|
|
unsigned int weaponIdx : 8;
|
|
unsigned int weaponVariation : 4;
|
|
unsigned int weaponScopes : 3;
|
|
unsigned int weaponUnderBarrels : 2;
|
|
unsigned int weaponOthers : 4;
|
|
unsigned int scopeVariation : 3;
|
|
unsigned int padding : 8;
|
|
};
|
|
|
|
union Weapon
|
|
{
|
|
Weapon_s __s0;
|
|
unsigned int data;
|
|
};
|
|
|
|
static_assert(sizeof(Weapon) == 4);
|
|
|
|
struct weaponParms
|
|
{
|
|
float forward[3];
|
|
float right[3];
|
|
float up[3];
|
|
float muzzleTrace[3];
|
|
float gunForward[3];
|
|
Weapon weapon;
|
|
bool isAlternate;
|
|
const void* weapDef;
|
|
const void* weapCompleteDef;
|
|
};
|
|
|
|
static_assert(sizeof(weaponParms) == 0x4C);
|
|
|
|
enum hitLocation_t
|
|
{
|
|
HITLOC_NONE = 0x0,
|
|
HITLOC_HELMET = 0x1,
|
|
HITLOC_HEAD = 0x2,
|
|
HITLOC_NECK = 0x3,
|
|
HITLOC_TORSO_UPR = 0x4,
|
|
HITLOC_TORSO_LWR = 0x5,
|
|
HITLOC_R_ARM_UPR = 0x6,
|
|
HITLOC_L_ARM_UPR = 0x7,
|
|
HITLOC_R_ARM_LWR = 0x8,
|
|
HITLOC_L_ARM_LWR = 0x9,
|
|
HITLOC_R_HAND = 0xA,
|
|
HITLOC_L_HAND = 0xB,
|
|
HITLOC_R_LEG_UPR = 0xC,
|
|
HITLOC_L_LEG_UPR = 0xD,
|
|
HITLOC_R_LEG_LWR = 0xE,
|
|
HITLOC_L_LEG_LWR = 0xF,
|
|
HITLOC_R_FOOT = 0x10,
|
|
HITLOC_L_FOOT = 0x11,
|
|
HITLOC_GUN = 0x12,
|
|
HITLOC_SHIELD = 0x13,
|
|
|
|
HITLOC_NUM = 0x14,
|
|
};
|
|
|
|
enum ViewLockTypes
|
|
{
|
|
PLAYERVIEWLOCK_NONE = 0x0,
|
|
PLAYERVIEWLOCK_FULL = 0x1,
|
|
PLAYERVIEWLOCK_WEAPONJITTER = 0x2,
|
|
PLAYERVIEWLOCKCOUNT = 0x3,
|
|
};
|
|
|
|
enum playerStateFlag
|
|
{
|
|
PMF_PRONE = 0x1,
|
|
PMF_DUCKED = 0x2,
|
|
PMF_MANTLE = 0x4,
|
|
PMF_LADDER = 0x8,
|
|
PMF_SIGHT_AIMING = 0x10,
|
|
PMF_BACKWARDS_RUN = 0x20,
|
|
PMF_WALKING = 0x40,
|
|
PMF_TIME_HARDLANDING = 0x80,
|
|
PMF_TIME_KNOCKBACK = 0x100,
|
|
PMF_PRONEMOVE_OVERRIDDEN = 0x200,
|
|
PMF_RESPAWNED = 0x400,
|
|
PMF_FROZEN = 0x800,
|
|
PMF_LADDER_FALL = 0x1000,
|
|
PMF_JUMPING = 0x2000,
|
|
PMF_SPRINTING = 0x4000,
|
|
PMF_SHELLSHOCKED = 0x8000,
|
|
PMF_MELEE_CHARGE = 0x10000,
|
|
PMF_NO_SPRINT = 0x20000,
|
|
PMF_NO_JUMP = 0x40000,
|
|
PMF_REMOTE_CONTROLLING = 0x80000,
|
|
PMF_ANIM_SCRIPTED = 0x100000,
|
|
PMF_DIVING = 0x400000,
|
|
};
|
|
|
|
struct playerState_s
|
|
{
|
|
int commandTime;
|
|
int pm_type;
|
|
int pm_time;
|
|
int pm_flags;
|
|
int otherFlags;
|
|
int linkFlags;
|
|
int bobCycle;
|
|
float origin[3];
|
|
float velocity[3];
|
|
int grenadeTimeLeft;
|
|
int throwbackGrenadeOwner;
|
|
int throwbackGrenadeTimeLeft;
|
|
unsigned int throwbackWeapon;
|
|
int remoteEyesEnt;
|
|
int remoteEyesTagname;
|
|
int remoteControlEnt;
|
|
int remoteTurretEnt;
|
|
int foliageSoundTime;
|
|
int gravity;
|
|
int speed;
|
|
int delta_angles;
|
|
int groundEntityNum;
|
|
float vLadderVec[3];
|
|
int jumpTime;
|
|
float jumpOriginZ;
|
|
unsigned char __pad0[0x470];
|
|
unsigned int perks[0x2];
|
|
unsigned int perkSlots[0x9];
|
|
unsigned char __pad1[0x2DF4];
|
|
};
|
|
|
|
static_assert(sizeof(playerState_s) == 0x330C);
|
|
|
|
struct pmove_t
|
|
{
|
|
playerState_s* ps;
|
|
usercmd_s cmd;
|
|
usercmd_s oldcmd;
|
|
int tracemask;
|
|
int numtouch;
|
|
int touchents[32];
|
|
Bounds bounds;
|
|
float speed;
|
|
int proneChange;
|
|
float maxSprintTimeMultiplier;
|
|
bool mantleStarted;
|
|
float mantleEndPos[3];
|
|
int mantleDuration;
|
|
int viewChangeTime;
|
|
float viewChange;
|
|
float fTorsoPitch;
|
|
float fWaistPitch;
|
|
int remoteTurretFireTime;
|
|
int lastUpdateCMDServerTime;
|
|
unsigned char handler;
|
|
};
|
|
|
|
static_assert(sizeof(pmove_t) == 0x138);
|
|
|
|
enum sessionState_t
|
|
{
|
|
SESS_STATE_PLAYING = 0x0,
|
|
SESS_STATE_DEAD = 0x1,
|
|
SESS_STATE_SPECTATOR = 0x2,
|
|
SESS_STATE_INTERMISSION = 0x3,
|
|
};
|
|
|
|
enum clientConnected_t
|
|
{
|
|
CON_DISCONNECTED = 0x0,
|
|
CON_CONNECTING = 0x1,
|
|
CON_CONNECTED = 0x2,
|
|
};
|
|
|
|
struct clientSession_t
|
|
{
|
|
sessionState_t sessionState;
|
|
int forceSpectatorClient;
|
|
int killCamEntity;
|
|
int killCamLookAtEntity;
|
|
int status_icon;
|
|
int archiveTime;
|
|
int score;
|
|
int deaths;
|
|
int kills;
|
|
int assists;
|
|
unsigned __int16 scriptPersId;
|
|
clientConnected_t connected;
|
|
unsigned char __pad0[0x290];
|
|
};
|
|
|
|
static_assert(sizeof(clientSession_t) == 0x2C0);
|
|
|
|
struct gclient_s
|
|
{
|
|
playerState_s ps;
|
|
clientSession_t sess;
|
|
int flags;
|
|
unsigned char __pad0[0x3B0];
|
|
};
|
|
|
|
static_assert(sizeof(gclient_s) == 0x3980);
|
|
|
|
enum entityFlag
|
|
{
|
|
FL_GODMODE = 0x1,
|
|
FL_DEMI_GODMODE = 0x2,
|
|
FL_NOTARGET = 0x4,
|
|
FL_NO_KNOCKBACK = 0x8,
|
|
FL_NO_RADIUS_DAMAGE = 0x10,
|
|
FL_SUPPORTS_LINKTO = 0x1000,
|
|
FL_NO_AUTO_ANIM_UPDATE = 0x2000,
|
|
FL_GRENADE_TOUCH_DAMAGE = 0x4000,
|
|
FL_STABLE_MISSILES = 0x20000,
|
|
FL_REPEAT_ANIM_UPDATE = 0x40000,
|
|
FL_VEHICLE_TARGET = 0x80000,
|
|
FL_GROUND_ENT = 0x100000,
|
|
FL_CURSOR_HINT = 0x200000,
|
|
FL_MISSILE_ATTRACTOR = 0x800000,
|
|
FL_WEAPON_BEING_GRABBED = 0x1000000,
|
|
FL_DELETE = 0x2000000,
|
|
FL_BOUNCE = 0x4000000,
|
|
FL_MOVER_SLIDE = 0x8000000
|
|
};
|
|
|
|
enum entityType
|
|
{
|
|
ET_GENERAL,
|
|
ET_PLAYER,
|
|
ET_ITEM,
|
|
ET_MISSILE,
|
|
ET_INVISIBLE,
|
|
ET_SCRIPTMOVER,
|
|
ET_SOUND_BLEND,
|
|
ET_PRIMARY_LIGHT,
|
|
ET_TURRET,
|
|
ET_VEHICLE,
|
|
ET_VEHICLE_COLLMAP,
|
|
ET_VEHICLE_CORPSE,
|
|
ET_VEHICLE_SPAWNER,
|
|
ET_ACTOR,
|
|
ET_ACTOR_SPAWNER,
|
|
ET_ACTOR_CORPSE,
|
|
};
|
|
|
|
struct entityState_s
|
|
{
|
|
int number;
|
|
};
|
|
|
|
struct EntHandle
|
|
{
|
|
unsigned __int16 number;
|
|
unsigned __int16 infoIndex;
|
|
};
|
|
|
|
struct gentity_s
|
|
{
|
|
entityState_s s;
|
|
unsigned char __pad0[0x154];
|
|
gclient_s* client; // 0x158
|
|
unsigned char __pad1[0x28];
|
|
int flags;
|
|
int eventTime;
|
|
int clipmask;
|
|
int processedFrame;
|
|
EntHandle parent;
|
|
int nextthink;
|
|
int health;
|
|
int maxHealth;
|
|
int damage;
|
|
int count;
|
|
unsigned char __pad2[0xC8];
|
|
};
|
|
|
|
static_assert(sizeof(gentity_s) == 0x274);
|
|
|
|
struct missileFireParms
|
|
{
|
|
gentity_s* target;
|
|
float targetPosOrOffset[3];
|
|
float autoDetonateTime;
|
|
bool lockon;
|
|
bool topFire;
|
|
};
|
|
|
|
static_assert(sizeof(missileFireParms) == 0x18);
|
|
|
|
enum clientState_t
|
|
{
|
|
CS_FREE = 0,
|
|
CS_ZOMBIE = 1,
|
|
CS_RECONNECTING = 2,
|
|
CS_CONNECTED = 3,
|
|
CS_CLIENTLOADING = 4,
|
|
CS_ACTIVE = 5,
|
|
};
|
|
|
|
enum netsrc_t
|
|
{
|
|
NS_CLIENT1 = 0x0,
|
|
NS_CLIENT2 = 0x1,
|
|
NS_CLIENT3 = 0x2,
|
|
NS_CLIENT4 = 0x3,
|
|
NS_MAXCLIENTS = 0x4,
|
|
NS_SERVER = 0x4,
|
|
NS_PACKET = 0x5,
|
|
NS_INVALID_NETSRC = 0x6,
|
|
};
|
|
|
|
enum netadrtype_t
|
|
{
|
|
NA_BOT = 0x0,
|
|
NA_BAD = 0x1,
|
|
NA_LOOPBACK = 0x2,
|
|
NA_BROADCAST = 0x3,
|
|
NA_IP = 0x4,
|
|
};
|
|
|
|
struct netadr_s
|
|
{
|
|
netadrtype_t type;
|
|
unsigned char ip[4];
|
|
unsigned __int16 port;
|
|
unsigned char ipx[10];
|
|
unsigned int addrHandleIndex;
|
|
};
|
|
|
|
static_assert(sizeof(netadr_s) == 24);
|
|
|
|
struct DeferredMsg
|
|
{
|
|
netadr_s addr;
|
|
unsigned char data[1262];
|
|
int datalen;
|
|
};
|
|
|
|
static_assert(sizeof(DeferredMsg) == 0x50C);
|
|
|
|
struct DeferredQueue
|
|
{
|
|
DeferredMsg msgs[16];
|
|
volatile long get;
|
|
volatile long send;
|
|
};
|
|
|
|
static_assert(sizeof(DeferredQueue) == 0x50C8);
|
|
|
|
struct netProfileInfo_t // Unused
|
|
{
|
|
unsigned char __pad0[0x5E0];
|
|
};
|
|
|
|
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;
|
|
netProfileInfo_t prof;
|
|
};
|
|
|
|
static_assert(sizeof(netchan_t) == 0x630);
|
|
|
|
struct clientHeader_t
|
|
{
|
|
clientState_t state;
|
|
int sendAsActive;
|
|
int deltaMessage;
|
|
int rateDealyed;
|
|
int hasAckedBaselineData;
|
|
int hugeSnapshotSent;
|
|
netchan_t netchan;
|
|
float predictedOrigin[3];
|
|
int predictedOriginServerTime;
|
|
int migrationState;
|
|
float predictedVehicleOrigin[3];
|
|
int predictedVehicleServerTime;
|
|
};
|
|
|
|
static_assert(sizeof(clientHeader_t) == 0x66C);
|
|
|
|
enum objectiveState_t
|
|
{
|
|
OBJST_EMPTY = 0x0,
|
|
OBJST_ACTIVE = 0x1,
|
|
OBJST_INVISIBLE = 0x2,
|
|
OBJST_DONE = 0x3,
|
|
OBJST_CURRENT = 0x4,
|
|
OBJST_FAILED = 0x5,
|
|
OBJST_NUMSTATES = 0x6,
|
|
};
|
|
|
|
struct objective_t
|
|
{
|
|
objectiveState_t state;
|
|
float origin[3];
|
|
int entNum;
|
|
int teamNum;
|
|
int clientNum;
|
|
int invertVisibilityByClientNum;
|
|
int icon;
|
|
};
|
|
|
|
static_assert(sizeof(objective_t) == 0x24);
|
|
|
|
struct level_locals_t
|
|
{
|
|
gclient_s* clients;
|
|
gentity_s* gentities;
|
|
int num_entities;
|
|
gentity_s* firstFreeEnt;
|
|
gentity_s* lastFreeEnt;
|
|
void* turrets;
|
|
int initializing;
|
|
int clientIsSpawning;
|
|
objective_t objectives[32];
|
|
int maxclients;
|
|
int framenum;
|
|
int time;
|
|
unsigned char __pad0[0x2BD4];
|
|
};
|
|
|
|
static_assert(sizeof(level_locals_t) == 0x3080);
|
|
|
|
namespace mp
|
|
{
|
|
struct client_t
|
|
{
|
|
clientHeader_t header;
|
|
const char* dropReason; // 0x66C
|
|
char userinfo[1024]; // 0x670
|
|
unsigned char __pad0[0x209B8];
|
|
gentity_s* gentity; // 0x21428
|
|
char name[16]; // 0x2142C
|
|
unsigned char __pad1[0x20876];
|
|
unsigned __int16 scriptId; // 0x41CB2
|
|
int bIsTestClient; // 0x41CB4
|
|
int serverId; // 0x41CB8
|
|
unsigned char __pad2[0x369DC];
|
|
};
|
|
|
|
static_assert(sizeof(client_t) == 0x78698);
|
|
}
|
|
|
|
namespace dedi
|
|
{
|
|
struct client_t
|
|
{
|
|
clientHeader_t header;
|
|
const char* dropReason;
|
|
char userinfo[1024];
|
|
unsigned char __pad0[0x4123E];
|
|
unsigned __int16 scriptId;
|
|
int bIsTestClient; // 0x41CB0
|
|
int serverId;
|
|
unsigned char __pad1[0x369D8];
|
|
};
|
|
|
|
static_assert(sizeof(dedi::client_t) == 0x78690);
|
|
}
|
|
|
|
namespace sp
|
|
{
|
|
struct usercmd_s
|
|
{
|
|
int serverTime;
|
|
int buttons;
|
|
int angles[3];
|
|
Weapon weapon;
|
|
Weapon offHand;
|
|
char forwardmove;
|
|
char rightmove;
|
|
unsigned char upmove;
|
|
unsigned char downmove;
|
|
char pitchmove;
|
|
char yawmove;
|
|
float gunPitch;
|
|
float gunYaw;
|
|
float gunXOfs;
|
|
float gunYOfs;
|
|
float gunZOfs;
|
|
short meleeChargeYaw;
|
|
unsigned char meleeChargeDist;
|
|
char selectedLoc[2];
|
|
unsigned char selectedLocAngle;
|
|
char remoteControlAngles[2];
|
|
};
|
|
|
|
static_assert(sizeof(usercmd_s) == 0x40);
|
|
|
|
struct clientPersistent_t
|
|
{
|
|
usercmd_s cmd;
|
|
usercmd_s oldcmd;
|
|
int maxHealth;
|
|
float moveSpeedScaleMultiplier;
|
|
int motionTrackerEnabled;
|
|
char playerName[0x20];
|
|
};
|
|
|
|
static_assert(sizeof(clientPersistent_t) == 0xAC);
|
|
|
|
struct playerState_s
|
|
{
|
|
int commandTime;
|
|
int pm_type;
|
|
int pm_time;
|
|
int pm_flags;
|
|
int otherFlags;
|
|
int linkFlags;
|
|
int bobCycle;
|
|
float origin[3];
|
|
float velocity[3];
|
|
unsigned char __pad0[0xAD24];
|
|
};
|
|
|
|
static_assert(sizeof(playerState_s) == 0xAD58);
|
|
|
|
struct gclient_s
|
|
{
|
|
playerState_s ps;
|
|
clientPersistent_t pers;
|
|
int flags;
|
|
unsigned char __pad1[0x2BC];
|
|
};
|
|
|
|
static_assert(sizeof(gclient_s) == 0xB0C4);
|
|
|
|
struct entityState_s
|
|
{
|
|
int eType;
|
|
unsigned char __pad0[0x80];
|
|
int number;
|
|
unsigned char __pad1[0x28];
|
|
};
|
|
|
|
static_assert(sizeof(entityState_s) == 0xB0);
|
|
|
|
struct entityShared_t
|
|
{
|
|
unsigned char isLinked;
|
|
unsigned char modelType;
|
|
unsigned char svFlags;
|
|
unsigned char eventType;
|
|
unsigned char isInUse;
|
|
Bounds box;
|
|
int contents;
|
|
Bounds absBox;
|
|
float currentOrigin[3];
|
|
float currentAngles[3];
|
|
EntHandle ownerNum;
|
|
int eventTime;
|
|
};
|
|
|
|
static_assert(sizeof(entityShared_t) == 0x5C);
|
|
|
|
struct gentity_s
|
|
{
|
|
entityState_s s;
|
|
entityShared_t r;
|
|
gclient_s* client; // 0x10C
|
|
unsigned char __pad0[0x2C];
|
|
int flags;
|
|
int clipmask;
|
|
int processedFrame;
|
|
EntHandle parent;
|
|
int nextthink;
|
|
int health;
|
|
int maxHealth;
|
|
int damage;
|
|
unsigned char __pad1[0x114];
|
|
};
|
|
|
|
static_assert(sizeof(gentity_s) == 0x270);
|
|
}
|
|
}
|
|
}
|