From f199d2c33c1009cc92895f2172b831ca2be9e0e8 Mon Sep 17 00:00:00 2001 From: lawnjelly Date: Sun, 6 Mar 2022 14:03:19 +0000 Subject: [4.x] BVH - Fix area-area collision regression Minimal approach to fixing regression whereby static areas where not detect dynamic areas. --- servers/physics_3d/godot_broad_phase_3d_bvh.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'servers/physics_3d') diff --git a/servers/physics_3d/godot_broad_phase_3d_bvh.cpp b/servers/physics_3d/godot_broad_phase_3d_bvh.cpp index d947892751..ecdf74fd41 100644 --- a/servers/physics_3d/godot_broad_phase_3d_bvh.cpp +++ b/servers/physics_3d/godot_broad_phase_3d_bvh.cpp @@ -34,7 +34,7 @@ GodotBroadPhase3DBVH::ID GodotBroadPhase3DBVH::create(GodotCollisionObject3D *p_object, int p_subindex, const AABB &p_aabb, bool p_static) { uint32_t tree_id = p_static ? TREE_STATIC : TREE_DYNAMIC; - uint32_t tree_collision_mask = p_static ? 0 : (TREE_FLAG_STATIC | TREE_FLAG_DYNAMIC); + uint32_t tree_collision_mask = p_static ? TREE_FLAG_DYNAMIC : (TREE_FLAG_STATIC | TREE_FLAG_DYNAMIC); ID oid = bvh.create(p_object, true, tree_id, tree_collision_mask, p_aabb, p_subindex); // Pair everything, don't care? return oid + 1; } @@ -45,7 +45,7 @@ void GodotBroadPhase3DBVH::move(ID p_id, const AABB &p_aabb) { void GodotBroadPhase3DBVH::set_static(ID p_id, bool p_static) { uint32_t tree_id = p_static ? TREE_STATIC : TREE_DYNAMIC; - uint32_t tree_collision_mask = p_static ? 0 : (TREE_FLAG_STATIC | TREE_FLAG_DYNAMIC); + uint32_t tree_collision_mask = p_static ? TREE_FLAG_DYNAMIC : (TREE_FLAG_STATIC | TREE_FLAG_DYNAMIC); bvh.set_tree(p_id - 1, tree_id, tree_collision_mask, false); } -- cgit v1.2.3