Lots of changes here, intended to address issues mentioned in and related to #134. This is almost a complete rewrite of the input mapping and configuration code.
Overview from a user perspective:
"Keyboard" and "gamepad" input settings are no longer separate. Each system now supports 2 different input mappings for each button, and each button mapping can be a keyboard key, a gamepad input, or a mouse button
Buttons can now be mapped to a combination of up to 3 simultaneous keys/inputs (3 chosen arbitrarily, could trivially be increased)
Each input settings window now has buttons to restore the default settings (or apply a keyboard preset) and to clear all inputs
The above three bullets also apply to hotkeys, which can now be mapped to gamepad inputs, mouse buttons, and combinations in addition to individual keyboard keys
Added a bit of text to the input configuration window which was previously just a blank window with the title "SDL input configuration"
Removed a delay around reading gamepad inputs for configuration purposes; this was originally added to work around SDL2 doing strange and buggy things if certain controllers are connected/disconnected while the application is running, but I think having the delay is more confusing overall (especially now that combinations are supported), so it is now gone
This also adds the feature originally requested in #134 of hotkeys to save/load specific state slots.
Lots of changes here, intended to address issues mentioned in and related to #134. This is almost a complete rewrite of the input mapping and configuration code.
Overview from a user perspective:
This also adds the feature originally requested in #134 of hotkeys to save/load specific state slots.