Correct the go-back-to-parent-menu behavior for the amiga menu

This commit is contained in:
simon.kagstrom 2009-05-24 06:28:11 +00:00
parent 0c9bce9773
commit 28609394d9

View File

@ -490,13 +490,13 @@ static void set_emulation_accuracy(int which)
static int get_model(void) static int get_model(void)
{ {
if (currprefs.cpu_level == 1) /* 68010 - only on the A600 */ if (changed_prefs.cpu_level == 1) /* 68010 - only on the A600 */
return 2; return 2;
if (currprefs.cpu_level == 2) /* 68020 - only on the A1200 */ if (changed_prefs.cpu_level == 2) /* 68020 - only on the A1200 */
return 3; return 3;
if (currprefs.cpu_level == 0) /* 68000 - A1000/A500 */ if (changed_prefs.cpu_level == 0) /* 68000 - A1000/A500 */
{ {
if (currprefs.bogomem_size == 0) /* A1000 */ if (changed_prefs.bogomem_size == 0) /* A1000 */
return 0; return 0;
/* A500 */ /* A500 */
@ -509,27 +509,31 @@ static int get_model(void)
static void amiga_model_options(void) static void amiga_model_options(void)
{ {
int submenus[2];
int cur_model = get_model();
int opt; int opt;
int cur_model;
submenus[0] = cur_model; int submenus[2];
submenus[1] = get_emulation_accuracy();
do do
{ {
cur_model = get_model();
submenus[0] = cur_model;
submenus[1] = get_emulation_accuracy();
opt = menu_select_title("Amiga model menu", opt = menu_select_title("Amiga model menu",
amiga_model_messages, submenus); amiga_model_messages, submenus);
if (opt < 0) if (opt < 0)
return; return;
switch(submenus[0]) if (submenus[0] != cur_model)
{ {
case 0: A1000_config(); break; switch(submenus[0])
case 1: A500_config(); break; {
case 2: A600_config(); break; case 0: A1000_config(); break;
case 3: A1200_config(); break; case 1: A500_config(); break;
default: /* custom */ case 2: A600_config(); break;
break; case 3: A1200_config(); break;
default: /* custom */
break;
}
} }
switch(opt) switch(opt)
@ -693,7 +697,7 @@ void gui_display(int shortcut)
opt = menu_select_title("Main menu", main_menu_messages, submenus); opt = menu_select_title("Main menu", main_menu_messages, submenus);
notice_screen_contents_lost (); notice_screen_contents_lost ();
if (opt < 0) if (opt < 0)
return; break;
switch(opt) switch(opt)
{ {