void IN_Init (void) { #ifdef GLQUAKE #ifdef WITH_EVDEV int i; #endif #endif Cvar_SetCurrentGroup (CVAR_GROUP_INPUT_MOUSE); Cvar_Register (&m_filter); #ifndef _Soft_SVGA Cvar_Register (&_windowed_mouse); #endif Cvar_SetCurrentGroup (CVAR_GROUP_INPUT_KEYBOARD); Cvar_Register (&cl_keypad); Cvar_ResetCurrentGroup (); if (!host_initialized) { #ifdef GLQUAKE typedef enum { mt_none = 0, mt_dga, mt_normal, mt_evdev } mousetype_t; extern cvar_t in_mouse; #ifdef WITH_EVDEV extern cvar_t in_mmt; extern cvar_t in_evdevice; #endif /* !WITH_EVDEV */ if (COM_CheckParm ("-nodga") || COM_CheckParm ("-nomdga")) Cvar_LatchedSetValue (&in_mouse, mt_normal); #ifdef WITH_EVDEV if ((i = COM_CheckParm ("-mevdev")) && (i < COM_Argc() - 1)) { Cvar_LatchedSet (&in_evdevice, COM_Argv(i + 1)); Cvar_LatchedSetValue (&in_mouse, mt_evdev); } if (COM_CheckParm ("-mmt")) Cvar_LatchedSetValue (&in_mmt, 1); #endif /* !WITH_EVDEV */ if (COM_CheckParm ("-nomouse")) Cvar_LatchedSetValue (&in_mouse, mt_none); #ifdef WITH_EVDEV extern void IN_EvdevList_f(void); Cmd_AddCommand ("in_evdevlist", IN_EvdevList_f); #endif /* !WITH_EVDEV */ #endif /* !GLQUAKE */ #ifdef WITH_KEYMAP IN_StartupKeymap(); #endif // WITH_KEYMAP #ifdef GLQUAKE Cmd_AddCommand ("in_restart", IN_Restart_f); #endif } IN_StartupMouse (); }
void IN_Init (void) { // mouse variables Cvar_RegisterVariable (&m_filter); // joystick variables Cvar_RegisterVariable (&in_joystick); Cvar_RegisterVariable (&joy_name); Cvar_RegisterVariable (&joy_advanced); Cvar_RegisterVariable (&joy_advaxisx); Cvar_RegisterVariable (&joy_advaxisy); Cvar_RegisterVariable (&joy_advaxisz); Cvar_RegisterVariable (&joy_advaxisr); Cvar_RegisterVariable (&joy_advaxisu); Cvar_RegisterVariable (&joy_advaxisv); Cvar_RegisterVariable (&joy_forwardthreshold); Cvar_RegisterVariable (&joy_sidethreshold); Cvar_RegisterVariable (&joy_pitchthreshold); Cvar_RegisterVariable (&joy_yawthreshold); Cvar_RegisterVariable (&joy_forwardsensitivity); Cvar_RegisterVariable (&joy_sidesensitivity); Cvar_RegisterVariable (&joy_pitchsensitivity); Cvar_RegisterVariable (&joy_yawsensitivity); Cvar_RegisterVariable (&joy_wwhack1); Cvar_RegisterVariable (&joy_wwhack2); Cmd_AddCommand ("force_centerview", Force_CenterView_f); Cmd_AddCommand ("joyadvancedupdate", Joy_AdvancedUpdate_f); uiWheelMessage = RegisterWindowMessage ( "MSWHEEL_ROLLMSG" ); IN_StartupMouse (); IN_StartupJoystick (); }
/* =========== IN_Init =========== */ void IN_Init (void) { m_filter = gEngfuncs.pfnRegisterVariable ( "m_filter","0", FCVAR_ARCHIVE ); sensitivity = gEngfuncs.pfnRegisterVariable ( "sensitivity","3", FCVAR_ARCHIVE ); // user mouse sensitivity setting. in_joystick = gEngfuncs.pfnRegisterVariable ( "joystick","0", FCVAR_ARCHIVE ); joy_name = gEngfuncs.pfnRegisterVariable ( "joyname", "joystick", 0 ); joy_advanced = gEngfuncs.pfnRegisterVariable ( "joyadvanced", "0", 0 ); joy_advaxisx = gEngfuncs.pfnRegisterVariable ( "joyadvaxisx", "0", 0 ); joy_advaxisy = gEngfuncs.pfnRegisterVariable ( "joyadvaxisy", "0", 0 ); joy_advaxisz = gEngfuncs.pfnRegisterVariable ( "joyadvaxisz", "0", 0 ); joy_advaxisr = gEngfuncs.pfnRegisterVariable ( "joyadvaxisr", "0", 0 ); joy_advaxisu = gEngfuncs.pfnRegisterVariable ( "joyadvaxisu", "0", 0 ); joy_advaxisv = gEngfuncs.pfnRegisterVariable ( "joyadvaxisv", "0", 0 ); joy_forwardthreshold = gEngfuncs.pfnRegisterVariable ( "joyforwardthreshold", "0.15", 0 ); joy_sidethreshold = gEngfuncs.pfnRegisterVariable ( "joysidethreshold", "0.15", 0 ); joy_pitchthreshold = gEngfuncs.pfnRegisterVariable ( "joypitchthreshold", "0.15", 0 ); joy_yawthreshold = gEngfuncs.pfnRegisterVariable ( "joyyawthreshold", "0.15", 0 ); joy_forwardsensitivity = gEngfuncs.pfnRegisterVariable ( "joyforwardsensitivity", "-1.0", 0 ); joy_sidesensitivity = gEngfuncs.pfnRegisterVariable ( "joysidesensitivity", "-1.0", 0 ); joy_pitchsensitivity = gEngfuncs.pfnRegisterVariable ( "joypitchsensitivity", "1.0", 0 ); joy_yawsensitivity = gEngfuncs.pfnRegisterVariable ( "joyyawsensitivity", "-1.0", 0 ); joy_wwhack1 = gEngfuncs.pfnRegisterVariable ( "joywwhack1", "0.0", 0 ); joy_wwhack2 = gEngfuncs.pfnRegisterVariable ( "joywwhack2", "0.0", 0 ); gEngfuncs.pfnAddCommand ("force_centerview", Force_CenterView_f); gEngfuncs.pfnAddCommand ("joyadvancedupdate", Joy_AdvancedUpdate_f); IN_StartupMouse (); IN_StartupJoystick (); }
void IN_Init (void) { Cvar_SetCurrentGroup (CVAR_GROUP_INPUT_MOUSE); Cvar_Register (&m_filter); Cvar_SetCurrentGroup (CVAR_GROUP_INPUT_KEYBOARD); Cvar_Register (&cl_keypad); Cvar_ResetCurrentGroup (); if (!host_initialized) { /* FIXME: Decide whether to have nomouse option or not if (COM_CheckParm ("-nomouse")) ; */ Cmd_AddCommand("in_restart", IN_Restart_f); } #ifdef __APPLE__ extern cvar_t in_raw; if (in_raw.integer > 0) { if (OSX_Mouse_Init() != 0) { Com_Printf("warning: failed to initialize raw input mouse thread...\n"); Cvar_SetValue(&in_raw, 0); } } #endif IN_StartupMouse (); }
/* =========== IN_Init =========== */ void IN_Init (void) { m_filter = gEngfuncs.pfnRegisterVariable ( "m_filter","0", FCVAR_ARCHIVE ); sensitivity = gEngfuncs.pfnRegisterVariable ( "sensitivity","3", FCVAR_ARCHIVE ); // user mouse sensitivity setting. in_joystick = gEngfuncs.pfnRegisterVariable ( "joystick","0", FCVAR_ARCHIVE ); joy_name = gEngfuncs.pfnRegisterVariable ( "joyname", "joystick", 0 ); joy_advanced = gEngfuncs.pfnRegisterVariable ( "joyadvanced", "0", 0 ); joy_advaxisx = gEngfuncs.pfnRegisterVariable ( "joyadvaxisx", "0", 0 ); joy_advaxisy = gEngfuncs.pfnRegisterVariable ( "joyadvaxisy", "0", 0 ); joy_advaxisz = gEngfuncs.pfnRegisterVariable ( "joyadvaxisz", "0", 0 ); joy_advaxisr = gEngfuncs.pfnRegisterVariable ( "joyadvaxisr", "0", 0 ); joy_advaxisu = gEngfuncs.pfnRegisterVariable ( "joyadvaxisu", "0", 0 ); joy_advaxisv = gEngfuncs.pfnRegisterVariable ( "joyadvaxisv", "0", 0 ); joy_forwardthreshold = gEngfuncs.pfnRegisterVariable ( "joyforwardthreshold", "0.15", 0 ); joy_sidethreshold = gEngfuncs.pfnRegisterVariable ( "joysidethreshold", "0.15", 0 ); joy_pitchthreshold = gEngfuncs.pfnRegisterVariable ( "joypitchthreshold", "0.15", 0 ); joy_yawthreshold = gEngfuncs.pfnRegisterVariable ( "joyyawthreshold", "0.15", 0 ); joy_forwardsensitivity = gEngfuncs.pfnRegisterVariable ( "joyforwardsensitivity", "-1.0", 0 ); joy_sidesensitivity = gEngfuncs.pfnRegisterVariable ( "joysidesensitivity", "-1.0", 0 ); joy_pitchsensitivity = gEngfuncs.pfnRegisterVariable ( "joypitchsensitivity", "1.0", 0 ); joy_yawsensitivity = gEngfuncs.pfnRegisterVariable ( "joyyawsensitivity", "-1.0", 0 ); joy_wwhack1 = gEngfuncs.pfnRegisterVariable ( "joywwhack1", "0.0", 0 ); joy_wwhack2 = gEngfuncs.pfnRegisterVariable ( "joywwhack2", "0.0", 0 ); m_customaccel = gEngfuncs.pfnRegisterVariable ( "m_customaccel", "0", FCVAR_ARCHIVE ); m_customaccel_scale = gEngfuncs.pfnRegisterVariable ( "m_customaccel_scale", "0.04", FCVAR_ARCHIVE ); m_customaccel_max = gEngfuncs.pfnRegisterVariable ( "m_customaccel_max", "0", FCVAR_ARCHIVE ); m_customaccel_exponent = gEngfuncs.pfnRegisterVariable ( "m_customaccel_exponent", "1", FCVAR_ARCHIVE ); #ifdef _WIN32 m_bRawInput = CVAR_GET_FLOAT( "m_rawinput" ) != 0; m_bMouseThread = gEngfuncs.CheckParm ("-mousethread", NULL ) != NULL; m_mousethread_sleep = gEngfuncs.pfnRegisterVariable ( "m_mousethread_sleep", "1", FCVAR_ARCHIVE ); // default to less than 1000 Hz m_bMouseThread = m_bMouseThread && NULL != m_mousethread_sleep; if (m_bMouseThread) { s_hMouseQuitEvent = CreateEvent( NULL, FALSE, FALSE, NULL ); s_hMouseThreadActiveLock = CreateEvent( NULL, FALSE, TRUE, NULL ); if ( s_hMouseQuitEvent && s_hMouseThreadActiveLock) { s_hMouseThread = (HANDLE)_beginthreadex( NULL, 0, MouseThread_Function, NULL, 0, &s_hMouseThreadId ); } m_bMouseThread = NULL != s_hMouseThread; // at this early stage this won't print anything: // gEngfuncs.Con_DPrintf ("Mouse thread %s.\n", m_bMouseThread ? "initalized" : "failed to initalize"); } #endif gEngfuncs.pfnAddCommand ("force_centerview", Force_CenterView_f); gEngfuncs.pfnAddCommand ("joyadvancedupdate", Joy_AdvancedUpdate_f); IN_StartupMouse (); IN_StartupJoystick (); }
/* =========== IN_ReInit =========== */ void IN_ReInit (void) { IN_StartupMouse (); SDL_EnableUNICODE (1); /* needed for input in console */ SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL*2); }
/** * \brief Initialize mouse and joy-stick. */ void IN_Init( void ) { // centering v_centermove = Cvar_Get( "v_centermove", "0.15", 0); v_centerspeed = Cvar_Get( "v_centerspeed", "500", 0); IN_StartupMouse(); IN_StartupJoystick(); }
/* =========== IN_Init =========== */ void IN_Init(void) { m_filter = gEngfuncs.pfnRegisterVariable("m_filter", "0", FCVAR_ARCHIVE); sensitivity = gEngfuncs.pfnRegisterVariable("sensitivity", "3", FCVAR_ARCHIVE); // user mouse sensitivity setting. in_joystick = gEngfuncs.pfnRegisterVariable("joystick", "0", FCVAR_ARCHIVE); joy_name = gEngfuncs.pfnRegisterVariable("joyname", "joystick", 0); joy_advanced = gEngfuncs.pfnRegisterVariable("joyadvanced", "0", 0); joy_advaxisx = gEngfuncs.pfnRegisterVariable("joyadvaxisx", "0", 0); joy_advaxisy = gEngfuncs.pfnRegisterVariable("joyadvaxisy", "0", 0); joy_advaxisz = gEngfuncs.pfnRegisterVariable("joyadvaxisz", "0", 0); joy_advaxisr = gEngfuncs.pfnRegisterVariable("joyadvaxisr", "0", 0); joy_advaxisu = gEngfuncs.pfnRegisterVariable("joyadvaxisu", "0", 0); joy_advaxisv = gEngfuncs.pfnRegisterVariable("joyadvaxisv", "0", 0); joy_forwardthreshold = gEngfuncs.pfnRegisterVariable("joyforwardthreshold", "0.15", 0); joy_sidethreshold = gEngfuncs.pfnRegisterVariable("joysidethreshold", "0.15", 0); joy_pitchthreshold = gEngfuncs.pfnRegisterVariable("joypitchthreshold", "0.15", 0); joy_yawthreshold = gEngfuncs.pfnRegisterVariable("joyyawthreshold", "0.15", 0); joy_forwardsensitivity = gEngfuncs.pfnRegisterVariable("joyforwardsensitivity", "-1.0", 0); joy_sidesensitivity = gEngfuncs.pfnRegisterVariable("joysidesensitivity", "-1.0", 0); joy_pitchsensitivity = gEngfuncs.pfnRegisterVariable("joypitchsensitivity", "1.0", 0); joy_yawsensitivity = gEngfuncs.pfnRegisterVariable("joyyawsensitivity", "-1.0", 0); joy_wwhack1 = gEngfuncs.pfnRegisterVariable("joywwhack1", "0.0", 0); joy_wwhack2 = gEngfuncs.pfnRegisterVariable("joywwhack2", "0.0", 0); m_customaccel = gEngfuncs.pfnRegisterVariable("m_customaccel", "0", FCVAR_ARCHIVE); m_customaccel_scale = gEngfuncs.pfnRegisterVariable("m_customaccel_scale", "0.04", FCVAR_ARCHIVE); m_customaccel_max = gEngfuncs.pfnRegisterVariable("m_customaccel_max", "0", FCVAR_ARCHIVE); m_customaccel_exponent = gEngfuncs.pfnRegisterVariable("m_customaccel_exponent", "1", FCVAR_ARCHIVE); #ifdef _WIN32 m_bRawInput = CVAR_GET_FLOAT("m_rawinput") > 0; m_bMouseThread = gEngfuncs.CheckParm("-mousethread", NULL) != NULL; m_mousethread_sleep = gEngfuncs.pfnRegisterVariable("m_mousethread_sleep", "10", FCVAR_ARCHIVE); if(!m_bRawInput && m_bMouseThread && m_mousethread_sleep) { s_mouseDeltaX = s_mouseDeltaY = 0; s_hMouseQuitEvent = CreateEvent(NULL, FALSE, FALSE, NULL); if(s_hMouseQuitEvent) { s_hMouseThread = CreateThread(NULL, 0, MousePos_ThreadFunction, NULL, 0, &s_hMouseThreadId); } } #endif gEngfuncs.pfnAddCommand("force_centerview", Force_CenterView_f); gEngfuncs.pfnAddCommand("joyadvancedupdate", Joy_AdvancedUpdate_f); IN_StartupMouse(); IN_StartupJoystick(); }
/* * IN_Init */ void IN_Init( void ) { Com_Printf( "\n------- input initialization -------\n" ); // mouse variables in_mouse = Cvar_Get( "in_mouse", "1", CVAR_ARCHIVE ); in_grabinconsole = Cvar_Get( "in_grabinconsole", "0", CVAR_ARCHIVE ); IN_StartupMouse(); IN_XInput_Init(); Com_Printf( "------------------------------------\n" ); }
/* =========== IN_Startup =========== */ void IN_Startup( void ) { // TODO: no joystick support yet... // Com_Printf ("\n------- Input Initialization -------\n"); IN_StartupMouse(); IN_StartupJoystick(); IN_StartupMIDI(); // Com_Printf ("------------------------------------\n"); in_mouse->modified = qfalse; in_joystick->modified = qfalse; }
/* =========== IN_Init =========== */ void IN_Init (void) { // mouse variables Cvar_RegisterVariable (&m_filter); #if USE_JOYSTICK // joystick variables Cvar_RegisterVariable (&in_joystick); #endif /* USE_JOYSTICK */ Cmd_AddCommand ("force_centerview", Force_CenterView_f); IN_StartupMouse (); #if USE_JOYSTICK IN_StartupJoystick (); #endif /* USE_JOYSTICK */ SDL_EnableUNICODE (1); /* needed for input in console */ SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL*2); }
/* =========== IN_Init =========== */ void IN_Init (void) { // mouse variables m_filter = Cvar_Get ("m_filter", "0", 0); in_mouse = Cvar_Get ("in_mouse", "1", CVAR_ARCHIVE); // joystick variables in_joystick = Cvar_Get ("in_joystick", "0", CVAR_ARCHIVE); joy_name = Cvar_Get ("joy_name", "joystick", 0); joy_advanced = Cvar_Get ("joy_advanced", "0", 0); joy_advaxisx = Cvar_Get ("joy_advaxisx", "0", 0); joy_advaxisy = Cvar_Get ("joy_advaxisy", "0", 0); joy_advaxisz = Cvar_Get ("joy_advaxisz", "0", 0); joy_advaxisr = Cvar_Get ("joy_advaxisr", "0", 0); joy_advaxisu = Cvar_Get ("joy_advaxisu", "0", 0); joy_advaxisv = Cvar_Get ("joy_advaxisv", "0", 0); joy_forwardthreshold = Cvar_Get ("joy_forwardthreshold", "0.15", 0); joy_sidethreshold = Cvar_Get ("joy_sidethreshold", "0.15", 0); joy_upthreshold = Cvar_Get ("joy_upthreshold", "0.15", 0); joy_pitchthreshold = Cvar_Get ("joy_pitchthreshold", "0.15", 0); joy_yawthreshold = Cvar_Get ("joy_yawthreshold", "0.15", 0); joy_forwardsensitivity = Cvar_Get ("joy_forwardsensitivity", "-1", 0); joy_sidesensitivity = Cvar_Get ("joy_sidesensitivity", "-1", 0); joy_upsensitivity = Cvar_Get ("joy_upsensitivity", "-1", 0); joy_pitchsensitivity = Cvar_Get ("joy_pitchsensitivity", "1", 0); joy_yawsensitivity = Cvar_Get ("joy_yawsensitivity", "-1", 0); // centering v_centermove = Cvar_Get ("v_centermove", "0.15", 0); v_centerspeed = Cvar_Get ("v_centerspeed", "500", 0); Cmd_AddCommand ("+mlook", IN_MLookDown); Cmd_AddCommand ("-mlook", IN_MLookUp); Cmd_AddCommand ("joy_advancedupdate", Joy_AdvancedUpdate_f); IN_StartupMouse (); IN_StartupJoystick (); IN_MotionSensor_Init(); }
void IN_Init (void) { // mouse variables m_filter = Cvar_Get ("m_filter", "0", 0); in_mouse = Cvar_Get ("in_mouse", "1", CVAR_ARCHIVE); // on-screen keyboard variables in_osk = Cvar_Get ("in_osk", "0", CVAR_ARCHIVE); // Wii Remote look mode variables in_wlook = Cvar_Get ("in_wlook", "0", CVAR_ARCHIVE); // Wii Remote variables in_wmote = Cvar_Get ("in_wmote", "1", CVAR_ARCHIVE); in_wmotemovscale = Cvar_Get ("in_wmotemovscale", "3", CVAR_ARCHIVE); in_wmotevangscale = Cvar_Get ("in_wmotevangscale", "3", CVAR_ARCHIVE); in_wmotemovmin = Cvar_Get ("in_wmotemovmin", "4", CVAR_ARCHIVE); // Gamecube controller variables in_gcpad = Cvar_Get ("in_gcpad", "1", CVAR_ARCHIVE); in_gcpadmovscale = Cvar_Get ("in_gcpadmovscale", "3", CVAR_ARCHIVE); in_gcpadmovmin = Cvar_Get ("in_gcpadmovmin", "0", CVAR_ARCHIVE); // Classic controller variables in_clsct = Cvar_Get ("in_clsct", "1", CVAR_ARCHIVE); in_clsctmovscale = Cvar_Get ("in_clsctmovscale", "9", CVAR_ARCHIVE); in_clsctvangscale = Cvar_Get ("in_clsctvangscale", "9", CVAR_ARCHIVE); in_clsctmovmin = Cvar_Get ("in_clsctmovmin", "0", CVAR_ARCHIVE); // joystick variables in_joystick = Cvar_Get ("in_joystick", "0", CVAR_ARCHIVE); Cmd_AddCommand ("+mlook", IN_MLookDown); Cmd_AddCommand ("-mlook", IN_MLookUp); IN_StartupMouse (); IN_StartupWmote (); IN_StartupGCPad (); IN_StartupClsCt (); IN_Activate(true); }
/* =========== IN_Init =========== */ void IN_Init (void) { m_filter = gEngfuncs.pfnRegisterVariable ( "m_filter","0", FCVAR_ARCHIVE ); sensitivity = gEngfuncs.pfnRegisterVariable ( "sensitivity","3", FCVAR_ARCHIVE ); // user mouse sensitivity setting. in_joystick = gEngfuncs.pfnRegisterVariable ( "joystick","0", FCVAR_ARCHIVE ); joy_name = gEngfuncs.pfnRegisterVariable ( "joyname", "joystick", 0 ); joy_advanced = gEngfuncs.pfnRegisterVariable ( "joyadvanced", "0", 0 ); joy_advaxisx = gEngfuncs.pfnRegisterVariable ( "joyadvaxisx", "0", 0 ); joy_advaxisy = gEngfuncs.pfnRegisterVariable ( "joyadvaxisy", "0", 0 ); joy_advaxisz = gEngfuncs.pfnRegisterVariable ( "joyadvaxisz", "0", 0 ); joy_advaxisr = gEngfuncs.pfnRegisterVariable ( "joyadvaxisr", "0", 0 ); joy_advaxisu = gEngfuncs.pfnRegisterVariable ( "joyadvaxisu", "0", 0 ); joy_advaxisv = gEngfuncs.pfnRegisterVariable ( "joyadvaxisv", "0", 0 ); joy_forwardthreshold = gEngfuncs.pfnRegisterVariable ( "joyforwardthreshold", "0.15", 0 ); joy_sidethreshold = gEngfuncs.pfnRegisterVariable ( "joysidethreshold", "0.15", 0 ); joy_pitchthreshold = gEngfuncs.pfnRegisterVariable ( "joypitchthreshold", "0.15", 0 ); joy_yawthreshold = gEngfuncs.pfnRegisterVariable ( "joyyawthreshold", "0.15", 0 ); joy_forwardsensitivity = gEngfuncs.pfnRegisterVariable ( "joyforwardsensitivity", "-1.0", 0 ); joy_sidesensitivity = gEngfuncs.pfnRegisterVariable ( "joysidesensitivity", "-1.0", 0 ); joy_pitchsensitivity = gEngfuncs.pfnRegisterVariable ( "joypitchsensitivity", "1.0", 0 ); joy_yawsensitivity = gEngfuncs.pfnRegisterVariable ( "joyyawsensitivity", "-1.0", 0 ); joy_wwhack1 = gEngfuncs.pfnRegisterVariable ( "joywwhack1", "0.0", 0 ); joy_wwhack2 = gEngfuncs.pfnRegisterVariable ( "joywwhack2", "0.0", 0 ); gEngfuncs.pfnAddCommand ("force_centerview", Force_CenterView_f); gEngfuncs.pfnAddCommand ("joyadvancedupdate", Joy_AdvancedUpdate_f); IN_StartupMouse (); IN_StartupJoystick (); // Install a keyboard hook so we can trap ESC before Steam gets it. DWORD threadID = GetCurrentThreadId(); gKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardHookProc, GetModuleHandle(NULL), threadID); if (gKeyboardHook == NULL) { ConsolePrint("Unable to install keyboard hook\n"); } }
static struct InputEvent *IN_KeyboardHandlerFunc() { struct InputEvent *moo = (struct InputEvent *)REG_A0; struct inputdata *id = (struct inputdata *)REG_A1; #else HANDLERPROTO(IN_KeyboardHandler, struct InputEvent *, struct InputEvent *moo, APTR id) { #endif struct InputEvent *coin; ULONG screeninfront; if (!window || !(window->Flags & WFLG_WINDOWACTIVE)) return moo; if (window->WScreen) { #ifdef __MORPHOS__ if (IntuitionBase->LibNode.lib_Version > 50 || (IntuitionBase->LibNode.lib_Version == 50 && IntuitionBase->LibNode.lib_Revision >= 56)) GetAttr(SA_Displayed, window->WScreen, &screeninfront); else #endif screeninfront = (window->WScreen == IntuitionBase->FirstScreen); } else screeninfront = 1; for (coin = moo; coin; coin = coin->ie_NextEvent) { if (coin->ie_Class == IECLASS_RAWKEY) { int code; // mouse button 4, mouse wheel and keyboard code = coin->ie_Code & ~IECODE_UP_PREFIX; if (code >= NM_WHEEL_UP && code <= NM_BUTTON_FOURTH) { // we don't need these, they will be handled under IECLASS_NEWMOUSE /*if (mouseactive && screeninfront) { IN_AddEvent(coin); coin->ie_Code = IECODE_NOBUTTON; }*/ } else { IN_AddEvent(coin); } } else if (coin->ie_Class == IECLASS_RAWMOUSE && mouseactive && screeninfront) { // mouse buttons 1-3 if (coin->ie_Code != IECODE_NOBUTTON) { IN_AddEvent(coin); coin->ie_Code = IECODE_NOBUTTON; } // mouse movement mx += coin->ie_position.ie_xy.ie_x; my += coin->ie_position.ie_xy.ie_y; coin->ie_position.ie_xy.ie_x = 0; coin->ie_position.ie_xy.ie_y = 0; } else if (coin->ie_Class == IECLASS_NEWMOUSE && mouseactive && screeninfront) { // mouse button 4, mouse wheel IN_AddEvent(coin); coin->ie_Code = IECODE_NOBUTTON; } } return moo; } //MakeHandlerPri(InputHandler, &IN_KeyboardHandler, "Hexen II input handler", NULL, 100); /* =========== IN_Init =========== */ void IN_Init (void) { static char handler_name[] = "Hexen II input handler"; /* mouse variables */ Cvar_RegisterVariable (&m_filter); /* joystick variables */ Cvar_RegisterVariable (&in_joystick); Cvar_RegisterVariable (&joy_index); Cvar_SetCallback (&in_joystick, IN_Callback_JoyEnable); Cvar_SetCallback (&joy_index, IN_Callback_JoyIndex); Cmd_AddCommand ("force_centerview", Force_CenterView_f); pointermem = (UWORD *) AllocVec(2 * 6, MEMF_CHIP | MEMF_CLEAR); IN_StartupMouse (); IN_StartupJoystick (); imsglow = imsghigh = 0; inputport = CreateMsgPort(); if (inputport) { //inputreq = (struct IOStdReq *) CreateIORequest(inputport, sizeof(*inputreq)); inputreq = CreateStdIO(inputport); if (inputreq) { if (!OpenDevice("input.device", 0, (struct IORequest *)inputreq, 0)) { InputHandler.is_Node.ln_Type = NT_INTERRUPT; InputHandler.is_Node.ln_Pri = 100; InputHandler.is_Node.ln_Name = handler_name; InputHandler.is_Code = (void (*)())&IN_KeyboardHandler; inputreq->io_Data = (void *)&InputHandler; inputreq->io_Command = IND_ADDHANDLER; DoIO((struct IORequest *)inputreq); return; } //DeleteIORequest(inputreq); DeleteStdIO(inputreq); } DeleteMsgPort(inputport); } Sys_Error ("Couldn't install input handler"); } /* =========== IN_Shutdown =========== */ void IN_Shutdown (void) { if (inputreq) { inputreq->io_Data = (void *)&InputHandler; inputreq->io_Command = IND_REMHANDLER; DoIO((struct IORequest *)inputreq); CloseDevice((struct IORequest *)inputreq); //DeleteIORequest(inputreq); DeleteStdIO(inputreq); } if (inputport) { DeleteMsgPort(inputport); } IN_DeactivateMouse (); /*IN_ShowMouse ();*/ if (pointermem) { FreeVec(pointermem); } mouseinitialized = false; if (LowLevelBase) { CloseLibrary(LowLevelBase); LowLevelBase = NULL; } joy_port = -1; joy_available = 0; oldjoyflag = 0; #ifdef __CLIB2__ if (KeymapBase) { CloseLibrary(KeymapBase); KeymapBase = NULL; } #endif } /* =========== IN_ReInit =========== */ void IN_ReInit (void) { IN_StartupMouse (); } /* =========== IN_MouseMove =========== */ static void IN_MouseMove (usercmd_t *cmd/*, int mx, int 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; mouse_x *= sensitivity.value; mouse_y *= sensitivity.value; /* add mouse X/Y movement to cmd */ if ( (in_strafe.state & 1) || (lookstrafe.integer && (in_mlook.state & 1) )) cmd->sidemove += m_side.value * mouse_x; else cl.viewangles[YAW] -= m_yaw.value * mouse_x; if (in_mlook.state & 1) { if (mx || my) V_StopPitchDrift (); } if ( (in_mlook.state & 1) && !(in_strafe.state & 1)) { cl.viewangles[PITCH] += m_pitch.value * mouse_y; if (cl.viewangles[PITCH] > 80) cl.viewangles[PITCH] = 80; if (cl.viewangles[PITCH] < -70) cl.viewangles[PITCH] = -70; } else { if ((in_strafe.state & 1) && (cl.v.movetype == MOVETYPE_NOCLIP)) cmd->upmove -= m_forward.value * mouse_y; else cmd->forwardmove -= m_forward.value * mouse_y; } if (cl.idealroll == 0) /* Did keyboard set it already?? */ { if (cl.v.movetype == MOVETYPE_FLY) { if (mouse_x < 0) cl.idealroll = -10; else if (mouse_x > 0) cl.idealroll = 10; } } } static void IN_DiscardMove (void) { if (mouseinitialized) { mx = my = old_mouse_x = old_mouse_y = 0; } } /* =========== IN_Move =========== */ void IN_Move (usercmd_t *cmd) { if (cl.v.cameramode) { /* stuck in a different camera so don't move */ memset (cmd, 0, sizeof(*cmd)); /* ignore any mouse movements in camera mode */ IN_DiscardMove (); return; } if (mx != 0 || my != 0) { IN_MouseMove (cmd/*, x, y*/); mx = my = 0; } } static const char *JoystickName(int port) { ULONG joyflag = ReadJoyPort(port); switch (joyflag & JP_TYPE_MASK) { case JP_TYPE_GAMECTLR: return "game controller"; case JP_TYPE_JOYSTK: return "joystick controller"; case JP_TYPE_MOUSE: return "mouse"; case JP_TYPE_NOTAVAIL: return "not available"; case JP_TYPE_UNKNOWN: return "unknown device"; default: return "<unknown>"; } }
void IN_Init (void) { // // Reset globals to default. // IN_SetGlobals(); Cvar_SetCurrentGroup (CVAR_GROUP_INPUT_MOUSE); // Mouse variables. // Can be changed at any time. Cvar_Register (&m_rate); Cvar_Register (&m_showrate); Cvar_Register (&m_filter); // Latched. Cvar_Register (&in_mouse); Cvar_Register (&in_m_smooth); Cvar_Register (&in_m_os_parameters); Cvar_Register (&in_di_bufsize); Cvar_Register (&in_di_buffered); Cvar_Register (&in_raw_custom_device); Cvar_Register (&in_raw_custom_device_enable); if (!host_initialized) { void IN_Restart_f(void); if (COM_CheckParm("-dinput")) Cvar_LatchedSetValue (&in_mouse, mt_dinput); if (COM_CheckParm("-rawinput")) { if (COM_CheckParm("-dinput")) { Com_Printf ("Option -dinput will be ignored with -rawinput.\n"); } Cvar_LatchedSetValue (&in_mouse, mt_raw); } if (COM_CheckParm ("-nomouse")) Cvar_LatchedSetValue (&in_mouse, mt_none); if (COM_CheckParm("-m_smooth")) Cvar_LatchedSetValue (&in_m_smooth, 1); if (COM_CheckParm ("-noforcemspd")) Cvar_LatchedSetValue (&in_m_os_parameters, 1); if (COM_CheckParm ("-noforcemaccel")) Cvar_LatchedSetValue (&in_m_os_parameters, 2); if (COM_CheckParm ("-noforcemparms")) Cvar_LatchedSetValue (&in_m_os_parameters, 3); Cvar_SetCurrentGroup (CVAR_GROUP_INPUT_KEYBOARD); // keyboard variables Cvar_Register (&cl_keypad); Cmd_AddCommand ("in_restart", IN_Restart_f); Cvar_Register (&in_raw_allbuttons); } Cvar_ResetCurrentGroup (); switch(in_mouse.integer) { case mt_none: break; case mt_normal: { if (in_m_smooth.integer) Com_Printf ("%s will be ignored with non dinput mouse\n", in_m_smooth.name); break; } case mt_dinput: { #if DIRECTINPUT_VERSION >= 0x0700 if (in_m_os_parameters.integer) Com_Printf ("%s will be ignored with DirectInput mouse\n", in_m_os_parameters.name); break; #else // DIRECTINPUT_VERSION >= 0x0700 Com_Printf ("DirectInput mouse not supported in this build\n"); Cvar_LatchedSetValue (&in_mouse, mt_normal); break; #endif // DIRECTINPUT_VERSION >= 0x0700 else } case mt_raw: { #ifdef USINGRAWINPUT if (in_m_os_parameters.integer) Com_Printf ("%s will be ignored with RawInput mouse\n", in_m_os_parameters.name); break; #else // USINGRAWINPUT Com_Printf ("RawInput mouse not supported in this build\n"); Cvar_LatchedSetValue (&in_mouse, mt_normal); break; #endif // USINGRAWINPUT else } default: { Com_Printf("Unknow value %d of %s, using normal mouse\n", in_mouse.integer, in_mouse.name); Cvar_LatchedSetValue (&in_mouse, mt_normal); break; } } #ifdef WITH_KEYMAP if (!host_initialized) IN_StartupKeymap(); #endif // WITH_KEYMAP uiWheelMessage = RegisterWindowMessage ("MSWHEEL_ROLLMSG"); IN_StartupMouse (); input_initialized = true; }