From d4036d97efd478feec65c6f0976af3e854bcc22c Mon Sep 17 00:00:00 2001 From: hax0kartik Date: Mon, 1 Apr 2019 12:02:05 +0000 Subject: [PATCH] Add Mii struct --- libctru/include/3ds/mii.h | 123 +++++++++++++++++++++++++++++ libctru/include/3ds/services/frd.h | 21 +---- 2 files changed, 124 insertions(+), 20 deletions(-) create mode 100644 libctru/include/3ds/mii.h 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 49055a1..d1e99d3 100644 --- a/libctru/include/3ds/services/frd.h +++ b/libctru/include/3ds/services/frd.h @@ -4,6 +4,7 @@ */ #pragma once #include <3ds.h> +#include <3ds/mii.h> #define FRIEND_SCREEN_NAME_SIZE 0xB ///< 11-byte UTF-16 screen name #define FRIEND_COMMENT_SIZE 0x21 ///< 33-byte UTF-16 comment @@ -26,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