diff options
-rw-r--r-- | src/init.cpp | 13 | ||||
-rw-r--r-- | src/net/WebRTCPeerNative.cpp | 2 | ||||
-rw-r--r-- | src/net/WebRTCPeerNative.hpp | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/init.cpp b/src/init.cpp index ec6998b..9b02bd9 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -6,8 +6,17 @@ extern "C" void GDN_EXPORT godot_gdnative_init(godot_gdnative_init_options *o) { const godot_gdnative_core_api_struct *api = o->api_struct; for (int i = 0; i < api->num_extensions; i++) { - if (api->extensions[i]->type == GDNATIVE_EXT_NET) { - WebRTCPeerNative::_net_api = (godot_gdnative_ext_net_api_struct *)api->extensions[i]; + + if (api->extensions[i]->type != GDNATIVE_EXT_NET) + continue; + + const godot_gdnative_ext_net_api_struct *net_api = (godot_gdnative_ext_net_api_struct *)api->extensions[i]; + + if (!net_api->next) + break; + + if (net_api->next->version.major == 3 && net_api->next->version.minor == 2) { + WebRTCPeerNative::_net_api = (const godot_gdnative_ext_net_3_2_api_struct *)net_api->next; } } diff --git a/src/net/WebRTCPeerNative.cpp b/src/net/WebRTCPeerNative.cpp index 449cca2..a0872bc 100644 --- a/src/net/WebRTCPeerNative.cpp +++ b/src/net/WebRTCPeerNative.cpp @@ -1,6 +1,6 @@ #include "WebRTCPeerNative.hpp" -const godot_gdnative_ext_net_api_struct *WebRTCPeerNative::_net_api = NULL; +const godot_gdnative_ext_net_3_2_api_struct *WebRTCPeerNative::_net_api = NULL; void WebRTCPeerNative::register_interface(const godot_net_webrtc_peer *p_interface) { ERR_FAIL_COND(!_net_api); diff --git a/src/net/WebRTCPeerNative.hpp b/src/net/WebRTCPeerNative.hpp index 90e08b3..d5f2c6f 100644 --- a/src/net/WebRTCPeerNative.hpp +++ b/src/net/WebRTCPeerNative.hpp @@ -52,7 +52,7 @@ protected: public: static void _register_methods(); - static const godot_gdnative_ext_net_api_struct *_net_api; + static const godot_gdnative_ext_net_3_2_api_struct *_net_api; void _init(); void register_interface(const godot_net_webrtc_peer *interface); |