]> git.deb.at Git - rhonda/impostor.git/commitdiff
Add serialization for GameOptionsData (#31)
authorMm2PL <jakis128@gmail.com>
Wed, 30 Sep 2020 17:18:46 +0000 (19:18 +0200)
committerGitHub <noreply@github.com>
Wed, 30 Sep 2020 17:18:46 +0000 (19:18 +0200)
src/Impostor.Shared/Innersloth/GameOptionsData.cs

index 711edb1763805ac78485c2ae8b64f1e73ef16a0d..4150a74bf6bc0dae4a474b5fac3b9852dfb01205 100644 (file)
@@ -30,7 +30,33 @@ namespace Impostor.Shared.Innersloth
         
         public void Serialize(BinaryWriter writer, byte version)
         {
-            throw new NotImplementedException();
+            writer.Write((byte) version);
+            writer.Write((byte) MaxPlayers);
+            writer.Write((uint) Keywords);
+            writer.Write((byte) MapId);
+            writer.Write((float) PlayerSpeedMod);
+            writer.Write((float) CrewLightMod);
+            writer.Write((float) ImpostorLightMod);
+            writer.Write((float) KillCooldown);
+            writer.Write((byte) NumCommonTasks);
+            writer.Write((byte) NumLongTasks);
+            writer.Write((byte) NumShortTasks);
+            writer.Write((int) NumEmergencyMeetings);
+            writer.Write((byte) NumImpostors);
+            writer.Write((byte) KillDistance);
+            writer.Write((uint) DiscussionTime);
+            writer.Write((uint) VotingTime);
+            writer.Write((bool) IsDefaults);
+            if (version > 1)
+            {
+                writer.Write((byte) EmergencyCooldown);
+            }
+
+            if (version > 2)
+            {
+                writer.Write((bool) ConfirmImpostor);
+                writer.Write((bool) VisualTasks);
+            }
         }
 
         public static GameOptionsData Deserialize(byte[] bytes)