diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-01-15 14:16:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-15 14:16:30 +0100 |
commit | d8cca33038086a65307578daa61cbeec024a1571 (patch) | |
tree | 1c64061a8c115b2ff953268875b3f05e7ef5a304 /core | |
parent | 72f501de13dc081d798f6124ce6143e27c9cd111 (diff) | |
parent | 60d235622d13b8126001e61da096ca48244c2733 (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.cpp | 5 |
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(); } |