Files
cafeberry/Minecraft.Client/Common/Network/IQNet.h
T

94 lines
2.3 KiB
C++

#pragma once
const int QNET_GETSENDQUEUESIZE_SECONDARY_TYPE = 0;
const int QNET_GETSENDQUEUESIZE_MESSAGES = 0;
const int QNET_GETSENDQUEUESIZE_BYTES = 0;
const int QNET_SENDDATA_LOW_PRIORITY = 0;
const int QNET_SENDDATA_SECONDARY = 0;
const int QNET_SENDDATA_RELIABLE = 0;
const int QNET_SENDDATA_SEQUENTIAL = 0;
#define QNET_E_SESSION_FULL 0
#define QNET_USER_MASK_USER0 1
#define QNET_USER_MASK_USER1 2
#define QNET_USER_MASK_USER2 4
#define QNET_USER_MASK_USER3 8
typedef enum _QNET_STATE
{
QNET_STATE_IDLE,
QNET_STATE_SESSION_HOSTING,
QNET_STATE_SESSION_JOINING,
QNET_STATE_GAME_LOBBY,
QNET_STATE_SESSION_REGISTERING,
QNET_STATE_SESSION_STARTING,
QNET_STATE_GAME_PLAY,
QNET_STATE_SESSION_ENDING,
QNET_STATE_SESSION_LEAVING,
QNET_STATE_SESSION_DELETING
} QNET_STATE, * PQNET_STATE;
class IQNetPlayer
{
public:
BYTE GetSmallId();
void SendData(IQNetPlayer *player, const void *pvData, DWORD dwDataSize, DWORD dwFlags);
bool IsSameSystem(IQNetPlayer *player);
DWORD GetSendQueueSize( IQNetPlayer *player, DWORD dwFlags );
DWORD GetCurrentRtt();
bool IsHost();
bool IsGuest();
bool IsLocal();
PlayerUID GetXuid();
LPCWSTR GetGamertag();
int GetSessionIndex();
bool IsTalking();
bool IsMutedByLocalUser(DWORD dwUserIndex);
bool HasVoice();
bool HasCamera();
int GetUserIndex();
void SetCustomDataValue(ULONG_PTR ulpCustomDataValue);
ULONG_PTR GetCustomDataValue();
BYTE m_smallId;
bool m_isRemote;
bool m_isHostPlayer;
wchar_t m_gamertag[32];
private:
ULONG_PTR m_customData;
};
void Win64_SetupRemoteQNetPlayer(IQNetPlayer *player, BYTE smallId, bool isHost, bool isLocal);
class IQNetCallbacks
{
};
class IQNetGameSearch
{
};
class IQNet
{
public:
HRESULT AddLocalPlayerByUserIndex(DWORD dwUserIndex);
IQNetPlayer *GetHostPlayer();
IQNetPlayer *GetLocalPlayerByUserIndex(DWORD dwUserIndex);
IQNetPlayer *GetPlayerByIndex(DWORD dwPlayerIndex);
IQNetPlayer *GetPlayerBySmallId(BYTE SmallId);
IQNetPlayer *GetPlayerByXuid(PlayerUID xuid);
DWORD GetPlayerCount();
QNET_STATE GetState();
bool IsHost();
HRESULT JoinGameFromInviteInfo(DWORD dwUserIndex, DWORD dwUserMask, const INVITE_INFO *pInviteInfo);
void HostGame();
void ClientJoinGame();
void EndGame();
static IQNetPlayer m_player[MINECRAFT_NET_MAX_PLAYERS];
static DWORD s_playerCount;
static bool s_isHosting;
};