From 06cdce1e1231fb5946ac9750f9b53b53c6f7e5f8 Mon Sep 17 00:00:00 2001 From: proller Date: Fri, 2 Aug 2013 00:51:36 +0400 Subject: Weather backward compatibility --- src/mapblock.cpp | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) (limited to 'src/mapblock.cpp') diff --git a/src/mapblock.cpp b/src/mapblock.cpp index bd2e19b41..617ba6584 100644 --- a/src/mapblock.cpp +++ b/src/mapblock.cpp @@ -636,11 +636,21 @@ void MapBlock::serialize(std::ostream &os, u8 version, bool disk) // Node timers m_node_timers.serialize(os, version); } - } else { - if(version >= 26){ - writeF1000(os, heat); - writeF1000(os, humidity); - } + } +} + +void MapBlock::serializeNetworkSpecific(std::ostream &os, u16 net_proto_version) +{ + if(data == NULL) + { + throw SerializationError("ERROR: Not writing dummy block."); + } + + if(net_proto_version >= 21){ + int version = 1; + writeU8(os, version); + writeF1000(os, heat); + writeF1000(os, humidity); } } @@ -743,17 +753,30 @@ void MapBlock::deSerialize(std::istream &is, u8 version, bool disk) <<": Node timers (ver>=25)"<= 26){ - heat = readF1000(is); - humidity = readF1000(is); - } } TRACESTREAM(<<"MapBlock::deSerialize "<= 1) { + heat = readF1000(is); + humidity = readF1000(is); + } + } + catch(SerializationError &e) + { + errorstream<<"WARNING: MapBlock::deSerializeNetworkSpecific(): Ignoring an error" + <<": "<