소스 검색

[Net] Fix SceneReplicationConfig setter.

Used by resource loader, it would always add properties as both sync and
spawn, disregarding the actual option value.
Fabio Alessandrelli 3 년 전
부모
커밋
32b16c876b
1개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. 10 2
      scene/resources/scene_replication_config.cpp

+ 10 - 2
scene/resources/scene_replication_config.cpp

@@ -52,11 +52,19 @@ bool SceneReplicationConfig::_set(const StringName &p_name, const Variant &p_val
 		ReplicationProperty &prop = properties[idx];
 		if (what == "sync") {
 			prop.sync = p_value;
-			sync_props.push_back(prop.name);
+			if (prop.sync) {
+				sync_props.push_back(prop.name);
+			} else {
+				sync_props.erase(prop.name);
+			}
 			return true;
 		} else if (what == "spawn") {
 			prop.spawn = p_value;
-			spawn_props.push_back(prop.name);
+			if (prop.spawn) {
+				spawn_props.push_back(prop.name);
+			} else {
+				spawn_props.erase(prop.name);
+			}
 			return true;
 		}
 	}