R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
Game::WaitingRoomMenu Class Reference

Menu displayed while waiting for game to start. More...

#include <WaitingRoomMenu.hpp>

Inheritance diagram for Game::WaitingRoomMenu:
Inheritance graph
Collaboration diagram for Game::WaitingRoomMenu:
Collaboration graph

Public Member Functions

 WaitingRoomMenu (UI::IUIFactory &uiFactory, Graphics::IGraphics &graphics)
 
 ~WaitingRoomMenu () override=default
 
void SetOnStartGame (std::function< void()> onStartGame)
 Set callback triggered when Start Game button is clicked (host only)
 
void SetOnBack (std::function< void()> onBack)
 Set callback triggered when Back button is clicked.
 
void UpdatePlayerList (const std::vector< PlayerInfo > &players)
 Update the player list.
 
void SetRoomInfo (const std::string &roomName, uint32_t currentPlayers, uint32_t maxPlayers)
 Set room name and player count info.
 
void SetIsHost (bool isHost)
 Set whether current player is host (enables Start Game button)
 
void SetIsSpectator (bool isSpectator)
 Set whether current player is spectator (shows spectator banner)
 
void Initialize () override
 Initialize menu (must be implemented by derived classes).
 
void Update () override
 Update menu state (should be called every frame).
 
void Render () override
 Render menu (should be called every frame).
 
- Public Member Functions inherited from Game::BaseMenu
 BaseMenu (UI::IUIFactory &uiFactory)
 Constructor with UI factory reference.
 
virtual ~BaseMenu ()=default
 Virtual destructor.
 
virtual void Show ()
 Show the menu.
 
virtual void Hide ()
 Hide the menu.
 
virtual bool IsVisible () const
 Check if menu is currently visible.
 
void SetSoundEffectService (Audio::ISoundEffectService *soundService)
 Set the sound effect service for playing UI sounds.
 

Private Member Functions

void OnStartGameClicked ()
 
void OnBackClicked ()
 
void RebuildPlayerList ()
 

Private Attributes

std::function< void()> _onStartGame {}
 
std::function< void()> _onBack {}
 
Graphics::IGraphics_graphics
 
std::string _roomName
 
uint32_t _currentPlayers = 0
 
uint32_t _maxPlayers = 4
 
bool _isHost = false
 
bool _isSpectator = false
 
std::vector< PlayerInfo_players
 
std::shared_ptr< UI::IButton_startGameButton
 
std::shared_ptr< UI::IButton_backButton
 

Static Private Attributes

static constexpr float PLAYER_ITEM_HEIGHT = 50.0f
 
static constexpr float PLAYER_ITEM_SPACING = 10.0f
 
static constexpr float LIST_START_Y = 150.0f
 
static constexpr size_t MAX_VISIBLE_PLAYERS = 8
 

Additional Inherited Members

- Protected Member Functions inherited from Game::BaseMenu
std::function< void()> WrapWithClickSound (std::function< void()> callback)
 Wrap a callback to play click sound before executing.
 
std::shared_ptr< UI::IButtonCreateCenteredButton (const char *label, float offsetY, float width, float height, unsigned int backgroundColor, unsigned int hoverColor, std::function< void()> callback)
 Create a button with standard styling and positioning.
 
- Protected Attributes inherited from Game::BaseMenu
UI::IUIFactory_uiFactory
 
std::shared_ptr< UI::IMenu_menu
 
Audio::ISoundEffectService_soundService {nullptr}
 

Detailed Description

Menu displayed while waiting for game to start.

Definition at line 36 of file WaitingRoomMenu.hpp.

Constructor & Destructor Documentation

◆ WaitingRoomMenu()

Game::WaitingRoomMenu::WaitingRoomMenu ( UI::IUIFactory uiFactory,
Graphics::IGraphics graphics 
)
explicit

Definition at line 14 of file WaitingRoomMenu.cpp.

◆ ~WaitingRoomMenu()

Game::WaitingRoomMenu::~WaitingRoomMenu ( )
overridedefault

Member Function Documentation

◆ Initialize()

void Game::WaitingRoomMenu::Initialize ( )
overridevirtual

◆ OnBackClicked()

void Game::WaitingRoomMenu::OnBackClicked ( )
private

Definition at line 183 of file WaitingRoomMenu.cpp.

References _onBack, and LOG_INFO.

Referenced by Initialize().

◆ OnStartGameClicked()

void Game::WaitingRoomMenu::OnStartGameClicked ( )
private

Definition at line 176 of file WaitingRoomMenu.cpp.

References _onStartGame, and LOG_INFO.

Referenced by Initialize().

◆ RebuildPlayerList()

void Game::WaitingRoomMenu::RebuildPlayerList ( )
private

Definition at line 165 of file WaitingRoomMenu.cpp.

References Game::BaseMenu::_menu.

Referenced by Initialize(), and UpdatePlayerList().

◆ Render()

void Game::WaitingRoomMenu::Render ( )
overridevirtual

◆ SetIsHost()

void Game::WaitingRoomMenu::SetIsHost ( bool  isHost)

Set whether current player is host (enables Start Game button)

Definition at line 37 of file WaitingRoomMenu.cpp.

