diff --git a/desktop_version/src/Entity.cpp b/desktop_version/src/Entity.cpp index 210145a814..3a372db893 100644 --- a/desktop_version/src/Entity.cpp +++ b/desktop_version/src/Entity.cpp @@ -2732,6 +2732,13 @@ bool entityclass::updateentities( int i ) game.savedir = entities[player].dir; } entities[i].state = 0; + + if (game.checkpoint_saving) + { + bool success = game.savequick(); + game.gamesaved = success; + game.gamesavefailed = !success; + } } break; case 9: //Gravity Lines diff --git a/desktop_version/src/Game.cpp b/desktop_version/src/Game.cpp index 1d7bad140c..b7deec5192 100644 --- a/desktop_version/src/Game.cpp +++ b/desktop_version/src/Game.cpp @@ -376,6 +376,12 @@ void Game::init(void) screenshot_border_timer = 0; screenshot_saved_success = false; +#ifdef __ANDROID__ + checkpoint_saving = true; +#else + checkpoint_saving = false; +#endif + setdefaultcontrollerbuttons(); } @@ -4936,6 +4942,10 @@ void Game::deserializesettings(tinyxml2::XMLElement* dataNode, struct ScreenSett roomname_translator::set_enabled(help.Int(pText)); } + if (SDL_strcmp(pKey, "checkpoint_saving") == 0) + { + checkpoint_saving = help.Int(pText); + } } setdefaultcontrollerbuttons(); @@ -5194,6 +5204,8 @@ void Game::serializesettings(tinyxml2::XMLElement* dataNode, const struct Screen xml::update_tag(dataNode, "english_sprites", (int) loc::english_sprites); xml::update_tag(dataNode, "new_level_font", loc::new_level_font.c_str()); xml::update_tag(dataNode, "roomname_translator", (int) roomname_translator::enabled); + + xml::update_tag(dataNode, "checkpoint_saving", (int) checkpoint_saving); } static bool settings_loaded = false; diff --git a/desktop_version/src/Game.h b/desktop_version/src/Game.h index 362a956ced..f4bc4e172b 100644 --- a/desktop_version/src/Game.h +++ b/desktop_version/src/Game.h @@ -363,6 +363,7 @@ class Game int savetrinkets; bool startscript; std::string newscript; + bool checkpoint_saving; bool menustart; diff --git a/desktop_version/src/Script.cpp b/desktop_version/src/Script.cpp index a58b1735a1..4b7bd83ece 100644 --- a/desktop_version/src/Script.cpp +++ b/desktop_version/src/Script.cpp @@ -1206,6 +1206,13 @@ void scriptclass::run(void) { game.savedir = obj.entities[i].dir; } + + if (game.checkpoint_saving) + { + bool success = game.savequick(); + game.gamesaved = success; + game.gamesavefailed = !success; + } } else if (words[0] == "gamestate") {