Browse Source

Ability to put constants in constant expressions, closes #5264

Juan Linietsky 9 years ago
parent
commit
cf0fbe493f
1 changed files with 9 additions and 0 deletions
  1. 9 0
      modules/gdscript/gd_parser.cpp

+ 9 - 0
modules/gdscript/gd_parser.cpp

@@ -31,6 +31,7 @@
 #include "io/resource_loader.h"
 #include "os/file_access.h"
 #include "script_language.h"
+#include "gd_script.h"
 
 template<class T>
 T* GDParser::alloc_node() {
@@ -494,6 +495,14 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_
 				}
 			}
 
+			if (GDScriptLanguage::get_singleton()->get_global_map().has(identifier)) {
+				//check from constants
+				ConstantNode *constant = alloc_node<ConstantNode>();
+				constant->value = GDScriptLanguage::get_singleton()->get_global_array()[ GDScriptLanguage::get_singleton()->get_global_map()[identifier] ];
+				expr=constant;
+				bfn = true;
+			}
+
 			if ( !bfn ) {
 				IdentifierNode *id = alloc_node<IdentifierNode>();
 				id->name = identifier;