Bladeren bron

GDScript: check for underscore prefix when type-checking

Some classes are represented internally with an underscore prefix, so we
need to make sure we match this representation when type-checking,
otherwise the check might fail on a valid scenario.
George Marques 6 jaren geleden
bovenliggende
commit
31433ae8e4
1 gewijzigde bestanden met toevoegingen van 8 en 2 verwijderingen
  1. 8 2
      modules/gdscript/gdscript_function.h

+ 8 - 2
modules/gdscript/gdscript_function.h

@@ -74,8 +74,14 @@ struct GDScriptDataType {
 					return false;
 				}
 				Object *obj = p_variant.operator Object *();
-				if (obj && !ClassDB::is_parent_class(obj->get_class_name(), native_type)) {
-					return false;
+				if (obj) {
+					if (!ClassDB::is_parent_class(obj->get_class_name(), native_type)) {
+						// Try with underscore prefix
+						StringName underscore_native_type = "_" + native_type;
+						if (!ClassDB::is_parent_class(obj->get_class_name(), underscore_native_type)) {
+							return false;
+						}
+					}
 				}
 				return true;
 			} break;