cub3d/src/utils/hooks.c
2025-09-17 16:59:32 +02:00

70 lines
2.4 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* hooks.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: kcolin <kcolin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/07/17 14:22:57 by kcolin #+# #+# */
/* Updated: 2025/09/17 16:55:52 by tchampio ### ########.fr */
/* */
/* ************************************************************************** */
#include "../consts.h"
#include "../cub3d_data.h"
#include "../player/angle.h"
#include "frees.h"
#include <X11/keysym.h>
#include <X11/X.h>
#include <math.h>
#include <stdio.h>
int keypress_handler(int keycode, t_cub3d_data *data)
{
if (keycode == XK_Escape)
destroy(data, 0);
if (keycode == XK_w)
data->keypresses.is_w_pressed = true;
if (keycode == XK_a)
data->keypresses.is_a_pressed = true;
if (keycode == XK_s)
data->keypresses.is_s_pressed = true;
if (keycode == XK_d)
data->keypresses.is_d_pressed = true;
if (keycode == XK_f)
data->keypresses.is_f_pressed = true;
if (keycode == XK_Left)
data->keypresses.is_left_pressed = true;
if (keycode == XK_Right)
data->keypresses.is_right_pressed = true;
if (keycode == XK_space)
data->keypresses.is_space_pressed = true;
if (keycode == XK_p)
data->player.points += 500;
if (keycode == XK_u)
data->round++;
if (keycode == XK_m)
data->player.weapon->remaining_ammos = 1337;
return (0);
}
int keyrelease_handler(int keycode, t_cub3d_data *data)
{
if (keycode == XK_w)
data->keypresses.is_w_pressed = false;
if (keycode == XK_a)
data->keypresses.is_a_pressed = false;
if (keycode == XK_s)
data->keypresses.is_s_pressed = false;
if (keycode == XK_d)
data->keypresses.is_d_pressed = false;
if (keycode == XK_f)
data->keypresses.is_f_pressed = false;
if (keycode == XK_Left)
data->keypresses.is_left_pressed = false;
if (keycode == XK_Right)
data->keypresses.is_right_pressed = false;
if (keycode == XK_space)
data->keypresses.is_space_pressed = false;
return (0);
}