aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/guiCreateWorld.cpp15
-rw-r--r--src/guiCreateWorld.h4
-rw-r--r--src/guiMainMenu.cpp2
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;