From 1aeb8505ee06a58750dfa1352ca3956cb75f70b8 Mon Sep 17 00:00:00 2001 From: zico Date: Sun, 30 Aug 2015 14:04:59 +0200 Subject: [PATCH] Rearranged some calls of start_time() and stop_time() (+ limited usage to single functions) to make sure time_paused does not go out of balance --- similar/main/multi.cpp | 1 - similar/main/newdemo.cpp | 7 ++++++- similar/main/state.cpp | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) 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);