From: miniduikboot Date: Wed, 7 Jul 2021 22:08:35 +0000 (+0200) Subject: Implement RPC 35: Update System X-Git-Tag: v1.6.0^2~5 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=eb86c3c683bf161a0887d94e641b66632735454b;p=rhonda%2Fimpostor.git Implement RPC 35: Update System --- diff --git a/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs b/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs new file mode 100644 index 0000000..269b865 --- /dev/null +++ b/src/Impostor.Api/Net/Messages/Rpcs/Rpc35UpdateSystem.cs @@ -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(game); + sId = reader.ReadUInt16(); + state = reader.ReadByte(); + ventId = reader.ReadByte(); + } + } +} diff --git a/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs b/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs index 4d14c63..30338f1 100644 --- a/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs +++ b/src/Impostor.Server/Net/Inner/Objects/ShipStatus/InnerShipStatus.cs @@ -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); }