Mirai's Miscellaneous Misadventures

M52 / 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;