]> git.lizzy.rs Git - nothing.git/blob - src/game/level/goals.h
(#815) Integrate Point Layer with Level and LevelEditor
[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 typedef struct PointLayer PointLayer;
14
15 Goals *create_goals_from_line_stream(LineStream *line_stream);
16 Goals *create_goals_from_point_layer(PointLayer *point_layer);
17 void destroy_goals(Goals *goals);
18
19 Rect goals_hitbox(const Goals *goals);
20
21 int goals_render(const Goals *goals,
22                  Camera *camera);
23 int goals_sound(Goals *goals,
24                 Sound_samples *sound_samples);
25 void goals_update(Goals *goals,
26                   float delta_time);
27 void goals_hide_from_player(Goals *goals,
28                             Rect player_hitbox);
29 void goals_checkpoint(const Goals *goals,
30                       Player *player);
31 void goals_cue(Goals *goals,
32                const Camera *camera);
33
34 struct EvalResult goals_send(Goals *goals, Gc *gc, struct Scope *scope, struct Expr path);
35
36 #endif  // GOALS_H_