]> git.lizzy.rs Git - nothing.git/blob - src/game/level/solid.c
Stub solid_apply_force for rigid_rect
[nothing.git] / src / game / level / solid.c
1 #include "boxes.h"
2 #include "platforms.h"
3 #include "player.h"
4 #include "player/rigid_rect.h"
5 #include "solid.h"
6
7 void solid_touches_rect_sides(solid_ref_t solid,
8                               rect_t object,
9                               int sides[RECT_SIDE_N])
10 {
11     switch (solid.tag) {
12     case SOLID_PLATFORMS:
13         platforms_touches_rect_sides((platforms_t *) solid.ptr, object, sides);
14         break;
15
16     case SOLID_BOXES:
17         boxes_touches_rect_sides((boxes_t *) solid.ptr, object, sides);
18         break;
19
20     case SOLID_RIGID_RECT:
21         rigid_rect_touches_rect_sides((rigid_rect_t *) solid.ptr, object, sides);
22         break;
23
24     case SOLID_PLAYER:
25         player_touches_rect_sides((player_t *) solid.ptr, object, sides);
26         break;
27     }
28 }
29
30 void solid_apply_force(solid_ref_t solid,
31                        vec_t force)
32 {
33     switch (solid.tag) {
34     case SOLID_PLATFORMS:
35         platforms_apply_force((platforms_t *)solid.ptr, force);
36         break;
37
38     case SOLID_RIGID_RECT:
39         rigid_rect_apply_force((rigid_rect_t *) solid.ptr, force);
40         break;
41
42     default: {}
43     }
44 }