(RMenu) Return to Menu fixed

This commit is contained in:
twinaphex 2013-01-12 04:44:11 +01:00
parent a1dfe4f741
commit ef4f1bba0d
2 changed files with 19 additions and 8 deletions

View File

@ -2124,6 +2124,7 @@ int ingame_menu(void *data, void *state)
if(input & (1ULL << RMENU_DEVICE_NAV_A))
{
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
g_extern.lifecycle_mode_state |= (1ULL << MODE_EMULATION);
return -1;
}
@ -2135,6 +2136,7 @@ int ingame_menu(void *data, void *state)
{
rarch_load_state();
g_extern.lifecycle_mode_state |= (1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return -1;
}
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
@ -2149,6 +2151,7 @@ int ingame_menu(void *data, void *state)
{
rarch_save_state();
g_extern.lifecycle_mode_state |= (1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return -1;
}
@ -2209,6 +2212,7 @@ int ingame_menu(void *data, void *state)
if((input & (1ULL << RMENU_DEVICE_NAV_B)) || (input & (1ULL << RMENU_DEVICE_NAV_R2)) || (input & (1ULL << RMENU_DEVICE_NAV_L2)))
{
g_extern.lifecycle_state |= (1ULL << RARCH_FRAMEADVANCE);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
rmenu_settings_set(S_FRAME_ADVANCE);
menu_idx = MENU_ITEM_FRAME_ADVANCE;
return -1;
@ -2229,6 +2233,7 @@ int ingame_menu(void *data, void *state)
if(input & (1ULL << RMENU_DEVICE_NAV_B))
{
g_extern.lifecycle_mode_state |= (1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return -1;
}
@ -2239,6 +2244,7 @@ int ingame_menu(void *data, void *state)
{
rarch_game_reset();
g_extern.lifecycle_mode_state |= (1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return -1;
}
snprintf(strw_buffer, sizeof(strw_buffer), "Press [%s] to reset the game.", rarch_input_find_platform_key_label(1ULL << RETRO_DEVICE_ID_JOYPAD_B));
@ -2247,9 +2253,9 @@ int ingame_menu(void *data, void *state)
if(input & (1ULL << RMENU_DEVICE_NAV_B))
{
menu_idx = 0;
/* TODO */
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU);
return -1;
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return 0;
}
snprintf(strw_buffer, sizeof(strw_buffer), "Press [%s] to return to the ROM Browser.", rarch_input_find_platform_key_label(1ULL << RETRO_DEVICE_ID_JOYPAD_B));
break;
@ -2269,6 +2275,7 @@ int ingame_menu(void *data, void *state)
RARCH_LOG("Boot Multiman: %s.\n", default_paths.multiman_self_file);
strlcpy(g_extern.fullpath, default_paths.multiman_self_file, sizeof(g_extern.fullpath));
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
g_extern.lifecycle_mode_state |= (1ULL << MODE_EXIT);
g_extern.lifecycle_mode_state |= (1ULL << MODE_EXITSPAWN);
return -1;
@ -2281,6 +2288,7 @@ int ingame_menu(void *data, void *state)
{
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_EXIT);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return -1;
}
@ -2307,6 +2315,7 @@ int ingame_menu(void *data, void *state)
if((input & (1ULL << RMENU_DEVICE_NAV_L3)) && (input & (1ULL << RMENU_DEVICE_NAV_R3)))
{
g_extern.lifecycle_mode_state |= (1ULL << MODE_EMULATION);
g_extern.lifecycle_mode_state |= (1ULL << MODE_MENU_INGAME_EXIT);
return -1;
}
@ -2585,6 +2594,13 @@ bool rmenu_iterate(void)
if (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU_DRAW))
device_ptr->ctx_driver->set_blend(false);
if (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU_INGAME_EXIT) &&
g_extern.lifecycle_mode_state & (1ULL << MODE_MENU_INGAME))
{
menu_stack_pop();
g_extern.lifecycle_mode_state &= ~((1ULL << MODE_MENU_INGAME) | (1ULL << MODE_MENU_INGAME_EXIT));
}
if (input_entry_ret != 0 || input_process_ret != 0)
goto deinit;
@ -2596,12 +2612,6 @@ deinit:
if (!(g_extern.lifecycle_state & (1ULL << RARCH_FRAMEADVANCE)))
g_extern.delay_timer[0] = g_extern.frame_count + 30;
if (g_extern.lifecycle_mode_state & (1ULL << MODE_MENU_INGAME))
{
menu_stack_pop();
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_MENU_INGAME);
}
g_extern.lifecycle_mode_state &= ~(1ULL << MODE_MENU_DRAW);
device_ptr->ctx_driver->rmenu_free();

View File

@ -110,6 +110,7 @@ enum menu_enums
MODE_MENU_HD,
MODE_MENU_PREINIT,
MODE_MENU_INGAME,
MODE_MENU_INGAME_EXIT,
MODE_MENU_DRAW,
MODE_INFO_DRAW,
MODE_FPS_DRAW,