As requested.
DirectInput-only controllers are already getting rarer and rarer. Plus, this branch makes all controllers faster & simpler to rebind. I'd even argue these get in the way, because you can't just immediately bind a DInput controller from boot-up, you have to unbind everything first.
I'm not against a new code path for DInput defaults that tries to guess what kind of controller you have, but I don't care about it myself.
Add options to change how fast the analog sensitivity is for yaw & pitch.
Why not use the existing axis sensitivity options? Because they can change how the deadzones and input response preform, and you have to balance several options. In my opinion, those sensitivity options should be for full-on stick calibration (if your stick is not outputting the full range, for instance). But how fast the player should be able to look around is up to the user's taste, regardless of the stick they're using. This also helps make it match up with how mouse sensitivity is split up (i.e: device sensitivity vs game logic sensitivity)
Default analog pitch sensitivity has been drastically lowered, from 2048 (x1.6 yaw sensitivity) to 768 (x0.6 of yaw sensitivity). I don't think I've ever heard of any FPS game on controller before that makes pitch more sensitive than yaw... it is either the same or lower, because players typically want to stay looking in the horizon, and analog stick isn't precise enough to treat them evenly (let alone more sensitive). IMO this is a lot more playable, but I can change the default back to match older versions if that is preferred.
The main benefit of this is to remove the requirement of going to the gamepad menu for binding analog sticks, and going to a keybinds menu for binding literally everything else; now it's all bound in the same location.
This also means that axes can both register as a digital button press, and be used as an analog value for movement separately. Before, using analog movement would not register BT_FORWARD, BT_BACK, etc
Mark Actors meant to travel early so their flag can be written into the snapshot, followed by moving them over all at once at the same time as previously. On finish, destroy any marked Actors to prevent duplication in hubs. Switch to a unique function that does the verification instead of ChangeStatNum and lock out STAT_TRAVELLING entirely since it shouldn't be used for regular gameplay.
Added safety barriers for STAT_STATIC and STAT_TRAVELLING to avoid potential exploits. Properly clear all internal fields pointing towards non-read barriered data and always relink properly when finishing travelling. Moved ZScript callback to after travelling has finished for all Thinkers, that way everything is initialized correctly. Allow arbitrary thinkers (excluding native ones) to be added to the travelling list (for Actors, their positioning will need to be handled by modders). Ensure lights get re-enabled after travelling.
Allows the SavegameManager to destroy all saves related to the current UUID session so hardcore mods can enforce this safely instead of needing to go nuclear.