Fix bone-attached entities (#10015)
[oweals/minetest.git] / src / metadata.cpp
index 6ad65e007843a0f9af81f09b19cd5b1cd71e4fee..453ac1c9adc905d7193415ce588f321a0fb80fa5 100644 (file)
@@ -27,6 +27,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 void Metadata::clear()
 {
        m_stringvars.clear();
+       m_modified = true;
 }
 
 bool Metadata::empty() const
@@ -68,6 +69,18 @@ const std::string &Metadata::getString(const std::string &name, u16 recursion) c
        return resolveString(it->second, recursion);
 }
 
+bool Metadata::getStringToRef(
+               const std::string &name, std::string &str, u16 recursion) const
+{
+       StringMap::const_iterator it = m_stringvars.find(name);
+       if (it == m_stringvars.end()) {
+               return false;
+       }
+
+       str = resolveString(it->second, recursion);
+       return true;
+}
+
 /**
  * Sets var to name key in the metadata storage
  *
@@ -88,6 +101,7 @@ bool Metadata::setString(const std::string &name, const std::string &var)
        }
 
        m_stringvars[name] = var;
+       m_modified = true;
        return true;
 }