dep/rcheevos: Bump to a34895b

This commit is contained in:
Stenzek
2023-09-22 23:04:09 +10:00
parent b678fcd874
commit 2067b660f6
4 changed files with 31 additions and 11 deletions

View File

@ -389,6 +389,7 @@ int rc_json_get_required_unum_array(unsigned** entries, unsigned* num_entries, r
rc_json_field_t value;
unsigned* entry;
memset(&array, 0, sizeof(array));
if (!rc_json_get_required_array(num_entries, &array, response, field, field_name))
return RC_MISSING_VALUE;

View File

@ -444,11 +444,13 @@ static const rc_memory_regions_t rc_memory_regions_gameboy = { _rc_memory_region
static const rc_memory_regions_t rc_memory_regions_gameboy_color = { _rc_memory_regions_gameboy, 17 };
/* ===== GameBoy Advance ===== */
/* http://problemkaputt.de/gbatek-gba-memory-map.htm */
static const rc_memory_region_t _rc_memory_regions_gameboy_advance[] = {
{ 0x000000U, 0x007FFFU, 0x03000000U, RC_MEMORY_TYPE_SAVE_RAM, "Cartridge RAM" },
{ 0x008000U, 0x047FFFU, 0x02000000U, RC_MEMORY_TYPE_SYSTEM_RAM, "System RAM" }
{ 0x000000U, 0x007FFFU, 0x03000000U, RC_MEMORY_TYPE_SYSTEM_RAM, "System RAM" }, /* 32KB Internal Work RAM */
{ 0x008000U, 0x047FFFU, 0x02000000U, RC_MEMORY_TYPE_SYSTEM_RAM, "System RAM" }, /* 256KB External Work RAM */
{ 0x048000U, 0x057FFFU, 0x0E000000U, RC_MEMORY_TYPE_SAVE_RAM, "Save RAM" } /* 64KB Game Pak SRAM */
};
static const rc_memory_regions_t rc_memory_regions_gameboy_advance = { _rc_memory_regions_gameboy_advance, 2 };
static const rc_memory_regions_t rc_memory_regions_gameboy_advance = { _rc_memory_regions_gameboy_advance, 3 };
/* ===== GameCube ===== */
/* https://wiibrew.org/wiki/Memory_map */

View File

@ -1942,7 +1942,7 @@ static rc_client_async_handle_t* rc_client_load_game(rc_client_load_state_t* loa
rc_client_begin_fetch_game_data(load_state);
}
return &load_state->async_handle;
return (client->state.load == load_state) ? &load_state->async_handle : NULL;
}
rc_hash_iterator_t* rc_client_get_load_state_hash_iterator(rc_client_t* client)
@ -2526,7 +2526,21 @@ static int rc_client_compare_achievement_unlock_times(const void* a, const void*
{
const rc_client_achievement_t* unlock_a = *(const rc_client_achievement_t**)a;
const rc_client_achievement_t* unlock_b = *(const rc_client_achievement_t**)b;
return (int)(unlock_b->unlock_time - unlock_a->unlock_time);
if (unlock_b->unlock_time == unlock_a->unlock_time)
return 0;
return (unlock_b->unlock_time < unlock_a->unlock_time) ? -1 : 1;
}
static int rc_client_compare_achievement_progress(const void* a, const void* b)
{
const rc_client_achievement_t* unlock_a = *(const rc_client_achievement_t**)a;
const rc_client_achievement_t* unlock_b = *(const rc_client_achievement_t**)b;
if (unlock_b->measured_percent == unlock_a->measured_percent) {
if (unlock_a->id == unlock_b->id)
return 0;
return (unlock_a->id < unlock_b->id) ? -1 : 1;
}
return (unlock_b->measured_percent < unlock_a->measured_percent) ? -1 : 1;
}
static uint8_t rc_client_map_bucket(uint8_t bucket, int grouping)
@ -2678,6 +2692,8 @@ rc_client_achievement_list_t* rc_client_create_achievement_list(rc_client_t* cli
if (bucket_type == RC_CLIENT_ACHIEVEMENT_BUCKET_RECENTLY_UNLOCKED)
qsort(bucket_ptr->achievements, bucket_ptr->num_achievements, sizeof(rc_client_achievement_t*), rc_client_compare_achievement_unlock_times);
else if (bucket_type == RC_CLIENT_ACHIEVEMENT_BUCKET_ALMOST_THERE)
qsort(bucket_ptr->achievements, bucket_ptr->num_achievements, sizeof(rc_client_achievement_t*), rc_client_compare_achievement_progress);
++bucket_ptr;
}
@ -3845,7 +3861,7 @@ int rc_client_has_rich_presence(rc_client_t* client)
if (!client || !client->game)
return 0;
if (!client->game->runtime.richpresence || !client->game->runtime.richpresence)
if (!client->game->runtime.richpresence || !client->game->runtime.richpresence->richpresence)
return 0;
return 1;