mirror of
https://github.com/0TheSpy/Seaside.git
synced 2025-01-11 03:32:10 +08:00
142 lines
4.0 KiB
C++
142 lines
4.0 KiB
C++
#ifndef ICLIENT_H
|
|
#define ICLIENT_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "inetmsghandler.h"
|
|
#include "platform.h"
|
|
#include "userid.h"
|
|
#include "utlvector.h"
|
|
|
|
class IServer;
|
|
class INetMessage;
|
|
struct NetMessageCvar_t;
|
|
class CMsg_CVars;
|
|
|
|
enum CrossPlayPlatform_t
|
|
{
|
|
CROSSPLAYPLATFORM_UNKNOWN = 0,
|
|
CROSSPLAYPLATFORM_PC,
|
|
CROSSPLAYPLATFORM_X360,
|
|
CROSSPLAYPLATFORM_PS3,
|
|
|
|
CROSSPLAYPLATFORM_LAST = CROSSPLAYPLATFORM_PS3,
|
|
};
|
|
|
|
inline bool IsCrossPlayPlatformAConsole(CrossPlayPlatform_t platform)
|
|
{
|
|
return (platform == CROSSPLAYPLATFORM_X360) || (platform == CROSSPLAYPLATFORM_PS3);
|
|
}
|
|
|
|
#if defined( _GAMECONSOLE )
|
|
# if defined( PLATFORM_X360 )
|
|
# define CROSSPLAYPLATFORM_THISPLATFORM CROSSPLAYPLATFORM_X360
|
|
# elif defined( PLATFORM_PS3 )
|
|
# define CROSSPLAYPLATFORM_THISPLATFORM CROSSPLAYPLATFORM_PS3
|
|
# else
|
|
#pragma message( "Unknown console, please update this platform definition" )
|
|
# define CROSSPLAYPLATFORM_THISPLATFORM CROSSPLAYPLATFORM_UNKNOWN
|
|
# endif
|
|
#else
|
|
# define CROSSPLAYPLATFORM_THISPLATFORM CROSSPLAYPLATFORM_PC
|
|
#endif
|
|
|
|
struct HltvReplayParams_t
|
|
{
|
|
HltvReplayParams_t()
|
|
{
|
|
m_nPrimaryTargetEntIndex = 0;
|
|
m_flPlaybackSpeed = 1.0f;
|
|
m_flDelay = 10.0f;
|
|
m_flStopAt = 0.0f;
|
|
m_flSlowdownBeginAt = 0;
|
|
m_flSlowdownEndAt = 0;
|
|
m_flSlowdownRate = 1.0f;
|
|
m_bAbortCurrentReplay = false;
|
|
}
|
|
int m_nPrimaryTargetEntIndex;
|
|
float m_flDelay;
|
|
float m_flStopAt;
|
|
float m_flPlaybackSpeed;
|
|
float m_flSlowdownBeginAt;
|
|
float m_flSlowdownEndAt;
|
|
float m_flSlowdownRate;
|
|
bool m_bAbortCurrentReplay;
|
|
};
|
|
|
|
abstract_class IClient : public INetChannelHandler
|
|
{
|
|
public:
|
|
virtual ~IClient() {}
|
|
|
|
virtual void Connect(const char* szName, int nUserID, INetChannel * pNetChannel, bool bFakePlayer, CrossPlayPlatform_t clientPlatform, const CMsg_CVars * pVecCvars = NULL) = 0;
|
|
|
|
virtual void Inactivate(void) = 0;
|
|
|
|
virtual void Reconnect(void) = 0;
|
|
|
|
virtual void Disconnect(const char* reason) = 0;
|
|
|
|
virtual bool ChangeSplitscreenUser(int nSplitScreenUserSlot) = 0;
|
|
|
|
virtual int GetPlayerSlot() const = 0;
|
|
virtual int GetUserID() const = 0;
|
|
virtual const USERID_t GetNetworkID() const = 0;
|
|
virtual const char* GetClientName() const = 0;
|
|
virtual INetChannel* GetNetChannel() = 0;
|
|
virtual IServer* GetServer() = 0;
|
|
virtual const char* GetUserSetting(const char* cvar) const = 0;
|
|
virtual const char* GetNetworkIDString() const = 0;
|
|
|
|
virtual void SetRate(int nRate, bool bForce) = 0;
|
|
virtual int GetRate(void) const = 0;
|
|
|
|
virtual void SetUpdateRate(float fUpdateRate, bool bForce) = 0;
|
|
virtual float GetUpdateRate(void) const = 0;
|
|
|
|
virtual void Clear(void) = 0;
|
|
|
|
virtual int GetMaxAckTickCount() const = 0;
|
|
|
|
virtual bool ExecuteStringCommand(const char* s) = 0;
|
|
virtual bool SendNetMsg(INetMessage& msg, bool bForceReliable = false, bool bVoice = false) = 0;
|
|
virtual void ClientPrintf(const char* fmt, ...) = 0;
|
|
|
|
virtual bool IsConnected(void) const = 0;
|
|
virtual bool IsSpawned(void) const = 0;
|
|
virtual bool IsActive(void) const = 0;
|
|
virtual bool IsFakeClient(void) const = 0;
|
|
virtual bool IsHLTV(void) const = 0;
|
|
#if defined( REPLAY_ENABLED )
|
|
virtual bool IsReplay(void) const = 0;
|
|
#endif
|
|
virtual bool IsHearingClient(int index) const = 0;
|
|
virtual bool IsProximityHearingClient(int index) const = 0;
|
|
|
|
virtual void SetMaxRoutablePayloadSize(int nMaxRoutablePayloadSize) = 0;
|
|
|
|
virtual bool IsSplitScreenUser(void) const = 0;
|
|
|
|
virtual bool CheckConnect(void) = 0;
|
|
|
|
virtual bool IsLowViolenceClient(void) const = 0;
|
|
|
|
virtual IClient* GetSplitScreenOwner() = 0;
|
|
|
|
virtual int GetNumPlayers() = 0;
|
|
|
|
virtual bool IsHumanPlayer() const = 0;
|
|
|
|
virtual CrossPlayPlatform_t GetClientPlatform() const = 0;
|
|
|
|
virtual bool StartHltvReplay(const HltvReplayParams_t& params) = 0;
|
|
virtual void StopHltvReplay() = 0;
|
|
virtual int GetHltvReplayDelay() = 0;
|
|
virtual const char* GetHltvReplayStatus()const { return ""; }
|
|
virtual bool CanStartHltvReplay() = 0;
|
|
virtual void ResetReplayRequestTime() = 0;
|
|
};
|
|
|
|
#endif
|