summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-01-15 14:16:30 +0100
committerGitHub <noreply@github.com>2019-01-15 14:16:30 +0100
commitd8cca33038086a65307578daa61cbeec024a1571 (patch)
tree1c64061a8c115b2ff953268875b3f05e7ef5a304 /core
parent72f501de13dc081d798f6124ce6143e27c9cd111 (diff)
parent60d235622d13b8126001e61da096ca48244c2733 (diff)
Merge pull request #25010 from Faless/mp/fix_init
Fix MultiplayerAPI initialization, clear, set_network_peer.
Diffstat (limited to 'core')
-rw-r--r--core/io/multiplayer_api.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/io/multiplayer_api.cpp b/core/io/multiplayer_api.cpp
index 30c5bfcaa7..7680d47620 100644
--- a/core/io/multiplayer_api.cpp
+++ b/core/io/multiplayer_api.cpp
@@ -122,6 +122,7 @@ void MultiplayerAPI::clear() {
connected_peers.clear();
path_get_cache.clear();
path_send_cache.clear();
+ packet_cache.clear();
last_send_cache_id = 1;
}
@@ -131,6 +132,8 @@ void MultiplayerAPI::set_root_node(Node *p_node) {
void MultiplayerAPI::set_network_peer(const Ref<NetworkedMultiplayerPeer> &p_peer) {
+ if (p_peer == network_peer) return; // Nothing to do
+
if (network_peer.is_valid()) {
network_peer->disconnect("peer_connected", this, "_add_peer");
network_peer->disconnect("peer_disconnected", this, "_del_peer");
@@ -857,6 +860,8 @@ void MultiplayerAPI::_bind_methods() {
}
MultiplayerAPI::MultiplayerAPI() {
+ rpc_sender_id = 0;
+ root_node = NULL;
clear();
}