From d6e57e05967aabf07dbea4efa251e579e2b72970 Mon Sep 17 00:00:00 2001 From: hax0kartik Date: Mon, 1 Apr 2019 11:12:19 +0000 Subject: [PATCH] Revise the MiiData struct --- libctru/include/3ds.h | 1 + libctru/include/3ds/mii.h | 123 +++++++++++++++++++++++++++++ libctru/include/3ds/services/frd.h | 22 +----- 3 files changed, 126 insertions(+), 20 deletions(-) create mode 100644 libctru/include/3ds/mii.h diff --git a/libctru/include/3ds.h b/libctru/include/3ds.h index 86c92fe..91fdc8d 100644 --- a/libctru/include/3ds.h +++ b/libctru/include/3ds.h @@ -86,6 +86,7 @@ extern "C" { #include <3ds/sdmc.h> #include <3ds/romfs.h> #include <3ds/font.h> +#include <3ds/mii.h> #ifdef __cplusplus } diff --git a/libctru/include/3ds/mii.h b/libctru/include/3ds/mii.h new file mode 100644 index 0000000..9b4ae67 --- /dev/null +++ b/libctru/include/3ds/mii.h @@ -0,0 +1,123 @@ +#pragma once + +#include <3ds.h> + +typedef struct +{ + u8 magic; + + struct + { + bool allow_copying : 1; + bool is_private_name : 1; + u8 region_lock : 2; + u8 char_set : 2; + } mii_options; + + struct + { + u8 page_index : 4; + u8 slot_index : 4; + } mii_pos; + + u8 console_identity; + u64 system_id; + u32 mii_id; + u8 mac[6]; + u8 pad[2]; + u16 mii_details; + u16 mii_name[10]; + u8 height; + u8 width; + + struct + { + bool disable_sharing : 1; + u8 shape : 4; + u8 skinColor : 3; + } face_style; + + struct + { + u8 wrinkles : 4; + u8 makeup : 4; + } face_details; + + u8 hair_style; + + struct + { + u8 color : 3; + bool flip : 1; + } hair_details; + + struct + { + u32 style : 6; + u32 color : 3; + u32 scale : 4; + u32 yscale : 3; + u32 rotation : 5; + u32 xspacing : 4; + u32 yposition : 5; + } eye_details; + + struct + { + u32 style : 6; + u32 color : 3; + u32 scale : 4; + u32 yscale : 3; + u32 rotation : 5; + u32 xspacing : 4; + u32 yposition : 5; + } eyebrow_details; + + struct + { + u16 style : 5; + u16 scale : 4; + u16 yposition : 5; + } nose_details; + + struct + { + u16 style : 6; + u16 color : 3; + u16 scale : 4; + u16 yscale : 3; + } mouse_details; + + struct + { + u16 mouse_yposition : 5; + u16 mustach_style : 3; + u16 pad : 2; + } mustache_details; + + struct + { + u16 style : 3; + u16 color : 3; + u16 scale : 4; + u16 ypos : 5; + } beard_details; + + struct + { + u16 style : 4; + u16 color : 3; + u16 scale : 4; + u16 ypos : 5; + } glasses_details; + + struct + { + bool enable : 1; + u16 scale : 5; + u16 xpos : 5; + u16 ypos : 5; + } mole_details; + + u16 author_name[10]; +} PACKED MiiData; diff --git a/libctru/include/3ds/services/frd.h b/libctru/include/3ds/services/frd.h index 4868863..7fa7679 100644 --- a/libctru/include/3ds/services/frd.h +++ b/libctru/include/3ds/services/frd.h @@ -3,7 +3,9 @@ * @brief Friend Services */ #pragma once + #include <3ds.h> +#include <3ds/mii.h> #define FRIENDS_SCREEN_NAME_SIZE 0x16 // 11 (0x16 because UTF-16) #define FRIENDS_COMMENT_SIZE 0x22 // 16 (0x21 because UTF-16 + null character) @@ -25,26 +27,6 @@ typedef struct u32 version; u32 unk; } TitleData; -/// Structure containing basic Mii information. -typedef struct -{ - u32 mii_id; - u64 system_id; - u32 cdate; - u8 mac[0x6]; - u16 padding; - u16 misc1; - u16 mii_name[0xB]; - u8 width; - u8 height; - u32 misc2; - u32 unknown1; - u32 misc3; - u32 unknown2; - u8 allow_copy; - u8 unknown3[0x7]; - u16 author[0xB]; -} MiiData; /// Friend profile data typedef struct