Filter worlds by selected game
parent
084be3599a
commit
2708482f1b
|
@ -348,11 +348,17 @@ 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];
|
||||||
|
if(spec.gameid == m_data->selected_game){
|
||||||
|
//e->addItem(narrow_to_wide(spec.name+" ["+spec.gameid+"]").c_str());
|
||||||
|
e->addItem(narrow_to_wide(spec.name).c_str());
|
||||||
|
m_world_indices.push_back(wi);
|
||||||
|
if(m_data->selected_world == (int)wi)
|
||||||
|
e->setSelected(m_world_indices.size()-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
e->setSelected(m_data->selected_world);
|
|
||||||
Environment->setFocus(e);
|
Environment->setFocus(e);
|
||||||
}
|
}
|
||||||
// Delete world button
|
// Delete world button
|
||||||
|
@ -1131,8 +1137,13 @@ void GUIMainMenu::readInput(MainMenuData *dst)
|
||||||
|
|
||||||
{
|
{
|
||||||
gui::IGUIElement *e = getElementFromId(GUI_ID_WORLD_LISTBOX);
|
gui::IGUIElement *e = getElementFromId(GUI_ID_WORLD_LISTBOX);
|
||||||
if(e != NULL && e->getType() == gui::EGUIET_LIST_BOX)
|
if(e != NULL && e->getType() == gui::EGUIET_LIST_BOX){
|
||||||
dst->selected_world = ((gui::IGUIListBox*)e)->getSelected();
|
int list_i = ((gui::IGUIListBox*)e)->getSelected();
|
||||||
|
if(list_i == -1)
|
||||||
|
dst->selected_world = -1;
|
||||||
|
else
|
||||||
|
dst->selected_world = m_world_indices[list_i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
ServerListSpec server =
|
ServerListSpec server =
|
||||||
|
|
|
@ -130,6 +130,8 @@ private:
|
||||||
s32 id;
|
s32 id;
|
||||||
IMenuManager *menumgr;
|
IMenuManager *menumgr;
|
||||||
|
|
||||||
|
std::vector<int> m_world_indices;
|
||||||
|
|
||||||
bool m_is_regenerating;
|
bool m_is_regenerating;
|
||||||
v2s32 m_topleft_client;
|
v2s32 m_topleft_client;
|
||||||
v2s32 m_size_client;
|
v2s32 m_size_client;
|
||||||
|
|
Loading…
Reference in New Issue