X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame%2Flevel%2Frigid_bodies.h;h=8d18bea8c1a1e823ccc69b8c050510288e5e80d4;hb=bd1d655923bd83f3b35aa743f51888d6716a84fb;hp=67bb2024c8a548302f0f882841316e4632f42ae2;hpb=8565696b0a99ffd010f2641814d1b36e89f7d846;p=nothing.git diff --git a/src/game/level/rigid_bodies.h b/src/game/level/rigid_bodies.h index 67bb2024..8d18bea8 100644 --- a/src/game/level/rigid_bodies.h +++ b/src/game/level/rigid_bodies.h @@ -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_