diff options
author | Darkvater <darkvater@openttd.org> | 2005-03-13 11:47:04 +0000 |
---|---|---|
committer | Darkvater <darkvater@openttd.org> | 2005-03-13 11:47:04 +0000 |
commit | de47d0935f56817f5a93a1d6d600ee2c6332a569 (patch) | |
tree | b39e85abeca1a5d7eb37f4ae8402b96da85f1968 | |
parent | 010d1a9be338ec98a1e2ff50ec5b39d309a477ef (diff) | |
download | openttd-de47d0935f56817f5a93a1d6d600ee2c6332a569.tar.xz |
(svn r2005) - Fix: fix previous commit. Using 'New Game (scenario)' will use YOUR difficulty settings but ingame options (eg townnames, currency). Also settings are correctly saved when closing the difficulty window now.
-rw-r--r-- | settings_gui.c | 2 | ||||
-rw-r--r-- | ttd.c | 12 |
2 files changed, 5 insertions, 9 deletions
diff --git a/settings_gui.c b/settings_gui.c index a0dc14d38..c64a56d9f 100644 --- a/settings_gui.c +++ b/settings_gui.c @@ -483,7 +483,7 @@ static void GameDifficultyWndProc(Window *w, WindowEvent *e) for (btn = 0; btn != GAME_DIFFICULTY_NUM; btn++) { val = ((int*)&_opt_mod_temp.diff)[btn]; // if setting has changed, change it - if (val != ((int*)&_opt_mod_temp.diff)[btn]) + if (val != ((int*)&_opt_ptr->diff)[btn]) DoCommandP(0, btn, val, NULL, CMD_CHANGE_DIFFICULTY_LEVEL); } DoCommandP(0, -1, _opt_mod_temp.diff_level, NULL, CMD_CHANGE_DIFFICULTY_LEVEL); @@ -789,8 +789,7 @@ void StartupDisasters(void); /** * Start Scenario starts a new game based on a scenario. * Eg 'New Game' --> select a preset scenario - * This starts a scenario based on your current difficulty settings just - * fix the landscape as that can be different from what is selected in the intro + * This starts a scenario based on your current difficulty settings */ static void StartScenario(void) { @@ -818,12 +817,9 @@ static void StartScenario(void) ShowErrorMessage(_error_message, STR_4009_GAME_LOAD_FAILED, 0, 0); } - { - byte landscape = _opt.landscape; // backup loaded landscape; - _opt_ptr = &_opt; - memcpy(_opt_ptr, &_opt_newgame, sizeof(GameOptions)); - _opt_ptr->landscape = landscape; - } + _opt_ptr = &_opt; + memcpy(&_opt_ptr->diff, &_opt_newgame.diff, sizeof(GameDifficulty)); + _opt.diff_level = _opt_newgame.diff_level; // Inititalize data StartupPlayers(); |