This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

139 lines
5.4 KiB
C++

//========= 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