diff options
-rw-r--r-- | src/guiCreateWorld.cpp | 15 | ||||
-rw-r--r-- | src/guiCreateWorld.h | 4 | ||||
-rw-r--r-- | src/guiMainMenu.cpp | 2 |
3 files changed, 16 insertions, 5 deletions
diff --git a/src/guiCreateWorld.cpp b/src/guiCreateWorld.cpp index 09b18fb3c..caa884bc0 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 d9bc3638a..2765dc2bd 100644 --- a/src/guiCreateWorld.h +++ b/src/guiCreateWorld.h @@ -38,7 +38,8 @@ public: 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 @@ public: 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 2e7fb955d..c6142d4ce 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; |