浏览代码

Merge pull request #64079 from Nosliwnayr/3.x

Rémi Verschelde 3 年之前
父节点
当前提交
5e1936edf8
共有 3 个文件被更改,包括 20 次插入0 次删除
  1. 4 0
      modules/bullet/area_bullet.cpp
  2. 8 0
      servers/physics/area_sw.cpp
  3. 8 0
      servers/physics_2d/area_2d_sw.cpp

+ 4 - 0
modules/bullet/area_bullet.cpp

@@ -132,6 +132,10 @@ void AreaBullet::call_event(const OverlappingShapeData &p_overlapping_shape, Phy
 
 	Variant::CallError outResp;
 	areaGodoObject->call(event.event_callback_method, (const Variant **)call_event_res_ptr, 5, outResp);
+
+	if (outResp.error != Variant::CallError::CALL_OK) {
+		ERR_PRINT_ONCE("Error calling event callback method " + Variant::get_call_error_text(areaGodoObject, event.event_callback_method, (const Variant **)call_event_res_ptr, 5, outResp));
+	}
 }
 
 int AreaBullet::_overlapping_shape_count(CollisionObjectBullet *p_other_object) {

+ 8 - 0
servers/physics/area_sw.cpp

@@ -228,6 +228,10 @@ void AreaSW::call_queries() {
 
 				Variant::CallError ce;
 				obj->call(monitor_callback_method, (const Variant **)resptr, 5, ce);
+
+				if (ce.error != Variant::CallError::CALL_OK) {
+					ERR_PRINT_ONCE("Error calling monitor callback method " + Variant::get_call_error_text(obj, monitor_callback_method, (const Variant **)resptr, 5, ce));
+				}
 			}
 		} else {
 			monitored_bodies.clear();
@@ -264,6 +268,10 @@ void AreaSW::call_queries() {
 
 				Variant::CallError ce;
 				obj->call(area_monitor_callback_method, (const Variant **)resptr, 5, ce);
+
+				if (ce.error != Variant::CallError::CALL_OK) {
+					ERR_PRINT_ONCE("Error calling area monitor callback method " + Variant::get_call_error_text(obj, area_monitor_callback_method, (const Variant **)resptr, 5, ce));
+				}
 			}
 		} else {
 			monitored_areas.clear();

+ 8 - 0
servers/physics_2d/area_2d_sw.cpp

@@ -228,6 +228,10 @@ void Area2DSW::call_queries() {
 
 				Variant::CallError ce;
 				obj->call(monitor_callback_method, (const Variant **)resptr, 5, ce);
+
+				if (ce.error != Variant::CallError::CALL_OK) {
+					ERR_PRINT_ONCE("Error calling monitor callback method " + Variant::get_call_error_text(obj, monitor_callback_method, (const Variant **)resptr, 5, ce));
+				}
 			}
 		} else {
 			monitored_bodies.clear();
@@ -264,6 +268,10 @@ void Area2DSW::call_queries() {
 
 				Variant::CallError ce;
 				obj->call(area_monitor_callback_method, (const Variant **)resptr, 5, ce);
+
+				if (ce.error != Variant::CallError::CALL_OK) {
+					ERR_PRINT_ONCE("Error calling area monitor callback method " + Variant::get_call_error_text(obj, area_monitor_callback_method, (const Variant **)resptr, 5, ce));
+				}
 			}
 		} else {
 			monitored_areas.clear();