summaryrefslogtreecommitdiffstats
path: root/core/extension/gdextension_interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/extension/gdextension_interface.cpp')
-rw-r--r--core/extension/gdextension_interface.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/core/extension/gdextension_interface.cpp b/core/extension/gdextension_interface.cpp
index a70ad5262f..24517d71e4 100644
--- a/core/extension/gdextension_interface.cpp
+++ b/core/extension/gdextension_interface.cpp
@@ -1041,7 +1041,43 @@ static void gdextension_ref_set_object(GDExtensionRefPtr p_ref, GDExtensionObjec
ref->reference_ptr(o);
}
+#ifndef DISABLE_DEPRECATED
static GDExtensionScriptInstancePtr gdextension_script_instance_create(const GDExtensionScriptInstanceInfo *p_info, GDExtensionScriptInstanceDataPtr p_instance_data) {
+ const GDExtensionScriptInstanceInfo2 info_2 = {
+ p_info->set_func,
+ p_info->get_func,
+ p_info->get_property_list_func,
+ p_info->free_property_list_func,
+ p_info->property_can_revert_func,
+ p_info->property_get_revert_func,
+ p_info->get_owner_func,
+ p_info->get_property_state_func,
+ p_info->get_method_list_func,
+ p_info->free_method_list_func,
+ p_info->get_property_type_func,
+ p_info->has_method_func,
+ p_info->call_func,
+ nullptr, // notification_func.
+ p_info->to_string_func,
+ p_info->refcount_incremented_func,
+ p_info->refcount_decremented_func,
+ p_info->get_script_func,
+ p_info->is_placeholder_func,
+ p_info->set_fallback_func,
+ p_info->get_fallback_func,
+ p_info->get_language_func,
+ p_info->free_func,
+ };
+
+ ScriptInstanceExtension *script_instance_extension = memnew(ScriptInstanceExtension);
+ script_instance_extension->instance = p_instance_data;
+ script_instance_extension->native_info = &info_2;
+ script_instance_extension->deprecated_native_info.notification_func = p_info->notification_func;
+ return reinterpret_cast<GDExtensionScriptInstancePtr>(script_instance_extension);
+}
+#endif // DISABLE_DEPRECATED
+
+static GDExtensionScriptInstancePtr gdextension_script_instance_create2(const GDExtensionScriptInstanceInfo2 *p_info, GDExtensionScriptInstanceDataPtr p_instance_data) {
ScriptInstanceExtension *script_instance_extension = memnew(ScriptInstanceExtension);
script_instance_extension->instance = p_instance_data;
script_instance_extension->native_info = p_info;
@@ -1269,7 +1305,10 @@ void gdextension_setup_interface() {
REGISTER_INTERFACE_FUNC(object_get_instance_id);
REGISTER_INTERFACE_FUNC(ref_get_object);
REGISTER_INTERFACE_FUNC(ref_set_object);
+#ifndef DISABLE_DEPRECATED
REGISTER_INTERFACE_FUNC(script_instance_create);
+#endif // DISABLE_DEPRECATED
+ REGISTER_INTERFACE_FUNC(script_instance_create2);
REGISTER_INTERFACE_FUNC(placeholder_script_instance_create);
REGISTER_INTERFACE_FUNC(placeholder_script_instance_update);
REGISTER_INTERFACE_FUNC(object_get_script_instance);