1
0
mirror of https://github.com/jummy0/sb2-decomp synced 2025-03-22 07:31:41 +01:00
sb2-decomp/network.h

79 lines
1.5 KiB
C
Raw Normal View History

2024-08-01 08:18:53 -04:00
// Network.h
#pragma once
2024-06-24 15:46:58 -04:00
#include "dplay.h"
2024-08-01 08:18:53 -04:00
/////////////////////////////////////////////////////////////////////////////
#define MAXSESSION 100
#define MAXPLAYERS 4
#define _CRT_SECURE_NO_WARNINGS_GLOBALS
#define WIN32_LEAN_AND_MEAN
2024-06-24 15:46:58 -04:00
typedef struct
{
2024-08-01 08:18:53 -04:00
char bIsPresent;
char ready;
char unk_2;
char unk_3;
DPID dpid;
short team;
char name[22];
2024-06-24 15:46:58 -04:00
}
NetPlayer;
typedef struct
{
2024-08-01 08:18:53 -04:00
GUID guid;
char name[100];
2024-06-24 15:46:58 -04:00
}
2024-08-01 08:18:53 -04:00
NamedGUID;
2024-06-24 15:46:58 -04:00
typedef struct
{
2024-08-01 08:18:53 -04:00
int nb;
NamedGUID* list[MAXSESSION];
}
NamedGUIDList;
2024-06-24 15:46:58 -04:00
class CNetwork
{
public:
2024-08-01 08:18:53 -04:00
CNetwork();
~CNetwork();
2024-08-01 08:18:53 -04:00
BOOL EnumProviders();
BOOL GetNbProviders();
char* GetProviderName(int index);
BOOL CreateProvider(int index);
void FreeProviderList();
BOOL EnumSessions();
char* GetSessionName(int index);
BOOL JoinSession(int index);
void FreeSessionList();
BOOL CreateSession(char* pName);
BOOL Send(LPVOID lpData, DWORD dwDataSize, DWORD dwFlags);
BOOL Receive(LPVOID pDest, DWORD dwDataSize, LPDWORD lpdwPlayer);
BOOL Close();
void FreeUnknownList();
BOOL IsHost();
2024-06-01 20:56:16 -04:00
protected:
2024-08-01 08:18:53 -04:00
LPDIRECTPLAY2 m_pDP;
NamedGUIDList m_providers;
NamedGUIDList m_sessions;
NamedGUIDList m_unknown;
BOOL m_bHost;
DPID m_dpid;
NetPlayer m_players[4];
};
static BOOL EnumProvidersCallback(LPGUID lpguidSP, LPSTR lpSTName,
DWORD dwMajorVersion, DWORD dwMinorVersion, NamedGUIDList* lpContext);
static BOOL EnumSessionsCallback(LPDPSESSIONDESC2 lpThisSD,
LPDWORD lpdwTimeOut, DWORD dwFlags, NamedGUIDList* lpContext);
void TraceErrorDP(HRESULT hErr);