Skip to content

Commit

Permalink
include rank on leaderboard submission notification
Browse files Browse the repository at this point in the history
  • Loading branch information
Jamiras committed Jul 17, 2024
1 parent 34e9f10 commit 2d9c01a
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 7 deletions.
28 changes: 21 additions & 7 deletions cheevos/cheevos.c
Original file line number Diff line number Diff line change
Expand Up @@ -529,14 +529,28 @@ static void rcheevos_award_achievement(const rc_client_achievement_t* cheevo)
#endif
}

static void rcheevos_lboard_submit(const rc_client_leaderboard_t* lboard)
static void rcheevos_lboard_submitted(const rc_client_leaderboard_t* lboard, const rc_client_leaderboard_scoreboard_t* scoreboard)
{
const settings_t* settings = config_get_ptr();
if (lboard && settings->bools.cheevos_visibility_lboard_submit)
{
char buffer[256];
snprintf(buffer, sizeof(buffer), msg_hash_to_str(MSG_LEADERBOARD_SUBMISSION),
lboard->tracker_value, lboard->title);
if (scoreboard)
{
char addendum[64];
const size_t len = snprintf(buffer, sizeof(buffer), msg_hash_to_str(MSG_LEADERBOARD_SUBMISSION),
scoreboard->submitted_score, lboard->title);
if (strcmp(scoreboard->best_score, scoreboard->submitted_score) == 0)
snprintf(addendum, sizeof(addendum), msg_hash_to_str(MSG_LEADERBOARD_RANK), scoreboard->new_rank);
else
snprintf(addendum, sizeof(addendum), msg_hash_to_str(MSG_LEADERBOARD_BEST), scoreboard->best_score);
snprintf(buffer + len, sizeof(buffer) - len, " (%s)", addendum);
}
else
{
snprintf(buffer, sizeof(buffer), msg_hash_to_str(MSG_LEADERBOARD_SUBMISSION),
lboard->tracker_value, lboard->title);
}
runloop_msg_queue_push(buffer, 0, 2 * 60, false, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
}
Expand Down Expand Up @@ -696,9 +710,6 @@ static void rcheevos_client_event_handler(const rc_client_event_t* event, rc_cli
case RC_CLIENT_EVENT_LEADERBOARD_TRACKER_HIDE:
rcheevos_lboard_hide_tracker(event->leaderboard_tracker);
break;
case RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD:
/* not supported */
break;
#endif
case RC_CLIENT_EVENT_ACHIEVEMENT_TRIGGERED:
rcheevos_award_achievement(event->achievement);
Expand All @@ -710,7 +721,10 @@ static void rcheevos_client_event_handler(const rc_client_event_t* event, rc_cli
rcheevos_lboard_canceled(event->leaderboard);
break;
case RC_CLIENT_EVENT_LEADERBOARD_SUBMITTED:
rcheevos_lboard_submit(event->leaderboard);
/* don't notify on submission - report new rank/best score after submission via SCOREBOARD event */
break;
case RC_CLIENT_EVENT_LEADERBOARD_SCOREBOARD:
rcheevos_lboard_submitted(event->leaderboard, event->leaderboard_scoreboard);
break;
case RC_CLIENT_EVENT_RESET:
command_event(CMD_EVENT_RESET, NULL); /* reset the game */
Expand Down
8 changes: 8 additions & 0 deletions intl/msg_hash_us.h
Original file line number Diff line number Diff line change
Expand Up @@ -15057,6 +15057,14 @@ MSG_HASH(
MSG_LEADERBOARD_SUBMISSION,
"Submitted %s for %s" /* Submitted [value] for [leaderboard name] */
)
MSG_HASH(
MSG_LEADERBOARD_RANK,
"Rank: %d" /* Rank: [leaderboard rank] */
)
MSG_HASH(
MSG_LEADERBOARD_BEST,
"Best: %s" /* Best: [value] */
)
MSG_HASH(
MSG_CHANGE_THUMBNAIL_TYPE,
"Change thumbnail type"
Expand Down
2 changes: 2 additions & 0 deletions msg_hash.h
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,8 @@ enum msg_hash_enums
MSG_LEADERBOARD_STARTED,
MSG_LEADERBOARD_FAILED,
MSG_LEADERBOARD_SUBMISSION,
MSG_LEADERBOARD_RANK,
MSG_LEADERBOARD_BEST,
MSG_CHANGE_THUMBNAIL_TYPE,
MSG_TOGGLE_FULLSCREEN_THUMBNAILS,
MSG_TOGGLE_CONTENT_METADATA,
Expand Down

0 comments on commit 2d9c01a

Please sign in to comment.