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:
@@ -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");
|
||||
|
Reference in New Issue
Block a user