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.
162 lines
4.7 KiB
162 lines
4.7 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
//=============================================================================
|
||
|
|
||
|
#ifndef TF_CLIENTMODE_H
|
||
|
#define TF_CLIENTMODE_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "clientmode_shared.h"
|
||
|
#include "tf_viewport.h"
|
||
|
#include "GameUI/IGameUI.h"
|
||
|
#include "halloween/tf_weapon_spellbook.h"
|
||
|
#include "tf_hud_teamgoal_tournament.h"
|
||
|
|
||
|
class CHudMenuEngyBuild;
|
||
|
class CHudMenuEngyDestroy;
|
||
|
class CHudMenuSpyDisguise;
|
||
|
class CTFFreezePanel;
|
||
|
class CItemQuickSwitchPanel;
|
||
|
class CHudEurekaEffectTeleportMenu;
|
||
|
class CHudMenuTauntSelection;
|
||
|
class CHudInspectPanel;
|
||
|
class CHudUpgradePanel;
|
||
|
#ifdef STAGING_ONLY
|
||
|
class CHudMenuSpyBuild;
|
||
|
#endif // STAGING_ONLY
|
||
|
#if defined( _X360 )
|
||
|
class CTFClientScoreBoardDialog;
|
||
|
#endif
|
||
|
|
||
|
class ClientModeTFNormal : public ClientModeShared
|
||
|
{
|
||
|
DECLARE_CLASS( ClientModeTFNormal, ClientModeShared );
|
||
|
|
||
|
private:
|
||
|
|
||
|
// IClientMode overrides.
|
||
|
public:
|
||
|
|
||
|
ClientModeTFNormal();
|
||
|
virtual ~ClientModeTFNormal();
|
||
|
|
||
|
virtual void Init();
|
||
|
virtual void InitViewport();
|
||
|
virtual void Shutdown();
|
||
|
|
||
|
virtual void LevelInit( const char *newmap ) OVERRIDE;
|
||
|
|
||
|
// virtual int KeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
|
||
|
|
||
|
virtual float GetViewModelFOV( void );
|
||
|
virtual bool ShouldDrawViewModel();
|
||
|
virtual bool ShouldDrawCrosshair( void );
|
||
|
virtual bool ShouldBlackoutAroundHUD() OVERRIDE;
|
||
|
virtual HeadtrackMovementMode_t ShouldOverrideHeadtrackControl() OVERRIDE;
|
||
|
|
||
|
int GetDeathMessageStartHeight( void );
|
||
|
|
||
|
virtual void FireGameEvent( IGameEvent *event );
|
||
|
virtual void PostRenderVGui();
|
||
|
|
||
|
virtual bool CreateMove( float flInputSampleTime, CUserCmd *cmd );
|
||
|
|
||
|
virtual int HudElementKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
|
||
|
virtual int HandleSpectatorKeyInput( int down, ButtonCode_t keynum, const char *pszCurrentBinding );
|
||
|
|
||
|
virtual bool DoPostScreenSpaceEffects( const CViewSetup *pSetup );
|
||
|
virtual void Update();
|
||
|
virtual void ComputeVguiResConditions( KeyValues *pkvConditions ) OVERRIDE;
|
||
|
|
||
|
virtual bool IsInfoPanelAllowed() OVERRIDE;
|
||
|
virtual void InfoPanelDisplayed() OVERRIDE;
|
||
|
virtual bool IsHTMLInfoPanelAllowed() OVERRIDE;
|
||
|
|
||
|
IGameUI *GameUI( void ) { return m_pGameUI; }
|
||
|
|
||
|
const char *GetLastConnectedServerName( void ) const; // return the name of the last server we have connected to
|
||
|
uint32 GetLastConnectedServerIP( void ) const; // return the IP of the last server we have connected to
|
||
|
int GetLastConnectedServerPort( void ) const; // return the port of the last server we have connected to
|
||
|
|
||
|
void PrintTextToChat( const char *pText, KeyValues *pKeyValues = NULL );
|
||
|
void PrintTextToChatPlayer( int iPlayerIndex, const char *pText, KeyValues *pKeyValues = NULL );
|
||
|
|
||
|
#if !defined(NO_STEAM)
|
||
|
STEAM_CALLBACK_MANUAL( ClientModeTFNormal, OnScreenshotRequested, ScreenshotRequested_t, m_CallbackScreenshotRequested );
|
||
|
#endif
|
||
|
|
||
|
bool IsEngyBuildVisible() const;
|
||
|
bool IsEngyDestroyVisible() const;
|
||
|
bool IsEngyEurekaTeleportVisible() const;
|
||
|
bool IsSpyDisguiseVisible() const;
|
||
|
bool IsUpgradePanelVisible() const;
|
||
|
bool IsTauntSelectPanelVisible() const;
|
||
|
|
||
|
virtual void OnDemoRecordStart( char const* pDemoBaseName ) OVERRIDE;
|
||
|
virtual void OnDemoRecordStop() OVERRIDE;
|
||
|
|
||
|
private:
|
||
|
// void UpdateSpectatorMode( void );
|
||
|
|
||
|
private:
|
||
|
CHudMenuEngyBuild *m_pMenuEngyBuild;
|
||
|
CHudMenuEngyDestroy *m_pMenuEngyDestroy;
|
||
|
CHudMenuSpyDisguise *m_pMenuSpyDisguise;
|
||
|
CHudMenuTauntSelection *m_pMenuTauntSelection;
|
||
|
CHudUpgradePanel *m_pMenuUpgradePanel;
|
||
|
#ifdef STAGING_ONLY
|
||
|
CHudMenuSpyBuild *m_pMenuSpyBuild;
|
||
|
#endif // STAGING_ONLY
|
||
|
CHudSpellMenu *m_pMenuSpell;
|
||
|
CHudEurekaEffectTeleportMenu *m_pEurekaTeleportMenu;
|
||
|
CHudTeamGoalTournament *m_pTeamGoalTournament;
|
||
|
|
||
|
CTFFreezePanel *m_pFreezePanel;
|
||
|
CItemQuickSwitchPanel *m_pQuickSwitch;
|
||
|
CHudInspectPanel *m_pInspectPanel;
|
||
|
IGameUI *m_pGameUI;
|
||
|
bool m_wasConnectedLastUpdate;
|
||
|
|
||
|
char *m_lastServerName;
|
||
|
uint32 m_lastServerIP;
|
||
|
int m_lastServerPort;
|
||
|
uint32 m_lastServerConnectTime;
|
||
|
|
||
|
float m_flNextAllowedHighFiveHintTime;
|
||
|
|
||
|
bool m_bInfoPanelShown;
|
||
|
bool m_bRestrictInfoPanel;
|
||
|
|
||
|
void AskFavoriteOrBlacklist() const;
|
||
|
|
||
|
#if defined( _X360 )
|
||
|
CTFClientScoreBoardDialog *m_pScoreboard;
|
||
|
#endif
|
||
|
};
|
||
|
|
||
|
inline const char *ClientModeTFNormal::GetLastConnectedServerName( void ) const
|
||
|
{
|
||
|
return m_lastServerName;
|
||
|
}
|
||
|
|
||
|
inline uint32 ClientModeTFNormal::GetLastConnectedServerIP( void ) const
|
||
|
{
|
||
|
return m_lastServerIP;
|
||
|
}
|
||
|
|
||
|
inline int ClientModeTFNormal::GetLastConnectedServerPort( void ) const
|
||
|
{
|
||
|
return m_lastServerPort;
|
||
|
}
|
||
|
|
||
|
extern IClientMode *GetClientModeNormal();
|
||
|
extern ClientModeTFNormal* GetClientModeTFNormal();
|
||
|
|
||
|
void PlayOutOfGameSound( const char *pszSound );
|
||
|
float PlaySoundEntry( const char* pszSoundEntryName ); // Returns the duration of the sound
|
||
|
#endif // TF_CLIENTMODE_H
|