diff --git a/game/src/Hurtbox.c b/game/src/Hurtbox.c index 2b41f17..69f3c21 100644 --- a/game/src/Hurtbox.c +++ b/game/src/Hurtbox.c @@ -18,7 +18,7 @@ void Internal_HurtboxDealDamage(const Hurtbox* self, List* colliders, float min_ } } -int HurtboxCast(Hurtbox* self, float facing_dir) { +int HurtboxCast(Hurtbox* self, float facing_dir, List *out) { const IPhysicsEntity* physics_entity = mirror_get_typeclass(self->owner.data, self->owner.mirror, "PhysicsEntity"); const ITransformable* transformable = mirror_get_typeclass(self->owner.data, self->owner.mirror, "Transformable"); @@ -32,5 +32,9 @@ int HurtboxCast(Hurtbox* self, float facing_dir) { const Vector offset = vaddf(transform->position, MakeVector(facing_dir * self->offset.x, self->offset.y)); List found = physics_world_box_query_all(offset, self->size, PHYSICS_LAYER_COMBAT, body); Internal_HurtboxDealDamage(self, &found, transform->position.y - self->depth_extent, transform->position.y + self->depth_extent); + if(out == NULL) + list_empty(&found); + else + *out = found; return found.len; } diff --git a/game/src/Hurtbox.h b/game/src/Hurtbox.h index c3cd3a2..f565bf9 100644 --- a/game/src/Hurtbox.h +++ b/game/src/Hurtbox.h @@ -13,6 +13,6 @@ typedef struct Hurtbox { float depth_extent; } Hurtbox; -int HurtboxCast(Hurtbox* self, float facing_dir); +extern int HurtboxCast(Hurtbox* self, float facing_dir, List *out); #endif // !FIGHT_HURTBOX_H diff --git a/game/src/PlayerStates.c b/game/src/PlayerStates.c index eebe054..259090f 100644 --- a/game/src/PlayerStates.c +++ b/game/src/PlayerStates.c @@ -82,7 +82,7 @@ void PlayerHurtbox(Player* self, DamageEventData damage, Vector hitbox_size, Vec .offset = vaddf(offset, MakeVector(0.f, self->height)), .depth_extent = 0.15f, }; - HurtboxCast(&box, self->facing); + HurtboxCast(&box, self->facing, NULL); } void PlayerJabA_Enter(Player* self) {