Mirai's Miscellaneous Misadventures

M47 / 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[0x400000];
54	struct mimimi_image custom_background;
55	unsigned char colors[0x40000];
56	struct mimimi_background foreground;
57	struct mimimi_image foreground_image;
58	int progression;
59	struct mimimi_toast_dialogue dialogue;
60	struct mimimi_offset offset;
61	
62	struct mimimi_momentum momentum;
63	struct mimimi_platform platforms[24];
64	unsigned char platform_colors[1024];
65	struct mimimi_image platform_image;
66};
67
68void mimimi_chapter_I_tick(void *chapter, unsigned char left, unsigned char right);
69void mimimi_chapter_I(void *chapter, struct mimimi_engine *engine);
70
71struct mimimi_loader_data
72{
73	struct mimimi_engine *engine;
74	int previous_direction;
75	int x;
76	unsigned char colors[0x100000];
77	struct mimimi_image images[0x10];
78	void *textures[0x10];
79	void *background;
80	struct mimimi_image background_image;
81};
82
83union mimimi_loader_chapter
84{
85	struct mimimi_loader_data data;
86	struct mimimi_test test;
87	struct mimimi_chapter_I chapter_I;
88};
89
90struct mimimi_loader
91{
92	union mimimi_loader_chapter chapter;
93	int index;
94	unsigned char started;
95};
96
97void mimimi_loader_tick(void *chapter, unsigned char left, unsigned char right);
98void mimimi_loader(void *chapter, struct mimimi_engine *engine);
99
100#endif