--- hatari/src/gui-sdl/dlgMain.c 2019/04/01 07:13:51 1.1.1.6 +++ hatari/src/gui-sdl/dlgMain.c 2019/04/01 07:15:41 1.1.1.8 @@ -6,7 +6,7 @@ The main dialog. */ -const char DlgMain_rcsid[] = "Hatari $Id: dlgMain.c,v 1.1.1.6 2019/04/01 07:13:51 root Exp $"; +const char DlgMain_fileid[] = "Hatari dlgMain.c : " __DATE__ " " __TIME__; #include "main.h" #include "configuration.h" @@ -64,14 +64,17 @@ static SGOBJ maindlg[] = /* This functions sets up the actual font and then displays the main dialog. */ -int Dialog_MainDlg(BOOL *bReset) +int Dialog_MainDlg(bool *bReset, bool *bLoadedSnapshot) { int retbut; - BOOL bOldMouseVisibility; + bool bOldMouseVisibility; int nOldMouseX, nOldMouseY; + *bReset = false; + *bLoadedSnapshot = false; + if (SDLGui_SetScreen(sdlscrn)) - return FALSE; + return false; SDL_GetMouseState(&nOldMouseX, &nOldMouseY); bOldMouseVisibility = SDL_ShowCursor(SDL_QUERY); @@ -106,7 +109,12 @@ int Dialog_MainDlg(BOOL *bReset) Dialog_SystemDlg(); break; case MAINDLG_MEMORY: - Dialog_MemDlg(); + if (Dialog_MemDlg()) + { + /* Memory snapshot has been loaded - leave GUI immediately */ + *bLoadedSnapshot = true; + return true; + } break; case MAINDLG_JOY: Dialog_JoyDlg(); @@ -118,13 +126,13 @@ int Dialog_MainDlg(BOOL *bReset) Dialog_DeviceDlg(); break; case MAINDLG_LOADCFG: - Dialog_LoadParams(); + Configuration_Load(NULL); break; case MAINDLG_SAVECFG: - Dialog_SaveParams(); + Configuration_Save(); break; case MAINDLG_QUIT: - bQuitProgram = TRUE; + bQuitProgram = true; break; } } @@ -133,9 +141,7 @@ int Dialog_MainDlg(BOOL *bReset) if (maindlg[MAINDLG_RESET].state & SG_SELECTED) - *bReset = TRUE; - else - *bReset = FALSE; + *bReset = true; SDL_ShowCursor(bOldMouseVisibility); Main_WarpMouse(nOldMouseX, nOldMouseY);