aboutsummaryrefslogtreecommitdiff
path: root/src/guiMainMenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/guiMainMenu.cpp')
-rw-r--r--src/guiMainMenu.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp
index 5d5ae1e90..48e41bb81 100644
--- a/src/guiMainMenu.cpp
+++ b/src/guiMainMenu.cpp
@@ -726,9 +726,11 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
gui::IGUIListBox *e = Environment->addListBox(rect, this,
GUI_ID_WORLD_LISTBOX);
e->setDrawBackground(true);
- for(std::vector<WorldSpec>::const_iterator i = m_data->worlds.begin();
- i != m_data->worlds.end(); i++){
- e->addItem(narrow_to_wide(i->name+" ["+i->gameid+"]").c_str());
+ m_world_indices.clear();
+ for(size_t wi = 0; wi < m_data->worlds.size(); wi++){
+ 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);
}
@@ -1380,6 +1382,10 @@ bool GUIMainMenu::OnEvent(const SEvent& event)
return true;
}
}
+ if(event.GUIEvent.EventType==gui::EGET_LISTBOX_CHANGED)
+ {
+ readInput(m_data);
+ }
if(event.GUIEvent.EventType==gui::EGET_LISTBOX_SELECTED_AGAIN)
{
switch(event.GUIEvent.Caller->getID())