summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2025-10-08 17:19:14 -0400
committerGitHub <noreply@github.com>2025-10-08 17:19:14 -0400
commitbeebcb52e71b7d5b6b46692cebd4e9e8c6645358 (patch)
treeff24180df582362e3f4ec8aad5a70d8e5c1801e6 /Source/Core/VideoCommon
parent03ef9b4995aac89eec97541782fb2ab2269bc255 (diff)
parent3cb8f234a73ffc83761d4d3790fcdaf2fda13382 (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.cpp22
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));