73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
#ifndef NET_H
|
|
#define NET_H
|
|
|
|
#include "steam/steam_api.h"
|
|
#include "steam/isteamnetworkingsockets.h"
|
|
#include "tier0/platform.h"
|
|
#include "tier1/commandline.h"
|
|
|
|
abstract_class IIClient;
|
|
class CBasePlayer;
|
|
|
|
enum EPacketType
|
|
{
|
|
PACKET_TYPE_CREATE_ENTITTY = 0,
|
|
PACKET_TYPE_DESTROY_ENTITTY = 1,
|
|
PACKET_TYPE_ENTITY_UPDATE = 2,
|
|
|
|
// Player can only send this
|
|
PACKET_TYPE_PLAYER_MOVEMENT = 3,
|
|
|
|
PACKET_TYPE_PLAYER_JOIN = 4,
|
|
PACKET_TYPE_PLAYER_LEAVE = 5,
|
|
|
|
PACKET_TYPE_GAMEMODE_START = 6,
|
|
PACKET_TYPE_GAMEMODE_END = 7,
|
|
};
|
|
|
|
struct Packet_t
|
|
{
|
|
uint32_t type;
|
|
};
|
|
struct PacketPlayer_t: public Packet_t
|
|
{
|
|
uint64_t playerID;
|
|
uint32_t playerHandle;
|
|
};
|
|
struct PacketGameMode_t: public Packet_t
|
|
{
|
|
char szName[256];
|
|
};
|
|
|
|
enum EMessageMode
|
|
{
|
|
MESSAGE_MODE_UNRELIABLE,
|
|
MESSAGE_MODE_RELIABLE,
|
|
};
|
|
|
|
|
|
interface INetworking
|
|
{
|
|
public:
|
|
static void Init();
|
|
static void Deinit();
|
|
static void Frame();
|
|
static void SendData( void *pData, uint32_t nSize, IIClient *pClient, EMessageMode messageMode );
|
|
static void SendDataEverybody( void *pData, uint32_t nSize, EMessageMode messageMode );
|
|
static void SendDataEverybodyExcept( void *pData, uint32_t nSize, IIClient *pClient, EMessageMode messageMode );
|
|
static void SendDataEverybodyExcept( void *pData, uint32_t nSize, CBasePlayer *pClient, EMessageMode messageMode );
|
|
static void ProcessPacket( void *pData, uint32_t nSize, IIClient *pClient );
|
|
|
|
static void CreateServer();
|
|
static void GetServerInfo();
|
|
static void JoinServer( const char *szIP );
|
|
static void JoinServer( uint64_t nSteamID );
|
|
static void ClientConnectedCallback( SteamNetConnectionStatusChangedCallback_t *pCallback );
|
|
|
|
static bool IsServer();
|
|
static bool IsClient();
|
|
static bool IsConnected();
|
|
};
|
|
|
|
#endif
|