Ejemplo n.º 1
0
/*
* 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;
}
Ejemplo n.º 2
0
/*
* 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;
}