98 lines
3.5 KiB
C++
98 lines
3.5 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
//=============================================================================//
|
|
|
|
#ifndef ICLIENT_H
|
|
#define ICLIENT_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "../common/userid.h"
|
|
#include "inetmsghandler.h"
|
|
#include "tier0/platform.h"
|
|
|
|
class IServer;
|
|
class INetMessage;
|
|
|
|
abstract_class IClient : public INetChannelHandler {
|
|
public:
|
|
virtual ~IClient() {}
|
|
|
|
// connect client
|
|
virtual void Connect(const char *szName, int nUserID,
|
|
INetChannel *pNetChannel, bool bFakePlayer,
|
|
int clientChallenge) = 0;
|
|
|
|
// set the client in a pending state waiting for a new game
|
|
virtual void Inactivate(void) = 0;
|
|
|
|
// Reconnect without dropiing the netchannel
|
|
virtual void Reconnect(void) = 0; // froce reconnect
|
|
|
|
// disconnects a client with a given reason
|
|
virtual void Disconnect(PRINTF_FORMAT_STRING const char *reason, ...) = 0;
|
|
|
|
virtual int GetPlayerSlot()
|
|
const = 0; // returns client slot (usually entity number-1)
|
|
virtual int GetUserID() const = 0; // unique ID on this server
|
|
virtual const USERID_t GetNetworkID() const = 0; // network wide ID
|
|
virtual const char *GetClientName() const = 0; // returns client name
|
|
virtual INetChannel *GetNetChannel() = 0; // returns client netchannel
|
|
virtual IServer *
|
|
GetServer() = 0; // returns the object server the client belongs to
|
|
virtual const char *GetUserSetting(const char *cvar)
|
|
const = 0; // returns a clients FCVAR_USERINFO setting
|
|
virtual const char *GetNetworkIDString()
|
|
const = 0; // returns a human readable representation of the network id
|
|
|
|
// set/get client data rate in bytes/second
|
|
virtual void SetRate(int nRate, bool bForce) = 0;
|
|
virtual int GetRate(void) const = 0;
|
|
|
|
// set/get updates/second rate
|
|
virtual void SetUpdateRate(int nUpdateRate, bool bForce) = 0;
|
|
virtual int GetUpdateRate(void) const = 0;
|
|
|
|
// clear complete object & free all memory
|
|
virtual void Clear(void) = 0;
|
|
|
|
// returns the highest world tick number acknowledge by client
|
|
virtual int GetMaxAckTickCount() const = 0;
|
|
|
|
// execute a client command
|
|
virtual bool ExecuteStringCommand(const char *s) = 0;
|
|
// send client a network message
|
|
virtual bool SendNetMsg(INetMessage & msg, bool bForceReliable = false) = 0;
|
|
// send client a text message
|
|
virtual void ClientPrintf(PRINTF_FORMAT_STRING const char *fmt, ...) = 0;
|
|
|
|
// client has established network channels, nothing else
|
|
virtual bool IsConnected(void) const = 0;
|
|
// client is downloading signon data
|
|
virtual bool IsSpawned(void) const = 0;
|
|
// client active is ingame, receiving snapshots
|
|
virtual bool IsActive(void) const = 0;
|
|
// returns true, if client is not a real player
|
|
virtual bool IsFakeClient(void) const = 0;
|
|
// returns true, if client is a HLTV proxy
|
|
virtual bool IsHLTV(void) const = 0;
|
|
#if defined(REPLAY_ENABLED)
|
|
// returns true, if client is a Replay proxy
|
|
virtual bool IsReplay(void) const = 0;
|
|
#else
|
|
// !KLUDGE! Reduce number of #ifdefs required
|
|
inline bool IsReplay(void) const { return false; }
|
|
#endif
|
|
// returns true, if client hears this player
|
|
virtual bool IsHearingClient(int index) const = 0;
|
|
// returns true, if client hears this player by proximity
|
|
virtual bool IsProximityHearingClient(int index) const = 0;
|
|
|
|
virtual void SetMaxRoutablePayloadSize(int nMaxRoutablePayloadSize) = 0;
|
|
};
|
|
|
|
#endif // ICLIENT_H
|