summaryrefslogtreecommitdiff
path: root/src/objdef.cpp
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2020-04-09 23:40:12 +0200
committerLoïc Blot <nerzhul@users.noreply.github.com>2020-05-05 19:26:59 +0200
commit2062c80e21b657fed8e68aa48523fa12ad5ef095 (patch)
tree4e760f58a01ddcf55593bed8abcbf41d11f1c96b /src/objdef.cpp
parentd1c6cc72cce7e02dcaca7797b463d071d67d27db (diff)
downloadminetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.gz
minetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.bz2
minetest-2062c80e21b657fed8e68aa48523fa12ad5ef095.zip
Allow ObjDefManager instances to be cloned
Diffstat (limited to 'src/objdef.cpp')
-rw-r--r--src/objdef.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/objdef.cpp b/src/objdef.cpp
index 08d6844fc..482544d37 100644
--- a/src/objdef.cpp
+++ b/src/objdef.cpp
@@ -182,3 +182,22 @@ bool ObjDefManager::decodeHandle(ObjDefHandle handle, u32 *index,
*uid = get_bits(handle, 24, 7);
return true;
}
+
+// Cloning
+
+void ObjDef::cloneTo(ObjDef *def) const
+{
+ def->index = index;
+ def->uid = uid;
+ def->handle = handle;
+ def->name = name;
+}
+
+void ObjDefManager::cloneTo(ObjDefManager *mgr) const
+{
+ mgr->m_ndef = m_ndef;
+ mgr->m_objects.reserve(m_objects.size());
+ for (const auto &obj : m_objects)
+ mgr->m_objects.push_back(obj->clone());
+ mgr->m_objtype = m_objtype;
+}