summaryrefslogtreecommitdiffstats
path: root/servers/physics_2d/godot_collision_object_2d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/physics_2d/godot_collision_object_2d.cpp')
-rw-r--r--servers/physics_2d/godot_collision_object_2d.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/servers/physics_2d/godot_collision_object_2d.cpp b/servers/physics_2d/godot_collision_object_2d.cpp
index 4fb53a2d89..9851cac140 100644
--- a/servers/physics_2d/godot_collision_object_2d.cpp
+++ b/servers/physics_2d/godot_collision_object_2d.cpp
@@ -212,20 +212,21 @@ void GodotCollisionObject2D::_update_shapes_with_motion(const Vector2 &p_motion)
}
void GodotCollisionObject2D::_set_space(GodotSpace2D *p_space) {
- if (space) {
- space->remove_object(this);
+ GodotSpace2D *old_space = space;
+ space = p_space;
+
+ if (old_space) {
+ old_space->remove_object(this);
for (int i = 0; i < shapes.size(); i++) {
Shape &s = shapes.write[i];
if (s.bpid) {
- space->get_broadphase()->remove(s.bpid);
+ old_space->get_broadphase()->remove(s.bpid);
s.bpid = 0;
}
}
}
- space = p_space;
-
if (space) {
space->add_object(this);
_update_shapes();