diff --git a/similar/main/multi.cpp b/similar/main/multi.cpp index 016602301..3de207c76 100644 --- a/similar/main/multi.cpp +++ b/similar/main/multi.cpp @@ -4831,7 +4831,6 @@ void multi_save_game(ubyte slot, uint id, char *desc) snprintf(filename, sizeof(filename), PLAYER_DIRECTORY_STRING("%s.mg%d"), static_cast(get_local_player().callsign), slot); HUD_init_message(HM_MULTI, "Saving game #%d, '%s'", slot, desc); - stop_time(); state_game_id = id; state_save_all_sub(filename, desc ); } diff --git a/similar/main/newdemo.cpp b/similar/main/newdemo.cpp index 1e2edc2e9..810145502 100644 --- a/similar/main/newdemo.cpp +++ b/similar/main/newdemo.cpp @@ -3034,13 +3034,17 @@ static int newdemo_read_frame_information(int rewrite) if ((loaded_level < Last_secret_level) || (loaded_level > Last_level)) { nm_messagebox( NULL, 1, TXT_OK, "%s\n%s\n%s", TXT_CANT_PLAYBACK, TXT_LEVEL_CANT_LOAD, TXT_DEMO_OLD_CORRUPT ); Current_mission.reset(); + start_time(); return -1; } LoadLevel((int)loaded_level,1); nd_playback_v_cntrlcen_destroyed = 0; + start_time(); } + if (!rewrite) + stop_time(); #if defined(DXX_BUILD_DESCENT_II) if (nd_playback_v_juststarted) { @@ -3098,7 +3102,8 @@ static int newdemo_read_frame_information(int rewrite) reset_palette_add(); // get palette back to normal full_palette_save(); // initialise for palette_restore() - start_time(); + if (!rewrite) + start_time(); break; } diff --git a/similar/main/state.cpp b/similar/main/state.cpp index 63141d5fe..599a4003a 100644 --- a/similar/main/state.cpp +++ b/similar/main/state.cpp @@ -881,6 +881,7 @@ int state_save_all(const secret_save secret, const blind_save blind_save) } } #endif + start_time(); rval = state_save_all_sub(filename, desc); @@ -905,10 +906,11 @@ int state_save_all_sub(const char *filename, const char *desc) auto fp = PHYSFSX_openWriteBuffered(filename); if ( !fp ) { nm_messagebox(NULL, 1, TXT_OK, "Error writing savegame.\nPossibly out of disk\nspace."); - start_time(); return 0; } + stop_time(); + //Save id PHYSFS_write(fp, dgss_id, sizeof(char) * 4, 1);