You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.3 KiB
92 lines
3.3 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef ICLIENT_H |
|
#define ICLIENT_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <inetmsghandler.h> |
|
#include "tier0/platform.h" |
|
#include "userid.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
|
|
|