Mirai's Miscellaneous Misadventures

M45-patches / models / haruka.c

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