From 46d1d70e4c37973a9d9c9b69b150731ca9f53b7d Mon Sep 17 00:00:00 2001 From: PilzAdam Date: Sat, 20 Jul 2013 21:25:21 +0200 Subject: [PATCH] Bump protocol version --- src/clientserver.h | 7 ++++++- src/itemdef.cpp | 14 ++++++++++---- src/nodedef.cpp | 10 +++++----- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/clientserver.h b/src/clientserver.h index a84d29a9..0d07d64f 100644 --- a/src/clientserver.h +++ b/src/clientserver.h @@ -95,9 +95,14 @@ SharedBuffer makePacket_TOCLIENT_TIME_OF_DAY(u16 time, float time_speed); TOCLIENT_HUDRM TOCLIENT_HUDCHANGE TOCLIENT_HUD_SET_FLAGS + PROTOCOL_VERSION 21: + TOCLIENT_BREATH + TOSERVER_BREATH + range added to ItemDefinition + drowning, leveled and liquid_range added to ContentFeatures */ -#define LATEST_PROTOCOL_VERSION 20 +#define LATEST_PROTOCOL_VERSION 21 // Server's supported network protocol range #define SERVER_PROTOCOL_VERSION_MIN 13 diff --git a/src/itemdef.cpp b/src/itemdef.cpp index 4ac23d0f..83a70f1d 100644 --- a/src/itemdef.cpp +++ b/src/itemdef.cpp @@ -119,8 +119,10 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const { if(protocol_version <= 17) writeU8(os, 1); // version - else + else if(protocol_version <= 20) writeU8(os, 2); // version + else + writeU8(os, 3); // version writeU8(os, type); os< 20){ writeF1000(os, range); } } @@ -159,7 +163,7 @@ void ItemDefinition::deSerialize(std::istream &is) // Deserialize int version = readU8(is); - if(version != 1 && version != 2) + if(version < 1 || version > 3) throw SerializationError("unsupported ItemDefinition version"); type = (enum ItemType)readU8(is); name = deSerializeString(is); @@ -192,16 +196,18 @@ void ItemDefinition::deSerialize(std::istream &is) // Set the old default sound sound_place.name = "default_place_node"; sound_place.gain = 0.5; - } else if(version == 2) { + } else if(version >= 2) { node_placement_prediction = deSerializeString(is); //deserializeSimpleSoundSpec(sound_place, is); sound_place.name = deSerializeString(is); sound_place.gain = readF1000(is); } + if(version == 3) { + range = readF1000(is); + } // If you add anything here, insert it primarily inside the try-catch // block to not need to increase the version. try{ - range = readF1000(is); }catch(SerializationError &e) {}; } diff --git a/src/nodedef.cpp b/src/nodedef.cpp index b1ce7bbc..a4d03688 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -281,11 +281,11 @@ void ContentFeatures::serialize(std::ostream &os, u16 protocol_version) serializeSimpleSoundSpec(sound_dig, os); serializeSimpleSoundSpec(sound_dug, os); writeU8(os, rightclickable); - // Stuff below should be moved to correct place in a version that otherwise changes - // the protocol version writeU8(os, drowning); writeU8(os, leveled); writeU8(os, liquid_range); + // Stuff below should be moved to correct place in a version that otherwise changes + // the protocol version } void ContentFeatures::deSerialize(std::istream &is) @@ -345,14 +345,14 @@ void ContentFeatures::deSerialize(std::istream &is) deSerializeSimpleSoundSpec(sound_dig, is); deSerializeSimpleSoundSpec(sound_dug, is); rightclickable = readU8(is); + drowning = readU8(is); + leveled = readU8(is); + liquid_range = readU8(is); // If you add anything here, insert it primarily inside the try-catch // block to not need to increase the version. try{ // Stuff below should be moved to correct place in a version that // otherwise changes the protocol version - drowning = readU8(is); - leveled = readU8(is); - liquid_range = readU8(is); }catch(SerializationError &e) {}; }