show unsupported core message when viewing achievement list for unsupported core

This commit is contained in:
Jamiras 2020-11-16 21:29:29 -07:00
parent eb41efa9dd
commit 8ed0fcb5ce
5 changed files with 32 additions and 4 deletions

View File

@ -748,9 +748,13 @@ static int rcheevos_parse(
else
{
CHEEVOS_ERR(RCHEEVOS_TAG "No memory exposed by core.\n");
rcheevos_locals.core_supports = false;
if (settings->bools.cheevos_verbose_enable)
runloop_msg_queue_push("Cannot activate achievements using this core.", 0, 4 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
{
runloop_msg_queue_push(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
0, 4 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
}
goto error;
}
@ -1207,7 +1211,15 @@ void rcheevos_populate_menu(void* data)
if (i == 0)
{
if (!settings->arrays.cheevos_token[0])
if (!rcheevos_locals.core_supports)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
msg_hash_to_str(MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE,
FILE_TYPE_NONE, 0, 0);
}
else if (!settings->arrays.cheevos_token[0])
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_LOGGED_IN),
@ -1743,11 +1755,15 @@ void rcheevos_test(void)
if (!rcheevos_memory_init(&rcheevos_locals.memory, rcheevos_locals.patchdata.console_id))
{
CHEEVOS_ERR(RCHEEVOS_TAG "No memory exposed by core\n");
rcheevos_locals.core_supports = false;
if (settings && settings->bools.cheevos_verbose_enable)
runloop_msg_queue_push("Cannot activate achievements using this core.", 0, 4 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
{
runloop_msg_queue_push(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
0, 4 * 60, false, NULL, MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_WARNING);
}
rcheevos_locals.loaded = false;
rcheevos_unload();
rcheevos_pause_hardcore();
return;
}

View File

@ -606,6 +606,8 @@ void rcheevos_free_patchdata(rcheevos_rapatchdata_t* patchdata)
patchdata->core = NULL;
patchdata->unofficial = NULL;
patchdata->lboards = NULL;
patchdata->title = NULL;
patchdata->richpresence_script = NULL;
patchdata->core_count = 0;
patchdata->unofficial_count = 0;
patchdata->lboard_count = 0;

View File

@ -6832,6 +6832,10 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_NOT_LOGGED_IN,
"Not logged in"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE,
"Cannot activate achievements using this core"
)
/* Quick Menu > Information */

View File

@ -1259,6 +1259,7 @@ enum msg_hash_enums
MENU_LABEL(MENU_THROTTLE_FRAMERATE),
MENU_LABEL(NO_ACHIEVEMENTS_TO_DISPLAY),
MENU_LABEL(NOT_LOGGED_IN),
MENU_LABEL(CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
MENU_LABEL(NO_ENTRIES_TO_DISPLAY),
MENU_LABEL(DOWNLOAD_PL_ENTRY_THUMBNAILS),

View File

@ -12303,6 +12303,11 @@ static bool command_event_init_core(
config_load_override(&p_rarch->runloop_system);
#endif
#ifdef HAVE_CHEEVOS
/* assume the core supports achievements unless it tells us otherwise */
rcheevos_set_support_cheevos(true);
#endif
/* Load auto-shaders on the next occasion */
#if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL)
p_rarch->shader_presets_need_reload = true;