68 lines
1.5 KiB
C
68 lines
1.5 KiB
C
#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));
|
|
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);
|
|
}
|