diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index e997a807..843cec62 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -1288,6 +1288,7 @@ void Game::updatestate() break; case 81: quittomenu(); + music.play(6); //should be after quittomenu() state = 0; break; @@ -1341,11 +1342,7 @@ void Game::updatestate() if(graphics.fademode == 1) state++; break; case 84: - graphics.flipmode = false; - gamestate = TITLEMODE; - graphics.fademode = 4; - graphics.backgrounddrawn = true; - graphics.titlebg.tdrawback = true; + quittomenu(); createmenu(Menu::timetrialcomplete); state = 0; break; @@ -1871,7 +1868,6 @@ void Game::updatestate() if(!muted && ed.levmusic>0) music.fadeMusicVolumeIn(3000); } graphics.showcutscenebars = false; - returntomenu(Menu::levellist); break; #endif case 1014: @@ -1896,6 +1892,7 @@ void Game::updatestate() } #endif quittomenu(); + music.play(6); //should be after quittomenu() state = 0; break; @@ -2852,7 +2849,6 @@ void Game::updatestate() { graphics.fademode = 2; companion = 0; - returnmenu(); state=3100; } else @@ -2883,7 +2879,6 @@ void Game::updatestate() state++; graphics.fademode = 2; music.fadeout(); - returnmenu(); state=3100; } else @@ -2909,12 +2904,8 @@ void Game::updatestate() if(graphics.fademode == 1) state++; break; case 3101: - graphics.flipmode = false; - gamestate = TITLEMODE; - graphics.fademode = 4; - graphics.backgrounddrawn = true; - graphics.titlebg.tdrawback = true; - music.play(6); + quittomenu(); + music.play(6); //should be after quittomenu(); state = 0; break; @@ -3218,11 +3209,7 @@ void Game::updatestate() if(graphics.fademode == 1) state++; break; case 3522: - graphics.flipmode = false; - gamestate = TITLEMODE; - graphics.fademode = 4; - graphics.backgrounddrawn = true; - graphics.titlebg.tdrawback = true; + quittomenu(); createmenu(Menu::nodeathmodecomplete); state = 0; break; @@ -6972,9 +6959,7 @@ void Game::quittomenu() { gamestate = TITLEMODE; graphics.fademode = 4; - FILESYSTEM_unmountassets(); // should be before music.play(6) - music.play(6); - graphics.backgrounddrawn = false; + FILESYSTEM_unmountassets(); graphics.titlebg.tdrawback = true; graphics.flipmode = false; //Don't be stuck on the summary screen, @@ -6995,7 +6980,15 @@ void Game::quittomenu() } else if (map.custommode) { - returntomenu(Menu::levellist); + if (map.custommodeforreal) + { + returntomenu(Menu::levellist); + } + else + { + //Returning from editor + returntomenu(Menu::playerworlds); + } } else if (save_exists() || anything_unlocked()) { diff --git a/desktop_version/src/Input.cpp b/desktop_version/src/Input.cpp index 652a0601..766fc641 100644 --- a/desktop_version/src/Input.cpp +++ b/desktop_version/src/Input.cpp @@ -2117,6 +2117,7 @@ void mapinput() else { game.quittomenu(); + music.play(6); //should be after game.quittomenu() game.fadetomenu = false; } } diff --git a/desktop_version/src/Logic.cpp b/desktop_version/src/Logic.cpp index b0a2b96a..51ad99fd 100644 --- a/desktop_version/src/Logic.cpp +++ b/desktop_version/src/Logic.cpp @@ -113,13 +113,9 @@ void gamecompletelogic2() game.savetele(); music.currentsong=tmp; //Return to game - graphics.titlebg.colstate = 10; - game.gamestate = TITLEMODE; - graphics.fademode = 4; - FILESYSTEM_unmountassets(); // should be before music.playef(18) - music.playef(18); - game.returntomenu(Menu::play); + game.quittomenu(); game.createmenu(Menu::gamecompletecontinue); + graphics.titlebg.colstate = 10; map.nexttowercolour(); } } diff --git a/desktop_version/src/Script.cpp b/desktop_version/src/Script.cpp index ea3c18bc..16b7d347 100644 --- a/desktop_version/src/Script.cpp +++ b/desktop_version/src/Script.cpp @@ -2627,11 +2627,8 @@ void scriptclass::run() void scriptclass::resetgametomenu() { - game.gamestate = TITLEMODE; - graphics.flipmode = false; obj.entities.clear(); - graphics.fademode = 4; - graphics.titlebg.tdrawback = true; + game.quittomenu(); game.createmenu(Menu::gameover); } @@ -3262,6 +3259,8 @@ void scriptclass::startgamemode( int t ) hardreset(); ed.reset(); music.fadeout(); + map.custommode = true; + map.custommodeforreal = false; game.gamestate = EDITORMODE; game.jumpheld = true; diff --git a/desktop_version/src/editor.cpp b/desktop_version/src/editor.cpp index 6ca04175..a52cb2e5 100644 --- a/desktop_version/src/editor.cpp +++ b/desktop_version/src/editor.cpp @@ -3627,18 +3627,11 @@ void editorlogic() if (graphics.fademode == 1) { //Return to game - map.nexttowercolour(); graphics.titlebg.colstate = 10; - game.gamestate = TITLEMODE; - script.hardreset(); - graphics.fademode = 4; - music.haltdasmusik(); - FILESYSTEM_unmountassets(); // should be before music.play(6) - music.play(6); map.nexttowercolour(); + game.quittomenu(); + music.play(6); //should be before game.quittomenu() ed.settingsmod=false; - graphics.backgrounddrawn=false; - game.returntomenu(Menu::playerworlds); } }