diff --git a/src/guiCreateWorld.cpp b/src/guiCreateWorld.cpp index 09b18fb3c7e690708294c31cdeecd8f8522f5365..caa884bc05e7beb36c5cc0e2e4d87946686fec86 100644 --- a/src/guiCreateWorld.cpp +++ b/src/guiCreateWorld.cpp @@ -42,13 +42,22 @@ GUICreateWorld::GUICreateWorld(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, CreateWorldDest *dest, - const std::vector<SubgameSpec> &games + const std::vector<SubgameSpec> &games, + const std::string &initial_game ): GUIModalMenu(env, parent, id, menumgr), m_dest(dest), - m_games(games) + m_games(games), + m_initial_game_i(0) { assert(games.size() > 0); + + for(size_t i=0; i<games.size(); i++){ + if(games[i].id == initial_game){ + m_initial_game_i = i; + break; + } + } } GUICreateWorld::~GUICreateWorld() @@ -151,7 +160,7 @@ void GUICreateWorld::regenerateGui(v2u32 screensize) os<<L"]"; e->addItem(os.str().c_str()); } - e->setSelected(0); + e->setSelected(m_initial_game_i); } changeCtype(""); { diff --git a/src/guiCreateWorld.h b/src/guiCreateWorld.h index d9bc3638a86a60da244ff79e1ce223d7f56bd071..2765dc2bd523c20f5b38531b633b5f7fc2071a5d 100644 --- a/src/guiCreateWorld.h +++ b/src/guiCreateWorld.h @@ -38,7 +38,8 @@ class GUICreateWorld : public GUIModalMenu gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, CreateWorldDest *dest, - const std::vector<SubgameSpec> &games); + const std::vector<SubgameSpec> &games, + const std::string &initial_game); ~GUICreateWorld(); void removeChildren(); @@ -56,6 +57,7 @@ class GUICreateWorld : public GUIModalMenu private: CreateWorldDest *m_dest; std::vector<SubgameSpec> m_games; + int m_initial_game_i; }; #endif diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp index 2e7fb955d6c03b253c76a7ca7796954d8271f93d..c6142d4ce5a2844972ca7ac6493bbd25cfe9bf2c 100644 --- a/src/guiMainMenu.cpp +++ b/src/guiMainMenu.cpp @@ -1274,7 +1274,7 @@ bool GUIMainMenu::OnEvent(const SEvent& event) } else { CreateWorldDest *dest = new CreateWorldDestMainMenu(this); GUICreateWorld *menu = new GUICreateWorld(env, parent, -1, - menumgr, dest, games); + menumgr, dest, games, m_data->selected_game); menu->drop(); } return true;