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 /serverbrowser/ServerBrowser.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'serverbrowser/ServerBrowser.h')
| -rw-r--r-- | serverbrowser/ServerBrowser.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/serverbrowser/ServerBrowser.h b/serverbrowser/ServerBrowser.h new file mode 100644 index 0000000..7decbe7 --- /dev/null +++ b/serverbrowser/ServerBrowser.h @@ -0,0 +1,82 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef SERVERBROWSER_H +#define SERVERBROWSER_H +#ifdef _WIN32 +#pragma once +#endif + +class CServerBrowserDialog; + +//----------------------------------------------------------------------------- +// Purpose: Handles the UI and pinging of a half-life game server list +//----------------------------------------------------------------------------- +class CServerBrowser : public IServerBrowser, public IVGuiModule +{ +public: + CServerBrowser(); + ~CServerBrowser(); + + // IVGui module implementation + virtual bool Initialize(CreateInterfaceFn *factorylist, int numFactories); + virtual bool PostInitialize(CreateInterfaceFn *modules, int factoryCount); + virtual vgui::VPANEL GetPanel(); + virtual bool Activate(); + virtual bool IsValid(); + virtual void Shutdown(); + virtual void Deactivate(); + virtual void Reactivate(); + virtual void SetParent(vgui::VPANEL parent); + + // IServerBrowser implementation + // joins a specified game - game info dialog will only be opened if the server is fully or passworded + virtual bool JoinGame( uint32 unGameIP, uint16 usGamePort, const char *pszConnectCode ); + virtual bool JoinGame( uint64 ulSteamIDFriend, const char *pszConnectCode ); + + // opens a game info dialog to watch the specified server; associated with the friend 'userName' + virtual bool OpenGameInfoDialog( uint64 ulSteamIDFriend, const char *pszConnectCode ); + + // forces the game info dialog closed + virtual void CloseGameInfoDialog( uint64 ulSteamIDFriend ); + + // closes all the game info dialogs + virtual void CloseAllGameInfoDialogs(); + + virtual const char *GetMapFriendlyNameAndGameType( const char *pszMapName, char *szFriendlyMapName, int cchFriendlyName ) OVERRIDE; + + // methods + virtual void CreateDialog(); + virtual void Open(); + + // true if the user can't play a game + bool IsVACBannedFromGame( int nAppID ); + + // Enable filtering of workshop maps, requires the game/tool loading us to feed subscription data. This is a + // slightly ugly workaround to TF2 not yet having native workshop UI in quickplay, once that is in place this should + // either be stripped back out or expanded to be directly aware of the steam workshop without being managed. + virtual void SetWorkshopEnabled( bool bManaged ) OVERRIDE; + virtual void AddWorkshopSubscribedMap( const char *pszMapName ) OVERRIDE; + virtual void RemoveWorkshopSubscribedMap( const char *pszMapName ) OVERRIDE; + + bool IsWorkshopEnabled(); + bool IsWorkshopSubscribedMap( const char *pszMapName ); +private: + vgui::DHANDLE<CServerBrowserDialog> m_hInternetDlg; + + bool m_bWorkshopEnabled; + CUtlVector< CUtlString > m_vecWorkshopSubscribedMaps; +}; + +// singleton accessor +CServerBrowser &ServerBrowser(); + +class CSteamAPIContext; +extern CSteamAPIContext *steamapicontext; + + +#endif // SERVERBROWSER_H |