summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2024-07-06 14:23:47 +0200
committerGitHub <noreply@github.com>2024-07-06 14:23:47 +0200
commit02e1b9414909db1644562b3669967feff203460f (patch)
tree226b22ed561001c0c6bcbd160306ef63de853a69 /Source/Core
parent6ddfdc14836eaa24e08545486468dfdfd603f37a (diff)
parent8b427de28f0674948098a24f5807aad647af7426 (diff)
Merge pull request #12905 from LillyJadeKatrin/retroachievements-hotkey
Add Open Achievements Hotkey
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/AchievementManager.cpp8
-rw-r--r--Source/Core/Core/HotkeyManager.cpp10
-rw-r--r--Source/Core/Core/HotkeyManager.h3
-rw-r--r--Source/Core/DolphinQt/HotkeyScheduler.cpp5
-rw-r--r--Source/Core/DolphinQt/HotkeyScheduler.h3
-rw-r--r--Source/Core/DolphinQt/MainWindow.cpp4
6 files changed, 27 insertions, 6 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp
index 7d7c0af374..544ec36afc 100644
--- a/Source/Core/Core/AchievementManager.cpp
+++ b/Source/Core/Core/AchievementManager.cpp
@@ -882,9 +882,7 @@ void AchievementManager::HandleAchievementChallengeIndicatorShowEvent(
const auto [iter, inserted] = instance.m_active_challenges.insert(client_event->achievement->id);
if (inserted)
instance.m_challenges_updated = true;
- OSD::AddMessage(fmt::format("Challenge Started: {}", client_event->achievement->title),
- OSD::Duration::VERY_LONG, OSD::Color::GREEN,
- &instance.GetAchievementBadge(client_event->achievement->id, false));
+ AchievementManager::GetInstance().m_update_callback(UpdatedItems{.rich_presence = true});
}
void AchievementManager::HandleAchievementChallengeIndicatorHideEvent(
@@ -894,9 +892,7 @@ void AchievementManager::HandleAchievementChallengeIndicatorHideEvent(
const auto removed = instance.m_active_challenges.erase(client_event->achievement->id);
if (removed > 0)
instance.m_challenges_updated = true;
- OSD::AddMessage(fmt::format("Challenge Ended: {}", client_event->achievement->title),
- OSD::Duration::VERY_LONG, OSD::Color::GREEN,
- &instance.GetAchievementBadge(client_event->achievement->id, false));
+ AchievementManager::GetInstance().m_update_callback(UpdatedItems{.rich_presence = true});
}
void AchievementManager::HandleAchievementProgressIndicatorShowEvent(
diff --git a/Source/Core/Core/HotkeyManager.cpp b/Source/Core/Core/HotkeyManager.cpp
index 83b0c31616..3d0a153fd6 100644
--- a/Source/Core/Core/HotkeyManager.cpp
+++ b/Source/Core/Core/HotkeyManager.cpp
@@ -38,6 +38,9 @@ constexpr std::array<const char*, NUM_HOTKEYS> s_hotkey_labels{{
_trans("Center Mouse"),
_trans("Activate NetPlay Chat"),
_trans("Control NetPlay Golf Mode"),
+#ifdef USE_RETRO_ACHIEVEMENTS
+ _trans("Open Achievements"),
+#endif // USE_RETRO_ACHIEVEMENTS
_trans("Volume Down"),
_trans("Volume Up"),
@@ -330,7 +333,11 @@ struct HotkeyGroupInfo
};
constexpr std::array<HotkeyGroupInfo, NUM_HOTKEY_GROUPS> s_groups_info = {
+#ifdef USE_RETRO_ACHIEVEMENTS
+ {{_trans("General"), HK_OPEN, HK_OPEN_ACHIEVEMENTS},
+#else // USE_RETRO_ACHIEVEMENTS
{{_trans("General"), HK_OPEN, HK_REQUEST_GOLF_CONTROL},
+#endif // USE_RETROACHIEVEMENTS
{_trans("Volume"), HK_VOLUME_DOWN, HK_VOLUME_TOGGLE_MUTE},
{_trans("Emulation Speed"), HK_DECREASE_EMULATION_SPEED, HK_TOGGLE_THROTTLE},
{_trans("Frame Advance"), HK_FRAME_ADVANCE, HK_FRAME_ADVANCE_RESET_SPEED},
@@ -448,6 +455,9 @@ void HotkeyManager::LoadDefaults(const ControllerInterface& ciface)
set_key_expression(HK_STOP, "Escape");
set_key_expression(HK_FULLSCREEN, hotkey_string({"Alt", "Return"}));
#endif
+#ifdef USE_RETRO_ACHIEVEMENTS
+ set_key_expression(HK_OPEN_ACHIEVEMENTS, hotkey_string({"Alt", "A"}));
+#endif // USE_RETRO_ACHIEVEMENTS
set_key_expression(HK_STEP, "F11");
set_key_expression(HK_STEP_OVER, hotkey_string({"Shift", "F10"}));
set_key_expression(HK_STEP_OUT, hotkey_string({"Shift", "F11"}));
diff --git a/Source/Core/Core/HotkeyManager.h b/Source/Core/Core/HotkeyManager.h
index aae894cb5b..bb287b6561 100644
--- a/Source/Core/Core/HotkeyManager.h
+++ b/Source/Core/Core/HotkeyManager.h
@@ -32,6 +32,9 @@ enum Hotkey
HK_CENTER_MOUSE,
HK_ACTIVATE_CHAT,
HK_REQUEST_GOLF_CONTROL,
+#ifdef USE_RETRO_ACHIEVEMENTS
+ HK_OPEN_ACHIEVEMENTS,
+#endif // USE_RETRO_ACHIEVEMENTS
HK_VOLUME_DOWN,
HK_VOLUME_UP,
diff --git a/Source/Core/DolphinQt/HotkeyScheduler.cpp b/Source/Core/DolphinQt/HotkeyScheduler.cpp
index 39e4633a9e..232f41c2f8 100644
--- a/Source/Core/DolphinQt/HotkeyScheduler.cpp
+++ b/Source/Core/DolphinQt/HotkeyScheduler.cpp
@@ -192,6 +192,11 @@ void HotkeyScheduler::Run()
if (IsHotkey(HK_EXIT))
emit ExitHotkey();
+#ifdef USE_RETRO_ACHIEVEMENTS
+ if (IsHotkey(HK_OPEN_ACHIEVEMENTS))
+ emit OpenAchievements();
+#endif // USE_RETRO_ACHIEVEMENTS
+
if (!Core::IsRunning(system))
{
// Only check for Play Recording hotkey when no game is running
diff --git a/Source/Core/DolphinQt/HotkeyScheduler.h b/Source/Core/DolphinQt/HotkeyScheduler.h
index 97a43be72e..c61cdb265d 100644
--- a/Source/Core/DolphinQt/HotkeyScheduler.h
+++ b/Source/Core/DolphinQt/HotkeyScheduler.h
@@ -53,6 +53,9 @@ signals:
void ExportRecording();
void ToggleReadOnlyMode();
void ConnectWiiRemote(int id);
+#ifdef USE_RETRO_ACHIEVEMENTS
+ void OpenAchievements();
+#endif // USE_RETRO_ACHIEVEMENTS
void Step();
void StepOver();
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp
index 772fee9abf..e68673a205 100644
--- a/Source/Core/DolphinQt/MainWindow.cpp
+++ b/Source/Core/DolphinQt/MainWindow.cpp
@@ -658,6 +658,10 @@ void MainWindow::ConnectHotkeys()
movie.SetReadOnly(read_only);
emit ReadOnlyModeChanged(read_only);
});
+#ifdef USE_RETRO_ACHIEVEMENTS
+ connect(m_hotkey_scheduler, &HotkeyScheduler::OpenAchievements, this,
+ &MainWindow::ShowAchievementsWindow, Qt::QueuedConnection);
+#endif // USE_RETRO_ACHIEVEMENTS
connect(m_hotkey_scheduler, &HotkeyScheduler::Step, m_code_widget, &CodeWidget::Step);
connect(m_hotkey_scheduler, &HotkeyScheduler::StepOver, m_code_widget, &CodeWidget::StepOver);