diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /gameui/GameUI_Interface.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'gameui/GameUI_Interface.h')
| -rw-r--r-- | gameui/GameUI_Interface.h | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/gameui/GameUI_Interface.h b/gameui/GameUI_Interface.h new file mode 100644 index 0000000..cee5c77 --- /dev/null +++ b/gameui/GameUI_Interface.h @@ -0,0 +1,159 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Defines the interface that the GameUI dll exports +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef GAMEUI_INTERFACE_H +#define GAMEUI_INTERFACE_H +#pragma once + +#include "GameUI/IGameUI.h" + +#include <vgui_controls/Panel.h> +#include <vgui_controls/PHandle.h> + +class IGameClientExports; + +//----------------------------------------------------------------------------- +// Purpose: Implementation of GameUI's exposed interface +//----------------------------------------------------------------------------- +class CGameUI : public IGameUI +{ +public: + CGameUI(); + ~CGameUI(); + + virtual void Initialize( CreateInterfaceFn appFactory ); + virtual void Connect( CreateInterfaceFn gameFactory ); + virtual void Start(); + virtual void Shutdown(); + virtual void RunFrame(); + virtual void PostInit(); + + // plays the startup mp3 when GameUI starts + void PlayGameStartupSound(); + + // Engine wrappers for activating / hiding the gameUI + void ActivateGameUI(); + void HideGameUI(); + + // Toggle allowing the engine to hide the game UI with the escape key + void PreventEngineHideGameUI(); + void AllowEngineHideGameUI(); + + virtual void SetLoadingBackgroundDialog( vgui::VPANEL panel ); + + // Bonus maps interfaces + virtual void BonusMapUnlock( const char *pchFileName = NULL, const char *pchMapName = NULL ); + virtual void BonusMapComplete( const char *pchFileName = NULL, const char *pchMapName = NULL ); + virtual void BonusMapChallengeUpdate( const char *pchFileName, const char *pchMapName, const char *pchChallengeName, int iBest ); + virtual void BonusMapChallengeNames( char *pchFileName, char *pchMapName, char *pchChallengeName ); + virtual void BonusMapChallengeObjectives( int &iBronze, int &iSilver, int &iGold ); + virtual void BonusMapDatabaseSave( void ); + virtual int BonusMapNumAdvancedCompleted( void ); + virtual void BonusMapNumMedals( int piNumMedals[ 3 ] ); + + // notifications + virtual void OnGameUIActivated(); + virtual void OnGameUIHidden(); + virtual void OLD_OnConnectToServer( const char *game, int IP, int port ); // OLD: use OnConnectToServer2 + virtual void OnConnectToServer2( const char *game, int IP, int connectionPort, int queryPort ); + virtual void OnDisconnectFromServer( uint8 eSteamLoginFailure ); + virtual void OnLevelLoadingStarted( bool bShowProgressDialog ); + virtual void OnLevelLoadingFinished( bool bError, const char *failureReason, const char *extendedReason ); + virtual void OnDisconnectFromServer_OLD( uint8 eSteamLoginFailure, const char *username ) { OnDisconnectFromServer( eSteamLoginFailure ); } + + // progress + virtual bool UpdateProgressBar(float progress, const char *statusText); + // Shows progress desc, returns previous setting... (used with custom progress bars ) + virtual bool SetShowProgressText( bool show ); + + // brings up the new game dialog + virtual void ShowNewGameDialog( int chapter ); + + // Xbox 360 + virtual void SessionNotification( const int notification, const int param = 0 ); + virtual void SystemNotification( const int notification ); + virtual void ShowMessageDialog( const uint nType, vgui::Panel *pOwner = NULL ); + virtual void CloseMessageDialog( const uint nType = 0 ); + virtual void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ); + virtual void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping ); + virtual void OnCreditsFinished( void ); + + // X360 Storage device validation: + // returns true right away if storage device has been previously selected. + // otherwise returns false and will set the variable pointed by pStorageDeviceValidated to 1 + // once the storage device is selected by user. + virtual bool ValidateStorageDevice( int *pStorageDeviceValidated ); + + virtual void SetProgressOnStart(); + + virtual void OnConfirmQuit( void ); + + virtual bool IsMainMenuVisible( void ); + + // Client DLL is providing us with a panel that it wants to replace the main menu with + virtual void SetMainMenuOverride( vgui::VPANEL panel ); + // Client DLL is telling us that a main menu command was issued, probably from its custom main menu panel + virtual void SendMainMenuCommand( const char *pszCommand ); + + // state + bool IsInLevel(); + bool IsInBackgroundLevel(); + bool IsInMultiplayer(); + bool IsInReplay(); + bool IsConsoleUI(); + bool HasSavedThisMenuSession(); + void SetSavedThisMenuSession( bool bState ); + + void ShowLoadingBackgroundDialog(); + void HideLoadingBackgroundDialog(); + bool HasLoadingBackgroundDialog(); + +private: + void SendConnectedToGameMessage(); + + virtual void StartProgressBar(); + virtual bool ContinueProgressBar(float progressFraction); + virtual void StopProgressBar(bool bError, const char *failureReason, const char *extendedReason = NULL); + virtual bool SetProgressBarStatusText(const char *statusText); + + //!! these functions currently not implemented + virtual void SetSecondaryProgressBar(float progress /* range [0..1] */); + virtual void SetSecondaryProgressBarText(const char *statusText); + + bool FindPlatformDirectory(char *platformDir, int bufferSize); + void GetUpdateVersion( char *pszProd, char *pszVer); + void ValidateCDKey(); + + CreateInterfaceFn m_GameFactory; + + bool m_bPlayGameStartupSound : 1; + bool m_bTryingToLoadFriends : 1; + bool m_bActivatedUI : 1; + bool m_bIsConsoleUI : 1; + bool m_bHasSavedThisMenuSession : 1; + bool m_bOpenProgressOnStart : 1; + + int m_iGameIP; + int m_iGameConnectionPort; + int m_iGameQueryPort; + + int m_iFriendsLoadPauseFrames; + + char m_szPreviousStatusText[128]; + char m_szPlatformDir[MAX_PATH]; + + vgui::DHANDLE<class CCDKeyEntryDialog> m_hCDKeyEntryDialog; +}; + +// Purpose: singleton accessor +extern CGameUI &GameUI(); + +// expose client interface +extern IGameClientExports *GameClientExports(); + + +#endif // GAMEUI_INTERFACE_H |