From e887170b65e29e1b2b812470bd2c22ef7852a585 Mon Sep 17 00:00:00 2001 From: teuf <> Date: Wed, 2 May 2001 19:59:43 +0000 Subject: [PATCH] Fixed keypad arrows --- zsnes/src/linux/sdllink.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/zsnes/src/linux/sdllink.c b/zsnes/src/linux/sdllink.c index e0f09e6f..49a08a96 100644 --- a/zsnes/src/linux/sdllink.c +++ b/zsnes/src/linux/sdllink.c @@ -173,7 +173,7 @@ int Main_Proc(void) */ switch (event.button.button) { - case 4: + case 4: ProcessKeyBuf(SDLK_UP); break; @@ -298,6 +298,12 @@ void ProcessKeyBuf(int scancode) if ((scancode>=SDLK_KP0) && (scancode<=SDLK_KP9)) { accept=true; vkeyval=scancode-SDLK_KP0+'0'; } + if (scancode==SDLK_KP2) { + accept=true; vkeyval=256+80; + } + if (scancode==SDLK_KP8) { + accept=true; vkeyval=256+72; + } if (!shiftptr){ switch (scancode) { case SDLK_MINUS: vkeyval='-'; accept=true; break; @@ -329,13 +335,14 @@ void ProcessKeyBuf(int scancode) } } // TODO Figure out what the rest these are supposed to be - DDOI + // printf("Scancode : %i Left : %i Right : %i\n", scancode, SDLK_LEFT, SDLK_RIGHT); switch (scancode) { case SDLK_PAGEUP: vkeyval=256+73; accept=true; break; case SDLK_UP: vkeyval=256+72; accept=true; break; case SDLK_HOME: vkeyval=256+71; accept=true; break; - case SDLK_RIGHT: vkeyval=256+77; accept=true; break; + case SDLK_RIGHT: vkeyval=SDLK_KP6-SDLK_KP0+'0';; accept=true; break; //case 12: vkeyval=256+76; accept=true; break; - case SDLK_LEFT: vkeyval=256+75; accept=true; break; + case SDLK_LEFT: vkeyval=SDLK_KP4-SDLK_KP0+'0'; accept=true; break; case SDLK_PAGEDOWN: vkeyval=256+81; accept=true; break; case SDLK_DOWN: vkeyval=256+80; accept=true; break; case SDLK_END: vkeyval=256+79; accept=true; break; @@ -345,6 +352,7 @@ void ProcessKeyBuf(int scancode) case SDLK_KP_DIVIDE: vkeyval='/'; accept=true; break; case SDLK_KP_PERIOD: vkeyval='.'; accept=true; break; } + // printf("vkeyval : %i\n", vkeyval); if (accept){ KeyBuffer[CurKeyPos]=vkeyval; CurKeyPos++;