From c1e09fb4506e3e9a0dafafda14222002335a2e65 Mon Sep 17 00:00:00 2001 From: Ulysse Cura Date: Sat, 8 Aug 2026 20:19:01 +0200 Subject: [PATCH] Fixed self hitbox deactivation. --- src/components/hitbox_component.c | 3 ++- src/components/physics_system.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/hitbox_component.c b/src/components/hitbox_component.c index a3206ef..1edc321 100644 --- a/src/components/hitbox_component.c +++ b/src/components/hitbox_component.c @@ -53,7 +53,8 @@ int hitbox_component_draw(const component_t *component) { const hitbox_component_data_t *component_data = component->data; - if(display_draw_frect(&component_data->bounds, C_RED, 128)) return EXIT_FAILURE; + if(component_data->activated) + if(display_draw_frect(&component_data->bounds, C_RED, 128)) return EXIT_FAILURE; return EXIT_SUCCESS; } diff --git a/src/components/physics_system.c b/src/components/physics_system.c index 701cf40..2a6e50e 100644 --- a/src/components/physics_system.c +++ b/src/components/physics_system.c @@ -111,11 +111,13 @@ int physics_system_update(component_t *component) { physics_system_data_t *system_data = component->data; transform_component_data_t *transform_component_data = system_data->transform_component_data; + hitbox_component_data_t *hitbox_component_data = system_data->hitbox_component_data; system_data->velocity.x = lerp(system_data->velocity.x, system_data->target_velocity.x, system_data->smoothing_factor); system_data->velocity.y = lerp(system_data->velocity.y, system_data->target_velocity.y, system_data->smoothing_factor); - linked_list_for_each(&game.entity_manager.entities, action_detect_solve_entities_collision, system_data, component->entity->id); + if(hitbox_component_data->activated) + linked_list_for_each(&game.entity_manager.entities, action_detect_solve_entities_collision, system_data, component->entity->id); transform_component_data->bounds.x += system_data->velocity.x * system_data->speed * (float)game.delta_time_ms / 1000.0f; transform_component_data->bounds.y += system_data->velocity.y * system_data->speed * (float)game.delta_time_ms / 1000.0f;