beyond-all-reason / beyond-all-reason/RecoilEngine
Offload default bindings to basecontent or at least to an external file
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
Currently the default bindings are hardcoded [here](https://github.com/beyond-all-reason/RecoilEngine/blob/c3fe612/rts/Game/UI/KeyBindings.cpp#L60-L257).
Consider moving these bindings to an external file, with the same syntax as `uikeys.txt`.
This file can either be stored by the engine as hardcoded content, e.g. at compilation time to include it as a plaintext variable to be interpreted as a uikeys file content, or read by the engine from some basecontent source at runtime.
The consideration on whether to use basecontent or not is a bigger discussion, this issue concerns itself mostly with offloading the default bindings to a format that is the same games use instead of reading engine source code.
Contributor guide
Research direction
Start in rts/Game/UI/KeyBindings.cpp around lines 60-257 and compare the default binding syntax with uikeys.txt. Determine how the external content would be supplied, then verify that the engine loads the same defaults without keeping them as binding definitions in the source file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- game-dev
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100