Start refactoring action_iterate_help

This commit is contained in:
twinaphex 2015-07-08 05:45:43 +02:00
parent a59fd029b1
commit bfb996dbcd
4 changed files with 61 additions and 39 deletions

View File

@ -154,7 +154,7 @@ static int load_or_open_zip_iterate(char *s, size_t len, unsigned action)
static int action_iterate_help(char *s, size_t len, const char *label)
{
unsigned i;
static const unsigned binds[] = {
const unsigned binds[] = {
RETRO_DEVICE_ID_JOYPAD_UP,
RETRO_DEVICE_ID_JOYPAD_DOWN,
RETRO_DEVICE_ID_JOYPAD_A,
@ -165,11 +165,17 @@ static int action_iterate_help(char *s, size_t len, const char *label)
RETRO_DEVICE_ID_JOYPAD_X,
RETRO_DEVICE_ID_JOYPAD_Y,
};
char desc[ARRAY_SIZE(binds)][64] = {{0}};
settings_t *settings = config_get_ptr();
menu_handle_t *menu = menu_driver_get_ptr();
menu_driver_render();
switch (menu->help_screen_type)
{
case MENU_HELP_DEFAULT:
{
char desc[ARRAY_SIZE(binds)][64] = {{0}};
settings_t *settings = config_get_ptr();
for (i = 0; i < ARRAY_SIZE(binds); i++)
{
const struct retro_keybind *keybind = (const struct retro_keybind*)
@ -205,6 +211,14 @@ static int action_iterate_help(char *s, size_t len, const char *label)
"Press Accept/OK to continue.",
desc[0], desc[1], desc[2], desc[3], desc[4], desc[5], desc[6], desc[7]);
}
break;
case MENU_HELP_EXTRACTING:
strlcpy(s, "Extracting, please wait...\n", len);
break;
default:
break;
}
return 0;
}
@ -561,7 +575,7 @@ static int action_iterate_main(const char *label, unsigned action)
do_render = true;
/* Have to defer it so we let settings refresh. */
if (menu->push_start_screen)
if (menu->push_help_screen)
{
menu_displaylist_info_t info = {0};

View File

@ -227,7 +227,7 @@ void *menu_init(const void *data)
goto error;
#endif
menu->push_start_screen = settings->menu_show_start_screen;
menu->push_help_screen = settings->menu_show_start_screen;
settings->menu_show_start_screen = false;
menu_shader_manager_init(menu);

View File

@ -2170,7 +2170,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type)
break;
case DISPLAYLIST_HELP:
menu_list_push(info->list, info->path, info->label, info->type, info->directory_ptr, 0);
menu->push_start_screen = false;
menu->push_help_screen = false;
menu_display_fb_set_dirty();
break;
case DISPLAYLIST_MAIN_MENU:

View File

@ -50,13 +50,21 @@ typedef enum
MENU_ENVIRON_LAST
} menu_environ_cb_t;
typedef enum
{
MENU_HELP_DEFAULT = 0,
MENU_HELP_EXTRACTING,
MENU_HELP_LAST
} menu_help_type_t;
typedef struct
{
void *userdata;
float scroll_y;
bool push_start_screen;
bool push_help_screen;
menu_help_type_t help_screen_type;
bool defer_core;
char deferred_path[PATH_MAX_LENGTH];