mirror of
https://github.com/BoredDevNL/BoredOS.git
synced 2026-05-15 10:48:38 +00:00
fix: doom inputs
This commit is contained in:
parent
3bb90a8b7f
commit
3d53e45e20
4 changed files with 11 additions and 14 deletions
|
|
@ -188,13 +188,12 @@ bool keyboard_handle_set1_scancode(uint8_t scancode, keyboard_event_t *ev) {
|
||||||
ev->pressed = pressed;
|
ev->pressed = pressed;
|
||||||
ev->mods = keyboard_get_modifiers();
|
ev->mods = keyboard_get_modifiers();
|
||||||
|
|
||||||
keymap_result_t r = keymap_translate_keycode(keycode, ev->mods);
|
|
||||||
ev->codepoint = r.codepoint;
|
|
||||||
|
|
||||||
if (!pressed) {
|
if (!pressed) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
keymap_result_t r = keymap_translate_keycode(keycode, ev->mods);
|
||||||
|
|
||||||
if (r.is_dead) {
|
if (r.is_dead) {
|
||||||
g_kb.dead_key = r.codepoint;
|
g_kb.dead_key = r.codepoint;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -434,18 +434,16 @@ int keymap_legacy_key(uint16_t keycode, uint32_t codepoint) {
|
||||||
case KEY_ENTER:
|
case KEY_ENTER:
|
||||||
case KEY_KP_ENTER: return '\n';
|
case KEY_KP_ENTER: return '\n';
|
||||||
|
|
||||||
case KEY_SPACE: return ' ';
|
|
||||||
|
|
||||||
case KEY_ARROW_UP: return 17;
|
case KEY_ARROW_UP: return 17;
|
||||||
case KEY_ARROW_DOWN: return 18;
|
case KEY_ARROW_DOWN: return 18;
|
||||||
case KEY_ARROW_LEFT: return 19;
|
case KEY_ARROW_LEFT: return 19;
|
||||||
case KEY_ARROW_RIGHT: return 20;
|
case KEY_ARROW_RIGHT: return 20;
|
||||||
|
|
||||||
case KEY_LEFT_CTRL:
|
case KEY_LEFT_CTRL:
|
||||||
case KEY_RIGHT_CTRL: return 161;
|
case KEY_RIGHT_CTRL: return 21;
|
||||||
case KEY_LEFT_SHIFT:
|
case KEY_LEFT_SHIFT:
|
||||||
case KEY_RIGHT_SHIFT: return 162;
|
case KEY_RIGHT_SHIFT: return 24;
|
||||||
case KEY_LEFT_ALT: return 163;
|
case KEY_LEFT_ALT: return 25;
|
||||||
case KEY_RIGHT_ALT: return 22; // for compat w/ doom
|
case KEY_RIGHT_ALT: return 22; // for compat w/ doom
|
||||||
case KEY_CAPS_LOCK: return 23; // same here
|
case KEY_CAPS_LOCK: return 23; // same here
|
||||||
case KEY_DELETE: return 127;
|
case KEY_DELETE: return 127;
|
||||||
|
|
|
||||||
|
|
@ -89,15 +89,16 @@ int DG_GetKey(int* pressed, unsigned char* key) {
|
||||||
} else if (ev.type == GUI_EVENT_KEY || ev.type == GUI_EVENT_KEYUP) {
|
} else if (ev.type == GUI_EVENT_KEY || ev.type == GUI_EVENT_KEYUP) {
|
||||||
unsigned char k = (unsigned char)ev.arg1;
|
unsigned char k = (unsigned char)ev.arg1;
|
||||||
unsigned char dk = k;
|
unsigned char dk = k;
|
||||||
if (k == 17) dk = KEY_UPARROW;
|
if (ev.arg2 == 57) dk = 32;
|
||||||
|
else if (k == 17) dk = KEY_UPARROW;
|
||||||
else if (k == 18) dk = KEY_DOWNARROW;
|
else if (k == 18) dk = KEY_DOWNARROW;
|
||||||
else if (k == 19) dk = KEY_LEFTARROW;
|
else if (k == 19) dk = KEY_LEFTARROW;
|
||||||
else if (k == 20) dk = KEY_RIGHTARROW;
|
else if (k == 20) dk = KEY_RIGHTARROW;
|
||||||
else if (k == 161) dk = KEY_FIRE;
|
else if (k == 21) dk = KEY_FIRE;
|
||||||
else if (k == 22) dk = KEY_RALT;
|
else if (k == 22) dk = KEY_RALT;
|
||||||
else if (k == 23) dk = KEY_CAPSLOCK;
|
else if (k == 23) dk = KEY_CAPSLOCK;
|
||||||
else if (k == 162) dk = KEY_RSHIFT;
|
else if (k == 24) dk = KEY_RSHIFT;
|
||||||
else if (k == 163) dk = KEY_LALT;
|
else if (k == 25) dk = KEY_LALT;
|
||||||
else if (k == 27) dk = KEY_ESCAPE;
|
else if (k == 27) dk = KEY_ESCAPE;
|
||||||
else if (k == '\b') dk = KEY_BACKSPACE;
|
else if (k == '\b') dk = KEY_BACKSPACE;
|
||||||
else if (k == '\t') dk = KEY_TAB;
|
else if (k == '\t') dk = KEY_TAB;
|
||||||
|
|
@ -105,7 +106,6 @@ int DG_GetKey(int* pressed, unsigned char* key) {
|
||||||
else if (k >= 141 && k <= 150) dk = KEY_F1 + (k - 141);
|
else if (k >= 141 && k <= 150) dk = KEY_F1 + (k - 141);
|
||||||
else if (k == 151) dk = KEY_F11;
|
else if (k == 151) dk = KEY_F11;
|
||||||
else if (k == 152) dk = KEY_F12;
|
else if (k == 152) dk = KEY_F12;
|
||||||
else if (k == ' ') dk = KEY_USE;
|
|
||||||
else if (k == '\n' || k == '\r') dk = KEY_ENTER;
|
else if (k == '\n' || k == '\r') dk = KEY_ENTER;
|
||||||
else if (k >= 'A' && k <= 'Z') dk = k + 32;
|
else if (k >= 'A' && k <= 'Z') dk = k + 32;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
#define KEY_DOWNARROW 0xaf
|
#define KEY_DOWNARROW 0xaf
|
||||||
#define KEY_STRAFE_L 0xa0
|
#define KEY_STRAFE_L 0xa0
|
||||||
#define KEY_STRAFE_R 0xa1
|
#define KEY_STRAFE_R 0xa1
|
||||||
#define KEY_USE 0xa2
|
#define KEY_USE 32
|
||||||
#define KEY_FIRE 0xa3
|
#define KEY_FIRE 0xa3
|
||||||
#define KEY_ESCAPE 27
|
#define KEY_ESCAPE 27
|
||||||
#define KEY_ENTER 13
|
#define KEY_ENTER 13
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue