summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-02-23 11:05:19 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-02-23 11:05:19 +0100
commita386b799838dd7b1dfd7b91fece72f633e8b2428 (patch)
treea3060bdc0838a110047a5aaa5684a9b6eebbde30
parentb87f9f679e20817bf3e83c726f7602b3d47d4b13 (diff)
parent72f5bbde82013f783d705a1d68b2126375e0f1c7 (diff)
Merge pull request #73806 from Faless/mp/4.x_fix_prop_config_from_code
[MP] Fix replication config not updating sync/spawn props from code.
-rw-r--r--modules/multiplayer/scene_replication_config.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/modules/multiplayer/scene_replication_config.cpp b/modules/multiplayer/scene_replication_config.cpp
index c8621e7357..f8006228de 100644
--- a/modules/multiplayer/scene_replication_config.cpp
+++ b/modules/multiplayer/scene_replication_config.cpp
@@ -114,6 +114,8 @@ void SceneReplicationConfig::add_property(const NodePath &p_path, int p_index) {
if (p_index < 0 || p_index == properties.size()) {
properties.push_back(ReplicationProperty(p_path));
+ sync_props.push_back(p_path);
+ spawn_props.push_back(p_path);
return;
}
@@ -126,6 +128,16 @@ void SceneReplicationConfig::add_property(const NodePath &p_path, int p_index) {
c++;
}
properties.insert_before(I, ReplicationProperty(p_path));
+ sync_props.clear();
+ spawn_props.clear();
+ for (const ReplicationProperty &prop : properties) {
+ if (prop.sync) {
+ sync_props.push_back(p_path);
+ }
+ if (prop.spawn) {
+ spawn_props.push_back(p_path);
+ }
+ }
}
void SceneReplicationConfig::remove_property(const NodePath &p_path) {