diff --git a/Content.Shared/Preferences/GameSettings.cs b/Content.Shared/Preferences/GameSettings.cs index 92e473035e..f41811bc36 100644 --- a/Content.Shared/Preferences/GameSettings.cs +++ b/Content.Shared/Preferences/GameSettings.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Preferences /// Information needed for character setup. /// [Serializable, NetSerializable] - public class GameSettings + public sealed class GameSettings { private int _maxCharacterSlots; diff --git a/Content.Shared/Preferences/SharedPreferencesManager.cs b/Content.Shared/Preferences/SharedPreferencesManager.cs index fe5936b1d6..4d7180794d 100644 --- a/Content.Shared/Preferences/SharedPreferencesManager.cs +++ b/Content.Shared/Preferences/SharedPreferencesManager.cs @@ -29,16 +29,16 @@ namespace Content.Shared.Preferences public override void ReadFromBuffer(NetIncomingMessage buffer) { var serializer = IoCManager.Resolve(); - var length = buffer.ReadInt32(); + var length = buffer.ReadVariableInt32(); using (var stream = buffer.ReadAsStream(length)) { - Preferences = serializer.Deserialize(stream); + serializer.DeserializeDirect(stream, out Preferences); } - length = buffer.ReadInt32(); + length = buffer.ReadVariableInt32(); using (var stream = buffer.ReadAsStream(length)) { - Settings = serializer.Deserialize(stream); + serializer.DeserializeDirect(stream, out Settings); } } @@ -47,15 +47,17 @@ namespace Content.Shared.Preferences var serializer = IoCManager.Resolve(); using (var stream = new MemoryStream()) { - serializer.Serialize(stream, Preferences); - buffer.Write((int)stream.Length); - buffer.Write(stream.ToArray()); + serializer.SerializeDirect(stream, Preferences); + buffer.WriteVariableInt32((int)stream.Length); + stream.TryGetBuffer(out var segment); + buffer.Write(segment); } using (var stream = new MemoryStream()) { - serializer.Serialize(stream, Settings); - buffer.Write((int)stream.Length); - buffer.Write(stream.ToArray()); + serializer.SerializeDirect(stream, Settings); + buffer.WriteVariableInt32((int)stream.Length); + stream.TryGetBuffer(out var segment); + buffer.Write(segment); } } } @@ -78,12 +80,12 @@ namespace Content.Shared.Preferences public override void ReadFromBuffer(NetIncomingMessage buffer) { - SelectedCharacterIndex = buffer.ReadInt32(); + SelectedCharacterIndex = buffer.ReadVariableInt32(); } public override void WriteToBuffer(NetOutgoingMessage buffer) { - buffer.Write(SelectedCharacterIndex); + buffer.WriteVariableInt32(SelectedCharacterIndex); } } @@ -108,7 +110,7 @@ namespace Content.Shared.Preferences { Slot = buffer.ReadInt32(); var serializer = IoCManager.Resolve(); - var length = buffer.ReadInt32(); + var length = buffer.ReadVariableInt32(); using var stream = buffer.ReadAsStream(length); Profile = serializer.Deserialize(stream); } @@ -120,8 +122,9 @@ namespace Content.Shared.Preferences using (var stream = new MemoryStream()) { serializer.Serialize(stream, Profile); - buffer.Write((int)stream.Length); - buffer.Write(stream.ToArray()); + buffer.WriteVariableInt32((int)stream.Length); + stream.TryGetBuffer(out var segment); + buffer.Write(segment); } } }