Skip to content

Commit

Permalink
Change signature of get_representation callbacks
Browse files Browse the repository at this point in the history
  • Loading branch information
LibretroAdmin committed Feb 11, 2025
1 parent b0999db commit 5372f3f
Show file tree
Hide file tree
Showing 6 changed files with 2,858 additions and 3,251 deletions.
44 changes: 19 additions & 25 deletions cheevos/cheevos_menu.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,55 +45,49 @@

#if HAVE_MENU

bool rcheevos_menu_get_state(unsigned menu_offset, char* buffer, size_t buffer_size)
size_t rcheevos_menu_get_state(unsigned menu_offset, char *s, size_t len)
{
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
if (menu_offset < rcheevos_locals->menuitem_count)
{
const rcheevos_menuitem_t* menuitem = &rcheevos_locals->menuitems[menu_offset];
const rcheevos_menuitem_t* menuitem = &rcheevos_locals->menuitems[menu_offset];
const rc_client_achievement_t* cheevo = menuitem->achievement;
if (cheevo)
{
size_t _len;
if (cheevo->state != RC_CLIENT_ACHIEVEMENT_STATE_ACTIVE)
strlcpy(buffer, msg_hash_to_str(menuitem->state_label_idx), buffer_size);
_len = strlcpy(s, msg_hash_to_str(menuitem->state_label_idx), len);
else
{
const char* missable = cheevo->type == RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE ? "[m] " : "";
size_t _len = strlcpy(buffer, missable, buffer_size);
_len += strlcpy(buffer + _len, msg_hash_to_str(menuitem->state_label_idx), buffer_size - _len);
const char* missable = (cheevo->type == RC_CLIENT_ACHIEVEMENT_TYPE_MISSABLE) ? "[m] " : "";
_len = strlcpy(s, missable, len);
_len += strlcpy(s + _len, msg_hash_to_str(menuitem->state_label_idx), len - _len);
if (cheevo->measured_progress[0])
{
_len += strlcpy(buffer + _len, " - ", buffer_size - _len);
strlcpy(buffer + _len, cheevo->measured_progress, buffer_size - _len);
_len += strlcpy(s + _len, " - ", len - _len);
_len += strlcpy(s + _len, cheevo->measured_progress, len - _len);
}
}
return true;
return _len;
}
}

if (buffer)
buffer[0] = '\0';

return false;
if (s)
s[0] = '\0';
return 0;
}

bool rcheevos_menu_get_sublabel(unsigned menu_offset, char* buffer, size_t buffer_size)
size_t rcheevos_menu_get_sublabel(unsigned menu_offset, char *s, size_t len)
{
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
if (menu_offset < rcheevos_locals->menuitem_count && buffer)
if (menu_offset < rcheevos_locals->menuitem_count && s)
{
const rcheevos_menuitem_t* menuitem = &rcheevos_locals->menuitems[menu_offset];
if (menuitem->achievement)
{
strlcpy(buffer, menuitem->achievement->description, buffer_size);
return true;
}
return strlcpy(s, menuitem->achievement->description, len);
}

if (buffer)
buffer[0] = '\0';

return false;
if (s)
s[0] = '\0';
return 0;
}

void rcheevos_menu_reset_badges(void)
Expand Down
4 changes: 2 additions & 2 deletions cheevos/cheevos_menu.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ RETRO_BEGIN_DECLS
void rcheevos_menu_populate(void* data, bool cheevos_enable,
bool cheevos_hardcore_mode_enable);
void rcheevos_menu_populate_hardcore_pause_submenu(void* data, bool cheevos_hardcore_mode_enable);
bool rcheevos_menu_get_state(unsigned menu_offset, char* buffer, size_t buffer_size);
bool rcheevos_menu_get_sublabel(unsigned menu_offset, char* buffer, size_t buffer_size);
size_t rcheevos_menu_get_state(unsigned menu_offset, char *s, size_t len);
size_t rcheevos_menu_get_sublabel(unsigned menu_offset, char *s, size_t len);
uintptr_t rcheevos_menu_get_badge_texture(unsigned menu_offset);
void rcheevos_menu_reset_badges(void);

Expand Down
Loading

0 comments on commit 5372f3f

Please sign in to comment.