diff options
Diffstat (limited to 'serverbrowser/InternetGames.h')
| -rw-r--r-- | serverbrowser/InternetGames.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/serverbrowser/InternetGames.h b/serverbrowser/InternetGames.h new file mode 100644 index 0000000..8779d1f --- /dev/null +++ b/serverbrowser/InternetGames.h @@ -0,0 +1,83 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef INTERNETGAMES_H +#define INTERNETGAMES_H +#ifdef _WIN32 +#pragma once +#endif + +#include "BaseGamesPage.h" + +//----------------------------------------------------------------------------- +// Purpose: Internet games list +//----------------------------------------------------------------------------- +class CInternetGames : public CBaseGamesPage +{ + + DECLARE_CLASS_SIMPLE( CInternetGames, CBaseGamesPage ); + +public: + CInternetGames( vgui::Panel *parent, const char *panelName = "InternetGames", EPageType eType = eInternetServer ); + ~CInternetGames(); + + // property page handlers + virtual void OnPageShow(); + + // returns true if the game list supports the specified ui elements + virtual bool SupportsItem(IGameList::InterfaceItem_e item); + + // gets a new server list + MESSAGE_FUNC( GetNewServerList, "GetNewServerList" ); + + // serverlist refresh responses + virtual void ServerResponded( HServerListRequest hReq, int iServer ); + virtual void ServerFailedToRespond( HServerListRequest hReq, int iServer ); + virtual void RefreshComplete( HServerListRequest hReq, EMatchMakingServerResponse response ); + MESSAGE_FUNC_INT( OnRefreshServer, "RefreshServer", serverID ); + + virtual int GetRegionCodeToFilter(); + virtual bool CheckTagFilter( gameserveritem_t &server ); + +protected: + // vgui overrides + virtual void PerformLayout(); + virtual void OnTick(); + + virtual const char *GetStringNoUnfilteredServers() { return "#ServerBrowser_NoInternetGames"; } + virtual const char *GetStringNoUnfilteredServersOnMaster() { return "#ServerBrowser_MasterServerHasNoServersListed"; } + virtual const char *GetStringNoServersResponded() { return "#ServerBrowser_NoInternetGamesResponded"; } + +private: + // Called once per frame to see if sorting needs to occur again + void CheckRedoSort(); + // Called once per frame to check re-send request to master server + void CheckRetryRequest( ESteamServerType serverType ); + // opens context menu (user right clicked on a server) + MESSAGE_FUNC_INT( OnOpenContextMenu, "OpenContextMenu", itemID ); + + struct regions_s + { + CUtlSymbol name; + unsigned char code; + }; + + CUtlVector<struct regions_s> m_Regions; // list of the different regions you can query for + + float m_fLastSort; // Time of last re-sort + bool m_bDirty; // Has the list been modified, thereby needing re-sort + bool m_bRequireUpdate; // checks whether we need an update upon opening + + // error cases for if no servers are listed + bool m_bAnyServersRetrievedFromMaster; + bool m_bAnyServersRespondedToQuery; + bool m_bNoServersListedOnMaster; + + bool m_bOfflineMode; +}; + +#endif // INTERNETGAMES_H |