@@ -50,7 +50,11 @@ GDExtensionInterfaceGetProcAddress get_proc_address = nullptr;
5050GDExtensionClassLibraryPtr library = nullptr ;
5151void *token = nullptr ;
5252
53+ #if GODOT_VERSION_MINOR >= 5
5354GDExtensionGodotVersion2 godot_version = {};
55+ #else
56+ GDExtensionGodotVersion godot_version = {};
57+ #endif
5458
5559} // namespace gdextension_interface
5660
@@ -142,8 +146,13 @@ GDExtensionBool GDExtensionBinding::init(GDExtensionInterfaceGetProcAddress p_ge
142146 ::godot::gdextension_interface::library = p_library;
143147 ::godot::gdextension_interface::token = p_library;
144148
149+ #if GODOT_VERSION_MINOR >= 5
145150 LOAD_PROC_ADDRESS (get_godot_version2, GDExtensionInterfaceGetGodotVersion2);
146151 ::godot::gdextension_interface::get_godot_version2 (&::godot::gdextension_interface::godot_version);
152+ #else
153+ LOAD_PROC_ADDRESS (get_godot_version, GDExtensionInterfaceGetGodotVersion);
154+ ::godot::gdextension_interface::get_godot_version (&::godot::gdextension_interface::godot_version);
155+ #endif
147156
148157 // Check that godot-cpp was compiled using an extension_api.json older or at the
149158 // same version as the Godot that is loading it.
@@ -204,12 +213,16 @@ void GDExtensionBinding::initialize_level(void *p_userdata, GDExtensionInitializ
204213 }
205214 level_initialized[p_level]++;
206215
216+ #if GODOT_VERSION_MINOR >= 5
207217 if ((ModuleInitializationLevel)p_level == MODULE_INITIALIZATION_LEVEL_CORE && init_data && init_data->has_main_loop_callbacks ()) {
208218 ::godot::gdextension_interface::register_main_loop_callbacks (::godot::gdextension_interface::library, &init_data->main_loop_callbacks);
209219 }
220+ #endif
210221
211222 if ((ModuleInitializationLevel)p_level == MODULE_INITIALIZATION_LEVEL_EDITOR) {
223+ #if GODOT_VERSION_MINOR >= 5
212224 ::godot::gdextension_interface::editor_register_get_classes_used_callback (::godot::gdextension_interface::library, &ClassDB::_editor_get_classes_used_callback);
225+ #endif
213226
214227 const ::godot::internal::DocData &doc_data = ::godot::internal::get_doc_data ();
215228 if (doc_data.is_valid ()) {
@@ -278,6 +291,7 @@ void GDExtensionBinding::InitObject::set_minimum_library_initialization_level(Mo
278291 init_data->minimum_initialization_level = static_cast <GDExtensionInitializationLevel>(p_level);
279292}
280293
294+ #if GODOT_VERSION_MINOR >= 5
281295void GDExtensionBinding::InitObject::register_startup_callback (GDExtensionMainLoopStartupCallback p_callback) const {
282296 init_data->main_loop_callbacks .startup_func = p_callback;
283297}
@@ -289,6 +303,7 @@ void GDExtensionBinding::InitObject::register_frame_callback(GDExtensionMainLoop
289303void GDExtensionBinding::InitObject::register_shutdown_callback (GDExtensionMainLoopShutdownCallback p_callback) const {
290304 init_data->main_loop_callbacks .shutdown_func = p_callback;
291305}
306+ #endif
292307
293308GDExtensionBool GDExtensionBinding::InitObject::init () const {
294309 return GDExtensionBinding::init (get_proc_address, library, init_data, initialization);
0 commit comments