diff --git a/src/saland.cpp b/src/saland.cpp index 36653ba..b3d4cf6 100644 --- a/src/saland.cpp +++ b/src/saland.cpp @@ -258,11 +258,49 @@ void RunGameState(sago::GameStateInterface& state ) { } } -void startWorld() { +void startWorld1() { + Config::getInstance()->setString("world", "world1"); Game g; RunGameState(g); } +void startWorld2() { + Config::getInstance()->setString("world", "world2"); + Game g; + RunGameState(g); +} +void startWorld3() { + Config::getInstance()->setString("world", "world3"); + Game g; + RunGameState(g); +} +void startWorld4() { + Config::getInstance()->setString("world", "world4"); + Game g; + RunGameState(g); +} + +void runWorldSelect() { + Menu m(globalData.screen, true); + Button bWorld1; + bWorld1.setLabel("World 1"); + bWorld1.setAction(startWorld1); + m.addButton(&bWorld1); + Button bWorld2; + bWorld2.setLabel("World 2"); + bWorld2.setAction(startWorld2); + m.addButton(&bWorld2); + Button bWorld3; + bWorld3.setLabel("World 3"); + bWorld3.setAction(startWorld3); + m.addButton(&bWorld3); + Button bWorld4; + bWorld4.setLabel("World 4"); + bWorld4.setAction(startWorld4); + m.addButton(&bWorld4); + RunGameState(m); +} + void ResetFullscreen() { sago::SagoDataHolder& dataHolder = *globalData.dataHolder; @@ -334,7 +372,7 @@ void runGame() { Menu m(globalData.screen, false); Button bStart; bStart.setLabel("Start"); - bStart.setAction(startWorld); + bStart.setAction(runWorldSelect); m.addButton(&bStart); Button bOptions; bOptions.setLabel("Options"); diff --git a/src/saland/Game.cpp b/src/saland/Game.cpp index aef36bf..e9ff5c0 100644 --- a/src/saland/Game.cpp +++ b/src/saland/Game.cpp @@ -262,6 +262,7 @@ Game::Game() { data.reset(new Game::GameImpl()); data->human.reset(new Human()); data->lastUpdate = SDL_GetTicks(); + data->worldName = Config::getInstance()->getString("world"); ResetWorld(0, 0, false); data->human->pants = globalData.player.get_visible_bottom(); data->human->hair = globalData.player.get_visible_hair();