summaryrefslogtreecommitdiff
path: root/core/variant_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/variant_parser.cpp')
-rw-r--r--core/variant_parser.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index 3efa87de80..a3775156ac 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -338,6 +338,8 @@ Error VariantParser::get_token(Stream *p_stream, Token& r_token, int &line, Stri
exp_beg=true;
} else if ((c=='-' || c=='+') && !exp_sign && !exp_beg) {
+ if (c=='-')
+ is_float=true;
exp_sign=true;
} else {
@@ -358,6 +360,7 @@ Error VariantParser::get_token(Stream *p_stream, Token& r_token, int &line, Stri
r_token.type=TK_NUMBER;
+
if (is_float)
r_token.value=num.to_double();
else
@@ -542,7 +545,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
value=true;
else if (id=="false")
value=false;
- else if (id=="null")
+ else if (id=="null" || id=="nil")
value=Variant();
else if (id=="Vector2"){
@@ -1282,7 +1285,7 @@ Error VariantParser::parse_value(Token& token,Variant &value,Stream *p_stream,in
arr.resize(len);
DVector<Color>::Write w = arr.write();
for(int i=0;i<len;i++) {
- w[i]=Color(args[i*3+0],args[i*3+1],args[i*3+2],args[i*3+3]);
+ w[i]=Color(args[i*4+0],args[i*4+1],args[i*4+2],args[i*4+3]);
}
}