Ability to put constants in constant expressions, closes #5264

This commit is contained in:
Juan Linietsky 2016-06-29 22:17:55 -03:00
parent 36e754457f
commit cf0fbe493f

View file

@ -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;