cleanup in physics entity and physics world

This commit is contained in:
Sara 2023-10-25 11:23:52 +02:00
parent 3263c87cca
commit 1e2d9a7067
2 changed files with 12 additions and 8 deletions

View file

@ -93,7 +93,6 @@ void physics_entity_update(PhysicsEntity self) {
rigidbody_collect_contacts(body);
List* contacts = rigidbody_get_contacts(body);
if(contacts->len > 0) {
physics_entity_apply_collision_forces(self, contacts);

View file

@ -74,7 +74,7 @@ void physics_world_remove_entity(PhysicsEntity entity) {
ASSERT_RETURN(0,, "Physics entity with data at %p is not registered in physics world", entity.data);
}
static
static inline
void _internal_physics_world_resize_maps(size_t minimum) {
if(minimum < _world_maps_cap) {
return;
@ -99,7 +99,7 @@ void physics_world_add_map(Tilemap* map) {
++_world_maps_len;
}
static
static inline
void _internal_physics_world_remove_map(Tilemap** at) {
Tilemap** from = at + 1;
memmove(at, from, (at - _world_maps + _world_bodies_len) * sizeof(Tilemap*));
@ -118,7 +118,7 @@ void physics_world_remove_map(Tilemap* map) {
ASSERT_RETURN(0,, "Physics tilemap with data at %p is not registered in physics world and cannot be removed.", map);
}
static
static inline
void _internal_physics_narrow_collision() {
PhysicsEntity* end = _world_bodies + _world_bodies_len;
PhysicsEntity* half_end = _world_bodies + _world_bodies_len/2;
@ -136,7 +136,7 @@ void _internal_physics_narrow_collision() {
}
}
static
static inline
void _internal_tilemap_entity_collision_check(Tilemap* map, PhysicsEntity entity) {
Collision collision_a;
Collision collision_b;
@ -154,7 +154,7 @@ void _internal_tilemap_entity_collision_check(Tilemap* map, PhysicsEntity entity
}
}
static
static inline
void _internal_physics_tilemap_collision() {
PhysicsEntity* bodies_end = _world_bodies + _world_bodies_len;
Tilemap** maps_end = _world_maps + _world_maps_len;
@ -165,7 +165,7 @@ void _internal_physics_tilemap_collision() {
}
}
static
static inline
void _internal_physics_apply() {
PhysicsEntity* end = _world_bodies + _world_bodies_len;
@ -174,10 +174,15 @@ void _internal_physics_apply() {
}
}
void physics_world_tick() {
static inline
void _internal_physics_integrate_forces() {
PhysicsEntity* end = _world_bodies + _world_bodies_len;
for(PhysicsEntity* entity = _world_bodies; entity < end; ++entity)
rigidbody_integrate_forces(entity->tc->get_rigidbody(entity->data));
}
void physics_world_tick() {
_internal_physics_integrate_forces();
_internal_physics_narrow_collision();
_internal_physics_tilemap_collision();
_internal_physics_apply();