diff --git a/desktop_version/lang/ca/strings.xml b/desktop_version/lang/ca/strings.xml index 0bc289cc..441dfbd9 100644 --- a/desktop_version/lang/ca/strings.xml +++ b/desktop_version/lang/ca/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/de/strings.xml b/desktop_version/lang/de/strings.xml index a51355a9..06ae62aa 100644 --- a/desktop_version/lang/de/strings.xml +++ b/desktop_version/lang/de/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/en/strings.xml b/desktop_version/lang/en/strings.xml index 43ca393d..1be77f6c 100644 --- a/desktop_version/lang/en/strings.xml +++ b/desktop_version/lang/en/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/eo/strings.xml b/desktop_version/lang/eo/strings.xml index d49c5211..352e30f9 100644 --- a/desktop_version/lang/eo/strings.xml +++ b/desktop_version/lang/eo/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/es/strings.xml b/desktop_version/lang/es/strings.xml index d576cc5c..00f6168a 100644 --- a/desktop_version/lang/es/strings.xml +++ b/desktop_version/lang/es/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/fr/strings.xml b/desktop_version/lang/fr/strings.xml index 98142709..96f4d6f0 100644 --- a/desktop_version/lang/fr/strings.xml +++ b/desktop_version/lang/fr/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/it/strings.xml b/desktop_version/lang/it/strings.xml index 5786d877..eb768a10 100644 --- a/desktop_version/lang/it/strings.xml +++ b/desktop_version/lang/it/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/nl/strings.xml b/desktop_version/lang/nl/strings.xml index 575cd9d9..18bfbcc2 100644 --- a/desktop_version/lang/nl/strings.xml +++ b/desktop_version/lang/nl/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/pt_BR/strings.xml b/desktop_version/lang/pt_BR/strings.xml index ea7a8ebb..393ce8fe 100644 --- a/desktop_version/lang/pt_BR/strings.xml +++ b/desktop_version/lang/pt_BR/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/pt_PT/strings.xml b/desktop_version/lang/pt_PT/strings.xml index 497f9e93..eb570743 100644 --- a/desktop_version/lang/pt_PT/strings.xml +++ b/desktop_version/lang/pt_PT/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/ru/strings.xml b/desktop_version/lang/ru/strings.xml index 4cefc76a..cdb79350 100644 --- a/desktop_version/lang/ru/strings.xml +++ b/desktop_version/lang/ru/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/lang/tr/strings.xml b/desktop_version/lang/tr/strings.xml index 38389b73..c0ba1de6 100644 --- a/desktop_version/lang/tr/strings.xml +++ b/desktop_version/lang/tr/strings.xml @@ -648,7 +648,10 @@ + + + diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 2d6c7dfa..9c42a635 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -442,6 +442,12 @@ void Game::clearcustomlevelstats(void) void Game::updatecustomlevelstats(std::string clevel, int cscore) { + if (!map.custommodeforreal) + { + /* We are playtesting, don't update level stats */ + return; + } + if (clevel.find("levels/") != std::string::npos) { clevel = clevel.substr(7); @@ -1573,6 +1579,14 @@ void Game::updatestate(void) case 82: //Time Trial Complete! obj.removetrigger(82); +#if !defined(NO_CUSTOM_LEVELS) && !defined(NO_EDITOR) + if (map.custommode && !map.custommodeforreal) + { + returntoeditor(); + ed.show_note(loc::gettext("Time trial completed")); + break; + } +#endif if (translator_exploring) { translator_exploring_allowtele = true; @@ -2151,6 +2165,7 @@ void Game::updatestate(void) else { returntoeditor(); + ed.show_note(loc::gettext("Level completed")); } #endif } @@ -7150,8 +7165,28 @@ static void hardreset(void) script.hardreset(); } +#if !defined(NO_CUSTOM_LEVELS) && !defined(NO_EDITOR) +static void returntoeditor_callback(void) +{ + extern Game game; + game.returntoeditor(); + ed.show_note(loc::gettext("Level quits to menu")); +} +#endif + void Game::quittomenu(void) { +#if !defined(NO_CUSTOM_LEVELS) && !defined(NO_EDITOR) + if (map.custommode && !map.custommodeforreal) + { + /* We are playtesting! Go back to the editor + * instead of losing unsaved changes. */ + /* This needs to be deferred, otherwise some state would persist. */ + DEFER_CALLBACK(returntoeditor_callback); + return; + } +#endif + gamestate = TITLEMODE; graphics.fademode = FADE_START_FADEIN; FILESYSTEM_unmountAssets();