summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-03-04 10:19:52 +0100
committerGitHub <noreply@github.com>2020-03-04 10:19:52 +0100
commit59290f98ef0fa7bf4a30a0c8b84dc8d61cb73098 (patch)
tree0aaded83cf8f40b86b8a79492a7628e3ea72910c
parent7ece08166291e95502eb329a73d8f66b72357278 (diff)
parentc4dbd8a7445e74dd0b6959de56c952bad7da1a21 (diff)
Merge pull request #36042 from sumit0190/exportInfNan
Read and write exported infs/nans correctly (#35388)
-rw-r--r--core/variant_parser.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/core/variant_parser.cpp b/core/variant_parser.cpp
index 12fd9976bd..d2ee0b71c9 100644
--- a/core/variant_parser.cpp
+++ b/core/variant_parser.cpp
@@ -532,6 +532,10 @@ Error VariantParser::parse_value(Token &token, Variant &value, Stream *p_stream,
value = false;
else if (id == "null" || id == "nil")
value = Variant();
+ else if (id == "inf")
+ value = Math_INF;
+ else if (id == "nan")
+ value = Math_NAN;
else if (id == "Vector2") {
Vector<float> args;
@@ -1499,8 +1503,10 @@ Error VariantWriter::write(const Variant &p_variant, StoreStringFunc p_store_str
case Variant::FLOAT: {
String s = rtosfix(p_variant.operator real_t());
- if (s.find(".") == -1 && s.find("e") == -1)
- s += ".0";
+ if (s != "inf" && s != "nan") {
+ if (s.find(".") == -1 && s.find("e") == -1)
+ s += ".0";
+ }
p_store_string_func(p_store_string_ud, s);
} break;
case Variant::STRING: {