ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits.
This commit is contained in:
parent
4aa31a2851
commit
cf8c679a23
89 changed files with 337 additions and 287 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -523,7 +523,7 @@ void Physics2DTestMotionResult::_bind_methods() {
|
|||
Physics2DTestMotionResult::Physics2DTestMotionResult() {
|
||||
|
||||
colliding = false;
|
||||
result.collider_id = 0;
|
||||
|
||||
result.collider_shape = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue