Just been spending some time working on the input code. More of a general tidy up than anything dramatic, although I have made a few changes.
- Removed joystick support. This might get some people's backs up, but it's a practical necessity: I just plain-old-fashioned do not have a joystick to test other changes on, so better to have no support than broken/unpredictable support.
- Added cvar controlled mouse looking (m_look, on by default). This is in addition to, rather than instead of, the old Quake 1 look controls, which still work exactly the same way as before with mouse looking switched off. You can even still have +mlook in your autoexec. While I was doing this, I removed the mouse slide forwards = move forwards a little funtionality (thinks: might restore this but make it controllable too).
- Switched Direct Input and m_filter on by default (m_filter is now an archive variable). It's just smoother and more responsive on XP, which I guess is the version of Windows most people have these days. I may yet decide to re-initialize Direct Input at a map load/change as it doesn't seem to properly flush it's state between maps.
- Added mouse wheel support to Direct Input. No thanks at all to the non-existent documentation, but a bit of digging around in header files and experimenting with stuff got me there.
// detect the mouse wheel movement
if ((int) od.dwData < 0)
Key_Event (K_MWHEELDOWN, true);
Key_Event (K_MWHEELDOWN, false);
Key_Event (K_MWHEELUP, true);
Key_Event (K_MWHEELUP, false);
In other news, I finally threw out my old wimpy 350 watt PSU and got a nice beefy 650 PSU in. That wasn't quite the source of some of my recent problems (I'm fairly convinced that was an NVIDIA driver bug), but it's good to have the extra juice on tap, and it opens up GPU upgrade possibilities. Plus it's so quiet by comparison. Happy to report that changing it was a breeze, and I didn't end up all blackened and charred with smoke rising from the remains of my hair.