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; } }
/// <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>( ); } }
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; } }
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); }