#include "quakedef.h"
#include "winquake.h"
-//#include "dosisms.h"
#include <dinput.h>
LPDIRECTINPUT * lplpDirectInput, LPUNKNOWN punkOuter);
// mouse variables
-cvar_t m_filter = {CVAR_SAVE, "m_filter","0"};
-
int mouse_buttons;
int mouse_oldbuttonstate;
POINT current_pos;
*/
void IN_Init (void)
{
- // mouse variables
- Cvar_RegisterVariable (&m_filter);
-
// joystick variables
Cvar_RegisterVariable (&in_joystick);
Cvar_RegisterVariable (&joy_name);
*/
void IN_Shutdown (void)
{
-// usingmouse = false;
IN_DeactivateMouse ();
IN_ShowMouse ();
*/
void IN_MouseMove (usercmd_t *cmd)
{
- int i, mx, my, mouselook = (in_mlook.state & 1) || freelook.integer;
+ int i, mx, my;
DIDEVICEOBJECTDATA od;
DWORD dwElements;
HRESULT hr;
/* Unable to read data or no data available */
if (FAILED(hr) || dwElements == 0)
- {
break;
- }
/* Look at the element to see what happened */
my_accum = 0;
}
-//if (mx || my)
-// Con_DPrintf("mx=%d, my=%d\n", mx, my);
+ IN_Mouse(cmd, mx, my);
- if (m_filter.integer)
- {
- mouse_x = (mx + old_mouse_x) * 0.5;
- mouse_y = (my + old_mouse_y) * 0.5;
- }
- else
- {
- mouse_x = mx;
- mouse_y = my;
- }
-
- old_mouse_x = mx;
- old_mouse_y = my;
-
- // LordHavoc: viewzoom affects mouse sensitivity for sniping
- mouse_x *= sensitivity.value * cl.viewzoom;
- mouse_y *= sensitivity.value * cl.viewzoom;
-
-// add mouse X/Y movement to cmd
- if ( (in_strafe.state & 1) || (lookstrafe.integer && mouselook))
- cmd->sidemove += m_side.value * mouse_x;
- else
- cl.viewangles[YAW] -= m_yaw.value * mouse_x;
-
- if (mouselook)
- V_StopPitchDrift ();
-
- // LordHavoc: changed limits on pitch from -70 to 80, to -90 to 90
- if (mouselook && !(in_strafe.state & 1))
- {
- cl.viewangles[PITCH] += m_pitch.value * mouse_y;
- if (cl.viewangles[PITCH] > 90)
- cl.viewangles[PITCH] = 90;
- if (cl.viewangles[PITCH] < -90)
- cl.viewangles[PITCH] = -90;
- }
- else
- {
- if ((in_strafe.state & 1) && noclip_anglehack)
- cmd->upmove -= m_forward.value * mouse_y;
- else
- cmd->forwardmove -= m_forward.value * mouse_y;
- }
-
-// if the mouse has moved, force it to the center, so there's room to move
- if (mx || my)
- {
+ // if the mouse has moved, force it to the center, so there's room to move
+ if (!dinput && (mx || my))
SetCursorPos (window_center_x, window_center_y);
- }
}
*/
void IN_Move (usercmd_t *cmd)
{
-
- if (ActiveApp && !Minimized)
+ if (vid_activewindow && !vid_hidden)
{
IN_MouseMove (cmd);
IN_JoyMove (cmd);
}
+
+ cl.viewangles[PITCH] = bound (in_pitch_min.value, cl.viewangles[PITCH], in_pitch_max.value);
}
*/
void IN_ClearStates (void)
{
-
if (mouseactive)
{
mx_accum = 0;
int numdevs;
JOYCAPS jc;
MMRESULT mmr;
+ mmr = 0;
// assume no joystick
joy_avail = false;
else
{
// read error occurred
- // turning off the joystick seems too harsh for 1 read error,\
+ // turning off the joystick seems too harsh for 1 read error,
// but what should be done?
- // Con_Printf ("IN_ReadJoystick: no response\n");
- // joy_avail = false;
return false;
}
}
break;
}
}
-
- // bounds check pitch
- if (cl.viewangles[PITCH] > 80.0)
- cl.viewangles[PITCH] = 80.0;
- if (cl.viewangles[PITCH] < -70.0)
- cl.viewangles[PITCH] = -70.0;
}
+