diff options
author | german77 <juangerman-13@hotmail.com> | 2023-09-11 07:17:50 +0200 |
---|---|---|
committer | german77 <juangerman-13@hotmail.com> | 2023-09-11 07:18:08 +0200 |
commit | 36290f9a0ac953ce57a663b5ba817d7e3bb5a33c (patch) | |
tree | 1d659cf2a3e5033ccdff54c9b8af764707db031c /src/core/hle/service/mii/mii_types.h | |
parent | service: mii: Move store data operations (diff) | |
download | yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.tar yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.tar.gz yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.tar.bz2 yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.tar.lz yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.tar.xz yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.tar.zst yuzu-36290f9a0ac953ce57a663b5ba817d7e3bb5a33c.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/mii/mii_types.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/core/hle/service/mii/mii_types.h b/src/core/hle/service/mii/mii_types.h index ff836dcf2..20d4e40ab 100644 --- a/src/core/hle/service/mii/mii_types.h +++ b/src/core/hle/service/mii/mii_types.h @@ -86,7 +86,34 @@ enum class SourceFlag : u32 { }; DECLARE_ENUM_FLAG_OPERATORS(SourceFlag); -using Nickname = std::array<char16_t, 10>; +struct Nickname { + static constexpr std::size_t MaxNameSize = 10; + std::array<char16_t, MaxNameSize> data; + + // Checks for null, non-zero terminated or dirty strings + bool IsValid() const { + if (data[0] == 0) { + return false; + } + + if (data[MaxNameSize] != 0) { + return false; + } + std::size_t index = 1; + while (data[index] != 0) { + index++; + } + while (index < MaxNameSize && data[index] == 0) { + index++; + } + return index == MaxNameSize; + } + + bool operator==(const Nickname& name) { + return data == name.data; + }; +}; +static_assert(sizeof(Nickname) == 0x14, "Nickname is an invalid size"); struct NfpStoreDataExtension { u8 faceline_color; |