diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /sp/src/game/client/iclientmode.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/game/client/iclientmode.h')
| -rw-r--r-- | sp/src/game/client/iclientmode.h | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/sp/src/game/client/iclientmode.h b/sp/src/game/client/iclientmode.h new file mode 100644 index 00000000..afb3699f --- /dev/null +++ b/sp/src/game/client/iclientmode.h @@ -0,0 +1,154 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $Revision: $
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef ICLIENTMODE_H
+#define ICLIENTMODE_H
+
+#include <vgui/VGUI.h>
+#include "client_virtualreality.h"
+
+class CViewSetup;
+class C_BaseEntity;
+class C_BasePlayer;
+class CUserCmd;
+
+namespace vgui
+{
+ class Panel;
+ class AnimationController;
+}
+
+// Message mode types
+enum
+{
+ MM_NONE = 0,
+ MM_SAY,
+ MM_SAY_TEAM,
+};
+
+abstract_class IClientMode
+{
+// Misc.
+public:
+
+ virtual ~IClientMode() {}
+
+ // Called before the HUD is initialized.
+ virtual void InitViewport()=0;
+
+ // One time init when .dll is first loaded.
+ virtual void Init()=0;
+
+ // Called when vgui is shutting down.
+ virtual void VGui_Shutdown() = 0;
+
+ // One time call when dll is shutting down
+ virtual void Shutdown()=0;
+
+ // Called when switching from one IClientMode to another.
+ // This can re-layout the view and such.
+ // Note that Enable and Disable are called when the DLL initializes and shuts down.
+ virtual void Enable()=0;
+
+ // Called when it's about to go into another client mode.
+ virtual void Disable()=0;
+
+ // Called when initializing or when the view changes.
+ // This should move the viewport into the correct position.
+ virtual void Layout()=0;
+
+ // Gets at the viewport, if there is one...
+ virtual vgui::Panel *GetViewport() = 0;
+
+ // Gets at the viewports vgui panel animation controller, if there is one...
+ virtual vgui::AnimationController *GetViewportAnimationController() = 0;
+
+ // called every time shared client dll/engine data gets changed,
+ // and gives the cdll a chance to modify the data.
+ virtual void ProcessInput( bool bActive ) = 0;
+
+ // The mode can choose to draw/not draw entities.
+ virtual bool ShouldDrawDetailObjects( ) = 0;
+ virtual bool ShouldDrawEntity(C_BaseEntity *pEnt) = 0;
+ virtual bool ShouldDrawLocalPlayer( C_BasePlayer *pPlayer ) = 0;
+ virtual bool ShouldDrawParticles( ) = 0;
+
+ // The mode can choose to not draw fog
+ 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;
+
+ // Certain modes hide the view model
+ virtual bool ShouldDrawViewModel( void ) = 0;
+ virtual bool ShouldDrawCrosshair( void ) = 0;
+
+ // Let mode override viewport for engine
+ virtual void AdjustEngineViewport( int& x, int& y, int& width, int& height ) = 0;
+
+ // Called before rendering a view.
+ virtual void PreRender( CViewSetup *pSetup ) = 0;
+
+ // Called after everything is rendered.
+ 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;
+
+ //=============================================================================
+ // HPE_BEGIN:
+ // [menglish] Save server information shown to the client in a persistent place
+ //=============================================================================
+
+ virtual wchar_t* GetServerName() = 0;
+ virtual void SetServerName(wchar_t* name) = 0;
+ virtual wchar_t* GetMapName() = 0;
+ virtual void SetMapName(wchar_t* name) = 0;
+
+ //=============================================================================
+ // HPE_END
+ //=============================================================================
+
+ virtual bool DoPostScreenSpaceEffects( const CViewSetup *pSetup ) = 0;
+
+ virtual void DisplayReplayMessage( const char *pLocalizeName, float flDuration, bool bUrgent,
+ const char *pSound, bool bDlg ) = 0;
+
+// Updates.
+public:
+
+ // Called every frame.
+ virtual void Update()=0;
+
+ // Returns true if VR mode should black out everything around the UI
+ virtual bool ShouldBlackoutAroundHUD() = 0;
+
+ // Returns true if VR mode should black out everything around the UI
+ virtual HeadtrackMovementMode_t ShouldOverrideHeadtrackControl() = 0;
+
+ virtual bool IsInfoPanelAllowed() = 0;
+ virtual void InfoPanelDisplayed() = 0;
+};
+
+extern IClientMode *g_pClientMode;
+
+#endif
|