@ -21,7 +21,7 @@ namespace {
constexpr ResultCode ERROR_CANNOT_FIND_ENTRY { ErrorModule : : Mii , 4 } ;
constexpr ResultCode ERROR_CANNOT_FIND_ENTRY { ErrorModule : : Mii , 4 } ;
constexpr std : : size_t DefaultMiiCount { sizeof ( RawData : : DefaultMii ) / sizeof ( DefaultMii ) } ;
constexpr std : : size_t DefaultMiiCount { RawData : : DefaultMii .size ( ) } ;
constexpr MiiStoreData : : Name DefaultMiiName { u ' y ' , u ' u ' , u ' z ' , u ' u ' } ;
constexpr MiiStoreData : : Name DefaultMiiName { u ' y ' , u ' u ' , u ' z ' , u ' u ' } ;
constexpr std : : array < u8 , 8 > HairColorLookup { 8 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } ;
constexpr std : : array < u8 , 8 > HairColorLookup { 8 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } ;
@ -141,13 +141,6 @@ T GetRandomValue(T max) {
return GetRandomValue < T > ( { } , max ) ;
return GetRandomValue < T > ( { } , max ) ;
}
}
template < typename T >
T GetArrayValue ( const u8 * data , std : : size_t index ) {
T result { } ;
std : : memcpy ( & result , & data [ index * sizeof ( T ) ] , sizeof ( T ) ) ;
return result ;
}
MiiStoreData BuildRandomStoreData ( Age age , Gender gender , Race race , const Common : : UUID & user_id ) {
MiiStoreData BuildRandomStoreData ( Age age , Gender gender , Race race , const Common : : UUID & user_id ) {
MiiStoreBitFields bf { } ;
MiiStoreBitFields bf { } ;
@ -193,32 +186,20 @@ MiiStoreData BuildRandomStoreData(Age age, Gender gender, Race race, const Commo
const std : : size_t index { 3 * static_cast < std : : size_t > ( age ) +
const std : : size_t index { 3 * static_cast < std : : size_t > ( age ) +
9 * static_cast < std : : size_t > ( gender ) + static_cast < std : : size_t > ( race ) } ;
9 * static_cast < std : : size_t > ( gender ) + static_cast < std : : size_t > ( race ) } ;
const auto faceline_type_info {
const auto faceline_type_info { RawData : : RandomMiiFaceline . at ( index ) } ;
GetArrayValue < RandomMiiData4 > ( & RawData : : RandomMiiFaceline [ 0 ] , index ) } ;
const auto faceline_color_info { RawData : : RandomMiiFacelineColor . at (
const auto faceline_color_info { GetArrayValue < RandomMiiData3 > (
RawData : : RandomMiiFacelineColor . data ( ) ,
3 * static_cast < std : : size_t > ( gender ) + static_cast < std : : size_t > ( race ) ) } ;
3 * static_cast < std : : size_t > ( gender ) + static_cast < std : : size_t > ( race ) ) } ;
const auto faceline_wrinkle_info {
const auto faceline_wrinkle_info { RawData : : RandomMiiFacelineWrinkle . at ( index ) } ;
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiFacelineWrinkle . data ( ) , index ) } ;
const auto faceline_makeup_info { RawData : : RandomMiiFacelineMakeup . at ( index ) } ;
const auto faceline_makeup_info {
const auto hair_type_info { RawData : : RandomMiiHairType . at ( index ) } ;
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiFacelineMakeup . data ( ) , index ) } ;
const auto hair_color_info { RawData : : RandomMiiHairColor . at ( 3 * static_cast < std : : size_t > ( race ) +
const auto hair_type_info {
static_cast < std : : size_t > ( age ) ) } ;
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiHairType . data ( ) , index ) } ;
const auto eye_type_info { RawData : : RandomMiiEyeType . at ( index ) } ;
const auto hair_color_info { GetArrayValue < RandomMiiData3 > ( RawData : : RandomMiiHairColor . data ( ) ,
const auto eye_color_info { RawData : : RandomMiiEyeColor . at ( static_cast < std : : size_t > ( race ) ) } ;
3 * static_cast < std : : size_t > ( race ) +
const auto eyebrow_type_info { RawData : : RandomMiiEyebrowType . at ( index ) } ;
static_cast < std : : size_t > ( age ) ) } ;
const auto nose_type_info { RawData : : RandomMiiNoseType . at ( index ) } ;
const auto eye_type_info {
const auto mouth_type_info { RawData : : RandomMiiMouthType . at ( index ) } ;
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiEyeType . data ( ) , index ) } ;
const auto glasses_type_info { RawData : : RandomMiiGlassType . at ( static_cast < std : : size_t > ( age ) ) } ;
const auto eye_color_info { GetArrayValue < RandomMiiData2 > ( RawData : : RandomMiiEyeColor . data ( ) ,
static_cast < std : : size_t > ( race ) ) } ;
const auto eyebrow_type_info {
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiEyebrowType . data ( ) , index ) } ;
const auto nose_type_info {
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiNoseType . data ( ) , index ) } ;
const auto mouth_type_info {
GetArrayValue < RandomMiiData4 > ( RawData : : RandomMiiMouthType . data ( ) , index ) } ;
const auto glasses_type_info { GetArrayValue < RandomMiiData2 > ( RawData : : RandomMiiGlassType . data ( ) ,
static_cast < std : : size_t > ( age ) ) } ;
bf . faceline_type . Assign (
bf . faceline_type . Assign (
faceline_type_info . values [ GetRandomValue < std : : size_t > ( faceline_type_info . values_count ) ] ) ;
faceline_type_info . values [ GetRandomValue < std : : size_t > ( faceline_type_info . values_count ) ] ) ;
@ -455,8 +436,7 @@ MiiInfo MiiManager::BuildRandom(Age age, Gender gender, Race race) {
}
}
MiiInfo MiiManager : : BuildDefault ( std : : size_t index ) {
MiiInfo MiiManager : : BuildDefault ( std : : size_t index ) {
return ConvertStoreDataToInfo ( BuildDefaultStoreData (
return ConvertStoreDataToInfo ( BuildDefaultStoreData ( RawData : : DefaultMii . at ( index ) , user_id ) ) ;
GetArrayValue < DefaultMii > ( RawData : : DefaultMii . data ( ) , index ) , user_id ) ) ;
}
}
ResultVal < std : : vector < MiiInfoElement > > MiiManager : : GetDefault ( SourceFlag source_flag ) {
ResultVal < std : : vector < MiiInfoElement > > MiiManager : : GetDefault ( SourceFlag source_flag ) {