diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp index 7a1837abbc..bea8d4c965 100644 --- a/Source/Core/Core/AchievementManager.cpp +++ b/Source/Core/Core/AchievementManager.cpp @@ -837,6 +837,22 @@ void AchievementManager::LoadGameCallback(int result, const char* error_message, instance.m_update_callback({.all = true}); // Set this to a value that will immediately trigger RP instance.m_last_rp_time = std::chrono::steady_clock::now() - std::chrono::minutes{2}; + + std::lock_guard lg{instance.GetLock()}; + auto* leaderboard_list = + rc_client_create_leaderboard_list(client, RC_CLIENT_LEADERBOARD_LIST_GROUPING_NONE); + for (u32 bucket = 0; bucket < leaderboard_list->num_buckets; bucket++) + { + const auto& leaderboard_bucket = leaderboard_list->buckets[bucket]; + for (u32 board = 0; board < leaderboard_bucket.num_leaderboards; board++) + { + const auto& leaderboard = leaderboard_bucket.leaderboards[board]; + instance.m_leaderboard_map.insert( + std::pair(leaderboard->id, LeaderboardStatus{.name = leaderboard->title, + .description = leaderboard->description})); + } + } + rc_client_destroy_leaderboard_list(leaderboard_list); } void AchievementManager::ChangeMediaCallback(int result, const char* error_message, diff --git a/Source/Core/DolphinQt/Achievements/AchievementLeaderboardWidget.cpp b/Source/Core/DolphinQt/Achievements/AchievementLeaderboardWidget.cpp index c15afea34f..092e892bb7 100644 --- a/Source/Core/DolphinQt/Achievements/AchievementLeaderboardWidget.cpp +++ b/Source/Core/DolphinQt/Achievements/AchievementLeaderboardWidget.cpp @@ -87,7 +87,7 @@ void AchievementLeaderboardWidget::UpdateData(bool clean_all) } for (auto row : m_leaderboard_order) { - UpdateRow(row.second); + UpdateRow(row.first); } } @@ -98,7 +98,7 @@ void AchievementLeaderboardWidget::UpdateData( { if (update_ids.contains(row.first)) { - UpdateRow(row.second); + UpdateRow(row.first); } } }