]> git.lizzy.rs Git - nothing.git/blob - src/game/level/boxes.h
4c7d44aec8c250e24bee4a096756f2463567ec73
[nothing.git] / src / game / level / boxes.h
1 #ifndef BOXES_H_
2 #define BOXES_H_
3
4 #include "game/camera.h"
5 #include "game/level/platforms.h"
6 #include "lava.h"
7
8 typedef struct boxes_t boxes_t;
9 typedef struct player_t player_t;
10
11 boxes_t *create_boxes_from_stream(FILE *stream);
12 void destroy_boxes(boxes_t *boxes);
13
14 solid_ref_t boxes_as_solid(boxes_t *boxes);
15
16 int boxes_render(boxes_t *boxes, camera_t *camera);
17 int boxes_update(boxes_t *boxes, float delta_time);
18 void boxes_touches_rect_sides(const boxes_t *boxes,
19                               rect_t object,
20                               int sides[RECT_SIDE_N]);
21
22 void boxes_collide_with_solid(boxes_t *boxes,
23                               solid_ref_t solid);
24 void boxes_collide_with_lava(boxes_t *boxes,
25                              lava_t *lava);
26
27 /** \brief Implements solid_apply_force */
28 void boxes_apply_force(boxes_t *boxes,
29                        vec_t force);
30
31 #endif  // BOXES_H_