summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/mii/mii_types.h
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2023-09-11 07:17:50 +0200
committergerman77 <juangerman-13@hotmail.com>2023-09-11 07:18:08 +0200
commit36290f9a0ac953ce57a663b5ba817d7e3bb5a33c (patch)
tree1d659cf2a3e5033ccdff54c9b8af764707db031c /src/core/hle/service/mii/mii_types.h
parentservice: mii: Move store data operations (diff)
downloadyuzu-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.h29
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;