aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Windows64/Network/WinsockNetLayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Windows64/Network/WinsockNetLayer.h')
-rw-r--r--Minecraft.Client/Windows64/Network/WinsockNetLayer.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/Minecraft.Client/Windows64/Network/WinsockNetLayer.h b/Minecraft.Client/Windows64/Network/WinsockNetLayer.h
index f30240d3..66010fe4 100644
--- a/Minecraft.Client/Windows64/Network/WinsockNetLayer.h
+++ b/Minecraft.Client/Windows64/Network/WinsockNetLayer.h
@@ -72,6 +72,12 @@ public:
static bool SendToSmallId(BYTE targetSmallId, const void* data, int dataSize);
static bool SendOnSocket(SOCKET sock, const void* data, int dataSize);
+ // Non-host split-screen: additional TCP connections to host, one per pad
+ static bool JoinSplitScreen(int padIndex, BYTE* outSmallId);
+ static void CloseSplitScreenConnection(int padIndex);
+ static SOCKET GetLocalSocket(BYTE senderSmallId);
+ static BYTE GetSplitScreenSmallId(int padIndex);
+
static bool IsHosting() { return s_isHost; }
static bool IsConnected() { return s_connected; }
static bool IsActive() { return s_active; }
@@ -103,6 +109,7 @@ private:
static DWORD WINAPI AcceptThreadProc(LPVOID param);
static DWORD WINAPI RecvThreadProc(LPVOID param);
static DWORD WINAPI ClientRecvThreadProc(LPVOID param);
+ static DWORD WINAPI SplitScreenRecvThreadProc(LPVOID param);
static DWORD WINAPI AdvertiseThreadProc(LPVOID param);
static DWORD WINAPI DiscoveryThreadProc(LPVOID param);
@@ -147,6 +154,11 @@ private:
static SOCKET s_smallIdToSocket[256];
static CRITICAL_SECTION s_smallIdToSocketLock;
+ // Per-pad split-screen TCP connections (client-side, non-host only)
+ static SOCKET s_splitScreenSocket[XUSER_MAX_COUNT];
+ static BYTE s_splitScreenSmallId[XUSER_MAX_COUNT];
+ static HANDLE s_splitScreenRecvThread[XUSER_MAX_COUNT];
+
public:
static void ClearSocketForSmallId(BYTE smallId);
};