瀏覽代碼

GDScript: Allow Object constants to be used with qualifier

Fix #15125
George Marques 7 年之前
父節點
當前提交
b530031442
共有 1 個文件被更改,包括 15 次插入3 次删除
  1. 15 3
      modules/gdscript/gdscript_parser.cpp

+ 15 - 3
modules/gdscript/gdscript_parser.cpp

@@ -637,9 +637,21 @@ GDScriptParser::Node *GDScriptParser::_parse_expression(Node *p_parent, bool p_s
 
 					expr = op;
 				} else {
-
-					_set_error("Static constant  '" + identifier.operator String() + "' not present in built-in type " + Variant::get_type_name(bi_type) + ".");
-					return NULL;
+					// Object is a special case
+					bool valid = false;
+					if (bi_type == Variant::OBJECT) {
+						int object_constant = ClassDB::get_integer_constant("Object", identifier, &valid);
+						if (valid) {
+							ConstantNode *cn = alloc_node<ConstantNode>();
+							cn->value = object_constant;
+							cn->datatype = _type_from_variant(cn->value);
+							expr = cn;
+						}
+					}
+					if (!valid) {
+						_set_error("Static constant  '" + identifier.operator String() + "' not present in built-in type " + Variant::get_type_name(bi_type) + ".");
+						return NULL;
+					}
 				}
 			} else {