Kaynağa Gözat

Merge pull request #98085 from dalexeev/gds-fix-typed-dict-static-default-init

GDScript: Add missing static default initialization for typed dictionaries
Clay John 10 ay önce
ebeveyn
işleme
e50b864b64
1 değiştirilmiş dosya ile 7 ekleme ve 1 silme
  1. 7 1
      modules/gdscript/gdscript.cpp

+ 7 - 1
modules/gdscript/gdscript.cpp

@@ -693,10 +693,16 @@ void GDScript::_static_default_init() {
 			continue;
 		}
 		if (type.builtin_type == Variant::ARRAY && type.has_container_element_type(0)) {
+			const GDScriptDataType element_type = type.get_container_element_type(0);
 			Array default_value;
-			const GDScriptDataType &element_type = type.get_container_element_type(0);
 			default_value.set_typed(element_type.builtin_type, element_type.native_type, element_type.script_type);
 			static_variables.write[E.value.index] = default_value;
+		} else if (type.builtin_type == Variant::DICTIONARY && type.has_container_element_types()) {
+			const GDScriptDataType key_type = type.get_container_element_type_or_variant(0);
+			const GDScriptDataType value_type = type.get_container_element_type_or_variant(1);
+			Dictionary default_value;
+			default_value.set_typed(key_type.builtin_type, key_type.native_type, key_type.script_type, value_type.builtin_type, value_type.native_type, value_type.script_type);
+			static_variables.write[E.value.index] = default_value;
 		} else {
 			Variant default_value;
 			Callable::CallError err;