|
|
@ -493,6 +493,47 @@ void IN_JoyAppendMove( usercmd_t *cmd, float forwardmove, float sidemove ) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void IN_CollectInput( float *forward, float *side, float *pitch, float *yaw, qboolean includeSdlMouse ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if( !m_ignore->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
#if XASH_INPUT == INPUT_SDL |
|
|
|
|
|
|
|
if( includeSdlMouse ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
int x, y; |
|
|
|
|
|
|
|
SDL_GetMouseState( &x, &y ); |
|
|
|
|
|
|
|
*pitch += y * m_pitch->value; |
|
|
|
|
|
|
|
*yaw -= x * m_yaw->value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif // INPUT_SDL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __ANDROID__ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
float x, y; |
|
|
|
|
|
|
|
Android_MouseMove( &x, &y ); |
|
|
|
|
|
|
|
*pitch += y * m_pitch->value; |
|
|
|
|
|
|
|
*yaw -= x * m_yaw->value; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif // ANDROID
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Joy_FinalizeMove( forward, side, yaw, pitch ); |
|
|
|
|
|
|
|
IN_TouchMove( forward, side, yaw, pitch ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef USE_EVDEV |
|
|
|
|
|
|
|
IN_EvdevMove( yaw, pitch ); |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( look_filter->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
*pitch = ( inputstate.lastpitch + *pitch ) / 2; |
|
|
|
|
|
|
|
*yaw = ( inputstate.lastyaw + *yaw ) / 2; |
|
|
|
|
|
|
|
inputstate.lastpitch = *pitch; |
|
|
|
|
|
|
|
inputstate.lastyaw = *yaw; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
================ |
|
|
|
================ |
|
|
|
IN_EngineAppendMove |
|
|
|
IN_EngineAppendMove |
|
|
@ -502,7 +543,7 @@ Called from cl_main.c after generating command in client |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
void IN_EngineAppendMove( float frametime, usercmd_t *cmd, qboolean active ) |
|
|
|
void IN_EngineAppendMove( float frametime, usercmd_t *cmd, qboolean active ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
float forward, side, dpitch, dyaw; |
|
|
|
float forward, side, pitch, yaw; |
|
|
|
|
|
|
|
|
|
|
|
if( clgame.dllFuncs.pfnLookEvent ) |
|
|
|
if( clgame.dllFuncs.pfnLookEvent ) |
|
|
|
return; |
|
|
|
return; |
|
|
@ -510,45 +551,18 @@ void IN_EngineAppendMove( float frametime, usercmd_t *cmd, qboolean active ) |
|
|
|
if( cls.key_dest != key_game || cl.paused || cl.intermission ) |
|
|
|
if( cls.key_dest != key_game || cl.paused || cl.intermission ) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
forward = side = dpitch = dyaw = 0; |
|
|
|
forward = side = pitch = yaw = 0; |
|
|
|
|
|
|
|
|
|
|
|
if(active) |
|
|
|
if( active ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
float sensitivity = ( (float)RI.fov_x / (float)90.0f ); |
|
|
|
float sensitivity = ( (float)RI.fov_x / (float)90.0f ); |
|
|
|
#if XASH_INPUT == INPUT_SDL |
|
|
|
|
|
|
|
if( m_enginemouse->value && !m_ignore->value ) |
|
|
|
IN_CollectInput( &forward, &side, &yaw, &pitch, m_enginemouse->value ); |
|
|
|
{ |
|
|
|
|
|
|
|
int mouse_x, mouse_y; |
|
|
|
|
|
|
|
SDL_GetRelativeMouseState( &mouse_x, &mouse_y ); |
|
|
|
|
|
|
|
RI.viewangles[PITCH] += mouse_y * m_pitch->value * sensitivity; |
|
|
|
|
|
|
|
RI.viewangles[YAW] -= mouse_x * m_yaw->value * sensitivity; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef __ANDROID__ |
|
|
|
|
|
|
|
if( !m_ignore->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
float mouse_x, mouse_y; |
|
|
|
|
|
|
|
Android_MouseMove( &mouse_x, &mouse_y ); |
|
|
|
|
|
|
|
RI.viewangles[PITCH] += mouse_y * m_pitch->value * sensitivity; |
|
|
|
|
|
|
|
RI.viewangles[YAW] -= mouse_x * m_yaw->value * sensitivity; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
Joy_FinalizeMove( &forward, &side, &dyaw, &dpitch ); |
|
|
|
|
|
|
|
IN_TouchMove( &forward, &side, &dyaw, &dpitch ); |
|
|
|
|
|
|
|
IN_JoyAppendMove( cmd, forward, side ); |
|
|
|
IN_JoyAppendMove( cmd, forward, side ); |
|
|
|
#ifdef USE_EVDEV |
|
|
|
|
|
|
|
IN_EvdevMove( &dyaw, &dpitch ); |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
if( look_filter->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
dpitch = ( inputstate.lastpitch + dpitch ) / 2; |
|
|
|
|
|
|
|
dyaw = ( inputstate.lastyaw + dyaw ) / 2; |
|
|
|
|
|
|
|
inputstate.lastpitch = dpitch; |
|
|
|
|
|
|
|
inputstate.lastyaw = dyaw; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RI.viewangles[YAW] += dyaw * sensitivity; |
|
|
|
RI.viewangles[YAW] += yaw * sensitivity; |
|
|
|
RI.viewangles[PITCH] += dpitch * sensitivity; |
|
|
|
RI.viewangles[PITCH] += pitch * sensitivity; |
|
|
|
RI.viewangles[PITCH] = bound( -90, RI.viewangles[PITCH], 90 ); |
|
|
|
RI.viewangles[PITCH] = bound( -90, RI.viewangles[PITCH], 90 ); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -573,37 +587,7 @@ void Host_InputFrame( void ) |
|
|
|
|
|
|
|
|
|
|
|
if( clgame.dllFuncs.pfnLookEvent ) |
|
|
|
if( clgame.dllFuncs.pfnLookEvent ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int dx, dy; |
|
|
|
IN_CollectInput( &forward, &side, &yaw, &pitch, in_mouseinitialized ); |
|
|
|
|
|
|
|
|
|
|
|
#ifndef __ANDROID__ |
|
|
|
|
|
|
|
if( in_mouseinitialized && !m_ignore->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
SDL_GetRelativeMouseState( &dx, &dy ); |
|
|
|
|
|
|
|
pitch += dy * m_pitch->value, yaw -= dx * m_yaw->value; //mouse speed
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef __ANDROID__ |
|
|
|
|
|
|
|
if( !m_ignore->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
float mouse_x, mouse_y; |
|
|
|
|
|
|
|
Android_MouseMove( &mouse_x, &mouse_y ); |
|
|
|
|
|
|
|
pitch += mouse_y * m_pitch->value, yaw -= mouse_x * m_yaw->value; //mouse speed
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Joy_FinalizeMove( &forward, &side, &yaw, &pitch ); |
|
|
|
|
|
|
|
IN_TouchMove( &forward, &side, &yaw, &pitch ); |
|
|
|
|
|
|
|
#ifdef USE_EVDEV |
|
|
|
|
|
|
|
IN_EvdevMove( &yaw, &pitch ); |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
if( look_filter->value ) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
pitch = ( inputstate.lastpitch + pitch ) / 2; |
|
|
|
|
|
|
|
yaw = ( inputstate.lastyaw + yaw ) / 2; |
|
|
|
|
|
|
|
inputstate.lastpitch = pitch; |
|
|
|
|
|
|
|
inputstate.lastyaw = yaw; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( cls.key_dest == key_game ) |
|
|
|
if( cls.key_dest == key_game ) |
|
|
|
{ |
|
|
|
{ |
|
|
|