summaryrefslogtreecommitdiff
path: root/gameui/GameUI_Interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'gameui/GameUI_Interface.h')
-rw-r--r--gameui/GameUI_Interface.h159
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