Mirai's Miscellaneous Misadventures

M17 / models / mirai.c

1// copyright 2022 zamfofex
2// license: AGPLv3 or later
3
4static struct mimimi_rotating_image mimimi_mirai_face_value =
5{
6	2, 5, 0,
7	{
8		{12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3B, 0x3B, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
9		{12, 24, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3B, 0x83, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
10	},
11};
12
13static struct mimimi_rotating_image mimimi_mirai_hair_value =
14{
15	28, 12, 0,
16	{
17		{4, 1, {0x11}},
18		{8, 1, {0x11}},
19		{10, 1, {0x11}},
20		{12, 1, {0x11}},
21		{14, 28, {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}},
22		{14, 28, {0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, 0x11, 0x11, 0x11, 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10}},
23		{14, 28, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}},
24		{14, 28, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}},
25		{14, 28, {0x10, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10}},
26		{14, 28, {0x10, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10}},
27		{14, 28, {0x10, 0x11, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10}},
28		{14, 28, {0x10, 0x11, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x10, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10}},
29		{14, 28, {0x10, 0x11, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10}},
30		{16, 32, {0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10}},
31		{16, 32, {0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}},
32		{16, 32, {0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10}},
33		{16, 32, {0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10}},
34		{16, 32, {0x10, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10}},
35		{16, 32, {0x10, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10}},
36		{16, 32, {0x10, 0x10, 0x11, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10}},
37		{16, 32, {0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10}},
38		{16, 32, {0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10}},
39		{18, 36, {0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}},
40		{18, 36, {0x10, 0x10, 0x10, 0x11, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}},
41		{18, 36, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}},
42		{20, 40, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00}},
43		{20, 40, {0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00}},
44		{20, 40, {0x00, 0x10, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x10, 0x00}},
45	},
46};
47
48static struct mimimi_rotating_image mimimi_mirai_yang_dress_value =
49{
50	22, 10, 0,
51	{
52		{8, 1, {0x3B}},
53		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0xE7, 0xE7, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
54		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
55		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0xE7, 0xE7, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
56		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
57		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0xE7, 0xE7, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
58		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
59		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0xE7, 0xE7, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
60		{10, 20, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x91, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
61		{10, 20, {0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0xE7, 0xE7, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91}},
62		{10, 1, {0xE7}},
63		{12, 1, {0xE7}},
64		{14, 36, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0xE7}},
65		{16, 38, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0xE7, 0xE7, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
66		{18, 38, {0x42, 0x42, 0x42, 0x42, 0x42, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x3B, 0x3B, 0x42, 0x42, 0x42, 0x42, 0x42}},
67		{18, 38, {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3B, 0x3B, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3B, 0x3B, 0xE7, 0xE7, 0xE7, 0xE7, 0x3B, 0x3B, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3B, 0x3B, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42}},
68		{20, 42, {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x3B, 0x3B, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3B, 0x3B, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42}},
69		{20, 42, {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xE7, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42}},
70		{20, 42, {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xE7, 0xE7, 0xE7, 0xE7, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0xE7, 0xE7, 0xE7, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42}},
71		{22, 42, {0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x3B, 0xE7, 0xE7, 0xE7, 0x3B, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x3B, 0xE7, 0xE7, 0xE7, 0x3B, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x42, 0x42, 0x42, 0x42}},
72		{22, 1, {0xE7}},
73		{22, 1, {0x42}},
74	},
75};
76
77static struct mimimi_rotating_image mimimi_mirai_yang_left_sleeve_value =
78{
79	9, 2, 0,
80	{
81		{2, 6, {0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
82		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
83		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
84		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
85		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
86		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
87		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
88		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
89		{4, 8, {0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0xE7, 0x3B, 0x3B}},
90	},
91};
92
93static struct mimimi_rotating_image mimimi_mirai_yang_right_sleeve_value =
94{
95	9, 2, 0,
96	{
97		{2, 6, {0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B}},
98		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
99		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
100		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
101		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
102		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
103		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
104		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
105		{4, 8, {0x3B, 0x3B, 0xE7, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B}},
106	},
107};
108
109struct mimimi_rotating_image *mimimi_mirai_yang_right_sleeve = &mimimi_mirai_yang_right_sleeve_value;
110struct mimimi_rotating_image *mimimi_mirai_face = &mimimi_mirai_face_value;
111struct mimimi_rotating_image *mimimi_mirai_hair = &mimimi_mirai_hair_value;
112struct mimimi_rotating_image *mimimi_mirai_yang_dress = &mimimi_mirai_yang_dress_value;
113struct mimimi_rotating_image *mimimi_mirai_yang_left_sleeve = &mimimi_mirai_yang_left_sleeve_value;
114
115static struct mimimi_model_layer mimimi_mirai_yang_head = {3, {&mimimi_head_value, &mimimi_mirai_face_value, &mimimi_mirai_hair_value}};
116static struct mimimi_model_layer mimimi_mirai_yang_torso = {2, {&mimimi_torso_value, &mimimi_mirai_yang_dress_value}};
117static struct mimimi_model_layer mimimi_mirai_yang_left_arm = {2, {&mimimi_arm_value, &mimimi_mirai_yang_left_sleeve_value}};
118static struct mimimi_model_layer mimimi_mirai_yang_right_arm = {2, {&mimimi_arm_value, &mimimi_mirai_yang_right_sleeve_value}};
119static struct mimimi_model_layer mimimi_mirai_yang_left_leg = {0};
120static struct mimimi_model_layer mimimi_mirai_yang_right_leg = {0};
121
122static struct mimimi_model mimimi_mirai_yang_value = {&mimimi_mirai_yang_head, &mimimi_mirai_yang_torso, &mimimi_mirai_yang_left_arm, &mimimi_mirai_yang_right_arm, &mimimi_mirai_yang_left_leg, &mimimi_mirai_yang_right_leg};
123
124struct mimimi_model *mimimi_mirai_yang = &mimimi_mirai_yang_value;