FTE's key numbers (keynum_t), key names and modifiers, and the QuakeC key codes the
client and menu programs use for them, as FTE's keys.c and pr_clcmd.c number,
name and translate them.
QuakeServer.Keys.string_to_keynum("ctrl+w")
#=> {119, 4}
QuakeServer.Keys.keynum_to_string(QuakeServer.Keys.keynum(:uparrow), 0)
#=> "UPARROW"
QuakeServer.Keys.to_qc(QuakeServer.Keys.keynum(:mouse1))
#=> 512A key number below 128 is the key's ASCII code (letters lower case). A modifier is a
bit set of shift (1), alt (2) and ctrl (4); with altbindmap (8) set, the low
bits name a bind map instead. string_to_keynum/1 gives :all as the modifier when
the name has no modifier prefix (every modifier state); a std_ or std+ prefix
means no modifier (0).
Summary
Functions
The key number for QuakeC key code code (FTE's MP_TranslateQCtoFTECodes).
The number of FTE key name (an atom of keynum_t without its K_, lower case).
The name of key number keynum with modifier written before it (Ctrl+, Alt+,
Shift+ in that order; a bind map is not written), as FTE's Key_KeynumToString.
One past the highest key number (FTE's K_MAX).
The key number and modifier a key name such as "w", "MOUSE1", "K_ENTER",
"ctrl+shift+a" or "std_f1" names, or {-1, modifier} when it names no key
(FTE's Key_StringToKeynum).
The QuakeC key code for key number keynum (FTE's MP_TranslateFTEtoQCCodes).
Types
@type keynum() :: integer()
@type modifier() :: 0..15 | :all
Functions
The key number for QuakeC key code code (FTE's MP_TranslateQCtoFTECodes).
The number of FTE key name (an atom of keynum_t without its K_, lower case).
The name of key number keynum with modifier written before it (Ctrl+, Alt+,
Shift+ in that order; a bind map is not written), as FTE's Key_KeynumToString.
@spec max() :: pos_integer()
One past the highest key number (FTE's K_MAX).
The key number and modifier a key name such as "w", "MOUSE1", "K_ENTER",
"ctrl+shift+a" or "std_f1" names, or {-1, modifier} when it names no key
(FTE's Key_StringToKeynum).
The QuakeC key code for key number keynum (FTE's MP_TranslateFTEtoQCCodes).