Remember user kart choice between sessions

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@6362 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria
2010-10-27 20:10:16 +00:00
parent e42a390630
commit 3fc514d2f8
2 changed files with 14 additions and 5 deletions

View File

@@ -221,7 +221,9 @@ namespace UserConfigParams
PARAM_DEFAULT( IntUserConfigParam(0, "difficulty", &m_race_setup_group, "Default race difficulty. 0=easy, 1=medium, 2=hard") );
PARAM_PREFIX IntUserConfigParam m_game_mode
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)") );
// ---- Video
PARAM_PREFIX GroupUserConfigParam m_video_group
PARAM_DEFAULT( GroupUserConfigParam("Video", "Video Settings") );
@@ -321,8 +323,6 @@ namespace UserConfigParams
PARAM_DEFAULT( StringUserConfigParam("http://download.tuxfamily.org/stkaddons/0.7/", "server_addons", "The server used for addon.") );
PARAM_PREFIX bool m_no_start_screen PARAM_DEFAULT( false ); // not saved to file
PARAM_PREFIX std::string m_default_kart PARAM_DEFAULT( "tux" ); // not saved to file
// TODO? implement blacklist for new irrlicht device and GUI
PARAM_PREFIX std::vector<std::string> m_blacklist_res;

View File

@@ -307,7 +307,7 @@ public:
m_children.push_back(m_model_view);
// Init kart model
std::string& default_kart = UserConfigParams::m_default_kart;
const std::string default_kart = UserConfigParams::m_default_kart.toString();
const KartProperties* props = kart_properties_manager->getKart(default_kart);
if(!props)
{
@@ -938,7 +938,11 @@ void KartSelectionScreen::init()
}
// Player 0 select default kart
w->setSelection(UserConfigParams::m_default_kart, 0, true);
if (!w->setSelection(UserConfigParams::m_default_kart, 0, true))
{
// if kart from config not found, select the first instead
w->setSelection(0, 0, true);
}
/*
std::cout << "===== screen contents =====\n";
@@ -1211,6 +1215,11 @@ void KartSelectionScreen::playerConfirm(const int playerID)
return;
}
if (playerID == PLAYER_ID_GAME_MASTER)
{
UserConfigParams::m_default_kart = selection;
}
// make sure no other player selected the same identity or kart
const int amount = m_kart_widgets.size();
for (int n=0; n<amount; n++)