With 1.3.0, we switched from CEL to PCX for fonts.
This resulted in significant performance drops when rendering lots of
text, because SDL RLE implementation is not as optimized as our CEL
implementation.
Disabling RLE significantly reduces the performance drop.
The font surfaces are fairly small, so we do not lose out much on RAM.
The menu surfaces are also PCX, so the RAM usage there is
greater, but the game itself uses a lot more RAM than the menu anyway.
Thanks to @AJenbo for discovering the RLE flag as the root cause
of font rendering performance issues!
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.