#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); * } * */