Events have a player ID instead of adding billions of keys for separate gamepads. Axis movement (mouse movement, analog sticks) now are counted as keys, so axes don't need to be separately implemented for all controls. Game controls emulate a Saturn controller (some of the external functions like screenshot / gif should be readded, but I got lazy)
This will allow later us to save a config for a controller that can be reused for any player slot, which is one of the main goals for profiles.
Only just enough was made to use the new input system to make it compile. Menus in this branch should aim to move to using PlayerInputDown entirely, instead of using hardcoded keys & simply remapping to those
We had SEENAMES disabled before, and vanilla removed the define, so I went ahead and removed it. Repurposed the old seenames console variable for our nametags.
Since Sryder mentioned it, the main difference is:
- player->angleturn is the absolute angle, like vanilla, but it's now an angle_t, so it doesn't need shifted.
- cmd->turning modifies player->angleturn relatively, instead of absolute angles being stored in the cmd (makes the system less cheatable for kart)
- Because the absolute angle is no longer stored in the cmd, all of the pre/post angleturn values that vanilla has basically just need to be flat-out removed.
While in the air: release accelerate while at nearly-still speeds, and you'll preform a minisucle air drift boost. This mechanic is meant to fix the long-standing issue where you can get stuck in 0 speed in the air and not be able to do anything.
Before, doing a spindash input while turning, but not being at a low enough speed, would make you start drifting.
Now, it checks if you're trying to E-Brake first before interpreting it as a drift input.
If you were already drifting, then attempting accel+brake will still be brake-drift, so that technique is unaffected.