Mirai's Miscellaneous Misadventures

M42 / include / mimimi / appearances.h

1// license: AGPLv3 or later
2// copyright 2023 zamfofex
3
4#ifndef MIMIMI_APPEARANCES_H
5#define MIMIMI_APPEARANCES_H
6
7struct mimimi_model;
8struct mimimi_allocator;
9struct mimimi_animation;
10struct mimimi_video;
11struct mimimi_engine;
12
13struct mimimi_animation_set
14{
15	int standing_animation_count;
16	struct mimimi_animation *standing;
17	struct mimimi_animation *knocked;
18	struct mimimi_animation *falling;
19	struct mimimi_animation *jumping;
20};
21
22struct mimimi_appearance
23{
24	struct mimimi_animation_set left, right;
25};
26
27struct mimimi_video_set
28{
29	int standing_video_count;
30	struct mimimi_video *standing;
31	struct mimimi_video *knocked;
32	struct mimimi_video *falling;
33	struct mimimi_video *jumping;
34};
35
36struct mimimi_video_appearance
37{
38	struct mimimi_video_set left, right;
39};
40
41void mimimi_appearance(struct mimimi_appearance *appearance, struct mimimi_model *model, int x, int y, struct mimimi_allocator *allocator);
42
43void mimimi_video_appearance(struct mimimi_video_appearance *video_appearance, struct mimimi_appearance *appearance, struct mimimi_engine *engine, struct mimimi_allocator *allocator);
44void mimimi_invalidate_video_appearance(struct mimimi_video_appearance *appearance, struct mimimi_engine *engine);
45void mimimi_deallocate_video_appearance(struct mimimi_video_appearance *appearance, struct mimimi_allocator *allocator);
46void mimimi_finish_video_appearance(struct mimimi_video_appearance *appearance, struct mimimi_engine *engine, struct mimimi_allocator *allocator);
47
48#endif