Closed geneotech closed 5 years ago
Hint: C++ enums are introspected in Hypersomnia. Each enum value can be visited with help of
augs::for_each_enum_except_bounds
.
There also exists augs::enum_to_string
and format_enum
, which help convert the enums to readable format.
Question is whether to use IMGUI for this or our own functionality from augs::?
There should be 4 categories, separated vertically:
Application controls Application controls (in-game) Game GUI controls Gameplay controls
To see examples of each, check out
config.lua
. Each line should consist of the name of the command to the left, and the button to the right, whose label contains the currently bound key, or "(unbound)" if there is none. The button, after being pressed, should receive the first keydown input and assign the new key if it is yet unbound. Otherwise, display a warning popup and don't do the assignment. IMGUI contains some code for popups.e.g.
Move forward [ W ] Move backward [ S ] (...) Throw [ (unbound) ]
settings_gui.cpp
contains the code that creates the Settings window. If we choose to use IMGUI, It should be implemented there. Otherwise, a call should be made from there to activate our own GUI.