mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-23 14:46:53 +00:00
160 lines
5.8 KiB
C
160 lines
5.8 KiB
C
|
//========= 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
|