diff options
-rw-r--r-- | src/genworld.h | 1 | ||||
-rw-r--r-- | src/genworld_gui.cpp | 18 | ||||
-rw-r--r-- | src/intro_gui.cpp | 2 |
3 files changed, 12 insertions, 9 deletions
diff --git a/src/genworld.h b/src/genworld.h index 10fb569a1..922b51505 100644 --- a/src/genworld.h +++ b/src/genworld.h @@ -90,5 +90,6 @@ void PrepareGenerateWorldProgress(void); 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 index 4250a37a4..5faa3e94a 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -144,24 +144,21 @@ static const Widget _heightmap_load_widgets[] = { { 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 @@ void ShowHeightmapLoad(void) _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 index 1ac459eef..8cb217486 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -67,7 +67,7 @@ static void SelectGameWndProc(Window *w, WindowEvent *e) 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); |