diff options
author | Joey Sacchini <joey@sacchini.net> | 2020-10-13 14:48:32 -0400 |
---|---|---|
committer | Joey Sacchini <joey@sacchini.net> | 2020-10-13 14:48:32 -0400 |
commit | 716f80ae1e6e3c817c1cd958e09216b414ca0388 (patch) | |
tree | 11287c750f57ddb01551b1e153cff79e80eba54f /src/v1_15_2.rs | |
parent | 58b0cc73e97314dba2b9b1d4c4ac9a9f924f0247 (diff) | |
download | mcproto-rs-716f80ae1e6e3c817c1cd958e09216b414ca0388.tar.gz mcproto-rs-716f80ae1e6e3c817c1cd958e09216b414ca0388.tar.bz2 mcproto-rs-716f80ae1e6e3c817c1cd958e09216b414ca0388.zip |
fix stop sound
Diffstat (limited to 'src/v1_15_2.rs')
-rw-r--r-- | src/v1_15_2.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/v1_15_2.rs b/src/v1_15_2.rs index 34568f9..7622018 100644 --- a/src/v1_15_2.rs +++ b/src/v1_15_2.rs @@ -2155,12 +2155,13 @@ pub struct StopSoundSpec { impl Serialize for StopSoundSpec { fn mc_serialize<S: Serializer>(&self, to: &mut S) -> SerializeResult { + let has_sound = self.sound.is_some(); + let has_source = self.source.is_some(); let mut flags = 0; - if self.sound.is_some() && self.source.is_some() { - flags |= 0x03; - } else if self.sound.is_some() { + if has_sound { flags |= 0x02; - } else if self.source.is_some() { + } + if has_source { flags |= 0x01; } @@ -2181,9 +2182,8 @@ impl Deserialize for StopSoundSpec { fn mc_deserialize(data: &[u8]) -> DeserializeResult<'_, Self> { let Deserialized { value: flags, data } = u8::mc_deserialize(data)?; - let is_both_present = flags & 0x03 != 0; - let is_source_present = is_both_present || flags & 0x01 != 0; - let is_sound_present = is_both_present || flags & 0x02 != 0; + let is_source_present = flags & 0x01 != 0; + let is_sound_present = flags & 0x02 != 0; let (source, data) = if is_source_present { let Deserialized { value: source, data } = SoundCategory::mc_deserialize(data)?; |