beyond-all-reason / beyond-all-reason/RecoilEngine
Changing how Lua receives Mouse interaction
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 38
Description
I've been working on some changes to mouse handling - specifically, replacing engine default actions with a binding system similar to how keyboard input is handled.
With this, I'd like to change how MousePress, MouseMove, and MouseRelease are handled - currently, MouseMove and MouseRelease aren't handled per-button.
Issuing MouseRelease for every mouse button released should not impact games using a `mouseOwner` system similar to the current basecontent, as `mouseOwner` is set to nil at the first `MouseRelease` received. (currently, only the first button released will send a `MouseRelease` to Lua.)
`MouseMove` will require new behaviour, however. Prefered solutions are:
- Changing `button` argument to a bitfield of pressed buttons
- Changing `button` argument to a table/array of pressed buttons
Other possible solutions:
- Removing `button` argument, letting game track which buttons are pressed
- Calling `MouseMove` for every button pressed
(Related PR: #893)
Contributor guide
Research direction
Start by reading related PR #893 and the 18-comment discussion to determine whether a MouseMove representation has been selected. Done requires a decided, documented behavior for MousePress, MouseMove, and MouseRelease that matches the chosen Lua interface; no file or test is named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100