logic error in gdscript_parser.cpp for-loop-range

there was a logic error in for loop range argument that
check if all of the argument were constants, fixed
This commit is contained in:
Thakee Nathees 2020-03-06 21:26:25 +05:30
parent 1e255532e9
commit bcbcf0f1ea
1 changed files with 3 additions and 3 deletions

View File

@ -3102,18 +3102,18 @@ void GDScriptParser::_parse_block(BlockNode *p_block, bool p_static) {
Vector<Node *> args; Vector<Node *> args;
Vector<double> constants; Vector<double> constants;
bool constant = false; bool constant = true;
for (int i = 1; i < op->arguments.size(); i++) { for (int i = 1; i < op->arguments.size(); i++) {
args.push_back(op->arguments[i]); args.push_back(op->arguments[i]);
if (constant && op->arguments[i]->type == Node::TYPE_CONSTANT) { if (op->arguments[i]->type == Node::TYPE_CONSTANT) {
ConstantNode *c = static_cast<ConstantNode *>(op->arguments[i]); ConstantNode *c = static_cast<ConstantNode *>(op->arguments[i]);
if (c->value.get_type() == Variant::FLOAT || c->value.get_type() == Variant::INT) { if (c->value.get_type() == Variant::FLOAT || c->value.get_type() == Variant::INT) {
constants.push_back(c->value); constants.push_back(c->value);
constant = true;
} }
} else { } else {
constant = false; constant = false;
break;
} }
} }