示例#1
0
        public static void ReadUserCmdDelta(BitMsg msg, ref Usercmd cmd, Usercmd?base_)
        {
            cmd = default;
            if (base_ != null)
            {
                cmd.gameTime    = msg.ReadDeltaIntCounter(base_.Value.gameTime);
                cmd.buttons     = msg.ReadDeltaByte(base_.Value.buttons);
                cmd.mx          = msg.ReadDeltaShort(base_.Value.mx);
                cmd.my          = msg.ReadDeltaShort(base_.Value.my);
                cmd.forwardmove = msg.ReadDeltaChar(base_.Value.forwardmove);
                cmd.rightmove   = msg.ReadDeltaChar(base_.Value.rightmove);
                cmd.upmove      = msg.ReadDeltaChar(base_.Value.upmove);
                cmd.angles0     = msg.ReadDeltaShort(base_.Value.angles0);
                cmd.angles1     = msg.ReadDeltaShort(base_.Value.angles1);
                cmd.angles2     = msg.ReadDeltaShort(base_.Value.angles2);
                return;
            }

            cmd.gameTime    = msg.ReadInt();
            cmd.buttons     = msg.ReadByte();
            cmd.mx          = msg.ReadShort();
            cmd.my          = msg.ReadShort();
            cmd.forwardmove = msg.ReadChar();
            cmd.rightmove   = msg.ReadChar();
            cmd.upmove      = msg.ReadChar();
            cmd.angles0     = msg.ReadShort();
            cmd.angles1     = msg.ReadShort();
            cmd.angles2     = msg.ReadShort();
        }
示例#2
0
 public void ServerSendReliableMessage(int clientNum, BitMsg msg)
 {
     if (AsyncNetwork.server.IsActive)
     {
         AsyncNetwork.server.SendReliableGameMessage(clientNum, msg);
     }
 }
示例#3
0
        public static void WriteUserCmdDelta(BitMsg msg, Usercmd cmd, Usercmd?base_)
        {
            if (base_ != null)
            {
                msg.WriteDeltaIntCounter(base_.Value.gameTime, cmd.gameTime);
                msg.WriteDeltaByte(base_.Value.buttons, cmd.buttons);
                msg.WriteDeltaShort(base_.Value.mx, cmd.mx);
                msg.WriteDeltaShort(base_.Value.my, cmd.my);
                msg.WriteDeltaChar(base_.Value.forwardmove, cmd.forwardmove);
                msg.WriteDeltaChar(base_.Value.rightmove, cmd.rightmove);
                msg.WriteDeltaChar(base_.Value.upmove, cmd.upmove);
                msg.WriteDeltaShort(base_.Value.angles0, cmd.angles0);
                msg.WriteDeltaShort(base_.Value.angles1, cmd.angles1);
                msg.WriteDeltaShort(base_.Value.angles2, cmd.angles2);
                return;
            }

            msg.WriteInt(cmd.gameTime);
            msg.WriteByte(cmd.buttons);
            msg.WriteShort(cmd.mx);
            msg.WriteShort(cmd.my);
            msg.WriteChar(cmd.forwardmove);
            msg.WriteChar(cmd.rightmove);
            msg.WriteChar(cmd.upmove);
            msg.WriteShort(cmd.angles0);
            msg.WriteShort(cmd.angles1);
            msg.WriteShort(cmd.angles2);
        }
示例#4
0
 public void ClientSendReliableMessage(BitMsg msg)
 {
     if (AsyncNetwork.client.IsActive)
     {
         AsyncNetwork.client.SendReliableGameMessage(msg);
     }
     else if (AsyncNetwork.server.IsActive)
     {
         AsyncNetwork.server.LocalClientSendReliableMessage(msg);
     }
 }