#include "input.h" #include static struct Input input; static const int default_map[K_COUNT] = { KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_SHIFT, KEY_ALPHA, KEY_EXIT, KEY_F3, KEY_F2, KEY_F1}; void input_init(void) { int i = K_COUNT; while (i-- > 0) { input.keys[i] = default_map[i]; input.states[i] = KS_UP; } } void input_update(void) { int i = K_COUNT; clearevents(); while (i-- > 0) { const int kdown = keydown(input.keys[i]); input.states[i] = (input.states[i] == KS_UP) ? (kdown ? KS_PRESS : KS_UP) : (kdown ? KS_DOWN : KS_UP); } } int input_down(enum Key k) { return input.states[k] != KS_UP; } int input_pressed(enum Key k) { return input.states[k] == KS_PRESS; } int input_up(enum Key k) { return input.states[k] == KS_UP; }