/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* sily_input.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: kdx static void press_key(t_sily *sily, int k) { if (sily->input_queue[k] == 0) { sily->input_queue[k] = 1; sily->move_events += 1; ft_printf("moves: %u\n", (unsigned)sily->move_events); } } void sily_input_update(t_sily *sily) { int i; i = 0; while (i < 4) { sily->input[i] = sily->input_queue[i]; i++; } } int sily_input_press_ev(int key, t_sily *sily) { if (key == XK_Escape) sily->quit = 1; else if (key == 119 || key == 107 || key == XK_Up) press_key(sily, K_UP); else if (key == 97 || key == 104 || key == XK_Left) press_key(sily, K_LEFT); else if (key == 115 || key == 106 || key == XK_Down) press_key(sily, K_DOWN); else if (key == 100 || key == 108 || key == XK_Right) press_key(sily, K_RIGHT); return (0); } int sily_input_release_ev(int key, t_sily *sily) { if (key == 119 || key == 107 || key == XK_Up) sily->input_queue[K_UP] = 0; else if (key == 97 || key == 104 || key == XK_Left) sily->input_queue[K_LEFT] = 0; else if (key == 115 || key == 106 || key == XK_Down) sily->input_queue[K_DOWN] = 0; else if (key == 100 || key == 108 || key == XK_Right) sily->input_queue[K_RIGHT] = 0; return (0); } void sily_input_draw(t_sily *sily) { char *str; str = ft_itoa(sily->prev_move_events); if (str == NULL) return ; sily_erase_text(sily, str, 2, 10); free(str); str = ft_itoa(sily->move_events); if (str == NULL) return ; sily_draw_text(sily, str, 2, 10); free(str); sily->prev_move_events = sily->move_events; }