summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorLillyJadeKatrin <lilly.kitty.1988@gmail.com>2024-04-02 19:33:52 -0400
committerLillyJadeKatrin <lilly.kitty.1988@gmail.com>2024-05-01 07:04:32 -0400
commit3bf5b8e610102d2db8b07e6821f7efea6ea5fc0a (patch)
tree5dc289f539be935b0208b341249b6af847bb760f /Source
parentb05028da1f97ed55a21ac1f87077d003fa568efb (diff)
Handle Reset and Server Error client events.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/AchievementManager.cpp18
-rw-r--r--Source/Core/Core/AchievementManager.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp
index 350a591389..32524b7469 100644
--- a/Source/Core/Core/AchievementManager.cpp
+++ b/Source/Core/Core/AchievementManager.cpp
@@ -776,6 +776,18 @@ void AchievementManager::HandleGameCompletedEvent(const rc_client_event_t* clien
nullptr);
}
+void AchievementManager::HandleResetEvent(const rc_client_event_t* client_event)
+{
+ INFO_LOG_FMT(ACHIEVEMENTS, "Reset requested by Achievement Mananger");
+ Core::Stop(Core::System::GetInstance());
+}
+
+void AchievementManager::HandleServerErrorEvent(const rc_client_event_t* client_event)
+{
+ ERROR_LOG_FMT(ACHIEVEMENTS, "RetroAchievements server error: {} {}",
+ client_event->server_error->api, client_event->server_error->error_message);
+}
+
static std::unique_ptr<OSD::Icon> DecodeBadgeToOSDIcon(const AchievementManager::Badge& badge)
{
if (badge.empty())
@@ -949,6 +961,12 @@ void AchievementManager::EventHandler(const rc_client_event_t* event, rc_client_
case RC_CLIENT_EVENT_GAME_COMPLETED:
HandleGameCompletedEvent(event, client);
break;
+ case RC_CLIENT_EVENT_RESET:
+ HandleResetEvent(event);
+ break;
+ case RC_CLIENT_EVENT_SERVER_ERROR:
+ HandleServerErrorEvent(event);
+ break;
default:
INFO_LOG_FMT(ACHIEVEMENTS, "Event triggered of unhandled type {}", event->type);
break;
diff --git a/Source/Core/Core/AchievementManager.h b/Source/Core/Core/AchievementManager.h
index 289cb4158f..41f09f94b7 100644
--- a/Source/Core/Core/AchievementManager.h
+++ b/Source/Core/Core/AchievementManager.h
@@ -169,6 +169,8 @@ private:
static void HandleAchievementChallengeIndicatorHideEvent(const rc_client_event_t* client_event);
static void HandleAchievementProgressIndicatorShowEvent(const rc_client_event_t* client_event);
static void HandleGameCompletedEvent(const rc_client_event_t* client_event, rc_client_t* client);
+ static void HandleResetEvent(const rc_client_event_t* client_event);
+ static void HandleServerErrorEvent(const rc_client_event_t* client_event);
static void Request(const rc_api_request_t* request, rc_client_server_callback_t callback,
void* callback_data, rc_client_t* client);