diff --git a/cheevos/cheevos_client.c b/cheevos/cheevos_client.c index 129cdc024e..b326d8e6bf 100644 --- a/cheevos/cheevos_client.c +++ b/cheevos/cheevos_client.c @@ -1098,6 +1098,10 @@ static void rcheevos_async_fetch_game_data_callback( "i%s", runtime_data->game_data.image_name); rcheevos_client_fetch_game_badge(runtime_data->game_data.image_name, runtime_data); } + else + { + rcheevos_unload(); + } } void rcheevos_client_initialize_runtime(unsigned game_id, diff --git a/deps/rcheevos/src/rapi/rc_api_runtime.c b/deps/rcheevos/src/rapi/rc_api_runtime.c index 73223f0d93..99289afc0c 100644 --- a/deps/rcheevos/src/rapi/rc_api_runtime.c +++ b/deps/rcheevos/src/rapi/rc_api_runtime.c @@ -129,7 +129,7 @@ int rc_api_process_fetch_game_data_response(rc_api_fetch_game_data_response_t* r rc_buf_init(&response->response.buffer); result = rc_json_parse_response(&response->response, server_response, fields, sizeof(fields) / sizeof(fields[0])); - if (result != RC_OK) + if (result != RC_OK || !response->response.succeeded) return result; if (!rc_json_get_required_object(patchdata_fields, sizeof(patchdata_fields) / sizeof(patchdata_fields[0]), &response->response, &fields[2], "PatchData")) diff --git a/deps/rcheevos/src/rapi/rc_api_user.c b/deps/rcheevos/src/rapi/rc_api_user.c index 740c1d2441..40374c396f 100644 --- a/deps/rcheevos/src/rapi/rc_api_user.c +++ b/deps/rcheevos/src/rapi/rc_api_user.c @@ -138,7 +138,7 @@ int rc_api_process_fetch_user_unlocks_response(rc_api_fetch_user_unlocks_respons rc_buf_init(&response->response.buffer); result = rc_json_parse_response(&response->response, server_response, fields, sizeof(fields) / sizeof(fields[0])); - if (result != RC_OK) + if (result != RC_OK || !response->response.succeeded) return result; result = rc_json_get_required_unum_array(&response->achievement_ids, &response->num_achievement_ids, &response->response, &fields[2], "UserUnlocks");