Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

227 lines
5.4 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //
  7. //=============================================================================//
  8. #include "cbase.h"
  9. #include "ivmodemanager.h"
  10. #include "clientmode_hlnormal.h"
  11. #include "panelmetaclassmgr.h"
  12. #include "c_playerresource.h"
  13. #include "c_portal_player.h"
  14. #include "clientmode_portal.h"
  15. #include "usermessages.h"
  16. #include "prediction.h"
  17. // memdbgon must be the last include file in a .cpp file!!!
  18. #include "tier0/memdbgon.h"
  19. // default FOV for HL2
  20. ConVar default_fov( "default_fov", "75", FCVAR_CHEAT );
  21. ConVar fov_desired( "fov_desired", "75", FCVAR_ARCHIVE | FCVAR_USERINFO, "Sets the base field-of-view.", true, 75.0, true, 90.0 );
  22. // The current client mode. Always ClientModeNormal in HL.
  23. IClientMode *g_pClientMode = NULL;
  24. //extern EHANDLE g_eKillTarget1;
  25. //extern EHANDLE g_eKillTarget2;
  26. vgui::HScheme g_hVGuiCombineScheme = 0;
  27. #define SCREEN_FILE "scripts/vgui_screens.txt"
  28. //void MsgFunc_KillCam(bf_read &msg)
  29. //{
  30. // C_Portal_Player *pPlayer = C_Portal_Player::GetLocalPortalPlayer();
  31. //
  32. // if ( !pPlayer )
  33. // return;
  34. //
  35. // g_eKillTarget1 = 0;
  36. // g_eKillTarget2 = 0;
  37. // g_nKillCamTarget1 = 0;
  38. // g_nKillCamTarget1 = 0;
  39. //
  40. // long iEncodedEHandle = msg.ReadLong();
  41. //
  42. // if( iEncodedEHandle == INVALID_NETWORKED_EHANDLE_VALUE )
  43. // return;
  44. //
  45. // int iEntity = iEncodedEHandle & ((1 << MAX_EDICT_BITS) - 1);
  46. // int iSerialNum = iEncodedEHandle >> MAX_EDICT_BITS;
  47. //
  48. // EHANDLE hEnt1( iEntity, iSerialNum );
  49. //
  50. // iEncodedEHandle = msg.ReadLong();
  51. //
  52. // if( iEncodedEHandle == INVALID_NETWORKED_EHANDLE_VALUE )
  53. // return;
  54. //
  55. // iEntity = iEncodedEHandle & ((1 << MAX_EDICT_BITS) - 1);
  56. // iSerialNum = iEncodedEHandle >> MAX_EDICT_BITS;
  57. //
  58. // EHANDLE hEnt2( iEntity, iSerialNum );
  59. //
  60. // g_eKillTarget1 = hEnt1;
  61. // g_eKillTarget2 = hEnt2;
  62. //
  63. // if ( g_eKillTarget1.Get() )
  64. // {
  65. // g_nKillCamTarget1 = g_eKillTarget1.Get()->entindex();
  66. // }
  67. //
  68. // if ( g_eKillTarget2.Get() )
  69. // {
  70. // g_nKillCamTarget2 = g_eKillTarget2.Get()->entindex();
  71. // }
  72. //}
  73. //-----------------------------------------------------------------------------
  74. // Purpose: this is the viewport that contains all the hud elements
  75. //-----------------------------------------------------------------------------
  76. class CHudViewport : public CBaseViewport
  77. {
  78. private:
  79. DECLARE_CLASS_SIMPLE( CHudViewport, CBaseViewport );
  80. protected:
  81. virtual void ApplySchemeSettings( vgui::IScheme *pScheme )
  82. {
  83. BaseClass::ApplySchemeSettings( pScheme );
  84. gHUD.InitColors( pScheme );
  85. SetPaintBackgroundEnabled( false );
  86. }
  87. virtual IViewPortPanel *CreatePanelByName( const char *szPanelName );
  88. };
  89. IViewPortPanel* CHudViewport::CreatePanelByName( const char *szPanelName )
  90. {
  91. /*IViewPortPanel* newpanel = NULL;
  92. if ( Q_strcmp( PANEL_SCOREBOARD, szPanelName) == 0 )
  93. {
  94. newpanel = new CHL2MPClientScoreBoardDialog( this );
  95. return newpanel;
  96. }
  97. else if ( Q_strcmp(PANEL_INFO, szPanelName) == 0 )
  98. {
  99. newpanel = new CHL2MPTextWindow( this );
  100. return newpanel;
  101. }*/
  102. return BaseClass::CreatePanelByName( szPanelName );
  103. }
  104. class CHLModeManager : public IVModeManager
  105. {
  106. public:
  107. CHLModeManager( void );
  108. virtual ~CHLModeManager( void );
  109. virtual void Init( void );
  110. virtual void SwitchMode( bool commander, bool force );
  111. virtual void OverrideView( CViewSetup *pSetup );
  112. virtual void CreateMove( float flInputSampleTime, CUserCmd *cmd );
  113. virtual void LevelInit( const char *newmap );
  114. virtual void LevelShutdown( void );
  115. };
  116. CHLModeManager::CHLModeManager( void )
  117. {
  118. }
  119. CHLModeManager::~CHLModeManager( void )
  120. {
  121. }
  122. void CHLModeManager::Init( void )
  123. {
  124. g_pClientMode = GetClientModeNormal();
  125. PanelMetaClassMgr()->LoadMetaClassDefinitionFile( SCREEN_FILE );
  126. }
  127. void CHLModeManager::SwitchMode( bool commander, bool force )
  128. {
  129. }
  130. void CHLModeManager::OverrideView( CViewSetup *pSetup )
  131. {
  132. }
  133. void CHLModeManager::CreateMove( float flInputSampleTime, CUserCmd *cmd )
  134. {
  135. }
  136. void CHLModeManager::LevelInit( const char *newmap )
  137. {
  138. g_pClientMode->LevelInit( newmap );
  139. if ( g_nKillCamMode > OBS_MODE_NONE )
  140. {
  141. g_bForceCLPredictOff = false;
  142. }
  143. g_nKillCamMode = OBS_MODE_NONE;
  144. //g_nKillCamTarget1 = 0;
  145. //g_nKillCamTarget2 = 0;
  146. }
  147. void CHLModeManager::LevelShutdown( void )
  148. {
  149. g_pClientMode->LevelShutdown();
  150. }
  151. //-----------------------------------------------------------------------------
  152. // Purpose:
  153. //-----------------------------------------------------------------------------
  154. ClientModePortalNormal::ClientModePortalNormal()
  155. {
  156. }
  157. //-----------------------------------------------------------------------------
  158. // Purpose: If you don't know what a destructor is by now, you are probably going to get fired
  159. //-----------------------------------------------------------------------------
  160. ClientModePortalNormal::~ClientModePortalNormal()
  161. {
  162. }
  163. void ClientModePortalNormal::Init()
  164. {
  165. BaseClass::Init();
  166. //usermessages->HookMessage( "KillCam", MsgFunc_KillCam );
  167. }
  168. void ClientModePortalNormal::InitViewport()
  169. {
  170. m_pViewport = new CHudViewport();
  171. m_pViewport->Start( gameuifuncs, gameeventmanager );
  172. }
  173. ClientModePortalNormal g_ClientModeNormal;
  174. IClientMode *GetClientModeNormal()
  175. {
  176. return &g_ClientModeNormal;
  177. }
  178. ClientModePortalNormal* GetClientModePortalNormal()
  179. {
  180. Assert( dynamic_cast< ClientModePortalNormal* >( GetClientModeNormal() ) );
  181. return static_cast< ClientModePortalNormal* >( GetClientModeNormal() );
  182. }
  183. static CHLModeManager g_HLModeManager;
  184. IVModeManager *modemanager = &g_HLModeManager;