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,20 +13,517 @@ namespace Service::Mii { -enum class Age : u32 { +constexpr u8 MaxHeight = 127; +constexpr u8 MaxBuild = 127; +constexpr u8 MaxType = 1; +constexpr u8 MaxRegionMove = 3; +constexpr u8 MaxEyeScale = 7; +constexpr u8 MaxEyeAspect = 6; +constexpr u8 MaxEyeRotate = 7; +constexpr u8 MaxEyeX = 12; +constexpr u8 MaxEyeY = 18; +constexpr u8 MaxEyebrowScale = 8; +constexpr u8 MaxEyebrowAspect = 6; +constexpr u8 MaxEyebrowRotate = 11; +constexpr u8 MaxEyebrowX = 12; +constexpr u8 MaxEyebrowY = 18; +constexpr u8 MaxNoseScale = 8; +constexpr u8 MaxNoseY = 18; +constexpr u8 MaxMouthScale = 8; +constexpr u8 MaxMoutAspect = 6; +constexpr u8 MaxMouthY = 18; +constexpr u8 MaxMustacheScale = 8; +constexpr u8 MasMustacheY = 16; +constexpr u8 MaxGlassScale = 7; +constexpr u8 MaxGlassY = 20; +constexpr u8 MaxMoleScale = 8; +constexpr u8 MaxMoleX = 16; +constexpr u8 MaxMoleY = 30; +constexpr u8 MaxVer3CommonColor = 7; +constexpr u8 MaxVer3GlassType = 8; + +enum class Age : u8 { Young, Normal, Old, - All, + All, // Default + + Max = All, }; -enum class BeardType : u32 { +enum class Gender : u8 { + Male, + Female, + All, // Default + + Max = Female, +}; + +enum class Race : u8 { + Black, + White, + Asian, + All, // Default + + Max = All, +}; + +enum class HairType : u8 { + NormalLong, // Default + NormalShort, + NormalMedium, + NormalExtraLong, + NormalLongBottom, + NormalTwoPeaks, + PartingLong, + FrontLock, + PartingShort, + PartingExtraLongCurved, + PartingExtraLong, + PartingMiddleLong, + PartingSquared, + PartingLongBottom, + PeaksTop, + PeaksSquared, + PartingPeaks, + PeaksLongBottom, + Peaks, + PeaksRounded, + PeaksSide, + PeaksMedium, + PeaksLong, + PeaksRoundedLong, + PartingFrontPeaks, + PartingLongFront, + PartingLongRounded, + PartingFrontPeaksLong, + PartingExtraLongRounded, + LongRounded, + NormalUnknown1, + NormalUnknown2, + NormalUnknown3, + NormalUnknown4, + NormalUnknown5, + NormalUnknown6, + DreadLocks, + PlatedMats, + Caps, + Afro, + PlatedMatsLong, + Beanie, + Short, + ShortTopLongSide, + ShortUnknown1, + ShortUnknown2, + MilitaryParting, + Military, + ShortUnknown3, + ShortUnknown4, + ShortUnknown5, + ShortUnknown6, + NoneTop, None, - Beard1, - Beard2, - Beard3, - Beard4, - Beard5, + LongUnknown1, + LongUnknown2, + LongUnknown3, + LongUnknown4, + LongUnknown5, + LongUnknown6, + LongUnknown7, + LongUnknown8, + LongUnknown9, + LongUnknown10, + LongUnknown11, + LongUnknown12, + LongUnknown13, + LongUnknown14, + LongUnknown15, + LongUnknown16, + LongUnknown17, + LongUnknown18, + LongUnknown19, + LongUnknown20, + LongUnknown21, + LongUnknown22, + LongUnknown23, + LongUnknown24, + LongUnknown25, + LongUnknown26, + LongUnknown27, + LongUnknown28, + LongUnknown29, + LongUnknown30, + LongUnknown31, + LongUnknown32, + LongUnknown33, + LongUnknown34, + LongUnknown35, + LongUnknown36, + LongUnknown37, + LongUnknown38, + LongUnknown39, + LongUnknown40, + LongUnknown41, + LongUnknown42, + LongUnknown43, + LongUnknown44, + LongUnknown45, + LongUnknown46, + LongUnknown47, + LongUnknown48, + LongUnknown49, + LongUnknown50, + LongUnknown51, + LongUnknown52, + LongUnknown53, + LongUnknown54, + LongUnknown55, + LongUnknown56, + LongUnknown57, + LongUnknown58, + LongUnknown59, + LongUnknown60, + LongUnknown61, + LongUnknown62, + LongUnknown63, + LongUnknown64, + LongUnknown65, + LongUnknown66, + TwoMediumFrontStrandsOneLongBackPonyTail, + TwoFrontStrandsLongBackPonyTail, + PartingFrontTwoLongBackPonyTails, + TwoFrontStrandsOneLongBackPonyTail, + LongBackPonyTail, + LongFrontTwoLongBackPonyTails, + StrandsTwoShortSidedPonyTails, + TwoMediumSidedPonyTails, + ShortFrontTwoBackPonyTails, + TwoShortSidedPonyTails, + TwoLongSidedPonyTails, + LongFrontTwoBackPonyTails, + + Max = LongFrontTwoBackPonyTails, +}; + +enum class MoleType : u8 { + None, // Default + OneDot, + + Max = OneDot, +}; + +enum class HairFlip : u8 { + Left, // Default + Right, + + Max = Right, +}; + +enum class CommonColor : u8 { + // For simplicity common colors aren't listed + Max = 99, + Count = 100, +}; + +enum class FavoriteColor : u8 { + Red, // Default + Orange, + Yellow, + LimeGreen, + Green, + Blue, + LightBlue, + Pink, + Purple, + Brown, + White, + Black, + + Max = Black, +}; + +enum class EyeType : u8 { + Normal, // Default + NormalLash, + WhiteLash, + WhiteNoBottom, + OvalAngledWhite, + AngryWhite, + DotLashType1, + Line, + DotLine, + OvalWhite, + RoundedWhite, + NormalShadow, + CircleWhite, + Circle, + CircleWhiteStroke, + NormalOvalNoBottom, + NormalOvalLarge, + NormalRoundedNoBottom, + SmallLash, + Small, + TwoSmall, + NormalLongLash, + WhiteTwoLashes, + WhiteThreeLashes, + DotAngry, + DotAngled, + Oval, + SmallWhite, + WhiteAngledNoBottom, + WhiteAngledNoLeft, + SmallWhiteTwoLashes, + LeafWhiteLash, + WhiteLargeNoBottom, + Dot, + DotLashType2, + DotThreeLashes, + WhiteOvalTop, + WhiteOvalBottom, + WhiteOvalBottomFlat, + WhiteOvalTwoLashes, + WhiteOvalThreeLashes, + WhiteOvalNoBottomTwoLashes, + DotWhite, + WhiteOvalTopFlat, + WhiteThinLeaf, + StarThreeLashes, + LineTwoLashes, + CrowsFeet, + WhiteNoBottomFlat, + WhiteNoBottomRounded, + WhiteSmallBottomLine, + WhiteNoBottomLash, + WhiteNoPartialBottomLash, + WhiteOvalBottomLine, + WhiteNoBottomLashTopLine, + WhiteNoPartialBottomTwoLashes, + NormalTopLine, + WhiteOvalLash, + RoundTired, + WhiteLarge, + + Max = WhiteLarge, +}; + +enum class MouthType : u8 { + Neutral, // Default + NeutralLips, + Smile, + SmileStroke, + SmileTeeth, + LipsSmall, + LipsLarge, + Wave, + WaveAngrySmall, + NeutralStrokeLarge, + TeethSurprised, + LipsExtraLarge, + LipsUp, + NeutralDown, + Surprised, + TeethMiddle, + NeutralStroke, + LipsExtraSmall, + Malicious, + LipsDual, + NeutralComma, + NeutralUp, + TeethLarge, + WaveAngry, + LipsSexy, + SmileInverted, + LipsSexyOutline, + SmileRounded, + LipsTeeth, + NeutralOpen, + TeethRounded, + WaveAngrySmallInverted, + NeutralCommaInverted, + TeethFull, + SmileDownLine, + Kiss, + + Max = Kiss, +}; + +enum class FontRegion : u8 { + Standard, // Default + China, + Korea, + Taiwan, + + Max = Taiwan, +}; + +enum class FacelineType : u8 { + Sharp, // Default + Rounded, + SharpRounded, + SharpRoundedSmall, + Large, + LargeRounded, + SharpSmall, + Flat, + Bump, + Angular, + FlatRounded, + AngularSmall, + + Max = AngularSmall, +}; + +enum class FacelineColor : u8 { + Beige, // Default + WarmBeige, + Natural, + Honey, + Chestnut, + Porcelain, + Ivory, + WarmIvory, + Almond, + Espresso, + + Max = Espresso, + Count = Max + 1, +}; + +enum class FacelineWrinkle : u8 { + None, // Default + TearTroughs, + FacialPain, + Cheeks, + Folds, + UnderTheEyes, + SplitChin, + Chin, + BrowDroop, + MouthFrown, + CrowsFeet, + FoldsCrowsFrown, + + Max = FoldsCrowsFrown, +}; + +enum class FacelineMake : u8 { + None, // Default + CheekPorcelain, + CheekNatural, + EyeShadowBlue, + CheekBlushPorcelain, + CheekBlushNatural, + CheekPorcelainEyeShadowBlue, + CheekPorcelainEyeShadowNatural, + CheekBlushPorcelainEyeShadowEspresso, + Freckles, + LionsManeBeard, + StubbleBeard, + + Max = StubbleBeard, +}; + +enum class EyebrowType : u8 { + FlatAngledLarge, // Default + LowArchRoundedThin, + SoftAngledLarge, + MediumArchRoundedThin, + RoundedMedium, + LowArchMedium, + RoundedThin, + UpThin, + MediumArchRoundedMedium, + RoundedLarge, + UpLarge, + FlatAngledLargeInverted, + MediumArchFlat, + AngledThin, + HorizontalLarge, + HighArchFlat, + Flat, + MediumArchLarge, + LowArchThin, + RoundedThinInverted, + HighArchLarge, + Hairy, + Dotted, + None, + + Max = None, +}; + +enum class NoseType : u8 { + Normal, // Default + Rounded, + Dot, + Arrow, + Roman, + Triangle, + Button, + RoundedInverted, + Potato, + Grecian, + Snub, + Aquiline, + ArrowLeft, + RoundedLarge, + Hooked, + Fat, + Droopy, + ArrowLarge, + + Max = ArrowLarge, +}; + +enum class BeardType : u8 { + None, + Goatee, + GoateeLong, + LionsManeLong, + LionsMane, + Full, + + Min = Goatee, + Max = Full, +}; + +enum class MustacheType : u8 { + None, + Walrus, + Pencil, + Horseshoe, + Normal, + Toothbrush, + + Min = Walrus, + Max = Toothbrush, +}; + +enum class GlassType : u8 { + None, + Oval, + Wayfarer, + Rectangle, + TopRimless, + Rounded, + Oversized, + CatEye, + Square, + BottomRimless, + SemiOpaqueRounded, + SemiOpaqueCatEye, + SemiOpaqueOval, + SemiOpaqueRectangle, + SemiOpaqueAviator, + OpaqueRounded, + OpaqueCatEye, + OpaqueOval, + OpaqueRectangle, + OpaqueAviator, + + Max = OpaqueAviator, + Count = Max + 1, }; enum class BeardAndMustacheFlag : u32 { @@ -36,42 +533,6 @@ enum class BeardAndMustacheFlag : u32 { }; DECLARE_ENUM_FLAG_OPERATORS(BeardAndMustacheFlag); -enum class FontRegion : u32 { - Standard, - China, - Korea, - Taiwan, -}; - -enum class Gender : u32 { - Male, - Female, - All, - Maximum = Female, -}; - -enum class HairFlip : u32 { - Left, - Right, - Maximum = Right, -}; - -enum class MustacheType : u32 { - None, - Mustache1, - Mustache2, - Mustache3, - Mustache4, - Mustache5, -}; - -enum class Race : u32 { - Black, - White, - Asian, - All, -}; - enum class Source : u32 { Database = 0, Default = 1, @@ -173,7 +634,7 @@ struct DefaultMii { u32 face_makeup{}; u32 hair_type{}; u32 hair_color{}; - HairFlip hair_flip{}; + u32 hair_flip{}; u32 eye_type{}; u32 eye_color{}; u32 eye_scale{}; @@ -196,8 +657,8 @@ struct DefaultMii { u32 mouth_scale{}; u32 mouth_aspect{}; u32 mouth_y{}; - MustacheType mustache_type{}; - BeardType beard_type{}; + u32 mustache_type{}; + u32 beard_type{}; u32 beard_color{}; u32 mustache_scale{}; u32 mustache_y{}; @@ -211,10 +672,10 @@ struct DefaultMii { u32 mole_y{}; u32 height{}; u32 weight{}; - Gender gender{}; + u32 gender{}; u32 favorite_color{}; u32 region_move{}; - FontRegion font_region{}; + u32 font_region{}; u32 type{}; Nickname nickname; }; 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) { name = store_data.GetNickname(); null_terminator = '\0'; create_id = store_data.GetCreateId(); - font_region = static_cast(store_data.GetFontRegion()); + font_region = store_data.GetFontRegion(); favorite_color = store_data.GetFavoriteColor(); gender = store_data.GetGender(); height = store_data.GetHeight(); @@ -51,10 +51,10 @@ void CharInfo::SetFromStoreData(const StoreData& store_data) { mustache_type = store_data.GetMustacheType(); mustache_scale = store_data.GetMustacheScale(); mustache_y = store_data.GetMustacheY(); - glasses_type = store_data.GetGlassType(); - glasses_color = store_data.GetGlassColor(); - glasses_scale = store_data.GetGlassScale(); - glasses_y = store_data.GetGlassY(); + glass_type = store_data.GetGlassType(); + glass_color = store_data.GetGlassColor(); + glass_scale = store_data.GetGlassScale(); + glass_y = store_data.GetGlassY(); mole_type = store_data.GetMoleType(); mole_scale = store_data.GetMoleScale(); mole_x = store_data.GetMoleX(); @@ -69,151 +69,151 @@ ValidationResult CharInfo::Verify() const { if (!name.IsValid()) { return ValidationResult::InvalidName; } - if (3 < font_region) { + if (font_region > FontRegion::Max) { return ValidationResult::InvalidFont; } - if (0xb < favorite_color) { + if (favorite_color > FavoriteColor::Max) { return ValidationResult::InvalidColor; } - if (1 < gender) { + if (gender > Gender::Max) { return ValidationResult::InvalidGender; } - if (height > 0x7f) { + if (height > MaxHeight) { return ValidationResult::InvalidHeight; } - if (build > 0x7f) { + if (build > MaxBuild) { return ValidationResult::InvalidBuild; } - if (1 < type) { + if (type > MaxType) { return ValidationResult::InvalidType; } - if (3 < region_move) { + if (region_move > MaxRegionMove) { return ValidationResult::InvalidRegionMove; } - if (0xb < faceline_type) { + if (faceline_type > FacelineType::Max) { return ValidationResult::InvalidFacelineType; } - if (9 < faceline_color) { + if (faceline_color > FacelineColor::Max) { return ValidationResult::InvalidFacelineColor; } - if (0xb < faceline_wrinkle) { + if (faceline_wrinkle > FacelineWrinkle::Max) { return ValidationResult::InvalidFacelineWrinkle; } - if (0xb < faceline_make) { + if (faceline_make > FacelineMake::Max) { return ValidationResult::InvalidFacelineMake; } - if (0x83 < hair_type) { + if (hair_type > HairType::Max) { return ValidationResult::InvalidHairType; } - if (99 < hair_color) { + if (hair_color > CommonColor::Max) { return ValidationResult::InvalidHairColor; } - if (1 < hair_flip) { + if (hair_flip > HairFlip::Max) { return ValidationResult::InvalidHairFlip; } - if (0x3b < eye_type) { + if (eye_type > EyeType::Max) { return ValidationResult::InvalidEyeType; } - if (99 < eye_color) { + if (eye_color > CommonColor::Max) { return ValidationResult::InvalidEyeColor; } - if (7 < eye_scale) { + if (eye_scale > MaxEyeScale) { return ValidationResult::InvalidEyeScale; } - if (6 < eye_aspect) { + if (eye_aspect > MaxEyeAspect) { return ValidationResult::InvalidEyeAspect; } - if (7 < eye_rotate) { + if (eye_rotate > MaxEyeX) { return ValidationResult::InvalidEyeRotate; } - if (0xc < eye_x) { + if (eye_x > MaxEyeX) { return ValidationResult::InvalidEyeX; } - if (0x12 < eye_y) { + if (eye_y > MaxEyeY) { return ValidationResult::InvalidEyeY; } - if (0x17 < eyebrow_type) { + if (eyebrow_type > EyebrowType::Max) { return ValidationResult::InvalidEyebrowType; } - if (99 < eyebrow_color) { + if (eyebrow_color > CommonColor::Max) { return ValidationResult::InvalidEyebrowColor; } - if (8 < eyebrow_scale) { + if (eyebrow_scale > MaxEyebrowScale) { return ValidationResult::InvalidEyebrowScale; } - if (6 < eyebrow_aspect) { + if (eyebrow_aspect > MaxEyebrowAspect) { return ValidationResult::InvalidEyebrowAspect; } - if (0xb < eyebrow_rotate) { + if (eyebrow_rotate > MaxEyebrowRotate) { return ValidationResult::InvalidEyebrowRotate; } - if (0xc < eyebrow_x) { + if (eyebrow_x > MaxEyebrowX) { return ValidationResult::InvalidEyebrowX; } - if (0xf < eyebrow_y - 3) { + if (eyebrow_y > MaxEyebrowY) { return ValidationResult::InvalidEyebrowY; } - if (0x11 < nose_type) { + if (nose_type > NoseType::Max) { return ValidationResult::InvalidNoseType; } - if (nose_scale >= 9) { + if (nose_scale > MaxNoseScale) { return ValidationResult::InvalidNoseScale; } - if (0x12 < nose_y) { + if (nose_y > MaxNoseY) { return ValidationResult::InvalidNoseY; } - if (0x23 < mouth_type) { + if (mouth_type > MouthType::Max) { return ValidationResult::InvalidMouthType; } - if (99 < mouth_color) { + if (mouth_color > CommonColor::Max) { return ValidationResult::InvalidMouthColor; } - if (8 < mouth_scale) { + if (mouth_scale > MaxMouthScale) { return ValidationResult::InvalidMouthScale; } - if (6 < mouth_aspect) { + if (mouth_aspect > MaxMoutAspect) { return ValidationResult::InvalidMouthAspect; } - if (0x12 < mouth_y) { + if (mouth_y > MaxMouthY) { return ValidationResult::InvalidMoleY; } - if (99 < beard_color) { + if (beard_color > CommonColor::Max) { return ValidationResult::InvalidBeardColor; } - if (5 < beard_type) { + if (beard_type > BeardType::Max) { return ValidationResult::InvalidBeardType; } - if (5 < mustache_type) { + if (mustache_type > MustacheType::Max) { return ValidationResult::InvalidMustacheType; } - if (8 < mustache_scale) { + if (mustache_scale > MaxMustacheScale) { return ValidationResult::InvalidMustacheScale; } - if (0x10 < mustache_y) { + if (mustache_y > MasMustacheY) { return ValidationResult::InvalidMustacheY; } - if (0x13 < glasses_type) { + if (glass_type > GlassType::Max) { return ValidationResult::InvalidGlassType; } - if (99 < glasses_color) { + if (glass_color > CommonColor::Max) { return ValidationResult::InvalidGlassColor; } - if (7 < glasses_scale) { + if (glass_scale > MaxGlassScale) { return ValidationResult::InvalidGlassScale; } - if (0x14 < glasses_y) { + if (glass_y > MaxGlassY) { return ValidationResult::InvalidGlassY; } - if (mole_type >= 2) { + if (mole_type > MoleType::Max) { return ValidationResult::InvalidMoleType; } - if (8 < mole_scale) { + if (mole_scale > MaxMoleScale) { return ValidationResult::InvalidMoleScale; } - if (mole_x >= 0x11) { + if (mole_x > MaxMoleX) { return ValidationResult::InvalidMoleX; } - if (0x1e < mole_y) { + if (mole_y > MaxMoleY) { return ValidationResult::InvalidMoleY; } return ValidationResult::NoErrors; @@ -227,15 +227,15 @@ Nickname CharInfo::GetNickname() const { return name; } -u8 CharInfo::GetFontRegion() const { +FontRegion CharInfo::GetFontRegion() const { return font_region; } -u8 CharInfo::GetFavoriteColor() const { +FavoriteColor CharInfo::GetFavoriteColor() const { return favorite_color; } -u8 CharInfo::GetGender() const { +Gender CharInfo::GetGender() const { return gender; } @@ -255,39 +255,39 @@ u8 CharInfo::GetRegionMove() const { return region_move; } -u8 CharInfo::GetFacelineType() const { +FacelineType CharInfo::GetFacelineType() const { return faceline_type; } -u8 CharInfo::GetFacelineColor() const { +FacelineColor CharInfo::GetFacelineColor() const { return faceline_color; } -u8 CharInfo::GetFacelineWrinkle() const { +FacelineWrinkle CharInfo::GetFacelineWrinkle() const { return faceline_wrinkle; } -u8 CharInfo::GetFacelineMake() const { +FacelineMake CharInfo::GetFacelineMake() const { return faceline_make; } -u8 CharInfo::GetHairType() const { +HairType CharInfo::GetHairType() const { return hair_type; } -u8 CharInfo::GetHairColor() const { +CommonColor CharInfo::GetHairColor() const { return hair_color; } -u8 CharInfo::GetHairFlip() const { +HairFlip CharInfo::GetHairFlip() const { return hair_flip; } -u8 CharInfo::GetEyeType() const { +EyeType CharInfo::GetEyeType() const { return eye_type; } -u8 CharInfo::GetEyeColor() const { +CommonColor CharInfo::GetEyeColor() const { return eye_color; } @@ -311,11 +311,11 @@ u8 CharInfo::GetEyeY() const { return eye_y; } -u8 CharInfo::GetEyebrowType() const { +EyebrowType CharInfo::GetEyebrowType() const { return eyebrow_type; } -u8 CharInfo::GetEyebrowColor() const { +CommonColor CharInfo::GetEyebrowColor() const { return eyebrow_color; } @@ -339,7 +339,7 @@ u8 CharInfo::GetEyebrowY() const { return eyebrow_y; } -u8 CharInfo::GetNoseType() const { +NoseType CharInfo::GetNoseType() const { return nose_type; } @@ -351,11 +351,11 @@ u8 CharInfo::GetNoseY() const { return nose_y; } -u8 CharInfo::GetMouthType() const { +MouthType CharInfo::GetMouthType() const { return mouth_type; } -u8 CharInfo::GetMouthColor() const { +CommonColor CharInfo::GetMouthColor() const { return mouth_color; } @@ -371,15 +371,15 @@ u8 CharInfo::GetMouthY() const { return mouth_y; } -u8 CharInfo::GetBeardColor() const { +CommonColor CharInfo::GetBeardColor() const { return beard_color; } -u8 CharInfo::GetBeardType() const { +BeardType CharInfo::GetBeardType() const { return beard_type; } -u8 CharInfo::GetMustacheType() const { +MustacheType CharInfo::GetMustacheType() const { return mustache_type; } @@ -391,23 +391,23 @@ u8 CharInfo::GetMustacheY() const { return mustache_y; } -u8 CharInfo::GetGlassType() const { - return glasses_type; +GlassType CharInfo::GetGlassType() const { + return glass_type; } -u8 CharInfo::GetGlassColor() const { - return glasses_color; +CommonColor CharInfo::GetGlassColor() const { + return glass_color; } u8 CharInfo::GetGlassScale() const { - return glasses_scale; + return glass_scale; } u8 CharInfo::GetGlassY() const { - return glasses_y; + return glass_y; } -u8 CharInfo::GetMoleType() const { +MoleType CharInfo::GetMoleType() const { return mole_type; } @@ -468,10 +468,10 @@ bool CharInfo::operator==(const CharInfo& info) { is_identical &= mustache_type == info.GetMustacheType(); is_identical &= mustache_scale == info.GetMustacheScale(); is_identical &= mustache_y == info.GetMustacheY(); - is_identical &= glasses_type == info.GetGlassType(); - is_identical &= glasses_color == info.GetGlassColor(); - is_identical &= glasses_scale == info.GetGlassScale(); - is_identical &= glasses_y == info.GetGlassY(); + is_identical &= glass_type == info.GetGlassType(); + is_identical &= glass_color == info.GetGlassColor(); + is_identical &= glass_scale == info.GetGlassScale(); + is_identical &= glass_y == info.GetGlassY(); is_identical &= mole_type == info.GetMoleType(); is_identical &= mole_scale == info.GetMoleScale(); 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: Common::UUID GetCreateId() const; Nickname GetNickname() const; - u8 GetFontRegion() const; - u8 GetFavoriteColor() const; - u8 GetGender() const; + FontRegion GetFontRegion() const; + FavoriteColor GetFavoriteColor() const; + Gender GetGender() const; u8 GetHeight() const; u8 GetBuild() const; u8 GetType() const; u8 GetRegionMove() const; - u8 GetFacelineType() const; - u8 GetFacelineColor() const; - u8 GetFacelineWrinkle() const; - u8 GetFacelineMake() const; - u8 GetHairType() const; - u8 GetHairColor() const; - u8 GetHairFlip() const; - u8 GetEyeType() const; - u8 GetEyeColor() const; + FacelineType GetFacelineType() const; + FacelineColor GetFacelineColor() const; + FacelineWrinkle GetFacelineWrinkle() const; + FacelineMake GetFacelineMake() const; + HairType GetHairType() const; + CommonColor GetHairColor() const; + HairFlip GetHairFlip() const; + EyeType GetEyeType() const; + CommonColor GetEyeColor() const; u8 GetEyeScale() const; u8 GetEyeAspect() const; u8 GetEyeRotate() const; u8 GetEyeX() const; u8 GetEyeY() const; - u8 GetEyebrowType() const; - u8 GetEyebrowColor() const; + EyebrowType GetEyebrowType() const; + CommonColor GetEyebrowColor() const; u8 GetEyebrowScale() const; u8 GetEyebrowAspect() const; u8 GetEyebrowRotate() const; u8 GetEyebrowX() const; u8 GetEyebrowY() const; - u8 GetNoseType() const; + NoseType GetNoseType() const; u8 GetNoseScale() const; u8 GetNoseY() const; - u8 GetMouthType() const; - u8 GetMouthColor() const; + MouthType GetMouthType() const; + CommonColor GetMouthColor() const; u8 GetMouthScale() const; u8 GetMouthAspect() const; u8 GetMouthY() const; - u8 GetBeardColor() const; - u8 GetBeardType() const; - u8 GetMustacheType() const; + CommonColor GetBeardColor() const; + BeardType GetBeardType() const; + MustacheType GetMustacheType() const; u8 GetMustacheScale() const; u8 GetMustacheY() const; - u8 GetGlassType() const; - u8 GetGlassColor() const; + GlassType GetGlassType() const; + CommonColor GetGlassColor() const; u8 GetGlassScale() const; u8 GetGlassY() const; - u8 GetMoleType() const; + MoleType GetMoleType() const; u8 GetMoleScale() const; u8 GetMoleX() const; u8 GetMoleY() const; @@ -73,52 +73,52 @@ private: Common::UUID create_id; Nickname name; u16 null_terminator; - u8 font_region; - u8 favorite_color; - u8 gender; + FontRegion font_region; + FavoriteColor favorite_color; + Gender gender; u8 height; u8 build; u8 type; u8 region_move; - u8 faceline_type; - u8 faceline_color; - u8 faceline_wrinkle; - u8 faceline_make; - u8 hair_type; - u8 hair_color; - u8 hair_flip; - u8 eye_type; - u8 eye_color; + FacelineType faceline_type; + FacelineColor faceline_color; + FacelineWrinkle faceline_wrinkle; + FacelineMake faceline_make; + HairType hair_type; + CommonColor hair_color; + HairFlip hair_flip; + EyeType eye_type; + CommonColor eye_color; u8 eye_scale; u8 eye_aspect; u8 eye_rotate; u8 eye_x; u8 eye_y; - u8 eyebrow_type; - u8 eyebrow_color; + EyebrowType eyebrow_type; + CommonColor eyebrow_color; u8 eyebrow_scale; u8 eyebrow_aspect; u8 eyebrow_rotate; u8 eyebrow_x; u8 eyebrow_y; - u8 nose_type; + NoseType nose_type; u8 nose_scale; u8 nose_y; - u8 mouth_type; - u8 mouth_color; + MouthType mouth_type; + CommonColor mouth_color; u8 mouth_scale; u8 mouth_aspect; u8 mouth_y; - u8 beard_color; - u8 beard_type; - u8 mustache_type; + CommonColor beard_color; + BeardType beard_type; + MustacheType mustache_type; u8 mustache_scale; u8 mustache_y; - u8 glasses_type; - u8 glasses_color; - u8 glasses_scale; - u8 glasses_y; - u8 mole_type; + GlassType glass_type; + CommonColor glass_color; + u8 glass_scale; + u8 glass_y; + MoleType mole_type; u8 mole_scale; u8 mole_x; 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 @@ // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include "common/assert.h" #include "core/hle/service/mii/mii_util.h" #include "core/hle/service/mii/types/core_data.h" #include "core/hle/service/mii/types/raw_data.h" @@ -14,17 +15,9 @@ void CoreData::SetDefault() { void CoreData::BuildRandom(Age age, Gender gender, Race race) { if (gender == Gender::All) { - gender = MiiUtil::GetRandomValue(Gender::Maximum); + gender = MiiUtil::GetRandomValue(Gender::Max); } - data.gender.Assign(gender); - data.favorite_color.Assign(MiiUtil::GetRandomValue(11)); - data.region_move.Assign(0); - data.font_region.Assign(FontRegion::Standard); - data.type.Assign(0); - data.height.Assign(64); - data.build.Assign(64); - if (age == Age::All) { const auto random{MiiUtil::GetRandomValue(10)}; if (random >= 8) { @@ -47,6 +40,14 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) { } } + SetGender(gender); + SetFavoriteColor(MiiUtil::GetRandomValue(FavoriteColor::Max)); + SetRegionMove(0); + SetFontRegion(FontRegion::Standard); + SetType(0); + SetHeight(64); + SetBuild(64); + u32 axis_y{}; if (gender == Gender::Female && age == Age::Young) { axis_y = MiiUtil::GetRandomValue(3); @@ -85,10 +86,10 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) { data.hair_type.Assign( hair_type_info.values[MiiUtil::GetRandomValue(hair_type_info.values_count)]); - data.hair_color.Assign(RawData::GetHairColorFromVer3( + SetHairColor(RawData::GetHairColorFromVer3( hair_color_info .values[MiiUtil::GetRandomValue(hair_color_info.values_count)])); - data.hair_flip.Assign(MiiUtil::GetRandomValue(HairFlip::Maximum)); + SetHairFlip(MiiUtil::GetRandomValue(HairFlip::Max)); data.eye_type.Assign( eye_type_info.values[MiiUtil::GetRandomValue(eye_type_info.values_count)]); @@ -98,13 +99,13 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) { const auto eye_rotate_offset{32 - RawData::EyeRotateLookup[eye_rotate_1] + eye_rotate_2}; const auto eye_rotate{32 - RawData::EyeRotateLookup[data.eye_type]}; - data.eye_color.Assign(RawData::GetEyeColorFromVer3( + SetEyeColor(RawData::GetEyeColorFromVer3( eye_color_info.values[MiiUtil::GetRandomValue(eye_color_info.values_count)])); - data.eye_scale.Assign(4); - data.eye_aspect.Assign(3); - data.eye_rotate.Assign(eye_rotate_offset - eye_rotate); - data.eye_x.Assign(2); - data.eye_y.Assign(axis_y + 12); + SetEyeScale(4); + SetEyeAspect(3); + SetEyeRotate(static_cast(eye_rotate_offset - eye_rotate)); + SetEyeX(2); + SetEyeY(static_cast(axis_y + 12)); data.eyebrow_type.Assign( eyebrow_type_info @@ -116,57 +117,53 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) { const auto eyebrow_rotate{ 32 - RawData::EyebrowRotateLookup[static_cast(data.eyebrow_type.Value())]}; - data.eyebrow_color.Assign(data.hair_color); - data.eyebrow_scale.Assign(4); - data.eyebrow_aspect.Assign(3); - data.eyebrow_rotate.Assign(eyebrow_rotate_offset - eyebrow_rotate); - data.eyebrow_x.Assign(2); - data.eyebrow_y.Assign(axis_y + eyebrow_y); - - const auto nose_scale{gender == Gender::Female ? 3 : 4}; + SetEyebrowColor(GetHairColor()); + SetEyebrowScale(4); + SetEyebrowAspect(3); + SetEyebrowRotate(static_cast(eyebrow_rotate_offset - eyebrow_rotate)); + SetEyebrowX(2); + SetEyebrowY(static_cast(axis_y + eyebrow_y)); data.nose_type.Assign( nose_type_info.values[MiiUtil::GetRandomValue(nose_type_info.values_count)]); - data.nose_scale.Assign(nose_scale); - data.nose_y.Assign(axis_y + 9); + SetNoseScale(gender == Gender::Female ? 3 : 4); + SetNoseY(static_cast(axis_y + 9)); const auto mouth_color{gender == Gender::Female ? MiiUtil::GetRandomValue(4) : 0}; data.mouth_type.Assign( mouth_type_info.values[MiiUtil::GetRandomValue(mouth_type_info.values_count)]); - data.mouth_color.Assign(RawData::GetMouthColorFromVer3(mouth_color)); - data.mouth_scale.Assign(4); - data.mouth_aspect.Assign(3); - data.mouth_y.Assign(axis_y + 13); + SetMouthColor(RawData::GetMouthColorFromVer3(mouth_color)); + SetMouthScale(4); + SetMouthAspect(3); + SetMouthY(static_cast(axis_y + 13)); - data.beard_color.Assign(data.hair_color); - data.mustache_scale.Assign(4); + SetBeardColor(GetHairColor()); + SetMustacheScale(4); if (gender == Gender::Male && age != Age::Young && MiiUtil::GetRandomValue(10) < 2) { - const auto mustache_and_beard_flag{ - MiiUtil::GetRandomValue(BeardAndMustacheFlag::All)}; + const auto mustache_and_beard_flag{MiiUtil::GetRandomValue(BeardAndMustacheFlag::All)}; auto beard_type{BeardType::None}; auto mustache_type{MustacheType::None}; if ((mustache_and_beard_flag & BeardAndMustacheFlag::Beard) == BeardAndMustacheFlag::Beard) { - beard_type = MiiUtil::GetRandomValue(BeardType::Beard1, BeardType::Beard5); + beard_type = MiiUtil::GetRandomValue(BeardType::Min, BeardType::Max); } if ((mustache_and_beard_flag & BeardAndMustacheFlag::Mustache) == BeardAndMustacheFlag::Mustache) { - mustache_type = MiiUtil::GetRandomValue(MustacheType::Mustache1, - MustacheType::Mustache5); + mustache_type = MiiUtil::GetRandomValue(MustacheType::Min, MustacheType::Max); } - data.mustache_type.Assign(mustache_type); - data.beard_type.Assign(beard_type); - data.mustache_y.Assign(10); + SetMustacheType(mustache_type); + SetBeardType(beard_type); + SetMustacheY(10); } else { - data.mustache_type.Assign(MustacheType::None); - data.beard_type.Assign(BeardType::None); - data.mustache_y.Assign(axis_y + 10); + SetMustacheType(MustacheType::None); + SetBeardType(BeardType::None); + SetMustacheY(static_cast(axis_y + 10)); } const auto glasses_type_start{MiiUtil::GetRandomValue(100)}; @@ -178,15 +175,14 @@ void CoreData::BuildRandom(Age age, Gender gender, Race race) { } } - data.glasses_type.Assign(glasses_type); - data.glasses_color.Assign(RawData::GetGlassColorFromVer3(0)); - data.glasses_scale.Assign(4); - data.glasses_y.Assign(axis_y + 10); + SetGlassType(static_cast(glasses_type)); + SetGlassColor(RawData::GetGlassColorFromVer3(0)); + SetGlassScale(4); - data.mole_type.Assign(0); - data.mole_scale.Assign(4); - data.mole_x.Assign(2); - data.mole_y.Assign(20); + SetMoleType(MoleType::None); + SetMoleScale(4); + SetMoleX(2); + SetMoleY(20); } u32 CoreData::IsValid() const { @@ -195,15 +191,15 @@ u32 CoreData::IsValid() const { } void CoreData::SetFontRegion(FontRegion value) { - data.font_region.Assign(value); + data.font_region.Assign(static_cast(value)); } -void CoreData::SetFavoriteColor(u8 value) { - data.favorite_color.Assign(value); +void CoreData::SetFavoriteColor(FavoriteColor value) { + data.favorite_color.Assign(static_cast(value)); } void CoreData::SetGender(Gender value) { - data.gender.Assign(value); + data.gender.Assign(static_cast(value)); } void CoreData::SetHeight(u8 value) { @@ -222,40 +218,40 @@ void CoreData::SetRegionMove(u8 value) { data.region_move.Assign(value); } -void CoreData::SetFacelineType(u8 value) { - data.faceline_type.Assign(value); +void CoreData::SetFacelineType(FacelineType value) { + data.faceline_type.Assign(static_cast(value)); } -void CoreData::SetFacelineColor(u8 value) { - data.faceline_color.Assign(value); +void CoreData::SetFacelineColor(FacelineColor value) { + data.faceline_color.Assign(static_cast(value)); } -void CoreData::SetFacelineWrinkle(u8 value) { - data.faceline_wrinkle.Assign(value); +void CoreData::SetFacelineWrinkle(FacelineWrinkle value) { + data.faceline_wrinkle.Assign(static_cast(value)); } -void CoreData::SetFacelineMake(u8 value) { - data.faceline_makeup.Assign(value); +void CoreData::SetFacelineMake(FacelineMake value) { + data.faceline_makeup.Assign(static_cast(value)); } -void CoreData::SetHairType(u8 value) { - data.hair_type.Assign(value); +void CoreData::SetHairType(HairType value) { + data.hair_type.Assign(static_cast(value)); } -void CoreData::SetHairColor(u8 value) { - data.hair_color.Assign(value); +void CoreData::SetHairColor(CommonColor value) { + data.hair_color.Assign(static_cast(value)); } void CoreData::SetHairFlip(HairFlip value) { - data.hair_flip.Assign(value); + data.hair_flip.Assign(static_cast(value)); } -void CoreData::SetEyeType(u8 value) { - data.eye_type.Assign(value); +void CoreData::SetEyeType(EyeType value) { + data.eye_type.Assign(static_cast(value)); } -void CoreData::SetEyeColor(u8 value) { - data.eye_color.Assign(value); +void CoreData::SetEyeColor(CommonColor value) { + data.eye_color.Assign(static_cast(value)); } void CoreData::SetEyeScale(u8 value) { @@ -278,12 +274,12 @@ void CoreData::SetEyeY(u8 value) { data.eye_y.Assign(value); } -void CoreData::SetEyebrowType(u8 value) { - data.eyebrow_type.Assign(value); +void CoreData::SetEyebrowType(EyebrowType value) { + data.eyebrow_type.Assign(static_cast(value)); } -void CoreData::SetEyebrowColor(u8 value) { - data.eyebrow_color.Assign(value); +void CoreData::SetEyebrowColor(CommonColor value) { + data.eyebrow_color.Assign(static_cast(value)); } void CoreData::SetEyebrowScale(u8 value) { @@ -306,8 +302,8 @@ void CoreData::SetEyebrowY(u8 value) { data.eyebrow_y.Assign(value); } -void CoreData::SetNoseType(u8 value) { - data.nose_type.Assign(value); +void CoreData::SetNoseType(NoseType value) { + data.nose_type.Assign(static_cast(value)); } void CoreData::SetNoseScale(u8 value) { @@ -322,8 +318,8 @@ void CoreData::SetMouthType(u8 value) { data.mouth_type.Assign(value); } -void CoreData::SetMouthColor(u8 value) { - data.mouth_color.Assign(value); +void CoreData::SetMouthColor(CommonColor value) { + data.mouth_color.Assign(static_cast(value)); } void CoreData::SetMouthScale(u8 value) { @@ -338,16 +334,16 @@ void CoreData::SetMouthY(u8 value) { data.mouth_y.Assign(value); } -void CoreData::SetBeardColor(u8 value) { - data.beard_color.Assign(value); +void CoreData::SetBeardColor(CommonColor value) { + data.beard_color.Assign(static_cast(value)); } void CoreData::SetBeardType(BeardType value) { - data.beard_type.Assign(value); + data.beard_type.Assign(static_cast(value)); } void CoreData::SetMustacheType(MustacheType value) { - data.mustache_type.Assign(value); + data.mustache_type.Assign(static_cast(value)); } void CoreData::SetMustacheScale(u8 value) { @@ -358,12 +354,12 @@ void CoreData::SetMustacheY(u8 value) { data.mustache_y.Assign(value); } -void CoreData::SetGlassType(u8 value) { - data.glasses_type.Assign(value); +void CoreData::SetGlassType(GlassType value) { + data.glasses_type.Assign(static_cast(value)); } -void CoreData::SetGlassColor(u8 value) { - data.glasses_color.Assign(value); +void CoreData::SetGlassColor(CommonColor value) { + data.glasses_color.Assign(static_cast(value)); } void CoreData::SetGlassScale(u8 value) { @@ -374,8 +370,8 @@ void CoreData::SetGlassY(u8 value) { data.glasses_y.Assign(value); } -void CoreData::SetMoleType(u8 value) { - data.mole_type.Assign(value); +void CoreData::SetMoleType(MoleType value) { + data.mole_type.Assign(static_cast(value)); } void CoreData::SetMoleScale(u8 value) { @@ -394,16 +390,16 @@ void CoreData::SetNickname(Nickname nickname) { name = nickname; } -u8 CoreData::GetFontRegion() const { - return static_cast(data.font_region.Value()); +FontRegion CoreData::GetFontRegion() const { + return static_cast(data.font_region.Value()); } -u8 CoreData::GetFavoriteColor() const { - return static_cast(data.favorite_color.Value()); +FavoriteColor CoreData::GetFavoriteColor() const { + return static_cast(data.favorite_color.Value()); } -u8 CoreData::GetGender() const { - return static_cast(data.gender.Value()); +Gender CoreData::GetGender() const { + return static_cast(data.gender.Value()); } u8 CoreData::GetHeight() const { @@ -422,40 +418,40 @@ u8 CoreData::GetRegionMove() const { return static_cast(data.region_move.Value()); } -u8 CoreData::GetFacelineType() const { - return static_cast(data.faceline_type.Value()); +FacelineType CoreData::GetFacelineType() const { + return static_cast(data.faceline_type.Value()); } -u8 CoreData::GetFacelineColor() const { - return static_cast(data.faceline_color.Value()); +FacelineColor CoreData::GetFacelineColor() const { + return static_cast(data.faceline_color.Value()); } -u8 CoreData::GetFacelineWrinkle() const { - return static_cast(data.faceline_wrinkle.Value()); +FacelineWrinkle CoreData::GetFacelineWrinkle() const { + return static_cast(data.faceline_wrinkle.Value()); } -u8 CoreData::GetFacelineMake() const { - return static_cast(data.faceline_makeup.Value()); +FacelineMake CoreData::GetFacelineMake() const { + return static_cast(data.faceline_makeup.Value()); } -u8 CoreData::GetHairType() const { - return static_cast(data.hair_type.Value()); +HairType CoreData::GetHairType() const { + return static_cast(data.hair_type.Value()); } -u8 CoreData::GetHairColor() const { - return static_cast(data.hair_color.Value()); +CommonColor CoreData::GetHairColor() const { + return static_cast(data.hair_color.Value()); } -u8 CoreData::GetHairFlip() const { - return static_cast(data.hair_flip.Value()); +HairFlip CoreData::GetHairFlip() const { + return static_cast(data.hair_flip.Value()); } -u8 CoreData::GetEyeType() const { - return static_cast(data.eye_type.Value()); +EyeType CoreData::GetEyeType() const { + return static_cast(data.eye_type.Value()); } -u8 CoreData::GetEyeColor() const { - return static_cast(data.eye_color.Value()); +CommonColor CoreData::GetEyeColor() const { + return static_cast(data.eye_color.Value()); } u8 CoreData::GetEyeScale() const { @@ -478,12 +474,12 @@ u8 CoreData::GetEyeY() const { return static_cast(data.eye_y.Value()); } -u8 CoreData::GetEyebrowType() const { - return static_cast(data.eyebrow_type.Value()); +EyebrowType CoreData::GetEyebrowType() const { + return static_cast(data.eyebrow_type.Value()); } -u8 CoreData::GetEyebrowColor() const { - return static_cast(data.eyebrow_color.Value()); +CommonColor CoreData::GetEyebrowColor() const { + return static_cast(data.eyebrow_color.Value()); } u8 CoreData::GetEyebrowScale() const { @@ -506,8 +502,8 @@ u8 CoreData::GetEyebrowY() const { return static_cast(data.eyebrow_y.Value()); } -u8 CoreData::GetNoseType() const { - return static_cast(data.nose_type.Value()); +NoseType CoreData::GetNoseType() const { + return static_cast(data.nose_type.Value()); } u8 CoreData::GetNoseScale() const { @@ -518,12 +514,12 @@ u8 CoreData::GetNoseY() const { return static_cast(data.nose_y.Value()); } -u8 CoreData::GetMouthType() const { - return static_cast(data.mouth_type.Value()); +MouthType CoreData::GetMouthType() const { + return static_cast(data.mouth_type.Value()); } -u8 CoreData::GetMouthColor() const { - return static_cast(data.mouth_color.Value()); +CommonColor CoreData::GetMouthColor() const { + return static_cast(data.mouth_color.Value()); } u8 CoreData::GetMouthScale() const { @@ -538,16 +534,16 @@ u8 CoreData::GetMouthY() const { return static_cast(data.mouth_y.Value()); } -u8 CoreData::GetBeardColor() const { - return static_cast(data.beard_color.Value()); +CommonColor CoreData::GetBeardColor() const { + return static_cast(data.beard_color.Value()); } -u8 CoreData::GetBeardType() const { - return static_cast(data.beard_type.Value()); +BeardType CoreData::GetBeardType() const { + return static_cast(data.beard_type.Value()); } -u8 CoreData::GetMustacheType() const { - return static_cast(data.mustache_type.Value()); +MustacheType CoreData::GetMustacheType() const { + return static_cast(data.mustache_type.Value()); } u8 CoreData::GetMustacheScale() const { @@ -558,12 +554,12 @@ u8 CoreData::GetMustacheY() const { return static_cast(data.mustache_y.Value()); } -u8 CoreData::GetGlassType() const { - return static_cast(data.glasses_type.Value()); +GlassType CoreData::GetGlassType() const { + return static_cast(data.glasses_type.Value()); } -u8 CoreData::GetGlassColor() const { - return static_cast(data.glasses_color.Value()); +CommonColor CoreData::GetGlassColor() const { + return static_cast(data.glasses_color.Value()); } u8 CoreData::GetGlassScale() const { @@ -574,8 +570,8 @@ u8 CoreData::GetGlassY() const { return static_cast(data.glasses_y.Value()); } -u8 CoreData::GetMoleType() const { - return static_cast(data.mole_type.Value()); +MoleType CoreData::GetMoleType() const { + return static_cast(data.mole_type.Value()); } u8 CoreData::GetMoleScale() const { @@ -599,7 +595,7 @@ Nickname CoreData::GetDefaultNickname() const { } Nickname CoreData::GetInvalidNickname() const { - return {u'?', u'?', u' ', u'?'}; + return {u'?', u'?', u'?'}; } } // 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 { BitField<8, 7, u32> height; BitField<15, 1, u32> mole_type; BitField<16, 7, u32> build; - BitField<23, 1, HairFlip> hair_flip; + BitField<23, 1, u32> hair_flip; BitField<24, 7, u32> hair_color; BitField<31, 1, u32> type; }; @@ -24,7 +24,7 @@ struct StoreDataBitFields { u32 word_1{}; BitField<0, 7, u32> eye_color; - BitField<7, 1, Gender> gender; + BitField<7, 1, u32> gender; BitField<8, 7, u32> eyebrow_color; BitField<16, 7, u32> mouth_color; BitField<24, 7, u32> beard_color; @@ -37,7 +37,7 @@ struct StoreDataBitFields { BitField<8, 6, u32> eye_type; BitField<14, 2, u32> region_move; BitField<16, 6, u32> mouth_type; - BitField<22, 2, FontRegion> font_region; + BitField<22, 2, u32> font_region; BitField<24, 5, u32> eye_y; BitField<29, 3, u32> glasses_scale; }; @@ -46,9 +46,9 @@ struct StoreDataBitFields { u32 word_3{}; BitField<0, 5, u32> eyebrow_type; - BitField<5, 3, MustacheType> mustache_type; + BitField<5, 3, u32> mustache_type; BitField<8, 5, u32> nose_type; - BitField<13, 3, BeardType> beard_type; + BitField<13, 3, u32> beard_type; BitField<16, 5, u32> nose_y; BitField<21, 3, u32> mouth_aspect; BitField<24, 5, u32> mouth_y; @@ -104,102 +104,102 @@ public: u32 IsValid() const; void SetFontRegion(FontRegion value); - void SetFavoriteColor(u8 value); + void SetFavoriteColor(FavoriteColor value); void SetGender(Gender value); void SetHeight(u8 value); void SetBuild(u8 value); void SetType(u8 value); void SetRegionMove(u8 value); - void SetFacelineType(u8 value); - void SetFacelineColor(u8 value); - void SetFacelineWrinkle(u8 value); - void SetFacelineMake(u8 value); - void SetHairType(u8 value); - void SetHairColor(u8 value); + void SetFacelineType(FacelineType value); + void SetFacelineColor(FacelineColor value); + void SetFacelineWrinkle(FacelineWrinkle value); + void SetFacelineMake(FacelineMake value); + void SetHairType(HairType value); + void SetHairColor(CommonColor value); void SetHairFlip(HairFlip value); - void SetEyeType(u8 value); - void SetEyeColor(u8 value); + void SetEyeType(EyeType value); + void SetEyeColor(CommonColor value); void SetEyeScale(u8 value); void SetEyeAspect(u8 value); void SetEyeRotate(u8 value); void SetEyeX(u8 value); void SetEyeY(u8 value); - void SetEyebrowType(u8 value); - void SetEyebrowColor(u8 value); + void SetEyebrowType(EyebrowType value); + void SetEyebrowColor(CommonColor value); void SetEyebrowScale(u8 value); void SetEyebrowAspect(u8 value); void SetEyebrowRotate(u8 value); void SetEyebrowX(u8 value); void SetEyebrowY(u8 value); - void SetNoseType(u8 value); + void SetNoseType(NoseType value); void SetNoseScale(u8 value); void SetNoseY(u8 value); void SetMouthType(u8 value); - void SetMouthColor(u8 value); + void SetMouthColor(CommonColor value); void SetMouthScale(u8 value); void SetMouthAspect(u8 value); void SetMouthY(u8 value); - void SetBeardColor(u8 value); + void SetBeardColor(CommonColor value); void SetBeardType(BeardType value); void SetMustacheType(MustacheType value); void SetMustacheScale(u8 value); void SetMustacheY(u8 value); - void SetGlassType(u8 value); - void SetGlassColor(u8 value); + void SetGlassType(GlassType value); + void SetGlassColor(CommonColor value); void SetGlassScale(u8 value); void SetGlassY(u8 value); - void SetMoleType(u8 value); + void SetMoleType(MoleType value); void SetMoleScale(u8 value); void SetMoleX(u8 value); void SetMoleY(u8 value); void SetNickname(Nickname nickname); - u8 GetFontRegion() const; - u8 GetFavoriteColor() const; - u8 GetGender() const; + FontRegion GetFontRegion() const; + FavoriteColor GetFavoriteColor() const; + Gender GetGender() const; u8 GetHeight() const; u8 GetBuild() const; u8 GetType() const; u8 GetRegionMove() const; - u8 GetFacelineType() const; - u8 GetFacelineColor() const; - u8 GetFacelineWrinkle() const; - u8 GetFacelineMake() const; - u8 GetHairType() const; - u8 GetHairColor() const; - u8 GetHairFlip() const; - u8 GetEyeType() const; - u8 GetEyeColor() const; + FacelineType GetFacelineType() const; + FacelineColor GetFacelineColor() const; + FacelineWrinkle GetFacelineWrinkle() const; + FacelineMake GetFacelineMake() const; + HairType GetHairType() const; + CommonColor GetHairColor() const; + HairFlip GetHairFlip() const; + EyeType GetEyeType() const; + CommonColor GetEyeColor() const; u8 GetEyeScale() const; u8 GetEyeAspect() const; u8 GetEyeRotate() const; u8 GetEyeX() const; u8 GetEyeY() const; - u8 GetEyebrowType() const; - u8 GetEyebrowColor() const; + EyebrowType GetEyebrowType() const; + CommonColor GetEyebrowColor() const; u8 GetEyebrowScale() const; u8 GetEyebrowAspect() const; u8 GetEyebrowRotate() const; u8 GetEyebrowX() const; u8 GetEyebrowY() const; - u8 GetNoseType() const; + NoseType GetNoseType() const; u8 GetNoseScale() const; u8 GetNoseY() const; - u8 GetMouthType() const; - u8 GetMouthColor() const; + MouthType GetMouthType() const; + CommonColor GetMouthColor() const; u8 GetMouthScale() const; u8 GetMouthAspect() const; u8 GetMouthY() const; - u8 GetBeardColor() const; - u8 GetBeardType() const; - u8 GetMustacheType() const; + CommonColor GetBeardColor() const; + BeardType GetBeardType() const; + MustacheType GetMustacheType() const; u8 GetMustacheScale() const; u8 GetMustacheY() const; - u8 GetGlassType() const; - u8 GetGlassColor() const; + GlassType GetGlassType() const; + CommonColor GetGlassColor() const; u8 GetGlassScale() const; u8 GetGlassY() const; - u8 GetMoleType() const; + MoleType GetMoleType() const; u8 GetMoleScale() const; u8 GetMoleX() const; u8 GetMoleY() const; @@ -207,6 +207,7 @@ public: Nickname GetDefaultNickname() const; Nickname GetInvalidNickname() const; +private: StoreDataBitFields data{}; Nickname name{}; }; 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 @@ namespace Service::Mii::RawData { -constexpr std::array FromVer3FacelineColorTable{ +constexpr std::array(FacelineColor::Count)> FromVer3FacelineColorTable{ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x0, 0x1, 0x5, 0x5, }; -constexpr std::array FromVer3HairColorTable{ +constexpr std::array(CommonColor::Count)> FromVer3HairColorTable{ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x0, 0x4, 0x3, 0x5, 0x4, 0x4, 0x6, 0x2, 0x0, 0x6, 0x4, 0x3, 0x2, 0x2, 0x7, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x4, @@ -18,7 +18,7 @@ constexpr std::array FromVer3HairColorTable{ 0x7, 0x7, 0x7, 0x7, 0x3, 0x7, 0x7, 0x7, 0x7, 0x7, 0x0, 0x4, 0x4, 0x4, 0x4, }; -constexpr std::array FromVer3EyeColorTable{ +constexpr std::array(CommonColor::Count)> FromVer3EyeColorTable{ 0x0, 0x2, 0x2, 0x2, 0x1, 0x3, 0x2, 0x3, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x2, 0x2, 0x4, 0x2, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x1, 0x0, 0x4, 0x4, @@ -27,7 +27,7 @@ constexpr std::array FromVer3EyeColorTable{ 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, }; -constexpr std::array FromVer3MouthlineColorTable{ +constexpr std::array(CommonColor::Count)> FromVer3MouthlineColorTable{ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x1, 0x4, 0x4, 0x4, 0x0, 0x1, 0x2, 0x3, 0x4, 0x4, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x1, 0x4, 0x4, 0x2, 0x3, 0x3, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x3, 0x3, 0x3, 0x4, 0x4, 0x4, @@ -36,7 +36,7 @@ constexpr std::array FromVer3MouthlineColorTable{ 0x3, 0x3, 0x3, 0x3, 0x4, 0x0, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, 0x3, 0x3, }; -constexpr std::array FromVer3GlassColorTable{ +constexpr std::array(CommonColor::Count)> FromVer3GlassColorTable{ 0x0, 0x1, 0x1, 0x1, 0x5, 0x1, 0x1, 0x4, 0x0, 0x5, 0x1, 0x1, 0x3, 0x5, 0x1, 0x2, 0x3, 0x4, 0x5, 0x4, 0x2, 0x2, 0x4, 0x4, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, @@ -45,7 +45,7 @@ constexpr std::array FromVer3GlassColorTable{ 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, }; -constexpr std::array FromVer3GlassTypeTable{ +constexpr std::array(GlassType::Count)> FromVer3GlassTypeTable{ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x1, 0x2, 0x1, 0x3, 0x7, 0x7, 0x6, 0x7, 0x8, 0x7, 0x7, }; @@ -90,7 +90,7 @@ const std::array BaseMii{ .face_makeup = 0, .hair_type = 33, .hair_color = 1, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 2, .eye_color = 0, .eye_scale = 4, @@ -113,8 +113,8 @@ const std::array BaseMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -128,10 +128,10 @@ const std::array BaseMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Male, + .gender = 0, .favorite_color = 0, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -142,7 +142,7 @@ const std::array BaseMii{ .face_makeup = 0, .hair_type = 12, .hair_color = 1, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 4, .eye_color = 0, .eye_scale = 4, @@ -165,8 +165,8 @@ const std::array BaseMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -180,10 +180,10 @@ const std::array BaseMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Female, + .gender = 1, .favorite_color = 0, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -197,7 +197,7 @@ const std::array DefaultMii{ .face_makeup = 0, .hair_type = 68, .hair_color = 0, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 2, .eye_color = 0, .eye_scale = 4, @@ -220,8 +220,8 @@ const std::array DefaultMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -235,10 +235,10 @@ const std::array DefaultMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Male, + .gender = 0, .favorite_color = 4, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -249,7 +249,7 @@ const std::array DefaultMii{ .face_makeup = 0, .hair_type = 55, .hair_color = 6, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 2, .eye_color = 4, .eye_scale = 4, @@ -272,8 +272,8 @@ const std::array DefaultMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -287,10 +287,10 @@ const std::array DefaultMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Male, + .gender = 0, .favorite_color = 5, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -301,7 +301,7 @@ const std::array DefaultMii{ .face_makeup = 0, .hair_type = 33, .hair_color = 1, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 2, .eye_color = 0, .eye_scale = 4, @@ -324,8 +324,8 @@ const std::array DefaultMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -339,10 +339,10 @@ const std::array DefaultMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Male, + .gender = 0, .favorite_color = 0, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -353,7 +353,7 @@ const std::array DefaultMii{ .face_makeup = 0, .hair_type = 24, .hair_color = 0, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 4, .eye_color = 0, .eye_scale = 4, @@ -376,8 +376,8 @@ const std::array DefaultMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -391,10 +391,10 @@ const std::array DefaultMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Female, + .gender = 1, .favorite_color = 2, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -405,7 +405,7 @@ const std::array DefaultMii{ .face_makeup = 0, .hair_type = 14, .hair_color = 7, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 4, .eye_color = 5, .eye_scale = 4, @@ -428,8 +428,8 @@ const std::array DefaultMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -443,10 +443,10 @@ const std::array DefaultMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Female, + .gender = 1, .favorite_color = 6, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -457,7 +457,7 @@ const std::array DefaultMii{ .face_makeup = 0, .hair_type = 12, .hair_color = 1, - .hair_flip = HairFlip::Left, + .hair_flip = 0, .eye_type = 4, .eye_color = 0, .eye_scale = 4, @@ -480,8 +480,8 @@ const std::array DefaultMii{ .mouth_scale = 4, .mouth_aspect = 3, .mouth_y = 13, - .mustache_type = MustacheType::None, - .beard_type = BeardType::None, + .mustache_type = 0, + .beard_type = 0, .beard_color = 0, .mustache_scale = 4, .mustache_y = 10, @@ -495,10 +495,10 @@ const std::array DefaultMii{ .mole_y = 20, .height = 64, .weight = 64, - .gender = Gender::Female, + .gender = 1, .favorite_color = 7, .region_move = 0, - .font_region = FontRegion::Standard, + .font_region = 0, .type = 0, .nickname = {u'n', u'o', u' ', u'n', u'a', u'm', u'e'}, }, @@ -507,128 +507,128 @@ const std::array DefaultMii{ const std::array RandomMiiFaceline{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 10, .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 10, .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 10, .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 12, .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 13, .values = {0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 10, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 12, .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 12, .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 13, .values = {0, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 10, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 12, .values = {0, 0, 1, 2, 2, 3, 4, 5, 6, 7, 10, 11}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 10, .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 10, .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 10, .values = {0, 0, 1, 1, 2, 3, 4, 5, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 12, .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 12, .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 12, .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 12, .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 12, .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 12, .values = {0, 0, 0, 1, 1, 1, 2, 3, 4, 5, 8, 10}, }, @@ -675,128 +675,128 @@ const std::array RandomMiiFacelineColor{ const std::array RandomMiiFacelineWrinkle{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 20, .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 20, .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 20, .values = {9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4, 8, 8}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4, 8, 8}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 4}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 20, .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 20, .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 20, .values = {9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11}, }, @@ -804,128 +804,128 @@ const std::array RandomMiiFacelineWrinkle{ const std::array RandomMiiFacelineMakeup{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 20, .values = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, }, @@ -933,147 +933,147 @@ const std::array RandomMiiFacelineMakeup{ const std::array RandomMiiHairType{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 30, .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47, 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 75, 76, 86, 89}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 31, .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47, 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 73, 75, 81, 86, 87}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 31, .values = {13, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 43, 44, 45, 47, 48, 49, 50, 51, 52, 54, 56, 57, 64, 66, 73, 75, 81, 86, 87}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 38, .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 40, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 75, 76, 86, 89}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 39, .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 73, 75, 81, 86, 87}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 39, .values = {13, 23, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 64, 65, 66, 67, 68, 70, 73, 75, 81, 86, 87}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 18, .values = {13, 23, 30, 36, 37, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 19, .values = {13, 23, 30, 36, 37, 39, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 19, .values = {13, 23, 30, 36, 37, 39, 41, 45, 47, 51, 53, 54, 55, 58, 59, 65, 67, 86, 88}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 39, .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50, 61, 62, 63, 64, 69, 76, 77, 79, 80, 83, 85}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 42, .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50, 61, 62, 63, 64, 69, 72, 74, 77, 78, 82, 83, 84, 85, 87}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 42, .values = {0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 46, 50, 61, 62, 63, 64, 69, 72, 74, 77, 78, 82, 83, 84, 85, 87}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 44, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 42, 50, 58, 60, 62, 63, 64, 69, 71, 76, 79, 80, 81, 82, 83, 86}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 44, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 50, 58, 60, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 84, 85}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 44, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 50, 58, 60, 62, 63, 64, 69, 71, 72, 74, 79, 81, 82, 83, 84, 85}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 24, .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 24, 25, 58, 62, 69, 76, 83}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 27, .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 24, 25, 58, 62, 69, 74, 76, 81, 83, 85}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 27, .values = {0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 24, 25, 58, 62, 69, 74, 76, 81, 83, 85}, @@ -1139,148 +1139,148 @@ const std::array RandomMiiHairColor{ const std::array RandomMiiEyeType{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 26, .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 27, 29, 32, 34, 36, 38, 39, 41, 43, 47, 49, 51, 53, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 26, .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 27, 29, 32, 34, 36, 38, 39, 41, 43, 47, 49, 51, 53, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 27, .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 15, 16, 18, 26, 27, 29, 32, 34, 36, 38, 39, 41, 43, 47, 48, 49, 53, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 35, .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 27, 29, 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 49, 51, 53, 55, 56, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 35, .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 21, 22, 27, 29, 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 49, 51, 53, 55, 56, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 35, .values = {2, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 18, 21, 22, 26, 27, 29, 31, 32, 34, 36, 37, 38, 39, 41, 43, 44, 47, 48, 49, 50, 53, 56, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 30, .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 21, 22, 31, 32, 34, 36, 37, 39, 41, 44, 49, 51, 53, 55, 56, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 30, .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 21, 22, 31, 32, 34, 36, 37, 39, 41, 44, 49, 51, 53, 55, 56, 57}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 30, .values = {2, 3, 5, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 21, 22, 26, 31, 32, 34, 36, 37, 39, 41, 44, 48, 49, 50, 51, 53, 57}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 39, .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 39, .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 40, .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 59}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 46, .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 46, .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 46, .values = {0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 45, 46, 47, 48, 53, 54, 57, 58, 59}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 34, .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 34, .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 35, .values = {0, 1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 38, 39, 40, 41, 42, 45, 46, 47}, @@ -1307,131 +1307,131 @@ const std::array RandomMiiEyeColor{ const std::array RandomMiiEyebrowType{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 20}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 23, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 23, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 23, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 21, .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 21, .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 21, .values = {0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 9, .values = {0, 1, 3, 7, 8, 9, 10, 11, 13}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 9, .values = {0, 1, 3, 7, 8, 9, 10, 11, 13}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 9, .values = {0, 1, 3, 7, 8, 9, 10, 11, 13}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 11, .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 11, .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 11, .values = {0, 1, 3, 7, 8, 9, 10, 11, 13, 15, 19}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 9, .values = {0, 3, 7, 8, 9, 10, 11, 13, 15}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 9, .values = {0, 3, 7, 8, 9, 10, 11, 13, 15}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 9, .values = {0, 3, 7, 8, 9, 10, 11, 13, 15}, }, @@ -1439,128 +1439,128 @@ const std::array RandomMiiEyebrowType{ const std::array RandomMiiNoseType{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 11, .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 11, .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 11, .values = {0, 1, 2, 3, 4, 5, 7, 8, 10, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 15, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 18, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 15, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 16}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 8, .values = {0, 1, 3, 4, 8, 10, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 8, .values = {0, 1, 3, 4, 8, 10, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 8, .values = {0, 1, 3, 4, 8, 10, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 12, .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 14, 15}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 11, .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 15}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 10, .values = {0, 1, 3, 4, 6, 8, 10, 11, 13, 14}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 12, .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 14, 15}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 11, .values = {0, 1, 3, 4, 6, 8, 9, 10, 11, 13, 15}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 10, .values = {0, 1, 3, 4, 6, 8, 10, 11, 13, 14}, }, @@ -1568,145 +1568,145 @@ const std::array RandomMiiNoseType{ const std::array RandomMiiMouthType{ RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 25, .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 27, .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 28, 30, 32, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 28, .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 28, 30, 31, 32, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 24, .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 26, .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 26, .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 24, .values = {0, 2, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 26, .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Male, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Male), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 26, .values = {0, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 31, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Black), .values_count = 25, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Black), .values_count = 26, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Black, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Black), .values_count = 26, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 25, 26, 30, 33, 34, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::White), .values_count = 25, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 26, 27, 29, 33, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::White), .values_count = 26, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 26, 27, 29, 33, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::White, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::White), .values_count = 25, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 29, 33, 35}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Young, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Young), + .race = static_cast(Race::Asian), .values_count = 24, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Normal, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Normal), + .race = static_cast(Race::Asian), .values_count = 25, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33}, }, RandomMiiData4{ - .gender = Gender::Female, - .age = Age::Old, - .race = Race::Asian, + .gender = static_cast(Gender::Female), + .age = static_cast(Age::Old), + .race = static_cast(Race::Asian), .values_count = 25, .values = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 25, 26, 29, 33}, @@ -1755,24 +1755,24 @@ u8 FromVer3GetGlassType(u8 type) { return FromVer3GlassTypeTable[type]; } -u8 GetFacelineColorFromVer3(u8 color) { - return Ver3FacelineColorTable[color]; +FacelineColor GetFacelineColorFromVer3(u32 color) { + return static_cast(Ver3FacelineColorTable[color]); } -u8 GetHairColorFromVer3(u32 color) { - return Ver3HairColorTable[color]; +CommonColor GetHairColorFromVer3(u32 color) { + return static_cast(Ver3HairColorTable[color]); } -u8 GetEyeColorFromVer3(u32 color) { - return Ver3EyeColorTable[color]; +CommonColor GetEyeColorFromVer3(u32 color) { + return static_cast(Ver3EyeColorTable[color]); } -u8 GetMouthColorFromVer3(u32 color) { - return Ver3MouthColorTable[color]; +CommonColor GetMouthColorFromVer3(u32 color) { + return static_cast(Ver3MouthColorTable[color]); } -u8 GetGlassColorFromVer3(u8 color) { - return Ver3GlassColorTable[color]; +CommonColor GetGlassColorFromVer3(u32 color) { + return static_cast(Ver3GlassColorTable[color]); } } // 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 { static_assert(sizeof(RandomMiiValues) == 0xbc, "RandomMiiValues has incorrect size."); struct RandomMiiData4 { - Gender gender{}; - Age age{}; - Race race{}; + u32 gender{}; + u32 age{}; + u32 race{}; u32 values_count{}; std::array values{}; }; @@ -64,10 +64,10 @@ u8 FromVer3GetMouthlineColor(u8 color); u8 FromVer3GetGlassColor(u8 color); u8 FromVer3GetGlassType(u8 type); -u8 GetFacelineColorFromVer3(u8 color); -u8 GetHairColorFromVer3(u32 color); -u8 GetEyeColorFromVer3(u32 color); -u8 GetMouthColorFromVer3(u32 color); -u8 GetGlassColorFromVer3(u8 color); +FacelineColor GetFacelineColorFromVer3(u32 color); +CommonColor GetHairColorFromVer3(u32 color); +CommonColor GetEyeColorFromVer3(u32 color); +CommonColor GetMouthColorFromVer3(u32 color); +CommonColor GetGlassColorFromVer3(u32 color); } // 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) { const auto& default_mii = RawData::DefaultMii[mii_index]; core_data.SetDefault(); - core_data.SetFacelineType(static_cast(default_mii.face_type)); + core_data.SetFacelineType(static_cast(default_mii.face_type)); core_data.SetFacelineColor( RawData::GetFacelineColorFromVer3(static_cast(default_mii.face_color))); - core_data.SetFacelineWrinkle(static_cast(default_mii.face_wrinkle)); - core_data.SetFacelineMake(static_cast(default_mii.face_makeup)); + core_data.SetFacelineWrinkle(static_cast(default_mii.face_wrinkle)); + core_data.SetFacelineMake(static_cast(default_mii.face_makeup)); - core_data.SetHairType(static_cast(default_mii.hair_type)); + core_data.SetHairType(static_cast(default_mii.hair_type)); core_data.SetHairColor(RawData::GetHairColorFromVer3(static_cast(default_mii.hair_color))); - core_data.SetHairFlip(default_mii.hair_flip); - core_data.SetEyeType(static_cast(default_mii.eye_type)); + core_data.SetHairFlip(static_cast(default_mii.hair_flip)); + core_data.SetEyeType(static_cast(default_mii.eye_type)); core_data.SetEyeColor(RawData::GetEyeColorFromVer3(static_cast(default_mii.eye_color))); core_data.SetEyeScale(static_cast(default_mii.eye_scale)); core_data.SetEyeAspect(static_cast(default_mii.eye_aspect)); @@ -28,7 +28,7 @@ void StoreData::BuildDefault(u32 mii_index) { core_data.SetEyeX(static_cast(default_mii.eye_x)); core_data.SetEyeY(static_cast(default_mii.eye_y)); - core_data.SetEyebrowType(static_cast(default_mii.eyebrow_type)); + core_data.SetEyebrowType(static_cast(default_mii.eyebrow_type)); core_data.SetEyebrowColor( RawData::GetHairColorFromVer3(static_cast(default_mii.eyebrow_color))); core_data.SetEyebrowScale(static_cast(default_mii.eyebrow_scale)); @@ -37,7 +37,7 @@ void StoreData::BuildDefault(u32 mii_index) { core_data.SetEyebrowX(static_cast(default_mii.eyebrow_x)); core_data.SetEyebrowY(static_cast(default_mii.eyebrow_y)); - core_data.SetNoseType(static_cast(default_mii.nose_type)); + core_data.SetNoseType(static_cast(default_mii.nose_type)); core_data.SetNoseScale(static_cast(default_mii.nose_scale)); core_data.SetNoseY(static_cast(default_mii.nose_y)); @@ -48,30 +48,30 @@ void StoreData::BuildDefault(u32 mii_index) { core_data.SetMouthAspect(static_cast(default_mii.mouth_aspect)); core_data.SetMouthY(static_cast(default_mii.mouth_y)); - core_data.SetMustacheType(default_mii.mustache_type); - core_data.SetBeardType(default_mii.beard_type); + core_data.SetMustacheType(static_cast(default_mii.mustache_type)); + core_data.SetBeardType(static_cast(default_mii.beard_type)); core_data.SetBeardColor( RawData::GetHairColorFromVer3(static_cast(default_mii.beard_color))); core_data.SetMustacheScale(static_cast(default_mii.mustache_scale)); core_data.SetMustacheY(static_cast(default_mii.mustache_y)); - core_data.SetGlassType(static_cast(default_mii.glasses_type)); + core_data.SetGlassType(static_cast(default_mii.glasses_type)); core_data.SetGlassColor( RawData::GetGlassColorFromVer3(static_cast(default_mii.glasses_color))); core_data.SetGlassScale(static_cast(default_mii.glasses_scale)); core_data.SetGlassY(static_cast(default_mii.glasses_y)); - core_data.SetMoleType(static_cast(default_mii.mole_type)); + core_data.SetMoleType(static_cast(default_mii.mole_type)); core_data.SetMoleScale(static_cast(default_mii.mole_scale)); core_data.SetMoleX(static_cast(default_mii.mole_x)); core_data.SetMoleY(static_cast(default_mii.mole_y)); core_data.SetHeight(static_cast(default_mii.height)); core_data.SetBuild(static_cast(default_mii.weight)); - core_data.SetGender(default_mii.gender); - core_data.SetFavoriteColor(static_cast(default_mii.favorite_color)); + core_data.SetGender(static_cast(default_mii.gender)); + core_data.SetFavoriteColor(static_cast(default_mii.favorite_color)); core_data.SetRegionMove(static_cast(default_mii.region_move)); - core_data.SetFontRegion(default_mii.font_region); + core_data.SetFontRegion(static_cast(default_mii.font_region)); core_data.SetType(static_cast(default_mii.type)); core_data.SetNickname(default_mii.nickname); @@ -85,16 +85,16 @@ void StoreData::BuildBase(Gender gender) { const auto& default_mii = RawData::BaseMii[gender == Gender::Female ? 1 : 0]; core_data.SetDefault(); - core_data.SetFacelineType(static_cast(default_mii.face_type)); + core_data.SetFacelineType(static_cast(default_mii.face_type)); core_data.SetFacelineColor( RawData::GetFacelineColorFromVer3(static_cast(default_mii.face_color))); - core_data.SetFacelineWrinkle(static_cast(default_mii.face_wrinkle)); - core_data.SetFacelineMake(static_cast(default_mii.face_makeup)); + core_data.SetFacelineWrinkle(static_cast(default_mii.face_wrinkle)); + core_data.SetFacelineMake(static_cast(default_mii.face_makeup)); - core_data.SetHairType(static_cast(default_mii.hair_type)); + core_data.SetHairType(static_cast(default_mii.hair_type)); core_data.SetHairColor(RawData::GetHairColorFromVer3(static_cast(default_mii.hair_color))); - core_data.SetHairFlip(default_mii.hair_flip); - core_data.SetEyeType(static_cast(default_mii.eye_type)); + core_data.SetHairFlip(static_cast(default_mii.hair_flip)); + core_data.SetEyeType(static_cast(default_mii.eye_type)); core_data.SetEyeColor(RawData::GetEyeColorFromVer3(static_cast(default_mii.eye_color))); core_data.SetEyeScale(static_cast(default_mii.eye_scale)); core_data.SetEyeAspect(static_cast(default_mii.eye_aspect)); @@ -102,7 +102,7 @@ void StoreData::BuildBase(Gender gender) { core_data.SetEyeX(static_cast(default_mii.eye_x)); core_data.SetEyeY(static_cast(default_mii.eye_y)); - core_data.SetEyebrowType(static_cast(default_mii.eyebrow_type)); + core_data.SetEyebrowType(static_cast(default_mii.eyebrow_type)); core_data.SetEyebrowColor( RawData::GetHairColorFromVer3(static_cast(default_mii.eyebrow_color))); core_data.SetEyebrowScale(static_cast(default_mii.eyebrow_scale)); @@ -111,7 +111,7 @@ void StoreData::BuildBase(Gender gender) { core_data.SetEyebrowX(static_cast(default_mii.eyebrow_x)); core_data.SetEyebrowY(static_cast(default_mii.eyebrow_y)); - core_data.SetNoseType(static_cast(default_mii.nose_type)); + core_data.SetNoseType(static_cast(default_mii.nose_type)); core_data.SetNoseScale(static_cast(default_mii.nose_scale)); core_data.SetNoseY(static_cast(default_mii.nose_y)); @@ -122,30 +122,30 @@ void StoreData::BuildBase(Gender gender) { core_data.SetMouthAspect(static_cast(default_mii.mouth_aspect)); core_data.SetMouthY(static_cast(default_mii.mouth_y)); - core_data.SetMustacheType(default_mii.mustache_type); - core_data.SetBeardType(default_mii.beard_type); + core_data.SetMustacheType(static_cast(default_mii.mustache_type)); + core_data.SetBeardType(static_cast(default_mii.beard_type)); core_data.SetBeardColor( RawData::GetHairColorFromVer3(static_cast(default_mii.beard_color))); core_data.SetMustacheScale(static_cast(default_mii.mustache_scale)); core_data.SetMustacheY(static_cast(default_mii.mustache_y)); - core_data.SetGlassType(static_cast(default_mii.glasses_type)); + core_data.SetGlassType(static_cast(default_mii.glasses_type)); core_data.SetGlassColor( RawData::GetGlassColorFromVer3(static_cast(default_mii.glasses_color))); core_data.SetGlassScale(static_cast(default_mii.glasses_scale)); core_data.SetGlassY(static_cast(default_mii.glasses_y)); - core_data.SetMoleType(static_cast(default_mii.mole_type)); + core_data.SetMoleType(static_cast(default_mii.mole_type)); core_data.SetMoleScale(static_cast(default_mii.mole_scale)); core_data.SetMoleX(static_cast(default_mii.mole_x)); core_data.SetMoleY(static_cast(default_mii.mole_y)); core_data.SetHeight(static_cast(default_mii.height)); core_data.SetBuild(static_cast(default_mii.weight)); - core_data.SetGender(default_mii.gender); - core_data.SetFavoriteColor(static_cast(default_mii.favorite_color)); + core_data.SetGender(static_cast(default_mii.gender)); + core_data.SetFavoriteColor(static_cast(default_mii.favorite_color)); core_data.SetRegionMove(static_cast(default_mii.region_move)); - core_data.SetFontRegion(default_mii.font_region); + core_data.SetFontRegion(static_cast(default_mii.font_region)); core_data.SetType(static_cast(default_mii.type)); core_data.SetNickname(default_mii.nickname); @@ -184,7 +184,7 @@ void StoreData::SetFontRegion(FontRegion value) { core_data.SetFontRegion(value); } -void StoreData::SetFavoriteColor(u8 value) { +void StoreData::SetFavoriteColor(FavoriteColor value) { core_data.SetFavoriteColor(value); } @@ -208,27 +208,27 @@ void StoreData::SetRegionMove(u8 value) { core_data.SetRegionMove(value); } -void StoreData::SetFacelineType(u8 value) { +void StoreData::SetFacelineType(FacelineType value) { core_data.SetFacelineType(value); } -void StoreData::SetFacelineColor(u8 value) { +void StoreData::SetFacelineColor(FacelineColor value) { core_data.SetFacelineColor(value); } -void StoreData::SetFacelineWrinkle(u8 value) { +void StoreData::SetFacelineWrinkle(FacelineWrinkle value) { core_data.SetFacelineWrinkle(value); } -void StoreData::SetFacelineMake(u8 value) { +void StoreData::SetFacelineMake(FacelineMake value) { core_data.SetFacelineMake(value); } -void StoreData::SetHairType(u8 value) { +void StoreData::SetHairType(HairType value) { core_data.SetHairType(value); } -void StoreData::SetHairColor(u8 value) { +void StoreData::SetHairColor(CommonColor value) { core_data.SetHairColor(value); } @@ -236,11 +236,11 @@ void StoreData::SetHairFlip(HairFlip value) { core_data.SetHairFlip(value); } -void StoreData::SetEyeType(u8 value) { +void StoreData::SetEyeType(EyeType value) { core_data.SetEyeType(value); } -void StoreData::SetEyeColor(u8 value) { +void StoreData::SetEyeColor(CommonColor value) { core_data.SetEyeColor(value); } @@ -264,11 +264,11 @@ void StoreData::SetEyeY(u8 value) { core_data.SetEyeY(value); } -void StoreData::SetEyebrowType(u8 value) { +void StoreData::SetEyebrowType(EyebrowType value) { core_data.SetEyebrowType(value); } -void StoreData::SetEyebrowColor(u8 value) { +void StoreData::SetEyebrowColor(CommonColor value) { core_data.SetEyebrowColor(value); } @@ -292,7 +292,7 @@ void StoreData::SetEyebrowY(u8 value) { core_data.SetEyebrowY(value); } -void StoreData::SetNoseType(u8 value) { +void StoreData::SetNoseType(NoseType value) { core_data.SetNoseType(value); } @@ -308,7 +308,7 @@ void StoreData::SetMouthType(u8 value) { core_data.SetMouthType(value); } -void StoreData::SetMouthColor(u8 value) { +void StoreData::SetMouthColor(CommonColor value) { core_data.SetMouthColor(value); } @@ -324,7 +324,7 @@ void StoreData::SetMouthY(u8 value) { core_data.SetMouthY(value); } -void StoreData::SetBeardColor(u8 value) { +void StoreData::SetBeardColor(CommonColor value) { core_data.SetBeardColor(value); } @@ -344,11 +344,11 @@ void StoreData::SetMustacheY(u8 value) { core_data.SetMustacheY(value); } -void StoreData::SetGlassType(u8 value) { +void StoreData::SetGlassType(GlassType value) { core_data.SetGlassType(value); } -void StoreData::SetGlassColor(u8 value) { +void StoreData::SetGlassColor(CommonColor value) { core_data.SetGlassColor(value); } @@ -360,7 +360,7 @@ void StoreData::SetGlassY(u8 value) { core_data.SetGlassY(value); } -void StoreData::SetMoleType(u8 value) { +void StoreData::SetMoleType(MoleType value) { core_data.SetMoleType(value); } @@ -388,11 +388,11 @@ FontRegion StoreData::GetFontRegion() const { return static_cast(core_data.GetFontRegion()); } -u8 StoreData::GetFavoriteColor() const { +FavoriteColor StoreData::GetFavoriteColor() const { return core_data.GetFavoriteColor(); } -u8 StoreData::GetGender() const { +Gender StoreData::GetGender() const { return core_data.GetGender(); } @@ -412,39 +412,39 @@ u8 StoreData::GetRegionMove() const { return core_data.GetRegionMove(); } -u8 StoreData::GetFacelineType() const { +FacelineType StoreData::GetFacelineType() const { return core_data.GetFacelineType(); } -u8 StoreData::GetFacelineColor() const { +FacelineColor StoreData::GetFacelineColor() const { return core_data.GetFacelineColor(); } -u8 StoreData::GetFacelineWrinkle() const { +FacelineWrinkle StoreData::GetFacelineWrinkle() const { return core_data.GetFacelineWrinkle(); } -u8 StoreData::GetFacelineMake() const { +FacelineMake StoreData::GetFacelineMake() const { return core_data.GetFacelineMake(); } -u8 StoreData::GetHairType() const { +HairType StoreData::GetHairType() const { return core_data.GetHairType(); } -u8 StoreData::GetHairColor() const { +CommonColor StoreData::GetHairColor() const { return core_data.GetHairColor(); } -u8 StoreData::GetHairFlip() const { +HairFlip StoreData::GetHairFlip() const { return core_data.GetHairFlip(); } -u8 StoreData::GetEyeType() const { +EyeType StoreData::GetEyeType() const { return core_data.GetEyeType(); } -u8 StoreData::GetEyeColor() const { +CommonColor StoreData::GetEyeColor() const { return core_data.GetEyeColor(); } @@ -468,11 +468,11 @@ u8 StoreData::GetEyeY() const { return core_data.GetEyeY(); } -u8 StoreData::GetEyebrowType() const { +EyebrowType StoreData::GetEyebrowType() const { return core_data.GetEyebrowType(); } -u8 StoreData::GetEyebrowColor() const { +CommonColor StoreData::GetEyebrowColor() const { return core_data.GetEyebrowColor(); } @@ -496,7 +496,7 @@ u8 StoreData::GetEyebrowY() const { return core_data.GetEyebrowY(); } -u8 StoreData::GetNoseType() const { +NoseType StoreData::GetNoseType() const { return core_data.GetNoseType(); } @@ -508,11 +508,11 @@ u8 StoreData::GetNoseY() const { return core_data.GetNoseY(); } -u8 StoreData::GetMouthType() const { +MouthType StoreData::GetMouthType() const { return core_data.GetMouthType(); } -u8 StoreData::GetMouthColor() const { +CommonColor StoreData::GetMouthColor() const { return core_data.GetMouthColor(); } @@ -528,15 +528,15 @@ u8 StoreData::GetMouthY() const { return core_data.GetMouthY(); } -u8 StoreData::GetBeardColor() const { +CommonColor StoreData::GetBeardColor() const { return core_data.GetBeardColor(); } -u8 StoreData::GetBeardType() const { +BeardType StoreData::GetBeardType() const { return core_data.GetBeardType(); } -u8 StoreData::GetMustacheType() const { +MustacheType StoreData::GetMustacheType() const { return core_data.GetMustacheType(); } @@ -548,11 +548,11 @@ u8 StoreData::GetMustacheY() const { return core_data.GetMustacheY(); } -u8 StoreData::GetGlassType() const { +GlassType StoreData::GetGlassType() const { return core_data.GetGlassType(); } -u8 StoreData::GetGlassColor() const { +CommonColor StoreData::GetGlassColor() const { return core_data.GetGlassColor(); } @@ -564,7 +564,7 @@ u8 StoreData::GetGlassY() const { return core_data.GetGlassY(); } -u8 StoreData::GetMoleType() const { +MoleType StoreData::GetMoleType() const { return core_data.GetMoleType(); } 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: u32 IsValid() const; void SetFontRegion(FontRegion value); - void SetFavoriteColor(u8 value); + void SetFavoriteColor(FavoriteColor value); void SetGender(Gender value); void SetHeight(u8 value); void SetBuild(u8 value); void SetType(u8 value); void SetRegionMove(u8 value); - void SetFacelineType(u8 value); - void SetFacelineColor(u8 value); - void SetFacelineWrinkle(u8 value); - void SetFacelineMake(u8 value); - void SetHairType(u8 value); - void SetHairColor(u8 value); + void SetFacelineType(FacelineType value); + void SetFacelineColor(FacelineColor value); + void SetFacelineWrinkle(FacelineWrinkle value); + void SetFacelineMake(FacelineMake value); + void SetHairType(HairType value); + void SetHairColor(CommonColor value); void SetHairFlip(HairFlip value); - void SetEyeType(u8 value); - void SetEyeColor(u8 value); + void SetEyeType(EyeType value); + void SetEyeColor(CommonColor value); void SetEyeScale(u8 value); void SetEyeAspect(u8 value); void SetEyeRotate(u8 value); void SetEyeX(u8 value); void SetEyeY(u8 value); - void SetEyebrowType(u8 value); - void SetEyebrowColor(u8 value); + void SetEyebrowType(EyebrowType value); + void SetEyebrowColor(CommonColor value); void SetEyebrowScale(u8 value); void SetEyebrowAspect(u8 value); void SetEyebrowRotate(u8 value); void SetEyebrowX(u8 value); void SetEyebrowY(u8 value); - void SetNoseType(u8 value); + void SetNoseType(NoseType value); void SetNoseScale(u8 value); void SetNoseY(u8 value); void SetMouthType(u8 value); - void SetMouthColor(u8 value); + void SetMouthColor(CommonColor value); void SetMouthScale(u8 value); void SetMouthAspect(u8 value); void SetMouthY(u8 value); - void SetBeardColor(u8 value); + void SetBeardColor(CommonColor value); void SetBeardType(BeardType value); void SetMustacheType(MustacheType value); void SetMustacheScale(u8 value); void SetMustacheY(u8 value); - void SetGlassType(u8 value); - void SetGlassColor(u8 value); + void SetGlassType(GlassType value); + void SetGlassColor(CommonColor value); void SetGlassScale(u8 value); void SetGlassY(u8 value); - void SetMoleType(u8 value); + void SetMoleType(MoleType value); void SetMoleScale(u8 value); void SetMoleX(u8 value); void SetMoleY(u8 value); @@ -76,51 +76,51 @@ public: Common::UUID GetCreateId() const; FontRegion GetFontRegion() const; - u8 GetFavoriteColor() const; - u8 GetGender() const; + FavoriteColor GetFavoriteColor() const; + Gender GetGender() const; u8 GetHeight() const; u8 GetBuild() const; u8 GetType() const; u8 GetRegionMove() const; - u8 GetFacelineType() const; - u8 GetFacelineColor() const; - u8 GetFacelineWrinkle() const; - u8 GetFacelineMake() const; - u8 GetHairType() const; - u8 GetHairColor() const; - u8 GetHairFlip() const; - u8 GetEyeType() const; - u8 GetEyeColor() const; + FacelineType GetFacelineType() const; + FacelineColor GetFacelineColor() const; + FacelineWrinkle GetFacelineWrinkle() const; + FacelineMake GetFacelineMake() const; + HairType GetHairType() const; + CommonColor GetHairColor() const; + HairFlip GetHairFlip() const; + EyeType GetEyeType() const; + CommonColor GetEyeColor() const; u8 GetEyeScale() const; u8 GetEyeAspect() const; u8 GetEyeRotate() const; u8 GetEyeX() const; u8 GetEyeY() const; - u8 GetEyebrowType() const; - u8 GetEyebrowColor() const; + EyebrowType GetEyebrowType() const; + CommonColor GetEyebrowColor() const; u8 GetEyebrowScale() const; u8 GetEyebrowAspect() const; u8 GetEyebrowRotate() const; u8 GetEyebrowX() const; u8 GetEyebrowY() const; - u8 GetNoseType() const; + NoseType GetNoseType() const; u8 GetNoseScale() const; u8 GetNoseY() const; - u8 GetMouthType() const; - u8 GetMouthColor() const; + MouthType GetMouthType() const; + CommonColor GetMouthColor() const; u8 GetMouthScale() const; u8 GetMouthAspect() const; u8 GetMouthY() const; - u8 GetBeardColor() const; - u8 GetBeardType() const; - u8 GetMustacheType() const; + CommonColor GetBeardColor() const; + BeardType GetBeardType() const; + MustacheType GetMustacheType() const; u8 GetMustacheScale() const; u8 GetMustacheY() const; - u8 GetGlassType() const; - u8 GetGlassColor() const; + GlassType GetGlassType() const; + CommonColor GetGlassColor() const; u8 GetGlassScale() const; u8 GetGlassY() const; - u8 GetMoleType() const; + MoleType GetMoleType() const; u8 GetMoleScale() const; u8 GetMoleX() const; 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 @@ namespace Service::Mii { void NfpStoreDataExtension::SetFromStoreData(const StoreData& store_data) { - faceline_color = static_cast(store_data.GetFacelineColor() & 0xf); - hair_color = static_cast(store_data.GetHairColor() & 0x7f); - eye_color = static_cast(store_data.GetEyeColor() & 0x7f); - eyebrow_color = static_cast(store_data.GetEyebrowColor() & 0x7f); - mouth_color = static_cast(store_data.GetMouthColor() & 0x7f); - beard_color = static_cast(store_data.GetBeardColor() & 0x7f); - glass_color = static_cast(store_data.GetGlassColor() & 0x7f); - glass_type = static_cast(store_data.GetGlassType() & 0x1f); + faceline_color = static_cast(store_data.GetFacelineColor()) & 0xf; + hair_color = static_cast(store_data.GetHairColor()) & 0x7f; + eye_color = static_cast(store_data.GetEyeColor()) & 0x7f; + eyebrow_color = static_cast(store_data.GetEyebrowColor()) & 0x7f; + mouth_color = static_cast(store_data.GetMouthColor()) & 0x7f; + beard_color = static_cast(store_data.GetBeardColor()) & 0x7f; + glass_color = static_cast(store_data.GetGlassColor()) & 0x7f; + glass_type = static_cast(store_data.GetGlassType()) & 0x1f; } void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const { @@ -28,8 +28,9 @@ void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const { // TODO: We are ignoring a bunch of data from the mii_v3 - out_store_data.SetGender(static_cast(static_cast(mii_information.gender))); - out_store_data.SetFavoriteColor(static_cast(mii_information.favorite_color)); + out_store_data.SetGender(static_cast(mii_information.gender.Value())); + out_store_data.SetFavoriteColor( + static_cast(mii_information.favorite_color.Value())); out_store_data.SetHeight(height); out_store_data.SetBuild(build); @@ -37,56 +38,60 @@ void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const { out_store_data.SetFontRegion( static_cast(static_cast(region_information.font_region))); - out_store_data.SetFacelineType(appearance_bits1.faceline_type); - out_store_data.SetFacelineColor(appearance_bits1.faceline_color); - out_store_data.SetFacelineWrinkle(appearance_bits2.faceline_wrinkle); - out_store_data.SetFacelineMake(appearance_bits2.faceline_make); + out_store_data.SetFacelineType( + static_cast(appearance_bits1.faceline_type.Value())); + out_store_data.SetFacelineColor( + static_cast(appearance_bits1.faceline_color.Value())); + out_store_data.SetFacelineWrinkle( + static_cast(appearance_bits2.faceline_wrinkle.Value())); + out_store_data.SetFacelineMake( + static_cast(appearance_bits2.faceline_make.Value())); - out_store_data.SetHairType(hair_type); - out_store_data.SetHairColor(appearance_bits3.hair_color); - out_store_data.SetHairFlip(static_cast(static_cast(appearance_bits3.hair_flip))); + out_store_data.SetHairType(static_cast(hair_type)); + out_store_data.SetHairColor(static_cast(appearance_bits3.hair_color.Value())); + out_store_data.SetHairFlip(static_cast(appearance_bits3.hair_flip.Value())); - out_store_data.SetEyeType(static_cast(appearance_bits4.eye_type)); - out_store_data.SetEyeColor(static_cast(appearance_bits4.eye_color)); + out_store_data.SetEyeType(static_cast(appearance_bits4.eye_type.Value())); + out_store_data.SetEyeColor(static_cast(appearance_bits4.eye_color.Value())); out_store_data.SetEyeScale(static_cast(appearance_bits4.eye_scale)); out_store_data.SetEyeAspect(static_cast(appearance_bits4.eye_aspect)); out_store_data.SetEyeRotate(static_cast(appearance_bits4.eye_rotate)); out_store_data.SetEyeX(static_cast(appearance_bits4.eye_x)); out_store_data.SetEyeY(static_cast(appearance_bits4.eye_y)); - out_store_data.SetEyebrowType(static_cast(appearance_bits5.eyebrow_type)); - out_store_data.SetEyebrowColor(static_cast(appearance_bits5.eyebrow_color)); + out_store_data.SetEyebrowType(static_cast(appearance_bits5.eyebrow_type.Value())); + out_store_data.SetEyebrowColor( + static_cast(appearance_bits5.eyebrow_color.Value())); out_store_data.SetEyebrowScale(static_cast(appearance_bits5.eyebrow_scale)); out_store_data.SetEyebrowAspect(static_cast(appearance_bits5.eyebrow_aspect)); out_store_data.SetEyebrowRotate(static_cast(appearance_bits5.eyebrow_rotate)); out_store_data.SetEyebrowX(static_cast(appearance_bits5.eyebrow_x)); out_store_data.SetEyebrowY(static_cast(appearance_bits5.eyebrow_y)); - out_store_data.SetNoseType(static_cast(appearance_bits6.nose_type)); + out_store_data.SetNoseType(static_cast(appearance_bits6.nose_type.Value())); out_store_data.SetNoseScale(static_cast(appearance_bits6.nose_scale)); out_store_data.SetNoseY(static_cast(appearance_bits6.nose_y)); out_store_data.SetMouthType(static_cast(appearance_bits7.mouth_type)); - out_store_data.SetMouthColor(static_cast(appearance_bits7.mouth_color)); + out_store_data.SetMouthColor(static_cast(appearance_bits7.mouth_color.Value())); out_store_data.SetMouthScale(static_cast(appearance_bits7.mouth_scale)); out_store_data.SetMouthAspect(static_cast(appearance_bits7.mouth_aspect)); out_store_data.SetMouthY(static_cast(appearance_bits8.mouth_y)); out_store_data.SetMustacheType( - static_cast(static_cast(appearance_bits8.mustache_type))); + static_cast(appearance_bits8.mustache_type.Value())); out_store_data.SetMustacheScale(static_cast(appearance_bits9.mustache_scale)); out_store_data.SetMustacheY(static_cast(appearance_bits9.mustache_y)); - out_store_data.SetBeardType( - static_cast(static_cast(appearance_bits9.beard_type))); - out_store_data.SetBeardColor(static_cast(appearance_bits9.beard_color)); + out_store_data.SetBeardType(static_cast(appearance_bits9.beard_type.Value())); + out_store_data.SetBeardColor(static_cast(appearance_bits9.beard_color.Value())); - out_store_data.SetGlassType(static_cast(appearance_bits10.glass_type)); - out_store_data.SetGlassColor(static_cast(appearance_bits10.glass_color)); + out_store_data.SetGlassType(static_cast(appearance_bits10.glass_type.Value())); + out_store_data.SetGlassColor(static_cast(appearance_bits10.glass_color.Value())); out_store_data.SetGlassScale(static_cast(appearance_bits10.glass_scale)); out_store_data.SetGlassY(static_cast(appearance_bits10.glass_y)); - out_store_data.SetMoleType(static_cast(appearance_bits11.mole_type)); + out_store_data.SetMoleType(static_cast(appearance_bits11.mole_type.Value())); out_store_data.SetMoleScale(static_cast(appearance_bits11.mole_scale)); out_store_data.SetMoleX(static_cast(appearance_bits11.mole_x)); out_store_data.SetMoleY(static_cast(appearance_bits11.mole_y)); @@ -94,71 +99,75 @@ void Ver3StoreData::BuildToStoreData(StoreData& out_store_data) const { void Ver3StoreData::BuildFromStoreData(const StoreData& store_data) { version = 1; - mii_information.gender.Assign(store_data.GetGender()); - mii_information.favorite_color.Assign(store_data.GetFavoriteColor()); + mii_information.gender.Assign(static_cast(store_data.GetGender())); + mii_information.favorite_color.Assign(static_cast(store_data.GetFavoriteColor())); height = store_data.GetHeight(); build = store_data.GetBuild(); mii_name = store_data.GetNickname(); region_information.font_region.Assign(static_cast(store_data.GetFontRegion())); - appearance_bits1.faceline_type.Assign(store_data.GetFacelineType()); - appearance_bits2.faceline_wrinkle.Assign(store_data.GetFacelineWrinkle()); - appearance_bits2.faceline_make.Assign(store_data.GetFacelineMake()); + appearance_bits1.faceline_type.Assign(static_cast(store_data.GetFacelineType())); + appearance_bits2.faceline_wrinkle.Assign(static_cast(store_data.GetFacelineWrinkle())); + appearance_bits2.faceline_make.Assign(static_cast(store_data.GetFacelineMake())); - hair_type = store_data.GetHairType(); - appearance_bits3.hair_flip.Assign(store_data.GetHairFlip()); + hair_type = static_cast(store_data.GetHairType()); + appearance_bits3.hair_flip.Assign(static_cast(store_data.GetHairFlip())); - appearance_bits4.eye_type.Assign(store_data.GetEyeType()); + appearance_bits4.eye_type.Assign(static_cast(store_data.GetEyeType())); appearance_bits4.eye_scale.Assign(store_data.GetEyeScale()); appearance_bits4.eye_aspect.Assign(store_data.GetEyebrowAspect()); appearance_bits4.eye_rotate.Assign(store_data.GetEyeRotate()); appearance_bits4.eye_x.Assign(store_data.GetEyeX()); appearance_bits4.eye_y.Assign(store_data.GetEyeY()); - appearance_bits5.eyebrow_type.Assign(store_data.GetEyebrowType()); + appearance_bits5.eyebrow_type.Assign(static_cast(store_data.GetEyebrowType())); appearance_bits5.eyebrow_scale.Assign(store_data.GetEyebrowScale()); appearance_bits5.eyebrow_aspect.Assign(store_data.GetEyebrowAspect()); appearance_bits5.eyebrow_rotate.Assign(store_data.GetEyebrowRotate()); appearance_bits5.eyebrow_x.Assign(store_data.GetEyebrowX()); appearance_bits5.eyebrow_y.Assign(store_data.GetEyebrowY()); - appearance_bits6.nose_type.Assign(store_data.GetNoseType()); + appearance_bits6.nose_type.Assign(static_cast(store_data.GetNoseType())); appearance_bits6.nose_scale.Assign(store_data.GetNoseScale()); appearance_bits6.nose_y.Assign(store_data.GetNoseY()); - appearance_bits7.mouth_type.Assign(store_data.GetMouthType()); + appearance_bits7.mouth_type.Assign(static_cast(store_data.GetMouthType())); appearance_bits7.mouth_scale.Assign(store_data.GetMouthScale()); appearance_bits7.mouth_aspect.Assign(store_data.GetMouthAspect()); appearance_bits8.mouth_y.Assign(store_data.GetMouthY()); - appearance_bits8.mustache_type.Assign(store_data.GetMustacheType()); + appearance_bits8.mustache_type.Assign(static_cast(store_data.GetMustacheType())); appearance_bits9.mustache_scale.Assign(store_data.GetMustacheScale()); appearance_bits9.mustache_y.Assign(store_data.GetMustacheY()); - appearance_bits9.beard_type.Assign(store_data.GetBeardType()); + appearance_bits9.beard_type.Assign(static_cast(store_data.GetBeardType())); appearance_bits10.glass_scale.Assign(store_data.GetGlassScale()); appearance_bits10.glass_y.Assign(store_data.GetGlassY()); - appearance_bits11.mole_type.Assign(store_data.GetMoleType()); + appearance_bits11.mole_type.Assign(static_cast(store_data.GetMoleType())); appearance_bits11.mole_scale.Assign(store_data.GetMoleScale()); appearance_bits11.mole_x.Assign(store_data.GetMoleX()); appearance_bits11.mole_y.Assign(store_data.GetMoleY()); // These types are converted to V3 from a table appearance_bits1.faceline_color.Assign( - RawData::FromVer3GetFacelineColor(store_data.GetFacelineColor())); - appearance_bits3.hair_color.Assign(RawData::FromVer3GetHairColor(store_data.GetHairColor())); - appearance_bits4.eye_color.Assign(RawData::FromVer3GetEyeColor(store_data.GetEyeColor())); + RawData::FromVer3GetFacelineColor(static_cast(store_data.GetFacelineColor()))); + appearance_bits3.hair_color.Assign( + RawData::FromVer3GetHairColor(static_cast(store_data.GetHairColor()))); + appearance_bits4.eye_color.Assign( + RawData::FromVer3GetEyeColor(static_cast(store_data.GetEyeColor()))); appearance_bits5.eyebrow_color.Assign( - RawData::FromVer3GetHairColor(store_data.GetEyebrowColor())); + RawData::FromVer3GetHairColor(static_cast(store_data.GetEyebrowColor()))); appearance_bits7.mouth_color.Assign( - RawData::FromVer3GetMouthlineColor(store_data.GetMouthColor())); - appearance_bits9.beard_color.Assign(RawData::FromVer3GetHairColor(store_data.GetBeardColor())); + RawData::FromVer3GetMouthlineColor(static_cast(store_data.GetMouthColor()))); + appearance_bits9.beard_color.Assign( + RawData::FromVer3GetHairColor(static_cast(store_data.GetBeardColor()))); appearance_bits10.glass_color.Assign( - RawData::FromVer3GetGlassColor(store_data.GetGlassColor())); - appearance_bits10.glass_type.Assign(RawData::FromVer3GetGlassType(store_data.GetGlassType())); + RawData::FromVer3GetGlassColor(static_cast(store_data.GetGlassColor()))); + appearance_bits10.glass_type.Assign( + RawData::FromVer3GetGlassType(static_cast(store_data.GetGlassType()))); crc = MiiUtil::CalculateCrc16(&version, sizeof(Ver3StoreData) - sizeof(u16)); } @@ -166,64 +175,65 @@ void Ver3StoreData::BuildFromStoreData(const StoreData& store_data) { u32 Ver3StoreData::IsValid() const { bool is_valid = version == 0 || version == 3; - is_valid = is_valid && (mii_name.data[0] != 0); + is_valid = is_valid && (mii_name.data[0] != '\0'); is_valid = is_valid && (mii_information.birth_month < 13); is_valid = is_valid && (mii_information.birth_day < 32); - is_valid = is_valid && (mii_information.favorite_color < 12); - is_valid = is_valid && (height < 128); - is_valid = is_valid && (build < 128); + is_valid = is_valid && (mii_information.favorite_color <= static_cast(FavoriteColor::Max)); + is_valid = is_valid && (height <= MaxHeight); + is_valid = is_valid && (build <= MaxBuild); - is_valid = is_valid && (appearance_bits1.faceline_type < 12); - is_valid = is_valid && (appearance_bits1.faceline_color < 7); - is_valid = is_valid && (appearance_bits2.faceline_wrinkle < 12); - is_valid = is_valid && (appearance_bits2.faceline_make < 12); + is_valid = is_valid && (appearance_bits1.faceline_type <= static_cast(FacelineType::Max)); + is_valid = is_valid && (appearance_bits1.faceline_color <= MaxVer3CommonColor - 2); + is_valid = + is_valid && (appearance_bits2.faceline_wrinkle <= static_cast(FacelineWrinkle::Max)); + is_valid = is_valid && (appearance_bits2.faceline_make <= static_cast(FacelineMake::Max)); - is_valid = is_valid && (hair_type < 132); - is_valid = is_valid && (appearance_bits3.hair_color < 8); + is_valid = is_valid && (hair_type <= static_cast(HairType::Max)); + is_valid = is_valid && (appearance_bits3.hair_color <= MaxVer3CommonColor); - is_valid = is_valid && (appearance_bits4.eye_type < 60); - is_valid = is_valid && (appearance_bits4.eye_color < 6); - is_valid = is_valid && (appearance_bits4.eye_scale < 8); - is_valid = is_valid && (appearance_bits4.eye_aspect < 7); - is_valid = is_valid && (appearance_bits4.eye_rotate < 8); - is_valid = is_valid && (appearance_bits4.eye_x < 13); - is_valid = is_valid && (appearance_bits4.eye_y < 19); + is_valid = is_valid && (appearance_bits4.eye_type <= static_cast(EyeType::Max)); + is_valid = is_valid && (appearance_bits4.eye_color <= MaxVer3CommonColor - 2); + is_valid = is_valid && (appearance_bits4.eye_scale <= MaxEyeScale); + is_valid = is_valid && (appearance_bits4.eye_aspect <= MaxEyeAspect); + is_valid = is_valid && (appearance_bits4.eye_rotate <= MaxEyeRotate); + is_valid = is_valid && (appearance_bits4.eye_x <= MaxEyeX); + is_valid = is_valid && (appearance_bits4.eye_y <= MaxEyeY); - is_valid = is_valid && (appearance_bits5.eyebrow_type < 25); - is_valid = is_valid && (appearance_bits5.eyebrow_color < 8); - is_valid = is_valid && (appearance_bits5.eyebrow_scale < 9); - is_valid = is_valid && (appearance_bits5.eyebrow_aspect < 7); - is_valid = is_valid && (appearance_bits5.eyebrow_rotate < 12); - is_valid = is_valid && (appearance_bits5.eyebrow_x < 12); - is_valid = is_valid && (appearance_bits5.eyebrow_y < 19); + is_valid = is_valid && (appearance_bits5.eyebrow_type <= static_cast(EyebrowType::Max)); + is_valid = is_valid && (appearance_bits5.eyebrow_color <= MaxVer3CommonColor); + is_valid = is_valid && (appearance_bits5.eyebrow_scale <= MaxEyebrowScale); + is_valid = is_valid && (appearance_bits5.eyebrow_aspect <= MaxEyebrowAspect); + is_valid = is_valid && (appearance_bits5.eyebrow_rotate <= MaxEyebrowRotate); + is_valid = is_valid && (appearance_bits5.eyebrow_x <= MaxEyebrowX); + is_valid = is_valid && (appearance_bits5.eyebrow_y <= MaxEyebrowY); - is_valid = is_valid && (appearance_bits6.nose_type < 18); - is_valid = is_valid && (appearance_bits6.nose_scale < 9); - is_valid = is_valid && (appearance_bits6.nose_y < 19); + is_valid = is_valid && (appearance_bits6.nose_type <= static_cast(NoseType::Max)); + is_valid = is_valid && (appearance_bits6.nose_scale <= MaxNoseScale); + is_valid = is_valid && (appearance_bits6.nose_y <= MaxNoseY); - is_valid = is_valid && (appearance_bits7.mouth_type < 36); - is_valid = is_valid && (appearance_bits7.mouth_color < 5); - is_valid = is_valid && (appearance_bits7.mouth_scale < 9); - is_valid = is_valid && (appearance_bits7.mouth_aspect < 7); - is_valid = is_valid && (appearance_bits8.mouth_y < 19); + is_valid = is_valid && (appearance_bits7.mouth_type <= static_cast(MouthType::Max)); + is_valid = is_valid && (appearance_bits7.mouth_color <= MaxVer3CommonColor - 3); + is_valid = is_valid && (appearance_bits7.mouth_scale <= MaxMouthScale); + is_valid = is_valid && (appearance_bits7.mouth_aspect <= MaxMoutAspect); + is_valid = is_valid && (appearance_bits8.mouth_y <= MaxMouthY); - is_valid = is_valid && (appearance_bits8.mustache_type < 6); - is_valid = is_valid && (appearance_bits9.mustache_scale < 7); - is_valid = is_valid && (appearance_bits9.mustache_y < 17); + is_valid = is_valid && (appearance_bits8.mustache_type <= static_cast(MustacheType::Max)); + is_valid = is_valid && (appearance_bits9.mustache_scale < MaxMustacheScale); + is_valid = is_valid && (appearance_bits9.mustache_y <= MasMustacheY); - is_valid = is_valid && (appearance_bits9.beard_type < 6); - is_valid = is_valid && (appearance_bits9.beard_color < 8); + is_valid = is_valid && (appearance_bits9.beard_type <= static_cast(BeardType::Max)); + is_valid = is_valid && (appearance_bits9.beard_color <= MaxVer3CommonColor); - is_valid = is_valid && (appearance_bits10.glass_type < 9); - is_valid = is_valid && (appearance_bits10.glass_color < 6); - is_valid = is_valid && (appearance_bits10.glass_scale < 8); - is_valid = is_valid && (appearance_bits10.glass_y < 21); + is_valid = is_valid && (appearance_bits10.glass_type <= MaxVer3GlassType); + is_valid = is_valid && (appearance_bits10.glass_color <= MaxVer3CommonColor - 2); + is_valid = is_valid && (appearance_bits10.glass_scale <= MaxGlassScale); + is_valid = is_valid && (appearance_bits10.glass_y <= MaxGlassScale); - is_valid = is_valid && (appearance_bits11.mole_type < 2); - is_valid = is_valid && (appearance_bits11.mole_scale < 9); - is_valid = is_valid && (appearance_bits11.mole_x < 17); - is_valid = is_valid && (appearance_bits11.mole_y < 31); + is_valid = is_valid && (appearance_bits11.mole_type <= static_cast(MoleType::Max)); + is_valid = is_valid && (appearance_bits11.mole_scale <= MaxMoleScale); + is_valid = is_valid && (appearance_bits11.mole_x <= MaxMoleX); + is_valid = is_valid && (appearance_bits11.mole_y <= MaxMoleY); return is_valid; }