Skip to content

Commit ac0a299

Browse files
committed
FullscreenUI: Add achievement subset selection
1 parent 75380e7 commit ac0a299

File tree

3 files changed

+313
-39
lines changed

3 files changed

+313
-39
lines changed

src/core/achievements.cpp

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,16 +1394,7 @@ void Achievements::HandleSubsetCompleteEvent(const rc_client_event_t* event)
13941394
if (g_settings.achievements_notifications && event->subset->badge_name[0] != '\0')
13951395
{
13961396
// Need to grab the icon for the subset.
1397-
std::string badge_path = GetLocalImagePath(event->subset->badge_name, RC_IMAGE_TYPE_GAME);
1398-
if (!FileSystem::FileExists(badge_path.c_str()))
1399-
{
1400-
std::string url;
1401-
if (IsUsingRAIntegration() || !event->subset->badge_url)
1402-
url = GetImageURL(event->subset->badge_name, RC_IMAGE_TYPE_GAME);
1403-
else
1404-
url = event->subset->badge_url;
1405-
DownloadImage(std::move(url), badge_path);
1406-
}
1397+
std::string badge_path = GetSubsetBadgePath(event->subset);
14071398

14081399
std::string message = fmt::format(
14091400
TRANSLATE_FS("Achievements", "Subset complete.\n{0}, {1}."),
@@ -1873,6 +1864,22 @@ std::string Achievements::GetLeaderboardUserBadgePath(const rc_client_leaderboar
18731864
return path;
18741865
}
18751866

1867+
std::string Achievements::GetSubsetBadgePath(const rc_client_subset_t* subset)
1868+
{
1869+
std::string badge_path = GetLocalImagePath(subset->badge_name, RC_IMAGE_TYPE_GAME);
1870+
if (!FileSystem::FileExists(badge_path.c_str()))
1871+
{
1872+
std::string url;
1873+
if (IsUsingRAIntegration() || !subset->badge_url)
1874+
url = GetImageURL(subset->badge_name, RC_IMAGE_TYPE_GAME);
1875+
else
1876+
url = subset->badge_url;
1877+
DownloadImage(std::move(url), badge_path);
1878+
}
1879+
1880+
return badge_path;
1881+
}
1882+
18761883
bool Achievements::IsLoggedIn()
18771884
{
18781885
return (rc_client_get_user_info(s_state.client) != nullptr);

src/core/achievements_private.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ std::string GetAchievementBadgePath(const rc_client_achievement_t* achievement,
3232
bool download_if_missing = true);
3333
std::string GetLeaderboardUserBadgePath(const rc_client_leaderboard_entry_t* entry);
3434

35+
std::string GetSubsetBadgePath(const rc_client_subset_t* subset);
36+
3537
} // namespace Achievements
3638

3739
#ifndef __ANDROID__

0 commit comments

Comments
 (0)