diff --git a/source/blood/src/blood.cpp b/source/blood/src/blood.cpp index 1c057ad1d..caa2ee99c 100644 --- a/source/blood/src/blood.cpp +++ b/source/blood/src/blood.cpp @@ -342,6 +342,7 @@ void GameInterface::Ticker() gFrameCount++; gFrameClock += 4; + if (gFrameClock == 8) gameaction = ga_autosave; // let the game run for 1 frame before saving. for (int i = 0; i < 8; i++) { diff --git a/source/exhumed/src/exhumed.cpp b/source/exhumed/src/exhumed.cpp index 213d4595d..ece140b93 100644 --- a/source/exhumed/src/exhumed.cpp +++ b/source/exhumed/src/exhumed.cpp @@ -453,6 +453,7 @@ void GameInterface::Ticker() sPlayerInput[nLocalPlayer].horizon = PlayerList[nLocalPlayer].q16horiz; leveltime++; + if (leveltime == 2) gameaction = ga_autosave; // let the game run for 1 frame before saving. GameMove(); r_NoInterpolate = false; } diff --git a/source/games/duke/src/gameloop.cpp b/source/games/duke/src/gameloop.cpp index 4972d9c8f..8ca735402 100644 --- a/source/games/duke/src/gameloop.cpp +++ b/source/games/duke/src/gameloop.cpp @@ -100,6 +100,7 @@ void GameInterface::Ticker() r_NoInterpolate = false; ud.levelclock+= 4; // This must be at the end of this block so that the first tic receives a value of 0! + if (ud.levelclock == 8) gameaction = ga_autosave; // let the game run for 1 frame before saving. } else r_NoInterpolate = true; diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index c1ce4f52a..def7e1207 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -7577,6 +7577,7 @@ domovethings(void) } PlayClock += synctics; + if (PlayClock == 2*synctics) gameaction = ga_autosave; // let the game run for 1 frame before saving. thinktime.Reset(); thinktime.Clock();