diff --git a/Projects/Server/Serialization/IGenericReader.cs b/Projects/Server/Serialization/IGenericReader.cs index 9717debb3..6bc7a6da1 100644 --- a/Projects/Server/Serialization/IGenericReader.cs +++ b/Projects/Server/Serialization/IGenericReader.cs @@ -70,7 +70,7 @@ namespace Server int Read(Span buffer); unsafe T ReadEnum() where T : unmanaged, Enum { - switch (ReadByte()) + switch (sizeof(T)) { case 1: { diff --git a/Projects/Server/Serialization/IGenericWriter.cs b/Projects/Server/Serialization/IGenericWriter.cs index 58a83edbd..5507f8799 100644 --- a/Projects/Server/Serialization/IGenericWriter.cs +++ b/Projects/Server/Serialization/IGenericWriter.cs @@ -118,32 +118,26 @@ namespace Server void Write(ReadOnlySpan bytes); unsafe void WriteEnum(T value) where T : unmanaged, Enum { - var size = sizeof(T); - - switch (size) + switch (sizeof(T)) { default: throw new ArgumentException($"Argument of type {typeof(T)} is not a normal enum"); case 1: { - Write((byte)1); Write(*(byte*)&value); break; } case 2: { - Write((byte)2); Write(*(ushort*)&value); break; } case 4: { - Write((byte)3); WriteEncodedInt(*(int*)&value); break; } case 8: { - Write((byte)4); Write(*(ulong*)&value); break; }