From 60d235622d13b8126001e61da096ca48244c2733 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Tue, 15 Jan 2019 11:14:51 +0100 Subject: Don't reset MultiplayerAPI when setting same peer. A GDScript call to: `multiplayer.network_peer.some_prop = true` seems to transalte to: ``` var temp = multiplayer.network_peer temp.some_prop = true multiplayer.network_peer = temp ``` Which caused the MultiplayerAPI to be resetted. The call to set_network_peer is now ignored if the peer that's beeing set is the same as the currently set one. --- core/io/multiplayer_api.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/io/multiplayer_api.cpp b/core/io/multiplayer_api.cpp index 9a2dddbb82..7680d47620 100644 --- a/core/io/multiplayer_api.cpp +++ b/core/io/multiplayer_api.cpp @@ -132,6 +132,8 @@ void MultiplayerAPI::set_root_node(Node *p_node) { void MultiplayerAPI::set_network_peer(const Ref &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"); -- cgit v1.2.3