This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.
This reverts commit a9be52c41a.
128 lines
3.4 KiB
C++
128 lines
3.4 KiB
C++
#pragma once
|
|
|
|
#if defined(__PS3__) || defined(__ORBIS__)
|
|
#include "..\..\Common\Network\Sony\SQRNetworkManager.h"
|
|
#endif
|
|
|
|
|
|
// A struct that we store in the QoS data when we are hosting the session. Max size 1020 bytes.
|
|
#ifdef _XBOX
|
|
typedef struct _GameSessionData
|
|
{
|
|
unsigned short netVersion; // 2 bytes
|
|
char hostName[XUSER_NAME_SIZE]; // 16 bytes ( 16*1 )
|
|
GameSessionUID hostPlayerUID; // 8 bytes ( 8*1 ) on xbox, 24 bytes on PS3
|
|
GameSessionUID players[MINECRAFT_NET_MAX_PLAYERS]; // 64 bytes ( 8*8 ) on xbox, 192 ( 24*8) on PS3
|
|
char szPlayers[MINECRAFT_NET_MAX_PLAYERS][XUSER_NAME_SIZE]; // 128 bytes ( 8*16)
|
|
unsigned int m_uiGameHostSettings; // 4 bytes
|
|
unsigned int texturePackParentId; // 4 bytes
|
|
unsigned char subTexturePackId; // 1 byte
|
|
|
|
bool isJoinable; // 1 byte
|
|
|
|
_GameSessionData()
|
|
{
|
|
netVersion = 0;
|
|
memset(hostName, 0, XUSER_NAME_SIZE);
|
|
memset(players, 0, MINECRAFT_NET_MAX_PLAYERS * sizeof(players[0]));
|
|
memset(szPlayers, 0, MINECRAFT_NET_MAX_PLAYERS * XUSER_NAME_SIZE);
|
|
isJoinable = true;
|
|
m_uiGameHostSettings = 0;
|
|
texturePackParentId = 0;
|
|
subTexturePackId = 0;
|
|
}
|
|
} GameSessionData;
|
|
#elif defined __PS3__ || defined __ORBIS__ || defined(__PSVITA__)
|
|
typedef struct _GameSessionData
|
|
{
|
|
unsigned short netVersion; // 2 bytes
|
|
GameSessionUID hostPlayerUID; // 8 bytes ( 8*1 ) on xbox, 24 bytes on PS3
|
|
GameSessionUID players[MINECRAFT_NET_MAX_PLAYERS]; // 64 bytes ( 8*8 ) on xbox, 192 ( 24*8) on PS3
|
|
unsigned int m_uiGameHostSettings; // 4 bytes
|
|
unsigned int texturePackParentId; // 4 bytes
|
|
unsigned char subTexturePackId; // 1 byte
|
|
|
|
bool isJoinable; // 1 byte
|
|
|
|
unsigned char playerCount; // 1 byte
|
|
bool isReadyToJoin; // 1 byte
|
|
|
|
_GameSessionData()
|
|
{
|
|
netVersion = 0;
|
|
memset(players, 0, MINECRAFT_NET_MAX_PLAYERS * sizeof(players[0]));
|
|
isJoinable = true;
|
|
m_uiGameHostSettings = 0;
|
|
texturePackParentId = 0;
|
|
subTexturePackId = 0;
|
|
playerCount = 0;
|
|
isReadyToJoin = false;
|
|
|
|
}
|
|
} GameSessionData;
|
|
#else
|
|
typedef struct _GameSessionData
|
|
{
|
|
unsigned short netVersion;
|
|
unsigned int m_uiGameHostSettings;
|
|
unsigned int texturePackParentId;
|
|
unsigned char subTexturePackId;
|
|
|
|
bool isReadyToJoin;
|
|
bool isJoinable;
|
|
|
|
char hostIP[64];
|
|
int hostPort;
|
|
wchar_t hostName[XUSER_NAME_SIZE];
|
|
unsigned char playerCount;
|
|
unsigned char maxPlayers;
|
|
|
|
_GameSessionData()
|
|
{
|
|
netVersion = 0;
|
|
m_uiGameHostSettings = 0;
|
|
texturePackParentId = 0;
|
|
subTexturePackId = 0;
|
|
isReadyToJoin = false;
|
|
isJoinable = true;
|
|
memset(hostIP, 0, sizeof(hostIP));
|
|
hostPort = 0;
|
|
memset(hostName, 0, sizeof(hostName));
|
|
playerCount = 0;
|
|
maxPlayers = MINECRAFT_NET_MAX_PLAYERS;
|
|
}
|
|
} GameSessionData;
|
|
#endif
|
|
|
|
class FriendSessionInfo
|
|
{
|
|
public:
|
|
SessionID sessionId;
|
|
#ifdef _XBOX
|
|
XSESSION_SEARCHRESULT searchResult;
|
|
#elif defined(__PS3__) || defined(__ORBIS__) || defined (__PSVITA__)
|
|
SQRNetworkManager::SessionSearchResult searchResult;
|
|
#elif defined(_DURANGO)
|
|
DQRNetworkManager::SessionSearchResult searchResult;
|
|
#endif
|
|
wchar_t* displayLabel;
|
|
unsigned char displayLabelLength;
|
|
unsigned char displayLabelViewableStartIndex;
|
|
GameSessionData data;
|
|
bool hasPartyMember;
|
|
|
|
FriendSessionInfo()
|
|
{
|
|
displayLabel = NULL;
|
|
displayLabelLength = 0;
|
|
displayLabelViewableStartIndex = 0;
|
|
hasPartyMember = false;
|
|
}
|
|
|
|
~FriendSessionInfo()
|
|
{
|
|
if (displayLabel != NULL)
|
|
delete displayLabel;
|
|
}
|
|
};
|