Mirai's Miscellaneous Misadventures

M53 / models / haruka.c

1/* license: AGPLv3 or later */
2/* copyright 2024 zamfofex */
3
4#include "models.h"
5
6static struct mimimi_layer mimimi_haruka_face_value =
7{
8    0, -6, 0, 12, 32, 2,
9    {
10        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x4E, 0x00, 0x00, 0x4E, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
11        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x4E, 0x00, 0x00, 0x4E, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
12    },
13};
14
15static struct mimimi_layer mimimi_haruka_hair_value =
16{
17    0, 1, 0, 20, 32, 14,
18    {
19        {4, 4, 1, {0xCB}},
20        {8, 8, 1, {0xCB}},
21        {10, 10, 1, {0xCB}},
22        {12, 12, 24, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
23        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
24        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
25        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
26        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
27        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
28        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
29        {16, 16, 32, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
30        {16, 16, 32, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
31        {16, 16, 32, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
32        {14, 14, 28, {0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB}},
33    },
34};
35
36static struct mimimi_layer mimimi_haruka_hair_lace_value =
37{
38    0, 2, 0, 20, 32, 4,
39    {
40        {12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
41        {10, 10, 20, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
42        {10, 10, 20, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
43        {10, 10, 20, {0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00}},
44    },
45};
46
47static struct mimimi_layer mimimi_haruka_flash_sweater_value =
48{
49    0, 0, 0, 6, 32, 11,
50    {
51        {8, 4, 16, {0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00}},
52        {10, 6, 20, {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00}},
53        {10, 6, 20, {0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00}},
54        {10, 6, 20, {0x00, 0x04, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x04, 0x00}},
55        {10, 6, 20, {0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD}},
56        {10, 6, 20, {0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD}},
57        {10, 6, 20, {0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD}},
58        {10, 6, 20, {0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD}},
59        {10, 6, 1, {0xFD}},
60        {10, 6, 1, {0xFD}},
61        {10, 6, 1, {0xFD}},
62        {10, 6, 1, {0xFD}},
63    },
64};
65
66static struct mimimi_layer mimimi_haruka_flash_skirt_value =
67{
68    0, -11, 0, 6, 32, 4,
69    {
70        {8, 8, 16, {0x73, 0xF5, 0x73, 0x73, 0xF5, 0x73, 0x73, 0x0A, 0x0A, 0x73, 0x73, 0xF5, 0x73, 0x73, 0xF5, 0x73}},
71        {8, 8, 1, {0xF5}},
72        {8, 8, 1, {0xF5}},
73        {8, 8, 1, {0xF5}},
74    },
75};
76
77static struct mimimi_layer mimimi_haruka_flash_stocking_value =
78{
79    0, -1, 0, 4, 32, 12,
80    {
81        {4, 4, 1, {0xC1}},
82        {4, 4, 1, {0xC1}},
83        {4, 4, 1, {0xC1}},
84        {4, 4, 1, {0xC1}},
85        {4, 4, 1, {0xC1}},
86        {4, 4, 1, {0xC1}},
87        {4, 4, 1, {0xC1}},
88        {4, 4, 1, {0xC1}},
89        {4, 4, 1, {0xC1}},
90        {4, 4, 1, {0xC1}},
91        {2, 2, 1, {0xC1}},
92    },
93};
94
95static struct mimimi_layer mimimi_haruka_flash_left_sandal_value =
96{
97    0, -8, 0, 4, 32, 5,
98    {
99        {4, 4, 1, {0x04}},
100        {4, 4, 8, {0x04, 0x04, 0x00, 0x04, 0x04, 0x00, 0x04, 0x04}},
101        {4, 4, 8, {0xC5, 0x00, 0x04, 0x00, 0x04, 0x04, 0x00, 0xC5}},
102        {2, 2, 1, {0x04}},
103    },
104};
105
106static struct mimimi_layer mimimi_haruka_flash_right_sandal_value =
107{
108    0, -8, 0, 4, 32, 5,
109    {
110        {4, 4, 1, {0x04}},
111        {4, 4, 8, {0x04, 0x04, 0x00, 0x04, 0x04, 0x00, 0x04, 0x04}},
112        {4, 4, 8, {0xC5, 0x00, 0x04, 0x04, 0x00, 0x04, 0x00, 0xC5}},
113        {2, 2, 1, {0x04}},
114    },
115};
116
117static struct mimimi_layer mimimi_haruka_flash_sweater_sleeve_value =
118{
119    0, -2, 0, 4, 32, 8,
120    {
121        {4, 4, 1, {0xFD}},
122        {4, 4, 1, {0xFD}},
123        {4, 4, 1, {0xFD}},
124        {4, 4, 1, {0xFD}},
125        {4, 4, 1, {0xFD}},
126        {4, 4, 1, {0xFD}},
127        {4, 4, 1, {0xFD}},
128        {4, 4, 1, {0xFD}},
129    },
130};
131
132/* todo */
133static struct mimimi_model mimimi_haruka_flash_value =
134{
135    22,
136    {
137        /* 0 */ {0, &mimimi_torso_value},
138        /* 1 */ {0, &mimimi_head_origin},
139        /* 2 */ {0, &mimimi_upper_left_arm_value},
140        /* 3 */ {0, &mimimi_upper_right_arm_value},
141        /* 4 */ {0, &mimimi_upper_left_leg_value},
142        /* 5 */ {0, &mimimi_upper_right_leg_value},
143        /* 6 */ {2, &mimimi_lower_left_arm_value},
144        /* 7 */ {3, &mimimi_lower_right_arm_value},
145        /* 8 */ {4, &mimimi_lower_left_leg_value},
146        /* 9 */ {5, &mimimi_lower_right_leg_value},
147
148        /* 10 */ {1, &mimimi_head_value},
149
150        /* 11 */ {0, &mimimi_haruka_flash_sweater_value},
151        /* 12 */ {0, &mimimi_haruka_flash_skirt_value},
152        /* 13 */ {10, &mimimi_haruka_face_value},
153        /* 14 */ {10, &mimimi_haruka_hair_value},
154        /* 15 */ {10, &mimimi_haruka_hair_lace_value},
155        /* 16 */ {2, &mimimi_haruka_flash_sweater_sleeve_value},
156        /* 17 */ {3, &mimimi_haruka_flash_sweater_sleeve_value},
157        /* 18 */ {4, &mimimi_haruka_flash_stocking_value},
158        /* 19 */ {4, &mimimi_haruka_flash_left_sandal_value},
159        /* 20 */ {5, &mimimi_haruka_flash_stocking_value},
160        /* 21 */ {5, &mimimi_haruka_flash_right_sandal_value},
161    },
162};
163
164struct mimimi_model *mimimi_haruka_flash = &mimimi_haruka_flash_value;