so_long/games_bonus/player.c
Etienne Rey-bethbeder 972031a1f4 Finish
2023-01-09 20:17:34 +01:00

51 lines
1.7 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* player.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/12/29 18:06:32 by erey-bet #+# #+# */
/* Updated: 2023/01/09 13:42:08 by erey-bet ### ########.fr */
/* */
/* ************************************************************************** */
#include "../so_long_bonus.h"
int get_new_element(t_data *data, int x, int y)
{
return (data->map[data->y_ply + y][data->x_ply + x]);
}
void set_new_element(t_data *data, int x, int y)
{
data->map[data->y_ply + y][data->x_ply + x] = '0';
if (!has_element(data->map, 'C'))
data->map[data->y_ply + y][data->x_ply + x] = '3';
}
void *set_position_player(t_data *data, t_xy *xy)
{
data->x_ply = xy->x;
data->y_ply = xy->y;
free(xy);
return (data);
}
void move(t_data *data, int x, int y)
{
if (get_new_element(data, x, y) == '1')
return ;
if (get_new_element(data, x, y) == 'C')
set_new_element(data, x, y);
if (get_new_element(data, x, y) == 'E')
if (end(data))
return ;
if (get_new_element(data, x, y) == 'e')
finish(data);
data->x_ply += x;
data->y_ply += y;
ft_putnbr_fd(++data->move, 1);
ft_putchar_fd('\r', 1);
}