cleanup in physics entity and physics world
This commit is contained in:
parent
3263c87cca
commit
1e2d9a7067
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue