Files
funnygame/external/steamworks/steamworksexample/MainMenu.cpp
2025-07-13 15:47:42 +03:00

83 lines
3.1 KiB
C++
Raw Blame History

//========= Copyright <20> 1996-2008, Valve LLC, All rights reserved. ============
//
// Purpose: Class to define the main game menu
//
// $NoKeywords: $
//=============================================================================
#include "stdafx.h"
#include "MainMenu.h"
#include "SpaceWar.h"
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CMainMenu::CMainMenu( IGameEngine *pGameEngine ) : CBaseMenu<EClientGameState>( pGameEngine )
{
SetupMenu();
}
//-----------------------------------------------------------------------------
// Purpose: Add relevant menu entries, honoring parental settings
//-----------------------------------------------------------------------------
void CMainMenu::SetupMenu()
{
ISteamParentalSettings *pSettings = SteamParentalSettings();
AddMenuItem( MenuItem_t( "Start New Server", k_EClientGameStartServer ) );
AddMenuItem( MenuItem_t( "Find LAN Servers", k_EClientFindLANServers ) );
AddMenuItem( MenuItem_t( "Find Internet Servers", k_EClientFindInternetServers ) );
AddMenuItem( MenuItem_t( "Create Lobby", k_EClientCreatingLobby ) );
AddMenuItem( MenuItem_t( "Find Lobby", k_EClientFindLobby ) );
AddMenuItem( MenuItem_t( "Instructions", k_EClientGameInstructions ) );
if ( !pSettings->BIsFeatureBlocked( k_EFeatureProfile ) )
{
AddMenuItem( MenuItem_t( "Stats and Achievements", k_EClientStatsAchievements ) );
}
AddMenuItem( MenuItem_t( "Leaderboards", k_EClientLeaderboards ) );
if ( !pSettings->BIsFeatureBlocked( k_EFeatureFriends ) )
{
AddMenuItem( MenuItem_t( "Friends List", k_EClientFriendsList ) );
AddMenuItem( MenuItem_t( "Group chat room", k_EClientClanChatRoom ) );
}
AddMenuItem( MenuItem_t( "Remote Play Invite", k_EClientRemotePlayInvite ) );
AddMenuItem( MenuItem_t( "Remote Play Sessions", k_EClientRemotePlaySessions ) );
AddMenuItem( MenuItem_t( "Remote Storage", k_EClientRemoteStorage ) );
AddMenuItem( MenuItem_t( "Write Minidump", k_EClientMinidump ) );
if ( !pSettings->BIsFeatureBlocked( k_EFeatureBrowser ) )
{
AddMenuItem( MenuItem_t( "Web Callback", k_EClientWebCallback ) );
}
AddMenuItem( MenuItem_t( "Music Player", k_EClientMusic ) );
if ( !pSettings->BIsFeatureBlocked( k_EFeatureCommunity ) )
{
AddMenuItem( MenuItem_t( "Workshop Items", k_EClientWorkshop ) );
}
if ( !pSettings->BIsFeatureBlocked( k_EFeatureBrowser ) )
{
AddMenuItem( MenuItem_t( "HTML Page", k_EClientHTMLSurface ) );
}
AddMenuItem( MenuItem_t( "In-game Store", k_EClientInGameStore ) );
AddMenuItem( MenuItem_t( "OverlayAPI", k_EClientOverlayAPI ) );
AddMenuItem( MenuItem_t( "Exit Game", k_EClientGameExiting ) );
}
//-----------------------------------------------------------------------------
// Purpose: Callback for a change in parental settings. Rebuild menu.
//-----------------------------------------------------------------------------
void CMainMenu::OnParentalSettingsChanged( SteamParentalSettingsChanged_t *pParam )
{
ClearMenuItems();
SetupMenu();
}