Add restart and handle quitting with callback

This commit is contained in:
2025-10-18 17:43:22 +01:00
parent 10be5ec391
commit d6ec24ae5d
4 changed files with 41 additions and 6 deletions

25
input.c
View File

@@ -15,15 +15,14 @@ enum {
input_state_t input;
static int input_fd;
static input_callback_t restart;
static input_callback_t quit;
static input_callback_t shoot;
static void key_press(int key)
{
switch (key) {
case KEY_Q:
input.quit = true;
break;
case KEY_UP:
++input.thrust;
break;
@@ -35,6 +34,14 @@ static void key_press(int key)
--input.spin;
break;
case KEY_Q:
if (quit != nullptr)
quit();
break;
case KEY_R:
if (restart != nullptr)
restart();
break;
case KEY_SPACE:
if (shoot != nullptr)
shoot();
@@ -88,6 +95,16 @@ void input_on_shoot(input_callback_t cb)
shoot = cb;
}
void input_on_restart(input_callback_t cb)
{
restart = cb;
}
void input_on_quit(input_callback_t cb)
{
quit = cb;
}
void input_handle()
{
struct input_event ev;