1. Moves right stick movement handler to run on every frame.
2. Changes hi-res accumulators to `float` to ensure they're always
incremented.
3. Avoid calling `SetCursorPos` within the same SDL tick:
this caused SDL to process all controller events before mouse events
(out-of-order).
(1) also makes right-stick-as-mouse work in `gmenu`.
Previously this was handle as part of `game_logic`, reducing
responsiveness and making it impossible to run where `game_logic`
isn't running, e.g. stores.
* Fixes Right Stick cursor movement
* Fixes cursor flicker when moving the cursor while moving the character
* Fixes START + SELECT menu
* Makes SELECT act as Escape in the in-game menu
Fixes#930
The game will now autodetect if it should run in shareware mode or full
retail based on the found mpq file. Additionally it can beforced in the
shareware mode with --spawn even if the retail data is found.
This simplifies a lot of the spagetty code and lets us better refactor,
also worth noteing is that we won't have to setup a secound set of build
tests.
This also fixes
- UI navigation being unresponsive when quickly tabing the direction
pad.
- Speed book not starting out highlighting the current selected item
- Diagonal in the speed book
- Being able to select non spells in the speedbook
1. Makes START a modifier key.
2. Main modifier actions are now displayed as hints while the modifier is pressed.
3. Mouse simulation now available on all controllers:
SELECT + D-Pad to move mouse
SELECT + Left/Right should button to click
START + | Action
---------- | ------
SELECT | Menu
UP | Menu
DOWN | Map
LEFT | Character info
RIGHT | Inventory
B (Bottom) | Spell book
Y (Left) | Quest log
This makes all actions available on controllers without sticks and ZL/ZR.
The emulated mouse and map move at a consistent speed independant of
frame rate.
The map can now be scrolled at variable speeds and diagonally.
Mouse is now confined to the window.