summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarkvater <Darkvater@openttd.org>2005-03-13 11:47:04 +0000
committerDarkvater <Darkvater@openttd.org>2005-03-13 11:47:04 +0000
commit106b78927e799579487f5019cdcfd010e8cbd791 (patch)
treeb39e85abeca1a5d7eb37f4ae8402b96da85f1968
parentef1325cd3688fd64b9e0efd18db22aa5445ef9a6 (diff)
downloadopenttd-106b78927e799579487f5019cdcfd010e8cbd791.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.c2
-rw-r--r--ttd.c12
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();