From: Kahrl Date: Wed, 8 May 2013 09:06:47 +0000 (+0200) Subject: Fix world selection a bit (also fixes a main menu segfault) X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=f00cee75c153deceb0253b531228eec27d1e819b;p=zefram%2Fminetest%2Fminetest_engine.git Fix world selection a bit (also fixes a main menu segfault) --- diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp index 5d5ae1e9..48e41bb8 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::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())