Mirai's Miscellaneous Misadventures

M43 / include / mimimi-chapters.h

1/* license: AGPLv3 or later */
2/* copyright 2023 zamfofex */
3
4#ifndef MIMIMI_CHAPTERS_H
5#define MIMIMI_CHAPTERS_H
6
7#include <mimimi.h>
8
9struct mimimi_test_video_set
10{
11	struct mimimi_video videos[0x40];
12	void *textures[0x100];
13	struct mimimi_image images[0x100];
14	unsigned char colors[0x100000];
15};
16
17struct mimimi_test_sprite
18{
19	struct mimimi_sprite sprite;
20	struct mimimi_model *model;
21	struct mimimi_appearance appearance;
22	struct mimimi_test_video_set left, right;
23	struct mimimi_display display;
24};
25
26struct mimimi_test
27{
28	struct mimimi_engine *engine;
29	struct mimimi_test_sprite mango;
30	struct mimimi_test_sprite pepper;
31	struct mimimi_history history;
32	struct mimimi_position camera;
33	struct mimimi_background background;
34	struct mimimi_image background_image;
35	unsigned char background_colors[0x200000];
36	struct mimimi_collision collision;
37	struct mimimi_position *collision_positions[2];
38};
39
40void mimimi_test_tick(void *chapter, unsigned char left, unsigned char right);
41void mimimi_test(void *chapter, struct mimimi_engine *engine);
42
43struct mimimi_chapter_I
44{
45	struct mimimi_engine *engine;
46	struct mimimi_test_sprite player;
47	struct mimimi_history history;
48	struct mimimi_position origin;
49	struct mimimi_position camera;
50	struct mimimi_clamped_camera clamped_camera;
51	struct mimimi_background background;
52	struct mimimi_image background_image;
53	unsigned char background_colors[0x30000];
54	int progression;
55	struct mimimi_toast_dialogue dialogue;
56};
57
58void mimimi_chapter_I_tick(void *chapter, unsigned char left, unsigned char right);
59void mimimi_chapter_I(void *chapter, struct mimimi_engine *engine);
60
61struct mimimi_loader_data
62{
63	struct mimimi_engine *engine;
64	int previous_direction;
65	int x;
66	unsigned char colors[0x100000];
67	struct mimimi_image images[0x10];
68	void *textures[0x10];
69	void *background;
70};
71
72union mimimi_loader_chapter
73{
74	struct mimimi_loader_data data;
75	struct mimimi_test test;
76	struct mimimi_chapter_I chapter_I;
77};
78
79struct mimimi_loader
80{
81	union mimimi_loader_chapter chapter;
82	int index;
83	unsigned char started;
84};
85
86void mimimi_loader_tick(void *chapter, unsigned char left, unsigned char right);
87void mimimi_loader(void *chapter, struct mimimi_engine *engine);
88
89#endif