diff options
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(); } |