summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLillyJadeKatrin <lilly.kitty.1988@gmail.com>2023-05-23 20:45:04 -0400
committerLillyJadeKatrin <lilly.kitty.1988@gmail.com>2023-05-23 23:22:21 -0400
commitb0eb4ccb8012c308941ef1eba279f73622d29d60 (patch)
tree85e08759b5091af9c0b3eb24150b5f96c549879f /Source/Core
parenta4b7f43f2126ea82abc1548c7849b839208abec7 (diff)
Added Notification Popup for Leaderboard Canceled
Added HandleLeaderboardStartedEvent with an OnScreenDisplay message when a player has triggered a leaderboard's failure conditions. The message includes the title of the achievement.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/AchievementManager.cpp13
-rw-r--r--Source/Core/Core/AchievementManager.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp
index abf6d89367..2b6aa0b9a4 100644
--- a/Source/Core/Core/AchievementManager.cpp
+++ b/Source/Core/Core/AchievementManager.cpp
@@ -535,6 +535,19 @@ void AchievementManager::HandleLeaderboardStartedEvent(const rc_runtime_event_t*
}
}
+void AchievementManager::HandleLeaderboardCanceledEvent(const rc_runtime_event_t* runtime_event)
+{
+ for (u32 ix = 0; ix < m_game_data.num_leaderboards; ix++)
+ {
+ if (m_game_data.leaderboards[ix].id == runtime_event->id)
+ {
+ OSD::AddMessage(fmt::format("Failed leaderboard: {}", m_game_data.leaderboards[ix].title),
+ OSD::Duration::VERY_LONG, OSD::Color::RED);
+ break;
+ }
+ }
+}
+
void AchievementManager::HandleLeaderboardTriggeredEvent(const rc_runtime_event_t* runtime_event)
{
m_queue.EmplaceItem(
diff --git a/Source/Core/Core/AchievementManager.h b/Source/Core/Core/AchievementManager.h
index 3c5855c7c5..7c89be7c59 100644
--- a/Source/Core/Core/AchievementManager.h
+++ b/Source/Core/Core/AchievementManager.h
@@ -81,6 +81,7 @@ private:
void HandleAchievementTriggeredEvent(const rc_runtime_event_t* runtime_event);
void HandleLeaderboardStartedEvent(const rc_runtime_event_t* runtime_event);
+ void HandleLeaderboardCanceledEvent(const rc_runtime_event_t* runtime_event);
void HandleLeaderboardTriggeredEvent(const rc_runtime_event_t* runtime_event);
template <typename RcRequest, typename RcResponse>