Fix early-accepting area-area match when masks don't match
This commit is contained in:
parent
91bb4952e4
commit
fa1049b46b
|
@ -34,12 +34,12 @@
|
||||||
|
|
||||||
_FORCE_INLINE_ static bool _match_object_type_query(CollisionObjectSW *p_object, uint32_t p_collision_layer, uint32_t p_type_mask) {
|
_FORCE_INLINE_ static bool _match_object_type_query(CollisionObjectSW *p_object, uint32_t p_collision_layer, uint32_t p_type_mask) {
|
||||||
|
|
||||||
if (p_object->get_type() == CollisionObjectSW::TYPE_AREA)
|
|
||||||
return p_type_mask & PhysicsDirectSpaceState::TYPE_MASK_AREA;
|
|
||||||
|
|
||||||
if ((p_object->get_collision_layer() & p_collision_layer) == 0)
|
if ((p_object->get_collision_layer() & p_collision_layer) == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (p_object->get_type() == CollisionObjectSW::TYPE_AREA)
|
||||||
|
return p_type_mask & PhysicsDirectSpaceState::TYPE_MASK_AREA;
|
||||||
|
|
||||||
BodySW *body = static_cast<BodySW *>(p_object);
|
BodySW *body = static_cast<BodySW *>(p_object);
|
||||||
|
|
||||||
return (1 << body->get_mode()) & p_type_mask;
|
return (1 << body->get_mode()) & p_type_mask;
|
||||||
|
|
Loading…
Reference in New Issue