File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -118,28 +118,20 @@ class ObjectDB {
118118
119119template <typename T>
120120T *Object::cast_to (Object *p_object) {
121- if (p_object == nullptr ) {
122- return nullptr ;
123- }
124- StringName class_name = T::get_class_static ();
125- GDExtensionObjectPtr casted = ::godot::gdextension_interface::object_cast_to (p_object->_owner , ::godot::gdextension_interface::classdb_get_class_tag (class_name._native_ptr ()));
126- if (casted == nullptr ) {
127- return nullptr ;
128- }
129- return dynamic_cast <T *>(::godot::internal::get_object_instance_binding (casted));
121+ #if GODOT_VERSION_MINOR >= 7
122+ return p_object && p_object->is_class (T::get_class_static ()) ? static_cast <T *>(p_object) : nullptr ;
123+ #else
124+ return p_object ? dynamic_cast <T *>(p_object) : nullptr ;
125+ #endif
130126}
131127
132128template <typename T>
133129const T *Object::cast_to (const Object *p_object) {
134- if (p_object == nullptr ) {
135- return nullptr ;
136- }
137- StringName class_name = T::get_class_static ();
138- GDExtensionObjectPtr casted = ::godot::gdextension_interface::object_cast_to (p_object->_owner , ::godot::gdextension_interface::classdb_get_class_tag (class_name._native_ptr ()));
139- if (casted == nullptr ) {
140- return nullptr ;
141- }
142- return dynamic_cast <const T *>(::godot::internal::get_object_instance_binding (casted));
130+ #if GODOT_VERSION_MINOR >= 7
131+ return p_object && p_object->is_class (T::get_class_static ()) ? static_cast <T *>(p_object) : nullptr ;
132+ #else
133+ return p_object ? dynamic_cast <T *>(p_object) : nullptr ;
134+ #endif
143135}
144136
145137} // namespace godot
You can’t perform that action at this time.
0 commit comments