/*==LICENSE==* CyanWorlds.com Engine - MMOG client, server and tools Copyright (C) 2011 Cyan Worlds, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Additional permissions under GNU GPL version 3 section 7 If you modify this Program, or any covered work, by linking or combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK, NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK (or a modified version of those libraries), containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA, PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the licensors of this Program grant you additional permission to convey the resulting work. Corresponding Source for a non-source form of such a combination shall include the source code for the parts of OpenSSL and IJG JPEG Library used as well as that of the covered work. You can contact Cyan Worlds, Inc. by email legal@cyan.com or by snail mail at: Cyan Worlds, Inc. 14617 N Newport Hwy Mead, WA 99021 *==LICENSE==*/ /***************************************************************************** * * $/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/pnNpCli2Auth.h * ***/ #ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETPROTOCOL_PRIVATE_PROTOCOLS_PNNPCLI2AUTH_H #error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetProtocol/Private/Protocols/pnNpCli2Auth.h included more than once" #endif #define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETPROTOCOL_PRIVATE_PROTOCOLS_PNNPCLI2AUTH_H // kNetProtocolCli2Auth messages (must be <= (word)-1) enum { // Global kCli2Auth_PingRequest, // Client kCli2Auth_ClientRegisterRequest, kCli2Auth_ClientSetCCRLevel, // Account kCli2Auth_AcctLoginRequest, kCli2Auth_AcctSetEulaVersion, kCli2Auth_AcctSetDataRequest, kCli2Auth_AcctSetPlayerRequest, kCli2Auth_AcctCreateRequest, kCli2Auth_AcctChangePasswordRequest, kCli2Auth_AcctSetRolesRequest, kCli2Auth_AcctSetBillingTypeRequest, kCli2Auth_AcctActivateRequest, kCli2Auth_AcctCreateFromKeyRequest, // Player kCli2Auth_PlayerDeleteRequest, kCli2Auth_PlayerUndeleteRequest, kCli2Auth_PlayerSelectRequest, kCli2Auth_PlayerRenameRequest, kCli2Auth_PlayerCreateRequest, kCli2Auth_PlayerSetStatus, kCli2Auth_PlayerChat, kCli2Auth_UpgradeVisitorRequest, kCli2Auth_SetPlayerBanStatusRequest, kCli2Auth_KickPlayer, kCli2Auth_ChangePlayerNameRequest, kCli2Auth_SendFriendInviteRequest, // Vault kCli2Auth_VaultNodeCreate, kCli2Auth_VaultNodeFetch, kCli2Auth_VaultNodeSave, kCli2Auth_VaultNodeDelete, kCli2Auth_VaultNodeAdd, kCli2Auth_VaultNodeRemove, kCli2Auth_VaultFetchNodeRefs, kCli2Auth_VaultInitAgeRequest, kCli2Auth_VaultNodeFind, kCli2Auth_VaultSetSeen, kCli2Auth_VaultSendNode, // Ages kCli2Auth_AgeRequest, // File-related kCli2Auth_FileListRequest, kCli2Auth_FileDownloadRequest, kCli2Auth_FileDownloadChunkAck, // Game kCli2Auth_PropagateBuffer, // Public ages kCli2Auth_GetPublicAgeList, kCli2Auth_SetAgePublic, // Log Messages kCli2Auth_LogPythonTraceback, kCli2Auth_LogStackDump, kCli2Auth_LogClientDebuggerConnect, // Score kCli2Auth_ScoreCreate, kCli2Auth_ScoreDelete, kCli2Auth_ScoreGetScores, kCli2Auth_ScoreAddPoints, kCli2Auth_ScoreTransferPoints, kCli2Auth_ScoreSetPoints, kCli2Auth_ScoreGetRanks, kCli2Auth_AccountExistsRequest, kNumCli2AuthMessages }; COMPILER_ASSERT_HEADER(Cli2Auth, kNumCli2AuthMessages <= (word)-1); enum { // Global kAuth2Cli_PingReply, kAuth2Cli_ServerAddr, kAuth2Cli_NotifyNewBuild, // Client kAuth2Cli_ClientRegisterReply, // Account kAuth2Cli_AcctLoginReply, kAuth2Cli_AcctData, kAuth2Cli_AcctPlayerInfo, kAuth2Cli_AcctSetPlayerReply, kAuth2Cli_AcctCreateReply, kAuth2Cli_AcctChangePasswordReply, kAuth2Cli_AcctSetRolesReply, kAuth2Cli_AcctSetBillingTypeReply, kAuth2Cli_AcctActivateReply, kAuth2Cli_AcctCreateFromKeyReply, // Player kAuth2Cli_PlayerList, kAuth2Cli_PlayerChat, kAuth2Cli_PlayerCreateReply, kAuth2Cli_PlayerDeleteReply, kAuth2Cli_UpgradeVisitorReply, kAuth2Cli_SetPlayerBanStatusReply, kAuth2Cli_ChangePlayerNameReply, kAuth2Cli_SendFriendInviteReply, // Friends kAuth2Cli_FriendNotify, // Vault kAuth2Cli_VaultNodeCreated, kAuth2Cli_VaultNodeFetched, kAuth2Cli_VaultNodeChanged, kAuth2Cli_VaultNodeDeleted, kAuth2Cli_VaultNodeAdded, kAuth2Cli_VaultNodeRemoved, kAuth2Cli_VaultNodeRefsFetched, kAuth2Cli_VaultInitAgeReply, kAuth2Cli_VaultNodeFindReply, kAuth2Cli_VaultSaveNodeReply, kAuth2Cli_VaultAddNodeReply, kAuth2Cli_VaultRemoveNodeReply, // Ages kAuth2Cli_AgeReply, // File-related kAuth2Cli_FileListReply, kAuth2Cli_FileDownloadChunk, // Game kAuth2Cli_PropagateBuffer, // Admin kAuth2Cli_KickedOff, // Public ages kAuth2Cli_PublicAgeList, // Score kAuth2Cli_ScoreCreateReply, kAuth2Cli_ScoreDeleteReply, kAuth2Cli_ScoreGetScoresReply, kAuth2Cli_ScoreAddPointsReply, kAuth2Cli_ScoreTransferPointsReply, kAuth2Cli_ScoreSetPointsReply, kAuth2Cli_ScoreGetRanksReply, kAuth2Cli_AccountExistsReply, kNumAuth2CliMessages }; COMPILER_ASSERT_HEADER(Cli2Auth, kNumAuth2CliMessages <= (word)-1); //============================================================================ // BEGIN PACKED DATA STRUCTURES //============================================================================ #include /***************************************************************************** * * Cli2Auth connect packet * ***/ struct Cli2Auth_ConnData { dword dataBytes; Uuid token; }; struct Cli2Auth_Connect { AsyncSocketConnectPacket hdr; Cli2Auth_ConnData data; }; /***************************************************************************** * * Cli2Auth message structures * ***/ // PingRequest extern const NetMsg kNetMsg_Cli2Auth_PingRequest; struct Cli2Auth_PingRequest { dword messageId; dword pingTimeMs; dword transId; dword payloadBytes; byte payload[1]; // [payloadBytes] }; // ClientRegisterRequest extern const NetMsg kNetMsg_Cli2Auth_ClientRegisterRequest; struct Cli2Auth_ClientRegisterRequest { dword messageId; dword buildId; }; // AccountExists extern const NetMsg kNetMsg_Cli2Auth_AccountExistsRequest; struct Cli2Auth_AccountExistsRequest { dword messageId; dword transId; wchar accountName[kMaxAccountNameLength]; }; // LoginRequest extern const NetMsg kNetMsg_Cli2Auth_AcctLoginRequest; struct Cli2Auth_AcctLoginRequest { dword messageId; dword transId; dword clientChallenge; wchar acctName[kMaxAccountNameLength]; ShaDigest challengeHash; wchar authToken[kMaxPublisherAuthKeyLength]; wchar os[kMaxGTOSIdLength]; }; // AgeRequest extern const NetMsg kNetMsg_Cli2Auth_AgeRequest; struct Cli2Auth_AgeRequest { dword messageId; dword transId; wchar ageName[kMaxAgeNameLength]; Uuid ageUuid; }; // AcctCreateRequest extern const NetMsg kNetMsg_Cli2Auth_AcctCreateRequest; struct Cli2Auth_AcctCreateRequest { dword messageId; dword transId; wchar accountName[kMaxAccountNameLength]; ShaDigest namePassHash; dword accountFlags; dword billingType; }; // AcctCreateFromKeyRequest extern const NetMsg kNetMsg_Cli2Auth_AcctCreateFromKeyRequest; struct Cli2Auth_AcctCreateFromKeyRequest { dword messageId; dword transId; wchar accountName[kMaxAccountNameLength]; ShaDigest namePassHash; Uuid key; dword billingType; }; // CreatePlayerRequest extern const NetMsg kNetMsg_Cli2Auth_PlayerCreateRequest; struct Cli2Auth_PlayerCreateRequest { dword messageId; dword transId; wchar playerName[kMaxPlayerNameLength]; wchar avatarShape[MAX_PATH]; wchar friendInvite[MAX_PATH]; }; extern const NetMsg kNetMsg_Cli2Auth_PlayerDeleteRequest; struct Cli2Auth_PlayerDeleteRequest { dword messageId; dword transId; dword playerId; }; extern const NetMsg kNetMsg_Cli2Auth_UpgradeVisitorRequest; struct Cli2Auth_UpgradeVisitorRequest { dword messageId; dword transId; dword playerId; }; // SetPlayerRequest extern const NetMsg kNetMsg_Cli2Auth_AcctSetPlayerRequest; struct Cli2Auth_AcctSetPlayerRequest { dword messageId; dword transId; dword playerInt; }; // ChangePasswordRequest extern const NetMsg kNetMsg_Cli2Auth_AcctChangePasswordRequest; struct Cli2Auth_AcctChangePasswordRequest { dword messageId; dword transId; wchar accountName[kMaxAccountNameLength]; ShaDigest namePassHash; }; // AcctSetRolesRequest extern const NetMsg kNetMsg_Cli2Auth_AcctSetRolesRequest; struct Cli2Auth_AcctSetRolesRequest { dword messageId; dword transId; wchar accountName[kMaxAccountNameLength]; dword accountFlags; }; // AcctSetBillingTypeRequest extern const NetMsg kNetMsg_Cli2Auth_AcctSetBillingTypeRequest; struct Cli2Auth_AcctSetBillingTypeRequest { dword messageId; dword transId; wchar accountName[kMaxAccountNameLength]; dword billingType; }; // AcctActivateRequest extern const NetMsg kNetMsg_Cli2Auth_AcctActivateRequest; struct Cli2Auth_AcctActivateRequest { dword messageId; dword transId; Uuid activationKey; }; // FileListRequest extern const NetMsg kNetMsg_Cli2Auth_FileListRequest; struct Cli2Auth_FileListRequest { dword messageId; dword transId; wchar directory[MAX_PATH]; wchar ext[MAX_EXT]; }; // FileDownloadRequest extern const NetMsg kNetMsg_Cli2Auth_FileDownloadRequest; struct Cli2Auth_FileDownloadRequest { dword messageId; dword transId; wchar filename[MAX_PATH]; }; // FileDownloadChunkAck extern const NetMsg kNetMsg_Cli2Auth_FileDownloadChunkAck; struct Cli2Auth_FileDownloadChunkAck { dword messageId; dword transId; }; // VaultFetchNodeRefs extern const NetMsg kNetMsg_Cli2Auth_VaultFetchNodeRefs; struct Cli2Auth_VaultFetchNodeRefs { dword messageId; dword transId; dword nodeId; }; // VaultNodeAdd extern const NetMsg kNetMsg_Cli2Auth_VaultNodeAdd; struct Cli2Auth_VaultNodeAdd { dword messageId; dword transId; dword parentId; dword childId; dword ownerId; }; // VaultNodeRemove extern const NetMsg kNetMsg_Cli2Auth_VaultNodeRemove; struct Cli2Auth_VaultNodeRemove { dword messageId; dword transId; dword parentId; dword childId; }; // VaultNodeSave extern const NetMsg kNetMsg_Cli2Auth_VaultNodeSave; struct Cli2Auth_VaultNodeSave { dword messageId; dword transId; dword nodeId; Uuid revisionId; dword nodeBytes; byte nodeBuffer[1]; }; // VaultNodeCreate extern const NetMsg kNetMsg_Cli2Auth_VaultNodeCreate; struct Cli2Auth_VaultNodeCreate { dword messageId; dword transId; dword nodeBytes; byte nodeBuffer[1]; }; // VaultNodeFetch extern const NetMsg kNetMsg_Cli2Auth_VaultNodeFetch; struct Cli2Auth_VaultNodeFetch { dword messageId; dword transId; dword nodeId; }; // VaultInitAgeRequest extern const NetMsg kNetMsg_Cli2Auth_VaultInitAgeRequest; struct Cli2Auth_VaultInitAgeRequest { dword messageId; dword transId; Uuid ageInstId; Uuid parentAgeInstId; wchar ageFilename[MAX_PATH]; wchar ageInstName[MAX_PATH]; wchar ageUserName[MAX_PATH]; wchar ageDesc[1024]; dword ageSequenceNumber; dword ageLanguage; }; // VaultNodeFind extern const NetMsg kNetMsg_Cli2Auth_VaultNodeFind; struct Cli2Auth_VaultNodeFind { dword messageId; dword transId; dword nodeBytes; byte nodeBuffer[1]; }; // VaultSetSeen extern const NetMsg kNetMsg_Cli2Auth_VaultSetSeen; struct Cli2Auth_VaultSetSeen { dword messageId; dword parentId; dword childId; byte seen; }; // VaultSendNode extern const NetMsg kNetMsg_Cli2Auth_VaultSendNode; struct Cli2Auth_VaultSendNode { dword messageId; dword srcNodeId; dword dstPlayerId; }; // GetPublicAgeList extern const NetMsg kNetMsg_Cli2Auth_GetPublicAgeList; struct Cli2Auth_GetPublicAgeList { dword messageId; dword transId; wchar ageFilename[kMaxAgeNameLength]; }; extern const NetMsg kNetMsg_Cli2Auth_SetAgePublic; struct Cli2Auth_SetAgePublic { dword messageId; dword ageInfoId; byte publicOrNot; }; // PropagateBuffer extern const NetMsg kNetMsg_Cli2Auth_PropagateBuffer; struct Cli2Auth_PropagateBuffer { dword messageId; dword type; dword bytes; byte buffer[1]; // [bytes], actually // no more fields }; extern const NetMsg kNetMsg_Cli2Auth_ClientSetCCRLevel; struct Cli2Auth_ClientSetCCRLevel { dword messageId; dword ccrLevel; }; extern const NetMsg kNetMsg_Cli2Auth_LogPythonTraceback; struct Cli2Auth_LogPythonTraceback { dword messageId; wchar traceback[1024]; }; extern const NetMsg kNetMsg_Cli2Auth_LogStackDump; struct Cli2Auth_LogStackDump { dword messageId; wchar stackdump[1024]; }; extern const NetMsg kNetMsg_Cli2Auth_LogClientDebuggerConnect; struct Cli2Auth_LogClientDebuggerConnect { dword messageId; }; extern const NetMsg kNetMsg_Cli2Auth_SetPlayerBanStatusRequest; struct Cli2Auth_SetPlayerBanStatusRequest { dword messageId; dword transId; dword playerId; dword banned; }; extern const NetMsg kNetMsg_Cli2Auth_KickPlayer; struct Cli2Auth_KickPlayer { dword messageId; dword playerId; }; extern const NetMsg kNetMsg_Cli2Auth_ChangePlayerNameRequest; struct Cli2Auth_ChangePlayerNameRequest { dword messageId; dword transId; dword playerId; wchar newName[kMaxPlayerNameLength]; }; extern const NetMsg kNetMsg_Cli2Auth_SendFriendInviteRequest; struct Cli2Auth_SendFriendInviteRequest { dword messageId; dword transId; Uuid inviteUuid; wchar emailAddress[kMaxEmailAddressLength]; wchar toName[kMaxPlayerNameLength]; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreCreate; struct Cli2Auth_ScoreCreate { dword messageId; dword transId; dword ownerId; wchar gameName[kMaxGameScoreNameLength]; dword gameType; dword scoreValue; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreDelete; struct Cli2Auth_ScoreDelete { dword messageId; dword transId; dword scoreId; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreGetScores; struct Cli2Auth_ScoreGetScores { dword messageId; dword transId; dword ownerId; wchar gameName[kMaxGameScoreNameLength]; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreAddPoints; struct Cli2Auth_ScoreAddPoints { dword messageId; dword transId; dword scoreId; dword numPoints; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreTransferPoints; struct Cli2Auth_ScoreTransferPoints { dword messageId; dword transId; dword srcScoreId; dword destScoreId; dword numPoints; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreSetPoints; struct Cli2Auth_ScoreSetPoints { dword messageId; dword transId; dword scoreId; dword numPoints; }; extern const NetMsg kNetMsg_Cli2Auth_ScoreGetRanks; struct Cli2Auth_ScoreGetRanks { dword messageId; dword transId; dword ownerId; dword scoreGroup; dword parentFolderId; wchar gameName[kMaxGameScoreNameLength]; dword timePeriod; dword numResults; dword pageNumber; dword sortDesc; }; /***************************************************************************** * * Auth2Cli message structures * ***/ // PingReply extern const NetMsg kNetMsg_Auth2Cli_PingReply; struct Auth2Cli_PingReply { dword messageId; dword pingTimeMs; dword transId; dword payloadBytes; byte payload[1]; // [payloadBytes] }; // ClientRegisterReply extern const NetMsg kNetMsg_Auth2Cli_ClientRegisterReply; struct Auth2Cli_ClientRegisterReply { dword messageId; dword serverChallenge; }; // AccountExists extern const NetMsg kNetMsg_Auth2Cli_AccountExistsReply; struct Auth2Cli_AccountExistsReply { dword messageId; dword transId; ENetError result; byte exists; }; // ServerAddr extern const NetMsg kNetMsg_Auth2Cli_ServerAddr; struct Auth2Cli_ServerAddr { dword messageId; NetAddressNode srvAddr; Uuid token; }; extern const NetMsg kNetMsg_Auth2Cli_NotifyNewBuild; struct Auth2Cli_NotifyNewBuild { dword foo; // msgs must have at least one field }; // AcctPlayerInfo extern const NetMsg kNetMsg_Auth2Cli_AcctPlayerInfo; struct Auth2Cli_AcctPlayerInfo { dword messageId; dword transId; dword playerInt; wchar playerName[kMaxPlayerNameLength]; wchar avatarShape[kMaxVaultNodeStringLength]; dword explorer; }; // LoginReply extern const NetMsg kNetMsg_Auth2Cli_AcctLoginReply; struct Auth2Cli_AcctLoginReply { dword messageId; dword transId; ENetError result; Uuid accountId; dword accountFlags; dword billingType; dword encryptionKey[4]; }; // AgeReply extern const NetMsg kNetMsg_Auth2Cli_AgeReply; struct Auth2Cli_AgeReply { dword messageId; dword transId; ENetError result; dword ageMcpId; Uuid ageInstId; dword ageVaultId; NetAddressNode gameSrvNode; }; // AcctCreateReply extern const NetMsg kNetMsg_Auth2Cli_AcctCreateReply; struct Auth2Cli_AcctCreateReply { dword messageId; dword transId; ENetError result; Uuid accountId; }; // AcctCreateFromKeyReply extern const NetMsg kNetMsg_Auth2Cli_AcctCreateFromKeyReply; struct Auth2Cli_AcctCreateFromKeyReply { dword messageId; dword transId; ENetError result; Uuid accountId; Uuid activationKey; }; // CreatePlayerReply extern const NetMsg kNetMsg_Auth2Cli_PlayerCreateReply; struct Auth2Cli_PlayerCreateReply { dword messageId; dword transId; ENetError result; dword playerInt; dword explorer; wchar playerName[kMaxPlayerNameLength]; wchar avatarShape[kMaxVaultNodeStringLength]; }; // DeletePlayerReply extern const NetMsg kNetMsg_Auth2Cli_PlayerDeleteReply; struct Auth2Cli_PlayerDeleteReply { dword messageId; dword transId; ENetError result; }; // DeletePlayerReply extern const NetMsg kNetMsg_Auth2Cli_UpgradeVisitorReply; struct Auth2Cli_UpgradeVisitorReply { dword messageId; dword transId; ENetError result; }; // SetPlayerReply extern const NetMsg kNetMsg_Auth2Cli_AcctSetPlayerReply; struct Auth2Cli_AcctSetPlayerReply { dword messageId; dword transId; ENetError result; }; // AcctChangePasswordReply extern const NetMsg kNetMsg_Auth2Cli_AcctChangePasswordReply; struct Auth2Cli_AcctChangePasswordReply { dword messageId; dword transId; ENetError result; }; // AcctSetRolesReply extern const NetMsg kNetMsg_Auth2Cli_AcctSetRolesReply; struct Auth2Cli_AcctSetRolesReply { dword messageId; dword transId; ENetError result; }; // AcctSetBillingTypeReply extern const NetMsg kNetMsg_Auth2Cli_AcctSetBillingTypeReply; struct Auth2Cli_AcctSetBillingTypeReply { dword messageId; dword transId; ENetError result; }; // AcctActivateReply extern const NetMsg kNetMsg_Auth2Cli_AcctActivateReply; struct Auth2Cli_AcctActivateReply { dword messageId; dword transId; ENetError result; }; // FileListReply extern const NetMsg kNetMsg_Auth2Cli_FileListReply; struct Auth2Cli_FileListReply { dword messageId; dword transId; ENetError result; dword wcharCount; wchar fileData[1]; // [wcharCount], actually // no more fields }; // FileDownloadChunk extern const NetMsg kNetMsg_Auth2Cli_FileDownloadChunk; struct Auth2Cli_FileDownloadChunk { dword messageId; dword transId; ENetError result; dword fileSize; dword chunkOffset; dword chunkSize; byte chunkData[1]; // [chunkSize], actually // no more fields }; // KickedOff extern const NetMsg kNetMsg_Auth2Cli_KickedOff; struct Auth2Cli_KickedOff { dword messageId; ENetError reason; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeRefsFetched; struct Auth2Cli_VaultNodeRefsFetched { dword messageId; dword transId; ENetError result; dword refCount; NetVaultNodeRef refs[1]; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeCreated; struct Auth2Cli_VaultNodeCreated { dword messageId; dword transId; ENetError result; dword nodeId; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeFetched; struct Auth2Cli_VaultNodeFetched { dword messageId; dword transId; ENetError result; dword nodeBytes; byte nodeBuffer[1]; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeChanged; struct Auth2Cli_VaultNodeChanged { dword messageId; dword nodeId; Uuid revisionId; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeAdded; struct Auth2Cli_VaultNodeAdded { dword messageId; dword parentId; dword childId; dword ownerId; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeRemoved; struct Auth2Cli_VaultNodeRemoved { dword messageId; dword parentId; dword childId; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeDeleted; struct Auth2Cli_VaultNodeDeleted { dword messageId; dword nodeId; }; extern const NetMsg kNetMsg_Auth2Cli_VaultSaveNodeReply; struct Auth2Cli_VaultSaveNodeReply { dword messageId; dword transId; ENetError result; }; extern const NetMsg kNetMsg_Auth2Cli_VaultAddNodeReply; struct Auth2Cli_VaultAddNodeReply { dword messageId; dword transId; ENetError result; }; extern const NetMsg kNetMsg_Auth2Cli_VaultRemoveNodeReply; struct Auth2Cli_VaultRemoveNodeReply { dword messageId; dword transId; ENetError result; }; extern const NetMsg kNetMsg_Auth2Cli_VaultInitAgeReply; struct Auth2Cli_VaultInitAgeReply { dword messageId; dword transId; ENetError result; dword ageVaultId; dword ageInfoVaultId; }; extern const NetMsg kNetMsg_Auth2Cli_VaultNodeFindReply; struct Auth2Cli_VaultNodeFindReply { dword messageId; dword transId; ENetError result; dword nodeIdCount; dword nodeIds[1]; }; // PublicAgeList extern const NetMsg kNetMsg_Auth2Cli_PublicAgeList; struct Auth2Cli_PublicAgeList { dword messageId; dword transId; ENetError result; dword ageCount; NetAgeInfo ages[1]; // [ageCount], actually }; // PropagateBuffer extern const NetMsg kNetMsg_Auth2Cli_PropagateBuffer; struct Auth2Cli_PropagateBuffer { dword messageId; dword type; dword bytes; byte buffer[1]; // [bytes], actually // no more fields }; // SetPlayerBanStatusReply extern const NetMsg kNetMsg_Auth2Cli_SetPlayerBanStatusReply; struct Auth2Cli_SetPlayerBanStatusReply { dword messageId; dword transId; ENetError result; }; // ChangePlayerNameReply extern const NetMsg kNetMsg_Auth2Cli_ChangePlayerNameReply; struct Auth2Cli_ChangePlayerNameReply { dword messageId; dword transId; ENetError result; }; // SendFriendInviteReply extern const NetMsg kNetMsg_Auth2Cli_SendFriendInviteReply; struct Auth2Cli_SendFriendInviteReply { dword messageId; dword transId; ENetError result; }; // ScoreCreateReply extern const NetMsg kNetMsg_Auth2Cli_ScoreCreateReply; struct Auth2Cli_ScoreCreateReply { dword messageId; dword transId; ENetError result; dword scoreId; dword createdTime; }; // ScoreDeleteReply extern const NetMsg kNetMsg_Auth2Cli_ScoreDeleteReply; struct Auth2Cli_ScoreDeleteReply { dword messageId; dword transId; ENetError result; }; // ScoreGetScoresReply extern const NetMsg kNetMsg_Auth2Cli_ScoreGetScoresReply; struct Auth2Cli_ScoreGetScoresReply { dword messageId; dword transId; ENetError result; dword scoreCount; dword byteCount; byte buffer[1]; // [byteCount], actually // no more fields }; // ScoreAddPoints extern const NetMsg kNetMsg_Auth2Cli_ScoreAddPointsReply; struct Auth2Cli_ScoreAddPointsReply { dword messageId; dword transId; ENetError result; }; // ScoreTransferPoints extern const NetMsg kNetMsg_Auth2Cli_ScoreTransferPointsReply; struct Auth2Cli_ScoreTransferPointsReply { dword messageId; dword transId; ENetError result; }; // ScoreSetPoints extern const NetMsg kNetMsg_Auth2Cli_ScoreSetPointsReply; struct Auth2Cli_ScoreSetPointsReply { dword messageId; dword transId; ENetError result; }; // ScoreGetRanksReply extern const NetMsg kNetMsg_Auth2Cli_ScoreGetRanksReply; struct Auth2Cli_ScoreGetRanksReply { dword messageId; dword transId; ENetError result; dword rankCount; dword byteCount; byte buffer[1]; // [byteCount], actually // no more fields }; //============================================================================ // END PACKED DATA STRUCTURES //============================================================================ #include