aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKahrl <kahrl@gmx.net>2013-05-08 11:06:47 +0200
committerPilzAdam <pilzadam@minetest.net>2013-05-08 20:54:03 +0200
commitf00cee75c153deceb0253b531228eec27d1e819b (patch)
tree41eaa5db209563fbb4b7f8a99975b8093f6eb277
parent0913287578504f89489df6e0573c28c7ac428805 (diff)
downloadminetest-f00cee75c153deceb0253b531228eec27d1e819b.tar.gz
minetest-f00cee75c153deceb0253b531228eec27d1e819b.tar.bz2
minetest-f00cee75c153deceb0253b531228eec27d1e819b.zip
Fix world selection a bit (also fixes a main menu segfault)
-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())