Browse Source

Merge pull request #87186 from Faless/mp/fix_remote_sync_cleanup

[MP] Fix remote net ID cleanup
Rémi Verschelde 1 year ago
parent
commit
8b0c5f2fca

+ 1 - 1
modules/multiplayer/multiplayer_synchronizer.cpp

@@ -49,11 +49,11 @@ void MultiplayerSynchronizer::_stop() {
 	}
 #endif
 	root_node_cache = ObjectID();
-	reset();
 	Node *node = is_inside_tree() ? get_node_or_null(root_path) : nullptr;
 	if (node) {
 		get_multiplayer()->object_configuration_remove(node, this);
 	}
+	reset();
 }
 
 void MultiplayerSynchronizer::_start() {

+ 1 - 0
modules/multiplayer/scene_replication_interface.cpp

@@ -246,6 +246,7 @@ Error SceneReplicationInterface::on_replication_start(Object *p_obj, Variant p_c
 		uint32_t net_id = pending_sync_net_ids[0];
 		pending_sync_net_ids.pop_front();
 		peers_info[pending_spawn_remote].recv_sync_ids[net_id] = sync->get_instance_id();
+		sync->set_net_id(net_id);
 
 		// Try to apply spawn state (before ready).
 		if (pending_buffer_size > 0) {