SuperTuxKart
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
TracksScreen Class Reference

screen where the user can select a track More...

#include <tracks_screen.hpp>

Inheritance diagram for TracksScreen:
Inheritance graph
[legend]

Public Member Functions

void addVote (uint32_t host_id, const PeerVote &vote)
 Selects in which part of the vote list the new host is being shown and stores this information in the m_index_to_hostid mapping. More...
 
void removeVote (uint32_t host_id)
 Removes a vote, which is triggered when a client disconnects. More...
 
void setResult (uint32_t winner_host, const PeerVote &winner_vote)
 Received the winning vote. More...
 
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 init () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual void beforeAddingWidget () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual void tearDown () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual bool onEscapePressed () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual void onUpdate (float dt) OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
virtual void unloaded () OVERRIDE
 implement callback from parent class GUIEngine::Screen
 
void setFocusOnTrack (const std::string &trackName)
 
void setNetworkTracks ()
 
void setQuitServer ()
 
void resetVote ()
 Called at the beginning of the voting process to reset any previous data fields. More...
 
void updatePlayerVotes ()
 
- 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...
 

Private Member Functions

void buildTrackList ()
 adds the tracks from the current track group into the tracks ribbon More...
 
void voteForPlayer ()
 
void updateProgressBarText ()
 

Private Attributes

Trackm_selected_track = NULL
 
GUIEngine::CheckBoxWidgetm_reversed
 
GUIEngine::SpinnerWidgetm_laps
 
GUIEngine::ListWidgetm_vote_list
 
GUIEngine::ProgressBarWidgetm_timer
 Pointer to progress bar widget which is used as a timer (going backwards). More...
 
irr::gui::STKModifiedSpriteBank * m_track_icons
 
bool m_network_tracks
 
bool m_quit_server
 
int m_bottom_box_height
 
uint32_t m_winning_index
 Id of the winning peer. More...
 
std::vector< uint32_t > m_index_to_hostid
 This stores which vote (hostid) is shown at which index in the vote overview list. More...
 
std::deque< std::string > m_random_track_list
 

Friends

class GUIEngine::ScreenSingleton< TracksScreen >
 

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 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...
 
- Static Public Member Functions inherited from GUIEngine::ScreenSingleton< TracksScreen >
static TracksScreengetInstance ()
 
- 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 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 inherited from GUIEngine::ScreenSingleton< TracksScreen >
static TracksScreensingleton
 

Detailed Description

screen where the user can select a track

Member Function Documentation

◆ addVote()

void TracksScreen::addVote ( uint32_t  host_id,
const PeerVote vote 
)

Selects in which part of the vote list the new host is being shown and stores this information in the m_index_to_hostid mapping.

If the host_id is already mapped, this is ignored (this can happen in case one host changes its vote.

Parameters
host_idIndex of the host that is voting.
voteVote information.

◆ buildTrackList()

void TracksScreen::buildTrackList ( )
private

adds the tracks from the current track group into the tracks ribbon

Rebuild the list of tracks.

This need to be recomputed e.g. to take unlocked tracks into account.

◆ removeVote()

void TracksScreen::removeVote ( uint32_t  host_id)

Removes a vote, which is triggered when a client disconnects.

Parameters
host_idHost id of the disconnected client.

◆ resetVote()

void TracksScreen::resetVote ( )
inline

Called at the beginning of the voting process to reset any previous data fields.

◆ setResult()

void TracksScreen::setResult ( uint32_t  winner_host,
const PeerVote winner_vote 
)

Received the winning vote.

i.e. the data about the track to play (including #laps etc).

Member Data Documentation

◆ m_index_to_hostid

std::vector<uint32_t> TracksScreen::m_index_to_hostid
private

This stores which vote (hostid) is shown at which index in the vote overview list.

◆ m_timer

GUIEngine::ProgressBarWidget* TracksScreen::m_timer
private

Pointer to progress bar widget which is used as a timer (going backwards).

◆ m_winning_index

uint32_t TracksScreen::m_winning_index
private

Id of the winning peer.


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