diff options
| author | JMC47 <JMC4789@gmail.com> | 2025-10-08 17:19:14 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-08 17:19:14 -0400 |
| commit | beebcb52e71b7d5b6b46692cebd4e9e8c6645358 (patch) | |
| tree | ff24180df582362e3f4ec8aad5a70d8e5c1801e6 /Source/Core/VideoCommon | |
| parent | 03ef9b4995aac89eec97541782fb2ab2269bc255 (diff) | |
| parent | 3cb8f234a73ffc83761d4d3790fcdaf2fda13382 (diff) | |
Merge pull request #13998 from fizzlepicklepop/master
DolphinQt: Add toggles for Speedrun timer + Achievement badges visibility
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/OnScreenUI.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/Source/Core/VideoCommon/OnScreenUI.cpp b/Source/Core/VideoCommon/OnScreenUI.cpp index 4689bb6321..834971fa0b 100644 --- a/Source/Core/VideoCommon/OnScreenUI.cpp +++ b/Source/Core/VideoCommon/OnScreenUI.cpp @@ -8,6 +8,7 @@ #include "Common/Timer.h" #include "Core/AchievementManager.h" +#include "Core/Config/AchievementSettings.h" #include "Core/Config/GraphicsSettings.h" #include "Core/Config/MainSettings.h" #include "Core/Config/NetplaySettings.h" @@ -324,10 +325,21 @@ void OnScreenUI::DrawChallengesAndLeaderboards() #ifdef USE_RETRO_ACHIEVEMENTS auto& instance = AchievementManager::GetInstance(); std::lock_guard lg{instance.GetLock()}; - if (instance.AreChallengesUpdated()) + const bool challenge_indicators_enabled = Config::Get(Config::RA_CHALLENGE_INDICATORS_ENABLED); + const bool challenges_updated = instance.AreChallengesUpdated(); + const auto& challenges = instance.GetActiveChallenges(); + + if (!challenge_indicators_enabled) + { + if (challenges_updated) + instance.ResetChallengesUpdated(); + if (!m_challenge_texture_map.empty()) + m_challenge_texture_map.clear(); + } + else if (challenges_updated || m_challenge_texture_map.size() != challenges.size()) { - instance.ResetChallengesUpdated(); - const auto& challenges = instance.GetActiveChallenges(); + if (challenges_updated) + instance.ResetChallengesUpdated(); m_challenge_texture_map.clear(); for (const auto& name : challenges) { @@ -343,7 +355,7 @@ void OnScreenUI::DrawChallengesAndLeaderboards() } float leaderboard_y = ImGui::GetIO().DisplaySize.y; - if (!m_challenge_texture_map.empty()) + if (challenge_indicators_enabled && !m_challenge_texture_map.empty()) { float scale = ImGui::GetIO().DisplaySize.y / 1024.0; ImGui::SetNextWindowSize(ImVec2(0, 0)); @@ -367,7 +379,7 @@ void OnScreenUI::DrawChallengesAndLeaderboards() } const auto& leaderboard_progress = instance.GetActiveLeaderboards(); - if (!leaderboard_progress.empty()) + if (Config::Get(Config::RA_LEADERBOARD_TRACKER_ENABLED) && !leaderboard_progress.empty()) { ImGui::SetNextWindowPos(ImVec2(ImGui::GetIO().DisplaySize.x, leaderboard_y), 0, ImVec2(1.0, 1.0)); |
