Merge pull request #10904 from Jamiras/cheevos_unlock_lbl

(cheevos) restore display of unlocked achievements across hardcore modes
This commit is contained in:
Autechre 2020-06-23 19:15:58 +02:00 committed by GitHub
commit d927b6ec83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -145,8 +145,8 @@ typedef struct rcheevos_async_io_request
int attempt_count;
char type;
char hardcore;
char* success_message;
char* failure_message;
const char* success_message;
const char* failure_message;
char user_agent[256];
} rcheevos_async_io_request;
@ -1150,16 +1150,23 @@ void rcheevos_get_achievement_state(unsigned index, char *buffer, size_t buffer_
{
enum_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNSUPPORTED_ENTRY;
}
else if (!(cheevo->active & RCHEEVOS_ACTIVE_HARDCORE))
{
enum_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY_HARDCORE;
}
else if (!(cheevo->active & RCHEEVOS_ACTIVE_SOFTCORE))
{
/* if in hardcore mode, track progress towards hardcore unlock */
const settings_t* settings = config_get_ptr();
const bool hardcore = settings->bools.cheevos_hardcore_mode_enable && !rcheevos_hardcore_paused;
check_measured = hardcore;
enum_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY;
}
else
{
settings_t* settings = config_get_ptr();
bool hardcore = settings->bools.cheevos_hardcore_mode_enable && !rcheevos_hardcore_paused;
if (hardcore && !(cheevo->active & RCHEEVOS_ACTIVE_HARDCORE))
enum_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY_HARDCORE;
else if (!hardcore && !(cheevo->active & RCHEEVOS_ACTIVE_SOFTCORE))
enum_idx = MENU_ENUM_LABEL_VALUE_CHEEVOS_UNLOCKED_ENTRY;
else /* Use either "Locked" for core or "Unofficial" for unofficial as set above */
check_measured = true;
/* Use either "Locked" for core or "Unofficial" for unofficial as set above and track progress */
check_measured = true;
}
strlcpy(buffer, msg_hash_to_str(enum_idx), buffer_size);
@ -1548,7 +1555,7 @@ static int rcheevos_iterate(rcheevos_coro_t* coro)
CORO_STOP();
/* iterate over the possible hashes for the file being loaded */
rc_hash_initialize_iterator(&coro->iterator, coro->path, coro->data, coro->len);
rc_hash_initialize_iterator(&coro->iterator, coro->path, (uint8_t*)coro->data, coro->len);
#ifdef CHEEVOS_TIME_HASH
start = cpu_features_get_time_usec();
#endif