diff options
author | Juan Linietsky <juan@godotengine.org> | 2020-02-12 14:24:06 -0300 |
---|---|---|
committer | Juan Linietsky <juan@godotengine.org> | 2020-02-12 14:24:54 -0300 |
commit | cf8c679a23b21d6c6f29cba6a54eaa2eed88bf92 (patch) | |
tree | 52aca947b395362b2addec4843915b15947c32ca /servers | |
parent | 4aa31a2851e3dd5b67193194f899850239b2669d (diff) |
ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits.
Diffstat (limited to 'servers')
23 files changed, 70 insertions, 77 deletions
diff --git a/servers/physics/area_sw.cpp b/servers/physics/area_sw.cpp index 398849edb8..1016afcaba 100644 --- a/servers/physics/area_sw.cpp +++ b/servers/physics/area_sw.cpp @@ -175,7 +175,7 @@ void AreaSW::set_monitorable(bool p_monitorable) { void AreaSW::call_queries() { - if (monitor_callback_id && !monitored_bodies.empty()) { + if (monitor_callback_id.is_valid() && !monitored_bodies.empty()) { Variant res[5]; Variant *resptr[5]; @@ -185,7 +185,7 @@ void AreaSW::call_queries() { Object *obj = ObjectDB::get_instance(monitor_callback_id); if (!obj) { monitored_bodies.clear(); - monitor_callback_id = 0; + monitor_callback_id = ObjectID(); return; } @@ -207,7 +207,7 @@ void AreaSW::call_queries() { monitored_bodies.clear(); - if (area_monitor_callback_id && !monitored_areas.empty()) { + if (area_monitor_callback_id.is_valid() && !monitored_areas.empty()) { Variant res[5]; Variant *resptr[5]; @@ -217,7 +217,7 @@ void AreaSW::call_queries() { Object *obj = ObjectDB::get_instance(area_monitor_callback_id); if (!obj) { monitored_areas.clear(); - area_monitor_callback_id = 0; + area_monitor_callback_id = ObjectID(); return; } @@ -257,8 +257,6 @@ AreaSW::AreaSW() : linear_damp = 0.1; priority = 0; set_ray_pickable(false); - monitor_callback_id = 0; - area_monitor_callback_id = 0; monitorable = false; } diff --git a/servers/physics/area_sw.h b/servers/physics/area_sw.h index 846243a133..4da2b00d20 100644 --- a/servers/physics/area_sw.h +++ b/servers/physics/area_sw.h @@ -111,10 +111,10 @@ public: //_FORCE_INLINE_ SpaceSW* get_owner() { return owner; } void set_monitor_callback(ObjectID p_id, const StringName &p_method); - _FORCE_INLINE_ bool has_monitor_callback() const { return monitor_callback_id; } + _FORCE_INLINE_ bool has_monitor_callback() const { return monitor_callback_id.is_valid(); } void set_area_monitor_callback(ObjectID p_id, const StringName &p_method); - _FORCE_INLINE_ bool has_area_monitor_callback() const { return area_monitor_callback_id; } + _FORCE_INLINE_ bool has_area_monitor_callback() const { return area_monitor_callback_id.is_valid(); } _FORCE_INLINE_ void add_body_to_query(BodySW *p_body, uint32_t p_body_shape, uint32_t p_area_shape); _FORCE_INLINE_ void remove_body_from_query(BodySW *p_body, uint32_t p_body_shape, uint32_t p_area_shape); diff --git a/servers/physics/body_sw.cpp b/servers/physics/body_sw.cpp index 64e07e1155..b71c9772df 100644 --- a/servers/physics/body_sw.cpp +++ b/servers/physics/body_sw.cpp @@ -709,7 +709,7 @@ void BodySW::call_queries() { Object *obj = ObjectDB::get_instance(fi_callback->id); if (!obj) { - set_force_integration_callback(0, StringName()); + set_force_integration_callback(ObjectID(), StringName()); } else { const Variant *vp[2] = { &v, &fi_callback->udata }; @@ -749,7 +749,7 @@ void BodySW::set_force_integration_callback(ObjectID p_id, const StringName &p_m fi_callback = NULL; } - if (p_id != 0) { + if (p_id.is_valid()) { fi_callback = memnew(ForceIntegrationCallback); fi_callback->id = p_id; diff --git a/servers/physics/body_sw.h b/servers/physics/body_sw.h index ee4dd0b310..d712b09878 100644 --- a/servers/physics/body_sw.h +++ b/servers/physics/body_sw.h @@ -451,7 +451,7 @@ public: return body->contacts[p_contact_idx].collider_pos; } virtual ObjectID get_contact_collider_id(int p_contact_idx) const { - ERR_FAIL_INDEX_V(p_contact_idx, body->contact_count, 0); + ERR_FAIL_INDEX_V(p_contact_idx, body->contact_count, ObjectID()); return body->contacts[p_contact_idx].collider_instance_id; } virtual int get_contact_collider_shape(int p_contact_idx) const { diff --git a/servers/physics/collision_object_sw.cpp b/servers/physics/collision_object_sw.cpp index cdae26078c..3cabf75ab6 100644 --- a/servers/physics/collision_object_sw.cpp +++ b/servers/physics/collision_object_sw.cpp @@ -232,7 +232,7 @@ CollisionObjectSW::CollisionObjectSW(Type p_type) : _static = true; type = p_type; space = NULL; - instance_id = 0; + collision_layer = 1; collision_mask = 1; ray_pickable = true; diff --git a/servers/physics/physics_server_sw.cpp b/servers/physics/physics_server_sw.cpp index cd6fc6c0a5..6024e9ab7f 100644 --- a/servers/physics/physics_server_sw.cpp +++ b/servers/physics/physics_server_sw.cpp @@ -374,7 +374,7 @@ ObjectID PhysicsServerSW::area_get_object_instance_id(RID p_area) const { p_area = space->get_default_area()->get_self(); } AreaSW *area = area_owner.getornull(p_area); - ERR_FAIL_COND_V(!area, 0); + ERR_FAIL_COND_V(!area, ObjectID()); return area->get_instance_id(); } @@ -446,7 +446,7 @@ void PhysicsServerSW::area_set_monitor_callback(RID p_area, Object *p_receiver, AreaSW *area = area_owner.getornull(p_area); ERR_FAIL_COND(!area); - area->set_monitor_callback(p_receiver ? p_receiver->get_instance_id() : 0, p_method); + area->set_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method); } void PhysicsServerSW::area_set_ray_pickable(RID p_area, bool p_enable) { @@ -470,7 +470,7 @@ void PhysicsServerSW::area_set_area_monitor_callback(RID p_area, Object *p_recei AreaSW *area = area_owner.getornull(p_area); ERR_FAIL_COND(!area); - area->set_area_monitor_callback(p_receiver ? p_receiver->get_instance_id() : 0, p_method); + area->set_area_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method); } /* BODY API */ @@ -665,7 +665,7 @@ uint32_t PhysicsServerSW::body_get_collision_mask(RID p_body) const { return body->get_collision_mask(); } -void PhysicsServerSW::body_attach_object_instance_id(RID p_body, uint32_t p_id) { +void PhysicsServerSW::body_attach_object_instance_id(RID p_body, ObjectID p_id) { BodySW *body = body_owner.getornull(p_body); ERR_FAIL_COND(!body); @@ -673,10 +673,10 @@ void PhysicsServerSW::body_attach_object_instance_id(RID p_body, uint32_t p_id) body->set_instance_id(p_id); }; -uint32_t PhysicsServerSW::body_get_object_instance_id(RID p_body) const { +ObjectID PhysicsServerSW::body_get_object_instance_id(RID p_body) const { BodySW *body = body_owner.getornull(p_body); - ERR_FAIL_COND_V(!body, 0); + ERR_FAIL_COND_V(!body, ObjectID()); return body->get_instance_id(); }; @@ -934,7 +934,7 @@ void PhysicsServerSW::body_set_force_integration_callback(RID p_body, Object *p_ BodySW *body = body_owner.getornull(p_body); ERR_FAIL_COND(!body); - body->set_force_integration_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(0), p_method, p_udata); + body->set_force_integration_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method, p_udata); } void PhysicsServerSW::body_set_ray_pickable(RID p_body, bool p_enable) { diff --git a/servers/physics/physics_server_sw.h b/servers/physics/physics_server_sw.h index 37ebfb09c0..459c7688f0 100644 --- a/servers/physics/physics_server_sw.h +++ b/servers/physics/physics_server_sw.h @@ -177,8 +177,8 @@ public: virtual void body_remove_shape(RID p_body, int p_shape_idx); virtual void body_clear_shapes(RID p_body); - virtual void body_attach_object_instance_id(RID p_body, uint32_t p_id); - virtual uint32_t body_get_object_instance_id(RID p_body) const; + virtual void body_attach_object_instance_id(RID p_body, ObjectID p_id); + virtual ObjectID body_get_object_instance_id(RID p_body) const; virtual void body_set_enable_continuous_collision_detection(RID p_body, bool p_enable); virtual bool body_is_continuous_collision_detection_enabled(RID p_body) const; diff --git a/servers/physics/space_sw.cpp b/servers/physics/space_sw.cpp index 49e1a57879..03dca8b9ec 100644 --- a/servers/physics/space_sw.cpp +++ b/servers/physics/space_sw.cpp @@ -80,7 +80,7 @@ int PhysicsDirectSpaceStateSW::intersect_point(const Vector3 &p_point, ShapeResu continue; r_results[cc].collider_id = col_obj->get_instance_id(); - if (r_results[cc].collider_id != 0) + if (r_results[cc].collider_id.is_valid()) r_results[cc].collider = ObjectDB::get_instance(r_results[cc].collider_id); else r_results[cc].collider = NULL; @@ -159,7 +159,7 @@ bool PhysicsDirectSpaceStateSW::intersect_ray(const Vector3 &p_from, const Vecto return false; r_result.collider_id = res_obj->get_instance_id(); - if (r_result.collider_id != 0) + if (r_result.collider_id.is_valid()) r_result.collider = ObjectDB::get_instance(r_result.collider_id); else r_result.collider = NULL; @@ -208,7 +208,7 @@ int PhysicsDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transfo if (r_results) { r_results[cc].collider_id = col_obj->get_instance_id(); - if (r_results[cc].collider_id != 0) + if (r_results[cc].collider_id.is_valid()) r_results[cc].collider = ObjectDB::get_instance(r_results[cc].collider_id); else r_results[cc].collider = NULL; @@ -705,7 +705,7 @@ bool SpaceSW::test_body_motion(BodySW *p_body, const Transform &p_from, const Ve //but is it right? who knows at this point.. if (r_result) { - r_result->collider_id = 0; + r_result->collider_id = ObjectID(); r_result->collider_shape = 0; } AABB body_aabb; diff --git a/servers/physics_2d/area_2d_sw.cpp b/servers/physics_2d/area_2d_sw.cpp index 6f09041af8..c67d870b2a 100644 --- a/servers/physics_2d/area_2d_sw.cpp +++ b/servers/physics_2d/area_2d_sw.cpp @@ -175,7 +175,7 @@ void Area2DSW::set_monitorable(bool p_monitorable) { void Area2DSW::call_queries() { - if (monitor_callback_id && !monitored_bodies.empty()) { + if (monitor_callback_id.is_valid() && !monitored_bodies.empty()) { Variant res[5]; Variant *resptr[5]; @@ -185,7 +185,7 @@ void Area2DSW::call_queries() { Object *obj = ObjectDB::get_instance(monitor_callback_id); if (!obj) { monitored_bodies.clear(); - monitor_callback_id = 0; + monitor_callback_id = ObjectID(); return; } @@ -207,7 +207,7 @@ void Area2DSW::call_queries() { monitored_bodies.clear(); - if (area_monitor_callback_id && !monitored_areas.empty()) { + if (area_monitor_callback_id.is_valid() && !monitored_areas.empty()) { Variant res[5]; Variant *resptr[5]; @@ -217,7 +217,7 @@ void Area2DSW::call_queries() { Object *obj = ObjectDB::get_instance(area_monitor_callback_id); if (!obj) { monitored_areas.clear(); - area_monitor_callback_id = 0; + area_monitor_callback_id = ObjectID(); return; } @@ -258,8 +258,6 @@ Area2DSW::Area2DSW() : angular_damp = 1.0; linear_damp = 0.1; priority = 0; - monitor_callback_id = 0; - area_monitor_callback_id = 0; monitorable = false; } diff --git a/servers/physics_2d/area_2d_sw.h b/servers/physics_2d/area_2d_sw.h index 31bc0f6f23..54ffd9763d 100644 --- a/servers/physics_2d/area_2d_sw.h +++ b/servers/physics_2d/area_2d_sw.h @@ -110,10 +110,10 @@ public: //_FORCE_INLINE_ SpaceSW* get_owner() { return owner; } void set_monitor_callback(ObjectID p_id, const StringName &p_method); - _FORCE_INLINE_ bool has_monitor_callback() const { return monitor_callback_id; } + _FORCE_INLINE_ bool has_monitor_callback() const { return monitor_callback_id.is_valid(); } void set_area_monitor_callback(ObjectID p_id, const StringName &p_method); - _FORCE_INLINE_ bool has_area_monitor_callback() const { return area_monitor_callback_id; } + _FORCE_INLINE_ bool has_area_monitor_callback() const { return area_monitor_callback_id.is_valid(); } _FORCE_INLINE_ void add_body_to_query(Body2DSW *p_body, uint32_t p_body_shape, uint32_t p_area_shape); _FORCE_INLINE_ void remove_body_from_query(Body2DSW *p_body, uint32_t p_body_shape, uint32_t p_area_shape); diff --git a/servers/physics_2d/body_2d_sw.cpp b/servers/physics_2d/body_2d_sw.cpp index b973fa75a9..4de52cacbd 100644 --- a/servers/physics_2d/body_2d_sw.cpp +++ b/servers/physics_2d/body_2d_sw.cpp @@ -610,7 +610,7 @@ void Body2DSW::call_queries() { Object *obj = ObjectDB::get_instance(fi_callback->id); if (!obj) { - set_force_integration_callback(0, StringName()); + set_force_integration_callback(ObjectID(), StringName()); } else { Variant::CallError ce; if (fi_callback->callback_udata.get_type() != Variant::NIL) { @@ -653,7 +653,7 @@ void Body2DSW::set_force_integration_callback(ObjectID p_id, const StringName &p fi_callback = NULL; } - if (p_id != 0) { + if (p_id.is_valid()) { fi_callback = memnew(ForceIntegrationCallback); fi_callback->id = p_id; diff --git a/servers/physics_2d/body_2d_sw.h b/servers/physics_2d/body_2d_sw.h index 06cc447526..ea07b8260c 100644 --- a/servers/physics_2d/body_2d_sw.h +++ b/servers/physics_2d/body_2d_sw.h @@ -400,7 +400,7 @@ public: return body->contacts[p_contact_idx].collider_pos; } virtual ObjectID get_contact_collider_id(int p_contact_idx) const { - ERR_FAIL_INDEX_V(p_contact_idx, body->contact_count, 0); + ERR_FAIL_INDEX_V(p_contact_idx, body->contact_count, ObjectID()); return body->contacts[p_contact_idx].collider_instance_id; } virtual int get_contact_collider_shape(int p_contact_idx) const { diff --git a/servers/physics_2d/collision_object_2d_sw.cpp b/servers/physics_2d/collision_object_2d_sw.cpp index 85f7b8467a..8fb3296be6 100644 --- a/servers/physics_2d/collision_object_2d_sw.cpp +++ b/servers/physics_2d/collision_object_2d_sw.cpp @@ -267,8 +267,6 @@ CollisionObject2DSW::CollisionObject2DSW(Type p_type) : _static = true; type = p_type; space = NULL; - instance_id = 0; - canvas_instance_id = 0; collision_mask = 1; collision_layer = 1; pickable = true; diff --git a/servers/physics_2d/physics_2d_server_sw.cpp b/servers/physics_2d/physics_2d_server_sw.cpp index 65873d9612..aa374aa6bc 100644 --- a/servers/physics_2d/physics_2d_server_sw.cpp +++ b/servers/physics_2d/physics_2d_server_sw.cpp @@ -470,7 +470,7 @@ ObjectID Physics2DServerSW::area_get_object_instance_id(RID p_area) const { p_area = space->get_default_area()->get_self(); } Area2DSW *area = area_owner.getornull(p_area); - ERR_FAIL_COND_V(!area, 0); + ERR_FAIL_COND_V(!area, ObjectID()); return area->get_instance_id(); } @@ -491,7 +491,7 @@ ObjectID Physics2DServerSW::area_get_canvas_instance_id(RID p_area) const { p_area = space->get_default_area()->get_self(); } Area2DSW *area = area_owner.getornull(p_area); - ERR_FAIL_COND_V(!area, 0); + ERR_FAIL_COND_V(!area, ObjectID()); return area->get_canvas_instance_id(); } @@ -570,7 +570,7 @@ void Physics2DServerSW::area_set_monitor_callback(RID p_area, Object *p_receiver Area2DSW *area = area_owner.getornull(p_area); ERR_FAIL_COND(!area); - area->set_monitor_callback(p_receiver ? p_receiver->get_instance_id() : 0, p_method); + area->set_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method); } void Physics2DServerSW::area_set_area_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) { @@ -578,7 +578,7 @@ void Physics2DServerSW::area_set_area_monitor_callback(RID p_area, Object *p_rec Area2DSW *area = area_owner.getornull(p_area); ERR_FAIL_COND(!area); - area->set_area_monitor_callback(p_receiver ? p_receiver->get_instance_id() : 0, p_method); + area->set_area_monitor_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method); } /* BODY API */ @@ -756,7 +756,7 @@ Physics2DServerSW::CCDMode Physics2DServerSW::body_get_continuous_collision_dete return body->get_continuous_collision_detection_mode(); } -void Physics2DServerSW::body_attach_object_instance_id(RID p_body, uint32_t p_id) { +void Physics2DServerSW::body_attach_object_instance_id(RID p_body, ObjectID p_id) { Body2DSW *body = body_owner.getornull(p_body); ERR_FAIL_COND(!body); @@ -764,15 +764,15 @@ void Physics2DServerSW::body_attach_object_instance_id(RID p_body, uint32_t p_id body->set_instance_id(p_id); }; -uint32_t Physics2DServerSW::body_get_object_instance_id(RID p_body) const { +ObjectID Physics2DServerSW::body_get_object_instance_id(RID p_body) const { Body2DSW *body = body_owner.getornull(p_body); - ERR_FAIL_COND_V(!body, 0); + ERR_FAIL_COND_V(!body, ObjectID()); return body->get_instance_id(); }; -void Physics2DServerSW::body_attach_canvas_instance_id(RID p_body, uint32_t p_id) { +void Physics2DServerSW::body_attach_canvas_instance_id(RID p_body, ObjectID p_id) { Body2DSW *body = body_owner.getornull(p_body); ERR_FAIL_COND(!body); @@ -780,10 +780,10 @@ void Physics2DServerSW::body_attach_canvas_instance_id(RID p_body, uint32_t p_id body->set_canvas_instance_id(p_id); }; -uint32_t Physics2DServerSW::body_get_canvas_instance_id(RID p_body) const { +ObjectID Physics2DServerSW::body_get_canvas_instance_id(RID p_body) const { Body2DSW *body = body_owner.getornull(p_body); - ERR_FAIL_COND_V(!body, 0); + ERR_FAIL_COND_V(!body, ObjectID()); return body->get_canvas_instance_id(); }; @@ -1025,7 +1025,7 @@ void Physics2DServerSW::body_set_force_integration_callback(RID p_body, Object * Body2DSW *body = body_owner.getornull(p_body); ERR_FAIL_COND(!body); - body->set_force_integration_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(0), p_method, p_udata); + body->set_force_integration_callback(p_receiver ? p_receiver->get_instance_id() : ObjectID(), p_method, p_udata); } bool Physics2DServerSW::body_collide_shape(RID p_body, int p_body_shape, RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, Vector2 *r_results, int p_result_max, int &r_result_count) { diff --git a/servers/physics_2d/physics_2d_server_sw.h b/servers/physics_2d/physics_2d_server_sw.h index 6a636bb72a..a95a2ea0dd 100644 --- a/servers/physics_2d/physics_2d_server_sw.h +++ b/servers/physics_2d/physics_2d_server_sw.h @@ -195,11 +195,11 @@ public: virtual void body_set_shape_disabled(RID p_body, int p_shape_idx, bool p_disabled); virtual void body_set_shape_as_one_way_collision(RID p_body, int p_shape_idx, bool p_enable, float p_margin); - virtual void body_attach_object_instance_id(RID p_body, uint32_t p_id); - virtual uint32_t body_get_object_instance_id(RID p_body) const; + virtual void body_attach_object_instance_id(RID p_body, ObjectID p_id); + virtual ObjectID body_get_object_instance_id(RID p_body) const; - virtual void body_attach_canvas_instance_id(RID p_body, uint32_t p_id); - virtual uint32_t body_get_canvas_instance_id(RID p_body) const; + virtual void body_attach_canvas_instance_id(RID p_body, ObjectID p_id); + virtual ObjectID body_get_canvas_instance_id(RID p_body) const; virtual void body_set_continuous_collision_detection_mode(RID p_body, CCDMode p_mode); virtual CCDMode body_get_continuous_collision_detection_mode(RID p_body) const; diff --git a/servers/physics_2d/physics_2d_server_wrap_mt.h b/servers/physics_2d/physics_2d_server_wrap_mt.h index 6bd0a09de5..9a01344390 100644 --- a/servers/physics_2d/physics_2d_server_wrap_mt.h +++ b/servers/physics_2d/physics_2d_server_wrap_mt.h @@ -199,11 +199,11 @@ public: FUNC2(body_remove_shape, RID, int); FUNC1(body_clear_shapes, RID); - FUNC2(body_attach_object_instance_id, RID, uint32_t); - FUNC1RC(uint32_t, body_get_object_instance_id, RID); + FUNC2(body_attach_object_instance_id, RID, ObjectID); + FUNC1RC(ObjectID, body_get_object_instance_id, RID); - FUNC2(body_attach_canvas_instance_id, RID, uint32_t); - FUNC1RC(uint32_t, body_get_canvas_instance_id, RID); + FUNC2(body_attach_canvas_instance_id, RID, ObjectID); + FUNC1RC(ObjectID, body_get_canvas_instance_id, RID); FUNC2(body_set_continuous_collision_detection_mode, RID, CCDMode); FUNC1RC(CCDMode, body_get_continuous_collision_detection_mode, RID); diff --git a/servers/physics_2d/space_2d_sw.cpp b/servers/physics_2d/space_2d_sw.cpp index 150fda4322..83bcae4607 100644 --- a/servers/physics_2d/space_2d_sw.cpp +++ b/servers/physics_2d/space_2d_sw.cpp @@ -91,7 +91,7 @@ int Physics2DDirectSpaceStateSW::_intersect_point_impl(const Vector2 &p_point, S continue; r_results[cc].collider_id = col_obj->get_instance_id(); - if (r_results[cc].collider_id != 0) + if (r_results[cc].collider_id.is_valid()) r_results[cc].collider = ObjectDB::get_instance(r_results[cc].collider_id); r_results[cc].rid = col_obj->get_self(); r_results[cc].shape = shape_idx; @@ -182,7 +182,7 @@ bool Physics2DDirectSpaceStateSW::intersect_ray(const Vector2 &p_from, const Vec return false; r_result.collider_id = res_obj->get_instance_id(); - if (r_result.collider_id != 0) + if (r_result.collider_id.is_valid()) r_result.collider = ObjectDB::get_instance(r_result.collider_id); r_result.normal = res_normal; r_result.metadata = res_obj->get_shape_metadata(res_shape); @@ -226,7 +226,7 @@ int Physics2DDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Trans continue; r_results[cc].collider_id = col_obj->get_instance_id(); - if (r_results[cc].collider_id != 0) + if (r_results[cc].collider_id.is_valid()) r_results[cc].collider = ObjectDB::get_instance(r_results[cc].collider_id); r_results[cc].rid = col_obj->get_self(); r_results[cc].shape = shape_idx; @@ -697,7 +697,7 @@ bool Space2DSW::test_body_motion(Body2DSW *p_body, const Transform2D &p_from, co //but is it right? who knows at this point.. if (r_result) { - r_result->collider_id = 0; + r_result->collider_id = ObjectID(); r_result->collider_shape = 0; } Rect2 body_aabb; diff --git a/servers/physics_2d/space_2d_sw.h b/servers/physics_2d/space_2d_sw.h index ba068e9a37..919c65d849 100644 --- a/servers/physics_2d/space_2d_sw.h +++ b/servers/physics_2d/space_2d_sw.h @@ -45,7 +45,7 @@ class Physics2DDirectSpaceStateSW : public Physics2DDirectSpaceState { GDCLASS(Physics2DDirectSpaceStateSW, Physics2DDirectSpaceState); - int _intersect_point_impl(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas, bool p_pick_point, bool p_filter_by_canvas = false, ObjectID p_canvas_instance_id = 0); + int _intersect_point_impl(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas, bool p_pick_point, bool p_filter_by_canvas = false, ObjectID p_canvas_instance_id = ObjectID()); public: Space2DSW *space; diff --git a/servers/physics_2d_server.cpp b/servers/physics_2d_server.cpp index 71e3bf8ae8..925af52eeb 100644 --- a/servers/physics_2d_server.cpp +++ b/servers/physics_2d_server.cpp @@ -523,7 +523,7 @@ void Physics2DTestMotionResult::_bind_methods() { Physics2DTestMotionResult::Physics2DTestMotionResult() { colliding = false; - result.collider_id = 0; + result.collider_shape = 0; } diff --git a/servers/physics_2d_server.h b/servers/physics_2d_server.h index 40c58ecac5..c923ef16b7 100644 --- a/servers/physics_2d_server.h +++ b/servers/physics_2d_server.h @@ -149,7 +149,7 @@ class Physics2DDirectSpaceState : public Object { Dictionary _intersect_ray(const Vector2 &p_from, const Vector2 &p_to, const Vector<RID> &p_exclude = Vector<RID>(), uint32_t p_layers = 0, bool p_collide_with_bodies = true, bool p_collide_with_areas = false); Array _intersect_point(const Vector2 &p_point, int p_max_results = 32, const Vector<RID> &p_exclude = Vector<RID>(), uint32_t p_layers = 0, bool p_collide_with_bodies = true, bool p_collide_with_areas = false); Array _intersect_point_on_canvas(const Vector2 &p_point, ObjectID p_canvas_intance_id, int p_max_results = 32, const Vector<RID> &p_exclude = Vector<RID>(), uint32_t p_layers = 0, bool p_collide_with_bodies = true, bool p_collide_with_areas = false); - Array _intersect_point_impl(const Vector2 &p_point, int p_max_results, const Vector<RID> &p_exclud, uint32_t p_layers, bool p_collide_with_bodies, bool p_collide_with_areas, bool p_filter_by_canvas = false, ObjectID p_canvas_instance_id = 0); + Array _intersect_point_impl(const Vector2 &p_point, int p_max_results, const Vector<RID> &p_exclud, uint32_t p_layers, bool p_collide_with_bodies, bool p_collide_with_areas, bool p_filter_by_canvas = false, ObjectID p_canvas_instance_id = ObjectID()); Array _intersect_shape(const Ref<Physics2DShapeQueryParameters> &p_shape_query, int p_max_results = 32); Array _cast_motion(const Ref<Physics2DShapeQueryParameters> &p_shape_query); Array _collide_shape(const Ref<Physics2DShapeQueryParameters> &p_shape_query, int p_max_results = 32); @@ -404,11 +404,11 @@ public: virtual void body_remove_shape(RID p_body, int p_shape_idx) = 0; virtual void body_clear_shapes(RID p_body) = 0; - virtual void body_attach_object_instance_id(RID p_body, uint32_t p_id) = 0; - virtual uint32_t body_get_object_instance_id(RID p_body) const = 0; + virtual void body_attach_object_instance_id(RID p_body, ObjectID p_id) = 0; + virtual ObjectID body_get_object_instance_id(RID p_body) const = 0; - virtual void body_attach_canvas_instance_id(RID p_body, uint32_t p_id) = 0; - virtual uint32_t body_get_canvas_instance_id(RID p_body) const = 0; + virtual void body_attach_canvas_instance_id(RID p_body, ObjectID p_id) = 0; + virtual ObjectID body_get_canvas_instance_id(RID p_body) const = 0; enum CCDMode { CCD_MODE_DISABLED, @@ -509,7 +509,7 @@ public: MotionResult() { collision_local_shape = 0; collider_shape = 0; - collider_id = 0; + collider_id = ObjectID(); } }; diff --git a/servers/physics_server.h b/servers/physics_server.h index 6a66763b2f..f1388c8758 100644 --- a/servers/physics_server.h +++ b/servers/physics_server.h @@ -385,8 +385,8 @@ public: virtual void body_set_shape_disabled(RID p_body, int p_shape_idx, bool p_disabled) = 0; - virtual void body_attach_object_instance_id(RID p_body, uint32_t p_id) = 0; - virtual uint32_t body_get_object_instance_id(RID p_body) const = 0; + virtual void body_attach_object_instance_id(RID p_body, ObjectID p_id) = 0; + virtual ObjectID body_get_object_instance_id(RID p_body) const = 0; virtual void body_set_enable_continuous_collision_detection(RID p_body, bool p_enable) = 0; virtual bool body_is_continuous_collision_detection_enabled(RID p_body) const = 0; @@ -495,7 +495,7 @@ public: Variant collider_metadata; MotionResult() { collision_local_shape = 0; - collider_id = 0; + collider_id = ObjectID(); collider_shape = 0; } }; diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index 0df8853f12..61c885cba3 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -805,7 +805,7 @@ Vector<ObjectID> VisualServerScene::instances_cull_aabb(const AABB &p_aabb, RID Instance *instance = cull[i]; ERR_CONTINUE(!instance); - if (instance->object_id == 0) + if (instance->object_id.is_null()) continue; instances.push_back(instance->object_id); @@ -827,7 +827,7 @@ Vector<ObjectID> VisualServerScene::instances_cull_ray(const Vector3 &p_from, co for (int i = 0; i < culled; i++) { Instance *instance = cull[i]; ERR_CONTINUE(!instance); - if (instance->object_id == 0) + if (instance->object_id.is_null()) continue; instances.push_back(instance->object_id); @@ -851,7 +851,7 @@ Vector<ObjectID> VisualServerScene::instances_cull_convex(const Vector<Plane> &p Instance *instance = cull[i]; ERR_CONTINUE(!instance); - if (instance->object_id == 0) + if (instance->object_id.is_null()) continue; instances.push_back(instance->object_id); diff --git a/servers/visual/visual_server_scene.h b/servers/visual/visual_server_scene.h index a811e8b27a..8dbd60d3ff 100644 --- a/servers/visual/visual_server_scene.h +++ b/servers/visual/visual_server_scene.h @@ -162,7 +162,7 @@ public: AABB *custom_aabb; // <Zylann> would using aabb directly with a bool be better? float extra_margin; - uint32_t object_id; + ObjectID object_id; float lod_begin; float lod_end; @@ -203,7 +203,6 @@ public: extra_margin = 0; - object_id = 0; visible = true; lod_begin = 0; |