Skip to content

Commit 9d5a5ab

Browse files
committed
Make sure _get and _set dispatch up the class hierarchy
1 parent f2b521f commit 9d5a5ab

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

include/godot_cpp/classes/wrapped.hpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -274,23 +274,27 @@ public:
274274
} \
275275
\
276276
static GDExtensionBool set_bind(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionConstVariantPtr p_value) { \
277-
if (p_instance && m_class::_get_set()) { \
277+
if (p_instance) { \
278+
if (m_inherits::set_bind(p_instance, p_name, p_value)) { \
279+
return true; \
280+
} \
278281
if (m_class::_get_set() != m_inherits::_get_set()) { \
279282
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
280283
return cls->_set(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<const ::godot::Variant *>(p_value)); \
281284
} \
282-
return m_inherits::set_bind(p_instance, p_name, p_value); \
283285
} \
284286
return false; \
285287
} \
286288
\
287289
static GDExtensionBool get_bind(GDExtensionClassInstancePtr p_instance, GDExtensionConstStringNamePtr p_name, GDExtensionVariantPtr r_ret) { \
288-
if (p_instance && m_class::_get_get()) { \
290+
if (p_instance) { \
291+
if (m_inherits::get_bind(p_instance, p_name, r_ret)) { \
292+
return true; \
293+
} \
289294
if (m_class::_get_get() != m_inherits::_get_get()) { \
290295
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
291296
return cls->_get(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<::godot::Variant *>(r_ret)); \
292297
} \
293-
return m_inherits::get_bind(p_instance, p_name, r_ret); \
294298
} \
295299
return false; \
296300
} \

0 commit comments

Comments
 (0)