Hi,
Today I will open this pull request (which still as draft state). It main goal is to enhance user input a lot (accessibility, …) and add complete Gamepad support.
News:
— Bulk commit —
- Focus effect on listbox
- Show binds in brackets
- Allow color in emoticon’s name to make use in binds
- Up to 3 binds, wrapped in brackets
- Colorize bind according to team
- Some emoticon for binds
- Review tutorial text position, opacity and shadow
-
Make RED more light(restored) - Enable joystick by default and review default sensibility
- Allow reversed / negative range input
- Lot of UI controls handling / improvement
- Allow navigation with arrows key (draft)
- Reverse TAB with SHIFT
- Add haptic support
- Other various fixes as CURL path (https://github.com/GrangerHub/tremulous/pull/110/files#diff-87588ca2e05795f8076c4338494baed5) when USE_LOCAL_HEADERS is enabled
— In individual commit —
- Old fashion shadow (text) where restored: abusing of it kind of graphical/buffer overflow bug
- Gamepad icons
- Multiple tutorial mode (gamepad/mouse/auto)
- Printf all input error (is it a good idea or should I revert it to DPrintf ?)
- Default gamepad binds
- Joystick / Haptic feedback selection in UI
- Refactor gamepad code, also its threshold
- Solve strange behavior with analog up/down pressed at the same time
- Disable running when moving slowly with joystick
- Replace j_forward, j_side, j_up by a out dead zone threshold, else it make no sense to use a factor since output will be clamped to 64 or 127
- Repair (gamepad) strafing
- Show threshold graph
- Create gamepad feedback effects (done for lcannon only)
- Back button should close sub-popup of the main menu. Escape touch keep its behaviour
- Arrows navigation (almost fully working)
- Repeat a key on long press in UI. Moreover it should handle analogical pressure. (In progress)
- Change tutorial mode appearance. I will probably re-change it again in
newfonts
branch
Breaking change:
- Remove defaultbindX from code. The only place it were used it was instantly rebound by default.cfg
- The BUTTON_WALKING flag is added only depending of the speed, it will not depend of what controls you press anymore.
FIXEME:
- Are terminology “Global in dead zone” and “Moves out dead zone” correct ?
- Sometimes (even rarelly) the game crash if the gamepad was disconnected unexpectedly
ERROR: Q_strncpyz: NULL src
.
Todo:
- Fix tab order of comboboxs. Also comboboxs should integrate it’s own label
- Review analog diagonals when acting as key
- Chat update seem to interfere (it do not uncapture after pressing enter)
- joystick is not finely reset on disconnect
Need testers for:
- Ball joystick : It should work like a normal mouse
- Any joystick : Should be configurable and usable (its button too) but not in UI at all (for now)
In progress in other pull request / branch (based on current):
- Review fonts: https://github.com/GrangerHub/tremulous/pull/113
- Controls modifiers: https://github.com/Buom01/tremulous/tree/controls_modifiers/ (could be long to do, and boring due to compatibility issues)
- toggle items (/packs) binds: Will be in a separate commit
Other idea for other pull request:
- Restore scannerShader for helmet
- Try to keep selected item in listbox on update
- Focus animation (pulsing slowly)
- Other UI animation (list lists scrolling transition)
- Don’t show current team in team selection menu
- Allow to play split screen (maybe with multiple instances)
- Make joystick configurable for UI (only gamepad was binded in code for UI)
- VoIP support (adding it or showing it in the UI)
- Bring back cinematics with
mp4WEBM - Bring RGB feedback Adam Honse / OpenRGB · GitLab
Show gamepad status (ie power level). (SDL is unable to find my device power level)