Merge branch 'master' into jgrpp

# Conflicts:
#	src/openttd.cpp
#	src/settings_gui.cpp
#	src/settings_type.h
#	src/table/settings/gameopt_settings.ini
#	src/table/settings/gui_settings.ini
This commit is contained in:
Jonathan G Rennison
2023-11-12 13:17:33 +00:00
8 changed files with 82 additions and 95 deletions

View File

@@ -195,6 +195,8 @@ enum IniFileVersion : uint32 {
IFV_LINKGRAPH_SECONDS, ///< 3 PR#10610 Store linkgraph update intervals in seconds instead of days.
IFV_NETWORK_PRIVATE_SETTINGS, ///< 4 PR#10762 Move no_http_content_downloads / use_relay_service to private settings.
IFV_AUTOSAVE_RENAME, ///< 5 PR#11143 Renamed values of autosave to be in minutes.
IFV_MAX_VERSION, ///< Highest possible ini-file version.
};
@@ -2454,6 +2456,34 @@ void LoadFromConfig(bool startup)
_settings_client.network.server_game_type = old_value.value_or(false) ? SERVER_GAME_TYPE_PUBLIC : SERVER_GAME_TYPE_LOCAL;
}
if (generic_version < IFV_AUTOSAVE_RENAME && IsConversionNeeded(generic_ini, "gui", "autosave", "autosave_interval", &old_item)) {
static std::vector<std::string> _old_autosave_interval{"off", "monthly", "quarterly", "half year", "yearly", "custom_days", "custom_realtime_minutes"};
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 = 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;
case 5: {
IniItem *old_autosave_custom_days;
if (IsConversionNeeded(generic_ini, "gui", "autosave_custom_days", "autosave_interval", &old_autosave_custom_days)) {
_settings_client.gui.autosave_interval = (std::strtoul(old_autosave_custom_days->value->c_str(), nullptr, 10) + 2) / 3;
}
break;
}
case 6: {
IniItem *old_autosave_custom_minutes;
if (IsConversionNeeded(generic_ini, "gui", "autosave_custom_minutes", "autosave_interval", &old_autosave_custom_minutes)) {
_settings_client.gui.autosave_interval = std::strtoul(old_autosave_custom_minutes->value->c_str(), nullptr, 10);
}
break;
}
default: break;
}
}
_grfconfig_newgame = GRFLoadConfig(generic_ini, "newgrf", false);
_grfconfig_static = GRFLoadConfig(generic_ini, "newgrf-static", true);
AILoadConfig(generic_ini, "ai_players");