summaryrefslogtreecommitdiff
path: root/game/client/portal/clientmode_portal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/portal/clientmode_portal.cpp')
-rw-r--r--game/client/portal/clientmode_portal.cpp227
1 files changed, 227 insertions, 0 deletions
diff --git a/game/client/portal/clientmode_portal.cpp b/game/client/portal/clientmode_portal.cpp
new file mode 100644
index 0000000..d1fbb00
--- /dev/null
+++ b/game/client/portal/clientmode_portal.cpp
@@ -0,0 +1,227 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//
+//=============================================================================//
+#include "cbase.h"
+#include "ivmodemanager.h"
+#include "clientmode_hlnormal.h"
+#include "panelmetaclassmgr.h"
+#include "c_playerresource.h"
+#include "c_portal_player.h"
+#include "clientmode_portal.h"
+#include "usermessages.h"
+#include "prediction.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+// default FOV for HL2
+ConVar default_fov( "default_fov", "75", FCVAR_CHEAT );
+ConVar fov_desired( "fov_desired", "75", FCVAR_ARCHIVE | FCVAR_USERINFO, "Sets the base field-of-view.", true, 75.0, true, 90.0 );
+
+
+// The current client mode. Always ClientModeNormal in HL.
+IClientMode *g_pClientMode = NULL;
+
+//extern EHANDLE g_eKillTarget1;
+//extern EHANDLE g_eKillTarget2;
+
+vgui::HScheme g_hVGuiCombineScheme = 0;
+
+#define SCREEN_FILE "scripts/vgui_screens.txt"
+
+//void MsgFunc_KillCam(bf_read &msg)
+//{
+// C_Portal_Player *pPlayer = C_Portal_Player::GetLocalPortalPlayer();
+//
+// if ( !pPlayer )
+// return;
+//
+// g_eKillTarget1 = 0;
+// g_eKillTarget2 = 0;
+// g_nKillCamTarget1 = 0;
+// g_nKillCamTarget1 = 0;
+//
+// long iEncodedEHandle = msg.ReadLong();
+//
+// if( iEncodedEHandle == INVALID_NETWORKED_EHANDLE_VALUE )
+// return;
+//
+// int iEntity = iEncodedEHandle & ((1 << MAX_EDICT_BITS) - 1);
+// int iSerialNum = iEncodedEHandle >> MAX_EDICT_BITS;
+//
+// EHANDLE hEnt1( iEntity, iSerialNum );
+//
+// iEncodedEHandle = msg.ReadLong();
+//
+// if( iEncodedEHandle == INVALID_NETWORKED_EHANDLE_VALUE )
+// return;
+//
+// iEntity = iEncodedEHandle & ((1 << MAX_EDICT_BITS) - 1);
+// iSerialNum = iEncodedEHandle >> MAX_EDICT_BITS;
+//
+// EHANDLE hEnt2( iEntity, iSerialNum );
+//
+// g_eKillTarget1 = hEnt1;
+// g_eKillTarget2 = hEnt2;
+//
+// if ( g_eKillTarget1.Get() )
+// {
+// g_nKillCamTarget1 = g_eKillTarget1.Get()->entindex();
+// }
+//
+// if ( g_eKillTarget2.Get() )
+// {
+// g_nKillCamTarget2 = g_eKillTarget2.Get()->entindex();
+// }
+//}
+
+//-----------------------------------------------------------------------------
+// Purpose: this is the viewport that contains all the hud elements
+//-----------------------------------------------------------------------------
+class CHudViewport : public CBaseViewport
+{
+private:
+ DECLARE_CLASS_SIMPLE( CHudViewport, CBaseViewport );
+
+protected:
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme )
+ {
+ BaseClass::ApplySchemeSettings( pScheme );
+
+ gHUD.InitColors( pScheme );
+
+ SetPaintBackgroundEnabled( false );
+ }
+
+ virtual IViewPortPanel *CreatePanelByName( const char *szPanelName );
+};
+
+IViewPortPanel* CHudViewport::CreatePanelByName( const char *szPanelName )
+{
+ /*IViewPortPanel* newpanel = NULL;
+
+ if ( Q_strcmp( PANEL_SCOREBOARD, szPanelName) == 0 )
+ {
+ newpanel = new CHL2MPClientScoreBoardDialog( this );
+ return newpanel;
+ }
+ else if ( Q_strcmp(PANEL_INFO, szPanelName) == 0 )
+ {
+ newpanel = new CHL2MPTextWindow( this );
+ return newpanel;
+ }*/
+
+ return BaseClass::CreatePanelByName( szPanelName );
+}
+
+
+class CHLModeManager : public IVModeManager
+{
+public:
+ CHLModeManager( void );
+ virtual ~CHLModeManager( void );
+
+ virtual void Init( void );
+ virtual void SwitchMode( bool commander, bool force );
+ virtual void OverrideView( CViewSetup *pSetup );
+ virtual void CreateMove( float flInputSampleTime, CUserCmd *cmd );
+ virtual void LevelInit( const char *newmap );
+ virtual void LevelShutdown( void );
+};
+
+CHLModeManager::CHLModeManager( void )
+{
+}
+
+CHLModeManager::~CHLModeManager( void )
+{
+}
+
+void CHLModeManager::Init( void )
+{
+ g_pClientMode = GetClientModeNormal();
+ PanelMetaClassMgr()->LoadMetaClassDefinitionFile( SCREEN_FILE );
+}
+
+void CHLModeManager::SwitchMode( bool commander, bool force )
+{
+}
+
+void CHLModeManager::OverrideView( CViewSetup *pSetup )
+{
+}
+
+void CHLModeManager::CreateMove( float flInputSampleTime, CUserCmd *cmd )
+{
+}
+
+void CHLModeManager::LevelInit( const char *newmap )
+{
+ g_pClientMode->LevelInit( newmap );
+
+ if ( g_nKillCamMode > OBS_MODE_NONE )
+ {
+ g_bForceCLPredictOff = false;
+ }
+
+ g_nKillCamMode = OBS_MODE_NONE;
+ //g_nKillCamTarget1 = 0;
+ //g_nKillCamTarget2 = 0;
+}
+
+void CHLModeManager::LevelShutdown( void )
+{
+ g_pClientMode->LevelShutdown();
+}
+
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+ClientModePortalNormal::ClientModePortalNormal()
+{
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: If you don't know what a destructor is by now, you are probably going to get fired
+//-----------------------------------------------------------------------------
+ClientModePortalNormal::~ClientModePortalNormal()
+{
+}
+
+void ClientModePortalNormal::Init()
+{
+ BaseClass::Init();
+
+ //usermessages->HookMessage( "KillCam", MsgFunc_KillCam );
+}
+
+void ClientModePortalNormal::InitViewport()
+{
+ m_pViewport = new CHudViewport();
+ m_pViewport->Start( gameuifuncs, gameeventmanager );
+}
+
+ClientModePortalNormal g_ClientModeNormal;
+
+IClientMode *GetClientModeNormal()
+{
+ return &g_ClientModeNormal;
+}
+
+
+ClientModePortalNormal* GetClientModePortalNormal()
+{
+ Assert( dynamic_cast< ClientModePortalNormal* >( GetClientModeNormal() ) );
+
+ return static_cast< ClientModePortalNormal* >( GetClientModeNormal() );
+}
+
+
+static CHLModeManager g_HLModeManager;
+IVModeManager *modemanager = &g_HLModeManager;
+