]> git.lizzy.rs Git - nothing.git/blob - src/game/level/rigid_bodies.c
(#628) add basic object functionality to RigidBodies
[nothing.git] / src / game / level / rigid_bodies.c
1 #include <stdlib.h>
2
3 #include "system/lt.h"
4 #include "system/nth_alloc.h"
5 #include "system/stacktrace.h"
6 #include "game/camera.h"
7
8 #include "./rigid_bodies.h"
9
10 struct RigidBodies
11 {
12     Lt *lt;
13 };
14
15 RigidBodies *create_rigid_bodies(void)
16 {
17     Lt *lt = create_lt();
18     if (lt == NULL) {
19         return NULL;
20     }
21
22     RigidBodies *rigid_bodies = PUSH_LT(
23         lt,
24         nth_alloc(sizeof(RigidBodies)),
25         free);
26     if (rigid_bodies == NULL) {
27         RETURN_LT(lt, NULL);
28     }
29     rigid_bodies->lt = lt;
30
31     return rigid_bodies;
32 }
33
34 void destroy_rigid_bodies(RigidBodies *rigid_bodies)
35 {
36     trace_assert(rigid_bodies);
37     RETURN_LT0(rigid_bodies->lt);
38 }
39
40 int rigid_bodies_update(RigidBodies *rigid_bodies,
41                         float delta_time)
42 {
43     trace_assert(rigid_bodies);
44     (void) delta_time;
45     return 0;
46 }
47
48 int rigid_bodies_render(RigidBodies *rigid_bodies,
49                         Camera *camera)
50 {
51     trace_assert(rigid_bodies);
52     trace_assert(camera);
53     return 0;
54 }
55
56 int rigid_bodies_add(RigidBodies *rigid_bodies,
57                      Rect rect,
58                      Color color,
59                      unsigned int *id)
60 {
61     trace_assert(rigid_bodies);
62     trace_assert(id);
63     (void) rect;
64     (void) color;
65     return 0;
66 }
67
68 int rigid_bodies_remove(RigidBodies *rigid_bodies,
69                         unsigned int id)
70 {
71     trace_assert(rigid_bodies);
72     (void) id;
73     return 0;
74 }