summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/genworld.cpp6
-rw-r--r--src/genworld_gui.cpp6
-rw-r--r--src/openttd.cpp8
3 files changed, 9 insertions, 11 deletions
diff --git a/src/genworld.cpp b/src/genworld.cpp
index ff30e4720..1d6880208 100644
--- a/src/genworld.cpp
+++ b/src/genworld.cpp
@@ -284,13 +284,13 @@ void GenerateWorld(GenerateWorldMode mode, uint size_x, uint size_y)
/* Set the date before loading sprites as some newgrfs check it */
SetDate(ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1));
- InitializeGame(_gw.size_x, _gw.size_y, false);
- PrepareGenerateWorldProgress();
-
/* Load the right landscape stuff */
GfxLoadSprites();
LoadStringWidthTable();
+ InitializeGame(_gw.size_x, _gw.size_y, false);
+ PrepareGenerateWorldProgress();
+
/* Re-init the windowing system */
ResetWindowSystem();
diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp
index b3c70f212..10d1b97df 100644
--- a/src/genworld_gui.cpp
+++ b/src/genworld_gui.cpp
@@ -248,8 +248,8 @@ void StartGeneratingLandscape(glwp_modes mode)
{
DeleteAllNonVitalWindows();
- /* Copy the settings needed for creating a new map. */
- _settings_game.game_creation = _settings_newgame.game_creation;
+ /* Copy all XXX_newgame to XXX when coming from outside the editor */
+ MakeNewgameSettingsLive();
ResetGRFConfig(true);
SndPlayFx(SND_15_BEEP);
@@ -442,6 +442,8 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
break;
case GLAND_GENERATE_BUTTON: // Generate
+ MakeNewgameSettingsLive();
+
if (mode == GLWP_HEIGHTMAP &&
(this->x * 2 < (1U << _settings_newgame.game_creation.map_x) ||
this->x / 2 > (1U << _settings_newgame.game_creation.map_x) ||
diff --git a/src/openttd.cpp b/src/openttd.cpp
index 96ee00c48..d2fc2c658 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -640,8 +640,8 @@ int ttd_main(int argc, char *argv[])
ResetGRFConfig(false);
- /* Copy the settings needed for creating a new map. */
- _settings_game.game_creation = _settings_newgame.game_creation;
+ /* Make sure _settings is filled with _settings_newgame if we switch to a game directly */
+ if (_switch_mode != SM_NONE) MakeNewgameSettingsLive();
/* initialize the ingame console */
IConsoleInit();
@@ -649,10 +649,6 @@ int ttd_main(int argc, char *argv[])
InitializeGUI();
IConsoleCmdExec("exec scripts/autoexec.scr 0");
- /* Initialise the sprite/string tables. */
- GfxLoadSprites();
- LoadStringWidthTable();
-
GenerateWorld(GW_EMPTY, 64, 64); // Make the viewport initialization happy
WaitTillGeneratedWorld();