Files
funnygame/public/networkbase.h
2026-03-02 17:32:22 +02:00

63 lines
1.0 KiB
C++

#ifndef NETWORK_BASE_H
#define NETWORK_BASE_H
#include "tier1/interface.h"
enum EPacketArrival
{
PACKET_MAY_ARRIVE,
PACKET_MUST_ARRIVE
};
struct NetPacket_t
{
void *pData;
uint32_t uSize;
uint64_t m_uOwner;
EPacketArrival m_eArrival;
};
enum ENetCallbackType
{
NET_NONE = 0,
NET_TRYING_TO_CONNECT,
NET_CONNECTED,
NET_DISCONNECTED,
NET_SERVER_READY_TO_USE,
};
struct NetCallback_t
{
ENetCallbackType m_eType;
uint64_t m_ullUserID;
uint64_t m_ullUserConnection;
};
typedef uint32_t (*NetCallbackFn)( NetCallback_t *pUser );
abstract_class INetworkBase
{
public:
virtual ~INetworkBase() = default;
virtual void NetThink() = 0;
virtual void SetCallback( NetCallbackFn fnCallback ) = 0;
virtual uint32_t BHasUpdates() = 0;
virtual NetPacket_t RecievePacket() = 0;
virtual NetPacket_t PeekPacket() = 0;
virtual void SendPacket( NetPacket_t stPacket ) = 0;
virtual bool BIsActive() = 0;
virtual uint64_t GetSteamID() = 0;
virtual const char *GetIP() = 0;
virtual uint16_t GetPort() = 0;
};
#define GAME_PORT
#endif