diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 46516eb3db..a2839f9afb 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -61,6 +61,11 @@ static int deferred_push_accounts_list(menu_displaylist_info_t *info) return menu_displaylist_push_list(info, DISPLAYLIST_ACCOUNTS_LIST); } +static int deferred_push_accounts_cheevos_list(menu_displaylist_info_t *info) +{ + return menu_displaylist_push_list(info, DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST); +} + static int deferred_push_help(menu_displaylist_info_t *info) { return menu_displaylist_push_list(info, DISPLAYLIST_HELP_SCREEN_LIST); @@ -551,6 +556,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label(menu_file_list_cbs_t * case MENU_LABEL_DEFERRED_ACCOUNTS_LIST: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_accounts_list); break; + case MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_accounts_cheevos_list); + break; case MENU_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_archive_action_detect_core); break; diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index b64ab2ac33..52357684b0 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -289,6 +289,12 @@ int generic_action_ok_displaylist_push(const char *path, info_path = path; info_label = menu_hash_to_str(MENU_LABEL_DEFERRED_ACCOUNTS_LIST); break; + case ACTION_OK_DL_ACCOUNTS_CHEEVOS_LIST: + info.directory_ptr = idx; + info.type = type; + info_path = path; + info_label = menu_hash_to_str(MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST); + break; case ACTION_OK_DL_CONTENT_SETTINGS: dl_type = DISPLAYLIST_CONTENT_SETTINGS; info.list = menu_list->selection_buf; @@ -1554,6 +1560,13 @@ static int action_ok_push_accounts_list(const char *path, ACTION_OK_DL_ACCOUNTS_LIST); } +static int action_ok_push_accounts_cheevos_list(const char *path, + const char *label, unsigned type, size_t idx, size_t entry_idx) +{ + return generic_action_ok_displaylist_push(path, label, 0, 0, entry_idx, + ACTION_OK_DL_ACCOUNTS_CHEEVOS_LIST); +} + static int action_ok_open_archive(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { @@ -1854,6 +1867,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_LABEL_ACCOUNTS_LIST: BIND_ACTION_OK(cbs, action_ok_push_accounts_list); break; + case MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS: + BIND_ACTION_OK(cbs, action_ok_push_accounts_cheevos_list); + break; case MENU_LABEL_SHADER_OPTIONS: case MENU_VALUE_INPUT_SETTINGS: case MENU_LABEL_CORE_OPTIONS: diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c index cb79c80110..8525b92245 100644 --- a/menu/intl/menu_hash_us.c +++ b/menu/intl/menu_hash_us.c @@ -26,8 +26,14 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) { switch (hash) { + case MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME: + return "accounts_cheevos_username"; + case MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD: + return "accounts_cheevos_password"; case MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS: return "retro_achievements"; + case MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST: + return "deferred_accounts_cheevos_list"; case MENU_LABEL_DEFERRED_ACCOUNTS_LIST: return "deferred_accounts_list"; case MENU_LABEL_ACCOUNTS_LIST: @@ -656,6 +662,10 @@ const char *menu_hash_to_str_us(uint32_t hash) switch (hash) { + case MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME: + return "Username"; + case MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD: + return "Password"; case MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS: return "Retro Achievements"; case MENU_LABEL_VALUE_ACCOUNTS_LIST: diff --git a/menu/menu_cbs.c b/menu/menu_cbs.c index 5172c7be09..b72fdd5489 100644 --- a/menu/menu_cbs.c +++ b/menu/menu_cbs.c @@ -21,7 +21,7 @@ #include "menu_hash.h" #include "menu_cbs.h" -#if 0 +#if 1 #define DEBUG_LOG #endif diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h index 698d87ef5e..6a09258750 100644 --- a/menu/menu_cbs.h +++ b/menu/menu_cbs.h @@ -42,6 +42,7 @@ enum ACTION_OK_DL_PUSH_DEFAULT, ACTION_OK_DL_DOWNLOADS_DIR, ACTION_OK_DL_ACCOUNTS_LIST, + ACTION_OK_DL_ACCOUNTS_CHEEVOS_LIST, ACTION_OK_DL_CONTENT_LIST, ACTION_OK_DL_REMAP_FILE, ACTION_OK_DL_RECORD_CONFIGFILE, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index a2cae1d32f..b3aafbee4f 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2422,6 +2422,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) case DISPLAYLIST_ADD_CONTENT_LIST: case DISPLAYLIST_LOAD_CONTENT_LIST: case DISPLAYLIST_ACCOUNTS_LIST: + case DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST: case DISPLAYLIST_OPTIONS: case DISPLAYLIST_OPTIONS_CHEATS: case DISPLAYLIST_OPTIONS_REMAPPINGS: @@ -2495,6 +2496,24 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) menu_list_push(info->list, menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), "", 0, 0, 0); +#endif + need_refresh = true; + need_push = true; + break; + case DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST: +#ifdef HAVE_CHEEVOS + menu_list_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME), + menu_hash_to_str(MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME), + 0, 0, 0); + menu_list_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD), + menu_hash_to_str(MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD), + 0, 0, 0); +#else + menu_list_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), + "", 0, 0, 0); #endif need_refresh = true; need_push = true; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 2a07f23b86..6d058553ea 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -79,6 +79,7 @@ enum DISPLAYLIST_SYSTEM_INFO, DISPLAYLIST_DEBUG_INFO, DISPLAYLIST_ACCOUNTS_LIST, + DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST, DISPLAYLIST_LOAD_CONTENT_LIST, DISPLAYLIST_INFORMATION_LIST, DISPLAYLIST_CONTENT_SETTINGS, diff --git a/menu/menu_hash.h b/menu/menu_hash.h index 1c0f4a3878..5eafc2893c 100644 --- a/menu/menu_hash.h +++ b/menu/menu_hash.h @@ -22,9 +22,16 @@ extern "C" { #endif +#define MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD 0x45cf62e3U +#define MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD 0xe5a73d05U + +#define MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME 0x2bf153f0U +#define MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME 0xcbc92e12U + #define MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS 0xe6b7c16cU #define MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS 0x7d247a6dU +#define MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST 0x1322324cU #define MENU_LABEL_DEFERRED_ACCOUNTS_LIST 0x3d2b8860U #define MENU_LABEL_ACCOUNTS_LIST 0x774c15a0U #define MENU_LABEL_VALUE_ACCOUNTS_LIST 0x86e551a1U