References _isHost, and Initialize().

Here is the call graph for this function:

◆ SetIsSpectator()

void Game::WaitingRoomMenu::SetIsSpectator ( bool  isSpectator)

Set whether current player is spectator (shows spectator banner)

Definition at line 43 of file WaitingRoomMenu.cpp.

References _isSpectator.

◆ SetOnBack()

void Game::WaitingRoomMenu::SetOnBack ( std::function< void()>  onBack)

Set callback triggered when Back button is clicked.

Definition at line 21 of file WaitingRoomMenu.cpp.

References _onBack.

◆ SetOnStartGame()

void Game::WaitingRoomMenu::SetOnStartGame ( std::function< void()>  onStartGame)

Set callback triggered when Start Game button is clicked (host only)

Definition at line 17 of file WaitingRoomMenu.cpp.

References _onStartGame.

◆ SetRoomInfo()

void Game::WaitingRoomMenu::SetRoomInfo ( const std::string &  roomName,
uint32_t  currentPlayers,
uint32_t  maxPlayers 
)

Set room name and player count info.

Definition at line 30 of file WaitingRoomMenu.cpp.

References _currentPlayers, _maxPlayers, and _roomName.

◆ Update()

void Game::WaitingRoomMenu::Update ( )
overridevirtual

Update menu state (should be called every frame).

Reimplemented from Game::BaseMenu.

Definition at line 95 of file WaitingRoomMenu.cpp.

References Game::BaseMenu::_menu, and Game::BaseMenu::Update().

Here is the call graph for this function:

◆ UpdatePlayerList()

void Game::WaitingRoomMenu::UpdatePlayerList ( const std::vector< PlayerInfo > &  players)

Update the player list.

Definition at line 25 of file WaitingRoomMenu.cpp.

References _players, and RebuildPlayerList().

Here is the call graph for this function:

Member Data Documentation

◆ _backButton

std::shared_ptr<UI::IButton> Game::WaitingRoomMenu::_backButton
private

Definition at line 93 of file WaitingRoomMenu.hpp.

Referenced by Initialize().

◆ _currentPlayers

uint32_t Game::WaitingRoomMenu::_currentPlayers = 0
private

Definition at line 86 of file WaitingRoomMenu.hpp.

Referenced by Render(), and SetRoomInfo().

◆ _graphics

Graphics::IGraphics& Game::WaitingRoomMenu::_graphics
private

Definition at line 83 of file WaitingRoomMenu.hpp.

Referenced by Initialize(), and Render().

◆ _isHost

bool Game::WaitingRoomMenu::_isHost = false
private

Definition at line 88 of file WaitingRoomMenu.hpp.

Referenced by Initialize(), and SetIsHost().

◆ _isSpectator

bool Game::WaitingRoomMenu::_isSpectator = false
private

Definition at line 89 of file WaitingRoomMenu.hpp.

Referenced by SetIsSpectator().

◆ _maxPlayers

uint32_t Game::WaitingRoomMenu::_maxPlayers = 4
private

Definition at line 87 of file WaitingRoomMenu.hpp.

Referenced by Render(), and SetRoomInfo().

◆ _onBack

std::function<void()> Game::WaitingRoomMenu::_onBack {}
private

Definition at line 81 of file WaitingRoomMenu.hpp.

Referenced by OnBackClicked(), and SetOnBack().

◆ _onStartGame

std::function<void()> Game::WaitingRoomMenu::_onStartGame {}
private

Definition at line 80 of file WaitingRoomMenu.hpp.

Referenced by OnStartGameClicked(), and SetOnStartGame().

◆ _players

std::vector<PlayerInfo> Game::WaitingRoomMenu::_players
private

Definition at line 91 of file WaitingRoomMenu.hpp.

Referenced by Render(), and UpdatePlayerList().

◆ _roomName

std::string Game::WaitingRoomMenu::_roomName
private

Definition at line 85 of file WaitingRoomMenu.hpp.

Referenced by Render(), and SetRoomInfo().

◆ _startGameButton

std::shared_ptr<UI::IButton> Game::WaitingRoomMenu::_startGameButton
private

Definition at line 92 of file WaitingRoomMenu.hpp.

Referenced by Initialize().

◆ LIST_START_Y

constexpr float Game::WaitingRoomMenu::LIST_START_Y = 150.0f
staticconstexprprivate

Definition at line 97 of file WaitingRoomMenu.hpp.

◆ MAX_VISIBLE_PLAYERS

constexpr size_t Game::WaitingRoomMenu::MAX_VISIBLE_PLAYERS = 8
staticconstexprprivate

Definition at line 98 of file WaitingRoomMenu.hpp.

◆ PLAYER_ITEM_HEIGHT

constexpr float Game::WaitingRoomMenu::PLAYER_ITEM_HEIGHT = 50.0f
staticconstexprprivate

Definition at line 95 of file WaitingRoomMenu.hpp.

◆ PLAYER_ITEM_SPACING

constexpr float Game::WaitingRoomMenu::PLAYER_ITEM_SPACING = 10.0f
staticconstexprprivate

Definition at line 96 of file WaitingRoomMenu.hpp.


The documentation for this class was generated from the following files: