@@ -119,8 +119,10 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
119
119
{
120
120
if (protocol_version <= 17 )
121
121
writeU8 (os, 1 ); // version
122
- else
122
+ else if (protocol_version <= 20 )
123
123
writeU8 (os, 2 ); // version
124
+ else
125
+ writeU8 (os, 3 ); // version
124
126
writeU8 (os, type);
125
127
os<<serializeString (name);
126
128
os<<serializeString (description);
@@ -148,6 +150,8 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
148
150
// serializeSimpleSoundSpec(sound_place, os);
149
151
os<<serializeString (sound_place.name );
150
152
writeF1000 (os, sound_place.gain );
153
+ }
154
+ if (protocol_version > 20 ){
151
155
writeF1000 (os, range);
152
156
}
153
157
}
@@ -159,7 +163,7 @@ void ItemDefinition::deSerialize(std::istream &is)
159
163
160
164
// Deserialize
161
165
int version = readU8 (is);
162
- if (version != 1 && version != 2 )
166
+ if (version < 1 || version > 3 )
163
167
throw SerializationError (" unsupported ItemDefinition version" );
164
168
type = (enum ItemType)readU8 (is);
165
169
name = deSerializeString (is);
@@ -192,16 +196,18 @@ void ItemDefinition::deSerialize(std::istream &is)
192
196
// Set the old default sound
193
197
sound_place.name = " default_place_node" ;
194
198
sound_place.gain = 0.5 ;
195
- } else if (version = = 2 ) {
199
+ } else if (version > = 2 ) {
196
200
node_placement_prediction = deSerializeString (is);
197
201
// deserializeSimpleSoundSpec(sound_place, is);
198
202
sound_place.name = deSerializeString (is);
199
203
sound_place.gain = readF1000 (is);
200
204
}
205
+ if (version == 3 ) {
206
+ range = readF1000 (is);
207
+ }
201
208
// If you add anything here, insert it primarily inside the try-catch
202
209
// block to not need to increase the version.
203
210
try {
204
- range = readF1000 (is);
205
211
}catch (SerializationError &e) {};
206
212
}
207
213
0 commit comments