Files
42_INT_10_cube3d/srcs/hook/keyhook.c
2022-03-24 21:53:03 +01:00

79 lines
1.4 KiB
C

#include "cube3d.h"
// temp, to map all the keys on linux and mac
static int print_keycode(int keycode)
{
ft_putnbr_fd(keycode, 1);
ft_putchar_fd('\n', 1);
return(0);
}
// temp end
int keypress(int keycode, t_game *game)
{
unsigned i;
// temp
print_keycode(keycode);
i = 0;
while (i < MAX_NB_KEY && game->k_hook[i] != 0 && game->k_hook[i] != keycode)
i++;
if (game->k_hook[i] == keycode && i < MAX_NB_KEY)
game->k_hook[i] = 0;
else if (i < MAX_NB_KEY)
game->k_hook[i] = keycode;
keypress_do_action(game);
return (0);
}
int keyrelease(int keycode, t_game *game)
{
unsigned i;
i = 0;
while (i < MAX_NB_KEY && game->k_hook[i] != keycode)
i++;
if (i < MAX_NB_KEY)
game->k_hook[i] = 0;
return (0);
}
/*
* first version, cannot combine key hook
*/
/*
* static void keypress_action(int keycode, t_game *game)
* {
* // escape
* if (keycode == 65307)
* shut_down(game);
* // left
* if (keycode == 65361)
* (game->plr_x) -= 5;
* // right
* if (keycode == 65363)
* (game->plr_x) += 5;
* // up
* if (keycode == 65362)
* (game->plr_y) -= 5;
* // down
* if (keycode == 65364)
* (game->plr_y) += 5;
* mlx_pixel_put(game->mlx_ptr, game->win_ptr, game->plr_x, game->plr_y, 0x74db74);
* }
*
* int keypress(int keycode, t_game *game)
* {
* // temp
* print_keycode(keycode);
*
* keypress_action(keycode, game);
* return (0);
* }
*
*/