18#ifndef HEADER_NETWORKING_LOBBY_HPP
19#define HEADER_NETWORKING_LOBBY_HPP
21#include "guiengine/screen.hpp"
22#include "guiengine/widgets/text_box_widget.hpp"
23#include "GlyphLayout.h"
31enum KartTeam : int8_t;
39 class IconButtonWidget;
47 class STKModifiedSpriteBank;
70 uint64_t m_ping_update_timer;
71 std::map<std::string, LobbyPlayer> m_player_names;
72 std::shared_ptr<Server> m_joined_server;
74 std::vector<gui::GlyphLayout> m_server_info;
75 int m_server_info_height, m_header_text_width;
77 core::stringw m_start_text, m_ready_text, m_live_join_text,
78 m_configuration_text, m_spectate_text, m_install_addon_text,
81 float m_start_timeout;
82 int64_t m_cur_starting_timer;
83 unsigned m_min_start_game_players;
85 bool m_has_auto_start_in_server,
86 m_server_configurable, m_client_live_joinable,
87 m_reload_server_info, m_assigned_players;
89 Addon* m_addon_install;
90 video::ITexture* m_config_texture;
91 video::ITexture* m_spectate_texture;
92 video::ITexture* m_addon_texture;
105 irr::gui::STKModifiedSpriteBank* m_icon_bank;
110 virtual void onTextUpdated() OVERRIDE {}
111 virtual bool onEnterPressed(
const irr::core::stringw& text) OVERRIDE;
112 void updatePlayerPings();
116 virtual void onUpdate(
float delta) OVERRIDE;
123 const int playerID) OVERRIDE;
129 virtual void init() OVERRIDE;
137 void finishAddingPlayers();
138 void addMoreServerInfo(core::stringw info);
139 void setJoinedServer(std::shared_ptr<Server> server);
140 void updateServerInfos();
141 void updatePlayers();
143 void addSplitscreenPlayer(irr::core::stringw name);
144 void cleanAddedPlayers();
145 void initAutoStartTimer(
bool grand_prix_started,
unsigned min_players,
146 float start_timeout,
unsigned server_max_player);
147 void setStartingTimerTo(
float t);
148 void toggleServerConfigButton(
bool val) { m_server_configurable = val; }
149 void reloadServerInfos() { m_reload_server_info =
true; }
150 void setHeader(
const core::stringw& header) { m_header_text = header; }
151 void setAssignedPlayers(
bool val) { m_assigned_players = val; }
Definition: text_box_widget.hpp:42
Declares a class to be a singleton.
Definition: screen.hpp:59
Represents a single GUI screen.
Definition: screen.hpp:97
A text field widget.
Definition: text_box_widget.hpp:53
Handles the networking lobby.
Definition: networking_lobby.hpp:58
NetworkingLobby()
This is the lobby screen that is shown on all clients, but not on the server.
Definition: networking_lobby.cpp:78
virtual void beforeAddingWidget() OVERRIDE
implement callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:164
virtual void loadedFromFile() OVERRIDE
implement callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:103
virtual bool onEscapePressed() OVERRIDE
implement callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:894
virtual void onUpdate(float delta) OVERRIDE
optional callback you can override to be notified at every frame.
Definition: networking_lobby.cpp:439
virtual void tearDown() OVERRIDE
implement callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:876
virtual void eventCallback(GUIEngine::Widget *widget, const std::string &name, const int playerID) OVERRIDE
implement callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:784
virtual void unloaded() OVERRIDE
implement optional callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:869
virtual void init() OVERRIDE
implement callback from parent class GUIEngine::Screen
Definition: networking_lobby.cpp:173
Definition: server.hpp:44
Contains all GUI engine related classes and functions.
Definition: abstract_state_manager.hpp:33
Definition: client_lobby.hpp:46