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.
121 lines
4.7 KiB
121 lines
4.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef IGAMEUI_H |
|
#define IGAMEUI_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "interface.h" |
|
#include "vgui/IPanel.h" |
|
|
|
#if !defined( _X360 ) |
|
#include "xbox/xboxstubs.h" |
|
#endif |
|
|
|
// reasons why the user can't connect to a game server |
|
enum ESteamLoginFailure |
|
{ |
|
STEAMLOGINFAILURE_NONE, |
|
STEAMLOGINFAILURE_BADTICKET, |
|
STEAMLOGINFAILURE_NOSTEAMLOGIN, |
|
STEAMLOGINFAILURE_VACBANNED, |
|
STEAMLOGINFAILURE_LOGGED_IN_ELSEWHERE |
|
}; |
|
|
|
enum ESystemNotify |
|
{ |
|
SYSTEMNOTIFY_STORAGEDEVICES_CHANGED, |
|
SYSTEMNOTIFY_USER_SIGNEDIN, |
|
SYSTEMNOTIFY_USER_SIGNEDOUT, |
|
SYSTEMNOTIFY_XUIOPENING, |
|
SYSTEMNOTIFY_XUICLOSED, |
|
SYSTEMNOTIFY_INVITE_SHUTDOWN, // Cross-game invite is causing us to shutdown |
|
}; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: contains all the functions that the GameUI dll exports |
|
//----------------------------------------------------------------------------- |
|
abstract_class IGameUI |
|
{ |
|
public: |
|
// initialization/shutdown |
|
virtual void Initialize( CreateInterfaceFn appFactory ) = 0; |
|
virtual void PostInit() = 0; |
|
|
|
// connect to other interfaces at the same level (gameui.dll/server.dll/client.dll) |
|
virtual void Connect( CreateInterfaceFn gameFactory ) = 0; |
|
|
|
virtual void Start() = 0; |
|
virtual void Shutdown() = 0; |
|
virtual void RunFrame() = 0; |
|
|
|
// notifications |
|
virtual void OnGameUIActivated() = 0; |
|
virtual void OnGameUIHidden() = 0; |
|
|
|
// OLD: Use OnConnectToServer2 |
|
virtual void OLD_OnConnectToServer(const char *game, int IP, int port) = 0; |
|
|
|
virtual void OnDisconnectFromServer_OLD( uint8 eSteamLoginFailure, const char *username ) = 0; |
|
virtual void OnLevelLoadingStarted(bool bShowProgressDialog) = 0; |
|
virtual void OnLevelLoadingFinished(bool bError, const char *failureReason, const char *extendedReason) = 0; |
|
|
|
// level loading progress, returns true if the screen needs updating |
|
virtual bool UpdateProgressBar(float progress, const char *statusText) = 0; |
|
// Shows progress desc, returns previous setting... (used with custom progress bars ) |
|
virtual bool SetShowProgressText( bool show ) = 0; |
|
|
|
// !!!!!!!!!members added after "GameUI011" initial release!!!!!!!!!!!!!!!!!!! |
|
virtual void ShowNewGameDialog( int chapter ) = 0; |
|
|
|
// Xbox 360 |
|
virtual void SessionNotification( const int notification, const int param = 0 ) = 0; |
|
virtual void SystemNotification( const int notification ) = 0; |
|
virtual void ShowMessageDialog( const uint nType, vgui::Panel *pOwner ) = 0; |
|
virtual void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ) = 0; |
|
virtual void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping ) = 0; |
|
virtual void OnCreditsFinished( void ) = 0; |
|
|
|
// inserts specified panel as background for level load dialog |
|
virtual void SetLoadingBackgroundDialog( vgui::VPANEL panel ) = 0; |
|
|
|
// Bonus maps interfaces |
|
virtual void BonusMapUnlock( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0; |
|
virtual void BonusMapComplete( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0; |
|
virtual void BonusMapChallengeUpdate( const char *pchFileName, const char *pchMapName, const char *pchChallengeName, int iBest ) = 0; |
|
virtual void BonusMapChallengeNames( char *pchFileName, char *pchMapName, char *pchChallengeName ) = 0; |
|
virtual void BonusMapChallengeObjectives( int &iBronze, int &iSilver, int &iGold ) = 0; |
|
virtual void BonusMapDatabaseSave( void ) = 0; |
|
virtual int BonusMapNumAdvancedCompleted( void ) = 0; |
|
virtual void BonusMapNumMedals( int piNumMedals[ 3 ] ) = 0; |
|
|
|
virtual void OnConnectToServer2(const char *game, int IP, int connectionPort, int queryPort) = 0; |
|
|
|
// 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 ) = 0; |
|
|
|
virtual void SetProgressOnStart() = 0; |
|
virtual void OnDisconnectFromServer( uint8 eSteamLoginFailure ) = 0; |
|
|
|
virtual void OnConfirmQuit( void ) = 0; |
|
|
|
virtual bool IsMainMenuVisible( void ) = 0; |
|
|
|
// Client DLL is providing us with a panel that it wants to replace the main menu with |
|
virtual void SetMainMenuOverride( vgui::VPANEL panel ) = 0; |
|
// 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 ) = 0; |
|
}; |
|
|
|
#define GAMEUI_INTERFACE_VERSION "GameUI011" |
|
|
|
#endif // IGAMEUI_H
|
|
|