summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorjlahman <jlahman@users.noreply.github.com>2019-01-15 22:05:40 -0500
committerjlahman <jlahman@users.noreply.github.com>2019-01-15 22:20:36 -0500
commit6661ceadcc75fd720f93b1c8c1aea3201591b4e5 (patch)
tree050a970b8b30294e3da85477443f9119fae12f65 /modules
parent9ed34d44238d130f5c7d999bb7265e7c0e906567 (diff)
Fixes export PackedScene "reset to default" throwing errors
When exporting variables from a gdscript, default values of uninitialized variables would never be set. This caused the default value to be Variant::NIL, and when a user tried to reset the variable through the editor, an error would be thrown because too few arguments would be counted(end of argument list for calls are detected by NIL values). Fixed by simply setting default value to an empty variant of the proper type in gdscript parser.
Diffstat (limited to 'modules')
-rw-r--r--modules/gdscript/gdscript_parser.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp
index b0743af1b4..c6c2e57ba5 100644
--- a/modules/gdscript/gdscript_parser.cpp
+++ b/modules/gdscript/gdscript_parser.cpp
@@ -4559,6 +4559,10 @@ void GDScriptParser::_parse_class(ClassNode *p_class) {
member.line = tokenizer->get_token_line();
member.usages = 0;
member.rpc_mode = rpc_mode;
+#ifdef TOOLS_ENABLED
+ Variant::CallError ce;
+ member.default_value = Variant::construct(member._export.type, NULL, 0, ce);
+#endif
if (current_class->constant_expressions.has(member.identifier)) {
_set_error("A constant named '" + String(member.identifier) + "' already exists in this class (at line: " +