Remember latest kart and track group

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@8724 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria
2011-05-27 23:54:12 +00:00
parent 1671a445b1
commit f373632486
4 changed files with 20 additions and 9 deletions

View File

@@ -312,6 +312,8 @@ namespace UserConfigParams
PARAM_DEFAULT( IntUserConfigParam(0, "game_mode", &m_race_setup_group, "Game mode. 0=standard, 1=time trial, 2=follow the leader, 3=3 strikes") );
PARAM_PREFIX StringUserConfigParam m_default_kart
PARAM_DEFAULT( StringUserConfigParam("tux", "kart", "Kart to select by default (the last used kart)") );
PARAM_PREFIX StringUserConfigParam m_last_used_kart_group
PARAM_DEFAULT( StringUserConfigParam("standard", "last_kart_group", "Last selected kart group") );
// ---- Video
PARAM_PREFIX GroupUserConfigParam m_video_group
@@ -444,12 +446,10 @@ namespace UserConfigParams
PARAM_PREFIX StringUserConfigParam m_item_style
PARAM_DEFAULT( StringUserConfigParam("items", "item_style", "Name of the .items file to use.") );
PARAM_PREFIX StringUserConfigParam m_kart_group
PARAM_DEFAULT( StringUserConfigParam(DEFAULT_GROUP_NAME, "kart_group", "Last selected kart group") );
PARAM_PREFIX StringUserConfigParam m_track_group
PARAM_DEFAULT( StringUserConfigParam(DEFAULT_GROUP_NAME, "track_group", "Last selected track group") );
PARAM_PREFIX StringUserConfigParam m_last_track
PARAM_DEFAULT( StringUserConfigParam("olivermath", "last_track", "Name of the last track used.") );
PARAM_PREFIX StringUserConfigParam m_last_used_track_group
PARAM_DEFAULT( StringUserConfigParam("standard", "last_track_group", "Last selected track group") );
PARAM_PREFIX StringUserConfigParam m_skin_file
PARAM_DEFAULT( StringUserConfigParam("Peach.stkskin", "skin_file", "Name of the skin to use") );

View File

@@ -356,7 +356,7 @@ std::vector<std::string> KartPropertiesManager::getRandomKartList(int count,
if (count > 0 && randomKartQueue.size() == 0)
{
randomKartQueue.clear();
std::vector<int> kartsInGroup = getKartsInGroup(UserConfigParams::m_kart_group);
std::vector<int> kartsInGroup = getKartsInGroup(UserConfigParams::m_last_used_kart_group);
assert(kartsInGroup.size() > 0);

View File

@@ -931,6 +931,7 @@ void KartSelectionScreen::init()
RibbonWidget* tabs = getWidget<RibbonWidget>("kartgroups");
assert( tabs != NULL );
tabs->select(UserConfigParams::m_last_used_kart_group, PLAYER_ID_GAME_MASTER);
Widget* placeholder = getWidget("playerskarts");
assert(placeholder != NULL);
@@ -1392,6 +1393,8 @@ void KartSelectionScreen::eventCallback(Widget* widget, const std::string& name,
const std::string selected_kart_group = tabs->getSelectionIDString(PLAYER_ID_GAME_MASTER);
UserConfigParams::m_last_used_kart_group = selected_kart_group;
RandomGenerator random;
const int num_players = m_kart_widgets.size();
@@ -1476,7 +1479,7 @@ void KartSelectionScreen::allPlayersDone()
std::string selected_kart_group = tabs->getSelectionIDString(PLAYER_ID_GAME_MASTER);
UserConfigParams::m_kart_group = selected_kart_group;
UserConfigParams::m_last_used_kart_group = selected_kart_group;
DynamicRibbonWidget* w = getWidget<DynamicRibbonWidget>("karts");
assert( w != NULL );
@@ -1741,8 +1744,8 @@ void KartSelectionScreen::setKartsFromCurrentGroup()
std::string selected_kart_group =
tabs->getSelectionIDString(PLAYER_ID_GAME_MASTER);
UserConfigParams::m_kart_group = selected_kart_group;
UserConfigParams::m_last_used_kart_group = selected_kart_group;
// This can happen if addons are removed so that also the previously
// selected kart group is removed. In this case, select the
// 'standard' group

View File

@@ -154,11 +154,13 @@ void TracksScreen::eventCallback(Widget* widget, const std::string& name, const
}
else if (name == "trackgroups")
{
RibbonWidget* tabs = this->getWidget<RibbonWidget>("trackgroups");
assert( tabs != NULL );
UserConfigParams::m_last_used_track_group = tabs->getSelectionIDString(0);
buildTrackList();
}
else if (name == "back")
{
printf("back in tracks_screen\n");
StateManager::get()->escapePressed();
}
}
@@ -271,6 +273,12 @@ void TracksScreen::init()
}
gps_widget->updateItemDisplay();
RibbonWidget* tabs = this->getWidget<RibbonWidget>("trackgroups");
assert( tabs != NULL );
tabs->select(UserConfigParams::m_last_used_track_group, PLAYER_ID_GAME_MASTER);
buildTrackList();
// select something for the game master