mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
Simplify signaling by making Matching2 a layer over normal signaling. Implements UPNP port forwarding Implement sceNpMatching2AbortRequest Fix reported bw in sceNpUtil Hack for Fat Princess binding udp on 3658 Reenable CB for sceNpBasicAddPlayersHistoryAsync Misc fixes
1626 lines
54 KiB
C
1626 lines
54 KiB
C
#pragma once
|
|
|
|
#include "sceNp.h"
|
|
|
|
#include "Emu/Memory/vm_ptr.h"
|
|
|
|
// Error codes
|
|
enum SceNpMatching2Error : u32
|
|
{
|
|
// NP Matching 2 Utility
|
|
SCE_NP_MATCHING2_ERROR_OUT_OF_MEMORY = 0x80022301,
|
|
SCE_NP_MATCHING2_ERROR_ALREADY_INITIALIZED = 0x80022302,
|
|
SCE_NP_MATCHING2_ERROR_NOT_INITIALIZED = 0x80022303,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_MAX = 0x80022304,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_ALREADY_EXISTS = 0x80022305,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_NOT_FOUND = 0x80022306,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_ALREADY_STARTED = 0x80022307,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_NOT_STARTED = 0x80022308,
|
|
SCE_NP_MATCHING2_ERROR_SERVER_NOT_FOUND = 0x80022309,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_ARGUMENT = 0x8002230a,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_CONTEXT_ID = 0x8002230b,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_SERVER_ID = 0x8002230c,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_WORLD_ID = 0x8002230d,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_LOBBY_ID = 0x8002230e,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_ROOM_ID = 0x8002230f,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_MEMBER_ID = 0x80022310,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_ATTRIBUTE_ID = 0x80022311,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_CASTTYPE = 0x80022312,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_SORT_METHOD = 0x80022313,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_MAX_SLOT = 0x80022314,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_MATCHING_SPACE = 0x80022316,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_BLOCK_KICK_FLAG = 0x80022318,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_MESSAGE_TARGET = 0x80022319,
|
|
SCE_NP_MATCHING2_ERROR_RANGE_FILTER_MAX = 0x8002231a,
|
|
SCE_NP_MATCHING2_ERROR_INSUFFICIENT_BUFFER = 0x8002231b,
|
|
SCE_NP_MATCHING2_ERROR_DESTINATION_DISAPPEARED = 0x8002231c,
|
|
SCE_NP_MATCHING2_ERROR_REQUEST_TIMEOUT = 0x8002231d,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_ALIGNMENT = 0x8002231e,
|
|
SCE_NP_MATCHING2_ERROR_REQUEST_CB_QUEUE_OVERFLOW = 0x8002231f,
|
|
SCE_NP_MATCHING2_ERROR_EVENT_CB_QUEUE_OVERFLOW = 0x80022320,
|
|
SCE_NP_MATCHING2_ERROR_MSG_CB_QUEUE_OVERFLOW = 0x80022321,
|
|
SCE_NP_MATCHING2_ERROR_CONNECTION_CLOSED_BY_SERVER = 0x80022322,
|
|
SCE_NP_MATCHING2_ERROR_SSL_VERIFY_FAILED = 0x80022323,
|
|
SCE_NP_MATCHING2_ERROR_SSL_HANDSHAKE = 0x80022324,
|
|
SCE_NP_MATCHING2_ERROR_SSL_SEND = 0x80022325,
|
|
SCE_NP_MATCHING2_ERROR_SSL_RECV = 0x80022326,
|
|
SCE_NP_MATCHING2_ERROR_JOINED_SESSION_MAX = 0x80022327,
|
|
SCE_NP_MATCHING2_ERROR_ALREADY_JOINED = 0x80022328,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_SESSION_TYPE = 0x80022329,
|
|
SCE_NP_MATCHING2_ERROR_CLAN_LOBBY_NOT_EXIST = 0x8002232a,
|
|
SCE_NP_MATCHING2_ERROR_NP_SIGNED_OUT = 0x8002232b,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_UNAVAILABLE = 0x8002232c,
|
|
SCE_NP_MATCHING2_ERROR_SERVER_NOT_AVAILABLE = 0x8002232d,
|
|
SCE_NP_MATCHING2_ERROR_NOT_ALLOWED = 0x8002232e,
|
|
SCE_NP_MATCHING2_ERROR_ABORTED = 0x8002232f,
|
|
SCE_NP_MATCHING2_ERROR_REQUEST_NOT_FOUND = 0x80022330,
|
|
SCE_NP_MATCHING2_ERROR_SESSION_DESTROYED = 0x80022331,
|
|
SCE_NP_MATCHING2_ERROR_CONTEXT_STOPPED = 0x80022332,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_REQUEST_PARAMETER = 0x80022333,
|
|
SCE_NP_MATCHING2_ERROR_NOT_NP_SIGN_IN = 0x80022334,
|
|
SCE_NP_MATCHING2_ERROR_ROOM_NOT_FOUND = 0x80022335,
|
|
SCE_NP_MATCHING2_ERROR_ROOM_MEMBER_NOT_FOUND = 0x80022336,
|
|
SCE_NP_MATCHING2_ERROR_LOBBY_NOT_FOUND = 0x80022337,
|
|
SCE_NP_MATCHING2_ERROR_LOBBY_MEMBER_NOT_FOUND = 0x80022338,
|
|
SCE_NP_MATCHING2_ERROR_EVENT_DATA_NOT_FOUND = 0x80022339,
|
|
SCE_NP_MATCHING2_ERROR_KEEPALIVE_TIMEOUT = 0x8002233a,
|
|
SCE_NP_MATCHING2_ERROR_TIMEOUT_TOO_SHORT = 0x8002233b,
|
|
SCE_NP_MATCHING2_ERROR_TIMEDOUT = 0x8002233c,
|
|
SCE_NP_MATCHING2_ERROR_CREATE_HEAP = 0x8002233d,
|
|
SCE_NP_MATCHING2_ERROR_INVALID_ATTRIBUTE_SIZE = 0x8002233e,
|
|
SCE_NP_MATCHING2_ERROR_CANNOT_ABORT = 0x8002233f,
|
|
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_NO_DNS_SERVER = 0x800223a2,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_INVALID_PACKET = 0x800223ad,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_TIMEOUT = 0x800223b0,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_NO_RECORD = 0x800223b1,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_RES_PACKET_FORMAT = 0x800223b2,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_RES_SERVER_FAILURE = 0x800223b3,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_NO_HOST = 0x800223b4,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_RES_NOT_IMPLEMENTED = 0x800223b5,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_RES_SERVER_REFUSED = 0x800223b6,
|
|
SCE_NP_MATCHING2_RESOLVER_ERROR_RESP_TRUNCATED = 0x800223bc,
|
|
|
|
SCE_NP_MATCHING2_SERVER_ERROR_BAD_REQUEST = 0x80022b01,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_SERVICE_UNAVAILABLE = 0x80022b02,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_BUSY = 0x80022b03,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_END_OF_SERVICE = 0x80022b04,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_INTERNAL_SERVER_ERROR = 0x80022b05,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_PLAYER_BANNED = 0x80022b06,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_FORBIDDEN = 0x80022b07,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_BLOCKED = 0x80022b08,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_UNSUPPORTED_NP_ENV = 0x80022b09,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_INVALID_TICKET = 0x80022b0a,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_INVALID_SIGNATURE = 0x80022b0b,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_EXPIRED_TICKET = 0x80022b0c,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_ENTITLEMENT_REQUIRED = 0x80022b0d,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_CONTEXT = 0x80022b0e,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_CLOSED = 0x80022b0f,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_TITLE = 0x80022b10,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_WORLD = 0x80022b11,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_LOBBY = 0x80022b12,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_ROOM = 0x80022b13,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_LOBBY_INSTANCE = 0x80022b14,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_ROOM_INSTANCE = 0x80022b15,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_PASSWORD_MISMATCH = 0x80022b17,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_LOBBY_FULL = 0x80022b18,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_ROOM_FULL = 0x80022b19,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_GROUP_FULL = 0x80022b1b,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_USER = 0x80022b1c,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_TITLE_PASSPHRASE_MISMATCH = 0x80022b1e,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_DUPLICATE_LOBBY = 0x80022b25,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_DUPLICATE_ROOM = 0x80022b26,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_JOIN_GROUP_LABEL = 0x80022b29,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_SUCH_GROUP = 0x80022b2a,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NO_PASSWORD = 0x80022b2b,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_MAX_OVER_SLOT_GROUP = 0x80022b2c,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_MAX_OVER_PASSWORD_MASK = 0x80022b2d,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_DUPLICATE_GROUP_LABEL = 0x80022b2e,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_REQUEST_OVERFLOW = 0x80022b2f,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_ALREADY_JOINED = 0x80022b30,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_NAT_TYPE_MISMATCH = 0x80022b31,
|
|
SCE_NP_MATCHING2_SERVER_ERROR_ROOM_INCONSISTENCY = 0x80022b32,
|
|
// SCE_NP_MATCHING2_NET_ERRNO_BASE = 0x800224XX,
|
|
// SCE_NP_MATCHING2_NET_H_ERRNO_BASE = 0x800225XX,
|
|
};
|
|
|
|
// Constants for matching functions and structures
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ALLOWED_USER_MAX = 100,
|
|
SCE_NP_MATCHING2_BLOCKED_USER_MAX = 100,
|
|
SCE_NP_MATCHING2_CHAT_MSG_MAX_SIZE = 1024,
|
|
SCE_NP_MATCHING2_BIN_MSG_MAX_SIZE = 1024,
|
|
SCE_NP_MATCHING2_GROUP_LABEL_SIZE = 8,
|
|
SCE_NP_MATCHING2_INVITATION_OPTION_DATA_MAX_SIZE = 32,
|
|
SCE_NP_MATCHING2_INVITATION_TARGET_SESSION_MAX = 2,
|
|
SCE_NP_MATCHING2_LOBBY_MEMBER_DATA_INTERNAL_LIST_MAX = 256,
|
|
SCE_NP_MATCHING2_LOBBY_MEMBER_DATA_INTERNAL_EXTENDED_DATA_LIST_MAX = 64,
|
|
SCE_NP_MATCHING2_LOBBY_BIN_ATTR_INTERNAL_NUM = 2,
|
|
SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_NUM = 1,
|
|
SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_MAX_SIZE = 64,
|
|
SCE_NP_MATCHING2_LOBBY_MAX_SLOT = 256,
|
|
SCE_NP_MATCHING2_PRESENCE_OPTION_DATA_SIZE = 16,
|
|
SCE_NP_MATCHING2_RANGE_FILTER_START_INDEX_MIN = 1,
|
|
SCE_NP_MATCHING2_RANGE_FILTER_MAX = 20,
|
|
SCE_NP_MATCHING2_ROOM_MAX_SLOT = 64,
|
|
SCE_NP_MATCHING2_ROOM_GROUP_ID_MAX = 15,
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_EXTERNAL_NUM = 2,
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_EXTERNAL_MAX_SIZE = 256,
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_NUM = 2,
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_MAX_SIZE = 256,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_NUM = 8,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_BIN_ATTR_EXTERNAL_NUM = 1,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_BIN_ATTR_EXTERNAL_MAX_SIZE = 64,
|
|
SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_NUM = 1,
|
|
SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_MAX_SIZE = 64,
|
|
SCE_NP_MATCHING2_SESSION_PASSWORD_SIZE = 8,
|
|
SCE_NP_MATCHING2_USER_BIN_ATTR_NUM = 1,
|
|
SCE_NP_MATCHING2_USER_BIN_ATTR_MAX_SIZE = 128,
|
|
SCE_NP_MATCHING2_GET_USER_INFO_LIST_NPID_NUM_MAX = 25,
|
|
SCE_NP_MATCHING2_GET_ROOM_DATA_EXTERNAL_LIST_ROOM_NUM_MAX = 20,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetServerInfo = 4,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetWorldInfoList = 3848,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetRoomMemberDataExternalList = 15624,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetRoomDataExternalList = 25768,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetLobbyInfoList = 1296,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetUserInfoList = 17604,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_CreateJoinRoom = 25224,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_JoinRoom = 25224,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_SearchRoom = 25776,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_SendRoomChatMessage = 1,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetRoomDataInternal = 25224,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetRoomMemberDataInternal = 372,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_JoinLobby = 1124,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_SendLobbyChatMessage = 1,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetLobbyMemberDataInternal = 672,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetLobbyMemberDataInternalList = 42760,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_SignalingGetPingInfo = 40,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_RoomMemberUpdateInfo = 396,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_RoomUpdateInfo = 28,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_RoomOwnerUpdateInfo = 40,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_RoomDataInternalUpdateInfo = 26208,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_RoomMemberDataInternalUpdateInfo = 493,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_SignalingOptParamUpdateInfo = 8,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_RoomMessageInfo = 1407,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyMemberUpdateInfo = 696,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyUpdateInfo = 8,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyMemberDataInternalUpdateInfo = 472,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyMessageInfo = 1790,
|
|
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyInvitationInfo = 870,
|
|
};
|
|
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_MAX_SIZE_RoomDataExternal = 1288,
|
|
SCE_NP_MATCHING2_MAX_SIZE_RoomMemberDataInternal = 368,
|
|
SCE_NP_MATCHING2_MAX_SIZE_LobbyMemberDataInternal = 668,
|
|
SCE_NP_MATCHING2_MAX_SIZE_LobbyMemberDataInternal_NoExtendedData = 80,
|
|
SCE_NP_MATCHING2_MAX_SIZE_UserInfo = 704,
|
|
};
|
|
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_TITLE_PASSPHRASE_SIZE = 128
|
|
};
|
|
|
|
// Comparison operator specified as the search condition
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_OPERATOR_EQ = 1,
|
|
SCE_NP_MATCHING2_OPERATOR_NE = 2,
|
|
SCE_NP_MATCHING2_OPERATOR_LT = 3,
|
|
SCE_NP_MATCHING2_OPERATOR_LE = 4,
|
|
SCE_NP_MATCHING2_OPERATOR_GT = 5,
|
|
SCE_NP_MATCHING2_OPERATOR_GE = 6,
|
|
};
|
|
|
|
// Message cast type
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_CASTTYPE_BROADCAST = 1,
|
|
SCE_NP_MATCHING2_CASTTYPE_UNICAST = 2,
|
|
SCE_NP_MATCHING2_CASTTYPE_MULTICAST = 3,
|
|
SCE_NP_MATCHING2_CASTTYPE_MULTICAST_TEAM = 4,
|
|
};
|
|
|
|
// Session type
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SESSION_TYPE_LOBBY = 1,
|
|
SCE_NP_MATCHING2_SESSION_TYPE_ROOM = 2,
|
|
};
|
|
|
|
// Signaling type
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SIGNALING_TYPE_NONE = 0,
|
|
SCE_NP_MATCHING2_SIGNALING_TYPE_MESH = 1,
|
|
SCE_NP_MATCHING2_SIGNALING_TYPE_STAR = 2,
|
|
};
|
|
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SIGNALING_FLAG_MANUAL_MODE = 0x01
|
|
};
|
|
|
|
// Event cause
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_LEAVE_ACTION = 1,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_KICKOUT_ACTION = 2,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_GRANT_OWNER_ACTION = 3,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_SERVER_OPERATION = 4,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_MEMBER_DISAPPEARED = 5,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_SERVER_INTERNAL = 6,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_CONNECTION_ERROR = 7,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_NP_SIGNED_OUT = 8,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_SYSTEM_ERROR = 9,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_CONTEXT_ERROR = 10,
|
|
SCE_NP_MATCHING2_EVENT_CAUSE_CONTEXT_ACTION = 11,
|
|
};
|
|
|
|
// Server status
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SERVER_STATUS_AVAILABLE = 1,
|
|
SCE_NP_MATCHING2_SERVER_STATUS_UNAVAILABLE = 2,
|
|
SCE_NP_MATCHING2_SERVER_STATUS_BUSY = 3,
|
|
SCE_NP_MATCHING2_SERVER_STATUS_MAINTENANCE = 4,
|
|
};
|
|
|
|
// Member role
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROLE_MEMBER = 1,
|
|
SCE_NP_MATCHING2_ROLE_OWNER = 2,
|
|
};
|
|
|
|
// Status of kicked-out member with regards to rejoining
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_BLOCKKICKFLAG_OK = 0,
|
|
SCE_NP_MATCHING2_BLOCKKICKFLAG_NG = 1,
|
|
};
|
|
|
|
// Sort method
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SORT_METHOD_JOIN_DATE = 0,
|
|
SCE_NP_MATCHING2_SORT_METHOD_SLOT_NUMBER = 1,
|
|
};
|
|
|
|
// Context options (matching)
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_CONTEXT_OPTION_USE_ONLINENAME = 0x01,
|
|
SCE_NP_MATCHING2_CONTEXT_OPTION_USE_AVATARURL = 0x02,
|
|
};
|
|
|
|
// User information acquisition option
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_GET_USER_INFO_LIST_OPTION_WITH_ONLINENAME = 0x01,
|
|
SCE_NP_MATCHING2_GET_USER_INFO_LIST_OPTION_WITH_AVATARURL = 0x02,
|
|
};
|
|
|
|
// Room search options
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SEARCH_ROOM_OPTION_WITH_NPID = 0x01,
|
|
SCE_NP_MATCHING2_SEARCH_ROOM_OPTION_WITH_ONLINENAME = 0x02,
|
|
SCE_NP_MATCHING2_SEARCH_ROOM_OPTION_WITH_AVATARURL = 0x04,
|
|
SCE_NP_MATCHING2_SEARCH_ROOM_OPTION_NAT_TYPE_FILTER = 0x08,
|
|
SCE_NP_MATCHING2_SEARCH_ROOM_OPTION_RANDOM = 0x10,
|
|
};
|
|
|
|
// Send options
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SEND_MSG_OPTION_WITH_NPID = 0x01,
|
|
SCE_NP_MATCHING2_SEND_MSG_OPTION_WITH_ONLINENAME = 0x02,
|
|
SCE_NP_MATCHING2_SEND_MSG_OPTION_WITH_AVATARURL = 0x04,
|
|
};
|
|
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_ALLOWED_USER_MAX = 100,
|
|
SCE_NP_MATCHING2_ROOM_BLOCKED_USER_MAX = 100,
|
|
};
|
|
|
|
// Flag-type lobby attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_LOBBY_FLAG_ATTR_PERMANENT = 0x80000000,
|
|
SCE_NP_MATCHING2_LOBBY_FLAG_ATTR_CLAN = 0x40000000,
|
|
SCE_NP_MATCHING2_LOBBY_FLAG_ATTR_MEMBER_NOTIFICATION = 0x20000000,
|
|
};
|
|
|
|
// Attribute ID of lobby member internal binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_1_ID = 0x0039,
|
|
};
|
|
|
|
// Flag-type room attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_FLAG_ATTR_OWNER_AUTO_GRANT = 0x80000000,
|
|
SCE_NP_MATCHING2_ROOM_FLAG_ATTR_CLOSED = 0x40000000,
|
|
SCE_NP_MATCHING2_ROOM_FLAG_ATTR_FULL = 0x20000000,
|
|
SCE_NP_MATCHING2_ROOM_FLAG_ATTR_HIDDEN = 0x10000000,
|
|
SCE_NP_MATCHING2_ROOM_FLAG_ATTR_NAT_TYPE_RESTRICTION = 0x04000000,
|
|
SCE_NP_MATCHING2_ROOM_FLAG_ATTR_PROHIBITIVE_MODE = 0x02000000,
|
|
};
|
|
|
|
// Flah-type room member attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_LOBBYMEMBER_FLAG_ATTR_OWNER = 0x80000000,
|
|
SCE_NP_MATCHING2_ROOMMEMBER_FLAG_ATTR_OWNER = 0x80000000,
|
|
};
|
|
|
|
// ID of external room search integer attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_1_ID = 0x004c,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_2_ID = 0x004d,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_3_ID = 0x004e,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_4_ID = 0x004f,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_5_ID = 0x0050,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_6_ID = 0x0051,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_7_ID = 0x0052,
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_8_ID = 0x0053,
|
|
};
|
|
|
|
// ID of external room search binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_SEARCHABLE_BIN_ATTR_EXTERNAL_1_ID = 0x0054,
|
|
};
|
|
|
|
// ID of external room binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_EXTERNAL_1_ID = 0x0055,
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_EXTERNAL_2_ID = 0x0056,
|
|
};
|
|
|
|
// ID of internal lobby binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_LOBBY_BIN_ATTR_INTERNAL_1_ID = 0x0037,
|
|
SCE_NP_MATCHING2_LOBBY_BIN_ATTR_INTERNAL_2_ID = 0x0038,
|
|
};
|
|
|
|
// ID of internal room binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_1_ID = 0x0057,
|
|
SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_2_ID = 0x0058,
|
|
};
|
|
|
|
// ID of internal room member binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_1_ID = 0x0059,
|
|
};
|
|
|
|
// Attribute ID of user binary attribute
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_USER_BIN_ATTR_1_ID = 0x005f,
|
|
};
|
|
|
|
// Event of request functions
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetServerInfo = 0x0001,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetWorldInfoList = 0x0002,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetRoomMemberDataExternalList = 0x0003,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SetRoomDataExternal = 0x0004,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetRoomDataExternalList = 0x0005,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetLobbyInfoList = 0x0006,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SetUserInfo = 0x0007,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetUserInfoList = 0x0008,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_CreateServerContext = 0x0009,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_DeleteServerContext = 0x000a,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_CreateJoinRoom = 0x0101,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_JoinRoom = 0x0102,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_LeaveRoom = 0x0103,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GrantRoomOwner = 0x0104,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_KickoutRoomMember = 0x0105,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SearchRoom = 0x0106,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SendRoomChatMessage = 0x0107,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SendRoomMessage = 0x0108,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SetRoomDataInternal = 0x0109,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetRoomDataInternal = 0x010a,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SetRoomMemberDataInternal = 0x010b,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetRoomMemberDataInternal = 0x010c,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SetSignalingOptParam = 0x010d,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_JoinLobby = 0x0201,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_LeaveLobby = 0x0202,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SendLobbyChatMessage = 0x0203,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SendLobbyInvitation = 0x0204,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SetLobbyMemberDataInternal = 0x0205,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetLobbyMemberDataInternal = 0x0206,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_GetLobbyMemberDataInternalList = 0x0207,
|
|
SCE_NP_MATCHING2_REQUEST_EVENT_SignalingGetPingInfo = 0x0e01,
|
|
};
|
|
|
|
// Room event
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_EVENT_MemberJoined = 0x1101,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_MemberLeft = 0x1102,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_Kickedout = 0x1103,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_RoomDestroyed = 0x1104,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_RoomOwnerChanged = 0x1105,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_UpdatedRoomDataInternal = 0x1106,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_UpdatedRoomMemberDataInternal = 0x1107,
|
|
SCE_NP_MATCHING2_ROOM_EVENT_UpdatedSignalingOptParam = 0x1108,
|
|
};
|
|
|
|
// Room message event
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_ROOM_MSG_EVENT_ChatMessage = 0x2101,
|
|
SCE_NP_MATCHING2_ROOM_MSG_EVENT_Message = 0x2102,
|
|
};
|
|
|
|
// Lobby event
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_LOBBY_EVENT_MemberJoined = 0x3201,
|
|
SCE_NP_MATCHING2_LOBBY_EVENT_MemberLeft = 0x3202,
|
|
SCE_NP_MATCHING2_LOBBY_EVENT_LobbyDestroyed = 0x3203,
|
|
SCE_NP_MATCHING2_LOBBY_EVENT_UpdatedLobbyMemberDataInternal = 0x3204,
|
|
};
|
|
|
|
// Lobby message event
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_LOBBY_MSG_EVENT_ChatMessage = 0x4201,
|
|
SCE_NP_MATCHING2_LOBBY_MSG_EVENT_Invitation = 0x4202,
|
|
};
|
|
|
|
// Signaling event
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SIGNALING_EVENT_Dead = 0x5101,
|
|
SCE_NP_MATCHING2_SIGNALING_EVENT_Established = 0x5102,
|
|
SCE_NP_MATCHING2_SIGNALING_EVENT_NetInfoResult = 0x5103,
|
|
};
|
|
|
|
// Context event
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_CONTEXT_EVENT_StartOver = 0x6f01,
|
|
SCE_NP_MATCHING2_CONTEXT_EVENT_Start = 0x6f02,
|
|
SCE_NP_MATCHING2_CONTEXT_EVENT_Stop = 0x6f03,
|
|
};
|
|
|
|
enum
|
|
{
|
|
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_UNKNOWN = 0,
|
|
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_TYPE = 1,
|
|
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_TYPE2 = 2,
|
|
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_TYPE3 = 3,
|
|
};
|
|
|
|
typedef u16 SceNpMatching2ServerId;
|
|
typedef u32 SceNpMatching2WorldId;
|
|
typedef u16 SceNpMatching2WorldNumber;
|
|
typedef u64 SceNpMatching2LobbyId;
|
|
typedef u16 SceNpMatching2LobbyNumber;
|
|
typedef u16 SceNpMatching2LobbyMemberId;
|
|
typedef u64 SceNpMatching2RoomId;
|
|
typedef u16 SceNpMatching2RoomNumber;
|
|
typedef u16 SceNpMatching2RoomMemberId;
|
|
typedef u8 SceNpMatching2RoomGroupId;
|
|
typedef u8 SceNpMatching2TeamId;
|
|
typedef u16 SceNpMatching2ContextId;
|
|
typedef u32 SceNpMatching2RequestId;
|
|
typedef u16 SceNpMatching2AttributeId;
|
|
typedef u32 SceNpMatching2FlagAttr;
|
|
typedef u8 SceNpMatching2NatType;
|
|
typedef u8 SceNpMatching2Operator;
|
|
typedef u8 SceNpMatching2CastType;
|
|
typedef u8 SceNpMatching2SessionType;
|
|
typedef u8 SceNpMatching2SignalingType;
|
|
typedef u8 SceNpMatching2SignalingFlag;
|
|
typedef u8 SceNpMatching2EventCause;
|
|
typedef u8 SceNpMatching2ServerStatus;
|
|
typedef u8 SceNpMatching2Role;
|
|
typedef u8 SceNpMatching2BlockKickFlag;
|
|
typedef u64 SceNpMatching2RoomPasswordSlotMask;
|
|
typedef u64 SceNpMatching2RoomJoinedSlotMask;
|
|
typedef u16 SceNpMatching2Event;
|
|
typedef u32 SceNpMatching2EventKey;
|
|
typedef u32 SceNpMatching2SignalingRequestId;
|
|
typedef SceNpCommunicationPassphrase SceNpMatching2TitlePassphrase;
|
|
|
|
// Request callback function
|
|
using SceNpMatching2RequestCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2RequestId reqId, SceNpMatching2Event event, SceNpMatching2EventKey eventKey,
|
|
s32 errorCode, u32 dataSize, vm::ptr<void> arg);
|
|
using SceNpMatching2RoomEventCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2RoomId roomId, SceNpMatching2Event event, SceNpMatching2EventKey eventKey,
|
|
s32 errorCode, u32 dataSize, vm::ptr<void> arg);
|
|
using SceNpMatching2RoomMessageCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2RoomId roomId, SceNpMatching2RoomMemberId srcMemberId, SceNpMatching2Event event,
|
|
SceNpMatching2EventKey eventKey, s32 errorCode, u32 dataSize, vm::ptr<void> arg);
|
|
using SceNpMatching2LobbyEventCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2LobbyId lobbyId, SceNpMatching2Event event, SceNpMatching2EventKey eventKey,
|
|
s32 errorCode, u32 dataSize, vm::ptr<void> arg);
|
|
using SceNpMatching2LobbyMessageCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2LobbyId lobbyId, SceNpMatching2LobbyMemberId srcMemberId, SceNpMatching2Event event,
|
|
SceNpMatching2EventKey eventKey, s32 errorCode, u32 dataSize, vm::ptr<void> arg);
|
|
using SceNpMatching2SignalingCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2RoomId roomId, SceNpMatching2RoomMemberId peerMemberId, SceNpMatching2Event event,
|
|
s32 errorCode, vm::ptr<void> arg);
|
|
using SceNpMatching2ContextCallback = void(SceNpMatching2ContextId ctxId, SceNpMatching2Event event, SceNpMatching2EventCause eventCause, s32 errorCode, vm::ptr<void> arg);
|
|
|
|
// Session password
|
|
struct SceNpMatching2SessionPassword
|
|
{
|
|
u8 data[SCE_NP_MATCHING2_SESSION_PASSWORD_SIZE];
|
|
};
|
|
|
|
// Optional presence data
|
|
struct SceNpMatching2PresenceOptionData
|
|
{
|
|
u8 data[SCE_NP_MATCHING2_PRESENCE_OPTION_DATA_SIZE];
|
|
be_t<u32> length;
|
|
};
|
|
|
|
// Integer-type attribute
|
|
struct SceNpMatching2IntAttr
|
|
{
|
|
be_t<SceNpMatching2AttributeId> id;
|
|
u8 padding[2];
|
|
be_t<u32> num;
|
|
};
|
|
|
|
// Binary-type attribute
|
|
struct SceNpMatching2BinAttr
|
|
{
|
|
be_t<SceNpMatching2AttributeId> id;
|
|
u8 padding[2];
|
|
vm::bptr<u8> ptr;
|
|
be_t<u32> size;
|
|
};
|
|
|
|
// Range filter
|
|
struct SceNpMatching2RangeFilter
|
|
{
|
|
be_t<u32> startIndex;
|
|
be_t<u32> max;
|
|
};
|
|
|
|
// Integer-type search condition
|
|
struct SceNpMatching2IntSearchFilter
|
|
{
|
|
SceNpMatching2Operator searchOperator;
|
|
u8 padding[3];
|
|
SceNpMatching2IntAttr attr;
|
|
};
|
|
|
|
// Binary-type search condition
|
|
struct SceNpMatching2BinSearchFilter
|
|
{
|
|
SceNpMatching2Operator searchOperator;
|
|
u8 padding[3];
|
|
SceNpMatching2BinAttr attr;
|
|
};
|
|
|
|
// Range of result
|
|
struct SceNpMatching2Range
|
|
{
|
|
be_t<u32> startIndex;
|
|
be_t<u32> total;
|
|
be_t<u32> size;
|
|
};
|
|
|
|
// Session information about a session joined by the user
|
|
struct SceNpMatching2JoinedSessionInfo
|
|
{
|
|
u8 sessionType;
|
|
u8 padding1[1];
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
CellRtcTick joinDate;
|
|
};
|
|
|
|
// User information
|
|
struct SceNpMatching2UserInfo
|
|
{
|
|
vm::bptr<SceNpMatching2UserInfo> next;
|
|
SceNpUserInfo2 userInfo;
|
|
vm::bptr<SceNpMatching2BinAttr> userBinAttr;
|
|
be_t<u32> userBinAttrNum;
|
|
SceNpMatching2JoinedSessionInfo joinedSessionInfo;
|
|
be_t<u32> joinedSessionInfoNum;
|
|
};
|
|
|
|
// Server
|
|
struct SceNpMatching2Server
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
SceNpMatching2ServerStatus status;
|
|
u8 padding[1];
|
|
};
|
|
|
|
// World
|
|
struct SceNpMatching2World
|
|
{
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<u32> numOfLobby;
|
|
be_t<u32> maxNumOfTotalLobbyMember;
|
|
be_t<u32> curNumOfTotalLobbyMember;
|
|
be_t<u32> curNumOfRoom;
|
|
be_t<u32> curNumOfTotalRoomMember;
|
|
b8 withEntitlementId;
|
|
SceNpEntitlementId entitlementId;
|
|
u8 padding[3];
|
|
};
|
|
|
|
// Lobby member internal binary attribute
|
|
struct SceNpMatching2LobbyMemberBinAttrInternal
|
|
{
|
|
CellRtcTick updateDate;
|
|
SceNpMatching2BinAttr data;
|
|
u8 padding[4];
|
|
};
|
|
|
|
// Lobby-internal lobby member information
|
|
struct SceNpMatching2LobbyMemberDataInternal
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyMemberDataInternal> next;
|
|
SceNpUserInfo2 userInfo;
|
|
CellRtcTick joinDate;
|
|
be_t<SceNpMatching2LobbyMemberId> memberId;
|
|
u8 padding[2];
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2JoinedSessionInfo> joinedSessionInfo;
|
|
be_t<u32> joinedSessionInfoNum;
|
|
vm::bptr<SceNpMatching2LobbyMemberBinAttrInternal> lobbyMemberBinAttrInternal;
|
|
be_t<u32> lobbyMemberBinAttrInternalNum; // Unsigned ints are be_t<u32> not uint, right?
|
|
};
|
|
|
|
// Lobby member ID list
|
|
struct SceNpMatching2LobbyMemberIdList
|
|
{
|
|
be_t<SceNpMatching2LobbyMemberId> memberId;
|
|
be_t<u32> memberIdNum;
|
|
be_t<SceNpMatching2LobbyMemberId> me;
|
|
u8 padding[6];
|
|
};
|
|
|
|
// Lobby-internal binary attribute
|
|
struct SceNpMatching2LobbyBinAttrInternal
|
|
{
|
|
CellRtcTick updateDate;
|
|
be_t<SceNpMatching2LobbyMemberId> updateMemberId;
|
|
u8 padding[2];
|
|
SceNpMatching2BinAttr data;
|
|
};
|
|
|
|
// Lobby-external lobby information
|
|
struct SceNpMatching2LobbyDataExternal
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyDataExternal> next;
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding1[2];
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
u8 padding2[4];
|
|
be_t<SceNpMatching2LobbyId > lobbyId;
|
|
be_t<u32> maxSlot;
|
|
be_t<u32> curMemberNum;
|
|
be_t<u32> flagAttr;
|
|
vm::bptr<SceNpMatching2IntAttr> lobbySearchableIntAttrExternal;
|
|
be_t<u32> lobbySearchableIntAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> lobbySearchableBinAttrExternal;
|
|
be_t<u32> lobbySearchableBinAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> lobbyBinAttrExternal;
|
|
be_t<u32> lobbyBinAttrExternalNum;
|
|
u8 padding3[4];
|
|
};
|
|
|
|
// Lobby-internal lobby information
|
|
struct SceNpMatching2LobbyDataInternal
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding1[2];
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<u32> maxSlot;
|
|
SceNpMatching2LobbyMemberIdList memberIdList;
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2LobbyBinAttrInternal> lobbyBinAttrInternal;
|
|
be_t<u32> lobbyBinAttrInternalNum;
|
|
};
|
|
|
|
// Lobby message transmission destination
|
|
union SceNpMatching2LobbyMessageDestination
|
|
{
|
|
be_t<SceNpMatching2LobbyMemberId> unicastTarget;
|
|
|
|
struct multicastTarget
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyMemberId> memberId;
|
|
be_t<u32> memberIdNum;
|
|
};
|
|
};
|
|
|
|
// Group label
|
|
struct SceNpMatching2GroupLabel
|
|
{
|
|
u8 data[SCE_NP_MATCHING2_GROUP_LABEL_SIZE];
|
|
};
|
|
|
|
// Set groups in a room
|
|
struct SceNpMatching2RoomGroupConfig
|
|
{
|
|
be_t<u32> slotNum;
|
|
b8 withLabel;
|
|
SceNpMatching2GroupLabel label;
|
|
b8 withPassword;
|
|
u8 padding[2];
|
|
};
|
|
|
|
// Set group password
|
|
struct SceNpMatching2RoomGroupPasswordConfig
|
|
{
|
|
SceNpMatching2RoomGroupId groupId;
|
|
b8 withPassword;
|
|
u8 padding[1];
|
|
};
|
|
|
|
// Group (of slots in a room)
|
|
struct SceNpMatching2RoomGroup
|
|
{
|
|
SceNpMatching2RoomGroupId groupId;
|
|
b8 withPassword;
|
|
b8 withLabel;
|
|
u8 padding[1];
|
|
SceNpMatching2GroupLabel label;
|
|
be_t<u32> slotNum;
|
|
be_t<u32> curGroupMemberNum;
|
|
};
|
|
|
|
// Internal room member binary attribute
|
|
struct SceNpMatching2RoomMemberBinAttrInternal
|
|
{
|
|
CellRtcTick updateDate;
|
|
SceNpMatching2BinAttr data;
|
|
u8 padding[4];
|
|
};
|
|
|
|
// External room member data
|
|
struct SceNpMatching2RoomMemberDataExternal
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataExternal> next;
|
|
SceNpUserInfo2 userInfo;
|
|
CellRtcTick joinDate;
|
|
SceNpMatching2Role role;
|
|
u8 padding[7];
|
|
};
|
|
|
|
// Internal room member data
|
|
struct SceNpMatching2RoomMemberDataInternal
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> next;
|
|
SceNpUserInfo2 userInfo;
|
|
CellRtcTick joinDate;
|
|
be_t<SceNpMatching2RoomMemberId> memberId;
|
|
SceNpMatching2TeamId teamId;
|
|
u8 padding1[1];
|
|
vm::bptr<SceNpMatching2RoomGroup> roomGroup;
|
|
SceNpMatching2NatType natType;
|
|
u8 padding2[3];
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2RoomMemberBinAttrInternal> roomMemberBinAttrInternal;
|
|
be_t<u32> roomMemberBinAttrInternalNum;
|
|
};
|
|
|
|
// Internal room member data list
|
|
struct SceNpMatching2RoomMemberDataInternalList
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> members;
|
|
be_t<u32> membersNum;
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> me;
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> owner;
|
|
};
|
|
|
|
// Internal room binary attribute
|
|
struct SceNpMatching2RoomBinAttrInternal
|
|
{
|
|
CellRtcTick updateDate;
|
|
be_t<SceNpMatching2RoomMemberId> updateMemberId;
|
|
u8 padding[2];
|
|
SceNpMatching2BinAttr data;
|
|
};
|
|
|
|
// External room data
|
|
struct SceNpMatching2RoomDataExternal
|
|
{
|
|
vm::bptr<SceNpMatching2RoomDataExternal> next;
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding1[2];
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<u16> publicSlotNum;
|
|
be_t<u16> privateSlotNum;
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<u16> openPublicSlotNum;
|
|
be_t<u16> maxSlot;
|
|
be_t<u16> openPrivateSlotNum;
|
|
be_t<u16> curMemberNum;
|
|
be_t<SceNpMatching2RoomPasswordSlotMask> passwordSlotMask;
|
|
vm::bptr<SceNpUserInfo2> owner;
|
|
vm::bptr<SceNpMatching2RoomGroup> roomGroup;
|
|
be_t<u32> roomGroupNum;
|
|
be_t<u32> flagAttr;
|
|
vm::bptr<SceNpMatching2IntAttr> roomSearchableIntAttrExternal;
|
|
be_t<u32> roomSearchableIntAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> roomSearchableBinAttrExternal;
|
|
be_t<u32> roomSearchableBinAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> roomBinAttrExternal;
|
|
be_t<u32> roomBinAttrExternalNum;
|
|
};
|
|
|
|
// Internal room data
|
|
struct SceNpMatching2RoomDataInternal
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding1[2];
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2RoomPasswordSlotMask> passwordSlotMask;
|
|
be_t<u32> maxSlot;
|
|
SceNpMatching2RoomMemberDataInternalList memberList;
|
|
vm::bptr<SceNpMatching2RoomGroup> roomGroup;
|
|
be_t<u32> roomGroupNum;
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2RoomBinAttrInternal> roomBinAttrInternal;
|
|
be_t<u32> roomBinAttrInternalNum;
|
|
};
|
|
|
|
// Room message recipient
|
|
union SceNpMatching2RoomMessageDestination
|
|
{
|
|
be_t<SceNpMatching2RoomMemberId> unicastTarget;
|
|
|
|
struct multicastTarget
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberId> memberId;
|
|
be_t<u32> memberIdNum;
|
|
} multicastTarget;
|
|
|
|
SceNpMatching2TeamId multicastTargetTeamId;
|
|
};
|
|
|
|
// Invitation data
|
|
struct SceNpMatching2InvitationData
|
|
{
|
|
vm::bptr<SceNpMatching2JoinedSessionInfo> targetSession;
|
|
be_t<u32> targetSessionNum;
|
|
vm::bptr<void> optData;
|
|
be_t<u32> optDataLen;
|
|
};
|
|
|
|
// Signaling option parameter
|
|
struct SceNpMatching2SignalingOptParam
|
|
{
|
|
SceNpMatching2SignalingType type;
|
|
SceNpMatching2SignalingFlag flag;
|
|
be_t<SceNpMatching2RoomMemberId> hubMemberId;
|
|
u8 reserved2[4];
|
|
};
|
|
|
|
// Option parameters for requests
|
|
struct SceNpMatching2RequestOptParam
|
|
{
|
|
vm::bptr<SceNpMatching2RequestCallback> cbFunc;
|
|
vm::bptr<void> cbFuncArg;
|
|
be_t<u32> timeout;
|
|
be_t<u16> appReqId;
|
|
u8 padding[2];
|
|
};
|
|
|
|
// Room slot information
|
|
struct SceNpMatching2RoomSlotInfo
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2RoomJoinedSlotMask> joinedSlotMask;
|
|
be_t<SceNpMatching2RoomPasswordSlotMask> passwordSlotMask;
|
|
be_t<u16> publicSlotNum;
|
|
be_t<u16> privateSlotNum;
|
|
be_t<u16> openPublicSlotNum;
|
|
be_t<u16> openPrivateSlotNum;
|
|
};
|
|
|
|
// Server data request parameter
|
|
struct SceNpMatching2GetServerInfoRequest
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
};
|
|
|
|
// Server data request response data
|
|
struct SceNpMatching2GetServerInfoResponse
|
|
{
|
|
SceNpMatching2Server server;
|
|
};
|
|
|
|
// Request parameter for creating a server context
|
|
struct SceNpMatching2CreateServerContextRequest
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
};
|
|
|
|
// Request parameter for deleting a server context
|
|
struct SceNpMatching2DeleteServerContextRequest
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
};
|
|
|
|
// World data list request parameter
|
|
struct SceNpMatching2GetWorldInfoListRequest
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
};
|
|
|
|
// World data list request response data
|
|
struct SceNpMatching2GetWorldInfoListResponse
|
|
{
|
|
vm::bptr<SceNpMatching2World> world;
|
|
be_t<u32> worldNum;
|
|
};
|
|
|
|
// User information setting request parameter
|
|
struct SceNpMatching2SetUserInfoRequest
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding[2];
|
|
vm::bptr<SceNpMatching2BinAttr> userBinAttr;
|
|
be_t<u32> userBinAttrNum;
|
|
};
|
|
|
|
// User information list acquisition request parameter
|
|
struct SceNpMatching2GetUserInfoListRequest
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding[2];
|
|
vm::bptr<SceNpId> npId;
|
|
be_t<u32> npIdNum;
|
|
vm::bptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
be_t<s32> option; // int should be be_t<s32>, right?
|
|
};
|
|
|
|
// User information list acquisition response data
|
|
struct SceNpMatching2GetUserInfoListResponse
|
|
{
|
|
vm::bptr<SceNpMatching2UserInfo> userInfo;
|
|
be_t<u32> userInfoNum;
|
|
};
|
|
|
|
// External room member data list request parameter
|
|
struct SceNpMatching2GetRoomMemberDataExternalListRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
};
|
|
|
|
// External room member data list request response data
|
|
struct SceNpMatching2GetRoomMemberDataExternalListResponse
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataExternal> roomMemberDataExternal;
|
|
be_t<u32> roomMemberDataExternalNum;
|
|
};
|
|
|
|
// External room data configuration request parameters
|
|
struct SceNpMatching2SetRoomDataExternalRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
vm::bptr<SceNpMatching2IntAttr> roomSearchableIntAttrExternal;
|
|
be_t<u32> roomSearchableIntAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> roomSearchableBinAttrExternal;
|
|
be_t<u32> roomSearchableBinAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> roomBinAttrExternal;
|
|
be_t<u32> roomBinAttrExternalNum;
|
|
};
|
|
|
|
// External room data list request parameters
|
|
struct SceNpMatching2GetRoomDataExternalListRequest
|
|
{
|
|
vm::bptr<SceNpMatching2RoomId> roomId;
|
|
be_t<u32> roomIdNum;
|
|
vm::bcptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
};
|
|
|
|
// External room data list request response data
|
|
struct SceNpMatching2GetRoomDataExternalListResponse
|
|
{
|
|
vm::bptr<SceNpMatching2RoomDataExternal> roomDataExternal;
|
|
be_t<u32> roomDataExternalNum;
|
|
};
|
|
|
|
// Create-and-join room request parameters
|
|
struct SceNpMatching2CreateJoinRoomRequest
|
|
{
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
u8 padding1[4];
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<u32> maxSlot;
|
|
be_t<u32> flagAttr;
|
|
vm::bptr<SceNpMatching2BinAttr> roomBinAttrInternal;
|
|
be_t<u32> roomBinAttrInternalNum;
|
|
vm::bptr<SceNpMatching2IntAttr> roomSearchableIntAttrExternal;
|
|
be_t<u32> roomSearchableIntAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> roomSearchableBinAttrExternal;
|
|
be_t<u32> roomSearchableBinAttrExternalNum;
|
|
vm::bptr<SceNpMatching2BinAttr> roomBinAttrExternal;
|
|
be_t<u32> roomBinAttrExternalNum;
|
|
vm::bptr<SceNpMatching2SessionPassword> roomPassword;
|
|
vm::bptr<SceNpMatching2RoomGroupConfig> groupConfig;
|
|
be_t<u32> groupConfigNum;
|
|
vm::bptr<SceNpMatching2RoomPasswordSlotMask> passwordSlotMask;
|
|
vm::bptr<SceNpId> allowedUser;
|
|
be_t<u32> allowedUserNum;
|
|
vm::bptr<SceNpId> blockedUser;
|
|
be_t<u32> blockedUserNum;
|
|
vm::bptr<SceNpMatching2GroupLabel> joinRoomGroupLabel;
|
|
vm::bptr<SceNpMatching2BinAttr> roomMemberBinAttrInternal;
|
|
be_t<u32> roomMemberBinAttrInternalNum;
|
|
SceNpMatching2TeamId teamId;
|
|
u8 padding2[3];
|
|
vm::bptr<SceNpMatching2SignalingOptParam> sigOptParam;
|
|
u8 padding3[4];
|
|
};
|
|
|
|
// Create-and-join room request response data
|
|
struct SceNpMatching2CreateJoinRoomResponse
|
|
{
|
|
vm::bptr<SceNpMatching2RoomDataInternal> roomDataInternal;
|
|
};
|
|
|
|
// Join room request parameters
|
|
struct SceNpMatching2JoinRoomRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
vm::bptr<SceNpMatching2SessionPassword> roomPassword;
|
|
vm::bptr<SceNpMatching2GroupLabel> joinRoomGroupLabel;
|
|
vm::bptr<SceNpMatching2BinAttr> roomMemberBinAttrInternal;
|
|
be_t<u32> roomMemberBinAttrInternalNum;
|
|
SceNpMatching2PresenceOptionData optData;
|
|
SceNpMatching2TeamId teamId;
|
|
u8 padding[3];
|
|
};
|
|
|
|
// Join room request response data
|
|
struct SceNpMatching2JoinRoomResponse
|
|
{
|
|
vm::bptr<SceNpMatching2RoomDataInternal> roomDataInternal;
|
|
};
|
|
|
|
// Leave room request parameters
|
|
struct SceNpMatching2LeaveRoomRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
SceNpMatching2PresenceOptionData optData;
|
|
u8 padding[4];
|
|
};
|
|
|
|
// Room ownership grant request parameters
|
|
struct SceNpMatching2GrantRoomOwnerRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2RoomMemberId> newOwner;
|
|
u8 padding[2];
|
|
SceNpMatching2PresenceOptionData optData;
|
|
};
|
|
|
|
// Kickout request parameters
|
|
struct SceNpMatching2KickoutRoomMemberRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2RoomMemberId> target;
|
|
SceNpMatching2BlockKickFlag blockKickFlag;
|
|
u8 padding[1];
|
|
SceNpMatching2PresenceOptionData optData;
|
|
};
|
|
|
|
// Room search parameters
|
|
struct SceNpMatching2SearchRoomRequest
|
|
{
|
|
be_t<s32> option;
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
SceNpMatching2RangeFilter rangeFilter;
|
|
be_t<SceNpMatching2FlagAttr> flagFilter;
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2IntSearchFilter> intFilter;
|
|
be_t<u32> intFilterNum;
|
|
vm::bptr<SceNpMatching2BinSearchFilter> binFilter;
|
|
be_t<u32> binFilterNum;
|
|
vm::bptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
};
|
|
|
|
// Room search response data
|
|
struct SceNpMatching2SearchRoomResponse
|
|
{
|
|
SceNpMatching2Range range;
|
|
vm::bptr<SceNpMatching2RoomDataExternal> roomDataExternal;
|
|
};
|
|
|
|
// Room message send request parameters
|
|
struct SceNpMatching2SendRoomMessageRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[3];
|
|
SceNpMatching2RoomMessageDestination dst;
|
|
vm::bcptr<void> msg;
|
|
be_t<u32> msgLen;
|
|
be_t<s32> option;
|
|
};
|
|
|
|
// Room chat message send request parameters
|
|
struct SceNpMatching2SendRoomChatMessageRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[3];
|
|
SceNpMatching2RoomMessageDestination dst;
|
|
vm::bcptr<void> msg;
|
|
be_t<u32> msgLen;
|
|
be_t<s32> option;
|
|
};
|
|
|
|
// Room chat message send request response data
|
|
struct SceNpMatching2SendRoomChatMessageResponse
|
|
{
|
|
b8 filtered;
|
|
};
|
|
|
|
// Internal room data configuration request parameters
|
|
struct SceNpMatching2SetRoomDataInternalRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2FlagAttr> flagFilter;
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2BinAttr> roomBinAttrInternal;
|
|
be_t<u32> roomBinAttrInternalNum;
|
|
vm::bptr<SceNpMatching2RoomGroupPasswordConfig> passwordConfig;
|
|
be_t<u32> passwordConfigNum;
|
|
vm::bptr<SceNpMatching2RoomPasswordSlotMask> passwordSlotMask;
|
|
vm::bptr<SceNpMatching2RoomMemberId> ownerPrivilegeRank;
|
|
be_t<u32> ownerPrivilegeRankNum;
|
|
u8 padding[4];
|
|
};
|
|
|
|
// Internal room data request parameters
|
|
struct SceNpMatching2GetRoomDataInternalRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
vm::bcptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
};
|
|
|
|
// Internal room data request response data
|
|
struct SceNpMatching2GetRoomDataInternalResponse
|
|
{
|
|
vm::bptr<SceNpMatching2RoomDataInternal> roomDataInternal;
|
|
};
|
|
|
|
// Internal room member data configuration request parameters
|
|
struct SceNpMatching2SetRoomMemberDataInternalRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2RoomMemberId> memberId;
|
|
SceNpMatching2TeamId teamId;
|
|
u8 padding[5];
|
|
be_t<SceNpMatching2FlagAttr> flagFilter;
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2BinAttr> roomMemberBinAttrInternal;
|
|
be_t<u32> roomMemberBinAttrInternalNum;
|
|
};
|
|
|
|
// Internal room member data request parameters
|
|
struct SceNpMatching2GetRoomMemberDataInternalRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<SceNpMatching2RoomMemberId> memberId;
|
|
u8 padding[6];
|
|
vm::bcptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
};
|
|
|
|
// Internal room member data request response data
|
|
struct SceNpMatching2GetRoomMemberDataInternalResponse
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> roomMemberDataInternal;
|
|
};
|
|
|
|
// Signaling option parameter setting request parameter
|
|
struct SceNpMatching2SetSignalingOptParamRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
SceNpMatching2SignalingOptParam sigOptParam;
|
|
};
|
|
|
|
// Lobby information list acquisition request parameter
|
|
struct SceNpMatching2GetLobbyInfoListRequest
|
|
{
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
SceNpMatching2RangeFilter rangeFilter;
|
|
vm::bptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
};
|
|
|
|
// Lobby information list acquisition response data
|
|
struct SceNpMatching2GetLobbyInfoListResponse
|
|
{
|
|
SceNpMatching2Range range;
|
|
vm::bptr<SceNpMatching2LobbyDataExternal> lobbyDataExternal;
|
|
};
|
|
|
|
// Lobby joining request parameter
|
|
struct SceNpMatching2JoinLobbyRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
vm::bptr<SceNpMatching2JoinedSessionInfo> joinedSessionInfo;
|
|
be_t<u32> joinedSessionInfoNum;
|
|
vm::bptr<SceNpMatching2BinAttr> lobbyMemberBinAttrInternal;
|
|
be_t<u32> lobbyMemberBinAttrInternalNum;
|
|
SceNpMatching2PresenceOptionData optData;
|
|
u8 padding[4];
|
|
};
|
|
|
|
// Lobby joining response data
|
|
struct SceNpMatching2JoinLobbyResponse
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyDataInternal> lobbyDataInternal;
|
|
};
|
|
|
|
// Lobby leaving request parameter
|
|
struct SceNpMatching2LeaveLobbyRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
SceNpMatching2PresenceOptionData optData;
|
|
u8 padding[4];
|
|
};
|
|
|
|
// Lobby chat message sending request parameter
|
|
struct SceNpMatching2SendLobbyChatMessageRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[3];
|
|
SceNpMatching2LobbyMessageDestination dst;
|
|
vm::bcptr<void> msg;
|
|
be_t<u32> msgLen;
|
|
be_t<s32> option;
|
|
};
|
|
|
|
// Lobby chat message sending response data
|
|
struct SceNpMatching2SendLobbyChatMessageResponse
|
|
{
|
|
b8 filtered;
|
|
};
|
|
|
|
// Lobby invitation message sending request parameter
|
|
struct SceNpMatching2SendLobbyInvitationRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[3];
|
|
SceNpMatching2LobbyMessageDestination dst;
|
|
SceNpMatching2InvitationData invitationData;
|
|
be_t<s32> option;
|
|
};
|
|
|
|
// Lobby-internal lobby member information setting request parameter
|
|
struct SceNpMatching2SetLobbyMemberDataInternalRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<SceNpMatching2LobbyMemberId> memberId;
|
|
u8 padding1[2];
|
|
be_t<SceNpMatching2FlagAttr> flagFilter;
|
|
be_t<SceNpMatching2FlagAttr> flagAttr;
|
|
vm::bptr<SceNpMatching2JoinedSessionInfo> joinedSessionInfo;
|
|
be_t<u32> joinedSessionInfoNum;
|
|
vm::bptr<SceNpMatching2BinAttr> lobbyMemberBinAttrInternal;
|
|
be_t<u32> lobbyMemberBinAttrInternalNum;
|
|
u8 padding2[4];
|
|
};
|
|
|
|
// Lobby-internal lobby member information acquisition request parameter
|
|
struct SceNpMatching2GetLobbyMemberDataInternalRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
be_t<SceNpMatching2LobbyMemberId> memberId;
|
|
u8 padding[6];
|
|
vm::bcptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
};
|
|
|
|
// Lobby-internal lobby member information acquisition response data
|
|
struct SceNpMatching2GetLobbyMemberDataInternalResponse
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyMemberDataInternal> lobbyMemberDataInternal;
|
|
};
|
|
|
|
// Request parameters for obtaining a list of lobby-internal lobby member information
|
|
struct SceNpMatching2GetLobbyMemberDataInternalListRequest
|
|
{
|
|
be_t<SceNpMatching2LobbyId> lobbyId;
|
|
vm::bptr<SceNpMatching2LobbyMemberId> memberId;
|
|
be_t<u32> memberIdNum;
|
|
vm::bcptr<SceNpMatching2AttributeId> attrId;
|
|
be_t<u32> attrIdNum;
|
|
b8 extendedData;
|
|
u8 padding[7];
|
|
};
|
|
|
|
// Reponse data for obtaining a list of lobby-internal lobby member information
|
|
struct SceNpMatching2GetLobbyMemberDataInternalListResponse
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyMemberDataInternal> lobbyMemberDataInternal;
|
|
be_t<u32> lobbyMemberDataInternalNum;
|
|
};
|
|
|
|
// Request parameters for obtaining Ping information
|
|
struct SceNpMatching2SignalingGetPingInfoRequest
|
|
{
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
u8 reserved[16];
|
|
};
|
|
|
|
// Response data for obtaining Ping information
|
|
struct SceNpMatching2SignalingGetPingInfoResponse
|
|
{
|
|
be_t<SceNpMatching2ServerId> serverId;
|
|
u8 padding1[2];
|
|
be_t<SceNpMatching2WorldId> worldId;
|
|
be_t<SceNpMatching2RoomId> roomId;
|
|
be_t<u32> rtt;
|
|
u8 reserved[20];
|
|
};
|
|
|
|
// Join request parameters for room in prohibitive mode
|
|
struct SceNpMatching2JoinProhibitiveRoomRequest
|
|
{
|
|
SceNpMatching2JoinRoomRequest joinParam;
|
|
vm::bptr<SceNpId> blockedUser;
|
|
be_t<u32> blockedUserNum;
|
|
};
|
|
|
|
// Room member update information
|
|
struct SceNpMatching2RoomMemberUpdateInfo
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> roomMemberDataInternal;
|
|
SceNpMatching2EventCause eventCause;
|
|
u8 padding[3];
|
|
SceNpMatching2PresenceOptionData optData;
|
|
};
|
|
|
|
// Room owner update information
|
|
struct SceNpMatching2RoomOwnerUpdateInfo
|
|
{
|
|
be_t<SceNpMatching2RoomMemberId> prevOwner;
|
|
be_t<SceNpMatching2RoomMemberId> newOwner;
|
|
SceNpMatching2EventCause eventCause;
|
|
u8 padding[3];
|
|
vm::bptr<SceNpMatching2SessionPassword> roomPassword;
|
|
SceNpMatching2PresenceOptionData optData;
|
|
};
|
|
|
|
// Room update information
|
|
struct SceNpMatching2RoomUpdateInfo
|
|
{
|
|
SceNpMatching2EventCause eventCause;
|
|
u8 padding[3];
|
|
be_t<s32> errorCode;
|
|
SceNpMatching2PresenceOptionData optData;
|
|
};
|
|
|
|
// Internal room data update information
|
|
struct SceNpMatching2RoomDataInternalUpdateInfo
|
|
{
|
|
vm::bptr<SceNpMatching2RoomDataInternal> newRoomDataInternal;
|
|
vm::bptr<SceNpMatching2FlagAttr> newFlagAttr;
|
|
vm::bptr<SceNpMatching2FlagAttr> prevFlagAttr;
|
|
vm::bptr<SceNpMatching2RoomPasswordSlotMask> newRoomPasswordSlotMask;
|
|
vm::bptr<SceNpMatching2RoomPasswordSlotMask> prevRoomPasswordSlotMask;
|
|
vm::bpptr<SceNpMatching2RoomGroup> newRoomGroup;
|
|
be_t<u32> newRoomGroupNum;
|
|
vm::bpptr<SceNpMatching2RoomBinAttrInternal> newRoomBinAttrInternal;
|
|
be_t<u32> newRoomBinAttrInternalNum;
|
|
};
|
|
|
|
// Internal room member data update information
|
|
struct SceNpMatching2RoomMemberDataInternalUpdateInfo
|
|
{
|
|
vm::bptr<SceNpMatching2RoomMemberDataInternal> newRoomMemberDataInternal;
|
|
vm::bptr<SceNpMatching2FlagAttr> newFlagAttr;
|
|
vm::bptr<SceNpMatching2FlagAttr> prevFlagAttr;
|
|
vm::bptr<SceNpMatching2TeamId> newTeamId;
|
|
vm::bpptr<SceNpMatching2RoomMemberBinAttrInternal> newRoomMemberBinAttrInternal;
|
|
be_t<u32> newRoomMemberBinAttrInternalNum;
|
|
};
|
|
|
|
// Room message information
|
|
struct SceNpMatching2RoomMessageInfo
|
|
{
|
|
b8 filtered;
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[2];
|
|
vm::bptr<SceNpMatching2RoomMessageDestination> dst;
|
|
vm::bptr<SceNpUserInfo2> srcMember;
|
|
vm::bptr<void> msg;
|
|
be_t<u32> msgLen;
|
|
};
|
|
|
|
// Lobby member update information
|
|
struct SceNpMatching2LobbyMemberUpdateInfo
|
|
{
|
|
vm::bptr<SceNpMatching2LobbyMemberDataInternal> lobbyMemberDataInternal;
|
|
SceNpMatching2EventCause eventCause;
|
|
u8 padding[3];
|
|
SceNpMatching2PresenceOptionData optData;
|
|
};
|
|
|
|
// Lobby update information
|
|
struct SceNpMatching2LobbyUpdateInfo
|
|
{
|
|
SceNpMatching2EventCause eventCause;
|
|
u8 padding[3];
|
|
be_t<s32> errorCode;
|
|
};
|
|
|
|
// Lobby-internal lobby member information update information
|
|
struct SceNpMatching2LobbyMemberDataInternalUpdateInfo
|
|
{
|
|
be_t<SceNpMatching2LobbyMemberId> memberId;
|
|
u8 padding[2];
|
|
SceNpId npId;
|
|
be_t<SceNpMatching2FlagAttr> flagFilter;
|
|
be_t<SceNpMatching2FlagAttr> newFlagAttr;
|
|
SceNpMatching2JoinedSessionInfo newJoinedSessionInfo;
|
|
be_t<u32> newJoinedSessionInfoNum;
|
|
vm::bptr<SceNpMatching2LobbyMemberBinAttrInternal> newLobbyMemberBinAttrInternal;
|
|
be_t<u32> newLobbyMemberBinAttrInternalNum;
|
|
};
|
|
|
|
// Lobby message information
|
|
struct SceNpMatching2LobbyMessageInfo
|
|
{
|
|
b8 filtered;
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[2];
|
|
vm::bptr<SceNpMatching2LobbyMessageDestination> dst;
|
|
vm::bptr<SceNpUserInfo2> srcMember;
|
|
vm::bcptr<void> msg;
|
|
be_t<u32> msgLen;
|
|
};
|
|
|
|
// Lobby invitation message information
|
|
struct SceNpMatching2LobbyInvitationInfo
|
|
{
|
|
SceNpMatching2CastType castType;
|
|
u8 padding[3];
|
|
vm::bptr<SceNpMatching2LobbyMessageDestination> dst;
|
|
vm::bptr<SceNpUserInfo2> srcMember;
|
|
SceNpMatching2InvitationData invitationData;
|
|
};
|
|
|
|
// Update information of the signaling option parameter
|
|
struct SceNpMatching2SignalingOptParamUpdateInfo
|
|
{
|
|
SceNpMatching2SignalingOptParam newSignalingOptParam;
|
|
};
|
|
|
|
// Matching2 utility intilization parameters
|
|
struct SceNpMatching2UtilityInitParam
|
|
{
|
|
be_t<u32> containerId;
|
|
be_t<u32> requestCbQueueLen;
|
|
be_t<u32> sessionEventCbQueueLen;
|
|
be_t<u32> sessionMsgCbQueueLen;
|
|
u8 reserved[16];
|
|
};
|
|
|
|
// Matching2 memory information
|
|
struct SceNpMatching2MemoryInfo
|
|
{
|
|
be_t<u32> totalMemSize;
|
|
be_t<u32> curMemUsage;
|
|
be_t<u32> maxMemUsage;
|
|
u8 reserved[12];
|
|
};
|
|
|
|
// Matching2 information on the event data queues in the system
|
|
struct SceNpMatching2CbQueueInfo
|
|
{
|
|
be_t<u32> requestCbQueueLen;
|
|
be_t<u32> curRequestCbQueueLen;
|
|
be_t<u32> maxRequestCbQueueLen;
|
|
be_t<u32> sessionEventCbQueueLen;
|
|
be_t<u32> curSessionEventCbQueueLen;
|
|
be_t<u32> maxSessionEventCbQueueLen;
|
|
be_t<u32> sessionMsgCbQueueLen;
|
|
be_t<u32> curSessionMsgCbQueueLen;
|
|
be_t<u32> maxSessionMsgCbQueueLen;
|
|
u8 reserved[12];
|
|
};
|
|
|
|
struct SceNpMatching2SignalingNetInfo
|
|
{
|
|
be_t<u32> size;
|
|
be_t<u32> localAddr;
|
|
be_t<u32> mappedAddr;
|
|
be_t<u32> natStatus;
|
|
};
|
|
|
|
// NP OAuth Errors
|
|
enum SceNpOauthError : u32
|
|
{
|
|
SCE_NP_OAUTH_ERROR_UNKNOWN = 0x80025f01,
|
|
SCE_NP_OAUTH_ERROR_ALREADY_INITIALIZED = 0x80025f02,
|
|
SCE_NP_OAUTH_ERROR_NOT_INITIALIZED = 0x80025f03,
|
|
SCE_NP_OAUTH_ERROR_INVALID_ARGUMENT = 0x80025f04,
|
|
SCE_NP_OAUTH_ERROR_OUT_OF_MEMORY = 0x80025f05,
|
|
SCE_NP_OAUTH_ERROR_OUT_OF_BUFFER = 0x80025f06,
|
|
SCE_NP_OAUTH_ERROR_BAD_RESPONSE = 0x80025f07,
|
|
SCE_NP_OAUTH_ERROR_ABORTED = 0x80025f08,
|
|
SCE_NP_OAUTH_ERROR_SIGNED_OUT = 0x80025f09,
|
|
SCE_NP_OAUTH_ERROR_REQUEST_NOT_FOUND = 0x80025f0a,
|
|
SCE_NP_OAUTH_ERROR_SSL_ERR_CN_CHECK = 0x80025f0b,
|
|
SCE_NP_OAUTH_ERROR_SSL_ERR_UNKNOWN_CA = 0x80025f0c,
|
|
SCE_NP_OAUTH_ERROR_SSL_ERR_NOT_AFTER_CHECK = 0x80025f0d,
|
|
SCE_NP_OAUTH_ERROR_SSL_ERR_NOT_BEFORE_CHECK = 0x80025f0e,
|
|
SCE_NP_OAUTH_ERROR_SSL_ERR_INVALID_CERT = 0x80025f0f,
|
|
SCE_NP_OAUTH_ERROR_SSL_ERR_INTERNAL = 0x80025f10,
|
|
SCE_NP_OAUTH_ERROR_REQUEST_MAX = 0x80025f11,
|
|
|
|
SCE_NP_OAUTH_SERVER_ERROR_BANNED_CONSOLE = 0x80025d14,
|
|
SCE_NP_OAUTH_SERVER_ERROR_INVALID_LOGIN = 0x82e00014,
|
|
SCE_NP_OAUTH_SERVER_ERROR_INACTIVE_ACCOUNT = 0x82e0001b,
|
|
SCE_NP_OAUTH_SERVER_ERROR_SUSPENDED_ACCOUNT = 0x82e0001c,
|
|
SCE_NP_OAUTH_SERVER_ERROR_SUSPENDED_DEVICE = 0x82e0001d,
|
|
SCE_NP_OAUTH_SERVER_ERROR_PASSWORD_EXPIRED = 0x82e00064,
|
|
SCE_NP_OAUTH_SERVER_ERROR_TOSUA_MUST_BE_RE_ACCEPTED = 0x82e00067,
|
|
SCE_NP_OAUTH_SERVER_ERROR_TOSUA_MUST_BE_RE_ACCEPTED_FOR_SUBACCOUNT = 0x82e01042,
|
|
SCE_NP_OAUTH_SERVER_ERROR_BANNED_ACCOUNT = 0x82e01050,
|
|
SCE_NP_OAUTH_SERVER_ERROR_SERVICE_END = 0x82e1019a,
|
|
SCE_NP_OAUTH_SERVER_ERROR_SERVICE_UNAVAILABLE = 0x82e101f7,
|
|
};
|
|
|
|
typedef s32 SceNpAuthOAuthRequestId;
|
|
|
|
enum
|
|
{
|
|
SCE_NP_AUTHORIZATION_CODE_MAX_LEN = 128,
|
|
SCE_NP_CLIENT_ID_MAX_LEN = 128,
|
|
};
|
|
|
|
struct SceNpClientId
|
|
{
|
|
char id[SCE_NP_CLIENT_ID_MAX_LEN + 1];
|
|
u8 padding[7];
|
|
};
|
|
|
|
struct SceNpAuthorizationCode
|
|
{
|
|
char code[SCE_NP_AUTHORIZATION_CODE_MAX_LEN + 1];
|
|
u8 padding[7];
|
|
};
|
|
|
|
struct SceNpAuthGetAuthorizationCodeParameter
|
|
{
|
|
be_t<u64> size;
|
|
vm::bcptr<SceNpClientId> pClientId;
|
|
vm::bcptr<char> pScope;
|
|
};
|