Skip to content

Commit a05e3e6

Browse files
JamirasLibretroAdmin
authored andcommitted
fix non-griffin build
1 parent a9a8501 commit a05e3e6

3 files changed

Lines changed: 28 additions & 10 deletions

File tree

cheevos/cheevos.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,15 @@ int rcheevos_get_richpresence(char* s, size_t len)
640640
return (int)rc_client_get_rich_presence_message(rcheevos_locals.client, s, (size_t)len);
641641
}
642642

643+
int rcheevos_get_game_badge_url(char* s, size_t len)
644+
{
645+
const rc_client_game_t* game = rc_client_get_game_info(rcheevos_locals.client);
646+
if (!game || !game->id || !game->badge_name || !game->badge_name[0])
647+
return 0;
648+
649+
return (rc_client_game_get_image_url(game, s, len) == RC_OK);
650+
}
651+
643652
#ifdef HAVE_GFX_WIDGETS
644653

645654
static void rcheevos_hide_widgets(bool widgets_ready)
@@ -1419,15 +1428,15 @@ static void rcheevos_finalize_game_load(rc_client_t* client)
14191428
settings_t* settings = config_get_ptr();
14201429
bool want_badges = settings->bools.cheevos_badges_enable;
14211430
#if !defined(HAVE_GFX_WIDGETS)
1422-
/* Then badges are only needed for xmb and ozone menus */
1431+
/* Then badges are only needed for xmb, ozone, and rgui menus */
14231432
want_badges = want_badges &&
14241433
( string_is_equal(settings->arrays.menu_driver, "xmb")
1425-
|| string_is_equal(settings->arrays.menu_driver, "ozone"));
1434+
|| string_is_equal(settings->arrays.menu_driver, "ozone")
1435+
|| string_is_equal(settings->arrays.menu_driver, "rgui"));
14261436
#endif
14271437
if (want_badges) /* prefetch the game badge */
14281438
{
1429-
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
1430-
const rc_client_game_t* game = rc_client_get_game_info(rcheevos_locals->client);
1439+
const rc_client_game_t* game = rc_client_get_game_info(client);
14311440
char badge[32];
14321441

14331442
badge[0] = 'i';

cheevos/cheevos_client.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@
3434
#include "../network/presence.h"
3535
#endif
3636

37+
#ifdef HAVE_MENU
38+
#include "cheevos_menu.h"
39+
#include "../menu/menu_driver.h"
40+
#endif
41+
3742
#include "../deps/rcheevos/include/rc_api_runtime.h"
3843
#include "../deps/rcheevos/include/rc_api_user.h"
3944

@@ -553,8 +558,11 @@ static void rcheevos_client_fetch_next_badge(rc_client_download_queue_t* queue)
553558
{
554559
if (--queue->outstanding_requests == 0)
555560
{
556-
if (queue->pass == 2) /* all badges successfully loaded */
557-
rcheevos_locals.badges_loaded = true;
561+
if (queue->pass == 2)
562+
{
563+
/* all badges successfully loaded */
564+
get_rcheevos_locals()->badges_loaded = true;
565+
}
558566

559567
done = true; /* destroy queue */
560568
}
@@ -583,7 +591,7 @@ static void rcheevos_client_fetch_next_badge(rc_client_download_queue_t* queue)
583591
}
584592
rc_client_destroy_achievement_list(queue->list);
585593

586-
rcheevos_locals.badges_loading = false;
594+
get_rcheevos_locals()->badges_loading = false;
587595

588596
#ifdef HAVE_THREADS
589597
slock_free(queue->lock);

cheevos/cheevos_menu.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ uintptr_t rcheevos_menu_get_badge_texture(unsigned menu_offset)
246246

247247
void rcheevos_menu_update_badge_references(const char* badge_name)
248248
{
249+
rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
250+
unsigned i;
249251
char unlocked_badge_name[8];
250252
const size_t badge_name_len = strlen(badge_name);
251253
if (badge_name_len > 6 && badge_name_len < sizeof(unlocked_badge_name) + 5 &&
@@ -256,10 +258,9 @@ void rcheevos_menu_update_badge_references(const char* badge_name)
256258
badge_name = unlocked_badge_name;
257259
}
258260

259-
unsigned i;
260-
for (i = 0; i < rcheevos_locals.menuitem_count; ++i)
261+
for (i = 0; i < rcheevos_locals->menuitem_count; ++i)
261262
{
262-
rcheevos_menuitem_t* menuitem = &rcheevos_locals.menuitems[i];
263+
rcheevos_menuitem_t* menuitem = &rcheevos_locals->menuitems[i];
263264
if (menuitem->menu_badge_grayscale >= 2 && /* using placeholder */
264265
strncmp(menuitem->achievement->badge_name, badge_name, badge_name_len) == 0)
265266
{

0 commit comments

Comments
 (0)