summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/init.cpp13
-rw-r--r--src/net/WebRTCPeerNative.cpp2
-rw-r--r--src/net/WebRTCPeerNative.hpp2
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);