mirror of
https://github.com/OpenTTD/OpenTTD
synced 2026-01-21 03:12:41 +01:00
(svn r15775) [0.7] -Backport from trunk:
- Fix: Do not show the message about reporting an AI crash for the dummy AI (r15774) - Fix: Number of active clients was not always properly updated [FS#2475] (r15773) - Fix: Settings from the [gameopt] section (from old 0.6 config files) were overwritten with default values (r15771) - Fix: Infinite loop when skipping sprites when a GRF is invalid (or truncated) (r15767) - Fix: Crash when opening the content list window twice; inconsistencies when clicking download twice [FS#2744] (r15766)
This commit is contained in:
@@ -1163,12 +1163,6 @@ static bool ChangeDynamicEngines(int32 p1)
|
||||
|
||||
#ifdef ENABLE_NETWORK
|
||||
|
||||
static bool UpdateMinActiveClients(int32 p1)
|
||||
{
|
||||
CheckMinActiveClients();
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool UpdateClientName(int32 p1)
|
||||
{
|
||||
NetworkUpdateClientName();
|
||||
@@ -1279,7 +1273,7 @@ static const SettingDesc _gameopt_settings[] = {
|
||||
* 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlArray() hack
|
||||
* for savegames version 0 - though it is an array, it has to go through the byteswap process */
|
||||
SDTG_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_FILE_I16 | SLE_VAR_U16, C, 0, _old_diff_custom, 17, 0, 0, 0, 0, NULL, STR_NULL, NULL, 0, 3),
|
||||
SDTG_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_UINT16, C, 0, _old_diff_custom, 18, 0, 0, 0, 0, NULL, STR_NULL, NULL, 4, 96),
|
||||
SDTG_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_UINT16, C, 0, _old_diff_custom, 18, 0, 0, 0, 0, NULL, STR_NULL, NULL, 4, SL_MAX_VERSION),
|
||||
|
||||
SDT_VAR(GameSettings, difficulty.diff_level, SLE_UINT8, 0, 0, 0, 0, 3, 0, STR_NULL, NULL),
|
||||
SDT_OMANY(GameSettings, locale.currency, SLE_UINT8, N, 0, 0, CUSTOM_CURRENCY_ID, "GBP|USD|EUR|YEN|ATS|BEF|CHF|CZK|DEM|DKK|ESP|FIM|FRF|GRD|HUF|ISK|ITL|NLG|NOK|PLN|ROL|RUR|SIT|SEK|YTL|SKK|BRL|EEK|custom", STR_NULL, NULL, NULL),
|
||||
@@ -1577,7 +1571,7 @@ const SettingDesc _settings[] = {
|
||||
SDTC_VAR(network.max_clients, SLE_UINT8, S, NO, 16, 2, MAX_CLIENTS, 0, STR_NULL, NULL),
|
||||
SDTC_VAR(network.max_spectators, SLE_UINT8, S, NO, 8, 0, MAX_CLIENTS, 0, STR_NULL, UpdateClientConfigValues),
|
||||
SDTC_VAR(network.restart_game_year, SLE_INT32, S,D0|NO|NC,0, MIN_YEAR, MAX_YEAR, 1, STR_NULL, NULL),
|
||||
SDTC_VAR(network.min_active_clients, SLE_UINT8, S, NO, 0, 0, MAX_CLIENTS, 0, STR_NULL, UpdateMinActiveClients),
|
||||
SDTC_VAR(network.min_active_clients, SLE_UINT8, S, NO, 0, 0, MAX_CLIENTS, 0, STR_NULL, NULL),
|
||||
SDTC_OMANY(network.server_lang, SLE_UINT8, S, NO, 0, 35, "ANY|ENGLISH|GERMAN|FRENCH|BRAZILIAN|BULGARIAN|CHINESE|CZECH|DANISH|DUTCH|ESPERANTO|FINNISH|HUNGARIAN|ICELANDIC|ITALIAN|JAPANESE|KOREAN|LITHUANIAN|NORWEGIAN|POLISH|PORTUGUESE|ROMANIAN|RUSSIAN|SLOVAK|SLOVENIAN|SPANISH|SWEDISH|TURKISH|UKRAINIAN|AFRIKAANS|CROATIAN|CATALAN|ESTONIAN|GALICIAN|GREEK|LATVIAN", STR_NULL, NULL),
|
||||
SDTC_BOOL(network.reload_cfg, S, NO, false, STR_NULL, NULL),
|
||||
SDTC_STR(network.last_host, SLE_STRB, S, 0, "0.0.0.0", STR_NULL, NULL),
|
||||
@@ -1907,15 +1901,16 @@ void LoadFromConfig()
|
||||
IniFile *ini = IniLoadConfig();
|
||||
ResetCurrencies(false); // Initialize the array of curencies, without preserving the custom one
|
||||
|
||||
PrepareOldDiffCustom();
|
||||
ini_load_settings(ini, _gameopt_settings, "gameopt", &_settings_newgame);
|
||||
HandleOldDiffCustom(false);
|
||||
|
||||
HandleSettingDescs(ini, ini_load_settings, ini_load_setting_list);
|
||||
_grfconfig_newgame = GRFLoadConfig(ini, "newgrf", false);
|
||||
_grfconfig_static = GRFLoadConfig(ini, "newgrf-static", true);
|
||||
NewsDisplayLoadConfig(ini, "news_display");
|
||||
AILoadConfig(ini, "ai_players");
|
||||
|
||||
PrepareOldDiffCustom();
|
||||
ini_load_settings(ini, _gameopt_settings, "gameopt", &_settings_newgame);
|
||||
HandleOldDiffCustom(false);
|
||||
|
||||
CheckDifficultyLevels();
|
||||
delete ini;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user