Mirai's Miscellaneous Misadventures

M52 / models / homura.c

1/* license: AGPLv3 or later */
2/* copyright 2024 zamfofex */
3
4#include "models.h"
5
6static struct mimimi_layer mimimi_homura_head_value =
7{
8	0, 11, 0, 12, 32, 12,
9	{
10		{6, 6, 1, {0xC6}},
11		{8, 8, 1, {0xC6}},
12		{10, 10, 1, {0xC6}},
13		{12, 12, 1, {0xC6}},
14		{12, 12, 1, {0xC6}},
15		{12, 12, 1, {0xC6}},
16		{12, 12, 1, {0xC6}},
17		{12, 12, 1, {0xC6}},
18		{12, 12, 1, {0xC6}},
19		{10, 10, 1, {0xC6}},
20		{8, 8, 1, {0xC6}},
21		{6, 6, 1, {0xC6}},
22	},
23};
24
25static struct mimimi_layer mimimi_homura_torso_value =
26{
27	0, 23, 0, 10, 32, 12,
28	{
29		{6, 4, 1, {0xC6}},
30		{8, 4, 1, {0xC6}},
31		{10, 6, 1, {0xC6}},
32		{10, 6, 1, {0xC6}},
33		{10, 6, 1, {0xC6}},
34		{10, 6, 1, {0xC6}},
35		{10, 6, 1, {0xC6}},
36		{10, 6, 1, {0xC6}},
37		{10, 6, 1, {0xC6}},
38		{10, 6, 1, {0xC6}},
39		{10, 6, 1, {0xC6}},
40		{10, 6, 1, {0xC6}},
41		{10, 6, 1, {0xC6}},
42		{8, 4, 1, {0xC6}},
43		{6, 4, 1, {0xC6}},
44	},
45};
46
47static struct mimimi_layer mimimi_homura_left_arm_value =
48{
49	0, -1, -5, 4, 128, 12,
50	{
51		{2, 2, 1, {0xC6}},
52		{4, 4, 1, {0xC6}},
53		{4, 4, 1, {0xC6}},
54		{4, 4, 1, {0xC6}},
55		{4, 4, 1, {0xC6}},
56		{4, 4, 1, {0xC6}},
57		{4, 4, 1, {0xC6}},
58		{4, 4, 1, {0xC6}},
59		{4, 4, 1, {0xC6}},
60		{4, 4, 1, {0xC6}},
61		{4, 4, 1, {0xC6}},
62		{2, 2, 1, {0xC6}},
63	},
64};
65
66static struct mimimi_layer mimimi_homura_right_arm_value =
67{
68	0, -1, 5, 4, 128, 12,
69	{
70		{2, 2, 1, {0xC6}},
71		{4, 4, 1, {0xC6}},
72		{4, 4, 1, {0xC6}},
73		{4, 4, 1, {0xC6}},
74		{4, 4, 1, {0xC6}},
75		{4, 4, 1, {0xC6}},
76		{4, 4, 1, {0xC6}},
77		{4, 4, 1, {0xC6}},
78		{4, 4, 1, {0xC6}},
79		{4, 4, 1, {0xC6}},
80		{4, 4, 1, {0xC6}},
81		{2, 2, 1, {0xC6}},
82	},
83};
84
85static struct mimimi_layer mimimi_homura_left_leg_value =
86{
87	0, -11, -3, 4, 32, 12,
88	{
89		{2, 2, 1, {0xC6}},
90		{4, 4, 1, {0xC6}},
91		{4, 4, 1, {0xC6}},
92		{4, 4, 1, {0xC6}},
93		{4, 4, 1, {0xC6}},
94		{4, 4, 1, {0xC6}},
95		{4, 4, 1, {0xC6}},
96		{4, 4, 1, {0xC6}},
97		{4, 4, 1, {0xC6}},
98		{4, 4, 1, {0xC6}},
99		{4, 4, 1, {0xC6}},
100		{2, 2, 1, {0xC6}},
101	},
102};
103
104static struct mimimi_layer mimimi_homura_right_leg_value =
105{
106	0, -11, 3, 4, 32, 12,
107	{
108		{2, 2, 1, {0xC6}},
109		{4, 4, 1, {0xC6}},
110		{4, 4, 1, {0xC6}},
111		{4, 4, 1, {0xC6}},
112		{4, 4, 1, {0xC6}},
113		{4, 4, 1, {0xC6}},
114		{4, 4, 1, {0xC6}},
115		{4, 4, 1, {0xC6}},
116		{4, 4, 1, {0xC6}},
117		{4, 4, 1, {0xC6}},
118		{4, 4, 1, {0xC6}},
119		{2, 2, 1, {0xC6}},
120	},
121};
122
123static struct mimimi_layer mimimi_homura_face_value =
124{
125	0, -6, 0, 12, 32, 2,
126	{
127		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2B, 0x00, 0x00, 0x2B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
128		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2B, 0x00, 0x00, 0x2B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
129	},
130};
131
132static struct mimimi_layer mimimi_homura_hair_value =
133{
134	0, 1, 0, 20, 32, 13,
135	{
136		{4, 4, 1, {0x03}},
137		{8, 8, 1, {0x03}},
138		{10, 10, 1, {0x03}},
139		{12, 12, 1, {0x03}},
140		{14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
141		{14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
142		{14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
143		{14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
144		{14, 14, 28, {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}},
145		{14, 14, 28, {0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03}},
146		{14, 14, 28, {0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00}},
147		{14, 14, 28, {0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00}},
148		{14, 14, 28, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
149	},
150};
151
152static struct mimimi_layer mimimi_homura_ponytail_value =
153{
154	10, 2, 0, 12, 32, 32,
155	{
156		{4, 4, 1, {0x03}},
157		{6, 6, 1, {0x03}},
158		{8, 8, 16, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
159		{10, 10, 20, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
160		{12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
161		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
162		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
163		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
164		{12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
165		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
166		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
167		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
168		{12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
169		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
170		{12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
171		{12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
172		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
173		{12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
174		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
175		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00}},
176		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}},
177		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}},
178		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00}},
179		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00}},
180		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03}},
181		{12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
182		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
183		{12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
184		{12, 12, 24, {0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
185		{12, 12, 24, {0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
186		{12, 12, 24, {0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
187		{12, 12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}},
188	},
189};
190
191static struct mimimi_layer mimimi_homura_hair_lace_value =
192{
193	4, 5, 0, 8, 32, 5,
194	{
195		{8, 8, 16, {0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00}},
196		{8, 8, 16, {0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00}},
197		{8, 8, 16, {0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x00}},
198		{6, 6, 16, {0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x00, 0x00}},
199		{4, 4, 1, {0x0E}},
200	},
201};
202
203static struct mimimi_layer mimimi_homura_flash_shirt_value =
204{
205	0, -1, 0, 10, 32, 11,
206	{
207		{8, 4, 16, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
208		{10, 6, 20, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
209		{10, 6, 1, {0x0E}},
210		{10, 6, 20, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x03, 0x0E, 0x03, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
211		{10, 6, 20, {0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x03, 0x03, 0x0E, 0x03, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E}},
212		{10, 6, 1, {0x0E}},
213		{10, 6, 1, {0x0E}},
214		{10, 6, 1, {0x0E}},
215		{10, 6, 1, {0x0E}},
216		{10, 6, 1, {0x0E}},
217		{10, 6, 1, {0x0E}},
218	},
219};
220
221static struct mimimi_layer mimimi_homura_flash_jean_value =
222{
223	0, 0, 0, 4, 32, 9,
224	{
225		{2, 2, 1, {0x4A}},
226		{4, 4, 1, {0x4A}},
227		{4, 4, 1, {0x4A}},
228		{4, 4, 1, {0x4A}},
229		{4, 4, 1, {0x4A}},
230		{4, 4, 1, {0x4A}},
231		{4, 4, 1, {0x4A}},
232		{4, 4, 1, {0x4A}},
233		{4, 4, 1, {0x4A}},
234	},
235};
236
237static struct mimimi_layer mimimi_homura_flash_shirt_sleeve_value =
238{
239	0, 0, 0, 4, 32, 5,
240	{
241		{2, 2, 1, {0x0E}},
242		{4, 4, 1, {0x0E}},
243		{4, 4, 1, {0x0E}},
244		{4, 4, 1, {0x0E}},
245		{4, 4, 1, {0x0E}},
246	},
247};
248
249static struct mimimi_layer mimimi_homura_flash_shoe_value =
250{
251	0, -9, 0, 10, 32, 3,
252	{
253		{4, 4, 8, {0x02, 0x02, 0x02, 0x88, 0x88, 0x02, 0x02, 0x02}},
254		{4, 4, 1, {0x02}},
255		{2, 2, 6, {0x88, 0x02, 0x02, 0x02, 0x02, 0x88}},
256	},
257};
258
259/* todo */
260static struct mimimi_model mimimi_homura_flash_value =
261{
262	17,
263	{
264		{0, &mimimi_homura_torso_value},
265		{0, &mimimi_homura_head_value},
266		{0, &mimimi_homura_left_arm_value},
267		{0, &mimimi_homura_right_arm_value},
268		{0, &mimimi_homura_left_leg_value},
269		{0, &mimimi_homura_right_leg_value},
270		
271		{0, &mimimi_homura_flash_shirt_value},
272		{1, &mimimi_homura_face_value},
273		{1, &mimimi_homura_hair_value},
274		{1, &mimimi_homura_ponytail_value},
275		{1, &mimimi_homura_hair_lace_value},
276		{2, &mimimi_homura_flash_shirt_sleeve_value},
277		{3, &mimimi_homura_flash_shirt_sleeve_value},
278		{4, &mimimi_homura_flash_jean_value},
279		{4, &mimimi_homura_flash_shoe_value},
280		{5, &mimimi_homura_flash_jean_value},
281		{5, &mimimi_homura_flash_shoe_value},
282	},
283};
284
285struct mimimi_model *mimimi_homura_flash = &mimimi_homura_flash_value;