/* * CL_UpdateCommandInput */ void CL_UpdateCommandInput( void ) { static unsigned old_keys_frame_time; usercmd_t *cmd = &cl.cmds[cls.ucmdHead & CMD_MASK]; vec3_t movement; if( cl.inputRefreshed ) return; keys_frame_time = ( sys_frame_time - old_keys_frame_time ) & 255; VectorSet( movement, 0.0f, 0.0f, 0.0f ); // always let the mouse refresh cl.viewangles IN_MouseMove( cmd ); CL_AddButtonBits( &cmd->buttons ); if( cls.key_dest == key_game ) CL_GameModule_AddViewAngles( cl.viewangles, cls.realframetime, cl_flip->integer != 0 ); if( keys_frame_time ) { cmd->msec += keys_frame_time; CL_AddAnglesFromKeys( keys_frame_time ); CL_AddMovementFromKeys( movement ); if( cls.key_dest == key_game ) CL_GameModule_AddMovement( movement ); cmd->sidemove += keys_frame_time * bound( -1.0f, movement[0], 1.0f ) * (cl_flip->integer ? -1.0 : 1.0); cmd->forwardmove += keys_frame_time * bound( -1.0f, movement[1], 1.0f ); cmd->upmove += keys_frame_time * bound( -1.0f, movement[2], 1.0f ); old_keys_frame_time = sys_frame_time; } if( cmd->msec ) { cmd->forwardfrac = ( (float)cmd->forwardmove/(float)cmd->msec ); cmd->sidefrac = ( (float)cmd->sidemove/(float)cmd->msec ); cmd->upfrac = ( (float)cmd->upmove/(float)cmd->msec ); } cmd->angles[0] = ANGLE2SHORT( cl.viewangles[0] ); cmd->angles[1] = ANGLE2SHORT( cl.viewangles[1] ); cmd->angles[2] = ANGLE2SHORT( cl.viewangles[2] ); cl.inputRefreshed = true; }
/* * CL_UpdateCommandInput */ void CL_UpdateCommandInput( void ) { static unsigned old_keys_frame_time; usercmd_t *cmd = &cl.cmds[cls.ucmdHead & CMD_MASK]; if( cl.inputRefreshed ) return; keys_frame_time = ( sys_frame_time - old_keys_frame_time ) & 255; // always let the mouse refresh cl.viewangles IN_MouseMove( cmd ); CL_AddButtonBits( &cmd->buttons ); CL_GameModule_TouchMove( cmd, cl.viewangles, keys_frame_time ); if( keys_frame_time ) { cmd->msec += keys_frame_time; CL_AddAnglesFromKeys( keys_frame_time ); CL_AddMovementFromKeys( &cmd->forwardmove, &cmd->sidemove, &cmd->upmove, keys_frame_time ); IN_JoyMove( cmd, keys_frame_time ); old_keys_frame_time = sys_frame_time; } if( cmd->msec ) { cmd->forwardfrac = ( (float)cmd->forwardmove/(float)cmd->msec ); cmd->sidefrac = ( (float)cmd->sidemove/(float)cmd->msec ); cmd->upfrac = ( (float)cmd->upmove/(float)cmd->msec ); } cmd->angles[0] = ANGLE2SHORT( cl.viewangles[0] ); cmd->angles[1] = ANGLE2SHORT( cl.viewangles[1] ); cmd->angles[2] = ANGLE2SHORT( cl.viewangles[2] ); cl.inputRefreshed = qtrue; }