mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
(cheevos) Cut down on calls to gfx_widgets_ready
This commit is contained in:
parent
d794a57159
commit
a80e563d1f
@ -925,7 +925,7 @@ static rcheevos_racheevo_t* rcheevos_find_cheevo(unsigned id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void rcheevos_award_achievement(rcheevos_locals_t *locals, rcheevos_racheevo_t* cheevo)
|
||||
static void rcheevos_award_achievement(rcheevos_locals_t *locals, rcheevos_racheevo_t* cheevo, bool widgets_ready)
|
||||
{
|
||||
char buffer[256] = "";
|
||||
|
||||
@ -945,7 +945,6 @@ static void rcheevos_award_achievement(rcheevos_locals_t *locals, rcheevos_rache
|
||||
/* Show the OSD message. */
|
||||
{
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
bool widgets_ready = gfx_widgets_ready();
|
||||
if (widgets_ready)
|
||||
gfx_widgets_push_achievement(cheevo->title, cheevo->badge);
|
||||
else
|
||||
@ -1031,7 +1030,7 @@ static rcheevos_ralboard_t* rcheevos_find_lboard(unsigned id)
|
||||
}
|
||||
|
||||
static void rcheevos_lboard_submit(rcheevos_locals_t *locals,
|
||||
rcheevos_ralboard_t* lboard, int value)
|
||||
rcheevos_ralboard_t* lboard, int value, bool widgets_ready)
|
||||
{
|
||||
char buffer[256];
|
||||
char formatted_value[16];
|
||||
@ -1046,7 +1045,7 @@ static void rcheevos_lboard_submit(rcheevos_locals_t *locals,
|
||||
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
/* Hide the tracker */
|
||||
if (gfx_widgets_ready())
|
||||
if (widgets_ready)
|
||||
gfx_widgets_set_leaderboard_display(lboard->id, NULL);
|
||||
#endif
|
||||
|
||||
@ -1064,7 +1063,8 @@ static void rcheevos_lboard_submit(rcheevos_locals_t *locals,
|
||||
}
|
||||
}
|
||||
|
||||
static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard)
|
||||
static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard,
|
||||
bool widgets_ready)
|
||||
{
|
||||
char buffer[256];
|
||||
if (!lboard)
|
||||
@ -1073,7 +1073,7 @@ static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard)
|
||||
CHEEVOS_LOG(RCHEEVOS_TAG "Leaderboard %u canceled: %s\n", lboard->id, lboard->title);
|
||||
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
if (gfx_widgets_ready())
|
||||
if (widgets_ready)
|
||||
gfx_widgets_set_leaderboard_display(lboard->id, NULL);
|
||||
#endif
|
||||
|
||||
@ -1085,7 +1085,8 @@ static void rcheevos_lboard_canceled(rcheevos_ralboard_t * lboard)
|
||||
}
|
||||
}
|
||||
|
||||
static void rcheevos_lboard_started(rcheevos_ralboard_t * lboard, int value)
|
||||
static void rcheevos_lboard_started(rcheevos_ralboard_t * lboard, int value,
|
||||
bool widgets_ready)
|
||||
{
|
||||
char buffer[256];
|
||||
if (!lboard)
|
||||
@ -1094,7 +1095,7 @@ static void rcheevos_lboard_started(rcheevos_ralboard_t * lboard, int value)
|
||||
CHEEVOS_LOG(RCHEEVOS_TAG "Leaderboard %u started: %s\n", lboard->id, lboard->title);
|
||||
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
if (gfx_widgets_ready() && rcheevos_locals.leaderboard_trackers)
|
||||
if (widgets_ready && rcheevos_locals.leaderboard_trackers)
|
||||
{
|
||||
rc_format_value(buffer, sizeof(buffer), value, lboard->format);
|
||||
gfx_widgets_set_leaderboard_display(lboard->id, buffer);
|
||||
@ -1114,12 +1115,13 @@ static void rcheevos_lboard_started(rcheevos_ralboard_t * lboard, int value)
|
||||
}
|
||||
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
static void rcheevos_lboard_updated(rcheevos_ralboard_t* lboard, int value)
|
||||
static void rcheevos_lboard_updated(rcheevos_ralboard_t* lboard, int value,
|
||||
bool widgets_ready)
|
||||
{
|
||||
if (!lboard)
|
||||
return;
|
||||
|
||||
if (gfx_widgets_ready() && rcheevos_locals.leaderboard_trackers)
|
||||
if (widgets_ready && rcheevos_locals.leaderboard_trackers)
|
||||
{
|
||||
char buffer[32];
|
||||
rc_format_value(buffer, sizeof(buffer), value, lboard->format);
|
||||
@ -1133,11 +1135,11 @@ const char* rcheevos_get_richpresence(void)
|
||||
return rc_runtime_get_richpresence(&rcheevos_locals.runtime);
|
||||
}
|
||||
|
||||
void rcheevos_reset_game(void)
|
||||
void rcheevos_reset_game(bool widgets_ready)
|
||||
{
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
/* Hide any visible trackers */
|
||||
if (gfx_widgets_ready())
|
||||
if (widgets_ready)
|
||||
{
|
||||
rcheevos_ralboard_t* lboard = rcheevos_locals.patchdata.lboards;
|
||||
unsigned i;
|
||||
@ -1827,28 +1829,35 @@ void rcheevos_validate_config_settings(void)
|
||||
|
||||
static void rcheevos_runtime_event_handler(const rc_runtime_event_t* runtime_event)
|
||||
{
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
bool widgets_ready = gfx_widgets_ready();
|
||||
#else
|
||||
bool widgets_ready = false;
|
||||
#endif
|
||||
|
||||
switch (runtime_event->type)
|
||||
{
|
||||
case RC_RUNTIME_EVENT_ACHIEVEMENT_TRIGGERED:
|
||||
rcheevos_award_achievement(&rcheevos_locals, rcheevos_find_cheevo(runtime_event->id));
|
||||
rcheevos_award_achievement(&rcheevos_locals, rcheevos_find_cheevo(runtime_event->id), widgets_ready);
|
||||
break;
|
||||
|
||||
case RC_RUNTIME_EVENT_LBOARD_STARTED:
|
||||
rcheevos_lboard_started(rcheevos_find_lboard(runtime_event->id), runtime_event->value);
|
||||
rcheevos_lboard_started(rcheevos_find_lboard(runtime_event->id), runtime_event->value, widgets_ready);
|
||||
break;
|
||||
|
||||
#if defined(HAVE_GFX_WIDGETS)
|
||||
case RC_RUNTIME_EVENT_LBOARD_UPDATED:
|
||||
rcheevos_lboard_updated(rcheevos_find_lboard(runtime_event->id), runtime_event->value);
|
||||
rcheevos_lboard_updated(rcheevos_find_lboard(runtime_event->id), runtime_event->value, widgets_ready);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case RC_RUNTIME_EVENT_LBOARD_CANCELED:
|
||||
rcheevos_lboard_canceled(rcheevos_find_lboard(runtime_event->id));
|
||||
rcheevos_lboard_canceled(rcheevos_find_lboard(runtime_event->id),
|
||||
widgets_ready);
|
||||
break;
|
||||
|
||||
case RC_RUNTIME_EVENT_LBOARD_TRIGGERED:
|
||||
rcheevos_lboard_submit(&rcheevos_locals, rcheevos_find_lboard(runtime_event->id), runtime_event->value);
|
||||
rcheevos_lboard_submit(&rcheevos_locals, rcheevos_find_lboard(runtime_event->id), runtime_event->value, widgets_ready);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -46,7 +46,7 @@ size_t rcheevos_get_serialize_size(void);
|
||||
bool rcheevos_get_serialized_data(void* buffer);
|
||||
bool rcheevos_set_serialized_data(void* buffer);
|
||||
|
||||
void rcheevos_reset_game(void);
|
||||
void rcheevos_reset_game(bool widgets_ready);
|
||||
|
||||
void rcheevos_populate_menu(void* data);
|
||||
void rcheevos_populate_hardcore_pause_menu(void* data);
|
||||
|
@ -13709,7 +13709,11 @@ bool command_event(enum event_command cmd, void *data)
|
||||
|
||||
core_reset();
|
||||
#ifdef HAVE_CHEEVOS
|
||||
rcheevos_reset_game();
|
||||
#ifdef HAVE_GFX_WIDGETS
|
||||
rcheevos_reset_game(p_rarch->widgets_active);
|
||||
#else
|
||||
rcheevos_reset_game(false);
|
||||
#endif
|
||||
#endif
|
||||
#if HAVE_NETWORKING
|
||||
netplay_driver_ctl(RARCH_NETPLAY_CTL_RESET, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user