| 675 | vec3_t cl_overriddenAngles = {0,0,0}; |
| 676 | qboolean cl_overrideAngles = qfalse; |
| 677 | usercmd_t CL_CreateCmd( void ) { |
| 678 | usercmd_t cmd; |
| 679 | vec3_t oldAngles; |
| 680 | |
| 681 | VectorCopy( cl.viewangles, oldAngles ); |
| 682 | |
| 683 | // keyboard angle adjustment |
| 684 | CL_AdjustAngles (); |
| 685 | |
| 686 | memset( &cmd, 0, sizeof( cmd ) ); |
| 687 | |
| 688 | CL_CmdButtons( &cmd ); |
| 689 | |
| 690 | // get basic movement from keyboard |
| 691 | CL_KeyMove (&cmd); |
| 692 | |
| 693 | // get basic movement from mouse |
| 694 | CL_MouseMove( &cmd ); |
| 695 | |
| 696 | // get basic movement from joystick |
| 697 | CL_JoystickMove( &cmd ); |
| 698 | |
| 699 | // check to make sure the angles haven't wrapped |
| 700 | if ( cl.viewangles[PITCH] - oldAngles[PITCH] > 90 ) { |
| 701 | cl.viewangles[PITCH] = oldAngles[PITCH] + 90; |
| 702 | } else if ( oldAngles[PITCH] - cl.viewangles[PITCH] > 90 ) { |
| 703 | cl.viewangles[PITCH] = oldAngles[PITCH] - 90; |
| 704 | } |
| 705 | |
| 706 | if ( cl_overrideAngles ) |
| 707 | { |
| 708 | VectorCopy( cl_overriddenAngles, cl.viewangles ); |
| 709 | cl_overrideAngles = qfalse; |
| 710 | } |
| 711 | // store out the final values |
| 712 | CL_FinishMove( &cmd ); |
| 713 | |
| 714 | // draw debug graphs of turning for mouse testing |
| 715 | if ( cl_debugMove->integer ) { |
| 716 | if ( cl_debugMove->integer == 1 ) { |
| 717 | SCR_DebugGraph( abs(cl.viewangles[YAW] - oldAngles[YAW]), 0 ); |
| 718 | } |
| 719 | if ( cl_debugMove->integer == 2 ) { |
| 720 | SCR_DebugGraph( abs(cl.viewangles[PITCH] - oldAngles[PITCH]), 0 ); |
| 721 | } |
| 722 | } |
| 723 | |
| 724 | return cmd; |
| 725 | } |
| 726 | |
| 727 | |
| 728 | /* |
no test coverage detected