|
SuperTuxKart
|
Handles the networking lobby. More...
#include <networking_lobby.hpp>

Public Member Functions | |
| virtual void | onUpdate (float delta) OVERRIDE |
| optional callback you can override to be notified at every frame. | |
| virtual void | loadedFromFile () OVERRIDE |
| implement callback from parent class GUIEngine::Screen | |
| virtual void | eventCallback (GUIEngine::Widget *widget, const std::string &name, const int playerID) OVERRIDE |
| implement callback from parent class GUIEngine::Screen | |
| virtual void | beforeAddingWidget () OVERRIDE |
| implement callback from parent class GUIEngine::Screen | |
| virtual void | init () OVERRIDE |
| implement callback from parent class GUIEngine::Screen More... | |
| virtual void | tearDown () OVERRIDE |
| implement callback from parent class GUIEngine::Screen | |
| virtual bool | onEscapePressed () OVERRIDE |
| implement callback from parent class GUIEngine::Screen | |
| void | finishAddingPlayers () |
| void | addMoreServerInfo (core::stringw info) |
| void | setJoinedServer (std::shared_ptr< Server > server) |
| void | updateServerInfos () |
| void | updatePlayers () |
| void | openSplitscreenDialog (InputDevice *device) |
| void | addSplitscreenPlayer (irr::core::stringw name) |
| void | cleanAddedPlayers () |
| void | initAutoStartTimer (bool grand_prix_started, unsigned min_players, float start_timeout, unsigned server_max_player) |
| void | setStartingTimerTo (float t) |
| void | toggleServerConfigButton (bool val) |
| void | reloadServerInfos () |
| void | setHeader (const core::stringw &header) |
| void | setAssignedPlayers (bool val) |
| virtual void | onResize () OVERRIDE |
| optional callback you can override to be notified at every resize. | |
Public Member Functions inherited from GUIEngine::Screen | |
| Screen (bool pause_race=true) | |
| Creates a dummy incomplete object; only use to override behaviour in sub-class. | |
| Screen (const char *filename, bool pause_race=true) | |
| Creates a screen populated by the widgets described in a STK GUI file. More... | |
| bool | operator== (const char *filename) const |
| void | loadFromFile () |
| loads this Screen from the file passed to the constructor | |
| bool | isLoaded () const |
| void | addWidgets () |
| Adds the IrrLicht widgets corresponding to this screen to the IGUIEnvironment. | |
| void | calculateLayout () |
| Called after all widgets have been added. More... | |
| void | manualAddWidget (Widget *w) |
| Can be used for custom purposes for which the load-screen-from-XML code won't make it. | |
| void | manualRemoveWidget (Widget *w) |
| Can be used for custom purposes for which the load-screen-from-XML code won't make it. | |
| void | setUpdateInBackground (bool value) |
| When set to true it updates the screen even if modal dialog is opened. | |
| bool | getUpdateInBackground () |
| const std::string & | getName () const |
| virtual void | unload () |
| Next time this menu needs to be shown, don't use cached values, re-calculate everything. More... | |
| bool | needs3D () |
| Will be called to determine if the 3D scene must be rendered when at this screen. | |
| void | setNeeds3D (bool needs3D) |
| Invoke this method for screens that use a 3D scene as background. More... | |
| void | push () |
| Displays this screen bu pushing it onto the stack of screen in the state manager. | |
| virtual void | onDraw (float dt) |
| optional callback you can override to be notified at every frame. | |
| virtual MusicInformation * | getMusic () const |
| virtual MusicInformation * | getInGameMenuMusic () const |
| virtual int | getWidth () |
| virtual int | getHeight () |
| virtual EventPropagation | filterActions (PlayerAction action, int deviceID, const unsigned int value, Input::InputType type, int playerId) |
| Override this if you need to be notified of player actions in subclasses. | |
| virtual void | onDisabledItemClicked (const std::string &item) |
| Callback you can use if you want to know when the user pressed on a disabled ribbon item. More... | |
| virtual void | filterInput (Input::InputType type, int deviceID, int btnID, int axisDir, int value) |
| Override this if you need to be notified of raw input in subclasses. | |
| virtual void | onDialogClose () |
| Callback that gets called when a dialog is closed. More... | |
| virtual void | onFocusChanged (Widget *previous, Widget *focus, int playerID) |
| Callback called when focus changes. | |
Public Member Functions inherited from GUIEngine::AbstractTopLevelContainer | |
| Widget * | getWidget (const char *name) |
| This function returns a widget by name if that widget is found. More... | |
| Widget * | getWidget (const int id) |
| This function returns a widget by irrlicht ID if that widget is found. More... | |
| template<typename T > | |
| T * | getWidget (const char *name) |
| This function searches and returns a widget by name, cast as specified type, if that widget is found and the type is correct. More... | |
| Widget * | getFirstWidget (PtrVector< Widget > *within_vector=NULL) |
| This function returns the first widget found in within_vector. More... | |
| Widget * | getLastWidget (PtrVector< Widget > *within_vector=NULL) |
| This function returns the last widget found in within_vector. More... | |
| void | elementsWereDeleted (PtrVector< Widget > *within_vector=NULL) |
| This function is called when screen is removed. More... | |
| bool | isMyChild (Widget *widget) const |
| This function checks if a widget is a child of the container. More... | |
| virtual bool | enableScreenPadding () const |
Private Types | |
| enum | LobbyState { LS_ADD_PLAYERS , LS_CONNECTING } |
Private Member Functions | |
| NetworkingLobby () | |
| This is the lobby screen that is shown on all clients, but not on the server. More... | |
| virtual void | unloaded () OVERRIDE |
| implement optional callback from parent class GUIEngine::Screen | |
| virtual void | onTextUpdated () OVERRIDE |
| virtual bool | onEnterPressed (const irr::core::stringw &text) OVERRIDE |
| void | updatePlayerPings () |
Private Attributes | |
| enum NetworkingLobby::LobbyState | m_state |
| uint64_t | m_ping_update_timer |
| std::map< std::string, LobbyPlayer > | m_player_names |
| std::shared_ptr< Server > | m_joined_server |
| std::vector< gui::GlyphLayout > | m_server_info |
| int | m_server_info_height |
| int | m_header_text_width |
| core::stringw | m_start_text |
| core::stringw | m_ready_text |
| core::stringw | m_live_join_text |
| core::stringw | m_configuration_text |
| core::stringw | m_spectate_text |
| core::stringw | m_install_addon_text |
| core::stringw | m_header_text |
| float | m_start_timeout |
| int64_t | m_cur_starting_timer |
| unsigned | m_min_start_game_players |
| bool | m_has_auto_start_in_server |
| bool | m_server_configurable |
| bool | m_client_live_joinable |
| bool | m_reload_server_info |
| bool | m_assigned_players |
| Addon * | m_addon_install |
| video::ITexture * | m_config_texture |
| video::ITexture * | m_spectate_texture |
| video::ITexture * | m_addon_texture |
| GUIEngine::IconButtonWidget * | m_back_widget |
| GUIEngine::LabelWidget * | m_header |
| GUIEngine::LabelWidget * | m_text_bubble |
| GUIEngine::LabelWidget * | m_timeout_message |
| GUIEngine::IconButtonWidget * | m_start_button |
| GUIEngine::IconButtonWidget * | m_config_button |
| GUIEngine::ListWidget * | m_player_list |
| GUIEngine::TextBoxWidget * | m_chat_box |
| GUIEngine::ButtonWidget * | m_send_button |
| GUIEngine::ButtonWidget * | m_emoji_button |
| irr::gui::STKModifiedSpriteBank * | m_icon_bank |
Friends | |
| class | GUIEngine::ScreenSingleton< NetworkingLobby > |
Additional Inherited Members | |
Static Public Member Functions inherited from GUIEngine::Screen | |
| static void | parseScreenFileDiv (irr::io::IXMLReader *xml, PtrVector< Widget > &append_to, irr::gui::IGUIElement *parent=NULL) |
| Loads a GUI screen from its XML file. More... | |
Static Public Member Functions inherited from GUIEngine::AbstractTopLevelContainer | |
| static Widget * | getWidget (const char *name, PtrVector< Widget > *within_vector) |
| This function returns a widget by name if that widget is found in within_vector. More... | |
| static Widget * | getWidget (const int id, PtrVector< Widget > *within_vector) |
| This function returns a widget by irrlicht ID if that widget is found. More... | |
Static Public Member Functions inherited from GUIEngine::ScreenSingleton< NetworkingLobby > | |
| static NetworkingLobby * | getInstance () |
Protected Member Functions inherited from GUIEngine::AbstractTopLevelContainer | |
| void | addWidgetsRecursively (PtrVector< Widget > &widgets, Widget *parent=NULL) |
| This function adds a list of widgets recursively, effectively creating the hierarchy of widgets. More... | |
| void | resizeWidgetsRecursively (PtrVector< Widget > &widgets) |
| This function invokes resize() of each widgets and its children. More... | |
Protected Attributes inherited from GUIEngine::AbstractTopLevelContainer | |
| PtrVector< Widget, HOLD > | m_widgets |
| the widgets in this screen | |
| Widget * | m_first_widget |
| AbstractTopLevelContainer is generally able to determine its first widget just fine, but in highly complex screens (e.g. More... | |
| Widget * | m_last_widget |
| AbstractTopLevelContainer is generally able to determine its last widget just fine, but in highly complex screens (e.g. More... | |
Static Protected Attributes inherited from GUIEngine::ScreenSingleton< NetworkingLobby > | |
| static NetworkingLobby * | singleton |
Handles the networking lobby.
|
private |
This is the lobby screen that is shown on all clients, but not on the server.
It shows currently connected clients, and allows the 'master' client (i.e. the stk instance that created the server) to control the server. This especially means that it can initialise the actual start of the racing. This class is responsible for creating the ActivePlayers data structure for all local players (the ActivePlayer maps device to player, i.e. controls which device is used by which player). Note that a server does not create an instance of this class and will create the ActivePlayer data structure in LobbyProtocol::loadWorld().
|
virtual |
implement callback from parent class GUIEngine::Screen
This function is a callback from the parent class, and is called each time this screen is shown to initialise the screen.
This class is responsible for creating the active players and binding them to the right device.
Reimplemented from GUIEngine::Screen.