Fix world selection a bit (also fixes a main menu segfault)

This commit is contained in:
Kahrl 2013-05-08 11:06:47 +02:00 committed by PilzAdam
parent 0913287578
commit f00cee75c1

@ -726,9 +726,11 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
gui::IGUIListBox *e = Environment->addListBox(rect, this, gui::IGUIListBox *e = Environment->addListBox(rect, this,
GUI_ID_WORLD_LISTBOX); GUI_ID_WORLD_LISTBOX);
e->setDrawBackground(true); e->setDrawBackground(true);
for(std::vector<WorldSpec>::const_iterator i = m_data->worlds.begin(); m_world_indices.clear();
i != m_data->worlds.end(); i++){ for(size_t wi = 0; wi < m_data->worlds.size(); wi++){
e->addItem(narrow_to_wide(i->name+" ["+i->gameid+"]").c_str()); const WorldSpec &spec = m_data->worlds[wi];
e->addItem(narrow_to_wide(spec.name+" ["+spec.gameid+"]").c_str());
m_world_indices.push_back(wi);
} }
e->setSelected(m_data->selected_world); e->setSelected(m_data->selected_world);
} }
@ -1380,6 +1382,10 @@ bool GUIMainMenu::OnEvent(const SEvent& event)
return true; return true;
} }
} }
if(event.GUIEvent.EventType==gui::EGET_LISTBOX_CHANGED)
{
readInput(m_data);
}
if(event.GUIEvent.EventType==gui::EGET_LISTBOX_SELECTED_AGAIN) if(event.GUIEvent.EventType==gui::EGET_LISTBOX_SELECTED_AGAIN)
{ {
switch(event.GUIEvent.Caller->getID()) switch(event.GUIEvent.Caller->getID())