mirror of
https://github.com/0TheSpy/Seaside.git
synced 2025-01-11 11:33:01 +08:00
112 lines
2.8 KiB
C
112 lines
2.8 KiB
C
|
#ifndef ICLIENTMODE_H
|
||
|
#define ICLIENTMODE_H
|
||
|
|
||
|
#include "VGUI.h"
|
||
|
#include "client_virtualreality.h"
|
||
|
|
||
|
class CViewSetup;
|
||
|
class C_BaseEntity;
|
||
|
class C_BasePlayer;
|
||
|
class CUserCmd;
|
||
|
|
||
|
namespace vgui
|
||
|
{
|
||
|
class Panel;
|
||
|
class AnimationController;
|
||
|
}
|
||
|
|
||
|
enum
|
||
|
{
|
||
|
MM_NONE = 0,
|
||
|
MM_SAY,
|
||
|
MM_SAY_TEAM,
|
||
|
};
|
||
|
|
||
|
abstract_class IClientMode
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
virtual ~IClientMode() {}
|
||
|
|
||
|
virtual void InitViewport() = 0;
|
||
|
|
||
|
virtual void Init() = 0;
|
||
|
|
||
|
virtual void VGui_Shutdown() = 0;
|
||
|
|
||
|
virtual void Shutdown() = 0;
|
||
|
|
||
|
virtual void Enable() = 0;
|
||
|
|
||
|
virtual void Disable() = 0;
|
||
|
|
||
|
virtual void Layout() = 0;
|
||
|
|
||
|
virtual vgui::Panel* GetViewport() = 0;
|
||
|
|
||
|
virtual vgui::AnimationController* GetViewportAnimationController() = 0;
|
||
|
|
||
|
virtual void ProcessInput(bool bActive) = 0;
|
||
|
|
||
|
virtual bool ShouldDrawDetailObjects() = 0;
|
||
|
virtual bool ShouldDrawEntity(C_BaseEntity* pEnt) = 0;
|
||
|
virtual bool ShouldDrawLocalPlayer(C_BasePlayer* pPlayer) = 0;
|
||
|
virtual bool ShouldDrawParticles() = 0;
|
||
|
|
||
|
virtual bool ShouldDrawFog(void) = 0;
|
||
|
|
||
|
virtual void OverrideView(CViewSetup* pSetup) = 0;
|
||
|
virtual int KeyInput(int down, ButtonCode_t keynum, const char* pszCurrentBinding) = 0;
|
||
|
virtual void StartMessageMode(int iMessageModeType) = 0;
|
||
|
virtual vgui::Panel* GetMessagePanel() = 0;
|
||
|
virtual void OverrideMouseInput(float* x, float* y) = 0;
|
||
|
virtual bool CreateMove(float flInputSampleTime, CUserCmd* cmd) = 0;
|
||
|
|
||
|
virtual void LevelInit(const char* newmap) = 0;
|
||
|
virtual void LevelShutdown(void) = 0;
|
||
|
|
||
|
virtual bool ShouldDrawViewModel(void) = 0;
|
||
|
virtual bool ShouldDrawCrosshair(void) = 0;
|
||
|
|
||
|
virtual void AdjustEngineViewport(int& x, int& y, int& width, int& height) = 0;
|
||
|
|
||
|
virtual void PreRender(CViewSetup* pSetup) = 0;
|
||
|
|
||
|
virtual void PostRender(void) = 0;
|
||
|
|
||
|
virtual void PostRenderVGui() = 0;
|
||
|
|
||
|
virtual void ActivateInGameVGuiContext(vgui::Panel* pPanel) = 0;
|
||
|
virtual void DeactivateInGameVGuiContext() = 0;
|
||
|
virtual float GetViewModelFOV(void) = 0;
|
||
|
|
||
|
virtual bool CanRecordDemo(char* errorMsg, int length) const = 0;
|
||
|
|
||
|
virtual void ComputeVguiResConditions(KeyValues* pkvConditions) = 0;
|
||
|
|
||
|
virtual wchar_t* GetServerName() = 0;
|
||
|
virtual void SetServerName(wchar_t* name) = 0;
|
||
|
virtual wchar_t* GetMapName() = 0;
|
||
|
virtual void SetMapName(wchar_t* name) = 0;
|
||
|
|
||
|
virtual bool DoPostScreenSpaceEffects(const CViewSetup* pSetup) = 0;
|
||
|
|
||
|
virtual void DisplayReplayMessage(const char* pLocalizeName, float flDuration, bool bUrgent,
|
||
|
const char* pSound, bool bDlg) = 0;
|
||
|
|
||
|
public:
|
||
|
|
||
|
virtual void Update() = 0;
|
||
|
|
||
|
virtual bool ShouldBlackoutAroundHUD() = 0;
|
||
|
|
||
|
virtual HeadtrackMovementMode_t ShouldOverrideHeadtrackControl() = 0;
|
||
|
|
||
|
virtual bool IsInfoPanelAllowed() = 0;
|
||
|
virtual void InfoPanelDisplayed() = 0;
|
||
|
virtual bool IsHTMLInfoPanelAllowed() = 0;
|
||
|
};
|
||
|
|
||
|
extern IClientMode* g_pClientMode;
|
||
|
|
||
|
#endif
|