]> git.deb.at Git - rhonda/impostor.git/commitdiff
Implement RPC 35: Update System
authorminiduikboot <mini@duikbo.at>
Wed, 7 Jul 2021 22:08:35 +0000 (00:08 +0200)
committerminiduikboot <mini@duikbo.at>
Wed, 21 Jul 2021 18:46:33 +0000 (20:46 +0200)
src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs [new file with mode: 0644]
src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs

diff --git a/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs b/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs
new file mode 100644 (file)
index 0000000..269b865
--- /dev/null
@@ -0,0 +1,27 @@
+using Impostor.Api.Games;
+using Impostor.Api.Innersloth;
+using Impostor.Api.Net.Inner.Objects;
+
+namespace Impostor.Api.Net.Messages.Rpcs
+{
+    public static class Rpc35UpdateSystem
+    {
+        public static void Serialize(IMessageWriter writer, SystemTypes systemType, IInnerPlayerControl playerControl, ushort sid, byte state, byte ventId)
+        {
+            writer.Write((byte)systemType);
+            writer.Write(playerControl.NetId);
+            writer.Write(sid);
+            writer.Write(state);
+            writer.Write(ventId);
+        }
+
+        public static void Deserialize(IMessageReader reader, IGame game, out SystemTypes systemType, out IInnerPlayerControl? playerControl, out ushort sId, out byte state, out byte ventId)
+        {
+            systemType = (SystemTypes)reader.ReadByte();
+            playerControl = reader.ReadNetObject<IInnerPlayerControl>(game);
+            sId = reader.ReadUInt16();
+            state = reader.ReadByte();
+            ventId = reader.ReadByte();
+        }
+    }
+}
index 4d14c632ebb1b2ff6501bf606ab00b3ae335ccfd..30338f106b27fabd1790ac874c7635d81997d408 100644 (file)
@@ -105,6 +105,12 @@ namespace Impostor.Server.Net.Inner.Objects.ShipStatus
                     break;
                 }
 
+                case RpcCalls.UpdateSystem:
+                {
+                    Rpc35UpdateSystem.Deserialize(reader, Game, out var systemType, out var playerControl, out var sId, out var state, out var ventId);
+                    break;
+                }
+
                 default:
                     return await base.HandleRpcAsync(sender, target, call, reader);
             }