diff options
author | Juan Linietsky <reduzio@gmail.com> | 2018-04-08 09:39:03 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-08 09:39:03 -0300 |
commit | 4ee3f3251dc55ae49c873bc1895cecf75bc0bf8a (patch) | |
tree | ad5442ba88596748b67ec6834a50b61543c8d916 /core/variant_op.cpp | |
parent | 8a5fb669ae3590fa1aa3f1fb90d01c3dca843c94 (diff) | |
parent | 9f6c0c6eaef754f2049ee536c5b38bfdc65fbd08 (diff) | |
download | redot-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.cpp | 13 |
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()) { |