From 0c2b175eaa87a4046316f1d73e5e120b8065729a Mon Sep 17 00:00:00 2001 From: ob1kenewb Date: Sun, 4 May 2003 21:00:30 +0000 Subject: [PATCH] support all keyboard keys --- src/keybinput.c | 7 ++++--- src/menu.c | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/keybinput.c b/src/keybinput.c index 5338ab9..e3eec6f 100644 --- a/src/keybinput.c +++ b/src/keybinput.c @@ -16,15 +16,16 @@ void keybinput_new (_keybinput *ki) { int keybinput_loop (_keybinput *ki, SDL_Event *event) { - int key = 0; + int key = 0, keyu = 0; ki->changed = 0; - + if (event->type == SDL_KEYUP) keybinput_oldkey = 0; if (event->type == SDL_KEYDOWN && keybinput_oldkey != event->key.keysym.sym) { key = keybinput_oldkey = event->key.keysym.sym; + keyu = event->key.keysym.unicode; if (key == 8) { // BACKSPACE if (ki->curpos > 0) { @@ -33,7 +34,7 @@ int keybinput_loop (_keybinput *ki, SDL_Event *event) { ki->changed = 1; } } - else if (key >= ' ' && key <= 'z') { + else if ((keyu >= 32 && keyu <= 126) || (keyu >= 128 && keyu <= 255)) { // International keyboard support if (ki->curpos < 255) { ki->text[ki->curpos++] = event->key.keysym.unicode; ki->text[ki->curpos] = 0; diff --git a/src/menu.c b/src/menu.c index 0c6d89d..9fe395b 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1,4 +1,4 @@ -/* $Id: menu.c,v 1.4 2003/05/04 19:23:00 ob1kenewb Exp $ */ +/* $Id: menu.c,v 1.5 2003/05/04 21:00:30 ob1kenewb Exp $ */ /* menu's for the game */ #include @@ -250,8 +250,8 @@ menu_get_text (char *title, char *text, int len) keypressed = 1; } - for (i = ' '; i <= 'z'; i++) - if (!keypressed && keys[i] && event.type == SDL_KEYDOWN) { + for (i = ' '; i <= 255; i++) + if (i != 127 && !keypressed && keys[i] && event.type == SDL_KEYDOWN) { if (t[curpos] == 0) t[curpos + 1] = 0; t[curpos] = event.key.keysym.unicode;