diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-04-21 19:35:17 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-04-21 19:35:17 +0300 |
commit | c638442e78b953556e7dadd4c0c34cb0c719bbc8 (patch) | |
tree | a7c623944ba26d64c4fbf3218025d8ec0145d849 /src/mapblock.cpp | |
parent | 3c61d57f6d7f627b32b4a8c2f461a8e01e7ac378 (diff) | |
download | minetest-c638442e78b953556e7dadd4c0c34cb0c719bbc8.tar.gz minetest-c638442e78b953556e7dadd4c0c34cb0c719bbc8.tar.bz2 minetest-c638442e78b953556e7dadd4c0c34cb0c719bbc8.zip |
Some work-in-progress in hp and mobs and a frightening amount of random fixes.
Diffstat (limited to 'src/mapblock.cpp')
-rw-r--r-- | src/mapblock.cpp | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/mapblock.cpp b/src/mapblock.cpp index 38c081eec..5b8bc7b9f 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -1924,9 +1924,19 @@ void MapBlock::serialize(std::ostream &os, u8 version) */ if(version >= 14) { - std::ostringstream oss(std::ios_base::binary); - m_node_metadata.serialize(oss); - os<<serializeString(oss.str()); + if(version <= 15) + { + std::ostringstream oss(std::ios_base::binary); + m_node_metadata.serialize(oss); + os<<serializeString(oss.str()); + } + else + { + std::ostringstream oss(std::ios_base::binary); + m_node_metadata.serialize(oss); + compressZlib(oss.str(), os); + //os<<serializeLongString(oss.str()); + } } } } @@ -2055,9 +2065,20 @@ void MapBlock::deSerialize(std::istream &is, u8 version) { // Ignore errors try{ - std::string data = deSerializeString(is); - std::istringstream iss(data, std::ios_base::binary); - m_node_metadata.deSerialize(iss); + if(version <= 15) + { + std::string data = deSerializeString(is); + std::istringstream iss(data, std::ios_base::binary); + m_node_metadata.deSerialize(iss); + } + else + { + //std::string data = deSerializeLongString(is); + std::ostringstream oss(std::ios_base::binary); + decompressZlib(is, oss); + std::istringstream iss(oss.str(), std::ios_base::binary); + m_node_metadata.deSerialize(iss); + } } catch(SerializationError &e) { |