15#include <unordered_map>
49 explicit Lobby(std::shared_ptr<RoomManager> roomManager);
58 bool addPlayer(uint32_t playerId,
const std::string &playerName);
114 bool joinRoom(uint32_t playerId,
const std::string &roomId);
124 std::string
createCustomRoom(uint32_t hostPlayerId,
const std::string &roomName,
size_t maxPlayers,
141 std::unordered_map<uint32_t, LobbyPlayer>
_players;
Main lobby where players connect before joining rooms.
bool updatePlayerName(uint32_t playerId, const std::string &newName)
Update a player's display name.
bool startMatchmaking(uint32_t playerId)
Start matchmaking for a player.
bool joinRoom(uint32_t playerId, const std::string &roomId)
Join a specific room by ID.
std::shared_ptr< RoomManager > _roomManager
std::vector< LobbyPlayer > getAllPlayers() const
Get all players in lobby.
bool addPlayer(uint32_t playerId, const std::string &playerName)
Add a player to the lobby.
std::string createCustomRoom(uint32_t hostPlayerId, const std::string &roomName, size_t maxPlayers, bool isPrivate)
Create a custom room.
std::shared_ptr< RoomManager > getRoomManager() const
Get room manager.
void setPlayerReady(uint32_t playerId, bool ready)
Set player ready status (for custom rooms)
size_t getPlayerCount() const
Get number of players in lobby.
std::unordered_map< uint32_t, LobbyPlayer > _players
bool cancelMatchmaking(uint32_t playerId)
Cancel matchmaking for a player.
static std::atomic< uint64_t > _nextRoomId
const LobbyPlayer * getPlayer(uint32_t playerId) const
Get player info.
bool removePlayer(uint32_t playerId)
Remove a player from the lobby.
Information about a player in the lobby.