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 /mp/src/game/client/clientmode_shared.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/game/client/clientmode_shared.h')
| -rw-r--r-- | mp/src/game/client/clientmode_shared.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/mp/src/game/client/clientmode_shared.h b/mp/src/game/client/clientmode_shared.h new file mode 100644 index 00000000..bf32cfd8 --- /dev/null +++ b/mp/src/game/client/clientmode_shared.h @@ -0,0 +1,161 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $Workfile: $
+// $Date: $
+// $NoKeywords: $
+//=============================================================================//
+#if !defined( CLIENTMODE_NORMAL_H )
+#define CLIENTMODE_NORMAL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "iclientmode.h"
+#include "GameEventListener.h"
+#include <baseviewport.h>
+
+class CBaseHudChat;
+class CBaseHudWeaponSelection;
+class CViewSetup;
+class C_BaseEntity;
+class C_BasePlayer;
+
+namespace vgui
+{
+class Panel;
+}
+
+//=============================================================================
+// HPE_BEGIN:
+// [tj] Moved this from the .cpp file so derived classes could access it
+//=============================================================================
+
+#define ACHIEVEMENT_ANNOUNCEMENT_MIN_TIME 10
+
+//=============================================================================
+// HPE_END
+//=============================================================================
+
+class CReplayReminderPanel;
+
+#define USERID2PLAYER(i) ToBasePlayer( ClientEntityList().GetEnt( engine->GetPlayerForUserID( i ) ) )
+
+extern IClientMode *GetClientModeNormal(); // must be implemented
+
+// This class implements client mode functionality common to HL2 and TF2.
+class ClientModeShared : public IClientMode, public CGameEventListener
+{
+// IClientMode overrides.
+public:
+ DECLARE_CLASS_NOBASE( ClientModeShared );
+
+ ClientModeShared();
+ virtual ~ClientModeShared();
+
+ virtual void Init();
+ virtual void InitViewport();
+ virtual void VGui_Shutdown();
+ virtual void Shutdown();
+
+ virtual void LevelInit( const char *newmap );
+ virtual void LevelShutdown( void );
+
+ virtual void Enable();
+ virtual void Disable();
+ virtual void Layout();
+
+ virtual void ReloadScheme( void );
+ virtual void OverrideView( CViewSetup *pSetup );
+ virtual bool ShouldDrawDetailObjects( );
+ virtual bool ShouldDrawEntity(C_BaseEntity *pEnt);
+ virtual bool ShouldDrawLocalPlayer( C_BasePlayer *pPlayer );
+ virtual bool ShouldDrawViewModel();
+ virtual bool ShouldDrawParticles( );
+ virtual bool ShouldDrawCrosshair( void );
+ virtual bool ShouldBlackoutAroundHUD() OVERRIDE;
+ virtual HeadtrackMovementMode_t ShouldOverrideHeadtrackControl() OVERRIDE;
+ virtual void AdjustEngineViewport( int& x, int& y, int& width, int& height );
+ virtual void PreRender(CViewSetup *pSetup);
+ virtual void PostRender();
+ virtual void PostRenderVGui();
+ virtual void ProcessInput(bool bActive);
+ virtual bool CreateMove( float flInputSampleTime, CUserCmd *cmd );
+ virtual void Update();
+
+ // Input
+ virtual int KeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
+ virtual int HudElementKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
+ virtual void OverrideMouseInput( float *x, float *y );
+ virtual void StartMessageMode( int iMessageModeType );
+ virtual vgui::Panel *GetMessagePanel();
+
+ virtual void ActivateInGameVGuiContext( vgui::Panel *pPanel );
+ virtual void DeactivateInGameVGuiContext();
+
+ // The mode can choose to not draw fog
+ virtual bool ShouldDrawFog( void );
+
+ virtual float GetViewModelFOV( void );
+ virtual vgui::Panel* GetViewport() { return m_pViewport; }
+ // Gets at the viewports vgui panel animation controller, if there is one...
+ virtual vgui::AnimationController *GetViewportAnimationController()
+ { return m_pViewport->GetAnimationController(); }
+
+ virtual void FireGameEvent( IGameEvent *event );
+
+ virtual bool CanRecordDemo( char *errorMsg, int length ) const { return true; }
+
+ virtual int HandleSpectatorKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
+
+ virtual void ComputeVguiResConditions( KeyValues *pkvConditions ) OVERRIDE;
+
+ //=============================================================================
+ // HPE_BEGIN:
+ // [menglish] Save server information shown to the client in a persistent place
+ //=============================================================================
+
+ virtual wchar_t* GetServerName() { return NULL; }
+ virtual void SetServerName(wchar_t* name) {};
+ virtual wchar_t* GetMapName() { return NULL; }
+ virtual void SetMapName(wchar_t* name) {};
+
+ //=============================================================================
+ // HPE_END
+ //=============================================================================
+
+ virtual bool DoPostScreenSpaceEffects( const CViewSetup *pSetup );
+
+ virtual void DisplayReplayMessage( const char *pLocalizeName, float flDuration, bool bUrgent,
+ const char *pSound, bool bDlg );
+
+ virtual bool IsInfoPanelAllowed() OVERRIDE { return true; }
+ virtual void InfoPanelDisplayed() OVERRIDE { }
+
+protected:
+ CBaseViewport *m_pViewport;
+
+ void DisplayReplayReminder();
+
+private:
+ virtual void UpdateReplayMessages();
+
+ void ClearReplayMessageList();
+
+#if defined( REPLAY_ENABLED )
+ float m_flReplayStartRecordTime;
+ float m_flReplayStopRecordTime;
+ CReplayReminderPanel *m_pReplayReminderPanel;
+#endif
+
+ // Message mode handling
+ // All modes share a common chat interface
+ CBaseHudChat *m_pChatElement;
+ vgui::HCursor m_CursorNone;
+ CBaseHudWeaponSelection *m_pWeaponSelection;
+ int m_nRootSize[2];
+};
+
+#endif // CLIENTMODE_NORMAL_H
+
|