Files
funnygame/public/networking.h
2025-07-13 15:47:42 +03:00

72 lines
1.6 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 ClientConnectedCallback( SteamNetConnectionStatusChangedCallback_t *pCallback );
static bool IsServer();
static bool IsClient();
static bool IsConnected();
};
#endif