Use the correct method in shape_owner_remove_shape

This commit is contained in:
trollodel 2021-05-09 18:58:19 +02:00
parent aac01456d1
commit a24c46e7a0
2 changed files with 4 additions and 4 deletions

View file

@ -200,7 +200,7 @@ void CollisionObject3D::_update_shape_data(uint32_t p_owner) {
}
}
void CollisionObject3D::_shape_changed(Ref<Shape3D> p_shape) {
void CollisionObject3D::_shape_changed(const Ref<Shape3D> &p_shape) {
for (Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) {
ShapeData &shapedata = E->get();
ShapeData::ShapeBase *shapes = shapedata.shapes.ptrw();
@ -485,8 +485,8 @@ void CollisionObject3D::shape_owner_remove_shape(uint32_t p_owner, int p_shape)
if (s.debug_shape.is_valid()) {
RS::get_singleton()->free(s.debug_shape);
if (s.shape.is_valid() && s.shape->is_connected("changed", callable_mp(this, &CollisionObject3D::_update_shape_data))) {
s.shape->disconnect("changed", callable_mp(this, &CollisionObject3D::_update_shape_data));
if (s.shape.is_valid() && s.shape->is_connected("changed", callable_mp(this, &CollisionObject3D::_shape_changed))) {
s.shape->disconnect("changed", callable_mp(this, &CollisionObject3D::_shape_changed));
}
--debug_shapes_count;
}

View file

@ -72,7 +72,7 @@ class CollisionObject3D : public Node3D {
bool _are_collision_shapes_visible();
void _update_shape_data(uint32_t p_owner);
void _shape_changed(Ref<Shape3D> p_shape);
void _shape_changed(const Ref<Shape3D> &p_shape);
void _update_debug_shapes();
void _clear_debug_shapes();