summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Narr the Reg2023-09-11 17:12:51 -0600
committerGravatar german772023-09-11 22:07:55 -0600
commit4d138b760b1eb09ee59dca40dba86112e3c8a39d (patch)
tree4fd79a542ac74328c907540e7593eb44d95db947
parentmii: service: Address review (diff)
downloadyuzu-4d138b760b1eb09ee59dca40dba86112e3c8a39d.tar.gz
yuzu-4d138b760b1eb09ee59dca40dba86112e3c8a39d.tar.xz
yuzu-4d138b760b1eb09ee59dca40dba86112e3c8a39d.zip
service: mii: Remove most magic values
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/mii/mii_types.h541
-rw-r--r--src/core/hle/service/mii/types/char_info.cpp170
-rw-r--r--src/core/hle/service/mii/types/char_info.h96
-rw-r--r--src/core/hle/service/mii/types/core_data.cpp272
-rw-r--r--src/core/hle/service/mii/types/core_data.h91
-rw-r--r--src/core/hle/service/mii/types/raw_data.cpp976
-rw-r--r--src/core/hle/service/mii/types/raw_data.h16
-rw-r--r--src/core/hle/service/mii/types/store_data.cpp138
-rw-r--r--src/core/hle/service/mii/types/store_data.h78
-rw-r--r--src/core/hle/service/mii/types/ver3_store_data.cpp228
10 files changed, 1537 insertions, 1069 deletions
diff --git a/src/core/hle/service/mii/mii_types.h b/src/core/hle/service/mii/mii_types.h
index 8fc827b5a..95476f745 100644
--- a/src/core/hle/service/mii/mii_types.h
+++ b/src/core/hle/service/mii/mii_types.h
@@ -13,65 +13,526 @@
13 13
14namespace Service::Mii { 14namespace Service::Mii {
15 15
16enum class Age : u32 { 16constexpr u8 MaxHeight = 127;
17constexpr u8 MaxBuild = 127;
18constexpr u8 MaxType = 1;
19constexpr u8 MaxRegionMove = 3;
20constexpr u8 MaxEyeScale = 7;
21constexpr u8 MaxEyeAspect = 6;
22constexpr u8 MaxEyeRotate = 7;
23constexpr u8 MaxEyeX = 12;
24constexpr u8 MaxEyeY = 18;
25constexpr u8 MaxEyebrowScale = 8;
26constexpr u8 MaxEyebrowAspect = 6;
27constexpr u8 MaxEyebrowRotate = 11;
28constexpr u8 MaxEyebrowX = 12;
29constexpr u8 MaxEyebrowY = 18;
30constexpr u8 MaxNoseScale = 8;
31constexpr u8 MaxNoseY = 18;
32constexpr u8 MaxMouthScale = 8;
33constexpr u8 MaxMoutAspect = 6;
34constexpr u8 MaxMouthY = 18;
35constexpr u8 MaxMustacheScale = 8;
36constexpr u8 MasMustacheY = 16;
37constexpr u8 MaxGlassScale = 7;
38constexpr u8 MaxGlassY = 20;
39constexpr u8 MaxMoleScale = 8;
40constexpr u8 MaxMoleX = 16;
41constexpr u8 MaxMoleY = 30;
42constexpr u8 MaxVer3CommonColor = 7;
43constexpr u8 MaxVer3GlassType = 8;
44
45enum class Age : u8 {
17 Young, 46 Young,
18 Normal, 47 Normal,
19 Old, 48 Old,
20 All, 49 All, // Default
50
51 Max = All,
52};
53
54enum class Gender : u8 {
55 Male,
56 Female,
57 All, // Default
58
59 Max = Female,
21}; 60};
22 61
23enum class BeardType : u32 { 62enum class Race : u8 {
63 Black,
64 White,
65 Asian,
66 All, // Default
67
68 Max = All,
69};
70
71enum class HairType : u8 {
72 NormalLong, // Default
73 NormalShort,
74 NormalMedium,
75 NormalExtraLong,
76 NormalLongBottom,
77 NormalTwoPeaks,
78 PartingLong,
79 FrontLock,
80 PartingShort,
81 PartingExtraLongCurved,
82 PartingExtraLong,
83 PartingMiddleLong,
84 PartingSquared,
85 PartingLongBottom,
86 PeaksTop,
87 PeaksSquared,
88 PartingPeaks,
89 PeaksLongBottom,
90 Peaks,
91 PeaksRounded,
92 PeaksSide,
93 PeaksMedium,
94 PeaksLong,
95 PeaksRoundedLong,
96 PartingFrontPeaks,
97 PartingLongFront,
98 PartingLongRounded,
99 PartingFrontPeaksLong,
100 PartingExtraLongRounded,
101 LongRounded,
102 NormalUnknown1,
103 NormalUnknown2,
104 NormalUnknown3,
105 NormalUnknown4,
106 NormalUnknown5,
107 NormalUnknown6,
108 DreadLocks,
109 PlatedMats,
110 Caps,
111 Afro,
112 PlatedMatsLong,
113 Beanie,
114 Short,
115 ShortTopLongSide,
116 ShortUnknown1,
117 ShortUnknown2,
118 MilitaryParting,
119 Military,
120 ShortUnknown3,
121 ShortUnknown4,
122 ShortUnknown5,
123 ShortUnknown6,
124 NoneTop,
24 None, 125 None,
25 Beard1, 126 LongUnknown1,
26 Beard2, 127 LongUnknown2,
27 Beard3, 128 LongUnknown3,
28 Beard4, 129 LongUnknown4,
29 Beard5, 130 LongUnknown5,
131 LongUnknown6,
132 LongUnknown7,
133 LongUnknown8,
134 LongUnknown9,
135 LongUnknown10,
136 LongUnknown11,
137 LongUnknown12,
138 LongUnknown13,
139 LongUnknown14,
140 LongUnknown15,
141 LongUnknown16,
142 LongUnknown17,
143 LongUnknown18,
144 LongUnknown19,
145 LongUnknown20,
146 LongUnknown21,
147 LongUnknown22,
148 LongUnknown23,
149 LongUnknown24,
150 LongUnknown25,
151 LongUnknown26,
152 LongUnknown27,
153 LongUnknown28,
154 LongUnknown29,
155 LongUnknown30,
156 LongUnknown31,
157 LongUnknown32,
158 LongUnknown33,
159 LongUnknown34,
160 LongUnknown35,
161 LongUnknown36,
162 LongUnknown37,
163 LongUnknown38,
164 LongUnknown39,
165 LongUnknown40,
166 LongUnknown41,
167 LongUnknown42,
168 LongUnknown43,
169 LongUnknown44,
170 LongUnknown45,
171 LongUnknown46,
172 LongUnknown47,
173 LongUnknown48,
174 LongUnknown49,
175 LongUnknown50,
176 LongUnknown51,
177 LongUnknown52,
178 LongUnknown53,
179 LongUnknown54,
180 LongUnknown55,
181 LongUnknown56,
182 LongUnknown57,
183 LongUnknown58,
184 LongUnknown59,
185 LongUnknown60,
186 LongUnknown61,
187 LongUnknown62,
188 LongUnknown63,
189 LongUnknown64,
190 LongUnknown65,
191 LongUnknown66,
192 TwoMediumFrontStrandsOneLongBackPonyTail,
193 TwoFrontStrandsLongBackPonyTail,
194 PartingFrontTwoLongBackPonyTails,
195 TwoFrontStrandsOneLongBackPonyTail,
196 LongBackPonyTail,
197 LongFrontTwoLongBackPonyTails,
198 StrandsTwoShortSidedPonyTails,
199 TwoMediumSidedPonyTails,
200 ShortFrontTwoBackPonyTails,
201 TwoShortSidedPonyTails,
202 TwoLongSidedPonyTails,
203 LongFrontTwoBackPonyTails,
204
205 Max = LongFrontTwoBackPonyTails,
30}; 206};
31 207
32enum class BeardAndMustacheFlag : u32 { 208enum class MoleType : u8 {
33 Beard = 1, 209 None, // Default
34 Mustache, 210 OneDot,
35 All = Beard | Mustache, 211
212 Max = OneDot,
213};
214
215enum class HairFlip : u8 {
216 Left, // Default
217 Right,
218
219 Max = Right,
220};
221
222enum class CommonColor : u8 {
223 // For simplicity common colors aren't listed
224 Max = 99,
225 Count = 100,
226};
227
228enum class FavoriteColor : u8 {
229 Red, // Default
230 Orange,
231 Yellow,
232 LimeGreen,
233 Green,
234 Blue,
235 LightBlue,
236 Pink,
237 Purple,
238 Brown,
239 White,
240 Black,
241
242 Max = Black,
243};
244
245enum class EyeType : u8 {
246 Normal, // Default
247 NormalLash,
248 WhiteLash,
249 WhiteNoBottom,
250 OvalAngledWhite,
251 AngryWhite,
252 DotLashType1,
253 Line,
254 DotLine,
255 OvalWhite,
256 RoundedWhite,
257 NormalShadow,
258 CircleWhite,
259 Circle,
260 CircleWhiteStroke,
261 NormalOvalNoBottom,
262 NormalOvalLarge,
263 NormalRoundedNoBottom,
264 SmallLash,
265 Small,
266 TwoSmall,
267 NormalLongLash,
268 WhiteTwoLashes,
269 WhiteThreeLashes,
270 DotAngry,
271 DotAngled,
272 Oval,
273 SmallWhite,
274 WhiteAngledNoBottom,
275 WhiteAngledNoLeft,
276 SmallWhiteTwoLashes,
277 LeafWhiteLash,
278 WhiteLargeNoBottom,
279 Dot,
280 DotLashType2,
281 DotThreeLashes,
282 WhiteOvalTop,
283 WhiteOvalBottom,
284 WhiteOvalBottomFlat,
285 WhiteOvalTwoLashes,
286 WhiteOvalThreeLashes,
287 WhiteOvalNoBottomTwoLashes,
288 DotWhite,
289 WhiteOvalTopFlat,
290 WhiteThinLeaf,
291 StarThreeLashes,
292 LineTwoLashes,
293 CrowsFeet,
294 WhiteNoBottomFlat,
295 WhiteNoBottomRounded,
296 WhiteSmallBottomLine,
297 WhiteNoBottomLash,
298 WhiteNoPartialBottomLash,
299 WhiteOvalBottomLine,
300 WhiteNoBottomLashTopLine,
301 WhiteNoPartialBottomTwoLashes,
302 NormalTopLine,
303 WhiteOvalLash,
304 RoundTired,
305 WhiteLarge,
306
307 Max = WhiteLarge,
308};
309
310enum class MouthType : u8 {
311 Neutral, // Default
312 NeutralLips,
313 Smile,
314 SmileStroke,
315 SmileTeeth,
316 LipsSmall,
317 LipsLarge,
318 Wave,
319 WaveAngrySmall,
320 NeutralStrokeLarge,
321 TeethSurprised,
322 LipsExtraLarge,
323 LipsUp,
324 NeutralDown,
325 Surprised,
326 TeethMiddle,
327 NeutralStroke,
328 LipsExtraSmall,
329 Malicious,
330 LipsDual,
331 NeutralComma,
332 NeutralUp,
333 TeethLarge,
334 WaveAngry,
335 LipsSexy,
336 SmileInverted,
337 LipsSexyOutline,
338 SmileRounded,
339 LipsTeeth,
340 NeutralOpen,
341 TeethRounded,
342 WaveAngrySmallInverted,
343 NeutralCommaInverted,
344 TeethFull,
345 SmileDownLine,
346 Kiss,
347
348 Max = Kiss,
36}; 349};
37DECLARE_ENUM_FLAG_OPERATORS(BeardAndMustacheFlag);
38 350
39enum class FontRegion : u32 { 351enum class FontRegion : u8 {
40 Standard, 352 Standard, // Default
41 China, 353 China,
42 Korea, 354 Korea,
43 Taiwan, 355 Taiwan,
356
357 Max = Taiwan,
44}; 358};
45 359
46enum class Gender : u32 { 360enum class FacelineType : u8 {
47 Male, 361 Sharp, // Default
48 Female, 362 Rounded,
49 All, 363 SharpRounded,
50 Maximum = Female, 364 SharpRoundedSmall,
365 Large,
366 LargeRounded,
367 SharpSmall,
368 Flat,
369 Bump,
370 Angular,
371 FlatRounded,
372 AngularSmall,
373
374 Max = AngularSmall,
51}; 375};
52 376
53enum class HairFlip : u32 { 377enum class FacelineColor : u8 {
54 Left, 378 Beige, // Default
55 Right, 379 WarmBeige,
56 Maximum = Right, 380 Natural,
381 Honey,
382 Chestnut,
383 Porcelain,
384 Ivory,
385 WarmIvory,
386 Almond,
387 Espresso,
388
389 Max = Espresso,
390 Count = Max + 1,
57}; 391};
58 392
59enum class MustacheType : u32 { 393enum class FacelineWrinkle : u8 {
394 None, // Default
395 TearTroughs,
396 FacialPain,
397 Cheeks,
398 Folds,
399 UnderTheEyes,
400 SplitChin,
401 Chin,
402 BrowDroop,
403 MouthFrown,
404 CrowsFeet,
405 FoldsCrowsFrown,
406
407 Max = FoldsCrowsFrown,
408};
409
410enum class FacelineMake : u8 {
411 None, // Default
412 CheekPorcelain,
413 CheekNatural,
414 EyeShadowBlue,
415 CheekBlushPorcelain,
416 CheekBlushNatural,
417 CheekPorcelainEyeShadowBlue,
418 CheekPorcelainEyeShadowNatural,
419 CheekBlushPorcelainEyeShadowEspresso,
420 Freckles,
421 LionsManeBeard,
422 StubbleBeard,
423
424 Max = StubbleBeard,
425};
426
427enum class EyebrowType : u8 {
428 FlatAngledLarge, // Default
429 LowArchRoundedThin,
430 SoftAngledLarge,
431 MediumArchRoundedThin,
432 RoundedMedium,
433 LowArchMedium,
434 RoundedThin,
435 UpThin,
436 MediumArchRoundedMedium,
437 RoundedLarge,
438 UpLarge,
439 FlatAngledLargeInverted,
440 MediumArchFlat,
441 AngledThin,
442 HorizontalLarge,
443 HighArchFlat,
444 Flat,
445 MediumArchLarge,
446 LowArchThin,
447 RoundedThinInverted,
448 HighArchLarge,
449 Hairy,
450 Dotted,
60 None, 451 None,
61 Mustache1, 452
62 Mustache2, 453 Max = None,
63 Mustache3,
64 Mustache4,
65 Mustache5,
66}; 454};
67 455
68enum class Race : u32 { 456enum class NoseType : u8 {
69 Black, 457 Normal, // Default
70 White, 458 Rounded,
71 Asian, 459 Dot,
72 All, 460 Arrow,
461 Roman,
462 Triangle,
463 Button,
464 RoundedInverted,
465 Potato,
466 Grecian,
467 Snub,
468 Aquiline,
469 ArrowLeft,
470 RoundedLarge,
471 Hooked,
472 Fat,
473 Droopy,
474 ArrowLarge,
475
476 Max = ArrowLarge,
73}; 477};
74 478
479enum class BeardType : u8 {
480 None,
481 Goatee,
482 GoateeLong,
483 LionsManeLong,
484 LionsMane,
485 Full,
486
487 Min = Goatee,
488 Max = Full,
489};
490
491enum class MustacheType : u8 {
492 None,
493 Walrus,
494 Pencil,
495 Horseshoe,
496 Normal,
497 Toothbrush,
498
499 Min = Walrus,
500 Max = Toothbrush,
501};
502
503enum class GlassType : u8 {
504 None,
505 Oval,
506 Wayfarer,
507 Rectangle,
508 TopRimless,
509 Rounded,
510 Oversized,
511 CatEye,
512 Square,
513 BottomRimless,
514 SemiOpaqueRounded,
515 SemiOpaqueCatEye,
516 SemiOpaqueOval,
517 SemiOpaqueRectangle,
518 SemiOpaqueAviator,
519 OpaqueRounded,
520 OpaqueCatEye,
521 OpaqueOval,
522 OpaqueRectangle,
523 OpaqueAviator,
524
525 Max = OpaqueAviator,
526 Count = Max + 1,
527};
528
529enum class BeardAndMustacheFlag : u32 {
530 Beard = 1,
531 Mustache,
532 All = Beard | Mustache,
533};
534DECLARE_ENUM_FLAG_OPERATORS(BeardAndMustacheFlag);
535
75enum class Source : u32 { 536enum class Source : u32 {
76 Database = 0, 537 Database = 0,
77 Default = 1, 538 Default = 1,
@@ -173,7 +634,7 @@ struct DefaultMii {
173 u32 face_makeup{}; 634 u32 face_makeup{};
174 u32 hair_type{}; 635 u32 hair_type{};
175 u32 hair_color{}; 636 u32 hair_color{};
176 HairFlip hair_flip{}; 637 u32 hair_flip{};
177 u32 eye_type{}; 638 u32 eye_type{};
178 u32 eye_color{}; 639 u32 eye_color{};
179 u32 eye_scale{}; 640 u32 eye_scale{};
@@ -196,8 +657,8 @@ struct DefaultMii {
196 u32 mouth_scale{}; 657 u32 mouth_scale{};
197 u32 mouth_aspect{}; 658 u32 mouth_aspect{};
198 u32 mouth_y{}; 659 u32 mouth_y{};
199 MustacheType mustache_type{}; 660 u32 mustache_type{};
200 BeardType beard_type{}; 661 u32 beard_type{};
201 u32 beard_color{}; 662 u32 beard_color{};
202 u32 mustache_scale{}; 663 u32 mustache_scale{};
203 u32 mustache_y{}; 664 u32 mustache_y{};
@@ -211,10 +672,10 @@ struct DefaultMii {
211 u32 mole_y{}; 672 u32 mole_y{};
212 u32 height{}; 673 u32 height{};
213 u32 weight{}; 674 u32 weight{};
214 Gender gender{}; 675 u32 gender{};
215 u32 favorite_color{}; 676 u32 favorite_color{};
216 u32 region_move{}; 677 u32 region_move{};
217 FontRegion font_region{}; 678 u32 font_region{};
218 u32 type{}; 679 u32 type{};
219 Nickname nickname; 680 Nickname nickname;
220}; 681};
diff --git a/src/core/hle/service/mii/types/char_info.cpp b/src/core/hle/service/mii/types/char_info.cpp
index cd7154c91..bb948c628 100644
--- a/src/core/hle/service/mii/types/char_info.cpp
+++ b/src/core/hle/service/mii/types/char_info.cpp
@@ -10,7 +10,7 @@ void CharInfo::SetFromStoreData(const StoreData& store_data) {
10 name = store_data.GetNickname(); 10 name = store_data.GetNickname();
11 null_terminator = '\0'; 11 null_terminator = '\0';
12 create_id = store_data.GetCreateId(); 12 create_id = store_data.GetCreateId();
13 font_region = static_cast<u8>(store_data.GetFontRegion()); 13 font_region = store_data.GetFontRegion();
14 favorite_color = store_data.GetFavoriteColor(); 14 favorite_color = store_data.GetFavoriteColor();
15 gender = store_data.GetGender(); 15 gender = store_data.GetGender();
16 height = store_data.GetHeight(); 16 height = store_data.GetHeight();
@@ -51,10 +51,10 @@ void CharInfo::SetFromStoreData(const StoreData& store_data) {
51 mustache_type = store_data.GetMustacheType(); 51 mustache_type = store_data.GetMustacheType();
52 mustache_scale = store_data.GetMustacheScale(); 52 mustache_scale = store_data.GetMustacheScale();
53 mustache_y = store_data.GetMustacheY(); 53 mustache_y = store_data.GetMustacheY();
54 glasses_type = store_data.GetGlassType(); 54 glass_type = store_data.GetGlassType();
55 glasses_color = store_data.GetGlassColor(); 55 glass_color = store_data.GetGlassColor();
56 glasses_scale = store_data.GetGlassScale(); 56 glass_scale = store_data.GetGlassScale();
57 glasses_y = store_data.GetGlassY(); 57 glass_y = store_data.GetGlassY();
58 mole_type = store_data.GetMoleType(); 58 mole_type = store_data.GetMoleType();
59 mole_scale = store_data.GetMoleScale(); 59 mole_scale = store_data.GetMoleScale();
60 mole_x = store_data.GetMoleX(); 60 mole_x = store_data.GetMoleX();
@@ -69,151 +69,151 @@ ValidationResult CharInfo::Verify() const {
69 if (!name.IsValid()) { 69 if (!name.IsValid()) {
70 return ValidationResult::InvalidName; 70 return ValidationResult::InvalidName;
71 } 71 }
72 if (3 < font_region) { 72 if (font_region > FontRegion::Max) {
73 return ValidationResult::InvalidFont; 73 return ValidationResult::InvalidFont;
74 } 74 }
75 if (0xb < favorite_color) { 75 if (favorite_color > FavoriteColor::Max) {
76 return ValidationResult::InvalidColor; 76 return ValidationResult::InvalidColor;
77 } 77 }
78 if (1 < gender) { 78 if (gender > Gender::Max) {
79 return ValidationResult::InvalidGender; 79 return ValidationResult::InvalidGender;
80 } 80 }
81 if (height > 0x7f) { 81 if (height > MaxHeight) {
82 return ValidationResult::InvalidHeight; 82 return ValidationResult::InvalidHeight;
83 } 83 }
84 if (build > 0x7f) { 84 if (build > MaxBuild) {
85 return ValidationResult::InvalidBuild; 85 return ValidationResult::InvalidBuild;
86 } 86 }
87 if (1 < type) { 87 if (type > MaxType) {
88 return ValidationResult::InvalidType; 88 return ValidationResult::InvalidType;
89 } 89 }
90 if (3 < region_move) { 90 if (region_move > MaxRegionMove) {
91 return ValidationResult::InvalidRegionMove; 91 return ValidationResult::InvalidRegionMove;
92 } 92 }
93 if (0xb < faceline_type) { 93 if (faceline_type > FacelineType::Max) {
94 return ValidationResult::InvalidFacelineType; 94 return ValidationResult::InvalidFacelineType;
95 } 95 }
96 if (9 < faceline_color) { 96 if (faceline_color > FacelineColor::Max) {
97 return ValidationResult::InvalidFacelineColor; 97 return ValidationResult::InvalidFacelineColor;
98 } 98 }
99 if (0xb < faceline_wrinkle) { 99 if (faceline_wrinkle > FacelineWrinkle::Max) {
100 return ValidationResult::InvalidFacelineWrinkle; 100 return ValidationResult::InvalidFacelineWrinkle;
101 } 101 }
102 if (0xb < faceline_make) { 102 if (faceline_make > FacelineMake::Max) {
103 return ValidationResult::InvalidFacelineMake; 103 return ValidationResult::InvalidFacelineMake;
104 } 104 }
105 if (0x83 < hair_type) { 105 if (hair_type > HairType::Max) {
106 return ValidationResult::InvalidHairType; 106 return ValidationResult::InvalidHairType;
107 } 107 }
108 if (99 < hair_color) { 108 if (hair_color > CommonColor::Max) {
109 return ValidationResult::InvalidHairColor; 109 return ValidationResult::InvalidHairColor;
110 } 110 }
111 if (1 < hair_flip) { 111 if (hair_flip > HairFlip::Max) {
112 return ValidationResult::InvalidHairFlip; 112 return ValidationResult::InvalidHairFlip;
113 } 113 }
114 if (0x3b < eye_type) { 114 if (eye_type > EyeType::Max) {
115 return ValidationResult::InvalidEyeType; 115 return ValidationResult::InvalidEyeType;
116 } 116 }
117 if (99 < eye_color) { 117 if (eye_color > CommonColor::Max) {
118 return ValidationResult::InvalidEyeColor; 118 return ValidationResult::InvalidEyeColor;
119 } 119 }
120 if (7 < eye_scale) { 120 if (eye_scale > MaxEyeScale) {
121 return ValidationResult::InvalidEyeScale; 121 return ValidationResult::InvalidEyeScale;
122 } 122 }
123 if (6 < eye_aspect) { 123 if (eye_aspect > MaxEyeAspect) {
124 return ValidationResult::InvalidEyeAspect; 124 return ValidationResult::InvalidEyeAspect;
125 } 125 }
126 if (7 < eye_rotate) { 126 if (eye_rotate > MaxEyeX) {
127 return ValidationResult::InvalidEyeRotate; 127 return ValidationResult::InvalidEyeRotate;
128 } 128 }
129 if (0xc < eye_x) { 129 if (eye_x > MaxEyeX) {
130 return ValidationResult::InvalidEyeX; 130 return ValidationResult::InvalidEyeX;
131 } 131 }
132 if (0x12 < eye_y) { 132 if (eye_y > MaxEyeY) {
133 return ValidationResult::InvalidEyeY; 133 return ValidationResult::InvalidEyeY;
134 } 134 }
135 if (0x17 < eyebrow_type) { 135 if (eyebrow_type > EyebrowType::Max) {
136 return ValidationResult::InvalidEyebrowType; 136 return ValidationResult::InvalidEyebrowType;
137 } 137 }
138 if (99 < eyebrow_color) { 138 if (eyebrow_color > CommonColor::Max) {
139 return ValidationResult::InvalidEyebrowColor; 139 return ValidationResult::InvalidEyebrowColor;
140 } 140 }
141 if (8 < eyebrow_scale) { 141 if (eyebrow_scale > MaxEyebrowScale) {
142 return ValidationResult::InvalidEyebrowScale; 142 return ValidationResult::InvalidEyebrowScale;
143 } 143 }
144 if (6 < eyebrow_aspect) { 144 if (eyebrow_aspect > MaxEyebrowAspect) {
145 return ValidationResult::InvalidEyebrowAspect; 145 return ValidationResult::InvalidEyebrowAspect;
146 } 146 }
147 if (0xb < eyebrow_rotate) { 147 if (eyebrow_rotate > MaxEyebrowRotate) {
148 return ValidationResult::InvalidEyebrowRotate; 148 return ValidationResult::InvalidEyebrowRotate;
149 } 149 }
150 if (0xc < eyebrow_x) { 150 if (eyebrow_x > MaxEyebrowX) {
151 return ValidationResult::InvalidEyebrowX; 151 return ValidationResult::InvalidEyebrowX;
152 } 152 }
153 if (0xf < eyebrow_y - 3) { 153 if (eyebrow_y > MaxEyebrowY) {
154 return ValidationResult::InvalidEyebrowY; 154 return ValidationResult::InvalidEyebrowY;
155 } 155 }
156 if (0x11 < nose_type) { 156 if (nose_type > NoseType::Max) {
157 return ValidationResult::InvalidNoseType; 157 return ValidationResult::InvalidNoseType;
158 } 158 }
159 if (nose_scale >= 9) { 159 if (nose_scale > MaxNoseScale) {
160 return ValidationResult::InvalidNoseScale; 160 return ValidationResult::InvalidNoseScale;
161 } 161 }
162 if (0x12 < nose_y) { 162 if (nose_y > MaxNoseY) {
163 return ValidationResult::InvalidNoseY; 163 return ValidationResult::InvalidNoseY;
164 } 164 }
165 if (0x23 < mouth_type) { 165 if (mouth_type > MouthType::Max) {
166 return ValidationResult::InvalidMouthType; 166 return ValidationResult::InvalidMouthType;
167 } 167 }
168 if (99 < mouth_color) { 168 if (mouth_color > CommonColor::Max) {
169 return ValidationResult::InvalidMouthColor; 169 return ValidationResult::InvalidMouthColor;
170 } 170 }
171 if (8 < mouth_scale) { 171 if (mouth_scale > MaxMouthScale) {
172 return ValidationResult::InvalidMouthScale; 172 return ValidationResult::InvalidMouthScale;
173 } 173 }
174 if (6 < mouth_aspect) { 174 if (mouth_aspect > MaxMoutAspect) {
175 return ValidationResult::InvalidMouthAspect; 175 return ValidationResult::InvalidMouthAspect;
176 } 176 }
177 if (0x12 < mouth_y) { 177 if (mouth_y > MaxMouthY) {
178 return ValidationResult::InvalidMoleY; 178 return ValidationResult::InvalidMoleY;
179 } 179 }
180 if (99 < beard_color) { 180 if (beard_color > CommonColor::Max) {
181 return ValidationResult::InvalidBeardColor; 181 return ValidationResult::InvalidBeardColor;
182 } 182 }
183 if (5 < beard_type) { 183 if (beard_type > BeardType::Max) {
184 return ValidationResult::InvalidBeardType; 184 return ValidationResult::InvalidBeardType;
185 } 185 }
186 if (5 < mustache_type) { 186 if (mustache_type > MustacheType::Max) {
187 return ValidationResult::InvalidMustacheType; 187 return ValidationResult::InvalidMustacheType;
188 } 188 }
189 if (8 < mustache_scale) { 189 if (mustache_scale > MaxMustacheScale) {
190 return ValidationResult::InvalidMustacheScale; 190 return ValidationResult::InvalidMustacheScale;
191 } 191 }
192 if (0x10 < mustache_y) { 192 if (mustache_y > MasMustacheY) {
193 return ValidationResult::InvalidMustacheY; 193 return ValidationResult::InvalidMustacheY;
194 } 194 }
195 if (0x13 < glasses_type) { 195 if (glass_type > GlassType::Max) {
196 return ValidationResult::InvalidGlassType; 196 return ValidationResult::InvalidGlassType;
197 } 197 }
198 if (99 < glasses_color) { 198 if (glass_color > CommonColor::Max) {
199 return ValidationResult::InvalidGlassColor; 199 return ValidationResult::InvalidGlassColor;
200 } 200 }
201 if (7 < glasses_scale) { 201 if (glass_scale > MaxGlassScale) {
202 return ValidationResult::InvalidGlassScale; 202 return ValidationResult::InvalidGlassScale;
203 } 203 }
204 if (0x14 < glasses_y) { 204 if (glass_y > MaxGlassY) {
205 return ValidationResult::InvalidGlassY; 205 return ValidationResult::InvalidGlassY;
206 } 206 }
207 if (mole_type >= 2) { 207 if (mole_type > MoleType::Max) {
208 return ValidationResult::InvalidMoleType; 208 return ValidationResult::InvalidMoleType;
209 } 209 }
210 if (8 < mole_scale) { 210 if (mole_scale > MaxMoleScale) {
211 return ValidationResult::InvalidMoleScale; 211 return ValidationResult::InvalidMoleScale;
212 } 212 }
213 if (mole_x >= 0x11) { 213 if (mole_x > MaxMoleX) {
214 return ValidationResult::InvalidMoleX; 214 return ValidationResult::InvalidMoleX;
215 } 215 }
216 if (0x1e < mole_y) { 216 if (mole_y > MaxMoleY) {
217 return ValidationResult::InvalidMoleY; 217 return ValidationResult::InvalidMoleY;
218 } 218 }
219 return ValidationResult::NoErrors; 219 return ValidationResult::NoErrors;
@@ -227,15 +227,15 @@ Nickname CharInfo::GetNickname() const {
227 return name; 227 return name;
228} 228}
229 229
230u8 CharInfo::GetFontRegion() const { 230FontRegion CharInfo::GetFontRegion() const {
231 return font_region; 231 return font_region;
232} 232}
233 233
234u8 CharInfo::GetFavoriteColor() const { 234FavoriteColor CharInfo::GetFavoriteColor() const {
235 return favorite_color; 235 return favorite_color;
236} 236}
237 237
238u8 CharInfo::GetGender() const { 238Gender CharInfo::GetGender() const {
239 return gender; 239 return gender;
240} 240}
241 241
@@ -255,39 +255,39 @@ u8 CharInfo::GetRegionMove() const {
255 return region_move; 255 return region_move;
256} 256}
257 257
258u8 CharInfo::GetFacelineType() const { 258FacelineType CharInfo::GetFacelineType() const {
259 return faceline_type; 259 return faceline_type;
260} 260}
261 261
262u8 CharInfo::GetFacelineColor() const { 262FacelineColor CharInfo::GetFacelineColor() const {
263 return faceline_color; 263 return faceline_color;
264} 264}
265 265
266u8 CharInfo::GetFacelineWrinkle() const { 266FacelineWrinkle CharInfo::GetFacelineWrinkle() const {
267 return faceline_wrinkle; 267 return faceline_wrinkle;
268} 268}
269 269
270u8 CharInfo::GetFacelineMake() const { 270FacelineMake CharInfo::GetFacelineMake() const {
271 return faceline_make; 271 return faceline_make;
272} 272}
273 273
274u8 CharInfo::GetHairType() const { 274HairType CharInfo::GetHairType() const {
275 return hair_type; 275 return hair_type;
276} 276}
277 277
278u8 CharInfo::GetHairColor() const { 278CommonColor CharInfo::GetHairColor() const {
279 return hair_color; 279 return hair_color;
280} 280}
281 281
282u8 CharInfo::GetHairFlip() const { 282HairFlip CharInfo::GetHairFlip() const {
283 return hair_flip; 283 return hair_flip;
284} 284}
285 285
286u8 CharInfo::GetEyeType() const { 286EyeType CharInfo::GetEyeType() const {
287 return eye_type; 287 return eye_type;
288} 288}
289 289
290u8 CharInfo::GetEyeColor() const { 290CommonColor CharInfo::GetEyeColor() const {
291 return eye_color; 291 return eye_color;
292} 292}
293 293
@@ -311,11 +311,11 @@ u8 CharInfo::GetEyeY() const {
311 return eye_y; 311 return eye_y;
312} 312}
313 313
314u8 CharInfo::GetEyebrowType() const { 314EyebrowType CharInfo::GetEyebrowType() const {
315 return eyebrow_type; 315 return eyebrow_type;
316} 316}
317 317
318u8 CharInfo::GetEyebrowColor() const { 318CommonColor CharInfo::GetEyebrowColor() const {
319 return eyebrow_color; 319 return eyebrow_color;
320} 320}
321 321
@@ -339,7 +339,7 @@ u8 CharInfo::GetEyebrowY() const {
339 return eyebrow_y; 339 return eyebrow_y;
340} 340}
341 341
342u8 CharInfo::GetNoseType() const { 342NoseType CharInfo::GetNoseType() const {
343 return nose_type; 343 return nose_type;
344} 344}
345 345
@@ -351,11 +351,11 @@ u8 CharInfo::GetNoseY() const {
351 return nose_y; 351 return nose_y;
352} 352}
353 353
354u8 CharInfo::GetMouthType() const { 354MouthType CharInfo::GetMouthType() const {
355 return mouth_type; 355 return mouth_type;
356} 356}
357 357
358u8 CharInfo::GetMouthColor() const { 358CommonColor CharInfo::GetMouthColor() const {
359 return mouth_color; 359 return mouth_color;
360} 360}
361 361
@@ -371,15 +371,15 @@ u8 CharInfo::GetMouthY() const {
371 return mouth_y; 371 return mouth_y;
372} 372}
373 373
374u8 CharInfo::GetBeardColor() const { 374CommonColor CharInfo::GetBeardColor() const {
375 return beard_color; 375 return beard_color;
376} 376}
377 377
378u8 CharInfo::GetBeardType() const { 378BeardType CharInfo::GetBeardType() const {
379 return beard_type; 379 return beard_type;
380} 380}
381 381
382u8 CharInfo::GetMustacheType() const { 382MustacheType CharInfo::GetMustacheType() const {
383 return mustache_type; 383 return mustache_type;
384} 384}
385 385
@@ -391,23 +391,23 @@ u8 CharInfo::GetMustacheY() const {
391 return mustache_y; 391 return mustache_y;
392} 392}
393 393
394u8 CharInfo::GetGlassType() const { 394GlassType CharInfo::GetGlassType() const {
395 return glasses_type; 395 return glass_type;
396} 396}
397 397
398u8 CharInfo::GetGlassColor() const { 398CommonColor CharInfo::GetGlassColor() const {
399 return glasses_color; 399 return glass_color;
400} 400}
401 401
402u8 CharInfo::GetGlassScale() const { 402u8 CharInfo::GetGlassScale() const {
403 return glasses_scale; 403 return glass_scale;
404} 404}
405 405
406u8 CharInfo::GetGlassY() const { 406u8 CharInfo::GetGlassY() const {
407 return glasses_y; 407 return glass_y;
408} 408}
409 409
410u8 CharInfo::GetMoleType() const { 410MoleType CharInfo::GetMoleType() const {
411 return mole_type; 411 return mole_type;
412} 412}
413 413
@@ -468,10 +468,10 @@ bool CharInfo::operator==(const CharInfo& info) {
468 is_identical &= mustache_type == info.GetMustacheType(); 468 is_identical &= mustache_type == info.GetMustacheType();
469 is_identical &= mustache_scale == info.GetMustacheScale(); 469 is_identical &= mustache_scale == info.GetMustacheScale();
470 is_identical &= mustache_y == info.GetMustacheY(); 470 is_identical &= mustache_y == info.GetMustacheY();
471 is_identical &= glasses_type == info.GetGlassType(); 471 is_identical &= glass_type == info.GetGlassType();
472 is_identical &= glasses_color == info.GetGlassColor(); 472 is_identical &= glass_color == info.GetGlassColor();
473 is_identical &= glasses_scale == info.GetGlassScale(); 473 is_identical &= glass_scale == info.GetGlassScale();
474 is_identical &= glasses_y == info.GetGlassY(); 474 is_identical &= glass_y == info.GetGlassY();
475 is_identical &= mole_type == info.GetMoleType(); 475 is_identical &= mole_type == info.GetMoleType();
476 is_identical &= mole_scale == info.GetMoleScale(); 476 is_identical &= mole_scale == info.GetMoleScale();
477 is_identical &= mole_x == info.GetMoleX(); 477 is_identical &= mole_x == info.GetMoleX();
diff --git a/src/core/hle/service/mii/types/char_info.h b/src/core/hle/service/mii/types/char_info.h
index 65a7707d3..d069b221f 100644
--- a/src/core/hle/service/mii/types/char_info.h
+++ b/src/core/hle/service/mii/types/char_info.h
@@ -17,52 +17,52 @@ public:
17 17
18 Common::UUID GetCreateId() const; 18 Common::UUID GetCreateId() const;
19 Nickname GetNickname() const; 19 Nickname GetNickname() const;
20 u8 GetFontRegion() const; 20 FontRegion GetFontRegion() const;
21 u8 GetFavoriteColor() const; 21 FavoriteColor GetFavoriteColor() const;
22 u8 GetGender() const; 22 Gender GetGender() const;
23 u8 GetHeight() const; 23 u8 GetHeight() const;
24 u8 GetBuild() const; 24 u8 GetBuild() const;
25 u8 GetType() const; 25 u8 GetType() const;
26 u8 GetRegionMove() const; 26 u8 GetRegionMove() const;
27 u8 GetFacelineType() const; 27 FacelineType GetFacelineType() const;
28 u8 GetFacelineColor() const; 28 FacelineColor GetFacelineColor() const;
29 u8 GetFacelineWrinkle() const; 29 FacelineWrinkle GetFacelineWrinkle() const;
30 u8 GetFacelineMake() const; 30 FacelineMake GetFacelineMake() const;
31 u8 GetHairType() const; 31 HairType GetHairType() const;
32 u8 GetHairColor() const; 32 CommonColor GetHairColor() const;
33 u8 GetHairFlip() const; 33 HairFlip GetHairFlip() const;
34 u8 GetEyeType() const; 34 EyeType GetEyeType() const;
35 u8 GetEyeColor() const; 35 CommonColor GetEyeColor() const;
36 u8 GetEyeScale() const; 36 u8 GetEyeScale() const;
37 u8 GetEyeAspect() const; 37 u8 GetEyeAspect() const;
38 u8 GetEyeRotate() const; 38 u8 GetEyeRotate() const;
39 u8 GetEyeX() const; 39 u8 GetEyeX() const;
40 u8 GetEyeY() const; 40 u8 GetEyeY() const;
41 u8 GetEyebrowType() const; 41 EyebrowType GetEyebrowType() const;
42 u8 GetEyebrowColor() const; 42 CommonColor GetEyebrowColor() const;
43 u8 GetEyebrowScale() const; 43 u8 GetEyebrowScale() const;
44 u8 GetEyebrowAspect() const; 44 u8 GetEyebrowAspect() const;
45 u8 GetEyebrowRotate() const; 45 u8 GetEyebrowRotate() const;
46 u8 GetEyebrowX() const; 46 u8 GetEyebrowX() const;
47 u8 GetEyebrowY() const; 47 u8 GetEyebrowY() const;
48 u8 GetNoseType() const; 48 NoseType GetNoseType() const;
49 u8 GetNoseScale() const; 49 u8 GetNoseScale() const;
50 u8 GetNoseY() const; 50 u8 GetNoseY() const;
51 u8 GetMouthType() const; 51 MouthType GetMouthType() const;
52 u8 GetMouthColor() const; 52 CommonColor GetMouthColor() const;
53 u8 GetMouthScale() const; 53 u8 GetMouthScale() const;
54 u8 GetMouthAspect() const; 54 u8 GetMouthAspect() const;
55 u8 GetMouthY() const; 55 u8 GetMouthY() const;
56 u8 GetBeardColor() const; 56 CommonColor GetBeardColor() const;
57 u8 GetBeardType() const; 57 BeardType GetBeardType() const;
58 u8 GetMustacheType() const; 58 MustacheType GetMustacheType() const;
59 u8 GetMustacheScale() const; 59 u8 GetMustacheScale() const;
60 u8 GetMustacheY() const; 60 u8 GetMustacheY() const;
61 u8 GetGlassType() const; 61 GlassType GetGlassType() const;
62 u8 GetGlassColor() const; 62 CommonColor GetGlassColor() const;
63 u8 GetGlassScale() const; 63 u8 GetGlassScale() const;
64 u8 GetGlassY() const; 64 u8 GetGlassY() const;
65 u8 GetMoleType() const; 65 MoleType GetMoleType() const;
66 u8 GetMoleScale() const; 66 u8 GetMoleScale() const;
67 u8 GetMoleX() const; 67 u8 GetMoleX() const;
68 u8 GetMoleY() const; 68 u8 GetMoleY() const;
@@ -73,52 +73,52 @@ private:
73 Common::UUID create_id; 73 Common::UUID create_id;
74 Nickname name; 74 Nickname name;
75 u16 null_terminator; 75 u16 null_terminator;
76 u8 font_region; 76 FontRegion font_region;
77 u8 favorite_color; 77 FavoriteColor favorite_color;
78 u8 gender; 78 Gender gender;
79 u8 height; 79 u8 height;
80 u8 build; 80 u8 build;
81 u8 type; 81 u8 type;
82 u8 region_move; 82 u8 region_move;
83 u8 faceline_type; 83 FacelineType faceline_type;
84 u8 faceline_color; 84 FacelineColor faceline_color;
85 u8 faceline_wrinkle; 85 FacelineWrinkle faceline_wrinkle;
86 u8 faceline_make; 86 FacelineMake faceline_make;
87 u8 hair_type; 87 HairType hair_type;
88 u8 hair_color; 88 CommonColor hair_color;
89 u8 hair_flip; 89 HairFlip hair_flip;
90 u8 eye_type; 90 EyeType eye_type;
91 u8 eye_color; 91 CommonColor eye_color;
92 u8 eye_scale; 92 u8 eye_scale;
93 u8 eye_aspect; 93 u8 eye_aspect;
94 u8 eye_rotate; 94 u8 eye_rotate;
95 u8 eye_x; 95 u8 eye_x;
96 u8 eye_y; 96 u8 eye_y;
97 u8 eyebrow_type; 97 EyebrowType eyebrow_type;
98 u8 eyebrow_color; 98 CommonColor eyebrow_color;
99 u8 eyebrow_scale; 99 u8 eyebrow_scale;
100 u8 eyebrow_aspect; 100 u8 eyebrow_aspect;
101 u8 eyebrow_rotate; 101 u8 eyebrow_rotate;
102 u8 eyebrow_x; 102 u8 eyebrow_x;
103 u8 eyebrow_y; 103 u8 eyebrow_y;
104 u8 nose_type; 104 NoseType nose_type;
105 u8 nose_scale; 105 u8 nose_scale;
106 u8 nose_y; 106 u8 nose_y;
107 u8 mouth_type; 107 MouthType mouth_type;
108 u8 mouth_color; 108 CommonColor mouth_color;
109 u8 mouth_scale; 109 u8 mouth_scale;
110 u8 mouth_aspect; 110 u8 mouth_aspect;
111 u8 mouth_y; 111 u8 mouth_y;
112 u8 beard_color; 112 CommonColor beard_color;
113 u8 beard_type; 113 BeardType beard_type;
114 u8 mustache_type; 114 MustacheType mustache_type;
115 u8 mustache_scale; 115 u8 mustache_scale;
116 u8 mustache_y; 116 u8 mustache_y;
117 u8 glasses_type; 117 GlassType glass_type;
118 u8 glasses_color; 118 CommonColor glass_color;
119 u8 glasses_scale; 119 u8 glass_scale;
120 u8 glasses_y; 120 u8 glass_y;
121 u8 mole_type; 121 MoleType mole_type;
122 u8 mole_scale; 122 u8 mole_scale;
123 u8 mole_x; 123 u8 mole_x;
124 u8 mole_y; 124 u8 mole_y;
diff --git a/src/core/hle/service/mii/types/core_data.cpp b/src/core/hle/service/mii/types/core_data.cpp
index de82481b0..659288b51 100644
--- a/src/core/hle/service/mii/types/core_data.cpp
+++ b/src/core/hle/service/mii/types/core_data.cpp
@@ -1,6 +1,7 @@
1// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project 1// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
2// SPDX-License-Identifier: GPL-2.0-or-later 2// SPDX-License-Identifier: GPL-2.0-or-later
3 3
4#include "common/assert.h"
4#include "core/hle/service/mii/mii_util.h" 5#include "core/hle/service/mii/mii_util.h"
5#include "core/hle/service/mii/types/core_data.h" 6#include "core/hle/service/mii/types/core_data.h"
6#include "core/hle/service/mii/types/raw_data.h" 7#include "core/hle/service/mii/types/raw_data.h"
@@ -14,17 +15,9 @@ void CoreData::SetDefault() {
14 15
15void CoreData::BuildRandom(Age age, Gender gender, Race race) { 16void CoreData::BuildRandom(Age age, Gender gender, Race race) {
16 if (gender == Gender::All) { 17 if (gender == Gender::All) {
17 gender = MiiUtil::GetRandomValue<Gender>(Gender::Maximum); 18 gender = MiiUtil::GetRandomValue(Gender::Max);
18 } 19 }
19 20
20 data.gender.Assign(gender);
21 data.favorite_color.Assign(MiiUtil::GetRandomValue<u8>(11));
22 data.region_move.Assign(0);
23 data.font_region.Assign(FontRegion::Standard);
24 data.type.Assign(0);
25 data.height.Assign(64);
26 data.build.Assign(64);
27
28 if (age == Age::All) { 21 if (age == Age::All) {
29 const auto random{MiiUtil::GetRandomValue<int>(10)}; 22 const auto random{MiiUtil::GetRandomValue<int>(10)};
30 if (random >= 8) { 23 if (random >= 8) {
@@ -47,6 +40,14 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
47 } 40 }
48 } 41 }
49 42
43 SetGender(gender);
44 SetFavoriteColor(MiiUtil::GetRandomValue(FavoriteColor::Max));
45 SetRegionMove(0);
46 SetFontRegion(FontRegion::Standard);
47 SetType(0);
48 SetHeight(64);
49 SetBuild(64);
50
50 u32 axis_y{}; 51 u32 axis_y{};
51 if (gender == Gender::Female && age == Age::Young) { 52 if (gender == Gender::Female && age == Age::Young) {
52 axis_y = MiiUtil::GetRandomValue<u32>(3); 53 axis_y = MiiUtil::GetRandomValue<u32>(3);
@@ -85,10 +86,10 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
85 86
86 data.hair_type.Assign( 87 data.hair_type.Assign(
87 hair_type_info.values[MiiUtil::GetRandomValue<std::size_t>(hair_type_info.values_count)]); 88 hair_type_info.values[MiiUtil::GetRandomValue<std::size_t>(hair_type_info.values_count)]);
88 data.hair_color.Assign(RawData::GetHairColorFromVer3( 89 SetHairColor(RawData::GetHairColorFromVer3(
89 hair_color_info 90 hair_color_info
90 .values[MiiUtil::GetRandomValue<std::size_t>(hair_color_info.values_count)])); 91 .values[MiiUtil::GetRandomValue<std::size_t>(hair_color_info.values_count)]));
91 data.hair_flip.Assign(MiiUtil::GetRandomValue<HairFlip>(HairFlip::Maximum)); 92 SetHairFlip(MiiUtil::GetRandomValue(HairFlip::Max));
92 93
93 data.eye_type.Assign( 94 data.eye_type.Assign(
94 eye_type_info.values[MiiUtil::GetRandomValue<std::size_t>(eye_type_info.values_count)]); 95 eye_type_info.values[MiiUtil::GetRandomValue<std::size_t>(eye_type_info.values_count)]);
@@ -98,13 +99,13 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
98 const auto eye_rotate_offset{32 - RawData::EyeRotateLookup[eye_rotate_1] + eye_rotate_2}; 99 const auto eye_rotate_offset{32 - RawData::EyeRotateLookup[eye_rotate_1] + eye_rotate_2};
99 const auto eye_rotate{32 - RawData::EyeRotateLookup[data.eye_type]}; 100 const auto eye_rotate{32 - RawData::EyeRotateLookup[data.eye_type]};
100 101
101 data.eye_color.Assign(RawData::GetEyeColorFromVer3( 102 SetEyeColor(RawData::GetEyeColorFromVer3(
102 eye_color_info.values[MiiUtil::GetRandomValue<std::size_t>(eye_color_info.values_count)])); 103 eye_color_info.values[MiiUtil::GetRandomValue<std::size_t>(eye_color_info.values_count)]));
103 data.eye_scale.Assign(4); 104 SetEyeScale(4);
104 data.eye_aspect.Assign(3); 105 SetEyeAspect(3);
105 data.eye_rotate.Assign(eye_rotate_offset - eye_rotate); 106 SetEyeRotate(static_cast<u8>(eye_rotate_offset - eye_rotate));
106 data.eye_x.Assign(2); 107 SetEyeX(2);
107 data.eye_y.Assign(axis_y + 12); 108 SetEyeY(static_cast<u8>(axis_y + 12));
108 109
109 data.eyebrow_type.Assign( 110 data.eyebrow_type.Assign(
110 eyebrow_type_info 111 eyebrow_type_info
@@ -116,57 +117,53 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
116 const auto eyebrow_rotate{ 117 const auto eyebrow_rotate{
117 32 - RawData::EyebrowRotateLookup[static_cast<std::size_t>(data.eyebrow_type.Value())]}; 118 32 - RawData::EyebrowRotateLookup[static_cast<std::size_t>(data.eyebrow_type.Value())]};
118 119
119 data.eyebrow_color.Assign(data.hair_color); 120 SetEyebrowColor(GetHairColor());
120 data.eyebrow_scale.Assign(4); 121 SetEyebrowScale(4);
121 data.eyebrow_aspect.Assign(3); 122 SetEyebrowAspect(3);
122 data.eyebrow_rotate.Assign(eyebrow_rotate_offset - eyebrow_rotate); 123 SetEyebrowRotate(static_cast<u8>(eyebrow_rotate_offset - eyebrow_rotate));
123 data.eyebrow_x.Assign(2); 124 SetEyebrowX(2);
124 data.eyebrow_y.Assign(axis_y + eyebrow_y); 125 SetEyebrowY(static_cast<u8>(axis_y + eyebrow_y));
125
126 const auto nose_scale{gender == Gender::Female ? 3 : 4};
127 126
128 data.nose_type.Assign( 127 data.nose_type.Assign(
129 nose_type_info.values[MiiUtil::GetRandomValue<std::size_t>(nose_type_info.values_count)]); 128 nose_type_info.values[MiiUtil::GetRandomValue<std::size_t>(nose_type_info.values_count)]);
130 data.nose_scale.Assign(nose_scale); 129 SetNoseScale(gender == Gender::Female ? 3 : 4);
131 data.nose_y.Assign(axis_y + 9); 130 SetNoseY(static_cast<u8>(axis_y + 9));
132 131
133 const auto mouth_color{gender == Gender::Female ? MiiUtil::GetRandomValue<int>(4) : 0}; 132 const auto mouth_color{gender == Gender::Female ? MiiUtil::GetRandomValue<int>(4) : 0};
134 133
135 data.mouth_type.Assign( 134 data.mouth_type.Assign(
136 mouth_type_info.values[MiiUtil::GetRandomValue<std::size_t>(mouth_type_info.values_count)]); 135 mouth_type_info.values[MiiUtil::GetRandomValue<std::size_t>(mouth_type_info.values_count)]);
137 data.mouth_color.Assign(RawData::GetMouthColorFromVer3(mouth_color)); 136 SetMouthColor(RawData::GetMouthColorFromVer3(mouth_color));
138 data.mouth_scale.Assign(4); 137 SetMouthScale(4);
139 data.mouth_aspect.Assign(3); 138 SetMouthAspect(3);
140 data.mouth_y.Assign(axis_y + 13); 139 SetMouthY(static_cast<u8>(axis_y + 13));
141 140
142 data.beard_color.Assign(data.hair_color); 141 SetBeardColor(GetHairColor());
143 data.mustache_scale.Assign(4); 142 SetMustacheScale(4);
144 143
145 if (gender == Gender::Male && age != Age::Young && MiiUtil::GetRandomValue<int>(10) < 2) { 144 if (gender == Gender::Male && age != Age::Young && MiiUtil::GetRandomValue<int>(10) < 2) {
146 const auto mustache_and_beard_flag{ 145 const auto mustache_and_beard_flag{MiiUtil::GetRandomValue(BeardAndMustacheFlag::All)};
147 MiiUtil::GetRandomValue<BeardAndMustacheFlag>(BeardAndMustacheFlag::All)};
148 146
149 auto beard_type{BeardType::None}; 147 auto beard_type{BeardType::None};
150 auto mustache_type{MustacheType::None}; 148 auto mustache_type{MustacheType::None};
151 149
152 if ((mustache_and_beard_flag & BeardAndMustacheFlag::Beard) == 150 if ((mustache_and_beard_flag & BeardAndMustacheFlag::Beard) ==
153 BeardAndMustacheFlag::Beard) { 151 BeardAndMustacheFlag::Beard) {
154 beard_type = MiiUtil::GetRandomValue<BeardType>(BeardType::Beard1, BeardType::Beard5); 152 beard_type = MiiUtil::GetRandomValue(BeardType::Min, BeardType::Max);
155 } 153 }
156 154
157 if ((mustache_and_beard_flag & BeardAndMustacheFlag::Mustache) == 155 if ((mustache_and_beard_flag & BeardAndMustacheFlag::Mustache) ==
158 BeardAndMustacheFlag::Mustache) { 156 BeardAndMustacheFlag::Mustache) {
159 mustache_type = MiiUtil::GetRandomValue<MustacheType>(MustacheType::Mustache1, 157 mustache_type = MiiUtil::GetRandomValue(MustacheType::Min, MustacheType::Max);
160 MustacheType::Mustache5);
161 } 158 }
162 159
163 data.mustache_type.Assign(mustache_type); 160 SetMustacheType(mustache_type);
164 data.beard_type.Assign(beard_type); 161 SetBeardType(beard_type);
165 data.mustache_y.Assign(10); 162 SetMustacheY(10);
166 } else { 163 } else {
167 data.mustache_type.Assign(MustacheType::None); 164 SetMustacheType(MustacheType::None);
168 data.beard_type.Assign(BeardType::None); 165 SetBeardType(BeardType::None);
169 data.mustache_y.Assign(axis_y + 10); 166 SetMustacheY(static_cast<u8>(axis_y + 10));
170 } 167 }
171 168
172 const auto glasses_type_start{MiiUtil::GetRandomValue<std::size_t>(100)}; 169 const auto glasses_type_start{MiiUtil::GetRandomValue<std::size_t>(100)};
@@ -178,15 +175,14 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) {
178 } 175 }
179 } 176 }
180 177
181 data.glasses_type.Assign(glasses_type); 178 SetGlassType(static_cast<GlassType>(glasses_type));
182 data.glasses_color.Assign(RawData::GetGlassColorFromVer3(0)); 179 SetGlassColor(RawData::GetGlassColorFromVer3(0));
183 data.glasses_scale.Assign(4); 180 SetGlassScale(4);
184 data.glasses_y.Assign(axis_y + 10);
185 181
186 data.mole_type.Assign(0); 182 SetMoleType(MoleType::None);
187 data.mole_scale.Assign(4); 183 SetMoleScale(4);
188 data.mole_x.Assign(2); 184 SetMoleX(2);
189 data.mole_y.Assign(20); 185 SetMoleY(20);
190} 186}
191 187
192u32 CoreData::IsValid() const { 188u32 CoreData::IsValid() const {
@@ -195,15 +191,15 @@ u32 CoreData::IsValid() const {
195} 191}
196 192
197void CoreData::SetFontRegion(FontRegion value) { 193void CoreData::SetFontRegion(FontRegion value) {
198 data.font_region.Assign(value); 194 data.font_region.Assign(static_cast<u32>(value));
199} 195}
200 196
201void CoreData::SetFavoriteColor(u8 value) { 197void CoreData::SetFavoriteColor(FavoriteColor value) {
202 data.favorite_color.Assign(value); 198 data.favorite_color.Assign(static_cast<u32>(value));
203} 199}
204 200
205void CoreData::SetGender(Gender value) { 201void CoreData::SetGender(Gender value) {
206 data.gender.Assign(value); 202 data.gender.Assign(static_cast<u32>(value));
207} 203}
208 204
209void CoreData::SetHeight(u8 value) { 205void CoreData::SetHeight(u8 value) {
@@ -222,40 +218,40 @@ void CoreData::SetRegionMove(u8 value) {
222 data.region_move.Assign(value); 218 data.region_move.Assign(value);
223} 219}
224 220
225void CoreData::SetFacelineType(u8 value) { 221void CoreData::SetFacelineType(FacelineType value) {
226 data.faceline_type.Assign(value); 222 data.faceline_type.Assign(static_cast<u32>(value));
227} 223}
228 224
229void CoreData::SetFacelineColor(u8 value) { 225void CoreData::SetFacelineColor(FacelineColor value) {
230 data.faceline_color.Assign(value); 226 data.faceline_color.Assign(static_cast<u32>(value));
231} 227}
232 228
233void CoreData::SetFacelineWrinkle(u8 value) { 229void CoreData::SetFacelineWrinkle(FacelineWrinkle value) {
234 data.faceline_wrinkle.Assign(value); 230 data.faceline_wrinkle.Assign(static_cast<u32>(value));
235} 231}
236 232
237void CoreData::SetFacelineMake(u8 value) { 233void CoreData::SetFacelineMake(FacelineMake value) {
238 data.faceline_makeup.Assign(value); 234 data.faceline_makeup.Assign(static_cast<u32>(value));
239} 235}
240 236
241void CoreData::SetHairType(u8 value) { 237void CoreData::SetHairType(HairType value) {
242 data.hair_type.Assign(value); 238 data.hair_type.Assign(static_cast<u32>(value));
243} 239}
244 240
245void CoreData::SetHairColor(u8 value) { 241void CoreData::SetHairColor(CommonColor value) {
246 data.hair_color.Assign(value); 242 data.hair_color.Assign(static_cast<u32>(value));
247} 243}
248 244
249void CoreData::SetHairFlip(HairFlip value) { 245void CoreData::SetHairFlip(HairFlip value) {
250 data.hair_flip.Assign(value); 246 data.hair_flip.Assign(static_cast<u32>(value));
251} 247}
252 248
253void CoreData::SetEyeType(u8 value) { 249void CoreData::SetEyeType(EyeType value) {
254 data.eye_type.Assign(value); 250 data.eye_type.Assign(static_cast<u32>(value));
255} 251}
256 252
257void CoreData::SetEyeColor(u8 value) { 253void CoreData::SetEyeColor(CommonColor value) {
258 data.eye_color.Assign(value); 254 data.eye_color.Assign(static_cast<u32>(value));
259} 255}
260 256
261void CoreData::SetEyeScale(u8 value) { 257void CoreData::SetEyeScale(u8 value) {
@@ -278,12 +274,12 @@ void CoreData::SetEyeY(u8 value) {
278 data.eye_y.Assign(value); 274 data.eye_y.Assign(value);
279} 275}
280 276
281void CoreData::SetEyebrowType(u8 value) { 277void CoreData::SetEyebrowType(EyebrowType value) {
282 data.eyebrow_type.Assign(value); 278 data.eyebrow_type.Assign(static_cast<u32>(value));
283} 279}
284 280
285void CoreData::SetEyebrowColor(u8 value) { 281void CoreData::SetEyebrowColor(CommonColor value) {
286 data.eyebrow_color.Assign(value); 282 data.eyebrow_color.Assign(static_cast<u32>(value));
287} 283}
288 284
289void CoreData::SetEyebrowScale(u8 value) { 285void CoreData::SetEyebrowScale(u8 value) {
@@ -306,8 +302,8 @@ void CoreData::SetEyebrowY(u8 value) {
306 data.eyebrow_y.Assign(value); 302 data.eyebrow_y.Assign(value);
307} 303}
308 304
309void CoreData::SetNoseType(u8 value) { 305void CoreData::SetNoseType(NoseType value) {
310 data.nose_type.Assign(value); 306 data.nose_type.Assign(static_cast<u32>(value));
311} 307}
312 308
313void CoreData::SetNoseScale(u8 value) { 309void CoreData::SetNoseScale(u8 value) {
@@ -322,8 +318,8 @@ void CoreData::SetMouthType(u8 value) {
322 data.mouth_type.Assign(value); 318 data.mouth_type.Assign(value);
323} 319}
324 320
325void CoreData::SetMouthColor(u8 value) { 321void CoreData::SetMouthColor(CommonColor value) {
326 data.mouth_color.Assign(value); 322 data.mouth_color.Assign(static_cast<u32>(value));
327} 323}
328 324
329void CoreData::SetMouthScale(u8 value) { 325void CoreData::SetMouthScale(u8 value) {
@@ -338,16 +334,16 @@ void CoreData::SetMouthY(u8 value) {
338 data.mouth_y.Assign(value); 334 data.mouth_y.Assign(value);
339} 335}
340 336
341void CoreData::SetBeardColor(u8 value) { 337void CoreData::SetBeardColor(CommonColor value) {
342 data.beard_color.Assign(value); 338 data.beard_color.Assign(static_cast<u32>(value));
343} 339}
344 340
345void CoreData::SetBeardType(BeardType value) { 341void CoreData::SetBeardType(BeardType value) {
346 data.beard_type.Assign(value); 342 data.beard_type.Assign(static_cast<u32>(value));
347} 343}
348 344
349void CoreData::SetMustacheType(MustacheType value) { 345void CoreData::SetMustacheType(MustacheType value) {
350 data.mustache_type.Assign(value); 346 data.mustache_type.Assign(static_cast<u32>(value));
351} 347}
352 348
353void CoreData::SetMustacheScale(u8 value) { 349void CoreData::SetMustacheScale(u8 value) {
@@ -358,12 +354,12 @@ void CoreData::SetMustacheY(u8 value) {
358 data.mustache_y.Assign(value); 354 data.mustache_y.Assign(value);
359} 355}
360 356
361void CoreData::SetGlassType(u8 value) { 357void CoreData::SetGlassType(GlassType value) {
362 data.glasses_type.Assign(value); 358 data.glasses_type.Assign(static_cast<u32>(value));
363} 359}
364 360
365void CoreData::SetGlassColor(u8 value) { 361void CoreData::SetGlassColor(CommonColor value) {
366 data.glasses_color.Assign(value); 362 data.glasses_color.Assign(static_cast<u32>(value));
367} 363}
368 364
369void CoreData::SetGlassScale(u8 value) { 365void CoreData::SetGlassScale(u8 value) {
@@ -374,8 +370,8 @@ void CoreData::SetGlassY(u8 value) {
374 data.glasses_y.Assign(value); 370 data.glasses_y.Assign(value);
375} 371}
376 372
377void CoreData::SetMoleType(u8 value) { 373void CoreData::SetMoleType(MoleType value) {
378 data.mole_type.Assign(value); 374 data.mole_type.Assign(static_cast<u32>(value));
379} 375}
380 376
381void CoreData::SetMoleScale(u8 value) { 377void CoreData::SetMoleScale(u8 value) {
@@ -394,16 +390,16 @@ void CoreData::SetNickname(Nickname nickname) {
394 name = nickname; 390 name = nickname;
395} 391}
396 392
397u8 CoreData::GetFontRegion() const { 393FontRegion CoreData::GetFontRegion() const {
398 return static_cast<u8>(data.font_region.Value()); 394 return static_cast<FontRegion>(data.font_region.Value());
399} 395}
400 396
401u8 CoreData::GetFavoriteColor() const { 397FavoriteColor CoreData::GetFavoriteColor() const {
402 return static_cast<u8>(data.favorite_color.Value()); 398 return static_cast<FavoriteColor>(data.favorite_color.Value());
403} 399}
404 400
405u8 CoreData::GetGender() const { 401Gender CoreData::GetGender() const {
406 return static_cast<u8>(data.gender.Value()); 402 return static_cast<Gender>(data.gender.Value());
407} 403}
408 404
409u8 CoreData::GetHeight() const { 405u8 CoreData::GetHeight() const {
@@ -422,40 +418,40 @@ u8 CoreData::GetRegionMove() const {
422 return static_cast<u8>(data.region_move.Value()); 418 return static_cast<u8>(data.region_move.Value());
423} 419}
424 420
425u8 CoreData::GetFacelineType() const { 421FacelineType CoreData::GetFacelineType() const {
426 return static_cast<u8>(data.faceline_type.Value()); 422 return static_cast<FacelineType>(data.faceline_type.Value());
427} 423}
428 424
429u8 CoreData::GetFacelineColor() const { 425FacelineColor CoreData::GetFacelineColor() const {
430 return static_cast<u8>(data.faceline_color.Value()); 426 return static_cast<FacelineColor>(data.faceline_color.Value());
431} 427}
432 428
433u8 CoreData::GetFacelineWrinkle() const { 429FacelineWrinkle CoreData::GetFacelineWrinkle() const {
434 return static_cast<u8>(data.faceline_wrinkle.Value()); 430 return static_cast<FacelineWrinkle>(data.faceline_wrinkle.Value());
435} 431}
436 432
437u8 CoreData::GetFacelineMake() const { 433FacelineMake CoreData::GetFacelineMake() const {
438 return static_cast<u8>(data.faceline_makeup.Value()); 434 return static_cast<FacelineMake>(data.faceline_makeup.Value());
439} 435}
440 436
441u8 CoreData::GetHairType() const { 437HairType CoreData::GetHairType() const {
442 return static_cast<u8>(data.hair_type.Value()); 438 return static_cast<HairType>(data.hair_type.Value());
443} 439}
444 440
445u8 CoreData::GetHairColor() const { 441CommonColor CoreData::GetHairColor() const {
446 return static_cast<u8>(data.hair_color.Value()); 442 return static_cast<CommonColor>(data.hair_color.Value());
447} 443}
448 444
449u8 CoreData::GetHairFlip() const { 445HairFlip CoreData::GetHairFlip() const {
450 return static_cast<u8>(data.hair_flip.Value()); 446 return static_cast<HairFlip>(data.hair_flip.Value());
451} 447}
452 448
453u8 CoreData::GetEyeType() const { 449EyeType CoreData::GetEyeType() const {
454 return static_cast<u8>(data.eye_type.Value()); 450 return static_cast<EyeType>(data.eye_type.Value());
455} 451}
456 452
457u8 CoreData::GetEyeColor() const { 453CommonColor CoreData::GetEyeColor() const {
458 return static_cast<u8>(data.eye_color.Value()); 454 return static_cast<CommonColor>(data.eye_color.Value());
459} 455}
460 456
461u8 CoreData::GetEyeScale() const { 457u8 CoreData::GetEyeScale() const {
@@ -478,12 +474,12 @@ u8 CoreData::GetEyeY() const {
478 return static_cast<u8>(data.eye_y.Value()); 474 return static_cast<u8>(data.eye_y.Value());
479} 475}
480 476
481u8 CoreData::GetEyebrowType() const { 477EyebrowType CoreData::GetEyebrowType() const {
482 return static_cast<u8>(data.eyebrow_type.Value()); 478 return static_cast<EyebrowType>(data.eyebrow_type.Value());
483} 479}
484 480
485u8 CoreData::GetEyebrowColor() const { 481CommonColor CoreData::GetEyebrowColor() const {
486 return static_cast<u8>(data.eyebrow_color.Value()); 482 return static_cast<CommonColor>(data.eyebrow_color.Value());
487} 483}
488 484
489u8 CoreData::GetEyebrowScale() const { 485u8 CoreData::GetEyebrowScale() const {
@@ -506,8 +502,8 @@ u8 CoreData::GetEyebrowY() const {
506 return static_cast<u8>(data.eyebrow_y.Value()); 502 return static_cast<u8>(data.eyebrow_y.Value());
507} 503}
508 504
509u8 CoreData::GetNoseType() const { 505NoseType CoreData::GetNoseType() const {
510 return static_cast<u8>(data.nose_type.Value()); 506 return static_cast<NoseType>(data.nose_type.Value());
511} 507}
512 508
513u8 CoreData::GetNoseScale() const { 509u8 CoreData::GetNoseScale() const {
@@ -518,12 +514,12 @@ u8 CoreData::GetNoseY() const {
518 return static_cast<u8>(data.nose_y.Value()); 514 return static_cast<u8>(data.nose_y.Value());
519} 515}
520 516
521u8 CoreData::GetMouthType() const { 517MouthType CoreData::GetMouthType() const {
522 return static_cast<u8>(data.mouth_type.Value()); 518 return static_cast<MouthType>(data.mouth_type.Value());
523} 519}
524 520
525u8 CoreData::GetMouthColor() const { 521CommonColor CoreData::GetMouthColor() const {
526 return static_cast<u8>(data.mouth_color.Value()); 522 return static_cast<CommonColor>(data.mouth_color.Value());
527} 523}
528 524
529u8 CoreData::GetMouthScale() const { 525u8 CoreData::GetMouthScale() const {
@@ -538,16 +534,16 @@ u8 CoreData::GetMouthY() const {
538 return static_cast<u8>(data.mouth_y.Value()); 534 return static_cast<u8>(data.mouth_y.Value());
539} 535}
540 536
541u8 CoreData::GetBeardColor() const { 537CommonColor CoreData::GetBeardColor() const {
542 return static_cast<u8>(data.beard_color.Value()); 538 return static_cast<CommonColor>(data.beard_color.Value());
543} 539}
544 540
545u8 CoreData::GetBeardType() const { 541BeardType CoreData::GetBeardType() const {
546 return static_cast<u8>(data.beard_type.Value()); 542 return static_cast<BeardType>(data.beard_type.Value());
547} 543}
548 544
549u8 CoreData::GetMustacheType() const { 545MustacheType CoreData::GetMustacheType() const {
550 return static_cast<u8>(data.mustache_type.Value()); 546 return static_cast<MustacheType>(data.mustache_type.Value());
551} 547}
552 548
553u8 CoreData::GetMustacheScale() const { 549u8 CoreData::GetMustacheScale() const {
@@ -558,12 +554,12 @@ u8 CoreData::GetMustacheY() const {
558 return static_cast<u8>(data.mustache_y.Value()); 554 return static_cast<u8>(data.mustache_y.Value());
559} 555}
560 556
561u8 CoreData::GetGlassType() const { 557GlassType CoreData::GetGlassType() const {
562 return static_cast<u8>(data.glasses_type.Value()); 558 return static_cast<GlassType>(data.glasses_type.Value());
563} 559}
564 560
565u8 CoreData::GetGlassColor() const { 561CommonColor CoreData::GetGlassColor() const {
566 return static_cast<u8>(data.glasses_color.Value()); 562 return static_cast<CommonColor>(data.glasses_color.Value());
567} 563}
568 564
569u8 CoreData::GetGlassScale() const { 565u8 CoreData::GetGlassScale() const {
@@ -574,8 +570,8 @@ u8 CoreData::GetGlassY() const {
574 return static_cast<u8>(data.glasses_y.Value()); 570 return static_cast<u8>(data.glasses_y.Value());
575} 571}
576 572
577u8 CoreData::GetMoleType() const { 573MoleType CoreData::GetMoleType() const {
578 return static_cast<u8>(data.mole_type.Value()); 574 return static_cast<MoleType>(data.mole_type.Value());
579} 575}
580 576
581u8 CoreData::GetMoleScale() const { 577u8 CoreData::GetMoleScale() const {
@@ -599,7 +595,7 @@ Nickname CoreData::GetDefaultNickname() const {
599} 595}
600 596
601Nickname CoreData::GetInvalidNickname() const { 597Nickname CoreData::GetInvalidNickname() const {
602 return {u'?', u'?', u' ', u'?'}; 598 return {u'?', u'?', u'?'};
603} 599}
604 600
605} // namespace Service::Mii 601} // namespace Service::Mii
diff --git a/src/core/hle/service/mii/types/core_data.h b/src/core/hle/service/mii/types/core_data.h
index 411c123b3..cebcd2ee4 100644
--- a/src/core/hle/service/mii/types/core_data.h
+++ b/src/core/hle/service/mii/types/core_data.h
@@ -15,7 +15,7 @@ struct StoreDataBitFields {
15 BitField<8, 7, u32> height; 15 BitField<8, 7, u32> height;
16 BitField<15, 1, u32> mole_type; 16 BitField<15, 1, u32> mole_type;
17 BitField<16, 7, u32> build; 17 BitField<16, 7, u32> build;
18 BitField<23, 1, HairFlip> hair_flip; 18 BitField<23, 1, u32> hair_flip;
19 BitField<24, 7, u32> hair_color; 19 BitField<24, 7, u32> hair_color;
20 BitField<31, 1, u32> type; 20 BitField<31, 1, u32> type;
21 }; 21 };
@@ -24,7 +24,7 @@ struct StoreDataBitFields {
24 u32 word_1{}; 24 u32 word_1{};
25 25
26 BitField<0, 7, u32> eye_color; 26 BitField<0, 7, u32> eye_color;
27 BitField<7, 1, Gender> gender; 27 BitField<7, 1, u32> gender;
28 BitField<8, 7, u32> eyebrow_color; 28 BitField<8, 7, u32> eyebrow_color;
29 BitField<16, 7, u32> mouth_color; 29 BitField<16, 7, u32> mouth_color;
30 BitField<24, 7, u32> beard_color; 30 BitField<24, 7, u32> beard_color;
@@ -37,7 +37,7 @@ struct StoreDataBitFields {
37 BitField<8, 6, u32> eye_type; 37 BitField<8, 6, u32> eye_type;
38 BitField<14, 2, u32> region_move; 38 BitField<14, 2, u32> region_move;
39 BitField<16, 6, u32> mouth_type; 39 BitField<16, 6, u32> mouth_type;
40 BitField<22, 2, FontRegion> font_region; 40 BitField<22, 2, u32> font_region;
41 BitField<24, 5, u32> eye_y; 41 BitField<24, 5, u32> eye_y;
42 BitField<29, 3, u32> glasses_scale; 42 BitField<29, 3, u32> glasses_scale;
43 }; 43 };
@@ -46,9 +46,9 @@ struct StoreDataBitFields {
46 u32 word_3{}; 46 u32 word_3{};
47 47
48 BitField<0, 5, u32> eyebrow_type; 48 BitField<0, 5, u32> eyebrow_type;
49 BitField<5, 3, MustacheType> mustache_type; 49 BitField<5, 3, u32> mustache_type;
50 BitField<8, 5, u32> nose_type; 50 BitField<8, 5, u32> nose_type;
51 BitField<13, 3, BeardType> beard_type; 51 BitField<13, 3, u32> beard_type;
52 BitField<16, 5, u32> nose_y; 52 BitField<16, 5, u32> nose_y;
53 BitField<21, 3, u32> mouth_aspect; 53 BitField<21, 3, u32> mouth_aspect;
54 BitField<24, 5, u32> mouth_y; 54 BitField<24, 5, u32> mouth_y;
@@ -104,102 +104,102 @@ public:
104 u32 IsValid() const; 104 u32 IsValid() const;
105 105
106 void SetFontRegion(FontRegion value); 106 void SetFontRegion(FontRegion value);
107 void SetFavoriteColor(u8 value); 107 void SetFavoriteColor(FavoriteColor value);
108 void SetGender(Gender value); 108 void SetGender(Gender value);
109 void SetHeight(u8 value); 109 void SetHeight(u8 value);
110 void SetBuild(u8 value); 110 void SetBuild(u8 value);
111 void SetType(u8 value); 111 void SetType(u8 value);
112 void SetRegionMove(u8 value); 112 void SetRegionMove(u8 value);
113 void SetFacelineType(u8 value); 113 void SetFacelineType(FacelineType value);
114 void SetFacelineColor(u8 value); 114 void SetFacelineColor(FacelineColor value);
115 void SetFacelineWrinkle(u8 value); 115 void SetFacelineWrinkle(FacelineWrinkle value);
116 void SetFacelineMake(u8 value); 116 void SetFacelineMake(FacelineMake value);
117 void SetHairType(u8 value); 117 void SetHairType(HairType value);
118 void SetHairColor(u8 value); 118 void SetHairColor(CommonColor value);
119 void SetHairFlip(HairFlip value); 119 void SetHairFlip(HairFlip value);
120 void SetEyeType(u8 value); 120 void SetEyeType(EyeType value);
121 void SetEyeColor(u8 value); 121 void SetEyeColor(CommonColor value);
122 void SetEyeScale(u8 value); 122 void SetEyeScale(u8 value);
123 void SetEyeAspect(u8 value); 123 void SetEyeAspect(u8 value);
124 void SetEyeRotate(u8 value); 124 void SetEyeRotate(u8 value);
125 void SetEyeX(u8 value); 125 void SetEyeX(u8 value);
126 void SetEyeY(u8 value); 126 void SetEyeY(u8 value);
127 void SetEyebrowType(u8 value); 127 void SetEyebrowType(EyebrowType value);
128 void SetEyebrowColor(u8 value); 128 void SetEyebrowColor(CommonColor value);
129 void SetEyebrowScale(u8 value); 129 void SetEyebrowScale(u8 value);
130 void SetEyebrowAspect(u8 value); 130 void SetEyebrowAspect(u8 value);
131 void SetEyebrowRotate(u8 value); 131 void SetEyebrowRotate(u8 value);
132 void SetEyebrowX(u8 value); 132 void SetEyebrowX(u8 value);
133 void SetEyebrowY(u8 value); 133 void SetEyebrowY(u8 value);
134 void SetNoseType(u8 value); 134 void SetNoseType(NoseType value);
135 void SetNoseScale(u8 value); 135 void SetNoseScale(u8 value);
136 void SetNoseY(u8 value); 136 void SetNoseY(u8 value);
137 void SetMouthType(u8 value); 137 void SetMouthType(u8 value);
138 void SetMouthColor(u8 value); 138 void SetMouthColor(CommonColor value);
139 void SetMouthScale(u8 value); 139 void SetMouthScale(u8 value);
140 void SetMouthAspect(u8 value); 140 void SetMouthAspect(u8 value);
141 void SetMouthY(u8 value); 141 void SetMouthY(u8 value);
142 void SetBeardColor(u8 value); 142 void SetBeardColor(CommonColor value);
143 void SetBeardType(BeardType value); 143 void SetBeardType(BeardType value);
144 void SetMustacheType(MustacheType value); 144 void SetMustacheType(MustacheType value);
145 void SetMustacheScale(u8 value); 145 void SetMustacheScale(u8 value);
146 void SetMustacheY(u8 value); 146 void SetMustacheY(u8 value);
147 void SetGlassType(u8 value); 147 void SetGlassType(GlassType value);
148 void SetGlassColor(u8 value); 148 void SetGlassColor(CommonColor value);
149 void SetGlassScale(u8 value); 149 void SetGlassScale(u8 value);
150 void SetGlassY(u8 value); 150 void SetGlassY(u8 value);
151 void SetMoleType(u8 value); 151 void SetMoleType(MoleType value);
152 void SetMoleScale(u8 value); 152 void SetMoleScale(u8 value);
153 void SetMoleX(u8 value); 153 void SetMoleX(u8 value);
154 void SetMoleY(u8 value); 154 void SetMoleY(u8 value);
155 void SetNickname(Nickname nickname); 155 void SetNickname(Nickname nickname);
156 156
157 u8 GetFontRegion() const; 157 FontRegion GetFontRegion() const;
158 u8 GetFavoriteColor() const; 158 FavoriteColor GetFavoriteColor() const;
159 u8 GetGender() const; 159 Gender GetGender() const;
160 u8 GetHeight() const; 160 u8 GetHeight() const;
161 u8 GetBuild() const; 161 u8 GetBuild() const;
162 u8 GetType() const; 162 u8 GetType() const;
163 u8 GetRegionMove() const; 163 u8 GetRegionMove() const;
164 u8 GetFacelineType() const; 164 FacelineType GetFacelineType() const;
165 u8 GetFacelineColor() const; 165 FacelineColor GetFacelineColor() const;
166 u8 GetFacelineWrinkle() const; 166 FacelineWrinkle GetFacelineWrinkle() const;
167 u8 GetFacelineMake() const; 167 FacelineMake GetFacelineMake() const;
168 u8 GetHairType() const; 168 HairType GetHairType() const;
169 u8 GetHairColor() const; 169 CommonColor GetHairColor() const;
170 u8 GetHairFlip() const; 170 HairFlip GetHairFlip() const;
171 u8 GetEyeType() const; 171 EyeType GetEyeType() const;
172 u8 GetEyeColor() const; 172 CommonColor GetEyeColor() const;
173 u8 GetEyeScale() const; 173 u8 GetEyeScale() const;
174 u8 GetEyeAspect() const; 174 u8 GetEyeAspect() const;
175 u8 GetEyeRotate() const; 175 u8 GetEyeRotate() const;
176 u8 GetEyeX() const; 176 u8 GetEyeX() const;
177 u8 GetEyeY() const; 177 u8 GetEyeY() const;
178 u8 GetEyebrowType() const; 178 EyebrowType GetEyebrowType() const;
179 u8 GetEyebrowColor() const; 179 CommonColor GetEyebrowColor() const;
180 u8 GetEyebrowScale() const; 180 u8 GetEyebrowScale() const;
181 u8 GetEyebrowAspect() const; 181 u8 GetEyebrowAspect() const;
182 u8 GetEyebrowRotate() const; 182 u8 GetEyebrowRotate() const;
183 u8 GetEyebrowX() const; 183 u8 GetEyebrowX() const;
184 u8 GetEyebrowY() const; 184 u8 GetEyebrowY() const;
185 u8 GetNoseType() const; 185 NoseType GetNoseType() const;
186 u8 GetNoseScale() const; 186 u8 GetNoseScale() const;
187 u8 GetNoseY() const; 187 u8 GetNoseY() const;
188 u8 GetMouthType() const; 188 MouthType GetMouthType() const;
189 u8 GetMouthColor() const; 189 CommonColor GetMouthColor() const;
190 u8 GetMouthScale() const; 190 u8 GetMouthScale() const;
191 u8 GetMouthAspect() const; 191 u8 GetMouthAspect() const;
192 u8 GetMouthY() const; 192 u8 GetMouthY() const;
193 u8 GetBeardColor() const; 193 CommonColor GetBeardColor() const;
194 u8 GetBeardType() const; 194 BeardType GetBeardType() const;
195 u8 GetMustacheType() const; 195 MustacheType GetMustacheType() const;
196 u8 GetMustacheScale() const; 196 u8 GetMustacheScale() const;
197 u8 GetMustacheY() const; 197 u8 GetMustacheY() const;
198 u8 GetGlassType() const; 198 GlassType GetGlassType() const;
199 u8 GetGlassColor() const; 199 CommonColor GetGlassColor() const;
200 u8 GetGlassScale() const; 200 u8 GetGlassScale() const;
201 u8 GetGlassY() const; 201 u8 GetGlassY() const;
202 u8 GetMoleType() const; 202 MoleType GetMoleType() const;
203 u8 GetMoleScale() const; 203 u8 GetMoleScale() const;
204 u8 GetMoleX() const; 204 u8 GetMoleX() const;
205 u8 GetMoleY() const; 205 u8 GetMoleY() const;
@@ -207,6 +207,7 @@ public:
207 Nickname GetDefaultNickname() const; 207 Nickname GetDefaultNickname() const;
208 Nickname GetInvalidNickname() const; 208 Nickname GetInvalidNickname() const;
209 209
210private:
210 StoreDataBitFields data{}; 211 StoreDataBitFields data{};
211 Nickname name{}; 212 Nickname name{};
212}; 213};
diff --git a/src/core/hle/service/mii/types/raw_data.cpp b/src/core/hle/service/mii/types/raw_data.cpp
index ed299521f..5143abcc8 100644
--- a/src/core/hle/service/mii/types/raw_data.cpp
+++ b/src/core/hle/service/mii/types/raw_data.cpp
@@ -5,11 +5,11 @@
5 5
6namespace Service::Mii::RawData { 6namespace Service::Mii::RawData {
7 7
8constexpr std::array<u8, 16> FromVer3FacelineColorTable{ 8constexpr std::array<u8, static_cast<u8>(FacelineColor::Count)> FromVer3FacelineColorTable{
9 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x0, 0x1, 0x5, 0x5, 9 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x0, 0x1, 0x5, 0x5,
10}; 10};
11 11
12constexpr std::array<u8, 100> FromVer3HairColorTable{ 12constexpr std::array<u8, static_cast<u8>(CommonColor::Count)> FromVer3HairColorTable{
13 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x0, 0x4, 0x3, 0x5, 0x4, 0x4, 0x6, 0x2, 0x0, 13 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x0, 0x4, 0x3, 0x5, 0x4, 0x4, 0x6, 0x2, 0x0,
14 0x6, 0x4, 0x3, 0x2, 0x2, 0x7, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 14 0x6, 0x4, 0x3, 0x2, 0x2, 0x7, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2,
15 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x4, 15 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x4,
@@ -18,7 +18,7 @@ constexpr std::array<u8, 100> FromVer3HairColorTable{
18 0x7, 0x7, 0x7, 0x7, 0x3, 0x7, 0x7, 0x7, 0x7, 0x7, 0x0, 0x4, 0x4, 0x4, 0x4, 18 0x7, 0x7, 0x7, 0x7, 0x3, 0x7, 0x7, 0x7, 0x7, 0x7, 0x0, 0x4, 0x4, 0x4, 0x4,
19}; 19};
20 20
21constexpr std::array<u8, 100> FromVer3EyeColorTable{ 21constexpr std::array<u8, static_cast<u8>(CommonColor::Count)> FromVer3EyeColorTable{
22 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x2, 0x2, 0x4, 22 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x2, 0x2, 0x4,
23 0x2, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 23 0x2, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2,
24 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x1, 0x0, 0x4, 0x4, 24 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x1, 0x0, 0x4, 0x4,
@@ -27,7 +27,7 @@ constexpr std::array<u8, 100> FromVer3EyeColorTable{
27 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 27 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1,
28}; 28};
29 29
30constexpr std::array<u8, 100> FromVer3MouthlineColorTable{ 30constexpr std::array<u8, static_cast<u8>(CommonColor::Count)> FromVer3MouthlineColorTable{
31 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x1, 0x4, 31 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x1, 0x4,
32 0x4, 0x4, 0x0, 0x1, 0x2, 0x3, 0x4, 0x4, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x1, 0x4, 32 0x4, 0x4, 0x0, 0x1, 0x2, 0x3, 0x4, 0x4, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x1, 0x4,
33 0x4, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x3, 0x3, 0x3, 0x4, 0x4, 0x4, 33 0x4, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x3, 0x3, 0x3, 0x4, 0x4, 0x4,
@@ -36,7 +36,7 @@ constexpr std::array<u8, 100> FromVer3MouthlineColorTable{
36 0x3, 0x3, 0x3, 0x3, 0x4, 0x0, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, 0x3, 0x3, 36 0x3, 0x3, 0x3, 0x3, 0x4, 0x0, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, 0x3, 0x3,
37}; 37};
38 38
39constexpr std::array<u8, 100> FromVer3GlassColorTable{ 39constexpr std::array<u8, static_cast<u8>(CommonColor::Count)> FromVer3GlassColorTable{
40 0x0, 0x1, 0x1, 0x1, 0x5, 0x1, 0x1, 0x4, 0x0, 0x5, 0x1, 0x1, 0x3, 0x5, 0x1, 0x2, 0x3, 40 0x0, 0x1, 0x1, 0x1, 0x5, 0x1, 0x1, 0x4, 0x0, 0x5, 0x1, 0x1, 0x3, 0x5, 0x1, 0x2, 0x3,
41 0x4, 0x5, 0x4, 0x2, 0x2, 0x4, 0x4, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 41 0x4, 0x5, 0x4, 0x2, 0x2, 0x4, 0x4, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2,
42 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 42 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3,
@@ -45,7 +45,7 @@ constexpr std::array<u8, 100> FromVer3GlassColorTable{
45 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 45 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5,
46}; 46};
47 47
48constexpr std::array<u8, 20> FromVer3GlassTypeTable{ 48constexpr std::array<u8, static_cast<u8>(GlassType::Count)> FromVer3GlassTypeTable{
49 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x1, 49 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x1,
50 0x2, 0x1, 0x3, 0x7, 0x7, 0x6, 0x7, 0x8, 0x7, 0x7, 50 0x2, 0x1, 0x3, 0x7, 0x7, 0x6, 0x7, 0x8, 0x7, 0x7,
51}; 51};
@@ -90,7 +90,7 @@ const std::array<Service::Mii::DefaultMii, 2> BaseMii{
90 .face_makeup = 0, 90 .face_makeup = 0,
91 .hair_type = 33, 91 .hair_type = 33,
92 .hair_color = 1, 92 .hair_color = 1,
93 .hair_flip = HairFlip::Left, 93 .hair_flip = 0,
94 .eye_type = 2, 94 .eye_type = 2,
95 .eye_color = 0, 95 .eye_color = 0,
96 .eye_scale = 4, 96 .eye_scale = 4,
@@ -113,8 +113,8 @@ const std::array<Service::Mii::DefaultMii, 2> BaseMii{
113 .mouth_scale = 4, 113 .mouth_scale = 4,
114 .mouth_aspect = 3, 114 .mouth_aspect = 3,
115 .mouth_y = 13, 115 .mouth_y = 13,
116 .mustache_type = MustacheType::None, 116 .mustache_type = 0,
117 .beard_type = BeardType::None, 117 .beard_type = 0,
118 .beard_color = 0, 118 .beard_color = 0,
119 .mustache_scale = 4, 119 .mustache_scale = 4,
120 .mustache_y = 10, 120 .mustache_y = 10,
@@ -128,10 +128,10 @@ const std::array<Service::Mii::DefaultMii, 2> BaseMii{
128 .mole_y = 20, 128 .mole_y = 20,
129 .height = 64, 129 .height = 64,
130 .weight = 64, 130 .weight = 64,
131 .gender = Gender::Male, 131 .gender = 0,
132 .favorite_color = 0, 132 .favorite_color = 0,
133 .region_move = 0, 133 .region_move = 0,
134 .font_region = FontRegion::Standard, 134 .font_region = 0,
135 .type = 0, 135 .type = 0,
136 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 136 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
137 }, 137 },
@@ -142,7 +142,7 @@ const std::array<Service::Mii::DefaultMii, 2> BaseMii{
142 .face_makeup = 0, 142 .face_makeup = 0,
143 .hair_type = 12, 143 .hair_type = 12,
144 .hair_color = 1, 144 .hair_color = 1,
145 .hair_flip = HairFlip::Left, 145 .hair_flip = 0,
146 .eye_type = 4, 146 .eye_type = 4,
147 .eye_color = 0, 147 .eye_color = 0,
148 .eye_scale = 4, 148 .eye_scale = 4,
@@ -165,8 +165,8 @@ const std::array<Service::Mii::DefaultMii, 2> BaseMii{
165 .mouth_scale = 4, 165 .mouth_scale = 4,
166 .mouth_aspect = 3, 166 .mouth_aspect = 3,
167 .mouth_y = 13, 167 .mouth_y = 13,
168 .mustache_type = MustacheType::None, 168 .mustache_type = 0,
169 .beard_type = BeardType::None, 169 .beard_type = 0,
170 .beard_color = 0, 170 .beard_color = 0,
171 .mustache_scale = 4, 171 .mustache_scale = 4,
172 .mustache_y = 10, 172 .mustache_y = 10,
@@ -180,10 +180,10 @@ const std::array<Service::Mii::DefaultMii, 2> BaseMii{
180 .mole_y = 20, 180 .mole_y = 20,
181 .height = 64, 181 .height = 64,
182 .weight = 64, 182 .weight = 64,
183 .gender = Gender::Female, 183 .gender = 1,
184 .favorite_color = 0, 184 .favorite_color = 0,
185 .region_move = 0, 185 .region_move = 0,
186 .font_region = FontRegion::Standard, 186 .font_region = 0,
187 .type = 0, 187 .type = 0,
188 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 188 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
189 }, 189 },
@@ -197,7 +197,7 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
197 .face_makeup = 0, 197 .face_makeup = 0,
198 .hair_type = 68, 198 .hair_type = 68,
199 .hair_color = 0, 199 .hair_color = 0,
200 .hair_flip = HairFlip::Left, 200 .hair_flip = 0,
201 .eye_type = 2, 201 .eye_type = 2,
202 .eye_color = 0, 202 .eye_color = 0,
203 .eye_scale = 4, 203 .eye_scale = 4,
@@ -220,8 +220,8 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
220 .mouth_scale = 4, 220 .mouth_scale = 4,
221 .mouth_aspect = 3, 221 .mouth_aspect = 3,
222 .mouth_y = 13, 222 .mouth_y = 13,
223 .mustache_type = MustacheType::None, 223 .mustache_type = 0,
224 .beard_type = BeardType::None, 224 .beard_type = 0,
225 .beard_color = 0, 225 .beard_color = 0,
226 .mustache_scale = 4, 226 .mustache_scale = 4,
227 .mustache_y = 10, 227 .mustache_y = 10,
@@ -235,10 +235,10 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
235 .mole_y = 20, 235 .mole_y = 20,
236 .height = 64, 236 .height = 64,
237 .weight = 64, 237 .weight = 64,
238 .gender = Gender::Male, 238 .gender = 0,
239 .favorite_color = 4, 239 .favorite_color = 4,
240 .region_move = 0, 240 .region_move = 0,
241 .font_region = FontRegion::Standard, 241 .font_region = 0,
242 .type = 0, 242 .type = 0,
243 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 243 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
244 }, 244 },
@@ -249,7 +249,7 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
249 .face_makeup = 0, 249 .face_makeup = 0,
250 .hair_type = 55, 250 .hair_type = 55,
251 .hair_color = 6, 251 .hair_color = 6,
252 .hair_flip = HairFlip::Left, 252 .hair_flip = 0,
253 .eye_type = 2, 253 .eye_type = 2,
254 .eye_color = 4, 254 .eye_color = 4,
255 .eye_scale = 4, 255 .eye_scale = 4,
@@ -272,8 +272,8 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
272 .mouth_scale = 4, 272 .mouth_scale = 4,
273 .mouth_aspect = 3, 273 .mouth_aspect = 3,
274 .mouth_y = 13, 274 .mouth_y = 13,
275 .mustache_type = MustacheType::None, 275 .mustache_type = 0,
276 .beard_type = BeardType::None, 276 .beard_type = 0,
277 .beard_color = 0, 277 .beard_color = 0,
278 .mustache_scale = 4, 278 .mustache_scale = 4,
279 .mustache_y = 10, 279 .mustache_y = 10,
@@ -287,10 +287,10 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
287 .mole_y = 20, 287 .mole_y = 20,
288 .height = 64, 288 .height = 64,
289 .weight = 64, 289 .weight = 64,
290 .gender = Gender::Male, 290 .gender = 0,
291 .favorite_color = 5, 291 .favorite_color = 5,
292 .region_move = 0, 292 .region_move = 0,
293 .font_region = FontRegion::Standard, 293 .font_region = 0,
294 .type = 0, 294 .type = 0,
295 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 295 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
296 }, 296 },
@@ -301,7 +301,7 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
301 .face_makeup = 0, 301 .face_makeup = 0,
302 .hair_type = 33, 302 .hair_type = 33,
303 .hair_color = 1, 303 .hair_color = 1,
304 .hair_flip = HairFlip::Left, 304 .hair_flip = 0,
305 .eye_type = 2, 305 .eye_type = 2,
306 .eye_color = 0, 306 .eye_color = 0,
307 .eye_scale = 4, 307 .eye_scale = 4,
@@ -324,8 +324,8 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
324 .mouth_scale = 4, 324 .mouth_scale = 4,
325 .mouth_aspect = 3, 325 .mouth_aspect = 3,
326 .mouth_y = 13, 326 .mouth_y = 13,
327 .mustache_type = MustacheType::None, 327 .mustache_type = 0,
328 .beard_type = BeardType::None, 328 .beard_type = 0,
329 .beard_color = 0, 329 .beard_color = 0,
330 .mustache_scale = 4, 330 .mustache_scale = 4,
331 .mustache_y = 10, 331 .mustache_y = 10,
@@ -339,10 +339,10 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
339 .mole_y = 20, 339 .mole_y = 20,
340 .height = 64, 340 .height = 64,
341 .weight = 64, 341 .weight = 64,
342 .gender = Gender::Male, 342 .gender = 0,
343 .favorite_color = 0, 343 .favorite_color = 0,
344 .region_move = 0, 344 .region_move = 0,
345 .font_region = FontRegion::Standard, 345 .font_region = 0,
346 .type = 0, 346 .type = 0,
347 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 347 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
348 }, 348 },
@@ -353,7 +353,7 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
353 .face_makeup = 0, 353 .face_makeup = 0,
354 .hair_type = 24, 354 .hair_type = 24,
355 .hair_color = 0, 355 .hair_color = 0,
356 .hair_flip = HairFlip::Left, 356 .hair_flip = 0,
357 .eye_type = 4, 357 .eye_type = 4,
358 .eye_color = 0, 358 .eye_color = 0,
359 .eye_scale = 4, 359 .eye_scale = 4,
@@ -376,8 +376,8 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
376 .mouth_scale = 4, 376 .mouth_scale = 4,
377 .mouth_aspect = 3, 377 .mouth_aspect = 3,
378 .mouth_y = 13, 378 .mouth_y = 13,
379 .mustache_type = MustacheType::None, 379 .mustache_type = 0,
380 .beard_type = BeardType::None, 380 .beard_type = 0,
381 .beard_color = 0, 381 .beard_color = 0,
382 .mustache_scale = 4, 382 .mustache_scale = 4,
383 .mustache_y = 10, 383 .mustache_y = 10,
@@ -391,10 +391,10 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
391 .mole_y = 20, 391 .mole_y = 20,
392 .height = 64, 392 .height = 64,
393 .weight = 64, 393 .weight = 64,
394 .gender = Gender::Female, 394 .gender = 1,
395 .favorite_color = 2, 395 .favorite_color = 2,
396 .region_move = 0, 396 .region_move = 0,
397 .font_region = FontRegion::Standard, 397 .font_region = 0,
398 .type = 0, 398 .type = 0,
399 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 399 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
400 }, 400 },
@@ -405,7 +405,7 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
405 .face_makeup = 0, 405 .face_makeup = 0,
406 .hair_type = 14, 406 .hair_type = 14,
407 .hair_color = 7, 407 .hair_color = 7,
408 .hair_flip = HairFlip::Left, 408 .hair_flip = 0,
409 .eye_type = 4, 409 .eye_type = 4,
410 .eye_color = 5, 410 .eye_color = 5,
411 .eye_scale = 4, 411 .eye_scale = 4,
@@ -428,8 +428,8 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
428 .mouth_scale = 4, 428 .mouth_scale = 4,
429 .mouth_aspect = 3, 429 .mouth_aspect = 3,
430 .mouth_y = 13, 430 .mouth_y = 13,
431 .mustache_type = MustacheType::None, 431 .mustache_type = 0,
432 .beard_type = BeardType::None, 432 .beard_type = 0,
433 .beard_color = 0, 433 .beard_color = 0,
434 .mustache_scale = 4, 434 .mustache_scale = 4,
435 .mustache_y = 10, 435 .mustache_y = 10,
@@ -443,10 +443,10 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
443 .mole_y = 20, 443 .mole_y = 20,
444 .height = 64, 444 .height = 64,
445 .weight = 64, 445 .weight = 64,
446 .gender = Gender::Female, 446 .gender = 1,
447 .favorite_color = 6, 447 .favorite_color = 6,
448 .region_move = 0, 448 .region_move = 0,
449 .font_region = FontRegion::Standard, 449 .font_region = 0,
450 .type = 0, 450 .type = 0,
451 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 451 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
452 }, 452 },
@@ -457,7 +457,7 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
457 .face_makeup = 0, 457 .face_makeup = 0,
458 .hair_type = 12, 458 .hair_type = 12,
459 .hair_color = 1, 459 .hair_color = 1,
460 .hair_flip = HairFlip::Left, 460 .hair_flip = 0,
461 .eye_type = 4, 461 .eye_type = 4,
462 .eye_color = 0, 462 .eye_color = 0,
463 .eye_scale = 4, 463 .eye_scale = 4,
@@ -480,8 +480,8 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
480 .mouth_scale = 4, 480 .mouth_scale = 4,
481 .mouth_aspect = 3, 481 .mouth_aspect = 3,
482 .mouth_y = 13, 482 .mouth_y = 13,
483 .mustache_type = MustacheType::None, 483 .mustache_type = 0,
484 .beard_type = BeardType::None, 484 .beard_type = 0,
485 .beard_color = 0, 485 .beard_color = 0,
486 .mustache_scale = 4, 486 .mustache_scale = 4,
487 .mustache_y = 10, 487 .mustache_y = 10,
@@ -495,10 +495,10 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
495 .mole_y = 20, 495 .mole_y = 20,
496 .height = 64, 496 .height = 64,
497 .weight = 64, 497 .weight = 64,
498 .gender = Gender::Female, 498 .gender = 1,
499 .favorite_color = 7, 499 .favorite_color = 7,
500 .region_move = 0, 500 .region_move = 0,
501 .font_region = FontRegion::Standard, 501 .font_region = 0,
502 .type = 0, 502 .type = 0,
503 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, 503 .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'},
504 }, 504 },
@@ -507,128 +507,128 @@ const std::array<Service::Mii::DefaultMii, 6> DefaultMii{
507 507
508const std::array<RandomMiiData4, 18> RandomMiiFaceline{ 508const std::array<RandomMiiData4, 18> RandomMiiFaceline{
509 RandomMiiData4{ 509 RandomMiiData4{
510 .gender = Gender::Male, 510 .gender = static_cast<u32>(Gender::Male),
511 .age = Age::Young, 511 .age = static_cast<u32>(Age::Young),
512 .race = Race::Black, 512 .race = static_cast<u32>(Race::Black),
513 .values_count = 10, 513 .values_count = 10,
514 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, 514 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9},
515 }, 515 },
516 RandomMiiData4{ 516 RandomMiiData4{
517 .gender = Gender::Male, 517 .gender = static_cast<u32>(Gender::Male),
518 .age = Age::Normal, 518 .age = static_cast<u32>(Age::Normal),
519 .race = Race::Black, 519 .race = static_cast<u32>(Race::Black),
520 .values_count = 10, 520 .values_count = 10,
521 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, 521 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9},
522 }, 522 },
523 RandomMiiData4{ 523 RandomMiiData4{
524 .gender = Gender::Male, 524 .gender = static_cast<u32>(Gender::Male),
525 .age = Age::Old, 525 .age = static_cast<u32>(Age::Old),
526 .race = Race::Black, 526 .race = static_cast<u32>(Race::Black),
527 .values_count = 10, 527 .values_count = 10,
528 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, 528 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9},
529 }, 529 },
530 RandomMiiData4{ 530 RandomMiiData4{
531 .gender = Gender::Male, 531 .gender = static_cast<u32>(Gender::Male),
532 .age = Age::Young, 532 .age = static_cast<u32>(Age::Young),
533 .race = Race::White, 533 .race = static_cast<u32>(Race::White),
534 .values_count = 12, 534 .values_count = 12,
535 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, 535 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11},
536 }, 536 },
537 RandomMiiData4{ 537 RandomMiiData4{
538 .gender = Gender::Male, 538 .gender = static_cast<u32>(Gender::Male),
539 .age = Age::Normal, 539 .age = static_cast<u32>(Age::Normal),
540 .race = Race::White, 540 .race = static_cast<u32>(Race::White),
541 .values_count = 13, 541 .values_count = 13,
542 .values = {0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 10, 11}, 542 .values = {0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 10, 11},
543 }, 543 },
544 RandomMiiData4{ 544 RandomMiiData4{
545 .gender = Gender::Male, 545 .gender = static_cast<u32>(Gender::Male),
546 .age = Age::Old, 546 .age = static_cast<u32>(Age::Old),
547 .race = Race::White, 547 .race = static_cast<u32>(Race::White),
548 .values_count = 12, 548 .values_count = 12,
549 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, 549 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11},
550 }, 550 },
551 RandomMiiData4{ 551 RandomMiiData4{
552 .gender = Gender::Male, 552 .gender = static_cast<u32>(Gender::Male),
553 .age = Age::Young, 553 .age = static_cast<u32>(Age::Young),
554 .race = Race::Asian, 554 .race = static_cast<u32>(Race::Asian),
555 .values_count = 12, 555 .values_count = 12,
556 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, 556 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11},
557 }, 557 },
558 RandomMiiData4{ 558 RandomMiiData4{
559 .gender = Gender::Male, 559 .gender = static_cast<u32>(Gender::Male),
560 .age = Age::Normal, 560 .age = static_cast<u32>(Age::Normal),
561 .race = Race::Asian, 561 .race = static_cast<u32>(Race::Asian),
562 .values_count = 13, 562 .values_count = 13,
563 .values = {0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 10, 11}, 563 .values = {0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 10, 11},
564 }, 564 },
565 RandomMiiData4{ 565 RandomMiiData4{
566 .gender = Gender::Male, 566 .gender = static_cast<u32>(Gender::Male),
567 .age = Age::Old, 567 .age = static_cast<u32>(Age::Old),
568 .race = Race::Asian, 568 .race = static_cast<u32>(Race::Asian),
569 .values_count = 12, 569 .values_count = 12,
570 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, 570 .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11},
571 }, 571 },
572 RandomMiiData4{ 572 RandomMiiData4{
573 .gender = Gender::Female, 573 .gender = static_cast<u32>(Gender::Female),
574 .age = Age::Young, 574 .age = static_cast<u32>(Age::Young),
575 .race = Race::Black, 575 .race = static_cast<u32>(Race::Black),
576 .values_count = 10, 576 .values_count = 10,
577 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, 577 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9},
578 }, 578 },
579 RandomMiiData4{ 579 RandomMiiData4{
580 .gender = Gender::Female, 580 .gender = static_cast<u32>(Gender::Female),
581 .age = Age::Normal, 581 .age = static_cast<u32>(Age::Normal),
582 .race = Race::Black, 582 .race = static_cast<u32>(Race::Black),
583 .values_count = 10, 583 .values_count = 10,
584 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, 584 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9},
585 }, 585 },
586 RandomMiiData4{ 586 RandomMiiData4{
587 .gender = Gender::Female, 587 .gender = static_cast<u32>(Gender::Female),
588 .age = Age::Old, 588 .age = static_cast<u32>(Age::Old),
589 .race = Race::Black, 589 .race = static_cast<u32>(Race::Black),
590 .values_count = 10, 590 .values_count = 10,
591 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, 591 .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9},
592 }, 592 },
593 RandomMiiData4{ 593 RandomMiiData4{
594 .gender = Gender::Female, 594 .gender = static_cast<u32>(Gender::Female),
595 .age = Age::Young, 595 .age = static_cast<u32>(Age::Young),
596 .race = Race::White, 596 .race = static_cast<u32>(Race::White),
597 .values_count = 12, 597 .values_count = 12,
598 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, 598 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10},
599 }, 599 },
600 RandomMiiData4{ 600 RandomMiiData4{
601 .gender = Gender::Female, 601 .gender = static_cast<u32>(Gender::Female),
602 .age = Age::Normal, 602 .age = static_cast<u32>(Age::Normal),
603 .race = Race::White, 603 .race = static_cast<u32>(Race::White),
604 .values_count = 12, 604 .values_count = 12,
605 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, 605 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10},
606 }, 606 },
607 RandomMiiData4{ 607 RandomMiiData4{
608 .gender = Gender::Female, 608 .gender = static_cast<u32>(Gender::Female),
609 .age = Age::Old, 609 .age = static_cast<u32>(Age::Old),
610 .race = Race::White, 610 .race = static_cast<u32>(Race::White),
611 .values_count = 12, 611 .values_count = 12,
612 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, 612 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10},
613 }, 613 },
614 RandomMiiData4{ 614 RandomMiiData4{
615 .gender = Gender::Female, 615 .gender = static_cast<u32>(Gender::Female),
616 .age = Age::Young, 616 .age = static_cast<u32>(Age::Young),
617 .race = Race::Asian, 617 .race = static_cast<u32>(Race::Asian),
618 .values_count = 12, 618 .values_count = 12,
619 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, 619 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10},
620 }, 620 },
621 RandomMiiData4{ 621 RandomMiiData4{
622 .gender = Gender::Female, 622 .gender = static_cast<u32>(Gender::Female),
623 .age = Age::Normal, 623 .age = static_cast<u32>(Age::Normal),
624 .race = Race::Asian, 624 .race = static_cast<u32>(Race::Asian),
625 .values_count = 12, 625 .values_count = 12,
626 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, 626 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10},
627 }, 627 },
628 RandomMiiData4{ 628 RandomMiiData4{
629 .gender = Gender::Female, 629 .gender = static_cast<u32>(Gender::Female),
630 .age = Age::Old, 630 .age = static_cast<u32>(Age::Old),
631 .race = Race::Asian, 631 .race = static_cast<u32>(Race::Asian),
632 .values_count = 12, 632 .values_count = 12,
633 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, 633 .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10},
634 }, 634 },
@@ -675,128 +675,128 @@ const std::array<RandomMiiData3, 6> RandomMiiFacelineColor{
675 675
676const std::array<RandomMiiData4, 18> RandomMiiFacelineWrinkle{ 676const std::array<RandomMiiData4, 18> RandomMiiFacelineWrinkle{
677 RandomMiiData4{ 677 RandomMiiData4{
678 .gender = Gender::Male, 678 .gender = static_cast<u32>(Gender::Male),
679 .age = Age::Young, 679 .age = static_cast<u32>(Age::Young),
680 .race = Race::Black, 680 .race = static_cast<u32>(Race::Black),
681 .values_count = 20, 681 .values_count = 20,
682 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, 682 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},
683 }, 683 },
684 RandomMiiData4{ 684 RandomMiiData4{
685 .gender = Gender::Male, 685 .gender = static_cast<u32>(Gender::Male),
686 .age = Age::Normal, 686 .age = static_cast<u32>(Age::Normal),
687 .race = Race::Black, 687 .race = static_cast<u32>(Race::Black),
688 .values_count = 20, 688 .values_count = 20,
689 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, 689 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},
690 }, 690 },
691 RandomMiiData4{ 691 RandomMiiData4{
692 .gender = Gender::Male, 692 .gender = static_cast<u32>(Gender::Male),
693 .age = Age::Old, 693 .age = static_cast<u32>(Age::Old),
694 .race = Race::Black, 694 .race = static_cast<u32>(Race::Black),
695 .values_count = 20, 695 .values_count = 20,
696 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8}, 696 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8},
697 }, 697 },
698 RandomMiiData4{ 698 RandomMiiData4{
699 .gender = Gender::Male, 699 .gender = static_cast<u32>(Gender::Male),
700 .age = Age::Young, 700 .age = static_cast<u32>(Age::Young),
701 .race = Race::White, 701 .race = static_cast<u32>(Race::White),
702 .values_count = 20, 702 .values_count = 20,
703 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9}, 703 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9},
704 }, 704 },
705 RandomMiiData4{ 705 RandomMiiData4{
706 .gender = Gender::Male, 706 .gender = static_cast<u32>(Gender::Male),
707 .age = Age::Normal, 707 .age = static_cast<u32>(Age::Normal),
708 .race = Race::White, 708 .race = static_cast<u32>(Race::White),
709 .values_count = 20, 709 .values_count = 20,
710 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9}, 710 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9},
711 }, 711 },
712 RandomMiiData4{ 712 RandomMiiData4{
713 .gender = Gender::Male, 713 .gender = static_cast<u32>(Gender::Male),
714 .age = Age::Old, 714 .age = static_cast<u32>(Age::Old),
715 .race = Race::White, 715 .race = static_cast<u32>(Race::White),
716 .values_count = 20, 716 .values_count = 20,
717 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 717 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
718 }, 718 },
719 RandomMiiData4{ 719 RandomMiiData4{
720 .gender = Gender::Male, 720 .gender = static_cast<u32>(Gender::Male),
721 .age = Age::Young, 721 .age = static_cast<u32>(Age::Young),
722 .race = Race::Asian, 722 .race = static_cast<u32>(Race::Asian),
723 .values_count = 20, 723 .values_count = 20,
724 .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11}, 724 .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11},
725 }, 725 },
726 RandomMiiData4{ 726 RandomMiiData4{
727 .gender = Gender::Male, 727 .gender = static_cast<u32>(Gender::Male),
728 .age = Age::Normal, 728 .age = static_cast<u32>(Age::Normal),
729 .race = Race::Asian, 729 .race = static_cast<u32>(Race::Asian),
730 .values_count = 20, 730 .values_count = 20,
731 .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11}, 731 .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11},
732 }, 732 },
733 RandomMiiData4{ 733 RandomMiiData4{
734 .gender = Gender::Male, 734 .gender = static_cast<u32>(Gender::Male),
735 .age = Age::Old, 735 .age = static_cast<u32>(Age::Old),
736 .race = Race::Asian, 736 .race = static_cast<u32>(Race::Asian),
737 .values_count = 20, 737 .values_count = 20,
738 .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11}, 738 .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11},
739 }, 739 },
740 RandomMiiData4{ 740 RandomMiiData4{
741 .gender = Gender::Female, 741 .gender = static_cast<u32>(Gender::Female),
742 .age = Age::Young, 742 .age = static_cast<u32>(Age::Young),
743 .race = Race::Black, 743 .race = static_cast<u32>(Race::Black),
744 .values_count = 20, 744 .values_count = 20,
745 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, 745 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},
746 }, 746 },
747 RandomMiiData4{ 747 RandomMiiData4{
748 .gender = Gender::Female, 748 .gender = static_cast<u32>(Gender::Female),
749 .age = Age::Normal, 749 .age = static_cast<u32>(Age::Normal),
750 .race = Race::Black, 750 .race = static_cast<u32>(Race::Black),
751 .values_count = 20, 751 .values_count = 20,
752 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, 752 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},
753 }, 753 },
754 RandomMiiData4{ 754 RandomMiiData4{
755 .gender = Gender::Female, 755 .gender = static_cast<u32>(Gender::Female),
756 .age = Age::Old, 756 .age = static_cast<u32>(Age::Old),
757 .race = Race::Black, 757 .race = static_cast<u32>(Race::Black),
758 .values_count = 20, 758 .values_count = 20,
759 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, 759 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8},
760 }, 760 },
761 RandomMiiData4{ 761 RandomMiiData4{
762 .gender = Gender::Female, 762 .gender = static_cast<u32>(Gender::Female),
763 .age = Age::Young, 763 .age = static_cast<u32>(Age::Young),
764 .race = Race::White, 764 .race = static_cast<u32>(Race::White),
765 .values_count = 20, 765 .values_count = 20,
766 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4, 8, 8}, 766 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4, 8, 8},
767 }, 767 },
768 RandomMiiData4{ 768 RandomMiiData4{
769 .gender = Gender::Female, 769 .gender = static_cast<u32>(Gender::Female),
770 .age = Age::Normal, 770 .age = static_cast<u32>(Age::Normal),
771 .race = Race::White, 771 .race = static_cast<u32>(Race::White),
772 .values_count = 20, 772 .values_count = 20,
773 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4, 8, 8}, 773 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4, 8, 8},
774 }, 774 },
775 RandomMiiData4{ 775 RandomMiiData4{
776 .gender = Gender::Female, 776 .gender = static_cast<u32>(Gender::Female),
777 .age = Age::Old, 777 .age = static_cast<u32>(Age::Old),
778 .race = Race::White, 778 .race = static_cast<u32>(Race::White),
779 .values_count = 20, 779 .values_count = 20,
780 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4}, 780 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4},
781 }, 781 },
782 RandomMiiData4{ 782 RandomMiiData4{
783 .gender = Gender::Female, 783 .gender = static_cast<u32>(Gender::Female),
784 .age = Age::Young, 784 .age = static_cast<u32>(Age::Young),
785 .race = Race::Asian, 785 .race = static_cast<u32>(Race::Asian),
786 .values_count = 20, 786 .values_count = 20,
787 .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11}, 787 .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11},
788 }, 788 },
789 RandomMiiData4{ 789 RandomMiiData4{
790 .gender = Gender::Female, 790 .gender = static_cast<u32>(Gender::Female),
791 .age = Age::Normal, 791 .age = static_cast<u32>(Age::Normal),
792 .race = Race::Asian, 792 .race = static_cast<u32>(Race::Asian),
793 .values_count = 20, 793 .values_count = 20,
794 .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11}, 794 .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11},
795 }, 795 },
796 RandomMiiData4{ 796 RandomMiiData4{
797 .gender = Gender::Female, 797 .gender = static_cast<u32>(Gender::Female),
798 .age = Age::Old, 798 .age = static_cast<u32>(Age::Old),
799 .race = Race::Asian, 799 .race = static_cast<u32>(Race::Asian),
800 .values_count = 20, 800 .values_count = 20,
801 .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11}, 801 .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11},
802 }, 802 },
@@ -804,128 +804,128 @@ const std::array<RandomMiiData4, 18> RandomMiiFacelineWrinkle{
804 804
805const std::array<RandomMiiData4, 18> RandomMiiFacelineMakeup{ 805const std::array<RandomMiiData4, 18> RandomMiiFacelineMakeup{
806 RandomMiiData4{ 806 RandomMiiData4{
807 .gender = Gender::Male, 807 .gender = static_cast<u32>(Gender::Male),
808 .age = Age::Young, 808 .age = static_cast<u32>(Age::Young),
809 .race = Race::Black, 809 .race = static_cast<u32>(Race::Black),
810 .values_count = 20, 810 .values_count = 20,
811 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 811 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
812 }, 812 },
813 RandomMiiData4{ 813 RandomMiiData4{
814 .gender = Gender::Male, 814 .gender = static_cast<u32>(Gender::Male),
815 .age = Age::Normal, 815 .age = static_cast<u32>(Age::Normal),
816 .race = Race::Black, 816 .race = static_cast<u32>(Race::Black),
817 .values_count = 20, 817 .values_count = 20,
818 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9}, 818 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9},
819 }, 819 },
820 RandomMiiData4{ 820 RandomMiiData4{
821 .gender = Gender::Male, 821 .gender = static_cast<u32>(Gender::Male),
822 .age = Age::Old, 822 .age = static_cast<u32>(Age::Old),
823 .race = Race::Black, 823 .race = static_cast<u32>(Race::Black),
824 .values_count = 20, 824 .values_count = 20,
825 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9}, 825 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9},
826 }, 826 },
827 RandomMiiData4{ 827 RandomMiiData4{
828 .gender = Gender::Male, 828 .gender = static_cast<u32>(Gender::Male),
829 .age = Age::Young, 829 .age = static_cast<u32>(Age::Young),
830 .race = Race::White, 830 .race = static_cast<u32>(Race::White),
831 .values_count = 20, 831 .values_count = 20,
832 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, 832 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9},
833 }, 833 },
834 RandomMiiData4{ 834 RandomMiiData4{
835 .gender = Gender::Male, 835 .gender = static_cast<u32>(Gender::Male),
836 .age = Age::Normal, 836 .age = static_cast<u32>(Age::Normal),
837 .race = Race::White, 837 .race = static_cast<u32>(Race::White),
838 .values_count = 20, 838 .values_count = 20,
839 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, 839 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9},
840 }, 840 },
841 RandomMiiData4{ 841 RandomMiiData4{
842 .gender = Gender::Male, 842 .gender = static_cast<u32>(Gender::Male),
843 .age = Age::Old, 843 .age = static_cast<u32>(Age::Old),
844 .race = Race::White, 844 .race = static_cast<u32>(Race::White),
845 .values_count = 20, 845 .values_count = 20,
846 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, 846 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9},
847 }, 847 },
848 RandomMiiData4{ 848 RandomMiiData4{
849 .gender = Gender::Male, 849 .gender = static_cast<u32>(Gender::Male),
850 .age = Age::Young, 850 .age = static_cast<u32>(Age::Young),
851 .race = Race::Asian, 851 .race = static_cast<u32>(Race::Asian),
852 .values_count = 20, 852 .values_count = 20,
853 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, 853 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9},
854 }, 854 },
855 RandomMiiData4{ 855 RandomMiiData4{
856 .gender = Gender::Male, 856 .gender = static_cast<u32>(Gender::Male),
857 .age = Age::Normal, 857 .age = static_cast<u32>(Age::Normal),
858 .race = Race::Asian, 858 .race = static_cast<u32>(Race::Asian),
859 .values_count = 20, 859 .values_count = 20,
860 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, 860 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9},
861 }, 861 },
862 RandomMiiData4{ 862 RandomMiiData4{
863 .gender = Gender::Male, 863 .gender = static_cast<u32>(Gender::Male),
864 .age = Age::Old, 864 .age = static_cast<u32>(Age::Old),
865 .race = Race::Asian, 865 .race = static_cast<u32>(Race::Asian),
866 .values_count = 20, 866 .values_count = 20,
867 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, 867 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9},
868 }, 868 },
869 RandomMiiData4{ 869 RandomMiiData4{
870 .gender = Gender::Female, 870 .gender = static_cast<u32>(Gender::Female),
871 .age = Age::Young, 871 .age = static_cast<u32>(Age::Young),
872 .race = Race::Black, 872 .race = static_cast<u32>(Race::Black),
873 .values_count = 20, 873 .values_count = 20,
874 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2}, 874 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2},
875 }, 875 },
876 RandomMiiData4{ 876 RandomMiiData4{
877 .gender = Gender::Female, 877 .gender = static_cast<u32>(Gender::Female),
878 .age = Age::Normal, 878 .age = static_cast<u32>(Age::Normal),
879 .race = Race::Black, 879 .race = static_cast<u32>(Race::Black),
880 .values_count = 20, 880 .values_count = 20,
881 .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 9, 9}, 881 .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 9, 9},
882 }, 882 },
883 RandomMiiData4{ 883 RandomMiiData4{
884 .gender = Gender::Female, 884 .gender = static_cast<u32>(Gender::Female),
885 .age = Age::Old, 885 .age = static_cast<u32>(Age::Old),
886 .race = Race::Black, 886 .race = static_cast<u32>(Race::Black),
887 .values_count = 20, 887 .values_count = 20,
888 .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 9, 9}, 888 .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 9, 9},
889 }, 889 },
890 RandomMiiData4{ 890 RandomMiiData4{
891 .gender = Gender::Female, 891 .gender = static_cast<u32>(Gender::Female),
892 .age = Age::Young, 892 .age = static_cast<u32>(Age::Young),
893 .race = Race::White, 893 .race = static_cast<u32>(Race::White),
894 .values_count = 20, 894 .values_count = 20,
895 .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9}, 895 .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9},
896 }, 896 },
897 RandomMiiData4{ 897 RandomMiiData4{
898 .gender = Gender::Female, 898 .gender = static_cast<u32>(Gender::Female),
899 .age = Age::Normal, 899 .age = static_cast<u32>(Age::Normal),
900 .race = Race::White, 900 .race = static_cast<u32>(Race::White),
901 .values_count = 20, 901 .values_count = 20,
902 .values = {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9}, 902 .values = {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9},
903 }, 903 },
904 RandomMiiData4{ 904 RandomMiiData4{
905 .gender = Gender::Female, 905 .gender = static_cast<u32>(Gender::Female),
906 .age = Age::Old, 906 .age = static_cast<u32>(Age::Old),
907 .race = Race::White, 907 .race = static_cast<u32>(Race::White),
908 .values_count = 20, 908 .values_count = 20,
909 .values = {0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 9}, 909 .values = {0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 9},
910 }, 910 },
911 RandomMiiData4{ 911 RandomMiiData4{
912 .gender = Gender::Female, 912 .gender = static_cast<u32>(Gender::Female),
913 .age = Age::Young, 913 .age = static_cast<u32>(Age::Young),
914 .race = Race::Asian, 914 .race = static_cast<u32>(Race::Asian),
915 .values_count = 20, 915 .values_count = 20,
916 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 916 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
917 }, 917 },
918 RandomMiiData4{ 918 RandomMiiData4{
919 .gender = Gender::Female, 919 .gender = static_cast<u32>(Gender::Female),
920 .age = Age::Normal, 920 .age = static_cast<u32>(Age::Normal),
921 .race = Race::Asian, 921 .race = static_cast<u32>(Race::Asian),
922 .values_count = 20, 922 .values_count = 20,
923 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 923 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
924 }, 924 },
925 RandomMiiData4{ 925 RandomMiiData4{
926 .gender = Gender::Female, 926 .gender = static_cast<u32>(Gender::Female),
927 .age = Age::Old, 927 .age = static_cast<u32>(Age::Old),
928 .race = Race::Asian, 928 .race = static_cast<u32>(Race::Asian),
929 .values_count = 20, 929 .values_count = 20,
930 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 930 .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
931 }, 931 },
@@ -933,147 +933,147 @@ const std::array<RandomMiiData4, 18> RandomMiiFacelineMakeup{
933 933
934const std::array<RandomMiiData4, 18> RandomMiiHairType{ 934const std::array<RandomMiiData4, 18> RandomMiiHairType{
935 RandomMiiData4{ 935 RandomMiiData4{
936 .gender = Gender::Male, 936 .gender = static_cast<u32>(Gender::Male),
937 .age = Age::Young, 937 .age = static_cast<u32>(Age::Young),
938 .race = Race::Black, 938 .race = static_cast<u32>(Race::Black),
939 .values_count = 30, 939 .values_count = 30,
940 .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 940 .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45,
941 47, 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 75, 76, 86, 89}, 941 47, 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 75, 76, 86, 89},
942 }, 942 },
943 RandomMiiData4{ 943 RandomMiiData4{
944 .gender = Gender::Male, 944 .gender = static_cast<u32>(Gender::Male),
945 .age = Age::Normal, 945 .age = static_cast<u32>(Age::Normal),
946 .race = Race::Black, 946 .race = static_cast<u32>(Race::Black),
947 .values_count = 31, 947 .values_count = 31,
948 .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47, 948 .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47,
949 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 73, 75, 81, 86, 87}, 949 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 73, 75, 81, 86, 87},
950 }, 950 },
951 RandomMiiData4{ 951 RandomMiiData4{
952 .gender = Gender::Male, 952 .gender = static_cast<u32>(Gender::Male),
953 .age = Age::Old, 953 .age = static_cast<u32>(Age::Old),
954 .race = Race::Black, 954 .race = static_cast<u32>(Race::Black),
955 .values_count = 31, 955 .values_count = 31,
956 .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47, 956 .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47,
957 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 73, 75, 81, 86, 87}, 957 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 73, 75, 81, 86, 87},
958 }, 958 },
959 RandomMiiData4{ 959 RandomMiiData4{
960 .gender = Gender::Male, 960 .gender = static_cast<u32>(Gender::Male),
961 .age = Age::Young, 961 .age = static_cast<u32>(Age::Young),
962 .race = Race::White, 962 .race = static_cast<u32>(Race::White),
963 .values_count = 38, 963 .values_count = 38,
964 .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 40, 42, 43, 44, 45, 47, 48, 49, 50, 964 .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 40, 42, 43, 44, 45, 47, 48, 49, 50,
965 51, 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 75, 76, 86, 89}, 965 51, 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 75, 76, 86, 89},
966 }, 966 },
967 RandomMiiData4{ 967 RandomMiiData4{
968 .gender = Gender::Male, 968 .gender = static_cast<u32>(Gender::Male),
969 .age = Age::Normal, 969 .age = static_cast<u32>(Age::Normal),
970 .race = Race::White, 970 .race = static_cast<u32>(Race::White),
971 .values_count = 39, 971 .values_count = 39,
972 .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 50, 51, 972 .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 50, 51,
973 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 73, 75, 81, 86, 87}, 973 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 73, 75, 81, 86, 87},
974 }, 974 },
975 RandomMiiData4{ 975 RandomMiiData4{
976 .gender = Gender::Male, 976 .gender = static_cast<u32>(Gender::Male),
977 .age = Age::Old, 977 .age = static_cast<u32>(Age::Old),
978 .race = Race::White, 978 .race = static_cast<u32>(Race::White),
979 .values_count = 39, 979 .values_count = 39,
980 .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 50, 51, 980 .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 50, 51,
981 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 73, 75, 81, 86, 87}, 981 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 73, 75, 81, 86, 87},
982 }, 982 },
983 RandomMiiData4{ 983 RandomMiiData4{
984 .gender = Gender::Male, 984 .gender = static_cast<u32>(Gender::Male),
985 .age = Age::Young, 985 .age = static_cast<u32>(Age::Young),
986 .race = Race::Asian, 986 .race = static_cast<u32>(Race::Asian),
987 .values_count = 18, 987 .values_count = 18,
988 .values = {13, 23, 30, 36, 37, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88}, 988 .values = {13, 23, 30, 36, 37, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88},
989 }, 989 },
990 RandomMiiData4{ 990 RandomMiiData4{
991 .gender = Gender::Male, 991 .gender = static_cast<u32>(Gender::Male),
992 .age = Age::Normal, 992 .age = static_cast<u32>(Age::Normal),
993 .race = Race::Asian, 993 .race = static_cast<u32>(Race::Asian),
994 .values_count = 19, 994 .values_count = 19,
995 .values = {13, 23, 30, 36, 37, 39, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88}, 995 .values = {13, 23, 30, 36, 37, 39, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88},
996 }, 996 },
997 RandomMiiData4{ 997 RandomMiiData4{
998 .gender = Gender::Male, 998 .gender = static_cast<u32>(Gender::Male),
999 .age = Age::Old, 999 .age = static_cast<u32>(Age::Old),
1000 .race = Race::Asian, 1000 .race = static_cast<u32>(Race::Asian),
1001 .values_count = 19, 1001 .values_count = 19,
1002 .values = {13, 23, 30, 36, 37, 39, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88}, 1002 .values = {13, 23, 30, 36, 37, 39, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88},
1003 }, 1003 },
1004 RandomMiiData4{ 1004 RandomMiiData4{
1005 .gender = Gender::Female, 1005 .gender = static_cast<u32>(Gender::Female),
1006 .age = Age::Young, 1006 .age = static_cast<u32>(Age::Young),
1007 .race = Race::Black, 1007 .race = static_cast<u32>(Race::Black),
1008 .values_count = 39, 1008 .values_count = 39,
1009 .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1009 .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
1010 21, 22, 24, 25, 26, 28, 46, 50, 61, 62, 63, 64, 69, 76, 77, 79, 80, 83, 85}, 1010 21, 22, 24, 25, 26, 28, 46, 50, 61, 62, 63, 64, 69, 76, 77, 79, 80, 83, 85},
1011 }, 1011 },
1012 RandomMiiData4{ 1012 RandomMiiData4{
1013 .gender = Gender::Female, 1013 .gender = static_cast<u32>(Gender::Female),
1014 .age = Age::Normal, 1014 .age = static_cast<u32>(Age::Normal),
1015 .race = Race::Black, 1015 .race = static_cast<u32>(Race::Black),
1016 .values_count = 42, 1016 .values_count = 42,
1017 .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 1017 .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14,
1018 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50, 1018 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50,
1019 61, 62, 63, 64, 69, 72, 74, 77, 78, 82, 83, 84, 85, 87}, 1019 61, 62, 63, 64, 69, 72, 74, 77, 78, 82, 83, 84, 85, 87},
1020 }, 1020 },
1021 RandomMiiData4{ 1021 RandomMiiData4{
1022 .gender = Gender::Female, 1022 .gender = static_cast<u32>(Gender::Female),
1023 .age = Age::Old, 1023 .age = static_cast<u32>(Age::Old),
1024 .race = Race::Black, 1024 .race = static_cast<u32>(Race::Black),
1025 .values_count = 42, 1025 .values_count = 42,
1026 .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 1026 .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14,
1027 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50, 1027 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50,
1028 61, 62, 63, 64, 69, 72, 74, 77, 78, 82, 83, 84, 85, 87}, 1028 61, 62, 63, 64, 69, 72, 74, 77, 78, 82, 83, 84, 85, 87},
1029 }, 1029 },
1030 RandomMiiData4{ 1030 RandomMiiData4{
1031 .gender = Gender::Female, 1031 .gender = static_cast<u32>(Gender::Female),
1032 .age = Age::Young, 1032 .age = static_cast<u32>(Age::Young),
1033 .race = Race::White, 1033 .race = static_cast<u32>(Race::White),
1034 .values_count = 44, 1034 .values_count = 44,
1035 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1035 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1036 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 42, 50, 1036 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 42, 50,
1037 58, 60, 62, 63, 64, 69, 71, 76, 79, 80, 81, 82, 83, 86}, 1037 58, 60, 62, 63, 64, 69, 71, 76, 79, 80, 81, 82, 83, 86},
1038 }, 1038 },
1039 RandomMiiData4{ 1039 RandomMiiData4{
1040 .gender = Gender::Female, 1040 .gender = static_cast<u32>(Gender::Female),
1041 .age = Age::Normal, 1041 .age = static_cast<u32>(Age::Normal),
1042 .race = Race::White, 1042 .race = static_cast<u32>(Race::White),
1043 .values_count = 44, 1043 .values_count = 44,
1044 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1044 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1045 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 50, 58, 1045 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 50, 58,
1046 60, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 84, 85}, 1046 60, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 84, 85},
1047 }, 1047 },
1048 RandomMiiData4{ 1048 RandomMiiData4{
1049 .gender = Gender::Female, 1049 .gender = static_cast<u32>(Gender::Female),
1050 .age = Age::Old, 1050 .age = static_cast<u32>(Age::Old),
1051 .race = Race::White, 1051 .race = static_cast<u32>(Race::White),
1052 .values_count = 44, 1052 .values_count = 44,
1053 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1053 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1054 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 50, 58, 1054 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 50, 58,
1055 60, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 84, 85}, 1055 60, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 84, 85},
1056 }, 1056 },
1057 RandomMiiData4{ 1057 RandomMiiData4{
1058 .gender = Gender::Female, 1058 .gender = static_cast<u32>(Gender::Female),
1059 .age = Age::Young, 1059 .age = static_cast<u32>(Age::Young),
1060 .race = Race::Asian, 1060 .race = static_cast<u32>(Race::Asian),
1061 .values_count = 24, 1061 .values_count = 24,
1062 .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 1062 .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14,
1063 16, 17, 18, 20, 21, 24, 25, 58, 62, 69, 76, 83}, 1063 16, 17, 18, 20, 21, 24, 25, 58, 62, 69, 76, 83},
1064 }, 1064 },
1065 RandomMiiData4{ 1065 RandomMiiData4{
1066 .gender = Gender::Female, 1066 .gender = static_cast<u32>(Gender::Female),
1067 .age = Age::Normal, 1067 .age = static_cast<u32>(Age::Normal),
1068 .race = Race::Asian, 1068 .race = static_cast<u32>(Race::Asian),
1069 .values_count = 27, 1069 .values_count = 27,
1070 .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17, 1070 .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17,
1071 18, 20, 21, 24, 25, 58, 62, 69, 74, 76, 81, 83, 85}, 1071 18, 20, 21, 24, 25, 58, 62, 69, 74, 76, 81, 83, 85},
1072 }, 1072 },
1073 RandomMiiData4{ 1073 RandomMiiData4{
1074 .gender = Gender::Female, 1074 .gender = static_cast<u32>(Gender::Female),
1075 .age = Age::Old, 1075 .age = static_cast<u32>(Age::Old),
1076 .race = Race::Asian, 1076 .race = static_cast<u32>(Race::Asian),
1077 .values_count = 27, 1077 .values_count = 27,
1078 .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17, 1078 .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17,
1079 18, 20, 21, 24, 25, 58, 62, 69, 74, 76, 81, 83, 85}, 1079 18, 20, 21, 24, 25, 58, 62, 69, 74, 76, 81, 83, 85},
@@ -1139,148 +1139,148 @@ const std::array<RandomMiiData3, 9> RandomMiiHairColor{
1139 1139
1140const std::array<RandomMiiData4, 18> RandomMiiEyeType{ 1140const std::array<RandomMiiData4, 18> RandomMiiEyeType{
1141 RandomMiiData4{ 1141 RandomMiiData4{
1142 .gender = Gender::Male, 1142 .gender = static_cast<u32>(Gender::Male),
1143 .age = Age::Young, 1143 .age = static_cast<u32>(Age::Young),
1144 .race = Race::Black, 1144 .race = static_cast<u32>(Race::Black),
1145 .values_count = 26, 1145 .values_count = 26,
1146 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 27, 1146 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 27,
1147 29, 32, 34, 36, 38, 39, 41, 43, 47, 49, 51, 53, 57}, 1147 29, 32, 34, 36, 38, 39, 41, 43, 47, 49, 51, 53, 57},
1148 }, 1148 },
1149 RandomMiiData4{ 1149 RandomMiiData4{
1150 .gender = Gender::Male, 1150 .gender = static_cast<u32>(Gender::Male),
1151 .age = Age::Normal, 1151 .age = static_cast<u32>(Age::Normal),
1152 .race = Race::Black, 1152 .race = static_cast<u32>(Race::Black),
1153 .values_count = 26, 1153 .values_count = 26,
1154 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 27, 1154 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 27,
1155 29, 32, 34, 36, 38, 39, 41, 43, 47, 49, 51, 53, 57}, 1155 29, 32, 34, 36, 38, 39, 41, 43, 47, 49, 51, 53, 57},
1156 }, 1156 },
1157 RandomMiiData4{ 1157 RandomMiiData4{
1158 .gender = Gender::Male, 1158 .gender = static_cast<u32>(Gender::Male),
1159 .age = Age::Old, 1159 .age = static_cast<u32>(Age::Old),
1160 .race = Race::Black, 1160 .race = static_cast<u32>(Race::Black),
1161 .values_count = 27, 1161 .values_count = 27,
1162 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 26, 27, 1162 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 26, 27,
1163 29, 32, 34, 36, 38, 39, 41, 43, 47, 48, 49, 53, 57}, 1163 29, 32, 34, 36, 38, 39, 41, 43, 47, 48, 49, 53, 57},
1164 }, 1164 },
1165 RandomMiiData4{ 1165 RandomMiiData4{
1166 .gender = Gender::Male, 1166 .gender = static_cast<u32>(Gender::Male),
1167 .age = Age::Young, 1167 .age = static_cast<u32>(Age::Young),
1168 .race = Race::White, 1168 .race = static_cast<u32>(Race::White),
1169 .values_count = 35, 1169 .values_count = 35,
1170 .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 27, 29, 1170 .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 27, 29,
1171 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 49, 51, 53, 55, 56, 57}, 1171 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 49, 51, 53, 55, 56, 57},
1172 }, 1172 },
1173 RandomMiiData4{ 1173 RandomMiiData4{
1174 .gender = Gender::Male, 1174 .gender = static_cast<u32>(Gender::Male),
1175 .age = Age::Normal, 1175 .age = static_cast<u32>(Age::Normal),
1176 .race = Race::White, 1176 .race = static_cast<u32>(Race::White),
1177 .values_count = 35, 1177 .values_count = 35,
1178 .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 27, 29, 1178 .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 27, 29,
1179 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 49, 51, 53, 55, 56, 57}, 1179 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 49, 51, 53, 55, 56, 57},
1180 }, 1180 },
1181 RandomMiiData4{ 1181 RandomMiiData4{
1182 .gender = Gender::Male, 1182 .gender = static_cast<u32>(Gender::Male),
1183 .age = Age::Old, 1183 .age = static_cast<u32>(Age::Old),
1184 .race = Race::White, 1184 .race = static_cast<u32>(Race::White),
1185 .values_count = 35, 1185 .values_count = 35,
1186 .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 18, 21, 22, 26, 27, 29, 1186 .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 18, 21, 22, 26, 27, 29,
1187 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 48, 49, 50, 53, 56, 57}, 1187 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 48, 49, 50, 53, 56, 57},
1188 }, 1188 },
1189 RandomMiiData4{ 1189 RandomMiiData4{
1190 .gender = Gender::Male, 1190 .gender = static_cast<u32>(Gender::Male),
1191 .age = Age::Young, 1191 .age = static_cast<u32>(Age::Young),
1192 .race = Race::Asian, 1192 .race = static_cast<u32>(Race::Asian),
1193 .values_count = 30, 1193 .values_count = 30,
1194 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 21, 1194 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 21,
1195 22, 31, 32, 34, 36, 37, 39, 41, 44, 49, 51, 53, 55, 56, 57}, 1195 22, 31, 32, 34, 36, 37, 39, 41, 44, 49, 51, 53, 55, 56, 57},
1196 }, 1196 },
1197 RandomMiiData4{ 1197 RandomMiiData4{
1198 .gender = Gender::Male, 1198 .gender = static_cast<u32>(Gender::Male),
1199 .age = Age::Normal, 1199 .age = static_cast<u32>(Age::Normal),
1200 .race = Race::Asian, 1200 .race = static_cast<u32>(Race::Asian),
1201 .values_count = 30, 1201 .values_count = 30,
1202 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 21, 1202 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 21,
1203 22, 31, 32, 34, 36, 37, 39, 41, 44, 49, 51, 53, 55, 56, 57}, 1203 22, 31, 32, 34, 36, 37, 39, 41, 44, 49, 51, 53, 55, 56, 57},
1204 }, 1204 },
1205 RandomMiiData4{ 1205 RandomMiiData4{
1206 .gender = Gender::Male, 1206 .gender = static_cast<u32>(Gender::Male),
1207 .age = Age::Old, 1207 .age = static_cast<u32>(Age::Old),
1208 .race = Race::Asian, 1208 .race = static_cast<u32>(Race::Asian),
1209 .values_count = 30, 1209 .values_count = 30,
1210 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 21, 22, 1210 .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 21, 22,
1211 26, 31, 32, 34, 36, 37, 39, 41, 44, 48, 49, 50, 51, 53, 57}, 1211 26, 31, 32, 34, 36, 37, 39, 41, 44, 48, 49, 50, 51, 53, 57},
1212 }, 1212 },
1213 RandomMiiData4{ 1213 RandomMiiData4{
1214 .gender = Gender::Female, 1214 .gender = static_cast<u32>(Gender::Female),
1215 .age = Age::Young, 1215 .age = static_cast<u32>(Age::Young),
1216 .race = Race::Black, 1216 .race = static_cast<u32>(Race::Black),
1217 .values_count = 39, 1217 .values_count = 39,
1218 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27, 1218 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27,
1219 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59}, 1219 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59},
1220 }, 1220 },
1221 RandomMiiData4{ 1221 RandomMiiData4{
1222 .gender = Gender::Female, 1222 .gender = static_cast<u32>(Gender::Female),
1223 .age = Age::Normal, 1223 .age = static_cast<u32>(Age::Normal),
1224 .race = Race::Black, 1224 .race = static_cast<u32>(Race::Black),
1225 .values_count = 39, 1225 .values_count = 39,
1226 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27, 1226 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27,
1227 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59}, 1227 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59},
1228 }, 1228 },
1229 RandomMiiData4{ 1229 RandomMiiData4{
1230 .gender = Gender::Female, 1230 .gender = static_cast<u32>(Gender::Female),
1231 .age = Age::Old, 1231 .age = static_cast<u32>(Age::Old),
1232 .race = Race::Black, 1232 .race = static_cast<u32>(Race::Black),
1233 .values_count = 40, 1233 .values_count = 40,
1234 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 26, 1234 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 26,
1235 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59}, 1235 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59},
1236 }, 1236 },
1237 RandomMiiData4{ 1237 RandomMiiData4{
1238 .gender = Gender::Female, 1238 .gender = static_cast<u32>(Gender::Female),
1239 .age = Age::Young, 1239 .age = static_cast<u32>(Age::Young),
1240 .race = Race::White, 1240 .race = static_cast<u32>(Race::White),
1241 .values_count = 46, 1241 .values_count = 46,
1242 .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 1242 .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17,
1243 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37, 1243 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37,
1244 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59}, 1244 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59},
1245 }, 1245 },
1246 RandomMiiData4{ 1246 RandomMiiData4{
1247 .gender = Gender::Female, 1247 .gender = static_cast<u32>(Gender::Female),
1248 .age = Age::Normal, 1248 .age = static_cast<u32>(Age::Normal),
1249 .race = Race::White, 1249 .race = static_cast<u32>(Race::White),
1250 .values_count = 46, 1250 .values_count = 46,
1251 .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 1251 .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17,
1252 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37, 1252 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37,
1253 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59}, 1253 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59},
1254 }, 1254 },
1255 RandomMiiData4{ 1255 RandomMiiData4{
1256 .gender = Gender::Female, 1256 .gender = static_cast<u32>(Gender::Female),
1257 .age = Age::Old, 1257 .age = static_cast<u32>(Age::Old),
1258 .race = Race::White, 1258 .race = static_cast<u32>(Race::White),
1259 .values_count = 46, 1259 .values_count = 46,
1260 .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 1260 .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18,
1261 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 1261 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37,
1262 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59}, 1262 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59},
1263 }, 1263 },
1264 RandomMiiData4{ 1264 RandomMiiData4{
1265 .gender = Gender::Female, 1265 .gender = static_cast<u32>(Gender::Female),
1266 .age = Age::Young, 1266 .age = static_cast<u32>(Age::Young),
1267 .race = Race::Asian, 1267 .race = static_cast<u32>(Race::Asian),
1268 .values_count = 34, 1268 .values_count = 34,
1269 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 1269 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23,
1270 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47}, 1270 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47},
1271 }, 1271 },
1272 RandomMiiData4{ 1272 RandomMiiData4{
1273 .gender = Gender::Female, 1273 .gender = static_cast<u32>(Gender::Female),
1274 .age = Age::Normal, 1274 .age = static_cast<u32>(Age::Normal),
1275 .race = Race::Asian, 1275 .race = static_cast<u32>(Race::Asian),
1276 .values_count = 34, 1276 .values_count = 34,
1277 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 1277 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23,
1278 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47}, 1278 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47},
1279 }, 1279 },
1280 RandomMiiData4{ 1280 RandomMiiData4{
1281 .gender = Gender::Female, 1281 .gender = static_cast<u32>(Gender::Female),
1282 .age = Age::Old, 1282 .age = static_cast<u32>(Age::Old),
1283 .race = Race::Asian, 1283 .race = static_cast<u32>(Race::Asian),
1284 .values_count = 35, 1284 .values_count = 35,
1285 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 1285 .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24,
1286 25, 26, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47}, 1286 25, 26, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47},
@@ -1307,131 +1307,131 @@ const std::array<RandomMiiData2, 3> RandomMiiEyeColor{
1307 1307
1308const std::array<RandomMiiData4, 18> RandomMiiEyebrowType{ 1308const std::array<RandomMiiData4, 18> RandomMiiEyebrowType{
1309 RandomMiiData4{ 1309 RandomMiiData4{
1310 .gender = Gender::Male, 1310 .gender = static_cast<u32>(Gender::Male),
1311 .age = Age::Young, 1311 .age = static_cast<u32>(Age::Young),
1312 .race = Race::Black, 1312 .race = static_cast<u32>(Race::Black),
1313 .values_count = 18, 1313 .values_count = 18,
1314 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20}, 1314 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20},
1315 }, 1315 },
1316 RandomMiiData4{ 1316 RandomMiiData4{
1317 .gender = Gender::Male, 1317 .gender = static_cast<u32>(Gender::Male),
1318 .age = Age::Normal, 1318 .age = static_cast<u32>(Age::Normal),
1319 .race = Race::Black, 1319 .race = static_cast<u32>(Race::Black),
1320 .values_count = 18, 1320 .values_count = 18,
1321 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20}, 1321 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20},
1322 }, 1322 },
1323 RandomMiiData4{ 1323 RandomMiiData4{
1324 .gender = Gender::Male, 1324 .gender = static_cast<u32>(Gender::Male),
1325 .age = Age::Old, 1325 .age = static_cast<u32>(Age::Old),
1326 .race = Race::Black, 1326 .race = static_cast<u32>(Race::Black),
1327 .values_count = 18, 1327 .values_count = 18,
1328 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20}, 1328 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20},
1329 }, 1329 },
1330 RandomMiiData4{ 1330 RandomMiiData4{
1331 .gender = Gender::Male, 1331 .gender = static_cast<u32>(Gender::Male),
1332 .age = Age::Young, 1332 .age = static_cast<u32>(Age::Young),
1333 .race = Race::White, 1333 .race = static_cast<u32>(Race::White),
1334 .values_count = 23, 1334 .values_count = 23,
1335 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1335 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1336 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, 1336 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22},
1337 }, 1337 },
1338 RandomMiiData4{ 1338 RandomMiiData4{
1339 .gender = Gender::Male, 1339 .gender = static_cast<u32>(Gender::Male),
1340 .age = Age::Normal, 1340 .age = static_cast<u32>(Age::Normal),
1341 .race = Race::White, 1341 .race = static_cast<u32>(Race::White),
1342 .values_count = 23, 1342 .values_count = 23,
1343 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1343 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1344 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, 1344 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22},
1345 }, 1345 },
1346 RandomMiiData4{ 1346 RandomMiiData4{
1347 .gender = Gender::Male, 1347 .gender = static_cast<u32>(Gender::Male),
1348 .age = Age::Old, 1348 .age = static_cast<u32>(Age::Old),
1349 .race = Race::White, 1349 .race = static_cast<u32>(Race::White),
1350 .values_count = 23, 1350 .values_count = 23,
1351 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1351 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1352 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, 1352 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22},
1353 }, 1353 },
1354 RandomMiiData4{ 1354 RandomMiiData4{
1355 .gender = Gender::Male, 1355 .gender = static_cast<u32>(Gender::Male),
1356 .age = Age::Young, 1356 .age = static_cast<u32>(Age::Young),
1357 .race = Race::Asian, 1357 .race = static_cast<u32>(Race::Asian),
1358 .values_count = 21, 1358 .values_count = 21,
1359 .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22}, 1359 .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22},
1360 }, 1360 },
1361 RandomMiiData4{ 1361 RandomMiiData4{
1362 .gender = Gender::Male, 1362 .gender = static_cast<u32>(Gender::Male),
1363 .age = Age::Normal, 1363 .age = static_cast<u32>(Age::Normal),
1364 .race = Race::Asian, 1364 .race = static_cast<u32>(Race::Asian),
1365 .values_count = 21, 1365 .values_count = 21,
1366 .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22}, 1366 .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22},
1367 }, 1367 },
1368 RandomMiiData4{ 1368 RandomMiiData4{
1369 .gender = Gender::Male, 1369 .gender = static_cast<u32>(Gender::Male),
1370 .age = Age::Old, 1370 .age = static_cast<u32>(Age::Old),
1371 .race = Race::Asian, 1371 .race = static_cast<u32>(Race::Asian),
1372 .values_count = 21, 1372 .values_count = 21,
1373 .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22}, 1373 .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22},
1374 }, 1374 },
1375 RandomMiiData4{ 1375 RandomMiiData4{
1376 .gender = Gender::Female, 1376 .gender = static_cast<u32>(Gender::Female),
1377 .age = Age::Young, 1377 .age = static_cast<u32>(Age::Young),
1378 .race = Race::Black, 1378 .race = static_cast<u32>(Race::Black),
1379 .values_count = 9, 1379 .values_count = 9,
1380 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13}, 1380 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13},
1381 }, 1381 },
1382 RandomMiiData4{ 1382 RandomMiiData4{
1383 .gender = Gender::Female, 1383 .gender = static_cast<u32>(Gender::Female),
1384 .age = Age::Normal, 1384 .age = static_cast<u32>(Age::Normal),
1385 .race = Race::Black, 1385 .race = static_cast<u32>(Race::Black),
1386 .values_count = 9, 1386 .values_count = 9,
1387 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13}, 1387 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13},
1388 }, 1388 },
1389 RandomMiiData4{ 1389 RandomMiiData4{
1390 .gender = Gender::Female, 1390 .gender = static_cast<u32>(Gender::Female),
1391 .age = Age::Old, 1391 .age = static_cast<u32>(Age::Old),
1392 .race = Race::Black, 1392 .race = static_cast<u32>(Race::Black),
1393 .values_count = 9, 1393 .values_count = 9,
1394 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13}, 1394 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13},
1395 }, 1395 },
1396 RandomMiiData4{ 1396 RandomMiiData4{
1397 .gender = Gender::Female, 1397 .gender = static_cast<u32>(Gender::Female),
1398 .age = Age::Young, 1398 .age = static_cast<u32>(Age::Young),
1399 .race = Race::White, 1399 .race = static_cast<u32>(Race::White),
1400 .values_count = 11, 1400 .values_count = 11,
1401 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19}, 1401 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19},
1402 }, 1402 },
1403 RandomMiiData4{ 1403 RandomMiiData4{
1404 .gender = Gender::Female, 1404 .gender = static_cast<u32>(Gender::Female),
1405 .age = Age::Normal, 1405 .age = static_cast<u32>(Age::Normal),
1406 .race = Race::White, 1406 .race = static_cast<u32>(Race::White),
1407 .values_count = 11, 1407 .values_count = 11,
1408 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19}, 1408 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19},
1409 }, 1409 },
1410 RandomMiiData4{ 1410 RandomMiiData4{
1411 .gender = Gender::Female, 1411 .gender = static_cast<u32>(Gender::Female),
1412 .age = Age::Old, 1412 .age = static_cast<u32>(Age::Old),
1413 .race = Race::White, 1413 .race = static_cast<u32>(Race::White),
1414 .values_count = 11, 1414 .values_count = 11,
1415 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19}, 1415 .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19},
1416 }, 1416 },
1417 RandomMiiData4{ 1417 RandomMiiData4{
1418 .gender = Gender::Female, 1418 .gender = static_cast<u32>(Gender::Female),
1419 .age = Age::Young, 1419 .age = static_cast<u32>(Age::Young),
1420 .race = Race::Asian, 1420 .race = static_cast<u32>(Race::Asian),
1421 .values_count = 9, 1421 .values_count = 9,
1422 .values = {0, 3, 7, 8, 9, 10, 11, 13, 15}, 1422 .values = {0, 3, 7, 8, 9, 10, 11, 13, 15},
1423 }, 1423 },
1424 RandomMiiData4{ 1424 RandomMiiData4{
1425 .gender = Gender::Female, 1425 .gender = static_cast<u32>(Gender::Female),
1426 .age = Age::Normal, 1426 .age = static_cast<u32>(Age::Normal),
1427 .race = Race::Asian, 1427 .race = static_cast<u32>(Race::Asian),
1428 .values_count = 9, 1428 .values_count = 9,
1429 .values = {0, 3, 7, 8, 9, 10, 11, 13, 15}, 1429 .values = {0, 3, 7, 8, 9, 10, 11, 13, 15},
1430 }, 1430 },
1431 RandomMiiData4{ 1431 RandomMiiData4{
1432 .gender = Gender::Female, 1432 .gender = static_cast<u32>(Gender::Female),
1433 .age = Age::Old, 1433 .age = static_cast<u32>(Age::Old),
1434 .race = Race::Asian, 1434 .race = static_cast<u32>(Race::Asian),
1435 .values_count = 9, 1435 .values_count = 9,
1436 .values = {0, 3, 7, 8, 9, 10, 11, 13, 15}, 1436 .values = {0, 3, 7, 8, 9, 10, 11, 13, 15},
1437 }, 1437 },
@@ -1439,128 +1439,128 @@ const std::array<RandomMiiData4, 18> RandomMiiEyebrowType{
1439 1439
1440const std::array<RandomMiiData4, 18> RandomMiiNoseType{ 1440const std::array<RandomMiiData4, 18> RandomMiiNoseType{
1441 RandomMiiData4{ 1441 RandomMiiData4{
1442 .gender = Gender::Male, 1442 .gender = static_cast<u32>(Gender::Male),
1443 .age = Age::Young, 1443 .age = static_cast<u32>(Age::Young),
1444 .race = Race::Black, 1444 .race = static_cast<u32>(Race::Black),
1445 .values_count = 11, 1445 .values_count = 11,
1446 .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14}, 1446 .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14},
1447 }, 1447 },
1448 RandomMiiData4{ 1448 RandomMiiData4{
1449 .gender = Gender::Male, 1449 .gender = static_cast<u32>(Gender::Male),
1450 .age = Age::Normal, 1450 .age = static_cast<u32>(Age::Normal),
1451 .race = Race::Black, 1451 .race = static_cast<u32>(Race::Black),
1452 .values_count = 11, 1452 .values_count = 11,
1453 .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14}, 1453 .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14},
1454 }, 1454 },
1455 RandomMiiData4{ 1455 RandomMiiData4{
1456 .gender = Gender::Male, 1456 .gender = static_cast<u32>(Gender::Male),
1457 .age = Age::Old, 1457 .age = static_cast<u32>(Age::Old),
1458 .race = Race::Black, 1458 .race = static_cast<u32>(Race::Black),
1459 .values_count = 11, 1459 .values_count = 11,
1460 .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14}, 1460 .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14},
1461 }, 1461 },
1462 RandomMiiData4{ 1462 RandomMiiData4{
1463 .gender = Gender::Male, 1463 .gender = static_cast<u32>(Gender::Male),
1464 .age = Age::Young, 1464 .age = static_cast<u32>(Age::Young),
1465 .race = Race::White, 1465 .race = static_cast<u32>(Race::White),
1466 .values_count = 18, 1466 .values_count = 18,
1467 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, 1467 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
1468 }, 1468 },
1469 RandomMiiData4{ 1469 RandomMiiData4{
1470 .gender = Gender::Male, 1470 .gender = static_cast<u32>(Gender::Male),
1471 .age = Age::Normal, 1471 .age = static_cast<u32>(Age::Normal),
1472 .race = Race::White, 1472 .race = static_cast<u32>(Race::White),
1473 .values_count = 18, 1473 .values_count = 18,
1474 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, 1474 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
1475 }, 1475 },
1476 RandomMiiData4{ 1476 RandomMiiData4{
1477 .gender = Gender::Male, 1477 .gender = static_cast<u32>(Gender::Male),
1478 .age = Age::Old, 1478 .age = static_cast<u32>(Age::Old),
1479 .race = Race::White, 1479 .race = static_cast<u32>(Race::White),
1480 .values_count = 15, 1480 .values_count = 15,
1481 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16}, 1481 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16},
1482 }, 1482 },
1483 RandomMiiData4{ 1483 RandomMiiData4{
1484 .gender = Gender::Male, 1484 .gender = static_cast<u32>(Gender::Male),
1485 .age = Age::Young, 1485 .age = static_cast<u32>(Age::Young),
1486 .race = Race::Asian, 1486 .race = static_cast<u32>(Race::Asian),
1487 .values_count = 18, 1487 .values_count = 18,
1488 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, 1488 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
1489 }, 1489 },
1490 RandomMiiData4{ 1490 RandomMiiData4{
1491 .gender = Gender::Male, 1491 .gender = static_cast<u32>(Gender::Male),
1492 .age = Age::Normal, 1492 .age = static_cast<u32>(Age::Normal),
1493 .race = Race::Asian, 1493 .race = static_cast<u32>(Race::Asian),
1494 .values_count = 18, 1494 .values_count = 18,
1495 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, 1495 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
1496 }, 1496 },
1497 RandomMiiData4{ 1497 RandomMiiData4{
1498 .gender = Gender::Male, 1498 .gender = static_cast<u32>(Gender::Male),
1499 .age = Age::Old, 1499 .age = static_cast<u32>(Age::Old),
1500 .race = Race::Asian, 1500 .race = static_cast<u32>(Race::Asian),
1501 .values_count = 15, 1501 .values_count = 15,
1502 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16}, 1502 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16},
1503 }, 1503 },
1504 RandomMiiData4{ 1504 RandomMiiData4{
1505 .gender = Gender::Female, 1505 .gender = static_cast<u32>(Gender::Female),
1506 .age = Age::Young, 1506 .age = static_cast<u32>(Age::Young),
1507 .race = Race::Black, 1507 .race = static_cast<u32>(Race::Black),
1508 .values_count = 8, 1508 .values_count = 8,
1509 .values = {0, 1, 3, 4, 8, 10, 13, 14}, 1509 .values = {0, 1, 3, 4, 8, 10, 13, 14},
1510 }, 1510 },
1511 RandomMiiData4{ 1511 RandomMiiData4{
1512 .gender = Gender::Female, 1512 .gender = static_cast<u32>(Gender::Female),
1513 .age = Age::Normal, 1513 .age = static_cast<u32>(Age::Normal),
1514 .race = Race::Black, 1514 .race = static_cast<u32>(Race::Black),
1515 .values_count = 8, 1515 .values_count = 8,
1516 .values = {0, 1, 3, 4, 8, 10, 13, 14}, 1516 .values = {0, 1, 3, 4, 8, 10, 13, 14},
1517 }, 1517 },
1518 RandomMiiData4{ 1518 RandomMiiData4{
1519 .gender = Gender::Female, 1519 .gender = static_cast<u32>(Gender::Female),
1520 .age = Age::Old, 1520 .age = static_cast<u32>(Age::Old),
1521 .race = Race::Black, 1521 .race = static_cast<u32>(Race::Black),
1522 .values_count = 8, 1522 .values_count = 8,
1523 .values = {0, 1, 3, 4, 8, 10, 13, 14}, 1523 .values = {0, 1, 3, 4, 8, 10, 13, 14},
1524 }, 1524 },
1525 RandomMiiData4{ 1525 RandomMiiData4{
1526 .gender = Gender::Female, 1526 .gender = static_cast<u32>(Gender::Female),
1527 .age = Age::Young, 1527 .age = static_cast<u32>(Age::Young),
1528 .race = Race::White, 1528 .race = static_cast<u32>(Race::White),
1529 .values_count = 12, 1529 .values_count = 12,
1530 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 14, 15}, 1530 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 14, 15},
1531 }, 1531 },
1532 RandomMiiData4{ 1532 RandomMiiData4{
1533 .gender = Gender::Female, 1533 .gender = static_cast<u32>(Gender::Female),
1534 .age = Age::Normal, 1534 .age = static_cast<u32>(Age::Normal),
1535 .race = Race::White, 1535 .race = static_cast<u32>(Race::White),
1536 .values_count = 11, 1536 .values_count = 11,
1537 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 15}, 1537 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 15},
1538 }, 1538 },
1539 RandomMiiData4{ 1539 RandomMiiData4{
1540 .gender = Gender::Female, 1540 .gender = static_cast<u32>(Gender::Female),
1541 .age = Age::Old, 1541 .age = static_cast<u32>(Age::Old),
1542 .race = Race::White, 1542 .race = static_cast<u32>(Race::White),
1543 .values_count = 10, 1543 .values_count = 10,
1544 .values = {0, 1, 3, 4, 6, 8, 10, 11, 13, 14}, 1544 .values = {0, 1, 3, 4, 6, 8, 10, 11, 13, 14},
1545 }, 1545 },
1546 RandomMiiData4{ 1546 RandomMiiData4{
1547 .gender = Gender::Female, 1547 .gender = static_cast<u32>(Gender::Female),
1548 .age = Age::Young, 1548 .age = static_cast<u32>(Age::Young),
1549 .race = Race::Asian, 1549 .race = static_cast<u32>(Race::Asian),
1550 .values_count = 12, 1550 .values_count = 12,
1551 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 14, 15}, 1551 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 14, 15},
1552 }, 1552 },
1553 RandomMiiData4{ 1553 RandomMiiData4{
1554 .gender = Gender::Female, 1554 .gender = static_cast<u32>(Gender::Female),
1555 .age = Age::Normal, 1555 .age = static_cast<u32>(Age::Normal),
1556 .race = Race::Asian, 1556 .race = static_cast<u32>(Race::Asian),
1557 .values_count = 11, 1557 .values_count = 11,
1558 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 15}, 1558 .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 15},
1559 }, 1559 },
1560 RandomMiiData4{ 1560 RandomMiiData4{
1561 .gender = Gender::Female, 1561 .gender = static_cast<u32>(Gender::Female),
1562 .age = Age::Old, 1562 .age = static_cast<u32>(Age::Old),
1563 .race = Race::Asian, 1563 .race = static_cast<u32>(Race::Asian),
1564 .values_count = 10, 1564 .values_count = 10,
1565 .values = {0, 1, 3, 4, 6, 8, 10, 11, 13, 14}, 1565 .values = {0, 1, 3, 4, 6, 8, 10, 11, 13, 14},
1566 }, 1566 },
@@ -1568,145 +1568,145 @@ const std::array<RandomMiiData4, 18> RandomMiiNoseType{
1568 1568
1569const std::array<RandomMiiData4, 18> RandomMiiMouthType{ 1569const std::array<RandomMiiData4, 18> RandomMiiMouthType{
1570 RandomMiiData4{ 1570 RandomMiiData4{
1571 .gender = Gender::Male, 1571 .gender = static_cast<u32>(Gender::Male),
1572 .age = Age::Young, 1572 .age = static_cast<u32>(Age::Young),
1573 .race = Race::Black, 1573 .race = static_cast<u32>(Race::Black),
1574 .values_count = 25, 1574 .values_count = 25,
1575 .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 18, 1575 .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 18,
1576 19, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 35}, 1576 19, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 35},
1577 }, 1577 },
1578 RandomMiiData4{ 1578 RandomMiiData4{
1579 .gender = Gender::Male, 1579 .gender = static_cast<u32>(Gender::Male),
1580 .age = Age::Normal, 1580 .age = static_cast<u32>(Age::Normal),
1581 .race = Race::Black, 1581 .race = static_cast<u32>(Race::Black),
1582 .values_count = 27, 1582 .values_count = 27,
1583 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 1583 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17,
1584 18, 19, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 35}, 1584 18, 19, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 35},
1585 }, 1585 },
1586 RandomMiiData4{ 1586 RandomMiiData4{
1587 .gender = Gender::Male, 1587 .gender = static_cast<u32>(Gender::Male),
1588 .age = Age::Old, 1588 .age = static_cast<u32>(Age::Old),
1589 .race = Race::Black, 1589 .race = static_cast<u32>(Race::Black),
1590 .values_count = 28, 1590 .values_count = 28,
1591 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 1591 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17,
1592 18, 19, 21, 22, 23, 25, 26, 28, 30, 31, 32, 33, 34, 35}, 1592 18, 19, 21, 22, 23, 25, 26, 28, 30, 31, 32, 33, 34, 35},
1593 }, 1593 },
1594 RandomMiiData4{ 1594 RandomMiiData4{
1595 .gender = Gender::Male, 1595 .gender = static_cast<u32>(Gender::Male),
1596 .age = Age::Young, 1596 .age = static_cast<u32>(Age::Young),
1597 .race = Race::White, 1597 .race = static_cast<u32>(Race::White),
1598 .values_count = 24, 1598 .values_count = 24,
1599 .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 1599 .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16,
1600 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, 1600 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35},
1601 }, 1601 },
1602 RandomMiiData4{ 1602 RandomMiiData4{
1603 .gender = Gender::Male, 1603 .gender = static_cast<u32>(Gender::Male),
1604 .age = Age::Normal, 1604 .age = static_cast<u32>(Age::Normal),
1605 .race = Race::White, 1605 .race = static_cast<u32>(Race::White),
1606 .values_count = 26, 1606 .values_count = 26,
1607 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1607 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1608 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, 1608 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35},
1609 }, 1609 },
1610 RandomMiiData4{ 1610 RandomMiiData4{
1611 .gender = Gender::Male, 1611 .gender = static_cast<u32>(Gender::Male),
1612 .age = Age::Old, 1612 .age = static_cast<u32>(Age::Old),
1613 .race = Race::White, 1613 .race = static_cast<u32>(Race::White),
1614 .values_count = 26, 1614 .values_count = 26,
1615 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1615 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1616 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, 1616 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35},
1617 }, 1617 },
1618 RandomMiiData4{ 1618 RandomMiiData4{
1619 .gender = Gender::Male, 1619 .gender = static_cast<u32>(Gender::Male),
1620 .age = Age::Young, 1620 .age = static_cast<u32>(Age::Young),
1621 .race = Race::Asian, 1621 .race = static_cast<u32>(Race::Asian),
1622 .values_count = 24, 1622 .values_count = 24,
1623 .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 1623 .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16,
1624 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, 1624 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35},
1625 }, 1625 },
1626 RandomMiiData4{ 1626 RandomMiiData4{
1627 .gender = Gender::Male, 1627 .gender = static_cast<u32>(Gender::Male),
1628 .age = Age::Normal, 1628 .age = static_cast<u32>(Age::Normal),
1629 .race = Race::Asian, 1629 .race = static_cast<u32>(Race::Asian),
1630 .values_count = 26, 1630 .values_count = 26,
1631 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1631 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1632 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, 1632 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35},
1633 }, 1633 },
1634 RandomMiiData4{ 1634 RandomMiiData4{
1635 .gender = Gender::Male, 1635 .gender = static_cast<u32>(Gender::Male),
1636 .age = Age::Old, 1636 .age = static_cast<u32>(Age::Old),
1637 .race = Race::Asian, 1637 .race = static_cast<u32>(Race::Asian),
1638 .values_count = 26, 1638 .values_count = 26,
1639 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1639 .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1640 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, 1640 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35},
1641 }, 1641 },
1642 RandomMiiData4{ 1642 RandomMiiData4{
1643 .gender = Gender::Female, 1643 .gender = static_cast<u32>(Gender::Female),
1644 .age = Age::Young, 1644 .age = static_cast<u32>(Age::Young),
1645 .race = Race::Black, 1645 .race = static_cast<u32>(Race::Black),
1646 .values_count = 25, 1646 .values_count = 25,
1647 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 1647 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15,
1648 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35}, 1648 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35},
1649 }, 1649 },
1650 RandomMiiData4{ 1650 RandomMiiData4{
1651 .gender = Gender::Female, 1651 .gender = static_cast<u32>(Gender::Female),
1652 .age = Age::Normal, 1652 .age = static_cast<u32>(Age::Normal),
1653 .race = Race::Black, 1653 .race = static_cast<u32>(Race::Black),
1654 .values_count = 26, 1654 .values_count = 26,
1655 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 1655 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14,
1656 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35}, 1656 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35},
1657 }, 1657 },
1658 RandomMiiData4{ 1658 RandomMiiData4{
1659 .gender = Gender::Female, 1659 .gender = static_cast<u32>(Gender::Female),
1660 .age = Age::Old, 1660 .age = static_cast<u32>(Age::Old),
1661 .race = Race::Black, 1661 .race = static_cast<u32>(Race::Black),
1662 .values_count = 26, 1662 .values_count = 26,
1663 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 1663 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14,
1664 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35}, 1664 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35},
1665 }, 1665 },
1666 RandomMiiData4{ 1666 RandomMiiData4{
1667 .gender = Gender::Female, 1667 .gender = static_cast<u32>(Gender::Female),
1668 .age = Age::Young, 1668 .age = static_cast<u32>(Age::Young),
1669 .race = Race::White, 1669 .race = static_cast<u32>(Race::White),
1670 .values_count = 25, 1670 .values_count = 25,
1671 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 1671 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15,
1672 17, 18, 19, 21, 22, 23, 24, 26, 27, 29, 33, 35}, 1672 17, 18, 19, 21, 22, 23, 24, 26, 27, 29, 33, 35},
1673 }, 1673 },
1674 RandomMiiData4{ 1674 RandomMiiData4{
1675 .gender = Gender::Female, 1675 .gender = static_cast<u32>(Gender::Female),
1676 .age = Age::Normal, 1676 .age = static_cast<u32>(Age::Normal),
1677 .race = Race::White, 1677 .race = static_cast<u32>(Race::White),
1678 .values_count = 26, 1678 .values_count = 26,
1679 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 1679 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14,
1680 15, 17, 18, 19, 21, 22, 23, 24, 26, 27, 29, 33, 35}, 1680 15, 17, 18, 19, 21, 22, 23, 24, 26, 27, 29, 33, 35},
1681 }, 1681 },
1682 RandomMiiData4{ 1682 RandomMiiData4{
1683 .gender = Gender::Female, 1683 .gender = static_cast<u32>(Gender::Female),
1684 .age = Age::Old, 1684 .age = static_cast<u32>(Age::Old),
1685 .race = Race::White, 1685 .race = static_cast<u32>(Race::White),
1686 .values_count = 25, 1686 .values_count = 25,
1687 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 1687 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14,
1688 15, 17, 18, 19, 21, 22, 23, 24, 25, 29, 33, 35}, 1688 15, 17, 18, 19, 21, 22, 23, 24, 25, 29, 33, 35},
1689 }, 1689 },
1690 RandomMiiData4{ 1690 RandomMiiData4{
1691 .gender = Gender::Female, 1691 .gender = static_cast<u32>(Gender::Female),
1692 .age = Age::Young, 1692 .age = static_cast<u32>(Age::Young),
1693 .race = Race::Asian, 1693 .race = static_cast<u32>(Race::Asian),
1694 .values_count = 24, 1694 .values_count = 24,
1695 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 1695 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14,
1696 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33}, 1696 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33},
1697 }, 1697 },
1698 RandomMiiData4{ 1698 RandomMiiData4{
1699 .gender = Gender::Female, 1699 .gender = static_cast<u32>(Gender::Female),
1700 .age = Age::Normal, 1700 .age = static_cast<u32>(Age::Normal),
1701 .race = Race::Asian, 1701 .race = static_cast<u32>(Race::Asian),
1702 .values_count = 25, 1702 .values_count = 25,
1703 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 1703 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14,
1704 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33}, 1704 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33},
1705 }, 1705 },
1706 RandomMiiData4{ 1706 RandomMiiData4{
1707 .gender = Gender::Female, 1707 .gender = static_cast<u32>(Gender::Female),
1708 .age = Age::Old, 1708 .age = static_cast<u32>(Age::Old),
1709 .race = Race::Asian, 1709 .race = static_cast<u32>(Race::Asian),
1710 .values_count = 25, 1710 .values_count = 25,
1711 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 1711 .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14,
1712 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33}, 1712 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33},
@@ -1755,24 +1755,24 @@ u8 FromVer3GetGlassType(u8 type) {
1755 return FromVer3GlassTypeTable[type]; 1755 return FromVer3GlassTypeTable[type];
1756} 1756}
1757 1757
1758u8 GetFacelineColorFromVer3(u8 color) { 1758FacelineColor GetFacelineColorFromVer3(u32 color) {
1759 return Ver3FacelineColorTable[color]; 1759 return static_cast<FacelineColor>(Ver3FacelineColorTable[color]);
1760} 1760}
1761 1761
1762u8 GetHairColorFromVer3(u32 color) { 1762CommonColor GetHairColorFromVer3(u32 color) {
1763 return Ver3HairColorTable[color]; 1763 return static_cast<CommonColor>(Ver3HairColorTable[color]);
1764} 1764}
1765 1765
1766u8 GetEyeColorFromVer3(u32 color) { 1766CommonColor GetEyeColorFromVer3(u32 color) {
1767 return Ver3EyeColorTable[color]; 1767 return static_cast<CommonColor>(Ver3EyeColorTable[color]);
1768} 1768}
1769 1769
1770u8 GetMouthColorFromVer3(u32 color) { 1770CommonColor GetMouthColorFromVer3(u32 color) {
1771 return Ver3MouthColorTable[color]; 1771 return static_cast<CommonColor>(Ver3MouthColorTable[color]);
1772} 1772}
1773 1773
1774u8 GetGlassColorFromVer3(u8 color) { 1774CommonColor GetGlassColorFromVer3(u32 color) {
1775 return Ver3GlassColorTable[color]; 1775 return static_cast<CommonColor>(Ver3GlassColorTable[color]);
1776} 1776}
1777 1777
1778} // namespace Service::Mii::RawData 1778} // namespace Service::Mii::RawData
diff --git a/src/core/hle/service/mii/types/raw_data.h b/src/core/hle/service/mii/types/raw_data.h
index 8c910096f..9a4cfa738 100644
--- a/src/core/hle/service/mii/types/raw_data.h
+++ b/src/core/hle/service/mii/types/raw_data.h
@@ -15,9 +15,9 @@ struct RandomMiiValues {
15static_assert(sizeof(RandomMiiValues) == 0xbc, "RandomMiiValues has incorrect size."); 15static_assert(sizeof(RandomMiiValues) == 0xbc, "RandomMiiValues has incorrect size.");
16 16
17struct RandomMiiData4 { 17struct RandomMiiData4 {
18 Gender gender{}; 18 u32 gender{};
19 Age age{}; 19 u32 age{};
20 Race race{}; 20 u32 race{};
21 u32 values_count{}; 21 u32 values_count{};
22 std::array<u32, 47> values{}; 22 std::array<u32, 47> values{};
23}; 23};
@@ -64,10 +64,10 @@ u8 FromVer3GetMouthlineColor(u8 color);
64u8 FromVer3GetGlassColor(u8 color); 64u8 FromVer3GetGlassColor(u8 color);
65u8 FromVer3GetGlassType(u8 type); 65u8 FromVer3GetGlassType(u8 type);
66 66
67u8 GetFacelineColorFromVer3(u8 color); 67FacelineColor GetFacelineColorFromVer3(u32 color);
68u8 GetHairColorFromVer3(u32 color); 68CommonColor GetHairColorFromVer3(u32 color);
69u8 GetEyeColorFromVer3(u32 color); 69CommonColor GetEyeColorFromVer3(u32 color);
70u8 GetMouthColorFromVer3(u32 color); 70CommonColor GetMouthColorFromVer3(u32 color);
71u8 GetGlassColorFromVer3(u8 color); 71CommonColor GetGlassColorFromVer3(u32 color);
72 72
73} // namespace Service::Mii::RawData 73} // namespace Service::Mii::RawData
diff --git a/src/core/hle/service/mii/types/store_data.cpp b/src/core/hle/service/mii/types/store_data.cpp
index 91dfd3271..8fce636c7 100644
--- a/src/core/hle/service/mii/types/store_data.cpp
+++ b/src/core/hle/service/mii/types/store_data.cpp
@@ -11,16 +11,16 @@ void StoreData::BuildDefault(u32 mii_index) {
11 const auto& default_mii = RawData::DefaultMii[mii_index]; 11 const auto& default_mii = RawData::DefaultMii[mii_index];
12 core_data.SetDefault(); 12 core_data.SetDefault();
13 13
14 core_data.SetFacelineType(static_cast<u8>(default_mii.face_type)); 14 core_data.SetFacelineType(static_cast<FacelineType>(default_mii.face_type));
15 core_data.SetFacelineColor( 15 core_data.SetFacelineColor(
16 RawData::GetFacelineColorFromVer3(static_cast<u8>(default_mii.face_color))); 16 RawData::GetFacelineColorFromVer3(static_cast<u8>(default_mii.face_color)));
17 core_data.SetFacelineWrinkle(static_cast<u8>(default_mii.face_wrinkle)); 17 core_data.SetFacelineWrinkle(static_cast<FacelineWrinkle>(default_mii.face_wrinkle));
18 core_data.SetFacelineMake(static_cast<u8>(default_mii.face_makeup)); 18 core_data.SetFacelineMake(static_cast<FacelineMake>(default_mii.face_makeup));
19 19
20 core_data.SetHairType(static_cast<u8>(default_mii.hair_type)); 20 core_data.SetHairType(static_cast<HairType>(default_mii.hair_type));
21 core_data.SetHairColor(RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.hair_color))); 21 core_data.SetHairColor(RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.hair_color)));
22 core_data.SetHairFlip(default_mii.hair_flip); 22 core_data.SetHairFlip(static_cast<HairFlip>(default_mii.hair_flip));
23 core_data.SetEyeType(static_cast<u8>(default_mii.eye_type)); 23 core_data.SetEyeType(static_cast<EyeType>(default_mii.eye_type));
24 core_data.SetEyeColor(RawData::GetEyeColorFromVer3(static_cast<u8>(default_mii.eye_color))); 24 core_data.SetEyeColor(RawData::GetEyeColorFromVer3(static_cast<u8>(default_mii.eye_color)));
25 core_data.SetEyeScale(static_cast<u8>(default_mii.eye_scale)); 25 core_data.SetEyeScale(static_cast<u8>(default_mii.eye_scale));
26 core_data.SetEyeAspect(static_cast<u8>(default_mii.eye_aspect)); 26 core_data.SetEyeAspect(static_cast<u8>(default_mii.eye_aspect));
@@ -28,7 +28,7 @@ void StoreData::BuildDefault(u32 mii_index) {
28 core_data.SetEyeX(static_cast<u8>(default_mii.eye_x)); 28 core_data.SetEyeX(static_cast<u8>(default_mii.eye_x));
29 core_data.SetEyeY(static_cast<u8>(default_mii.eye_y)); 29 core_data.SetEyeY(static_cast<u8>(default_mii.eye_y));
30 30
31 core_data.SetEyebrowType(static_cast<u8>(default_mii.eyebrow_type)); 31 core_data.SetEyebrowType(static_cast<EyebrowType>(default_mii.eyebrow_type));
32 core_data.SetEyebrowColor( 32 core_data.SetEyebrowColor(
33 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.eyebrow_color))); 33 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.eyebrow_color)));
34 core_data.SetEyebrowScale(static_cast<u8>(default_mii.eyebrow_scale)); 34 core_data.SetEyebrowScale(static_cast<u8>(default_mii.eyebrow_scale));
@@ -37,7 +37,7 @@ void StoreData::BuildDefault(u32 mii_index) {
37 core_data.SetEyebrowX(static_cast<u8>(default_mii.eyebrow_x)); 37 core_data.SetEyebrowX(static_cast<u8>(default_mii.eyebrow_x));
38 core_data.SetEyebrowY(static_cast<u8>(default_mii.eyebrow_y)); 38 core_data.SetEyebrowY(static_cast<u8>(default_mii.eyebrow_y));
39 39
40 core_data.SetNoseType(static_cast<u8>(default_mii.nose_type)); 40 core_data.SetNoseType(static_cast<NoseType>(default_mii.nose_type));
41 core_data.SetNoseScale(static_cast<u8>(default_mii.nose_scale)); 41 core_data.SetNoseScale(static_cast<u8>(default_mii.nose_scale));
42 core_data.SetNoseY(static_cast<u8>(default_mii.nose_y)); 42 core_data.SetNoseY(static_cast<u8>(default_mii.nose_y));
43 43
@@ -48,30 +48,30 @@ void StoreData::BuildDefault(u32 mii_index) {
48 core_data.SetMouthAspect(static_cast<u8>(default_mii.mouth_aspect)); 48 core_data.SetMouthAspect(static_cast<u8>(default_mii.mouth_aspect));
49 core_data.SetMouthY(static_cast<u8>(default_mii.mouth_y)); 49 core_data.SetMouthY(static_cast<u8>(default_mii.mouth_y));
50 50
51 core_data.SetMustacheType(default_mii.mustache_type); 51 core_data.SetMustacheType(static_cast<MustacheType>(default_mii.mustache_type));
52 core_data.SetBeardType(default_mii.beard_type); 52 core_data.SetBeardType(static_cast<BeardType>(default_mii.beard_type));
53 core_data.SetBeardColor( 53 core_data.SetBeardColor(
54 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.beard_color))); 54 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.beard_color)));
55 core_data.SetMustacheScale(static_cast<u8>(default_mii.mustache_scale)); 55 core_data.SetMustacheScale(static_cast<u8>(default_mii.mustache_scale));
56 core_data.SetMustacheY(static_cast<u8>(default_mii.mustache_y)); 56 core_data.SetMustacheY(static_cast<u8>(default_mii.mustache_y));
57 57
58 core_data.SetGlassType(static_cast<u8>(default_mii.glasses_type)); 58 core_data.SetGlassType(static_cast<GlassType>(default_mii.glasses_type));
59 core_data.SetGlassColor( 59 core_data.SetGlassColor(
60 RawData::GetGlassColorFromVer3(static_cast<u8>(default_mii.glasses_color))); 60 RawData::GetGlassColorFromVer3(static_cast<u8>(default_mii.glasses_color)));
61 core_data.SetGlassScale(static_cast<u8>(default_mii.glasses_scale)); 61 core_data.SetGlassScale(static_cast<u8>(default_mii.glasses_scale));
62 core_data.SetGlassY(static_cast<u8>(default_mii.glasses_y)); 62 core_data.SetGlassY(static_cast<u8>(default_mii.glasses_y));
63 63
64 core_data.SetMoleType(static_cast<u8>(default_mii.mole_type)); 64 core_data.SetMoleType(static_cast<MoleType>(default_mii.mole_type));
65 core_data.SetMoleScale(static_cast<u8>(default_mii.mole_scale)); 65 core_data.SetMoleScale(static_cast<u8>(default_mii.mole_scale));
66 core_data.SetMoleX(static_cast<u8>(default_mii.mole_x)); 66 core_data.SetMoleX(static_cast<u8>(default_mii.mole_x));
67 core_data.SetMoleY(static_cast<u8>(default_mii.mole_y)); 67 core_data.SetMoleY(static_cast<u8>(default_mii.mole_y));
68 68
69 core_data.SetHeight(static_cast<u8>(default_mii.height)); 69 core_data.SetHeight(static_cast<u8>(default_mii.height));
70 core_data.SetBuild(static_cast<u8>(default_mii.weight)); 70 core_data.SetBuild(static_cast<u8>(default_mii.weight));
71 core_data.SetGender(default_mii.gender); 71 core_data.SetGender(static_cast<Gender>(default_mii.gender));
72 core_data.SetFavoriteColor(static_cast<u8>(default_mii.favorite_color)); 72 core_data.SetFavoriteColor(static_cast<FavoriteColor>(default_mii.favorite_color));
73 core_data.SetRegionMove(static_cast<u8>(default_mii.region_move)); 73 core_data.SetRegionMove(static_cast<u8>(default_mii.region_move));
74 core_data.SetFontRegion(default_mii.font_region); 74 core_data.SetFontRegion(static_cast<FontRegion>(default_mii.font_region));
75 core_data.SetType(static_cast<u8>(default_mii.type)); 75 core_data.SetType(static_cast<u8>(default_mii.type));
76 core_data.SetNickname(default_mii.nickname); 76 core_data.SetNickname(default_mii.nickname);
77 77
@@ -85,16 +85,16 @@ void StoreData::BuildBase(Gender gender) {
85 const auto& default_mii = RawData::BaseMii[gender == Gender::Female ? 1 : 0]; 85 const auto& default_mii = RawData::BaseMii[gender == Gender::Female ? 1 : 0];
86 core_data.SetDefault(); 86 core_data.SetDefault();
87 87
88 core_data.SetFacelineType(static_cast<u8>(default_mii.face_type)); 88 core_data.SetFacelineType(static_cast<FacelineType>(default_mii.face_type));
89 core_data.SetFacelineColor( 89 core_data.SetFacelineColor(
90 RawData::GetFacelineColorFromVer3(static_cast<u8>(default_mii.face_color))); 90 RawData::GetFacelineColorFromVer3(static_cast<u8>(default_mii.face_color)));
91 core_data.SetFacelineWrinkle(static_cast<u8>(default_mii.face_wrinkle)); 91 core_data.SetFacelineWrinkle(static_cast<FacelineWrinkle>(default_mii.face_wrinkle));
92 core_data.SetFacelineMake(static_cast<u8>(default_mii.face_makeup)); 92 core_data.SetFacelineMake(static_cast<FacelineMake>(default_mii.face_makeup));
93 93
94 core_data.SetHairType(static_cast<u8>(default_mii.hair_type)); 94 core_data.SetHairType(static_cast<HairType>(default_mii.hair_type));
95 core_data.SetHairColor(RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.hair_color))); 95 core_data.SetHairColor(RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.hair_color)));
96 core_data.SetHairFlip(default_mii.hair_flip); 96 core_data.SetHairFlip(static_cast<HairFlip>(default_mii.hair_flip));
97 core_data.SetEyeType(static_cast<u8>(default_mii.eye_type)); 97 core_data.SetEyeType(static_cast<EyeType>(default_mii.eye_type));
98 core_data.SetEyeColor(RawData::GetEyeColorFromVer3(static_cast<u8>(default_mii.eye_color))); 98 core_data.SetEyeColor(RawData::GetEyeColorFromVer3(static_cast<u8>(default_mii.eye_color)));
99 core_data.SetEyeScale(static_cast<u8>(default_mii.eye_scale)); 99 core_data.SetEyeScale(static_cast<u8>(default_mii.eye_scale));
100 core_data.SetEyeAspect(static_cast<u8>(default_mii.eye_aspect)); 100 core_data.SetEyeAspect(static_cast<u8>(default_mii.eye_aspect));
@@ -102,7 +102,7 @@ void StoreData::BuildBase(Gender gender) {
102 core_data.SetEyeX(static_cast<u8>(default_mii.eye_x)); 102 core_data.SetEyeX(static_cast<u8>(default_mii.eye_x));
103 core_data.SetEyeY(static_cast<u8>(default_mii.eye_y)); 103 core_data.SetEyeY(static_cast<u8>(default_mii.eye_y));
104 104
105 core_data.SetEyebrowType(static_cast<u8>(default_mii.eyebrow_type)); 105 core_data.SetEyebrowType(static_cast<EyebrowType>(default_mii.eyebrow_type));
106 core_data.SetEyebrowColor( 106 core_data.SetEyebrowColor(
107 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.eyebrow_color))); 107 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.eyebrow_color)));
108 core_data.SetEyebrowScale(static_cast<u8>(default_mii.eyebrow_scale)); 108 core_data.SetEyebrowScale(static_cast<u8>(default_mii.eyebrow_scale));
@@ -111,7 +111,7 @@ void StoreData::BuildBase(Gender gender) {
111 core_data.SetEyebrowX(static_cast<u8>(default_mii.eyebrow_x)); 111 core_data.SetEyebrowX(static_cast<u8>(default_mii.eyebrow_x));
112 core_data.SetEyebrowY(static_cast<u8>(default_mii.eyebrow_y)); 112 core_data.SetEyebrowY(static_cast<u8>(default_mii.eyebrow_y));
113 113
114 core_data.SetNoseType(static_cast<u8>(default_mii.nose_type)); 114 core_data.SetNoseType(static_cast<NoseType>(default_mii.nose_type));
115 core_data.SetNoseScale(static_cast<u8>(default_mii.nose_scale)); 115 core_data.SetNoseScale(static_cast<u8>(default_mii.nose_scale));
116 core_data.SetNoseY(static_cast<u8>(default_mii.nose_y)); 116 core_data.SetNoseY(static_cast<u8>(default_mii.nose_y));
117 117
@@ -122,30 +122,30 @@ void StoreData::BuildBase(Gender gender) {
122 core_data.SetMouthAspect(static_cast<u8>(default_mii.mouth_aspect)); 122 core_data.SetMouthAspect(static_cast<u8>(default_mii.mouth_aspect));
123 core_data.SetMouthY(static_cast<u8>(default_mii.mouth_y)); 123 core_data.SetMouthY(static_cast<u8>(default_mii.mouth_y));
124 124
125 core_data.SetMustacheType(default_mii.mustache_type); 125 core_data.SetMustacheType(static_cast<MustacheType>(default_mii.mustache_type));
126 core_data.SetBeardType(default_mii.beard_type); 126 core_data.SetBeardType(static_cast<BeardType>(default_mii.beard_type));
127 core_data.SetBeardColor( 127 core_data.SetBeardColor(
128 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.beard_color))); 128 RawData::GetHairColorFromVer3(static_cast<u8>(default_mii.beard_color)));
129 core_data.SetMustacheScale(static_cast<u8>(default_mii.mustache_scale)); 129 core_data.SetMustacheScale(static_cast<u8>(default_mii.mustache_scale));
130 core_data.SetMustacheY(static_cast<u8>(default_mii.mustache_y)); 130 core_data.SetMustacheY(static_cast<u8>(default_mii.mustache_y));
131 131
132 core_data.SetGlassType(static_cast<u8>(default_mii.glasses_type)); 132 core_data.SetGlassType(static_cast<GlassType>(default_mii.glasses_type));
133 core_data.SetGlassColor( 133 core_data.SetGlassColor(
134 RawData::GetGlassColorFromVer3(static_cast<u8>(default_mii.glasses_color))); 134 RawData::GetGlassColorFromVer3(static_cast<u8>(default_mii.glasses_color)));
135 core_data.SetGlassScale(static_cast<u8>(default_mii.glasses_scale)); 135 core_data.SetGlassScale(static_cast<u8>(default_mii.glasses_scale));
136 core_data.SetGlassY(static_cast<u8>(default_mii.glasses_y)); 136 core_data.SetGlassY(static_cast<u8>(default_mii.glasses_y));
137 137
138 core_data.SetMoleType(static_cast<u8>(default_mii.mole_type)); 138 core_data.SetMoleType(static_cast<MoleType>(default_mii.mole_type));
139 core_data.SetMoleScale(static_cast<u8>(default_mii.mole_scale)); 139 core_data.SetMoleScale(static_cast<u8>(default_mii.mole_scale));
140 core_data.SetMoleX(static_cast<u8>(default_mii.mole_x)); 140 core_data.SetMoleX(static_cast<u8>(default_mii.mole_x));
141 core_data.SetMoleY(static_cast<u8>(default_mii.mole_y)); 141 core_data.SetMoleY(static_cast<u8>(default_mii.mole_y));
142 142
143 core_data.SetHeight(static_cast<u8>(default_mii.height)); 143 core_data.SetHeight(static_cast<u8>(default_mii.height));
144 core_data.SetBuild(static_cast<u8>(default_mii.weight)); 144 core_data.SetBuild(static_cast<u8>(default_mii.weight));
145 core_data.SetGender(default_mii.gender); 145 core_data.SetGender(static_cast<Gender>(default_mii.gender));
146 core_data.SetFavoriteColor(static_cast<u8>(default_mii.favorite_color)); 146 core_data.SetFavoriteColor(static_cast<FavoriteColor>(default_mii.favorite_color));
147 core_data.SetRegionMove(static_cast<u8>(default_mii.region_move)); 147 core_data.SetRegionMove(static_cast<u8>(default_mii.region_move));
148 core_data.SetFontRegion(default_mii.font_region); 148 core_data.SetFontRegion(static_cast<FontRegion>(default_mii.font_region));
149 core_data.SetType(static_cast<u8>(default_mii.type)); 149 core_data.SetType(static_cast<u8>(default_mii.type));
150 core_data.SetNickname(default_mii.nickname); 150 core_data.SetNickname(default_mii.nickname);
151 151
@@ -184,7 +184,7 @@ void StoreData::SetFontRegion(FontRegion value) {
184 core_data.SetFontRegion(value); 184 core_data.SetFontRegion(value);
185} 185}
186 186
187void StoreData::SetFavoriteColor(u8 value) { 187void StoreData::SetFavoriteColor(FavoriteColor value) {
188 core_data.SetFavoriteColor(value); 188 core_data.SetFavoriteColor(value);
189} 189}
190 190
@@ -208,27 +208,27 @@ void StoreData::SetRegionMove(u8 value) {
208 core_data.SetRegionMove(value); 208 core_data.SetRegionMove(value);
209} 209}
210 210
211void StoreData::SetFacelineType(u8 value) { 211void StoreData::SetFacelineType(FacelineType value) {
212 core_data.SetFacelineType(value); 212 core_data.SetFacelineType(value);
213} 213}
214 214
215void StoreData::SetFacelineColor(u8 value) { 215void StoreData::SetFacelineColor(FacelineColor value) {
216 core_data.SetFacelineColor(value); 216 core_data.SetFacelineColor(value);
217} 217}
218 218
219void StoreData::SetFacelineWrinkle(u8 value) { 219void StoreData::SetFacelineWrinkle(FacelineWrinkle value) {
220 core_data.SetFacelineWrinkle(value); 220 core_data.SetFacelineWrinkle(value);
221} 221}
222 222
223void StoreData::SetFacelineMake(u8 value) { 223void StoreData::SetFacelineMake(FacelineMake value) {
224 core_data.SetFacelineMake(value); 224 core_data.SetFacelineMake(value);
225} 225}
226 226
227void StoreData::SetHairType(u8 value) { 227void StoreData::SetHairType(HairType value) {
228 core_data.SetHairType(value); 228 core_data.SetHairType(value);
229} 229}
230 230
231void StoreData::SetHairColor(u8 value) { 231void StoreData::SetHairColor(CommonColor value) {
232 core_data.SetHairColor(value); 232 core_data.SetHairColor(value);
233} 233}
234 234
@@ -236,11 +236,11 @@ void StoreData::SetHairFlip(HairFlip value) {
236 core_data.SetHairFlip(value); 236 core_data.SetHairFlip(value);
237} 237}
238 238
239void StoreData::SetEyeType(u8 value) { 239void StoreData::SetEyeType(EyeType value) {
240 core_data.SetEyeType(value); 240 core_data.SetEyeType(value);
241} 241}
242 242
243void StoreData::SetEyeColor(u8 value) { 243void StoreData::SetEyeColor(CommonColor value) {
244 core_data.SetEyeColor(value); 244 core_data.SetEyeColor(value);
245} 245}
246 246
@@ -264,11 +264,11 @@ void StoreData::SetEyeY(u8 value) {
264 core_data.SetEyeY(value); 264 core_data.SetEyeY(value);
265} 265}
266 266
267void StoreData::SetEyebrowType(u8 value) { 267void StoreData::SetEyebrowType(EyebrowType value) {
268 core_data.SetEyebrowType(value); 268 core_data.SetEyebrowType(value);
269} 269}
270 270
271void StoreData::SetEyebrowColor(u8 value) { 271void StoreData::SetEyebrowColor(CommonColor value) {
272 core_data.SetEyebrowColor(value); 272 core_data.SetEyebrowColor(value);
273} 273}
274 274
@@ -292,7 +292,7 @@ void StoreData::SetEyebrowY(u8 value) {
292 core_data.SetEyebrowY(value); 292 core_data.SetEyebrowY(value);
293} 293}
294 294
295void StoreData::SetNoseType(u8 value) { 295void StoreData::SetNoseType(NoseType value) {
296 core_data.SetNoseType(value); 296 core_data.SetNoseType(value);
297} 297}
298 298
@@ -308,7 +308,7 @@ void StoreData::SetMouthType(u8 value) {
308 core_data.SetMouthType(value); 308 core_data.SetMouthType(value);
309} 309}
310 310
311void StoreData::SetMouthColor(u8 value) { 311void StoreData::SetMouthColor(CommonColor value) {
312 core_data.SetMouthColor(value); 312 core_data.SetMouthColor(value);
313} 313}
314 314
@@ -324,7 +324,7 @@ void StoreData::SetMouthY(u8 value) {
324 core_data.SetMouthY(value); 324 core_data.SetMouthY(value);
325} 325}
326 326
327void StoreData::SetBeardColor(u8 value) { 327void StoreData::SetBeardColor(CommonColor value) {
328 core_data.SetBeardColor(value); 328 core_data.SetBeardColor(value);
329} 329}
330 330
@@ -344,11 +344,11 @@ void StoreData::SetMustacheY(u8 value) {
344 core_data.SetMustacheY(value); 344 core_data.SetMustacheY(value);
345} 345}
346 346
347void StoreData::SetGlassType(u8 value) { 347void StoreData::SetGlassType(GlassType value) {
348 core_data.SetGlassType(value); 348 core_data.SetGlassType(value);
349} 349}
350 350
351void StoreData::SetGlassColor(u8 value) { 351void StoreData::SetGlassColor(CommonColor value) {
352 core_data.SetGlassColor(value); 352 core_data.SetGlassColor(value);
353} 353}
354 354
@@ -360,7 +360,7 @@ void StoreData::SetGlassY(u8 value) {
360 core_data.SetGlassY(value); 360 core_data.SetGlassY(value);
361} 361}
362 362
363void StoreData::SetMoleType(u8 value) { 363void StoreData::SetMoleType(MoleType value) {
364 core_data.SetMoleType(value); 364 core_data.SetMoleType(value);
365} 365}
366 366
@@ -388,11 +388,11 @@ FontRegion StoreData::GetFontRegion() const {
388 return static_cast<FontRegion>(core_data.GetFontRegion()); 388 return static_cast<FontRegion>(core_data.GetFontRegion());
389} 389}
390 390
391u8 StoreData::GetFavoriteColor() const { 391FavoriteColor StoreData::GetFavoriteColor() const {
392 return core_data.GetFavoriteColor(); 392 return core_data.GetFavoriteColor();
393} 393}
394 394
395u8 StoreData::GetGender() const { 395Gender StoreData::GetGender() const {
396 return core_data.GetGender(); 396 return core_data.GetGender();
397} 397}
398 398
@@ -412,39 +412,39 @@ u8 StoreData::GetRegionMove() const {
412 return core_data.GetRegionMove(); 412 return core_data.GetRegionMove();
413} 413}
414 414
415u8 StoreData::GetFacelineType() const { 415FacelineType StoreData::GetFacelineType() const {
416 return core_data.GetFacelineType(); 416 return core_data.GetFacelineType();
417} 417}
418 418
419u8 StoreData::GetFacelineColor() const { 419FacelineColor StoreData::GetFacelineColor() const {
420 return core_data.GetFacelineColor(); 420 return core_data.GetFacelineColor();
421} 421}
422 422
423u8 StoreData::GetFacelineWrinkle() const { 423FacelineWrinkle StoreData::GetFacelineWrinkle() const {
424 return core_data.GetFacelineWrinkle(); 424 return core_data.GetFacelineWrinkle();
425} 425}
426 426
427u8 StoreData::GetFacelineMake() const { 427FacelineMake StoreData::GetFacelineMake() const {
428 return core_data.GetFacelineMake(); 428 return core_data.GetFacelineMake();
429} 429}
430 430
431u8 StoreData::GetHairType() const { 431HairType StoreData::GetHairType() const {
432 return core_data.GetHairType(); 432 return core_data.GetHairType();
433} 433}
434 434
435u8 StoreData::GetHairColor() const { 435CommonColor StoreData::GetHairColor() const {
436 return core_data.GetHairColor(); 436 return core_data.GetHairColor();
437} 437}
438 438
439u8 StoreData::GetHairFlip() const { 439HairFlip StoreData::GetHairFlip() const {
440 return core_data.GetHairFlip(); 440 return core_data.GetHairFlip();
441} 441}
442 442
443u8 StoreData::GetEyeType() const { 443EyeType StoreData::GetEyeType() const {
444 return core_data.GetEyeType(); 444 return core_data.GetEyeType();
445} 445}
446 446
447u8 StoreData::GetEyeColor() const { 447CommonColor StoreData::GetEyeColor() const {
448 return core_data.GetEyeColor(); 448 return core_data.GetEyeColor();
449} 449}
450 450
@@ -468,11 +468,11 @@ u8 StoreData::GetEyeY() const {
468 return core_data.GetEyeY(); 468 return core_data.GetEyeY();
469} 469}
470 470
471u8 StoreData::GetEyebrowType() const { 471EyebrowType StoreData::GetEyebrowType() const {
472 return core_data.GetEyebrowType(); 472 return core_data.GetEyebrowType();
473} 473}
474 474
475u8 StoreData::GetEyebrowColor() const { 475CommonColor StoreData::GetEyebrowColor() const {
476 return core_data.GetEyebrowColor(); 476 return core_data.GetEyebrowColor();
477} 477}
478 478
@@ -496,7 +496,7 @@ u8 StoreData::GetEyebrowY() const {
496 return core_data.GetEyebrowY(); 496 return core_data.GetEyebrowY();
497} 497}
498 498
499u8 StoreData::GetNoseType() const { 499NoseType StoreData::GetNoseType() const {
500 return core_data.GetNoseType(); 500 return core_data.GetNoseType();
501} 501}
502 502
@@ -508,11 +508,11 @@ u8 StoreData::GetNoseY() const {
508 return core_data.GetNoseY(); 508 return core_data.GetNoseY();
509} 509}
510 510
511u8 StoreData::GetMouthType() const { 511MouthType StoreData::GetMouthType() const {
512 return core_data.GetMouthType(); 512 return core_data.GetMouthType();
513} 513}
514 514
515u8 StoreData::GetMouthColor() const { 515CommonColor StoreData::GetMouthColor() const {
516 return core_data.GetMouthColor(); 516 return core_data.GetMouthColor();
517} 517}
518 518
@@ -528,15 +528,15 @@ u8 StoreData::GetMouthY() const {
528 return core_data.GetMouthY(); 528 return core_data.GetMouthY();
529} 529}
530 530
531u8 StoreData::GetBeardColor() const { 531CommonColor StoreData::GetBeardColor() const {
532 return core_data.GetBeardColor(); 532 return core_data.GetBeardColor();
533} 533}
534 534
535u8 StoreData::GetBeardType() const { 535BeardType StoreData::GetBeardType() const {
536 return core_data.GetBeardType(); 536 return core_data.GetBeardType();
537} 537}
538 538
539u8 StoreData::GetMustacheType() const { 539MustacheType StoreData::GetMustacheType() const {
540 return core_data.GetMustacheType(); 540 return core_data.GetMustacheType();
541} 541}
542 542
@@ -548,11 +548,11 @@ u8 StoreData::GetMustacheY() const {
548 return core_data.GetMustacheY(); 548 return core_data.GetMustacheY();
549} 549}
550 550
551u8 StoreData::GetGlassType() const { 551GlassType StoreData::GetGlassType() const {
552 return core_data.GetGlassType(); 552 return core_data.GetGlassType();
553} 553}
554 554
555u8 StoreData::GetGlassColor() const { 555CommonColor StoreData::GetGlassColor() const {
556 return core_data.GetGlassColor(); 556 return core_data.GetGlassColor();
557} 557}
558 558
@@ -564,7 +564,7 @@ u8 StoreData::GetGlassY() const {
564 return core_data.GetGlassY(); 564 return core_data.GetGlassY();
565} 565}
566 566
567u8 StoreData::GetMoleType() const { 567MoleType StoreData::GetMoleType() const {
568 return core_data.GetMoleType(); 568 return core_data.GetMoleType();
569} 569}
570 570
diff --git a/src/core/hle/service/mii/types/store_data.h b/src/core/hle/service/mii/types/store_data.h
index 1e010000b..224c32cf8 100644
--- a/src/core/hle/service/mii/types/store_data.h
+++ b/src/core/hle/service/mii/types/store_data.h
@@ -23,51 +23,51 @@ public:
23 u32 IsValid() const; 23 u32 IsValid() const;
24 24
25 void SetFontRegion(FontRegion value); 25 void SetFontRegion(FontRegion value);
26 void SetFavoriteColor(u8 value); 26 void SetFavoriteColor(FavoriteColor value);
27 void SetGender(Gender value); 27 void SetGender(Gender value);
28 void SetHeight(u8 value); 28 void SetHeight(u8 value);
29 void SetBuild(u8 value); 29 void SetBuild(u8 value);
30 void SetType(u8 value); 30 void SetType(u8 value);
31 void SetRegionMove(u8 value); 31 void SetRegionMove(u8 value);
32 void SetFacelineType(u8 value); 32 void SetFacelineType(FacelineType value);
33 void SetFacelineColor(u8 value); 33 void SetFacelineColor(FacelineColor value);
34 void SetFacelineWrinkle(u8 value); 34 void SetFacelineWrinkle(FacelineWrinkle value);
35 void SetFacelineMake(u8 value); 35 void SetFacelineMake(FacelineMake value);
36 void SetHairType(u8 value); 36 void SetHairType(HairType value);
37 void SetHairColor(u8 value); 37 void SetHairColor(CommonColor value);
38 void SetHairFlip(HairFlip value); 38 void SetHairFlip(HairFlip value);
39 void SetEyeType(u8 value); 39 void SetEyeType(EyeType value);
40 void SetEyeColor(u8 value); 40 void SetEyeColor(CommonColor value);
41 void SetEyeScale(u8 value); 41 void SetEyeScale(u8 value);
42 void SetEyeAspect(u8 value); 42 void SetEyeAspect(u8 value);
43 void SetEyeRotate(u8 value); 43 void SetEyeRotate(u8 value);
44 void SetEyeX(u8 value); 44 void SetEyeX(u8 value);
45 void SetEyeY(u8 value); 45 void SetEyeY(u8 value);
46 void SetEyebrowType(u8 value); 46 void SetEyebrowType(EyebrowType value);
47 void SetEyebrowColor(u8 value); 47 void SetEyebrowColor(CommonColor value);
48 void SetEyebrowScale(u8 value); 48 void SetEyebrowScale(u8 value);
49 void SetEyebrowAspect(u8 value); 49 void SetEyebrowAspect(u8 value);
50 void SetEyebrowRotate(u8 value); 50 void SetEyebrowRotate(u8 value);
51 void SetEyebrowX(u8 value); 51 void SetEyebrowX(u8 value);
52 void SetEyebrowY(u8 value); 52 void SetEyebrowY(u8 value);
53 void SetNoseType(u8 value); 53 void SetNoseType(NoseType value);
54 void SetNoseScale(u8 value); 54 void SetNoseScale(u8 value);
55 void SetNoseY(u8 value); 55 void SetNoseY(u8 value);
56 void SetMouthType(u8 value); 56 void SetMouthType(u8 value);
57 void SetMouthColor(u8 value); 57 void SetMouthColor(CommonColor value);
58 void SetMouthScale(u8 value); 58 void SetMouthScale(u8 value);
59 void SetMouthAspect(u8 value); 59 void SetMouthAspect(u8 value);
60 void SetMouthY(u8 value); 60 void SetMouthY(u8 value);
61 void SetBeardColor(u8 value); 61 void SetBeardColor(CommonColor value);
62 void SetBeardType(BeardType value); 62 void SetBeardType(BeardType value);
63 void SetMustacheType(MustacheType value); 63 void SetMustacheType(MustacheType value);
64 void SetMustacheScale(u8 value); 64 void SetMustacheScale(u8 value);
65 void SetMustacheY(u8 value); 65 void SetMustacheY(u8 value);
66 void SetGlassType(u8 value); 66 void SetGlassType(GlassType value);
67 void SetGlassColor(u8 value); 67 void SetGlassColor(CommonColor value);
68 void SetGlassScale(u8 value); 68 void SetGlassScale(u8 value);
69 void SetGlassY(u8 value); 69 void SetGlassY(u8 value);
70 void SetMoleType(u8 value); 70 void SetMoleType(MoleType value);
71 void SetMoleScale(u8 value); 71 void SetMoleScale(u8 value);
72 void SetMoleX(u8 value); 72 void SetMoleX(u8 value);
73 void SetMoleY(u8 value); 73 void SetMoleY(u8 value);
@@ -76,51 +76,51 @@ public:
76 76
77 Common::UUID GetCreateId() const; 77 Common::UUID GetCreateId() const;
78 FontRegion GetFontRegion() const; 78 FontRegion GetFontRegion() const;
79 u8 GetFavoriteColor() const; 79 FavoriteColor GetFavoriteColor() const;
80 u8 GetGender() const; 80 Gender GetGender() const;
81 u8 GetHeight() const; 81 u8 GetHeight() const;
82 u8 GetBuild() const; 82 u8 GetBuild() const;
83 u8 GetType() const; 83 u8 GetType() const;
84 u8 GetRegionMove() const; 84 u8 GetRegionMove() const;
85 u8 GetFacelineType() const; 85 FacelineType GetFacelineType() const;
86 u8 GetFacelineColor() const; 86 FacelineColor GetFacelineColor() const;
87 u8 GetFacelineWrinkle() const; 87 FacelineWrinkle GetFacelineWrinkle() const;
88 u8 GetFacelineMake() const; 88 FacelineMake GetFacelineMake() const;
89 u8 GetHairType() const; 89 HairType GetHairType() const;
90 u8 GetHairColor() const; 90 CommonColor GetHairColor() const;
91 u8 GetHairFlip() const; 91 HairFlip GetHairFlip() const;
92 u8 GetEyeType() const; 92 EyeType GetEyeType() const;
93 u8 GetEyeColor() const; 93 CommonColor GetEyeColor() const;
94 u8 GetEyeScale() const; 94 u8 GetEyeScale() const;
95 u8 GetEyeAspect() const; 95 u8 GetEyeAspect() const;
96 u8 GetEyeRotate() const; 96 u8 GetEyeRotate() const;
97 u8 GetEyeX() const; 97 u8 GetEyeX() const;
98 u8 GetEyeY() const; 98 u8 GetEyeY() const;
99 u8 GetEyebrowType() const; 99 EyebrowType GetEyebrowType() const;
100 u8 GetEyebrowColor() const; 100 CommonColor GetEyebrowColor() const;
101 u8 GetEyebrowScale() const; 101 u8 GetEyebrowScale() const;
102 u8 GetEyebrowAspect() const; 102 u8 GetEyebrowAspect() const;
103 u8 GetEyebrowRotate() const; 103 u8 GetEyebrowRotate() const;
104 u8 GetEyebrowX() const; 104 u8 GetEyebrowX() const;
105 u8 GetEyebrowY() const; 105 u8 GetEyebrowY() const;
106 u8 GetNoseType() const; 106 NoseType GetNoseType() const;
107 u8 GetNoseScale() const; 107 u8 GetNoseScale() const;
108 u8 GetNoseY() const; 108 u8 GetNoseY() const;
109 u8 GetMouthType() const; 109 MouthType GetMouthType() const;
110 u8 GetMouthColor() const; 110 CommonColor GetMouthColor() const;
111 u8 GetMouthScale() const; 111 u8 GetMouthScale() const;
112 u8 GetMouthAspect() const; 112 u8 GetMouthAspect() const;
113 u8 GetMouthY() const; 113 u8 GetMouthY() const;
114 u8 GetBeardColor() const; 114 CommonColor GetBeardColor() const;
115 u8 GetBeardType() const; 115 BeardType GetBeardType() const;
116 u8 GetMustacheType() const; 116 MustacheType GetMustacheType() const;
117 u8 GetMustacheScale() const; 117 u8 GetMustacheScale() const;
118 u8 GetMustacheY() const; 118 u8 GetMustacheY() const;
119 u8 GetGlassType() const; 119 GlassType GetGlassType() const;
120 u8 GetGlassColor() const; 120 CommonColor GetGlassColor() const;
121 u8 GetGlassScale() const; 121 u8 GetGlassScale() const;
122 u8 GetGlassY() const; 122 u8 GetGlassY() const;
123 u8 GetMoleType() const; 123 MoleType GetMoleType() const;
124 u8 GetMoleScale() const; 124 u8 GetMoleScale() const;
125 u8 GetMoleX() const; 125 u8 GetMoleX() const;
126 u8 GetMoleY() const; 126 u8 GetMoleY() const;
diff --git a/src/core/hle/service/mii/types/ver3_store_data.cpp b/src/core/hle/service/mii/types/ver3_store_data.cpp
index c7624520c..1c28e0b1b 100644
--- a/src/core/hle/service/mii/types/ver3_store_data.cpp
+++ b/src/core/hle/service/mii/types/ver3_store_data.cpp
@@ -9,14 +9,14 @@
9namespace Service::Mii { 9namespace Service::Mii {
10 10
11void NfpStoreDataExtension::SetFromStoreData(const StoreData& store_data) { 11void NfpStoreDataExtension::SetFromStoreData(const StoreData& store_data) {
12 faceline_color = static_cast<u8>(store_data.GetFacelineColor() & 0xf); 12 faceline_color = static_cast<u8>(store_data.GetFacelineColor()) & 0xf;
13 hair_color = static_cast<u8>(store_data.GetHairColor() & 0x7f); 13 hair_color = static_cast<u8>(store_data.GetHairColor()) & 0x7f;
14 eye_color = static_cast<u8>(store_data.GetEyeColor() & 0x7f); 14 eye_color = static_cast<u8>(store_data.GetEyeColor()) & 0x7f;
15 eyebrow_color = static_cast<u8>(store_data.GetEyebrowColor() & 0x7f); 15 eyebrow_color = static_cast<u8>(store_data.GetEyebrowColor()) & 0x7f;
16 mouth_color = static_cast<u8>(store_data.GetMouthColor() & 0x7f); 16 mouth_color = static_cast<u8>(store_data.GetMouthColor()) & 0x7f;
17 beard_color = static_cast<u8>(store_data.GetBeardColor() & 0x7f); 17 beard_color = static_cast<u8>(store_data.GetBeardColor()) & 0x7f;
18 glass_color = static_cast<u8>(store_data.GetGlassColor() & 0x7f); 18 glass_color = static_cast<u8>(store_data.GetGlassColor()) & 0x7f;
19 glass_type = static_cast<u8>(store_data.GetGlassType() & 0x1f); 19 glass_type = static_cast<u8>(store_data.GetGlassType()) & 0x1f;
20} 20}
21 21
22void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const { 22void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const {
@@ -28,8 +28,9 @@ void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const {
28 28
29 // TODO: We are ignoring a bunch of data from the mii_v3 29 // TODO: We are ignoring a bunch of data from the mii_v3
30 30
31 out_store_data.SetGender(static_cast<Gender>(static_cast<u8>(mii_information.gender))); 31 out_store_data.SetGender(static_cast<Gender>(mii_information.gender.Value()));
32 out_store_data.SetFavoriteColor(static_cast<u8>(mii_information.favorite_color)); 32 out_store_data.SetFavoriteColor(
33 static_cast<FavoriteColor>(mii_information.favorite_color.Value()));
33 out_store_data.SetHeight(height); 34 out_store_data.SetHeight(height);
34 out_store_data.SetBuild(build); 35 out_store_data.SetBuild(build);
35 36
@@ -37,56 +38,60 @@ void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const {
37 out_store_data.SetFontRegion( 38 out_store_data.SetFontRegion(
38 static_cast<FontRegion>(static_cast<u8>(region_information.font_region))); 39 static_cast<FontRegion>(static_cast<u8>(region_information.font_region)));
39 40
40 out_store_data.SetFacelineType(appearance_bits1.faceline_type); 41 out_store_data.SetFacelineType(
41 out_store_data.SetFacelineColor(appearance_bits1.faceline_color); 42 static_cast<FacelineType>(appearance_bits1.faceline_type.Value()));
42 out_store_data.SetFacelineWrinkle(appearance_bits2.faceline_wrinkle); 43 out_store_data.SetFacelineColor(
43 out_store_data.SetFacelineMake(appearance_bits2.faceline_make); 44 static_cast<FacelineColor>(appearance_bits1.faceline_color.Value()));
44 45 out_store_data.SetFacelineWrinkle(
45 out_store_data.SetHairType(hair_type); 46 static_cast<FacelineWrinkle>(appearance_bits2.faceline_wrinkle.Value()));
46 out_store_data.SetHairColor(appearance_bits3.hair_color); 47 out_store_data.SetFacelineMake(
47 out_store_data.SetHairFlip(static_cast<HairFlip>(static_cast<u8>(appearance_bits3.hair_flip))); 48 static_cast<FacelineMake>(appearance_bits2.faceline_make.Value()));
48 49
49 out_store_data.SetEyeType(static_cast<u8>(appearance_bits4.eye_type)); 50 out_store_data.SetHairType(static_cast<HairType>(hair_type));
50 out_store_data.SetEyeColor(static_cast<u8>(appearance_bits4.eye_color)); 51 out_store_data.SetHairColor(static_cast<CommonColor>(appearance_bits3.hair_color.Value()));
52 out_store_data.SetHairFlip(static_cast<HairFlip>(appearance_bits3.hair_flip.Value()));
53
54 out_store_data.SetEyeType(static_cast<EyeType>(appearance_bits4.eye_type.Value()));
55 out_store_data.SetEyeColor(static_cast<CommonColor>(appearance_bits4.eye_color.Value()));
51 out_store_data.SetEyeScale(static_cast<u8>(appearance_bits4.eye_scale)); 56 out_store_data.SetEyeScale(static_cast<u8>(appearance_bits4.eye_scale));
52 out_store_data.SetEyeAspect(static_cast<u8>(appearance_bits4.eye_aspect)); 57 out_store_data.SetEyeAspect(static_cast<u8>(appearance_bits4.eye_aspect));
53 out_store_data.SetEyeRotate(static_cast<u8>(appearance_bits4.eye_rotate)); 58 out_store_data.SetEyeRotate(static_cast<u8>(appearance_bits4.eye_rotate));
54 out_store_data.SetEyeX(static_cast<u8>(appearance_bits4.eye_x)); 59 out_store_data.SetEyeX(static_cast<u8>(appearance_bits4.eye_x));
55 out_store_data.SetEyeY(static_cast<u8>(appearance_bits4.eye_y)); 60 out_store_data.SetEyeY(static_cast<u8>(appearance_bits4.eye_y));
56 61
57 out_store_data.SetEyebrowType(static_cast<u8>(appearance_bits5.eyebrow_type)); 62 out_store_data.SetEyebrowType(static_cast<EyebrowType>(appearance_bits5.eyebrow_type.Value()));
58 out_store_data.SetEyebrowColor(static_cast<u8>(appearance_bits5.eyebrow_color)); 63 out_store_data.SetEyebrowColor(
64 static_cast<CommonColor>(appearance_bits5.eyebrow_color.Value()));
59 out_store_data.SetEyebrowScale(static_cast<u8>(appearance_bits5.eyebrow_scale)); 65 out_store_data.SetEyebrowScale(static_cast<u8>(appearance_bits5.eyebrow_scale));
60 out_store_data.SetEyebrowAspect(static_cast<u8>(appearance_bits5.eyebrow_aspect)); 66 out_store_data.SetEyebrowAspect(static_cast<u8>(appearance_bits5.eyebrow_aspect));
61 out_store_data.SetEyebrowRotate(static_cast<u8>(appearance_bits5.eyebrow_rotate)); 67 out_store_data.SetEyebrowRotate(static_cast<u8>(appearance_bits5.eyebrow_rotate));
62 out_store_data.SetEyebrowX(static_cast<u8>(appearance_bits5.eyebrow_x)); 68 out_store_data.SetEyebrowX(static_cast<u8>(appearance_bits5.eyebrow_x));
63 out_store_data.SetEyebrowY(static_cast<u8>(appearance_bits5.eyebrow_y)); 69 out_store_data.SetEyebrowY(static_cast<u8>(appearance_bits5.eyebrow_y));
64 70
65 out_store_data.SetNoseType(static_cast<u8>(appearance_bits6.nose_type)); 71 out_store_data.SetNoseType(static_cast<NoseType>(appearance_bits6.nose_type.Value()));
66 out_store_data.SetNoseScale(static_cast<u8>(appearance_bits6.nose_scale)); 72 out_store_data.SetNoseScale(static_cast<u8>(appearance_bits6.nose_scale));
67 out_store_data.SetNoseY(static_cast<u8>(appearance_bits6.nose_y)); 73 out_store_data.SetNoseY(static_cast<u8>(appearance_bits6.nose_y));
68 74
69 out_store_data.SetMouthType(static_cast<u8>(appearance_bits7.mouth_type)); 75 out_store_data.SetMouthType(static_cast<u8>(appearance_bits7.mouth_type));
70 out_store_data.SetMouthColor(static_cast<u8>(appearance_bits7.mouth_color)); 76 out_store_data.SetMouthColor(static_cast<CommonColor>(appearance_bits7.mouth_color.Value()));
71 out_store_data.SetMouthScale(static_cast<u8>(appearance_bits7.mouth_scale)); 77 out_store_data.SetMouthScale(static_cast<u8>(appearance_bits7.mouth_scale));
72 out_store_data.SetMouthAspect(static_cast<u8>(appearance_bits7.mouth_aspect)); 78 out_store_data.SetMouthAspect(static_cast<u8>(appearance_bits7.mouth_aspect));
73 out_store_data.SetMouthY(static_cast<u8>(appearance_bits8.mouth_y)); 79 out_store_data.SetMouthY(static_cast<u8>(appearance_bits8.mouth_y));
74 80
75 out_store_data.SetMustacheType( 81 out_store_data.SetMustacheType(
76 static_cast<MustacheType>(static_cast<u8>(appearance_bits8.mustache_type))); 82 static_cast<MustacheType>(appearance_bits8.mustache_type.Value()));
77 out_store_data.SetMustacheScale(static_cast<u8>(appearance_bits9.mustache_scale)); 83 out_store_data.SetMustacheScale(static_cast<u8>(appearance_bits9.mustache_scale));
78 out_store_data.SetMustacheY(static_cast<u8>(appearance_bits9.mustache_y)); 84 out_store_data.SetMustacheY(static_cast<u8>(appearance_bits9.mustache_y));
79 85
80 out_store_data.SetBeardType( 86 out_store_data.SetBeardType(static_cast<BeardType>(appearance_bits9.beard_type.Value()));
81 static_cast<BeardType>(static_cast<u8>(appearance_bits9.beard_type))); 87 out_store_data.SetBeardColor(static_cast<CommonColor>(appearance_bits9.beard_color.Value()));
82 out_store_data.SetBeardColor(static_cast<u8>(appearance_bits9.beard_color));
83 88
84 out_store_data.SetGlassType(static_cast<u8>(appearance_bits10.glass_type)); 89 out_store_data.SetGlassType(static_cast<GlassType>(appearance_bits10.glass_type.Value()));
85 out_store_data.SetGlassColor(static_cast<u8>(appearance_bits10.glass_color)); 90 out_store_data.SetGlassColor(static_cast<CommonColor>(appearance_bits10.glass_color.Value()));
86 out_store_data.SetGlassScale(static_cast<u8>(appearance_bits10.glass_scale)); 91 out_store_data.SetGlassScale(static_cast<u8>(appearance_bits10.glass_scale));
87 out_store_data.SetGlassY(static_cast<u8>(appearance_bits10.glass_y)); 92 out_store_data.SetGlassY(static_cast<u8>(appearance_bits10.glass_y));
88 93
89 out_store_data.SetMoleType(static_cast<u8>(appearance_bits11.mole_type)); 94 out_store_data.SetMoleType(static_cast<MoleType>(appearance_bits11.mole_type.Value()));
90 out_store_data.SetMoleScale(static_cast<u8>(appearance_bits11.mole_scale)); 95 out_store_data.SetMoleScale(static_cast<u8>(appearance_bits11.mole_scale));
91 out_store_data.SetMoleX(static_cast<u8>(appearance_bits11.mole_x)); 96 out_store_data.SetMoleX(static_cast<u8>(appearance_bits11.mole_x));
92 out_store_data.SetMoleY(static_cast<u8>(appearance_bits11.mole_y)); 97 out_store_data.SetMoleY(static_cast<u8>(appearance_bits11.mole_y));
@@ -94,71 +99,75 @@ void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const {
94 99
95void Ver3StoreData::BuildFromStoreData(const StoreData& store_data) { 100void Ver3StoreData::BuildFromStoreData(const StoreData& store_data) {
96 version = 1; 101 version = 1;
97 mii_information.gender.Assign(store_data.GetGender()); 102 mii_information.gender.Assign(static_cast<u8>(store_data.GetGender()));
98 mii_information.favorite_color.Assign(store_data.GetFavoriteColor()); 103 mii_information.favorite_color.Assign(static_cast<u8>(store_data.GetFavoriteColor()));
99 height = store_data.GetHeight(); 104 height = store_data.GetHeight();
100 build = store_data.GetBuild(); 105 build = store_data.GetBuild();
101 106
102 mii_name = store_data.GetNickname(); 107 mii_name = store_data.GetNickname();
103 region_information.font_region.Assign(static_cast<u8>(store_data.GetFontRegion())); 108 region_information.font_region.Assign(static_cast<u8>(store_data.GetFontRegion()));
104 109
105 appearance_bits1.faceline_type.Assign(store_data.GetFacelineType()); 110 appearance_bits1.faceline_type.Assign(static_cast<u8>(store_data.GetFacelineType()));
106 appearance_bits2.faceline_wrinkle.Assign(store_data.GetFacelineWrinkle()); 111 appearance_bits2.faceline_wrinkle.Assign(static_cast<u8>(store_data.GetFacelineWrinkle()));
107 appearance_bits2.faceline_make.Assign(store_data.GetFacelineMake()); 112 appearance_bits2.faceline_make.Assign(static_cast<u8>(store_data.GetFacelineMake()));
108 113
109 hair_type = store_data.GetHairType(); 114 hair_type = static_cast<u8>(store_data.GetHairType());
110 appearance_bits3.hair_flip.Assign(store_data.GetHairFlip()); 115 appearance_bits3.hair_flip.Assign(static_cast<u8>(store_data.GetHairFlip()));
111 116
112 appearance_bits4.eye_type.Assign(store_data.GetEyeType()); 117 appearance_bits4.eye_type.Assign(static_cast<u8>(store_data.GetEyeType()));
113 appearance_bits4.eye_scale.Assign(store_data.GetEyeScale()); 118 appearance_bits4.eye_scale.Assign(store_data.GetEyeScale());
114 appearance_bits4.eye_aspect.Assign(store_data.GetEyebrowAspect()); 119 appearance_bits4.eye_aspect.Assign(store_data.GetEyebrowAspect());
115 appearance_bits4.eye_rotate.Assign(store_data.GetEyeRotate()); 120 appearance_bits4.eye_rotate.Assign(store_data.GetEyeRotate());
116 appearance_bits4.eye_x.Assign(store_data.GetEyeX()); 121 appearance_bits4.eye_x.Assign(store_data.GetEyeX());
117 appearance_bits4.eye_y.Assign(store_data.GetEyeY()); 122 appearance_bits4.eye_y.Assign(store_data.GetEyeY());
118 123
119 appearance_bits5.eyebrow_type.Assign(store_data.GetEyebrowType()); 124 appearance_bits5.eyebrow_type.Assign(static_cast<u8>(store_data.GetEyebrowType()));
120 appearance_bits5.eyebrow_scale.Assign(store_data.GetEyebrowScale()); 125 appearance_bits5.eyebrow_scale.Assign(store_data.GetEyebrowScale());
121 appearance_bits5.eyebrow_aspect.Assign(store_data.GetEyebrowAspect()); 126 appearance_bits5.eyebrow_aspect.Assign(store_data.GetEyebrowAspect());
122 appearance_bits5.eyebrow_rotate.Assign(store_data.GetEyebrowRotate()); 127 appearance_bits5.eyebrow_rotate.Assign(store_data.GetEyebrowRotate());
123 appearance_bits5.eyebrow_x.Assign(store_data.GetEyebrowX()); 128 appearance_bits5.eyebrow_x.Assign(store_data.GetEyebrowX());
124 appearance_bits5.eyebrow_y.Assign(store_data.GetEyebrowY()); 129 appearance_bits5.eyebrow_y.Assign(store_data.GetEyebrowY());
125 130
126 appearance_bits6.nose_type.Assign(store_data.GetNoseType()); 131 appearance_bits6.nose_type.Assign(static_cast<u8>(store_data.GetNoseType()));
127 appearance_bits6.nose_scale.Assign(store_data.GetNoseScale()); 132 appearance_bits6.nose_scale.Assign(store_data.GetNoseScale());
128 appearance_bits6.nose_y.Assign(store_data.GetNoseY()); 133 appearance_bits6.nose_y.Assign(store_data.GetNoseY());
129 134
130 appearance_bits7.mouth_type.Assign(store_data.GetMouthType()); 135 appearance_bits7.mouth_type.Assign(static_cast<u8>(store_data.GetMouthType()));
131 appearance_bits7.mouth_scale.Assign(store_data.GetMouthScale()); 136 appearance_bits7.mouth_scale.Assign(store_data.GetMouthScale());
132 appearance_bits7.mouth_aspect.Assign(store_data.GetMouthAspect()); 137 appearance_bits7.mouth_aspect.Assign(store_data.GetMouthAspect());
133 appearance_bits8.mouth_y.Assign(store_data.GetMouthY()); 138 appearance_bits8.mouth_y.Assign(store_data.GetMouthY());
134 139
135 appearance_bits8.mustache_type.Assign(store_data.GetMustacheType()); 140 appearance_bits8.mustache_type.Assign(static_cast<u8>(store_data.GetMustacheType()));
136 appearance_bits9.mustache_scale.Assign(store_data.GetMustacheScale()); 141 appearance_bits9.mustache_scale.Assign(store_data.GetMustacheScale());
137 appearance_bits9.mustache_y.Assign(store_data.GetMustacheY()); 142 appearance_bits9.mustache_y.Assign(store_data.GetMustacheY());
138 143
139 appearance_bits9.beard_type.Assign(store_data.GetBeardType()); 144 appearance_bits9.beard_type.Assign(static_cast<u8>(store_data.GetBeardType()));
140 145
141 appearance_bits10.glass_scale.Assign(store_data.GetGlassScale()); 146 appearance_bits10.glass_scale.Assign(store_data.GetGlassScale());
142 appearance_bits10.glass_y.Assign(store_data.GetGlassY()); 147 appearance_bits10.glass_y.Assign(store_data.GetGlassY());
143 148
144 appearance_bits11.mole_type.Assign(store_data.GetMoleType()); 149 appearance_bits11.mole_type.Assign(static_cast<u8>(store_data.GetMoleType()));
145 appearance_bits11.mole_scale.Assign(store_data.GetMoleScale()); 150 appearance_bits11.mole_scale.Assign(store_data.GetMoleScale());
146 appearance_bits11.mole_x.Assign(store_data.GetMoleX()); 151 appearance_bits11.mole_x.Assign(store_data.GetMoleX());
147 appearance_bits11.mole_y.Assign(store_data.GetMoleY()); 152 appearance_bits11.mole_y.Assign(store_data.GetMoleY());
148 153
149 // These types are converted to V3 from a table 154 // These types are converted to V3 from a table
150 appearance_bits1.faceline_color.Assign( 155 appearance_bits1.faceline_color.Assign(
151 RawData::FromVer3GetFacelineColor(store_data.GetFacelineColor())); 156 RawData::FromVer3GetFacelineColor(static_cast<u8>(store_data.GetFacelineColor())));
152 appearance_bits3.hair_color.Assign(RawData::FromVer3GetHairColor(store_data.GetHairColor())); 157 appearance_bits3.hair_color.Assign(
153 appearance_bits4.eye_color.Assign(RawData::FromVer3GetEyeColor(store_data.GetEyeColor())); 158 RawData::FromVer3GetHairColor(static_cast<u8>(store_data.GetHairColor())));
159 appearance_bits4.eye_color.Assign(
160 RawData::FromVer3GetEyeColor(static_cast<u8>(store_data.GetEyeColor())));
154 appearance_bits5.eyebrow_color.Assign( 161 appearance_bits5.eyebrow_color.Assign(
155 RawData::FromVer3GetHairColor(store_data.GetEyebrowColor())); 162 RawData::FromVer3GetHairColor(static_cast<u8>(store_data.GetEyebrowColor())));
156 appearance_bits7.mouth_color.Assign( 163 appearance_bits7.mouth_color.Assign(
157 RawData::FromVer3GetMouthlineColor(store_data.GetMouthColor())); 164 RawData::FromVer3GetMouthlineColor(static_cast<u8>(store_data.GetMouthColor())));
158 appearance_bits9.beard_color.Assign(RawData::FromVer3GetHairColor(store_data.GetBeardColor())); 165 appearance_bits9.beard_color.Assign(
166 RawData::FromVer3GetHairColor(static_cast<u8>(store_data.GetBeardColor())));
159 appearance_bits10.glass_color.Assign( 167 appearance_bits10.glass_color.Assign(
160 RawData::FromVer3GetGlassColor(store_data.GetGlassColor())); 168 RawData::FromVer3GetGlassColor(static_cast<u8>(store_data.GetGlassColor())));
161 appearance_bits10.glass_type.Assign(RawData::FromVer3GetGlassType(store_data.GetGlassType())); 169 appearance_bits10.glass_type.Assign(
170 RawData::FromVer3GetGlassType(static_cast<u8>(store_data.GetGlassType())));
162 171
163 crc = MiiUtil::CalculateCrc16(&version, sizeof(Ver3StoreData) - sizeof(u16)); 172 crc = MiiUtil::CalculateCrc16(&version, sizeof(Ver3StoreData) - sizeof(u16));
164} 173}
@@ -166,64 +175,65 @@ void Ver3StoreData::BuildFromStoreData(const StoreData& store_data) {
166u32 Ver3StoreData::IsValid() const { 175u32 Ver3StoreData::IsValid() const {
167 bool is_valid = version == 0 || version == 3; 176 bool is_valid = version == 0 || version == 3;
168 177
169 is_valid = is_valid && (mii_name.data[0] != 0); 178 is_valid = is_valid && (mii_name.data[0] != '\0');
170 179
171 is_valid = is_valid && (mii_information.birth_month < 13); 180 is_valid = is_valid && (mii_information.birth_month < 13);
172 is_valid = is_valid && (mii_information.birth_day < 32); 181 is_valid = is_valid && (mii_information.birth_day < 32);
173 is_valid = is_valid && (mii_information.favorite_color < 12); 182 is_valid = is_valid && (mii_information.favorite_color <= static_cast<u8>(FavoriteColor::Max));
174 is_valid = is_valid && (height < 128); 183 is_valid = is_valid && (height <= MaxHeight);
175 is_valid = is_valid && (build < 128); 184 is_valid = is_valid && (build <= MaxBuild);
176 185
177 is_valid = is_valid && (appearance_bits1.faceline_type < 12); 186 is_valid = is_valid && (appearance_bits1.faceline_type <= static_cast<u8>(FacelineType::Max));
178 is_valid = is_valid && (appearance_bits1.faceline_color < 7); 187 is_valid = is_valid && (appearance_bits1.faceline_color <= MaxVer3CommonColor - 2);
179 is_valid = is_valid && (appearance_bits2.faceline_wrinkle < 12); 188 is_valid =
180 is_valid = is_valid && (appearance_bits2.faceline_make < 12); 189 is_valid && (appearance_bits2.faceline_wrinkle <= static_cast<u8>(FacelineWrinkle::Max));
181 190 is_valid = is_valid && (appearance_bits2.faceline_make <= static_cast<u8>(FacelineMake::Max));
182 is_valid = is_valid && (hair_type < 132); 191
183 is_valid = is_valid && (appearance_bits3.hair_color < 8); 192 is_valid = is_valid && (hair_type <= static_cast<u8>(HairType::Max));
184 193 is_valid = is_valid && (appearance_bits3.hair_color <= MaxVer3CommonColor);
185 is_valid = is_valid && (appearance_bits4.eye_type < 60); 194
186 is_valid = is_valid && (appearance_bits4.eye_color < 6); 195 is_valid = is_valid && (appearance_bits4.eye_type <= static_cast<u8>(EyeType::Max));
187 is_valid = is_valid && (appearance_bits4.eye_scale < 8); 196 is_valid = is_valid && (appearance_bits4.eye_color <= MaxVer3CommonColor - 2);
188 is_valid = is_valid && (appearance_bits4.eye_aspect < 7); 197 is_valid = is_valid && (appearance_bits4.eye_scale <= MaxEyeScale);
189 is_valid = is_valid && (appearance_bits4.eye_rotate < 8); 198 is_valid = is_valid && (appearance_bits4.eye_aspect <= MaxEyeAspect);
190 is_valid = is_valid && (appearance_bits4.eye_x < 13); 199 is_valid = is_valid && (appearance_bits4.eye_rotate <= MaxEyeRotate);
191 is_valid = is_valid && (appearance_bits4.eye_y < 19); 200 is_valid = is_valid && (appearance_bits4.eye_x <= MaxEyeX);
192 201 is_valid = is_valid && (appearance_bits4.eye_y <= MaxEyeY);
193 is_valid = is_valid && (appearance_bits5.eyebrow_type < 25); 202
194 is_valid = is_valid && (appearance_bits5.eyebrow_color < 8); 203 is_valid = is_valid && (appearance_bits5.eyebrow_type <= static_cast<u8>(EyebrowType::Max));
195 is_valid = is_valid && (appearance_bits5.eyebrow_scale < 9); 204 is_valid = is_valid && (appearance_bits5.eyebrow_color <= MaxVer3CommonColor);
196 is_valid = is_valid && (appearance_bits5.eyebrow_aspect < 7); 205 is_valid = is_valid && (appearance_bits5.eyebrow_scale <= MaxEyebrowScale);
197 is_valid = is_valid && (appearance_bits5.eyebrow_rotate < 12); 206 is_valid = is_valid && (appearance_bits5.eyebrow_aspect <= MaxEyebrowAspect);
198 is_valid = is_valid && (appearance_bits5.eyebrow_x < 12); 207 is_valid = is_valid && (appearance_bits5.eyebrow_rotate <= MaxEyebrowRotate);
199 is_valid = is_valid && (appearance_bits5.eyebrow_y < 19); 208 is_valid = is_valid && (appearance_bits5.eyebrow_x <= MaxEyebrowX);
200 209 is_valid = is_valid && (appearance_bits5.eyebrow_y <= MaxEyebrowY);
201 is_valid = is_valid && (appearance_bits6.nose_type < 18); 210
202 is_valid = is_valid && (appearance_bits6.nose_scale < 9); 211 is_valid = is_valid && (appearance_bits6.nose_type <= static_cast<u8>(NoseType::Max));
203 is_valid = is_valid && (appearance_bits6.nose_y < 19); 212 is_valid = is_valid && (appearance_bits6.nose_scale <= MaxNoseScale);
204 213 is_valid = is_valid && (appearance_bits6.nose_y <= MaxNoseY);
205 is_valid = is_valid && (appearance_bits7.mouth_type < 36); 214
206 is_valid = is_valid && (appearance_bits7.mouth_color < 5); 215 is_valid = is_valid && (appearance_bits7.mouth_type <= static_cast<u8>(MouthType::Max));
207 is_valid = is_valid && (appearance_bits7.mouth_scale < 9); 216 is_valid = is_valid && (appearance_bits7.mouth_color <= MaxVer3CommonColor - 3);
208 is_valid = is_valid && (appearance_bits7.mouth_aspect < 7); 217 is_valid = is_valid && (appearance_bits7.mouth_scale <= MaxMouthScale);
209 is_valid = is_valid && (appearance_bits8.mouth_y < 19); 218 is_valid = is_valid && (appearance_bits7.mouth_aspect <= MaxMoutAspect);
210 219 is_valid = is_valid && (appearance_bits8.mouth_y <= MaxMouthY);
211 is_valid = is_valid && (appearance_bits8.mustache_type < 6); 220
212 is_valid = is_valid && (appearance_bits9.mustache_scale < 7); 221 is_valid = is_valid && (appearance_bits8.mustache_type <= static_cast<u8>(MustacheType::Max));
213 is_valid = is_valid && (appearance_bits9.mustache_y < 17); 222 is_valid = is_valid && (appearance_bits9.mustache_scale < MaxMustacheScale);
214 223 is_valid = is_valid && (appearance_bits9.mustache_y <= MasMustacheY);
215 is_valid = is_valid && (appearance_bits9.beard_type < 6); 224
216 is_valid = is_valid && (appearance_bits9.beard_color < 8); 225 is_valid = is_valid && (appearance_bits9.beard_type <= static_cast<u8>(BeardType::Max));
217 226 is_valid = is_valid && (appearance_bits9.beard_color <= MaxVer3CommonColor);
218 is_valid = is_valid && (appearance_bits10.glass_type < 9); 227
219 is_valid = is_valid && (appearance_bits10.glass_color < 6); 228 is_valid = is_valid && (appearance_bits10.glass_type <= MaxVer3GlassType);
220 is_valid = is_valid && (appearance_bits10.glass_scale < 8); 229 is_valid = is_valid && (appearance_bits10.glass_color <= MaxVer3CommonColor - 2);
221 is_valid = is_valid && (appearance_bits10.glass_y < 21); 230 is_valid = is_valid && (appearance_bits10.glass_scale <= MaxGlassScale);
222 231 is_valid = is_valid && (appearance_bits10.glass_y <= MaxGlassScale);
223 is_valid = is_valid && (appearance_bits11.mole_type < 2); 232
224 is_valid = is_valid && (appearance_bits11.mole_scale < 9); 233 is_valid = is_valid && (appearance_bits11.mole_type <= static_cast<u8>(MoleType::Max));
225 is_valid = is_valid && (appearance_bits11.mole_x < 17); 234 is_valid = is_valid && (appearance_bits11.mole_scale <= MaxMoleScale);
226 is_valid = is_valid && (appearance_bits11.mole_y < 31); 235 is_valid = is_valid && (appearance_bits11.mole_x <= MaxMoleX);
236 is_valid = is_valid && (appearance_bits11.mole_y <= MaxMoleY);
227 237
228 return is_valid; 238 return is_valid;
229} 239}