/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_key_loop.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: joelecle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/17 20:06:26 by joelecle #+# #+# */ /* Updated: 2020/02/17 20:06:29 by joelecle ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include #include #include #include static void ft_get_damaged(uint16_t dmg, t_cub *cl) { cl->plist.life -= dmg; if (cl->plist.life <= 0) { cl->isdead = 1; cl->sfx[0].sfx_play(cl->sfx); ft_death_screen(cl); } else { cl->sfx[3].sfx_play(cl->sfx); } } void ft_linux_suffer_animation(uint16_t dmg, t_cub *cl) { int32_t x; int32_t y; y = -1; cl->img.img = mlx_new_image(cl->wlist.wlx, cl->wlist.x_size, cl->wlist.y_size); cl->img.ptr = mlx_get_data_addr(cl->img.img, &cl->img.bpp, &cl->img.sizeline, &cl->img.endian); while (++y < (int32_t)cl->wlist.y_size) { x = -1; while (++x < (int32_t)cl->wlist.x_size) *(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = 0x00880404; } mlx_put_image_to_window(cl->wlist.wlx, cl->wlist.winptr, cl->img.img, 0, 0); mlx_destroy_image(cl->wlist.wlx, cl->img.img); ft_get_damaged(dmg, cl); } void ft_macos_suffer_animation(uint16_t dmg, t_cub *cl) { int32_t x; int32_t y; t_rgb rgb; y = -1; while (++y < (int32_t)cl->wlist.y_size) { x = -1; while (++x < (int32_t)cl->wlist.x_size) { rgb = ft_hex_to_og_rgb(*(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline)))); rgb.r += 150; rgb.g += 20; rgb.b += 20; *(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = ft_rgb_to_hex(0, rgb, cl); } } ft_get_damaged(dmg, cl); cl->doicast = 0; }