Mercurial > hg > openttd
changeset 18582:762b8d0e4f5d draft
(svn r23427) -Fix: Do not load screen resolution and other basic stuff after bootstrap is finished. It was already loaded before, and might got changed already.
author | frosch <frosch@openttd.org> |
---|---|
date | Sun, 04 Dec 2011 13:21:51 +0000 |
parents | 00d5b9938a9d |
children | d0fba6f5c87a |
files | src/settings.cpp |
diffstat | 1 files changed, 15 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/settings.cpp +++ b/src/settings.cpp @@ -1502,24 +1502,26 @@ } /* Common handler for saving/loading variables to the configuration file */ -static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescProcList *proc_list, bool minimal = false) +static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescProcList *proc_list, bool basic_settings = true, bool other_settings = true) { - proc(ini, (const SettingDesc*)_misc_settings, "misc", NULL); + if (basic_settings) { + proc(ini, (const SettingDesc*)_misc_settings, "misc", NULL); #if defined(WIN32) && !defined(DEDICATED) - proc(ini, (const SettingDesc*)_win32_settings, "win32", NULL); + proc(ini, (const SettingDesc*)_win32_settings, "win32", NULL); #endif /* WIN32 */ - - if (minimal) return; + } - proc(ini, _settings, "patches", &_settings_newgame); - proc(ini, _currency_settings,"currency", &_custom_currency); - proc(ini, _company_settings, "company", &_settings_client.company); + if (other_settings) { + proc(ini, _settings, "patches", &_settings_newgame); + proc(ini, _currency_settings,"currency", &_custom_currency); + proc(ini, _company_settings, "company", &_settings_client.company); #ifdef ENABLE_NETWORK - proc_list(ini, "server_bind_addresses", &_network_bind_list); - proc_list(ini, "servers", &_network_host_list); - proc_list(ini, "bans", &_network_ban_list); + proc_list(ini, "server_bind_addresses", &_network_bind_list); + proc_list(ini, "servers", &_network_host_list); + proc_list(ini, "bans", &_network_ban_list); #endif /* ENABLE_NETWORK */ + } } static IniFile *IniLoadConfig() @@ -1538,7 +1540,8 @@ IniFile *ini = IniLoadConfig(); if (!minimal) ResetCurrencies(false); // Initialize the array of curencies, without preserving the custom one - HandleSettingDescs(ini, IniLoadSettings, IniLoadSettingList, minimal); + /* Load basic settings only during bootstrap, load other settings not during bootstrap */ + HandleSettingDescs(ini, IniLoadSettings, IniLoadSettingList, minimal, !minimal); if (!minimal) { _grfconfig_newgame = GRFLoadConfig(ini, "newgrf", false);