Merge pull request #12718 from Jamiras/cheevos_none

(cheevos) add messages for unknown game and network error
This commit is contained in:
Autechre 2021-07-31 19:58:09 +02:00 committed by GitHub
commit 87f7a7f94d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 0 deletions

View File

@ -111,6 +111,7 @@ static rcheevos_locals_t rcheevos_locals =
false,/* hardcore_active */
false,/* loaded */
true, /* core_supports */
false,/* network_error */
false,/* leaderboards_enabled */
false,/* leaderboard_notifications */
false /* leaderboard_trackers */
@ -1271,6 +1272,11 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
if (!coro->settings->bools.cheevos_enable)
CORO_STOP();
/* reset the network error flag */
rcheevos_locals.network_error = false;
/* reset the identified game id */
rcheevos_locals.patchdata.game_id = 0;
/* iterate over the possible hashes for the file being loaded */
rc_hash_initialize_iterator(&coro->iterator, coro->path, (uint8_t*)coro->data, coro->len);
#ifdef CHEEVOS_TIME_HASH
@ -1300,6 +1306,9 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
CORO_STOP();
}
/* capture the identified game id in case we bail before fetching the patch data (not logged in) */
rcheevos_locals.patchdata.game_id = coro->gameid;
#ifdef CHEEVOS_JSON_OVERRIDE
{
size_t size = 0;
@ -1890,6 +1899,7 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
}
CHEEVOS_LOG(RCHEEVOS_TAG "Couldn't connect to server after 5 tries\n");
rcheevos_locals.network_error = true;
CORO_RET();

View File

@ -148,6 +148,7 @@ typedef struct rcheevos_locals_t
bool hardcore_active; /* hardcore functionality is active */
bool loaded; /* load task has completed */
bool core_supports; /* false if core explicitly disables achievements */
bool network_error; /* hash lookup or login failed with network error */
bool leaderboards_enabled; /* leaderboards are enabled */
bool leaderboard_notifications; /* leaderboard notifications are enabled */
bool leaderboard_trackers; /* leaderboard trackers are enabled */

View File

@ -662,6 +662,22 @@ void rcheevos_menu_populate(void* data)
MENU_ENUM_LABEL_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE,
FILE_TYPE_NONE, 0, 0);
}
else if (rcheevos_locals->network_error)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETWORK_ERROR),
msg_hash_to_str(MENU_ENUM_LABEL_NETWORK_ERROR),
MENU_ENUM_LABEL_NETWORK_ERROR,
FILE_TYPE_NONE, 0, 0);
}
else if (!rcheevos_locals->patchdata.game_id)
{
menu_entries_append_enum(info->list,
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_UNKNOWN_GAME),
msg_hash_to_str(MENU_ENUM_LABEL_UNKNOWN_GAME),
MENU_ENUM_LABEL_UNKNOWN_GAME,
FILE_TYPE_NONE, 0, 0);
}
else if (!rcheevos_locals->token[0])
{
menu_entries_append_enum(info->list,

View File

@ -7184,6 +7184,14 @@ MSG_HASH(
MENU_ENUM_LABEL_VALUE_NOT_LOGGED_IN,
"Not logged in"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_NETWORK_ERROR,
"Network Error"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_UNKNOWN_GAME,
"Unknown Game"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE,
"Cannot activate achievements using this core"

View File

@ -1330,8 +1330,11 @@ enum msg_hash_enums
MENU_LABEL(SET_CORE_ASSOCIATION),
MENU_LABEL(RESET_CORE_ASSOCIATION),
MENU_LABEL(MENU_THROTTLE_FRAMERATE),
MENU_LABEL(NO_ACHIEVEMENTS_TO_DISPLAY),
MENU_LABEL(NOT_LOGGED_IN),
MENU_LABEL(NETWORK_ERROR),
MENU_LABEL(UNKNOWN_GAME),
MENU_LABEL(CANNOT_ACTIVATE_ACHIEVEMENTS_WITH_THIS_CORE),
MENU_LABEL(NO_ENTRIES_TO_DISPLAY),
MENU_LABEL(DOWNLOAD_PL_ENTRY_THUMBNAILS),