From aeffd4b436dceb798b4ffc1f8babb350a741280a Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Tue, 9 Oct 2018 21:49:06 -0400
Subject: [PATCH] profile_manager: Load users from emulator settings

---
 src/core/hle/service/acc/profile_manager.cpp | 10 ++++++----
 src/core/hle/service/acc/profile_manager.h   |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp
index bcb3475db6..b4b4b52b79 100644
--- a/src/core/hle/service/acc/profile_manager.cpp
+++ b/src/core/hle/service/acc/profile_manager.cpp
@@ -23,10 +23,12 @@ const UUID& UUID::Generate() {
 }
 
 ProfileManager::ProfileManager() {
-    // TODO(ogniK): Create the default user we have for now until loading/saving users is added
-    auto user_uuid = UUID{1, 0};
-    ASSERT(CreateNewUser(user_uuid, Settings::values.username).IsSuccess());
-    OpenUser(user_uuid);
+    for (std::size_t i = 0; i < Settings::values.users.size(); ++i) {
+        const auto& val = Settings::values.users[i];
+        ASSERT(CreateNewUser(val.second, val.first).IsSuccess());
+    }
+
+    OpenUser(Settings::values.users[Settings::values.current_user].second);
 }
 
 ProfileManager::~ProfileManager() = default;
diff --git a/src/core/hle/service/acc/profile_manager.h b/src/core/hle/service/acc/profile_manager.h
index bffd4cf4d8..9ce3eb47cf 100644
--- a/src/core/hle/service/acc/profile_manager.h
+++ b/src/core/hle/service/acc/profile_manager.h
@@ -81,7 +81,7 @@ static_assert(sizeof(ProfileBase) == 0x38, "ProfileBase is an invalid size");
 /// objects
 class ProfileManager {
 public:
-    ProfileManager(); // TODO(ogniK): Load from system save
+    ProfileManager();
     ~ProfileManager();
 
     ResultCode AddUser(const ProfileInfo& user);
-- 
GitLab