diff --git a/simworld.cc b/simworld.cc index 7f26c5861..307a4194c 100644 --- a/simworld.cc +++ b/simworld.cc @@ -4559,11 +4559,11 @@ void karte_t::save(const char *filename, loadsave_t::mode_t savemode, const char { DBG_MESSAGE("karte_t::save()", "saving game to '%s'", filename); loadsave_t file; - bool save_temp = strstart( filename, "save/" ); - const char *savename = save_temp ? "save/_temp.sve" : filename; + std::string savename = filename; + savename += ".part"; display_show_load_pointer( true ); - if(!file.wr_open( savename, savemode, env_t::objfilename.c_str(), version_str )) { + if(!file.wr_open( savename.c_str(), savemode, env_t::objfilename.c_str(), version_str )) { create_win(new news_img("Kann Spielstand\nnicht speichern.\n"), w_info, magic_none); dbg->error("karte_t::save()","cannot open file for writing! check permissions!"); } @@ -4576,9 +4576,7 @@ DBG_MESSAGE("karte_t::save()", "saving game to '%s'", filename); create_win( new news_img(err_str), w_time_delete, magic_none); } else { - if( save_temp ) { - dr_rename( savename, filename ); - } + dr_rename( savename.c_str(), filename ); if(!silent) { create_win( new news_img("Spielstand wurde\ngespeichert!\n"), w_time_delete, magic_none); // update the filename, if no autosave