Esempio n. 1
0
        static void BaseMove(usercmd_t cmd)
        {
            AdjustAngles();
            cmd.Clear();
            Math3D.VectorCopy(Globals.cl.viewangles, cmd.angles);
            if ((in_strafe.state & 1) != 0)
            {
                cmd.sidemove += (short)(Globals.cl_sidespeed.value * KeyState(in_right));
                cmd.sidemove -= (short)(Globals.cl_sidespeed.value * KeyState(in_left));
            }

            cmd.sidemove += (short)(Globals.cl_sidespeed.value * KeyState(in_moveright));
            cmd.sidemove -= (short)(Globals.cl_sidespeed.value * KeyState(in_moveleft));
            cmd.upmove   += (short)(Globals.cl_upspeed.value * KeyState(in_up));
            cmd.upmove   -= (short)(Globals.cl_upspeed.value * KeyState(in_down));
            if ((in_klook.state & 1) == 0)
            {
                cmd.forwardmove += (short)(Globals.cl_forwardspeed.value * KeyState(in_forward));
                cmd.forwardmove -= (short)(Globals.cl_forwardspeed.value * KeyState(in_back));
            }

            if (((in_speed.state & 1) ^ (int)(Globals.cl_run.value)) != 0)
            {
                cmd.forwardmove *= 2;
                cmd.sidemove    *= 2;
                cmd.upmove      *= 2;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// CL_BaseMove
        /// Send the intended movement message to the server
        /// </summary>
        private void BaseMove(ref usercmd_t cmd)
        {
            if (this.cls.signon != ClientDef.SIGNONS)
            {
                return;
            }

            this.AdjustAngles( );

            cmd.Clear( );

            if (client_input.StrafeBtn.IsDown)
            {
                cmd.sidemove += this.Host.Cvars.SideSpeed.Get <float>( ) * this.KeyState(ref client_input.RightBtn);
                cmd.sidemove -= this.Host.Cvars.SideSpeed.Get <float>( ) * this.KeyState(ref client_input.LeftBtn);
            }

            cmd.sidemove += this.Host.Cvars.SideSpeed.Get <float>( ) * this.KeyState(ref client_input.MoveRightBtn);
            cmd.sidemove -= this.Host.Cvars.SideSpeed.Get <float>( ) * this.KeyState(ref client_input.MoveLeftBtn);

            var upBtn = this.KeyState(ref client_input.UpBtn);

            if (upBtn > 0)
            {
                Console.WriteLine("asd");
            }
            cmd.upmove += this.Host.Cvars.UpSpeed.Get <float>( ) * this.KeyState(ref client_input.UpBtn);
            cmd.upmove -= this.Host.Cvars.UpSpeed.Get <float>( ) * this.KeyState(ref client_input.DownBtn);

            if (!client_input.KLookBtn.IsDown)
            {
                cmd.forwardmove += this.Host.Cvars.ForwardSpeed.Get <float>( ) * this.KeyState(ref client_input.ForwardBtn);
                cmd.forwardmove -= this.Host.Cvars.BackSpeed.Get <float>( ) * this.KeyState(ref client_input.BackBtn);
            }

            //
            // adjust for speed key
            //
            if (client_input.SpeedBtn.IsDown)
            {
                cmd.forwardmove *= this.Host.Cvars.MoveSpeedKey.Get <float>( );
                cmd.sidemove    *= this.Host.Cvars.MoveSpeedKey.Get <float>( );
                cmd.upmove      *= this.Host.Cvars.MoveSpeedKey.Get <float>( );
            }
        }
Esempio n. 3
0
    public static void CL_BaseMove(ref usercmd_t cmd)
    {
        if (cls.signon != q_shared.SIGNONS)
        {
            return;
        }

        CL_AdjustAngles();

        cmd.Clear();

        if (in_strafe.IsDown)
        {
            cmd.sidemove += cl_sidespeed.value * CL_KeyState(ref in_right);
            cmd.sidemove -= cl_sidespeed.value * CL_KeyState(ref in_left);
        }

        cmd.sidemove += cl_sidespeed.value * CL_KeyState(ref in_moveright);
        cmd.sidemove -= cl_sidespeed.value * CL_KeyState(ref in_moveleft);

        cmd.upmove += cl_upspeed.value * CL_KeyState(ref in_up);
        cmd.upmove -= cl_upspeed.value * CL_KeyState(ref in_down);

        if (!in_klook.IsDown)
        {
            cmd.forwardmove += cl_forwardspeed.value * CL_KeyState(ref in_forward);
            cmd.forwardmove -= cl_backspeed.value * CL_KeyState(ref in_back);
        }

        //
        // adjust for speed key
        //
        if (in_speed.IsDown)
        {
            cmd.forwardmove *= cl_movespeedkey.value;
            cmd.sidemove    *= cl_movespeedkey.value;
            cmd.upmove      *= cl_movespeedkey.value;
        }
    }
Esempio n. 4
0
        public static void SendCmd()
        {
            int       i;
            usercmd_t cmd, oldcmd;
            int       checksumIndex;

            i   = Globals.cls.netchan.outgoing_sequence & (Defines.CMD_BACKUP - 1);
            cmd = Globals.cl.cmds[i];
            Globals.cl.cmd_time[i] = (int)Globals.cls.realtime;
            CreateCmd(cmd);
            Globals.cl.cmd.Set(cmd);
            if (Globals.cls.state == Defines.ca_disconnected || Globals.cls.state == Defines.ca_connecting)
            {
                return;
            }
            if (Globals.cls.state == Defines.ca_connected)
            {
                if (Globals.cls.netchan.message.cursize != 0 || Globals.curtime - Globals.cls.netchan.last_sent > 1000)
                {
                    Netchan.Transmit(Globals.cls.netchan, 0, new byte[0]);
                }
                return;
            }

            if (Globals.userinfo_modified)
            {
                CL.FixUpGender();
                Globals.userinfo_modified = false;
                MSG.WriteByte(Globals.cls.netchan.message, Defines.clc_userinfo);
                MSG.WriteString(Globals.cls.netchan.message, Cvar.Userinfo());
            }

            SZ.Init(buf, data, data.Length);
            if (cmd.buttons != 0 && Globals.cl.cinematictime > 0 && !Globals.cl.attractloop && Globals.cls.realtime - Globals.cl.cinematictime > 1000)
            {
                SCR.FinishCinematic();
            }

            MSG.WriteByte(buf, Defines.clc_move);
            checksumIndex = buf.cursize;
            MSG.WriteByte(buf, 0);
            if (cl_nodelta.value != 0F || !Globals.cl.frame.valid || Globals.cls.demowaiting)
            {
                MSG.WriteLong(buf, -1);
            }
            else
            {
                MSG.WriteLong(buf, Globals.cl.frame.serverframe);
            }
            i   = (Globals.cls.netchan.outgoing_sequence - 2) & (Defines.CMD_BACKUP - 1);
            cmd = Globals.cl.cmds[i];
            nullcmd.Clear();
            MSG.WriteDeltaUsercmd(buf, nullcmd, cmd);
            oldcmd = cmd;
            i      = (Globals.cls.netchan.outgoing_sequence - 1) & (Defines.CMD_BACKUP - 1);
            cmd    = Globals.cl.cmds[i];
            MSG.WriteDeltaUsercmd(buf, oldcmd, cmd);
            oldcmd = cmd;
            i      = (Globals.cls.netchan.outgoing_sequence) & (Defines.CMD_BACKUP - 1);
            cmd    = Globals.cl.cmds[i];
            MSG.WriteDeltaUsercmd(buf, oldcmd, cmd);
            buf.data[checksumIndex] = Com.BlockSequenceCRCByte(buf.data, checksumIndex + 1, buf.cursize - checksumIndex - 1, Globals.cls.netchan.outgoing_sequence);
            Netchan.Transmit(Globals.cls.netchan, buf.cursize, buf.data);
        }