#include "cube3d.h" // temp, to map all the keys on linux and mac static int print_keycode(int keycode, t_plr *plr) { ft_putnbr_fd(keycode, 1); ft_putchar_fd(' ', 1); ft_putnbr_fd(plr->rot, 1); ft_putchar_fd('\n', 1); return(0); } // temp end int hook_action(t_game *game) { int is_action; is_action = 0; if (is_esc(game->k_hook, &is_action)) shut_down(); if (is_go_left(game->k_hook, &is_action)) plr_posx_decrement(game, &(game->plr)); if (is_go_right(game->k_hook, &is_action)) plr_posx_increment(game, &(game->plr)); if (is_go_forward(game->k_hook, &is_action)) plr_posy_decrement(game, &(game->plr)); if (is_go_backward(game->k_hook, &is_action)) plr_posy_increment(game, &(game->plr)); if (is_turn_left(game->k_hook, &is_action)) plr_turn_left(&(game->plr)); if (is_turn_right(game->k_hook, &is_action)) plr_turn_right(&(game->plr)); // tmp draw map // // ray // if (!ft_arrint(game->k_hook, 65364, MAX_NB_KEY)) // { // if (game->ray_highlight <= SCREEN_WIDTH) // game->ray_highlight++; // else // game->ray_highlight = -1; // is_action = 1; // } // if (!ft_arrint(game->k_hook, 65362, MAX_NB_KEY)) // { // if (game->ray_highlight >= 0) // game->ray_highlight--; // else // game->ray_highlight = SCREEN_WIDTH; // is_action = 1; // } // tmp end if (is_action) draw(game); return(0); } int keypress(int keycode, t_game *game) { unsigned i; // temp print_keycode(keycode, &game->plr); // temp end 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; // hook_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); }