X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=cl_input.c;h=21d79bec87286298ffb3d4d666434d513be6f5a7;hb=a705475ac0c27969d45c9db1e4330f59e448fbdd;hp=481f843d88bac3f452174e69f33be4927cafd70f;hpb=8468ffaf8162a4fe8361127385c40141c375661d;p=xonotic%2Fdarkplaces.git diff --git a/cl_input.c b/cl_input.c index 481f843d..21d79bec 100644 --- a/cl_input.c +++ b/cl_input.c @@ -119,10 +119,11 @@ void KeyUp (kbutton_t *b) void IN_KLookDown (void) {KeyDown(&in_klook);} void IN_KLookUp (void) {KeyUp(&in_klook);} void IN_MLookDown (void) {KeyDown(&in_mlook);} -void IN_MLookUp (void) { -KeyUp(&in_mlook); -if ( !(in_mlook.state&1) && lookspring.value) - V_StartPitchDrift(); +void IN_MLookUp (void) +{ + KeyUp(&in_mlook); + if ( !(in_mlook.state&1) && lookspring.value) + V_StartPitchDrift(); } void IN_UpDown(void) {KeyDown(&in_up);} void IN_UpUp(void) {KeyUp(&in_up);} @@ -154,12 +155,18 @@ void IN_AttackDown(void) {KeyDown(&in_attack);} void IN_AttackUp(void) {KeyUp(&in_attack);} // LordHavoc: added 6 new buttons -void IN_Button3Down(void) {KeyDown(&in_button3);} void IN_Button3Up(void) {KeyUp(&in_button3);} -void IN_Button4Down(void) {KeyDown(&in_button4);} void IN_Button4Up(void) {KeyUp(&in_button4);} -void IN_Button5Down(void) {KeyDown(&in_button5);} void IN_Button5Up(void) {KeyUp(&in_button5);} -void IN_Button6Down(void) {KeyDown(&in_button6);} void IN_Button6Up(void) {KeyUp(&in_button6);} -void IN_Button7Down(void) {KeyDown(&in_button7);} void IN_Button7Up(void) {KeyUp(&in_button7);} -void IN_Button8Down(void) {KeyDown(&in_button8);} void IN_Button8Up(void) {KeyUp(&in_button8);} +void IN_Button3Down(void) {KeyDown(&in_button3);} +void IN_Button3Up(void) {KeyUp(&in_button3);} +void IN_Button4Down(void) {KeyDown(&in_button4);} +void IN_Button4Up(void) {KeyUp(&in_button4);} +void IN_Button5Down(void) {KeyDown(&in_button5);} +void IN_Button5Up(void) {KeyUp(&in_button5);} +void IN_Button6Down(void) {KeyDown(&in_button6);} +void IN_Button6Up(void) {KeyUp(&in_button6);} +void IN_Button7Down(void) {KeyDown(&in_button7);} +void IN_Button7Up(void) {KeyUp(&in_button7);} +void IN_Button8Down(void) {KeyDown(&in_button8);} +void IN_Button8Up(void) {KeyUp(&in_button8);} void IN_UseDown (void) {KeyDown(&in_use);} void IN_UseUp (void) {KeyUp(&in_use);} @@ -261,7 +268,6 @@ void CL_AdjustAngles (void) { cl.viewangles[YAW] -= speed*cl_yawspeed.value*CL_KeyState (&in_right); cl.viewangles[YAW] += speed*cl_yawspeed.value*CL_KeyState (&in_left); - cl.viewangles[YAW] = ANGLEMOD(cl.viewangles[YAW]); } if (in_klook.state & 1) { @@ -279,18 +285,18 @@ void CL_AdjustAngles (void) if (up || down) V_StopPitchDrift (); - // LordHavoc: changed from 80 to 90 (straight up) - if (cl.viewangles[PITCH] > 90) - cl.viewangles[PITCH] = 90; - // LordHavoc: changed from -70 to -90 (straight down) - if (cl.viewangles[PITCH] < -90) - cl.viewangles[PITCH] = -90; - - if (cl.viewangles[ROLL] > 50) - cl.viewangles[ROLL] = 50; - if (cl.viewangles[ROLL] < -50) - cl.viewangles[ROLL] = -50; - + cl.viewangles[YAW] = ANGLEMOD(cl.viewangles[YAW]); + cl.viewangles[PITCH] = ANGLEMOD(cl.viewangles[PITCH]); + cl.viewangles[ROLL] = ANGLEMOD(cl.viewangles[ROLL]); + if (cl.viewangles[YAW] >= 180) + cl.viewangles[YAW] -= 360; + if (cl.viewangles[PITCH] >= 180) + cl.viewangles[PITCH] -= 360; + if (cl.viewangles[ROLL] >= 180) + cl.viewangles[ROLL] -= 360; + + cl.viewangles[PITCH] = bound (in_pitch_min.value, cl.viewangles[PITCH], in_pitch_max.value); + cl.viewangles[ROLL] = bound(-50, cl.viewangles[ROLL], 50); } /* @@ -350,7 +356,7 @@ void CL_SendMove (usercmd_t *cmd) int i; int bits; sizebuf_t buf; - byte data[128]; + qbyte data[128]; static double lastmovetime; static float forwardmove, sidemove, upmove, total; // accumulation @@ -372,7 +378,7 @@ void CL_SendMove (usercmd_t *cmd) buf.maxsize = 128; buf.cursize = 0; buf.data = data; - + cl.cmd = *cmd; // @@ -382,7 +388,12 @@ void CL_SendMove (usercmd_t *cmd) MSG_WriteFloat (&buf, cl.mtime[0]); // so server can get ping times - if (dpprotocol) + if (dpprotocol == DPPROTOCOL_VERSION2 || dpprotocol == DPPROTOCOL_VERSION3) + { + for (i = 0;i < 3;i++) + MSG_WriteFloat (&buf, cl.viewangles[i]); + } + else if (dpprotocol == DPPROTOCOL_VERSION1) { for (i=0 ; i<3 ; i++) MSG_WritePreciseAngle (&buf, cl.viewangles[i]); @@ -392,7 +403,7 @@ void CL_SendMove (usercmd_t *cmd) for (i=0 ; i<3 ; i++) MSG_WriteAngle (&buf, cl.viewangles[i]); } - + MSG_WriteShort (&buf, forwardmove); MSG_WriteShort (&buf, sidemove); MSG_WriteShort (&buf, upmove); @@ -402,11 +413,11 @@ void CL_SendMove (usercmd_t *cmd) // send button bits // bits = 0; - + if ( in_attack.state & 3 ) bits |= 1; in_attack.state &= ~2; - + if (in_jump.state & 3) bits |= 2; in_jump.state &= ~2; @@ -417,12 +428,20 @@ void CL_SendMove (usercmd_t *cmd) if (in_button6.state & 3) bits |= 32;in_button6.state &= ~2; if (in_button7.state & 3) bits |= 64;in_button7.state &= ~2; if (in_button8.state & 3) bits |= 128;in_button8.state &= ~2; - + MSG_WriteByte (&buf, bits); MSG_WriteByte (&buf, in_impulse); in_impulse = 0; + // LordHavoc: should we ack this on receipt instead? would waste net bandwidth though + i = EntityFrame_MostRecentlyRecievedFrameNum(&cl.entitydatabase); + if (i > 0) + { + MSG_WriteByte (&buf, clc_ackentities); + MSG_WriteLong (&buf, i); + } + // // deliver the message // @@ -499,3 +518,4 @@ void CL_InitInput (void) Cmd_AddCommand ("+button8", IN_Button8Down); Cmd_AddCommand ("-button8", IN_Button8Up); } +