Add serialization for node aliases to let client show inventory images correctly

master
Perttu Ahola 2011-12-04 00:07:02 +02:00
parent 4b00d4d9d2
commit 658d1a7235
1 changed files with 20 additions and 0 deletions

View File

@ -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