service: nfp: Rewrite and implement applet calls
This commit is contained in:
parent
8a3d22c4bd
commit
afea5c163f
13 changed files with 1544 additions and 1265 deletions
|
@ -427,12 +427,12 @@ CharInfo MiiManager::BuildDefault(std::size_t index) {
|
|||
return ConvertStoreDataToInfo(BuildDefaultStoreData(RawData::DefaultMii.at(index), user_id));
|
||||
}
|
||||
|
||||
CharInfo MiiManager::ConvertV3ToCharInfo(Ver3StoreData mii_v3) const {
|
||||
CharInfo MiiManager::ConvertV3ToCharInfo(const Ver3StoreData& mii_v3) const {
|
||||
Service::Mii::MiiManager manager;
|
||||
auto mii = manager.BuildDefault(0);
|
||||
|
||||
// Check if mii data exist
|
||||
if (mii_v3.mii_name[0] == 0) {
|
||||
if (mii_v3.version == 0) {
|
||||
return mii;
|
||||
}
|
||||
|
||||
|
@ -443,8 +443,8 @@ CharInfo MiiManager::ConvertV3ToCharInfo(Ver3StoreData mii_v3) const {
|
|||
mii.height = mii_v3.height;
|
||||
mii.build = mii_v3.build;
|
||||
|
||||
memset(mii.name.data(), 0, sizeof(mii.name));
|
||||
memcpy(mii.name.data(), mii_v3.mii_name.data(), sizeof(mii_v3.mii_name));
|
||||
memset(mii.name.data(), 0, mii.name.size());
|
||||
memcpy(mii.name.data(), mii_v3.mii_name.data(), mii_v3.mii_name.size());
|
||||
mii.font_region = mii_v3.region_information.character_set;
|
||||
|
||||
mii.faceline_type = mii_v3.appearance_bits1.face_shape;
|
||||
|
@ -504,6 +504,78 @@ CharInfo MiiManager::ConvertV3ToCharInfo(Ver3StoreData mii_v3) const {
|
|||
return mii;
|
||||
}
|
||||
|
||||
Ver3StoreData MiiManager::ConvertCharInfoToV3(const CharInfo& mii) const {
|
||||
Service::Mii::MiiManager manager;
|
||||
Ver3StoreData mii_v3{};
|
||||
|
||||
// TODO: We are ignoring a bunch of data from the mii_v3
|
||||
|
||||
mii_v3.version = 1;
|
||||
mii_v3.mii_information.gender.Assign(mii.gender);
|
||||
mii_v3.mii_information.favorite_color.Assign(mii.favorite_color);
|
||||
mii_v3.height = mii.height;
|
||||
mii_v3.build = mii.build;
|
||||
|
||||
memcpy(mii_v3.mii_name.data(), mii.name.data(), mii.name.size());
|
||||
mii_v3.region_information.character_set.Assign(mii.font_region);
|
||||
|
||||
mii_v3.appearance_bits1.face_shape.Assign(mii.faceline_type);
|
||||
mii_v3.appearance_bits1.skin_color.Assign(mii.faceline_color);
|
||||
mii_v3.appearance_bits2.wrinkles.Assign(mii.faceline_wrinkle);
|
||||
mii_v3.appearance_bits2.makeup.Assign(mii.faceline_make);
|
||||
|
||||
mii_v3.hair_style = mii.hair_type;
|
||||
mii_v3.appearance_bits3.hair_color.Assign(mii.hair_color);
|
||||
mii_v3.appearance_bits3.flip_hair.Assign(mii.hair_flip);
|
||||
|
||||
mii_v3.appearance_bits4.eye_type.Assign(mii.eye_type);
|
||||
mii_v3.appearance_bits4.eye_color.Assign(mii.eye_color);
|
||||
mii_v3.appearance_bits4.eye_scale.Assign(mii.eye_scale);
|
||||
mii_v3.appearance_bits4.eye_vertical_stretch.Assign(mii.eye_aspect);
|
||||
mii_v3.appearance_bits4.eye_rotation.Assign(mii.eye_rotate);
|
||||
mii_v3.appearance_bits4.eye_spacing.Assign(mii.eye_x);
|
||||
mii_v3.appearance_bits4.eye_y_position.Assign(mii.eye_y);
|
||||
|
||||
mii_v3.appearance_bits5.eyebrow_style.Assign(mii.eyebrow_type);
|
||||
mii_v3.appearance_bits5.eyebrow_color.Assign(mii.eyebrow_color);
|
||||
mii_v3.appearance_bits5.eyebrow_scale.Assign(mii.eyebrow_scale);
|
||||
mii_v3.appearance_bits5.eyebrow_yscale.Assign(mii.eyebrow_aspect);
|
||||
mii_v3.appearance_bits5.eyebrow_rotation.Assign(mii.eyebrow_rotate);
|
||||
mii_v3.appearance_bits5.eyebrow_spacing.Assign(mii.eyebrow_x);
|
||||
mii_v3.appearance_bits5.eyebrow_y_position.Assign(mii.eyebrow_y);
|
||||
|
||||
mii_v3.appearance_bits6.nose_type.Assign(mii.nose_type);
|
||||
mii_v3.appearance_bits6.nose_scale.Assign(mii.nose_scale);
|
||||
mii_v3.appearance_bits6.nose_y_position.Assign(mii.nose_y);
|
||||
|
||||
mii_v3.appearance_bits7.mouth_type.Assign(mii.mouth_type);
|
||||
mii_v3.appearance_bits7.mouth_color.Assign(mii.mouth_color);
|
||||
mii_v3.appearance_bits7.mouth_scale.Assign(mii.mouth_scale);
|
||||
mii_v3.appearance_bits7.mouth_horizontal_stretch.Assign(mii.mouth_aspect);
|
||||
mii_v3.appearance_bits8.mouth_y_position.Assign(mii.mouth_y);
|
||||
|
||||
mii_v3.appearance_bits8.mustache_type.Assign(mii.mustache_type);
|
||||
mii_v3.appearance_bits9.mustache_scale.Assign(mii.mustache_scale);
|
||||
mii_v3.appearance_bits9.mustache_y_position.Assign(mii.mustache_y);
|
||||
|
||||
mii_v3.appearance_bits9.bear_type.Assign(mii.beard_type);
|
||||
mii_v3.appearance_bits9.facial_hair_color.Assign(mii.beard_color);
|
||||
|
||||
mii_v3.appearance_bits10.glasses_type.Assign(mii.glasses_type);
|
||||
mii_v3.appearance_bits10.glasses_color.Assign(mii.glasses_color);
|
||||
mii_v3.appearance_bits10.glasses_scale.Assign(mii.glasses_scale);
|
||||
mii_v3.appearance_bits10.glasses_y_position.Assign(mii.glasses_y);
|
||||
|
||||
mii_v3.appearance_bits11.mole_enabled.Assign(mii.mole_type);
|
||||
mii_v3.appearance_bits11.mole_scale.Assign(mii.mole_scale);
|
||||
mii_v3.appearance_bits11.mole_x_position.Assign(mii.mole_x);
|
||||
mii_v3.appearance_bits11.mole_y_position.Assign(mii.mole_y);
|
||||
|
||||
// TODO: Validate mii_v3 data
|
||||
|
||||
return mii_v3;
|
||||
}
|
||||
|
||||
ResultVal<std::vector<MiiInfoElement>> MiiManager::GetDefault(SourceFlag source_flag) {
|
||||
std::vector<MiiInfoElement> result;
|
||||
|
||||
|
|
|
@ -22,7 +22,8 @@ public:
|
|||
ResultVal<CharInfo> UpdateLatest(const CharInfo& info, SourceFlag source_flag);
|
||||
CharInfo BuildRandom(Age age, Gender gender, Race race);
|
||||
CharInfo BuildDefault(std::size_t index);
|
||||
CharInfo ConvertV3ToCharInfo(Ver3StoreData mii_v3) const;
|
||||
CharInfo ConvertV3ToCharInfo(const Ver3StoreData& mii_v3) const;
|
||||
Ver3StoreData ConvertCharInfoToV3(const CharInfo& mii) const;
|
||||
ResultVal<std::vector<MiiInfoElement>> GetDefault(SourceFlag source_flag);
|
||||
Result GetIndex(const CharInfo& info, u32& index);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue