From: <au...@us...> - 2011-06-12 17:43:46
|
Revision: 8891 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=8891&view=rev Author: auria Date: 2011-06-12 17:43:40 +0000 (Sun, 12 Jun 2011) Log Message: ----------- Fix the default kart not being approvable in multiplayer mdoe Modified Paths: -------------- main/trunk/src/states_screens/kart_selection.cpp Modified: main/trunk/src/states_screens/kart_selection.cpp =================================================================== --- main/trunk/src/states_screens/kart_selection.cpp 2011-06-12 17:35:13 UTC (rev 8890) +++ main/trunk/src/states_screens/kart_selection.cpp 2011-06-12 17:43:40 UTC (rev 8891) @@ -236,7 +236,8 @@ std::string m_kartInternalName; PlayerKartWidget(KartSelectionScreen* parent, StateManager::ActivePlayer* associatedPlayer, - core::recti area, const int playerID, const int irrlichtWidgetID=-1) : Widget(WTYPE_DIV) + core::recti area, const int playerID, std::string kartGroup, + const int irrlichtWidgetID=-1) : Widget(WTYPE_DIV) { #ifdef DEBUG assert(associatedPlayer->ok()); @@ -312,13 +313,23 @@ // Init kart model const std::string default_kart = UserConfigParams::m_default_kart; const KartProperties* props = kart_properties_manager->getKart(default_kart); + if(!props) { // If the default kart can't be found (e.g. previously a addon // kart was used, but the addon package was removed), use the // first kart as a default. This way we don't have to hardcode // any kart names. - props = kart_properties_manager->getKartById(0); + int id = kart_properties_manager->getKartByGroup(kartGroup, 0); + if (id == -1) + { + props = kart_properties_manager->getKartById(0); + } + else + { + props = kart_properties_manager->getKartById(id); + } + if(!props) { fprintf(stderr, @@ -327,6 +338,7 @@ exit(-1); } } + m_kartInternalName = props->getIdent(); const KartModel &kart_model = props->getMasterKartModel(); @@ -1093,8 +1105,13 @@ const int new_player_id = StateManager::get()->createActivePlayer( profileToUse, device ); StateManager::ActivePlayer* aplayer = StateManager::get()->getActivePlayer(new_player_id); + RibbonWidget* tabs = getWidget<RibbonWidget>("kartgroups"); + assert(tabs != NULL); + + std::string selected_kart_group = tabs->getSelectionIDString(PLAYER_ID_GAME_MASTER); + // ---- Create player/kart widget - PlayerKartWidget* newPlayerWidget = new PlayerKartWidget(this, aplayer, kartsArea, m_kart_widgets.size()); + PlayerKartWidget* newPlayerWidget = new PlayerKartWidget(this, aplayer, kartsArea, m_kart_widgets.size(), selected_kart_group); manualAddWidget(newPlayerWidget); m_kart_widgets.push_back(newPlayerWidget); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |