Add setting to control autosave interval mode

This commit is contained in:
Jonathan G Rennison
2023-11-13 18:45:18 +00:00
parent 19bbcb180d
commit cb9e088399
5 changed files with 18 additions and 2 deletions

View File

@@ -2106,7 +2106,7 @@ void StateGameLoop()
_scaled_date_ticks++; // This must update in lock-step with _tick_skip_counter, such that it always matches what SetScaledTickVariables would return.
}
if (!(_game_mode == GM_MENU || _game_mode == GM_BOOTSTRAP) &&
if (!(_game_mode == GM_MENU || _game_mode == GM_BOOTSTRAP) && !_settings_client.gui.autosave_realtime &&
(_scaled_date_ticks % (_settings_client.gui.autosave_interval * (_settings_game.economy.tick_rate == TRM_MODERN ? (60000 / 27) : (60000 / 30)))) == 0) {
_do_autosave = true;
_check_special_modes = true;
@@ -2228,7 +2228,8 @@ static IntervalTimer<TimerGameRealtime> _autosave_interval({std::chrono::millise
*/
void ChangeAutosaveFrequency(bool reset)
{
_autosave_interval.SetInterval({_settings_client.gui.autosave_realtime, TimerGameRealtime::AUTOSAVE}, reset);
std::chrono::minutes interval = _settings_client.gui.autosave_realtime ? std::chrono::minutes(_settings_client.gui.autosave_interval) : std::chrono::minutes::zero();
_autosave_interval.SetInterval({interval, TimerGameRealtime::AUTOSAVE}, reset);
}
/**