diff options
-rw-r--r-- | src/nodedef.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp index e2e5616f1..35ee291a0 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -311,6 +311,9 @@ public: void clear() { m_name_id_mapping.clear(); + + m_aliases.clear(); + for(u16 i=0; i<=MAX_CONTENT; i++) { ContentFeatures &f = m_content_features[i]; @@ -645,6 +648,14 @@ public: } writeU16(os, count); os<<serializeLongString(tmp_os.str()); + + writeU16(os, m_aliases.size()); + for(std::map<std::string, std::string>::const_iterator + i = m_aliases.begin(); i != m_aliases.end(); i++) + { + os<<serializeString(i->first); + os<<serializeString(i->second); + } } void deSerialize(std::istream &is, IGameDef *gamedef) { @@ -666,6 +677,15 @@ public: if(f->name != "") m_name_id_mapping.set(i, f->name); } + + u16 num_aliases = readU16(is); + if(!is.eof()){ + for(u16 i=0; i<num_aliases; i++){ + std::string name = deSerializeString(is); + std::string convert_to = deSerializeString(is); + m_aliases[name] = convert_to; + } + } } private: // Features indexed by id |