SuperTuxKart
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends | List of all members
KartSelectionScreen Class Reference

screen where players can choose their kart More...

#include <kart_selection.hpp>

Inheritance diagram for KartSelectionScreen:
Inheritance graph
[legend]

Public Member Functions

virtual void loadedFromFile () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
void setMultiplayer (bool multiplayer)
 
void setFromOverworld (bool from_overworld)
 Set whether this screen is being visited from overworld or not.
 
void setGoToOverworldNext ()
 
bool joinPlayer (InputDevice *device, PlayerProfile *p)
 Called when a player hits 'fire'/'select' on his device to join the game.
 
virtual bool playerQuit (StateManager::ActivePlayer *player)
 Called when a player hits 'rescue'/'cancel' on his device to leave the game. More...
 
virtual void init () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual void beforeAddingWidget () OVERRIDE
 Optional callback invoked very early, before widgets have been added (contrast with init(), which is invoked afer widgets were added)
 
virtual void tearDown () 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 More...
 
virtual void onUpdate (float dt) OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual void unloaded () OVERRIDE
 implement optional callback from parent class GUIEngine::Screen
 
virtual bool onEscapePressed () OVERRIDE
 implement optional callback from parent class GUIEngine::Screen
 
- 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
 
bool throttleFPS () 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. More...
 
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. More...
 
virtual void onDraw (float dt)
 optional callback you can override to be notified at every frame.
 
virtual MusicInformationgetMusic () const
 
virtual MusicInformationgetInGameMenuMusic () const
 
virtual int getWidth ()
 Implementing method from AbstractTopLevelContainer.
 
virtual int getHeight ()
 Implementing method from AbstractTopLevelContainer.
 
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
WidgetgetWidget (const char *name)
 This function returns a widget by name if that widget is found. More...
 
WidgetgetWidget (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...
 
WidgetgetFirstWidget (PtrVector< Widget > *within_vector=NULL)
 This function returns the first widget found in within_vector. More...
 
WidgetgetLastWidget (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...
 

Static Public Member Functions

static KartSelectionScreengetRunningInstance ()
 Returns the current instance.
 
- 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 WidgetgetWidget (const char *name, PtrVector< Widget > *within_vector)
 This function returns a widget by name if that widget is found in within_vector. More...
 
static WidgetgetWidget (const int id, PtrVector< Widget > *within_vector)
 This function returns a widget by irrlicht ID if that widget is found. More...
 

Protected Member Functions

 KartSelectionScreen (const char *filename)
 
virtual void allPlayersDone ()
 Called when all players selected their kart.
 
void renumberKarts ()
 Called when number/order of karts changed, so that all will keep an up-to-date ID.
 
bool validateIdentChoices ()
 Checks identities chosen by players, making sure no duplicates are used. More...
 
bool validateKartChoices ()
 Checks karts chosen by players, making sure no duplicates are used. More...
 
void setKartsFromCurrentGroup ()
 Fill the ribbon with the karts from the currently selected group.
 
void playerConfirm (const int playerID)
 
void updateKartStats (uint8_t widget_id, const std::string &selection)
 
void updateKartWidgetModel (int widget_id, const std::string &selection, const irr::core::stringw &selectionText, float kart_color)
 updates model of a kart widget, to have the good selection when the user validates
 
void addMultiplayerMessage ()
 Adds a message to the screen which indicates that players must press fire to join. More...
 
void removeMultiplayerMessage ()
 Remove the multiplayer message. More...
 
virtual bool isIgnored (const std::string &ident) const
 
- 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...
 

Protected Attributes

PtrVector< GUIEngine::PlayerKartWidget, REF > m_kart_widgets
 Contains the custom widget shown for every player. More...
 
bool m_multiplayer
 
bool m_from_overworld
 Whether this screen is being visited from overworld or not.
 
bool m_go_to_overworld_next
 
bool m_must_delete_on_back
 To delete the screen if back is pressed.
 
bool m_game_master_confirmed
 Stores whether any player confirmed their choice; then, some things are "frozen", for instance the selected kart group tab.
 
GUIEngine::PlayerKartWidgetm_removed_widget
 
GUIEngine::BubbleWidgetm_multiplayer_message
 Message shown in multiplayer mode.
 
FocusDispatcherm_dispatcher
 
- Protected Attributes inherited from GUIEngine::Screen
bool m_throttle_FPS
 
- Protected Attributes inherited from GUIEngine::AbstractTopLevelContainer
PtrVector< Widget, HOLD > m_widgets
 the widgets in this screen
 
Widgetm_first_widget
 AbstractTopLevelContainer is generally able to determine its first widget just fine, but in highly complex screens (e.g. More...
 
Widgetm_last_widget
 AbstractTopLevelContainer is generally able to determine its last widget just fine, but in highly complex screens (e.g. More...
 

Static Protected Attributes

static KartSelectionScreenm_instance_ptr = NULL
 Stores a pointer to the current selection screen.
 

Private Member Functions

PtrVector< const KartProperties, REF > getUsableKarts (const std::string &selected_kart_group)
 

Friends

class KartHoverListener
 
class PlayerNameSpinner
 
class FocusDispatcher
 
class GUIEngine::ScreenSingleton< KartSelectionScreen >
 
class GUIEngine::PlayerKartWidget
 

Detailed Description

screen where players can choose their kart

Member Function Documentation

◆ addMultiplayerMessage()

void KartSelectionScreen::addMultiplayerMessage ( )
protected

Adds a message to the screen which indicates that players must press fire to join.

◆ eventCallback()

void KartSelectionScreen::eventCallback ( GUIEngine::Widget widget,
const std::string &  name,
const int  playerID 
)
virtual

implement callback from parent class GUIEngine::Screen

Callback handling events from the kart selection menu.

Implements GUIEngine::Screen.

◆ playerQuit()

bool KartSelectionScreen::playerQuit ( StateManager::ActivePlayer player)
virtual

Called when a player hits 'rescue'/'cancel' on his device to leave the game.

Returns
true if event was handled succesfully

Reimplemented in NetworkKartSelectionScreen.

◆ removeMultiplayerMessage()

void KartSelectionScreen::removeMultiplayerMessage ( )
protected

Remove the multiplayer message.

◆ validateIdentChoices()

bool KartSelectionScreen::validateIdentChoices ( )
protected

Checks identities chosen by players, making sure no duplicates are used.

Returns
Whether all choices are ok

◆ validateKartChoices()

bool KartSelectionScreen::validateKartChoices ( )
protected

Checks karts chosen by players, making sure no duplicates are used.

Returns
Whether all choices are ok

Member Data Documentation

◆ m_kart_widgets

PtrVector<GUIEngine::PlayerKartWidget, REF> KartSelectionScreen::m_kart_widgets
protected

Contains the custom widget shown for every player.

(ref only since we're adding them to a Screen, and the Screen will take ownership of these widgets)


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