Add restart and handle quitting with callback
This commit is contained in:
25
input.c
25
input.c
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user