diff --git a/include/input.h b/include/input.h index d69e89f..b63164b 100644 --- a/include/input.h +++ b/include/input.h @@ -29,6 +29,9 @@ typedef struct Input /* will check for new key inputs and update states[] */ void input_step(Input *input); +/* initialize values */ +void input_init(Input *input); + /* display all keys states and information */ void input_draw_debug(Input *input); diff --git a/src/input.c b/src/input.c index f9b02dd..283be83 100644 --- a/src/input.c +++ b/src/input.c @@ -26,6 +26,19 @@ void input_step(Input *input) } } +void input_init(Input *input) +{ + input->keys[K_LEFT] = KEY_LEFT; + input->keys[K_RIGHT] = KEY_RIGHT; + input->keys[K_UP] = KEY_UP; + input->keys[K_DOWN] = KEY_DOWN; + input->keys[K_EXIT] = KEY_EXIT; + for (int i = 0; i < KEYS_COUNT; ++i) + { + input->states[i] = S_UP; + } +} + void input_draw_debug(Input *input) { for (int i = 0; i < KEYS_COUNT; ++i) diff --git a/src/main.c b/src/main.c index 35716ac..329eca7 100644 --- a/src/main.c +++ b/src/main.c @@ -49,11 +49,7 @@ int play_level(uint level_id) /* create input manager */ Input input; - input.keys[K_LEFT] = KEY_LEFT; - input.keys[K_RIGHT] = KEY_RIGHT; - input.keys[K_UP] = KEY_UP; - input.keys[K_DOWN] = KEY_DOWN; - input.keys[K_EXIT] = KEY_EXIT; + input_init(&input); /* UPS control */ volatile int has_ticked = 1;