2023-03-17 16:38:10 +01:00
|
|
|
#include "input.h"
|
|
|
|
#include "lzy.h"
|
|
|
|
|
|
|
|
static const unsigned int keys[6] = {LZYK_LEFT, LZYK_RIGHT, LZYK_UP,
|
|
|
|
LZYK_DOWN, LZYK_O, LZYK_X};
|
2023-03-26 07:45:46 +02:00
|
|
|
static int states[6] = {};
|
2023-03-17 16:38:10 +01:00
|
|
|
|
|
|
|
void input_update(void)
|
|
|
|
{
|
|
|
|
int i = 6;
|
|
|
|
while (i-- > 0)
|
|
|
|
if (LZY_KeyDown(keys[i]))
|
|
|
|
states[i] =
|
|
|
|
(states[i] == KS_UP) ? (KS_PRESSED) : (KS_DOWN);
|
|
|
|
else
|
|
|
|
states[i] = KS_UP;
|
|
|
|
}
|
|
|
|
|
|
|
|
int input_up(unsigned int k)
|
|
|
|
{
|
|
|
|
if (k >= 6)
|
|
|
|
return 0;
|
|
|
|
return states[k] == KS_UP;
|
|
|
|
}
|
|
|
|
|
|
|
|
int input_down(unsigned int k)
|
|
|
|
{
|
|
|
|
if (k >= 6)
|
|
|
|
return 0;
|
|
|
|
return states[k] == KS_DOWN || states[k] == KS_PRESSED;
|
|
|
|
}
|
|
|
|
|
|
|
|
int input_pressed(unsigned int k)
|
|
|
|
{
|
|
|
|
if (k >= 6)
|
|
|
|
return 0;
|
|
|
|
return states[k] == KS_PRESSED;
|
|
|
|
}
|