From 90dc3e1792dfd1876283c059f0575efd7f5af4d2 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 24 Nov 2023 21:15:05 +0100 Subject: [PATCH] feat(physics): rigidbodies can now be marked static --- core/src/rigidbody.c | 9 +++++++++ core/src/rigidbody.h | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/src/rigidbody.c b/core/src/rigidbody.c index 1749f22..06d2383 100644 --- a/core/src/rigidbody.c +++ b/core/src/rigidbody.c @@ -20,6 +20,7 @@ struct RigidBody { PhysicsMask collision_mask; int overlap; + int is_static; List contacts; }; @@ -159,6 +160,14 @@ void rigidbody_set_overlap(RigidBody* self, int value) { self->overlap = 1; } +int rigidbody_is_static(RigidBody* self) { + return self->is_static; +} + +void rigidbody_set_static(RigidBody* self, int value) { + self->is_static = value != 0; +} + Vector rigidbody_get_velocity(const RigidBody* self) { return self->linear_velocity; } diff --git a/core/src/rigidbody.h b/core/src/rigidbody.h index c954c3c..d8f5a4e 100644 --- a/core/src/rigidbody.h +++ b/core/src/rigidbody.h @@ -7,8 +7,6 @@ #include "collision.h" #include "stdint.h" -typedef uint32_t PhysicsMask; - struct Collision; typedef struct { struct Collision hit; @@ -48,6 +46,9 @@ extern void rigidbody_set_collision_mask(RigidBody* self, PhysicsMask mask); extern int rigidbody_get_overlap(RigidBody* self); extern void rigidbody_set_overlap(RigidBody* self, int value); +extern int rigidbody_is_static(RigidBody* self); +extern void rigidbody_set_static(RigidBody* self, int value); + extern Vector rigidbody_get_velocity(const RigidBody* self); extern void rigidbody_set_velocity(RigidBody* self, Vector velocity);