diff options
author | sfan5 <sfan5@live.de> | 2020-04-09 23:40:12 +0200 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2020-05-05 19:26:59 +0200 |
commit | 2062c80e21b657fed8e68aa48523fa12ad5ef095 (patch) | |
tree | 4e760f58a01ddcf55593bed8abcbf41d11f1c96b /src/objdef.cpp | |
parent | d1c6cc72cce7e02dcaca7797b463d071d67d27db (diff) | |
download | hax-minetest-server-2062c80e21b657fed8e68aa48523fa12ad5ef095.tar.gz hax-minetest-server-2062c80e21b657fed8e68aa48523fa12ad5ef095.zip |
Allow ObjDefManager instances to be cloned
Diffstat (limited to 'src/objdef.cpp')
-rw-r--r-- | src/objdef.cpp | 19 |
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; +} |