From 5c39daa38c2cf41dc32fa66e0264bc3adbbd1e59 Mon Sep 17 00:00:00 2001 From: xamora Date: Thu, 15 Dec 2022 18:38:07 +0100 Subject: [PATCH] =?UTF-8?q?scrolling=20fini=20et=20propre,=20faut=20g?= =?UTF-8?q?=C3=A9r=C3=A9=20les=20leaks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- so_long.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/so_long.c b/so_long.c index b525877..067dc1f 100644 --- a/so_long.c +++ b/so_long.c @@ -130,29 +130,32 @@ void draw(t_data *data) int y; int range; - range = 4; + range = 3; x = data->x_player - range; while (x < data->x_player + range) { - while (x < 0) + while (x < -1) x++; y = data->y_player - range; while (y < data->y_player + range) { - while (y < 0) + while (y < -1) y++; if (x == data->x_player && y == data->y_player) { data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/player.xpm", &data->size, &data->size); mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, data->w_screen / 2, data->h_screen / 2); } - else if (x >= 0 && y >= 0 && y < data->h_map && data->map[y] != NULL) + else if (y < 0 || x < 0 || y >= data->h_map || data->map[y][x] == '\n' || data->map[y][x] == '\0') + { + data->mlx_img = mlx_xpm_file_to_image(data->mlx, "assets/background.xpm", &data->size, &data->size); + mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, (data->w_screen / 2) + ((x - data->x_player) * data->size), (data->h_screen / 2) + ((y - data->y_player) * data->size)); + } + else { - if (data->map[y][x] == '\n' || data->map[y][x] == '\0') - break; data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets(data->map[y][x]), &data->size, &data->size); - if (!data->mlx_img) - data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets('0'), &data->size, &data->size); + //if (!data->mlx_img) + //data->mlx_img = mlx_xpm_file_to_image(data->mlx, assets('0'), &data->size, &data->size); mlx_put_image_to_window(data->mlx, data->mlx_win, data->mlx_img, (data->w_screen / 2) + ((x - data->x_player) * data->size), (data->h_screen / 2) + ((y - data->y_player) * data->size)); } y++;