|
|
|
@ -2,8 +2,11 @@ |
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#include <cstring>
|
|
|
|
#include <random>
|
|
|
|
|
|
|
|
#include <fmt/format.h>
|
|
|
|
|
|
|
|
#include "common/file_util.h"
|
|
|
|
#include "core/hle/service/acc/profile_manager.h"
|
|
|
|
#include "core/settings.h"
|
|
|
|
@ -39,6 +42,19 @@ UUID UUID::Generate() { |
|
|
|
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() { |
|
|
|
ParseUserSaveFile(); |
|
|
|
|
|
|
|
@ -325,11 +341,12 @@ void ProfileManager::ParseUserSaveFile() { |
|
|
|
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(), |
|
|
|
|