summaryrefslogtreecommitdiff
path: root/src/input.c
diff options
context:
space:
mode:
authorDominik Kaiser2024-06-10 16:40:28 +0200
committerGitHub2024-06-10 16:40:28 +0200
commit568827dc74eb4e2a7719d7cfbd48083facf85cc3 (patch)
treedd896d064a49bb399b7c942fde49ae0bf892263b /src/input.c
parent7b230503231e154c5400413b4f9b87dd6fcd8304 (diff)
parentff7d60ad044e98e1e2e14170b5804d141856a949 (diff)
downloadso_long-568827dc74eb4e2a7719d7cfbd48083facf85cc3.tar.gz
so_long-568827dc74eb4e2a7719d7cfbd48083facf85cc3.zip
Merge map-checker into masterHEADmaster
Map checker
Diffstat (limited to 'src/input.c')
-rw-r--r--src/input.c56
1 files changed, 34 insertions, 22 deletions
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 <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/05/09 15:37:40 by dkaiser #+# #+# */
-/* Updated: 2024/05/10 12:13:22 by dkaiser ### ########.fr */
+/* Updated: 2024/06/10 15:58:43 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "MLX42/MLX42.h"
#include "so_long.h"
+static void on_key_press(t_game *game, mlx_key_data_t event);
+static void on_key_release(t_game *game, mlx_key_data_t event);
+
void on_key_input(mlx_key_data_t event, void *params)
{
t_game *game;
game = (t_game *)params;
- if (event.action == MLX_PRESS)
- {
- 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;
- }
+ 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;
}