Просмотр исходного кода

Merge pull request #1697 from lioncash/acc

acc/profile_manager: Minor cleanup-related changes
bunnei 7 лет назад
Родитель
Сommit
c6c74248fe
2 измененных файлов с 23 добавлено и 15 удалено
  1. 21 4
      src/core/hle/service/acc/profile_manager.cpp
  2. 2 11
      src/core/hle/service/acc/profile_manager.h

+ 21 - 4
src/core/hle/service/acc/profile_manager.cpp

@@ -2,8 +2,11 @@
 // Licensed under GPLv2 or any later version
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 // Refer to the license.txt file included.
 
 
+#include <cstring>
 #include <random>
 #include <random>
 
 
+#include <fmt/format.h>
+
 #include "common/file_util.h"
 #include "common/file_util.h"
 #include "core/hle/service/acc/profile_manager.h"
 #include "core/hle/service/acc/profile_manager.h"
 #include "core/settings.h"
 #include "core/settings.h"
@@ -39,6 +42,19 @@ UUID UUID::Generate() {
     return UUID{distribution(gen), distribution(gen)};
     return UUID{distribution(gen), distribution(gen)};
 }
 }
 
 
+std::string UUID::Format() const {
+    return fmt::format("0x{:016X}{:016X}", uuid[1], uuid[0]);
+}
+
+std::string UUID::FormatSwitch() const {
+    std::array<u8, 16> s{};
+    std::memcpy(s.data(), uuid.data(), sizeof(u128));
+    return fmt::format("{:02x}{:02x}{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{"
+                       ":02x}{:02x}{:02x}{:02x}{:02x}",
+                       s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11],
+                       s[12], s[13], s[14], s[15]);
+}
+
 ProfileManager::ProfileManager() {
 ProfileManager::ProfileManager() {
     ParseUserSaveFile();
     ParseUserSaveFile();
 
 
@@ -325,11 +341,12 @@ void ProfileManager::ParseUserSaveFile() {
         return;
         return;
     }
     }
 
 
-    for (std::size_t i = 0; i < MAX_USERS; ++i) {
-        const auto& user = data.users[i];
+    for (const auto& user : data.users) {
+        if (user.uuid == UUID(INVALID_UUID)) {
+            continue;
+        }
 
 
-        if (user.uuid != UUID(INVALID_UUID))
-            AddUser({user.uuid, user.username, user.timestamp, {}, false});
+        AddUser({user.uuid, user.username, user.timestamp, {}, false});
     }
     }
 
 
     std::stable_partition(profiles.begin(), profiles.end(),
     std::stable_partition(profiles.begin(), profiles.end(),

+ 2 - 11
src/core/hle/service/acc/profile_manager.h

@@ -42,18 +42,9 @@ struct UUID {
     void Invalidate() {
     void Invalidate() {
         uuid = INVALID_UUID;
         uuid = INVALID_UUID;
     }
     }
-    std::string Format() const {
-        return fmt::format("0x{:016X}{:016X}", uuid[1], uuid[0]);
-    }
 
 
-    std::string FormatSwitch() const {
-        std::array<u8, 16> s{};
-        std::memcpy(s.data(), uuid.data(), sizeof(u128));
-        return fmt::format("{:02x}{:02x}{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{"
-                           ":02x}{:02x}{:02x}{:02x}{:02x}",
-                           s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11],
-                           s[12], s[13], s[14], s[15]);
-    }
+    std::string Format() const;
+    std::string FormatSwitch() const;
 };
 };
 static_assert(sizeof(UUID) == 16, "UUID is an invalid size!");
 static_assert(sizeof(UUID) == 16, "UUID is an invalid size!");