diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-03-04 10:19:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-04 10:19:52 +0100 |
commit | 59290f98ef0fa7bf4a30a0c8b84dc8d61cb73098 (patch) | |
tree | 0aaded83cf8f40b86b8a79492a7628e3ea72910c | |
parent | 7ece08166291e95502eb329a73d8f66b72357278 (diff) | |
parent | c4dbd8a7445e74dd0b6959de56c952bad7da1a21 (diff) |
Merge pull request #36042 from sumit0190/exportInfNan
Read and write exported infs/nans correctly (#35388)
-rw-r--r-- | core/variant_parser.cpp | 10 |
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: { |