mirror of
https://github.com/libretro/RetroArch
synced 2025-03-28 19:20:35 +00:00
Add RARCH_CMD_DISK_EJECT_TOGGLE/RARCH_CMD_DISK_NEXT
This commit is contained in:
parent
cc277fcf76
commit
5c09e6be84
8
cheats.c
8
cheats.c
@ -381,6 +381,9 @@ static void cheat_manager_update(cheat_manager_t *handle)
|
||||
|
||||
void cheat_manager_toggle(cheat_manager_t *handle)
|
||||
{
|
||||
if (!handle)
|
||||
return;
|
||||
|
||||
handle->cheats[handle->ptr].state ^= true;
|
||||
cheat_manager_apply_cheats(handle);
|
||||
cheat_manager_update(handle);
|
||||
@ -388,12 +391,17 @@ void cheat_manager_toggle(cheat_manager_t *handle)
|
||||
|
||||
void cheat_manager_index_next(cheat_manager_t *handle)
|
||||
{
|
||||
if (!handle)
|
||||
return;
|
||||
handle->ptr = (handle->ptr + 1) % handle->size;
|
||||
cheat_manager_update(handle);
|
||||
}
|
||||
|
||||
void cheat_manager_index_prev(cheat_manager_t *handle)
|
||||
{
|
||||
if (!handle)
|
||||
return;
|
||||
|
||||
if (handle->ptr == 0)
|
||||
handle->ptr = handle->size - 1;
|
||||
else
|
||||
|
@ -156,6 +156,8 @@ enum basic_event
|
||||
RARCH_CMD_TEMPORARY_CONTENT_DEINIT,
|
||||
RARCH_CMD_SUBSYSTEM_FULLPATHS_DEINIT,
|
||||
RARCH_CMD_LOG_FILE_DEINIT,
|
||||
RARCH_CMD_DISK_EJECT_TOGGLE,
|
||||
RARCH_CMD_DISK_NEXT,
|
||||
};
|
||||
|
||||
enum action_state
|
||||
|
63
retroarch.c
63
retroarch.c
@ -2240,11 +2240,8 @@ static bool do_state_checks(
|
||||
|
||||
if (BIND_PRESSED(trigger_input, RARCH_SAVE_STATE_KEY))
|
||||
rarch_main_command(RARCH_CMD_SAVE_STATE);
|
||||
else if (!g_extern.bsv.movie) /* Immutable */
|
||||
{
|
||||
if (BIND_PRESSED(trigger_input, RARCH_LOAD_STATE_KEY))
|
||||
rarch_main_command(RARCH_CMD_LOAD_STATE);
|
||||
}
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_LOAD_STATE_KEY))
|
||||
rarch_main_command(RARCH_CMD_LOAD_STATE);
|
||||
|
||||
check_rewind_func(input);
|
||||
|
||||
@ -2255,27 +2252,17 @@ static bool do_state_checks(
|
||||
|
||||
check_shader_dir_func(trigger_input);
|
||||
|
||||
if (g_extern.cheat)
|
||||
{
|
||||
if (BIND_PRESSED(trigger_input, RARCH_CHEAT_INDEX_PLUS))
|
||||
cheat_manager_index_next(g_extern.cheat);
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_CHEAT_INDEX_MINUS))
|
||||
cheat_manager_index_prev(g_extern.cheat);
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_CHEAT_TOGGLE))
|
||||
cheat_manager_toggle(g_extern.cheat);
|
||||
}
|
||||
if (BIND_PRESSED(trigger_input, RARCH_CHEAT_INDEX_PLUS))
|
||||
cheat_manager_index_next(g_extern.cheat);
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_CHEAT_INDEX_MINUS))
|
||||
cheat_manager_index_prev(g_extern.cheat);
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_CHEAT_TOGGLE))
|
||||
cheat_manager_toggle(g_extern.cheat);
|
||||
|
||||
if (g_extern.system.disk_control.get_num_images)
|
||||
{
|
||||
const struct retro_disk_control_callback *control =
|
||||
(const struct retro_disk_control_callback*)
|
||||
&g_extern.system.disk_control;
|
||||
|
||||
if (BIND_PRESSED(trigger_input, RARCH_DISK_EJECT_TOGGLE))
|
||||
check_disk_eject(control);
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_DISK_NEXT))
|
||||
check_disk_next(control);
|
||||
}
|
||||
if (BIND_PRESSED(trigger_input, RARCH_DISK_EJECT_TOGGLE))
|
||||
rarch_main_command(RARCH_CMD_DISK_EJECT_TOGGLE);
|
||||
else if (BIND_PRESSED(trigger_input, RARCH_DISK_NEXT))
|
||||
rarch_main_command(RARCH_CMD_DISK_NEXT);
|
||||
|
||||
if (BIND_PRESSED(trigger_input, RARCH_RESET))
|
||||
rarch_main_command(RARCH_CMD_RESET);
|
||||
@ -2768,8 +2755,8 @@ void rarch_main_command(unsigned cmd)
|
||||
#endif
|
||||
break;
|
||||
case RARCH_CMD_LOAD_STATE:
|
||||
/* Disallow savestate load when we absolutely
|
||||
* cannot change game state. */
|
||||
/* Immutable - disallow savestate load when
|
||||
* we absolutely cannot change game state. */
|
||||
if (g_extern.bsv.movie)
|
||||
return;
|
||||
|
||||
@ -3170,6 +3157,28 @@ void rarch_main_command(unsigned cmd)
|
||||
fclose(g_extern.log_file);
|
||||
g_extern.log_file = NULL;
|
||||
break;
|
||||
case RARCH_CMD_DISK_EJECT_TOGGLE:
|
||||
if (g_extern.system.disk_control.get_num_images)
|
||||
{
|
||||
const struct retro_disk_control_callback *control =
|
||||
(const struct retro_disk_control_callback*)
|
||||
&g_extern.system.disk_control;
|
||||
|
||||
if (control)
|
||||
check_disk_eject(control);
|
||||
}
|
||||
break;
|
||||
case RARCH_CMD_DISK_NEXT:
|
||||
if (g_extern.system.disk_control.get_num_images)
|
||||
{
|
||||
const struct retro_disk_control_callback *control =
|
||||
(const struct retro_disk_control_callback*)
|
||||
&g_extern.system.disk_control;
|
||||
|
||||
if (!control)
|
||||
check_disk_next(control);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user