Pārlūkot izejas kodu

Merge pull request #162 from BastiaanOlij/fix_subclass

Fixed GODOT_SUBCLASS macro
Thomas Herzog 7 gadi atpakaļ
vecāks
revīzija
6d48282187
1 mainītis faili ar 4 papildinājumiem un 2 dzēšanām
  1. 4 2
      include/core/Godot.hpp

+ 4 - 2
include/core/Godot.hpp

@@ -46,10 +46,12 @@ T *get_wrapper(godot_object *obj)
 
 #define GODOT_SUBCLASS(Name, Base) \
 	public: inline static const char *___get_type_name() { return static_cast<const char *>(#Name); } \
-	inline static const char *___get_base_type_name() { return static_cast<const char *>(#Base); } \
+	enum { ___CLASS_IS_SCRIPT = 1, }; \
+	inline static Name *_new() { godot::NativeScript *script = godot::NativeScript::_new(); script->set_library(godot::get_wrapper<godot::GDNativeLibrary>((godot_object *) godot::gdnlib)); script->set_class_name(#Name); Name *instance = godot::as<Name>(script->new_()); return instance; } \
+	inline static const char *___get_base_type_name() { return #Base; } \
+	inline static Object *___get_from_variant(godot::Variant a) { return (godot::Object *) godot::as<Name>(godot::Object::___get_from_variant(a)); } \
 	private:
 
-
 template<class T>
 struct _ArgCast {
 	static T _arg_cast(Variant a)