From 54d45a60475e3dd0935ab634432c9869b4ea8fef Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Thu, 7 Dec 2023 19:27:00 +0000 Subject: [PATCH] Codechange: Don't keep autosave_interval in std::chrono::minutes. This variable is saved as a setting which requires the variable type to be known, but std::chrono::minutes may vary depending on system type. Instead, keep as uint32_t and convert to std::chrono::minutes only when setting the timer. --- src/openttd.cpp | 2 +- src/settings.cpp | 10 +++++----- src/settings_gui.cpp | 12 ++++++------ src/settings_type.h | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 96f7dc7d98..c507abae78 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1475,7 +1475,7 @@ static IntervalTimer _autosave_interval({std::chrono::millise */ void ChangeAutosaveFrequency(bool reset) { - _autosave_interval.SetInterval({_settings_client.gui.autosave_interval, TimerGameRealtime::AUTOSAVE}, reset); + _autosave_interval.SetInterval({std::chrono::minutes(_settings_client.gui.autosave_interval), TimerGameRealtime::AUTOSAVE}, reset); } /** diff --git a/src/settings.cpp b/src/settings.cpp index 5e8c0b266f..01ad5bdbf6 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1397,11 +1397,11 @@ void LoadFromConfig(bool startup) auto old_value = OneOfManySettingDesc::ParseSingleValue(old_item->value->c_str(), old_item->value->size(), _old_autosave_interval); switch (old_value) { - case 0: _settings_client.gui.autosave_interval = std::chrono::minutes::zero(); break; - case 1: _settings_client.gui.autosave_interval = std::chrono::minutes(10); break; - case 2: _settings_client.gui.autosave_interval = std::chrono::minutes(30); break; - case 3: _settings_client.gui.autosave_interval = std::chrono::minutes(60); break; - case 4: _settings_client.gui.autosave_interval = std::chrono::minutes(120); break; + case 0: _settings_client.gui.autosave_interval = 0; break; + case 1: _settings_client.gui.autosave_interval = 10; break; + case 2: _settings_client.gui.autosave_interval = 30; break; + case 3: _settings_client.gui.autosave_interval = 60; break; + case 4: _settings_client.gui.autosave_interval = 120; break; default: break; } } diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 4587b1c2e1..c80bcc2766 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -60,12 +60,12 @@ static const StringID _autosave_dropdown[] = { }; /** Available settings for autosave intervals. */ -static const std::chrono::minutes _autosave_dropdown_to_minutes[] = { - std::chrono::minutes::zero(), ///< never - std::chrono::minutes(10), - std::chrono::minutes(30), - std::chrono::minutes(60), - std::chrono::minutes(120), +static const uint32_t _autosave_dropdown_to_minutes[] = { + 0, ///< never + 10, + 30, + 60, + 120, }; static Dimension _circle_size; ///< Dimension of the circle +/- icon. This is here as not all users are within the class of the settings window. diff --git a/src/settings_type.h b/src/settings_type.h index 0c8b963f07..571a09f26e 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -149,7 +149,7 @@ struct GUISettings { ZoomLevel zoom_min; ///< minimum zoom out level ZoomLevel zoom_max; ///< maximum zoom out level ZoomLevel sprite_zoom_min; ///< maximum zoom level at which higher-resolution alternative sprites will be used (if available) instead of scaling a lower resolution sprite - std::chrono::minutes autosave_interval; ///< how often should we do autosaves? + uint32_t autosave_interval; ///< how often should we do autosaves? bool threaded_saves; ///< should we do threaded saves? bool keep_all_autosave; ///< name the autosave in a different way bool autosave_on_exit; ///< save an autosave when you quit the game, but do not ask "Do you really want to quit?"