jtmm2/src/input.c

50 lines
857 B
C

#include "input.h"
#include <gint/keyboard.h>
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_TAN, KEY_F3, KEY_F2, KEY_F1, KEY_F6};
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;
}