From ff7d60ad044e98e1e2e14170b5804d141856a949 Mon Sep 17 00:00:00 2001 From: Dominik Kaiser Date: Mon, 10 Jun 2024 16:39:55 +0200 Subject: Cleanup --- src/input.c | 56 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 22 deletions(-) (limited to 'src/input.c') diff --git a/src/input.c b/src/input.c index a6cb8d4..0bf54ec 100644 --- a/src/input.c +++ b/src/input.c @@ -6,37 +6,49 @@ /* By: dkaiser input_direction |= UP; - else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) - game->input_direction |= LEFT; - else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) - game->input_direction |= DOWN; - else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) - game->input_direction |= RIGHT; - } + if (event.key == MLX_KEY_ESCAPE && event.action == MLX_PRESS) + mlx_close_window(game->mlx); + else if (event.action == MLX_PRESS) + on_key_press(game, event); else if (event.action == MLX_RELEASE) - { - if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) - game->input_direction &= ~UP; - else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) - game->input_direction &= ~LEFT; - else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) - game->input_direction &= ~DOWN; - else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) - game->input_direction &= ~RIGHT; - } + on_key_release(game, event); +} + +static void on_key_press(t_game *game, mlx_key_data_t event) +{ + if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) + game->input_direction |= UP; + else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) + game->input_direction |= LEFT; + else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) + game->input_direction |= DOWN; + else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) + game->input_direction |= RIGHT; +} + +static void on_key_release(t_game *game, mlx_key_data_t event) +{ + if (event.key == MLX_KEY_W || event.key == MLX_KEY_UP) + game->input_direction &= ~UP; + else if (event.key == MLX_KEY_A || event.key == MLX_KEY_LEFT) + game->input_direction &= ~LEFT; + else if (event.key == MLX_KEY_S || event.key == MLX_KEY_DOWN) + game->input_direction &= ~DOWN; + else if (event.key == MLX_KEY_D || event.key == MLX_KEY_RIGHT) + game->input_direction &= ~RIGHT; } -- cgit v1.2.3