3rdparty: Update rcheevos to 12.2.1

This commit is contained in:
JordanTheToaster
2026-01-17 15:39:33 +00:00
committed by Ty
parent edb2b37a92
commit 87366cda9d
4 changed files with 12 additions and 4 deletions

View File

@@ -1,3 +1,7 @@
# v12.2.1
* fix parsing of leaderboards with comparisons in legacy-formatted values
* fix validation warning on long AddSource chains
# v12.2.0
* add rc_client_create_subset_list
* add rc_client_begin_fetch_game_titles

View File

@@ -9,7 +9,7 @@ RC_BEGIN_C_DECLS
#define RCHEEVOS_VERSION_MAJOR 12
#define RCHEEVOS_VERSION_MINOR 2
#define RCHEEVOS_VERSION_PATCH 0
#define RCHEEVOS_VERSION_PATCH 1
#define RCHEEVOS_MAKE_VERSION(major, minor, patch) (major * 1000000 + minor * 1000 + patch)
#define RCHEEVOS_VERSION RCHEEVOS_MAKE_VERSION(RCHEEVOS_VERSION_MAJOR, RCHEEVOS_VERSION_MINOR, RCHEEVOS_VERSION_PATCH)

View File

@@ -510,6 +510,7 @@ static void rc_combine_ranges(uint32_t* min_val, uint32_t* max_val, uint8_t oper
break;
case RC_OPERATOR_ADD:
case RC_OPERATOR_ADD_ACCUMULATOR:
if (*min_val > *max_val) { /* underflow occurred */
*max_val += oper_max_val;
}
@@ -522,6 +523,7 @@ static void rc_combine_ranges(uint32_t* min_val, uint32_t* max_val, uint8_t oper
break;
case RC_OPERATOR_SUB:
case RC_OPERATOR_SUB_ACCUMULATOR:
*min_val -= oper_max_val;
*max_val -= oper_min_val;
break;

View File

@@ -180,9 +180,11 @@ static void rc_parse_legacy_value(rc_value_t* self, const char** memaddr, rc_par
return;
}
if (!rc_operator_is_modifying(cond->oper)) {
parse->offset = RC_INVALID_OPERATOR;
return;
if (cond->type == RC_CONDITION_MEASURED && !rc_operator_is_modifying(cond->oper)) {
/* ignore non-modifying operator on measured clause. if it were parsed as an AddSource
* or SubSource, that would have already happened in rc_parse_condition_internal, and
* legacy formatted values are essentially a series of AddSources. */
cond->oper = RC_OPERATOR_NONE;
}
rc_condition_update_parse_state(cond, parse);