summaryrefslogtreecommitdiffstats
path: root/core/variant_op.cpp
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2018-04-08 09:39:03 -0300
committerGitHub <noreply@github.com>2018-04-08 09:39:03 -0300
commit4ee3f3251dc55ae49c873bc1895cecf75bc0bf8a (patch)
treead5442ba88596748b67ec6834a50b61543c8d916 /core/variant_op.cpp
parent8a5fb669ae3590fa1aa3f1fb90d01c3dca843c94 (diff)
parent9f6c0c6eaef754f2049ee536c5b38bfdc65fbd08 (diff)
downloadredot-engine-4ee3f3251dc55ae49c873bc1895cecf75bc0bf8a.tar.gz
Merge pull request #17382 from bojidar-bg/13971-path-array-unsaved
Duplicate Arrays and Dictionaries when instancing scene in editor
Diffstat (limited to 'core/variant_op.cpp')
-rw-r--r--core/variant_op.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/core/variant_op.cpp b/core/variant_op.cpp
index 842f5f0af6..8ad981ed0e 100644
--- a/core/variant_op.cpp
+++ b/core/variant_op.cpp
@@ -3415,6 +3415,19 @@ Variant Variant::iter_get(const Variant &r_iter, bool &r_valid) const {
return Variant();
}
+Variant Variant::duplicate(bool deep) const {
+ switch (type) {
+ // case OBJECT:
+ // return operator Object *()->duplicate();
+ case DICTIONARY:
+ return operator Dictionary().duplicate(deep);
+ case ARRAY:
+ return operator Array().duplicate(deep);
+ default:
+ return *this;
+ }
+}
+
void Variant::blend(const Variant &a, const Variant &b, float c, Variant &r_dst) {
if (a.type != b.type) {
if (a.is_num() && b.is_num()) {