Bump protocol version
authorPilzAdam <pilzadam@minetest.net>
Sat, 20 Jul 2013 19:25:21 +0000 (21:25 +0200)
committerPilzAdam <pilzadam@minetest.net>
Sat, 20 Jul 2013 19:25:21 +0000 (21:25 +0200)
src/clientserver.h
src/itemdef.cpp
src/nodedef.cpp

index a84d29a9020aa8c97a979be271c19c3932453fff..0d07d64ff80451291a619e96b969b29928951b8c 100644 (file)
@@ -95,9 +95,14 @@ SharedBuffer<u8> 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
index 4ac23d0fc86e056caa0d3b7daf19891fb1e69e6f..83a70f1d7c368fdc45cb0397732425a2687e1456 100644 (file)
@@ -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<<serializeString(name);
        os<<serializeString(description);
@@ -148,6 +150,8 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
                //serializeSimpleSoundSpec(sound_place, os);
                os<<serializeString(sound_place.name);
                writeF1000(os, sound_place.gain);
+       }
+       if(protocol_version > 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) {};
 }
 
index b1ce7bbc8435b2caa1597ba3b25ba4a4ac2b8d39..a4d0368830007d92765cadc8f0ee5f95f25fdb4e 100644 (file)
@@ -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) {};
 }