From 106b78927e799579487f5019cdcfd010e8cbd791 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Sun, 13 Mar 2005 11:47:04 +0000 Subject: (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. --- settings_gui.c | 2 +- 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); diff --git a/ttd.c b/ttd.c index 18f4de4a2..159306c18 100644 --- a/ttd.c +++ b/ttd.c @@ -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(); -- cgit v1.2.3-54-g00ecf