]> git.lizzy.rs Git - nothing.git/blob - src/game/level/goals.h
(#639) Introduce rigid_bodies_collide_with_itself
[nothing.git] / src / game / level / goals.h
1 #ifndef GOALS_H_
2 #define GOALS_H_
3
4 #include <SDL2/SDL.h>
5
6 #include "game/camera.h"
7 #include "game/level/player.h"
8 #include "game/sound_samples.h"
9 #include "ebisp/expr.h"
10
11 typedef struct Goals Goals;
12 typedef struct LineStream LineStream;
13
14 Goals *create_goals_from_line_stream(LineStream *line_stream);
15 void destroy_goals(Goals *goals);
16
17 Rect goals_hitbox(const Goals *goals);
18
19 int goals_render(const Goals *goals,
20                  Camera *camera);
21 int goals_sound(Goals *goals,
22                 Sound_samples *sound_samples);
23 void goals_update(Goals *goals,
24                   float delta_time);
25 void goals_hide_from_player(Goals *goals,
26                             Rect player_hitbox);
27 void goals_checkpoint(const Goals *goals,
28                       Player *player);
29 void goals_cue(Goals *goals,
30                const Camera *camera);
31
32 struct EvalResult goals_send(Goals *goals, Gc *gc, struct Scope *scope, struct Expr path);
33
34 #endif  // GOALS_H_