Improve behavior when more players than karts

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@8806 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2011-06-02 22:43:38 +00:00
parent a5d4275554
commit be939e5e86
2 changed files with 18 additions and 4 deletions

View File

@ -684,6 +684,13 @@ EventPropagation DynamicRibbonWidget::focused(const int playerID)
updateLabel();
DynamicRibbonHoverListener* listener;
if (getSelectedRibbon(playerID)->getSelectionIDString(playerID) == "")
{
//fprintf(stderr, "[DynamicRibbonWidget] WARNING: Can't find selection for player %i, selecting first item\n", playerID);
emitter->setSelection(0, playerID);
}
for_in( listener, m_hover_listeners )
{
listener->onSelectionChanged(this, getSelectedRibbon(playerID)->getSelectionIDString(playerID),
@ -714,6 +721,13 @@ void DynamicRibbonWidget::onRibbonWidgetFocus(RibbonWidget* emitter, const int p
updateLabel(emitter);
DynamicRibbonHoverListener* listener;
if (emitter->getSelectionIDString(playerID) == "")
{
//fprintf(stderr, "[DynamicRibbonWidget] WARNING: Can't find selection for player %i, selecting first item\n", playerID);
emitter->setSelection(0, playerID);
}
for_in( listener, m_hover_listeners )
{
listener->onSelectionChanged(this, emitter->getSelectionIDString(playerID),

View File

@ -1517,9 +1517,9 @@ void KartSelectionScreen::allPlayersDone()
const int kart_count = m_kart_widgets.size();
for (int n = 0; n < kart_count; n++)
{
std::string selected_kart_group = m_kart_widgets[n].m_kartInternalName;
std::string selected_kart = m_kart_widgets[n].m_kartInternalName;
if (selected_kart_group == RANDOM_KART_ID)
if (selected_kart == RANDOM_KART_ID)
{
// don't select an already selected kart
int randomID;
@ -1530,7 +1530,7 @@ void KartSelectionScreen::allPlayersDone()
randomID = random.get(item_count);
if (items[randomID].m_code_name != ID_DONT_USE && items[randomID].m_code_name != ID_LOCKED)
{
selected_kart_group = items[randomID].m_code_name;
selected_kart = items[randomID].m_code_name;
done = true;
}
items[randomID].m_code_name = ID_DONT_USE;
@ -1552,7 +1552,7 @@ void KartSelectionScreen::allPlayersDone()
}
// std::cout << "selection=" << selection.c_str() << std::endl;
race_manager->setLocalKartInfo(n, selected_kart_group);
race_manager->setLocalKartInfo(n, selected_kart);
}
// ---- Switch to assign mode