Initial game controller support.
Actions are based on the Switch branch but the controller code itself is
implemented differently, allowing for easy remapping and minimizing
changes to the Source/ directory.
Many subtle and not so subtle controller bugs have been fixed
in this implementation, including:
1. Smoother & more responsive movement with the joysticks.
2. Consistent controls for all the menus in the game (stores, quest log,
etc).
3. Cursor appearance / disappearance at appropriate times.
Low-level controls are abstracted and 3 SDL interfaces are supported:
game controller, joystick, and keyboard. See SourceX/controls/ for more
details on this.
Wishlist for the future:
1. Primary button and use button should attack continously.
This is hard as it requires checking the cooldowns / attack speed.
2. Quick spell menu navigation is very buggy. It is also buggy in the
switch branch. I haven't had a change to investigate.
- Use UiOkDialog() to display all error messages
- Add SDL simple message, and console fallbacks to UiOkDialog()
- Boot graphics early on to facilitate most error messages with build in
gui
- Some more miniwin clean ups
Belated birthday present for @mewmew
Functions for gettings paths have sensible names
It's using snprintf for safe? string concat
Paths don't use \ as path reporator, or magic marker
Drop code for copying pre 1.09 save games from the windows folder
Rationale described in sanctuary/notes@3cd6417cdfafba340145939c2054ec614e1bd33e
as included below:
Infer the name of NetMsgStr and NetMsgHotKey from the
PSX debug names of:
char *PanBtnHotKey[8];
unsigned long PanBtnStr[8];
Note, the previous use of spsz hungarian notation has been removed
since searching for "spsz" gave no results in the merged output of
PSX debug info: https://github.com/diasurgical/scalpel/tree/master/psx/_dump_/_dump_merge_c_
Also simplify if conditions to make
use of boolean values.
(If the cleanup4 PR ends up increasing
inserts/deletions, then this commit is
probably at fault.)