Browse Source

Make dict2inst set internal members of instance

Fix #2490
George Marques 10 years ago
parent
commit
1d45c9a04c
1 changed files with 9 additions and 0 deletions
  1. 9 0
      modules/gdscript/gd_functions.cpp

+ 9 - 0
modules/gdscript/gd_functions.cpp

@@ -904,6 +904,15 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
 
 			r_ret = gdscr->_new(NULL,0,r_error);
 
+            GDInstance *ins = static_cast<GDInstance*>(static_cast<Object*>(r_ret)->get_script_instance());
+            Ref<GDScript> gd_ref = ins->get_script();
+
+            for(Map<StringName,GDScript::MemberInfo>::Element *E = gd_ref->member_indices.front(); E; E = E->next()) {
+                if(d.has(E->key())) {
+                    ins->members[E->get().index] = d[E->key()];
+                }
+            }
+
 		} break;
 		case HASH: {