]> git.lizzy.rs Git - nothing.git/blobdiff - src/game/level/rigid_bodies.h
Merge pull request #1209 from isidentical/console-shortcuts
[nothing.git] / src / game / level / rigid_bodies.h
index 67bb2024c8a548302f0f882841316e4632f42ae2..8d18bea8c1a1e823ccc69b8c050510288e5e80d4 100644 (file)
@@ -1,36 +1,48 @@
 #ifndef RIGID_BODIES_H_
 #define RIGID_BODIES_H_
 
+#include "math/mat3x3.h"
+
 typedef struct RigidBodies RigidBodies;
-typedef struct Camera Camera;
+typedef struct Platforms Platforms;
 
 typedef size_t RigidBodyId;
 
 RigidBodies *create_rigid_bodies(size_t capacity);
 void destroy_rigid_bodies(RigidBodies *rigid_bodies);
 
+int rigid_bodies_collide(RigidBodies *rigid_bodies,
+                         const Platforms *platforms);
+
 int rigid_bodies_update(RigidBodies *rigid_bodies,
+                        RigidBodyId id,
                         float delta_time);
 
 int rigid_bodies_render(RigidBodies *rigid_bodies,
-                        Camera *camera);
+                        RigidBodyId id,
+                        Color color,
+                        const Camera *camera);
 RigidBodyId rigid_bodies_add(RigidBodies *rigid_bodies,
-                             Rect rect,
-                             Color color);
+                             Rect rect);
+void rigid_bodies_remove(RigidBodies *rigid_bodies,
+                         RigidBodyId id);
 
 Rect rigid_bodies_hitbox(const RigidBodies *rigid_bodies,
                          RigidBodyId id);
 
 void rigid_bodies_move(RigidBodies *rigid_bodies,
                        RigidBodyId id,
-                       Vec movement);
+                       Vec2f movement);
 
 int rigid_bodies_touches_ground(const RigidBodies *rigid_bodies,
                                 RigidBodyId id);
 
 void rigid_bodies_apply_force(RigidBodies * rigid_bodies,
                               RigidBodyId id,
-                              Vec force);
+                              Vec2f force);
+
+void rigid_bodies_apply_omniforce(RigidBodies *rigid_bodies,
+                                  Vec2f force);
 
 void rigid_bodies_transform_velocity(RigidBodies *rigid_bodies,
                                      RigidBodyId id,
@@ -38,11 +50,14 @@ void rigid_bodies_transform_velocity(RigidBodies *rigid_bodies,
 
 void rigid_bodies_teleport_to(RigidBodies *rigid_bodies,
                               RigidBodyId id,
-                              Vec position);
+                              Vec2f position);
 
 void rigid_bodies_damper(RigidBodies *rigid_bodies,
                          RigidBodyId id,
-                         Vec v);
+                         Vec2f v);
 
+void rigid_bodies_disable(RigidBodies *rigid_bodies,
+                          RigidBodyId id,
+                          bool disabled);
 
 #endif  // RIGID_BODIES_H_