From 5a05c0b7b950e6a76c5ebb9b5f52fa24115013c8 Mon Sep 17 00:00:00 2001 From: Ian C Date: Tue, 10 Oct 2006 23:00:37 +0000 Subject: Now allows multiple pad keys to be mapped to the same key -- improves City Patrol no end! --- source/keyboard.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'source/keyboard.c') diff --git a/source/keyboard.c b/source/keyboard.c index 786b32d..c58aaae 100644 --- a/source/keyboard.c +++ b/source/keyboard.c @@ -51,14 +51,24 @@ static SoftKey pad_L_key = NUM_SOFT_KEYS; static SoftKey pad_start_key = NUM_SOFT_KEYS; static SoftKey pad_select_key = NUM_SOFT_KEYS; +#define CLEAR_STATE(SHORTCUT) \ + do \ + { \ + if (SHORTCUT != NUM_SOFT_KEYS && \ + !key_state[SHORTCUT].handled) \ + { \ + key_state[SHORTCUT].new_state = FALSE; \ + } \ + } while(0) + #define CHECK_STATE(KEYS,BIT,CODE,SHORTCUT) \ do \ { \ key_state[CODE].new_state = (KEYS & BIT); \ if (SHORTCUT != NUM_SOFT_KEYS && \ - !key_state[SHORTCUT].handled) \ + !key_state[SHORTCUT].handled && (KEYS & BIT)) \ { \ - key_state[SHORTCUT].new_state = (KEYS & BIT); \ + key_state[SHORTCUT].new_state = TRUE; \ } \ } while(0) -- cgit v1.2.3