summaryrefslogtreecommitdiff
path: root/core/variant.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/variant.cpp')
-rw-r--r--core/variant.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/core/variant.cpp b/core/variant.cpp
index e4be5520bc..eb9f34fee6 100644
--- a/core/variant.cpp
+++ b/core/variant.cpp
@@ -30,14 +30,14 @@
#include "variant.h"
-#include "core_string_names.h"
-#include "io/marshalls.h"
-#include "math_funcs.h"
-#include "print_string.h"
-#include "resource.h"
+#include "core/core_string_names.h"
+#include "core/io/marshalls.h"
+#include "core/math/math_funcs.h"
+#include "core/print_string.h"
+#include "core/resource.h"
+#include "core/variant_parser.h"
#include "scene/gui/control.h"
#include "scene/main/node.h"
-#include "variant_parser.h"
String Variant::get_type_name(Variant::Type p_type) {
@@ -858,7 +858,7 @@ bool Variant::is_one() const {
// atomic types
case BOOL: {
- return _data._bool == true;
+ return _data._bool;
} break;
case INT: {
@@ -1192,7 +1192,7 @@ Variant::operator int64_t() const {
case BOOL: return _data._bool ? 1 : 0;
case INT: return _data._int;
case REAL: return _data._real;
- case STRING: return operator String().to_int();
+ case STRING: return operator String().to_int64();
default: {
return 0;
@@ -1460,7 +1460,7 @@ Variant::operator String() const {
const Dictionary &d = *reinterpret_cast<const Dictionary *>(_data._mem);
//const String *K=NULL;
- String str;
+ String str("{");
List<Variant> keys;
d.get_key_list(&keys);
@@ -1479,8 +1479,9 @@ Variant::operator String() const {
for (int i = 0; i < pairs.size(); i++) {
if (i > 0)
str += ", ";
- str += "(" + pairs[i].key + ":" + pairs[i].value + ")";
+ str += pairs[i].key + ":" + pairs[i].value;
}
+ str += "}";
return str;
} break;
@@ -1661,7 +1662,17 @@ Variant::operator Transform() const {
return Transform(*_data._basis, Vector3());
else if (type == QUAT)
return Transform(Basis(*reinterpret_cast<const Quat *>(_data._mem)), Vector3());
- else
+ else if (type == TRANSFORM2D) {
+ const Transform2D &t = *_data._transform2d;
+ Transform m;
+ m.basis.elements[0][0] = t.elements[0][0];
+ m.basis.elements[1][0] = t.elements[0][1];
+ m.basis.elements[0][1] = t.elements[1][0];
+ m.basis.elements[1][1] = t.elements[1][1];
+ m.origin[0] = t.elements[2][0];
+ m.origin[1] = t.elements[2][1];
+ return m;
+ } else
return Transform();
}