# HG changeset patch # User Darkvater # Date 1170370444 0 # Node ID 71bc001a6dde5cdd02f8b63719a203a1e4e818e8 # Parent c620d115566b65ebced4a0d994908a05f2f9e26c (svn r8522) -Regression (r8512): The flat/random window moved the to scenario editor did not use the right settings for generating land diff --git a/src/genworld.h b/src/genworld.h --- a/src/genworld.h +++ b/src/genworld.h @@ -90,5 +90,6 @@ void ShowGenerateWorldProgress(void); void StartNewGameWithoutGUI(uint seed); void ShowCreateScenario(void); +void StartScenarioEditor(void); #endif /* GENWORLD_H */ diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -144,24 +144,21 @@ { WIDGETS_END}, }; -static void StartGeneratingLandscape(glwp_modes mode) +void StartGeneratingLandscape(glwp_modes mode) { - DeleteWindowByClass(WC_GENERATE_LANDSCAPE); - DeleteWindowByClass(WC_INDUSTRY_VIEW); - DeleteWindowByClass(WC_TOWN_VIEW); - DeleteWindowByClass(WC_LAND_INFO); + DeleteAllNonVitalWindows(); - /* Copy all XXX_newgame to XXX */ + /* Copy all XXX_newgame to XXX when coming from outside the editor */ UpdatePatches(); + _opt = _opt_newgame; _opt_ptr = &_opt; - *_opt_ptr = _opt_newgame; ResetGRFConfig(true); SndPlayFx(SND_15_BEEP); switch (mode) { case GLWP_GENERATE: _switch_mode = (_game_mode == GM_EDITOR) ? SM_GENRANDLAND : SM_NEWGAME; break; case GLWP_HEIGHTMAP: _switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_HEIGHTMAP : SM_START_HEIGHTMAP; break; - case GLWP_SCENARIO: break; + case GLWP_SCENARIO: _switch_mode = SM_EDITOR; break; default: NOT_REACHED(); } } @@ -513,6 +510,11 @@ _ShowGenerateLandscape(GLWP_HEIGHTMAP); } +void StartScenarioEditor(void) +{ + StartGeneratingLandscape(GLWP_SCENARIO); +} + void StartNewGameWithoutGUI(uint seed) { /* GenerateWorld takes care of the possible GENERATE_NEW_SEED value in 'seed' */ diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -67,7 +67,7 @@ case 3: ShowSaveLoadDialog(SLD_LOAD_GAME); break; case 4: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break; case 5: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break; - case 6: _switch_mode = SM_EDITOR; break; + case 6: StartScenarioEditor(); break; case 7: if (!_network_available) { ShowErrorMessage(INVALID_STRING_ID, STR_NETWORK_ERR_NOTAVAILABLE, 0, 0);