Merge pull request #1539 from Naros/dispatch-get-set-up-hierarchy
Make sure `_get` and `_set` dispatch up the class hierarchypull/1545/head
commit
3f4590f8e1
|
@ -274,23 +274,27 @@ public:
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static GDExtensionBool set_bind(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionConstVariantPtr p_value) { \
|
static GDExtensionBool set_bind(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionConstVariantPtr p_value) { \
|
||||||
if (p_instance && m_class::_get_set()) { \
|
if (p_instance) { \
|
||||||
|
if (m_inherits::set_bind(p_instance, p_name, p_value)) { \
|
||||||
|
return true; \
|
||||||
|
} \
|
||||||
if (m_class::_get_set() != m_inherits::_get_set()) { \
|
if (m_class::_get_set() != m_inherits::_get_set()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
return cls->_set(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<const ::godot::Variant *>(p_value)); \
|
return cls->_set(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<const ::godot::Variant *>(p_value)); \
|
||||||
} \
|
} \
|
||||||
return m_inherits::set_bind(p_instance, p_name, p_value); \
|
|
||||||
} \
|
} \
|
||||||
return false; \
|
return false; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static GDExtensionBool get_bind(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionVariantPtr r_ret) { \
|
static GDExtensionBool get_bind(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionVariantPtr r_ret) { \
|
||||||
if (p_instance && m_class::_get_get()) { \
|
if (p_instance) { \
|
||||||
|
if (m_inherits::get_bind(p_instance, p_name, r_ret)) { \
|
||||||
|
return true; \
|
||||||
|
} \
|
||||||
if (m_class::_get_get() != m_inherits::_get_get()) { \
|
if (m_class::_get_get() != m_inherits::_get_get()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
return cls->_get(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<::godot::Variant *>(r_ret)); \
|
return cls->_get(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<::godot::Variant *>(r_ret)); \
|
||||||
} \
|
} \
|
||||||
return m_inherits::get_bind(p_instance, p_name, r_ret); \
|
|
||||||
} \
|
} \
|
||||||
return false; \
|
return false; \
|
||||||
} \
|
} \
|
||||||
|
|
Loading…
Reference in New Issue