summaryrefslogtreecommitdiffstats
path: root/include/godot_cpp
diff options
context:
space:
mode:
authorKarroffel <therzog@mail.de>2017-04-04 21:02:44 +0200
committerKarroffel <therzog@mail.de>2017-04-05 01:00:33 +0200
commit8aaef5a6a272750683328ba12d4dd84897e41fe5 (patch)
tree54b44ab074449a1b17889290b9e0fa70f627abf7 /include/godot_cpp
parentc40a9dce513099ead82ac5830d951b3e3dc00f86 (diff)
downloadredot-cpp-8aaef5a6a272750683328ba12d4dd84897e41fe5.tar.gz
use pointers for objects, default arguments
Diffstat (limited to 'include/godot_cpp')
-rw-r--r--include/godot_cpp/Godot.hpp12
-rw-r--r--include/godot_cpp/core/Transform.hpp4
-rw-r--r--include/godot_cpp/core/Variant.cpp12
3 files changed, 20 insertions, 8 deletions
diff --git a/include/godot_cpp/Godot.hpp b/include/godot_cpp/Godot.hpp
index 64b76d4..e2a9fe1 100644
--- a/include/godot_cpp/Godot.hpp
+++ b/include/godot_cpp/Godot.hpp
@@ -15,12 +15,20 @@ namespace godot {
#define GODOT_CLASS(Name, Base) \
public: inline static char *___get_type_name() { return (char *) #Name; } \
inline static char *___get_base_type_name() { return (char *) #Base; } \
- inline Name(godot_object *o) { __core_object = o; } \
- inline Name(const Variant& obj) { __core_object = ((Object) obj).__core_object; } \
+ Base *self; \
+ inline Name(godot_object *o) { self = (Base *) o; } \
private:
+ // inline Name(Object o) { this = (Name *) godot_dlinstance_get_userdata(o.__core_object);\
+ // memcpy(this, p, sizeof(Name)); } \
+ // inline Name(const Variant& obj) { __core_object = ((Object) obj).__core_object; } \
+template<class T>
+T *as(Object *obj)
+{
+ return (T *) godot_dlinstance_get_userdata(obj);
+}
// instance and destroy funcs
diff --git a/include/godot_cpp/core/Transform.hpp b/include/godot_cpp/core/Transform.hpp
index 74b2ef0..f6f5143 100644
--- a/include/godot_cpp/core/Transform.hpp
+++ b/include/godot_cpp/core/Transform.hpp
@@ -77,6 +77,10 @@ public:
operator String() const;
+ inline Transform(real_t xx, real_t xy, real_t xz, real_t yx, real_t yy, real_t yz, real_t zx, real_t zy, real_t zz,real_t tx, real_t ty, real_t tz) {
+ set(xx, xy, xz, yx, yy, yz, zx, zy, zz,tx, ty, tz);
+ }
+
Transform(const Basis& p_basis, const Vector3& p_origin=Vector3());
inline Transform() {}
diff --git a/include/godot_cpp/core/Variant.cpp b/include/godot_cpp/core/Variant.cpp
index edb7672..394d97d 100644
--- a/include/godot_cpp/core/Variant.cpp
+++ b/include/godot_cpp/core/Variant.cpp
@@ -32,7 +32,7 @@ Variant::Variant(signed int p_int) // real one
Variant::Variant(unsigned int p_int)
{
- godot_variant_new_int(&_godot_variant, p_int);
+ godot_variant_new_uint(&_godot_variant, p_int);
}
Variant::Variant(signed short p_short) // real one
@@ -48,7 +48,7 @@ Variant::Variant(int64_t p_char) // real one
Variant::Variant(uint64_t p_char)
{
- godot_variant_new_int(&_godot_variant, p_char);
+ godot_variant_new_uint(&_godot_variant, p_char);
}
Variant::Variant(float p_float)
@@ -219,7 +219,7 @@ Variant::operator signed int() const
}
Variant::operator unsigned int() const // this is the real one
{
- return godot_variant_as_int(&_godot_variant);
+ return godot_variant_as_uint(&_godot_variant);
}
Variant::operator signed short() const
{
@@ -227,7 +227,7 @@ Variant::operator signed short() const
}
Variant::operator unsigned short() const
{
- return godot_variant_as_int(&_godot_variant);
+ return godot_variant_as_uint(&_godot_variant);
}
Variant::operator signed char() const
{
@@ -235,7 +235,7 @@ Variant::operator signed char() const
}
Variant::operator unsigned char() const
{
- return godot_variant_as_int(&_godot_variant);
+ return godot_variant_as_uint(&_godot_variant);
}
Variant::operator int64_t() const
{
@@ -243,7 +243,7 @@ Variant::operator int64_t() const
}
Variant::operator uint64_t() const
{
- return godot_variant_as_int(&_godot_variant);
+ return godot_variant_as_uint(&_godot_variant);
}