From 4085cf40e2496685a1bbf75fc22bb408316a7666 Mon Sep 17 00:00:00 2001 From: nehalmistry <> Date: Wed, 27 Nov 2002 16:10:31 +0000 Subject: [PATCH] improved changing back and forth from: editor menus <-> main menus --- src/include/menus.h | 1 + src/stratagus/stratagus.cpp | 16 +++++++++------- src/ui/menus.cpp | 9 ++++----- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/include/menus.h b/src/include/menus.h index 65228936f..372de8da4 100644 --- a/src/include/menus.h +++ b/src/include/menus.h @@ -250,6 +250,7 @@ typedef struct _menus_ { -- Variables ----------------------------------------------------------------------------*/ +extern int GuiGameStarted; /// Game Started? extern Menu *CurrentMenu; /// Currently processed menu extern char ScenSelectFullPath[1024]; /// Full path to currently selected map extern MapInfo *ScenSelectPudInfo; /// MapInfo of currently selected map diff --git a/src/stratagus/stratagus.cpp b/src/stratagus/stratagus.cpp index 430204c6c..69104edd2 100644 --- a/src/stratagus/stratagus.cpp +++ b/src/stratagus/stratagus.cpp @@ -1022,14 +1022,16 @@ global void MenuLoop(char* filename, WorldMap* map) PlayMusic(MenuMusic); } EnableRedraw=RedrawMenu; - if( EditorRunning ) { - QuitToMenu = 0; - ProcessMenu("menu-editor-select", 1); - if (QuitToMenu) - return; - } else { - ProcessMenu("menu-program-start", 1); + + GuiGameStarted = 0; + while (GuiGameStarted == 0) { + if( EditorRunning ) { + ProcessMenu("menu-editor-select", 1); + } else { + ProcessMenu("menu-program-start", 1); + } } + EnableRedraw=RedrawEverything; DebugLevel0Fn("Menu start: NetPlayers %d\n" _C_ NetPlayers); filename = CurrentMapPath; diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp index 330219a41..1317f24b3 100644 --- a/src/ui/menus.cpp +++ b/src/ui/menus.cpp @@ -325,7 +325,7 @@ global _MenuFuncHash MenuFuncHash; extern char NameLine[]; local int GameLoaded; -local int GuiGameStarted; +global int GuiGameStarted = 0; local int EditorCancelled; /** @@ -4657,7 +4657,7 @@ local void StartEditor(void) } EditorRunning = 1; - MenuLoop(NULL, &TheMap); + EndMenu(); } local void CancelEditorSelect(void) @@ -4722,6 +4722,7 @@ local void EditorNewMap(void) *CurrentMapPath = '\0'; + GuiGameStarted = 1; EndMenu(); } @@ -4845,9 +4846,7 @@ local void EditorMainLoadMap(void) strcpy(CurrentMapPath, ScenSelectFileName); } - // FIXME: Use EditorRunning and main-loop. - EditorRunning=1; - EditorMainLoop(); + GuiGameStarted = 1; EndMenu(); }