94 lines
2.3 KiB
C++
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;
|
|
}; |