Browse Source

Fix missing clear for some `set_exclude*` query parameter methods

(cherry picked from commit 95eafcba4ca34e704fcc8bf5b4e5d7daf0664917)
A Thousand Ships 1 year ago
parent
commit
b0c59de143
2 changed files with 4 additions and 0 deletions
  1. 2 0
      servers/physics_server_2d.cpp
  2. 2 0
      servers/physics_server_3d.cpp

+ 2 - 0
servers/physics_server_2d.cpp

@@ -476,6 +476,7 @@ TypedArray<RID> PhysicsTestMotionParameters2D::get_exclude_bodies() const {
 }
 }
 
 
 void PhysicsTestMotionParameters2D::set_exclude_bodies(const TypedArray<RID> &p_exclude) {
 void PhysicsTestMotionParameters2D::set_exclude_bodies(const TypedArray<RID> &p_exclude) {
+	parameters.exclude_bodies.clear();
 	for (int i = 0; i < p_exclude.size(); i++) {
 	for (int i = 0; i < p_exclude.size(); i++) {
 		parameters.exclude_bodies.insert(p_exclude[i]);
 		parameters.exclude_bodies.insert(p_exclude[i]);
 	}
 	}
@@ -494,6 +495,7 @@ TypedArray<uint64_t> PhysicsTestMotionParameters2D::get_exclude_objects() const
 }
 }
 
 
 void PhysicsTestMotionParameters2D::set_exclude_objects(const TypedArray<uint64_t> &p_exclude) {
 void PhysicsTestMotionParameters2D::set_exclude_objects(const TypedArray<uint64_t> &p_exclude) {
+	parameters.exclude_objects.clear();
 	for (int i = 0; i < p_exclude.size(); ++i) {
 	for (int i = 0; i < p_exclude.size(); ++i) {
 		ObjectID object_id = p_exclude[i];
 		ObjectID object_id = p_exclude[i];
 		ERR_CONTINUE(object_id.is_null());
 		ERR_CONTINUE(object_id.is_null());

+ 2 - 0
servers/physics_server_3d.cpp

@@ -496,6 +496,7 @@ TypedArray<RID> PhysicsTestMotionParameters3D::get_exclude_bodies() const {
 }
 }
 
 
 void PhysicsTestMotionParameters3D::set_exclude_bodies(const TypedArray<RID> &p_exclude) {
 void PhysicsTestMotionParameters3D::set_exclude_bodies(const TypedArray<RID> &p_exclude) {
+	parameters.exclude_bodies.clear();
 	for (int i = 0; i < p_exclude.size(); i++) {
 	for (int i = 0; i < p_exclude.size(); i++) {
 		parameters.exclude_bodies.insert(p_exclude[i]);
 		parameters.exclude_bodies.insert(p_exclude[i]);
 	}
 	}
@@ -514,6 +515,7 @@ TypedArray<uint64_t> PhysicsTestMotionParameters3D::get_exclude_objects() const
 }
 }
 
 
 void PhysicsTestMotionParameters3D::set_exclude_objects(const TypedArray<uint64_t> &p_exclude) {
 void PhysicsTestMotionParameters3D::set_exclude_objects(const TypedArray<uint64_t> &p_exclude) {
+	parameters.exclude_objects.clear();
 	for (int i = 0; i < p_exclude.size(); ++i) {
 	for (int i = 0; i < p_exclude.size(); ++i) {
 		ObjectID object_id = p_exclude[i];
 		ObjectID object_id = p_exclude[i];
 		ERR_CONTINUE(object_id.is_null());
 		ERR_CONTINUE(object_id.is_null());