2025-07-15 10:33:25 +02:00
|
|
|
/* ************************************************************************** */
|
|
|
|
|
/* */
|
|
|
|
|
/* ::: :::::::: */
|
2025-07-17 14:19:34 +02:00
|
|
|
/* draw_map.c :+: :+: :+: */
|
2025-07-15 10:33:25 +02:00
|
|
|
/* +:+ +:+ +:+ */
|
2025-07-17 14:19:34 +02:00
|
|
|
/* By: kcolin <kcolin@42.fr> +#+ +:+ +#+ */
|
2025-07-15 10:33:25 +02:00
|
|
|
/* +#+#+#+#+#+ +#+ */
|
2025-07-17 14:19:34 +02:00
|
|
|
/* Created: 2025/07/17 14:20:00 by kcolin #+# #+# */
|
2025-07-17 14:57:29 +02:00
|
|
|
/* Updated: 2025/07/17 15:55:44 by kcolin ### ########.fr */
|
2025-07-15 10:33:25 +02:00
|
|
|
/* */
|
|
|
|
|
/* ************************************************************************** */
|
|
|
|
|
|
2025-07-17 14:57:29 +02:00
|
|
|
#include "../map/mapdata.h"
|
|
|
|
|
#include "../player/player.h"
|
2025-07-17 14:19:34 +02:00
|
|
|
#include "drawutils.h"
|
2025-07-15 10:33:25 +02:00
|
|
|
|
2025-07-17 14:57:29 +02:00
|
|
|
void draw_2d_wall(unsigned int color, t_img_data *data,
|
2025-07-15 10:33:25 +02:00
|
|
|
int x, int y)
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
int j;
|
|
|
|
|
static int size = 10;
|
|
|
|
|
|
|
|
|
|
i = 0;
|
|
|
|
|
while (i < size)
|
|
|
|
|
{
|
|
|
|
|
j = 0;
|
|
|
|
|
while (j < size)
|
|
|
|
|
{
|
|
|
|
|
my_mlx_pixel_put(data, x + i, y + j, color);
|
|
|
|
|
j++;
|
|
|
|
|
}
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-17 14:57:29 +02:00
|
|
|
void draw_map(t_mapdata *map, t_player *player, t_img_data *data)
|
2025-07-15 10:33:25 +02:00
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
|
int j;
|
|
|
|
|
|
|
|
|
|
i = 0;
|
|
|
|
|
while (map->map[i])
|
|
|
|
|
{
|
|
|
|
|
j = 0;
|
|
|
|
|
while (map->map[i][j])
|
|
|
|
|
{
|
|
|
|
|
if (map->map[i][j] == '1')
|
|
|
|
|
draw_2d_wall(map->f_color, data, 10 * j, 10 * i);
|
|
|
|
|
else if (map->map[i][j] == 'Z' || map->map[i][j] == 'z')
|
|
|
|
|
draw_2d_wall(0x0008D9D6, data, 10 * j, 10 * i);
|
|
|
|
|
else if (map->map[i][j] == 'D' || map->map[i][j] == 'd')
|
|
|
|
|
draw_2d_wall(0x00FF2E63, data, 10 * j, 10 * i);
|
|
|
|
|
else if (map->map[i][j] == 's')
|
|
|
|
|
draw_2d_wall(0x00E84545, data, 10 * j, 10 * i);
|
|
|
|
|
else if (map->map[i][j] == 'M')
|
|
|
|
|
draw_2d_wall(0x00F4CE14, data, 10 * j, 10 * i);
|
|
|
|
|
j++;
|
|
|
|
|
}
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
draw_2d_wall(0x00FF0000, data, 10 * player->x, 10 * player->y);
|
|
|
|
|
}
|