diff options
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | inc/cub3d.h | 3 | ||||
| -rw-r--r-- | inc/cub3d_defines.h | 6 | ||||
| -rw-r--r-- | src/ft_draw_scene.c | 3 | ||||
| -rw-r--r-- | src/ft_error.c (renamed from src/ft_map_error.c) | 14 | ||||
| -rw-r--r-- | src/ft_save_to_bmp.c | 23 | 
6 files changed, 42 insertions, 9 deletions
@@ -45,7 +45,7 @@ SRCS_NAME	+= ft_check_not_found.c  SRCS_NAME	+= ft_check_map_line.c  SRCS_NAME	+= ft_check_map_surrounds.c  SRCS_NAME	+= ft_free_words.c -SRCS_NAME	+= ft_map_error.c +SRCS_NAME	+= ft_error.c  SRCS_NAME	+= ft_init_winlx.c  SRCS_NAME	+= ft_draw_square.c  SRCS_NAME	+= ft_draw_circle.c diff --git a/inc/cub3d.h b/inc/cub3d.h index e640a14..b1712c1 100644 --- a/inc/cub3d.h +++ b/inc/cub3d.h @@ -120,7 +120,8 @@ void		ft_set_minimap_scale(t_cub *clist);  void		*ft_music_thread(void *vargp);  void		ft_detect(t_cub *cl);  void		ft_castray(t_cub *cl); -void		ft_save_to_bmp(void); +int8_t		ft_save_to_bmp(void *img, t_cub *cl); +int			ft_error(const char *errmsg, t_cub *clist);  uint8_t		ft_free_words(char **words);  int8_t		ft_warp_level(t_cub *cl);  int			ft_exit(uint8_t exit_code, t_cub *clist); diff --git a/inc/cub3d_defines.h b/inc/cub3d_defines.h index 66303ab..ed57f3e 100644 --- a/inc/cub3d_defines.h +++ b/inc/cub3d_defines.h @@ -22,9 +22,10 @@ enum  	FT_RET_BAD_ARGV,  	FT_RET_FAILED_STRUCTS,  	FT_RET_FAILED_MLX, -	FT_RET_MAP_ERROR, +	FT_RET_MAP_ERR,  	FT_RET_NO_MAP, -	FT_RET_READ_ERROR +	FT_RET_READ_ERR, +	FT_RET_BMP_ERR  }	retvals;  /* @@ -140,6 +141,7 @@ enum  #	define FT_ERR_RD_NL_TEX		"could not find next level texture file"  #	define FT_ERR_RD_NL_MAP		"could not find next level map file"  #	define FT_ERR_RD_MUSIC		"could not find music file" +#	define FT_ERR_WR_BMP		"could not export to bmp"  /*  ** ====== MISSING ERROR MSG ====== diff --git a/src/ft_draw_scene.c b/src/ft_draw_scene.c index 1e16ba5..78a56b4 100644 --- a/src/ft_draw_scene.c +++ b/src/ft_draw_scene.c @@ -38,6 +38,7 @@ void  	clist->img.ptr = mlx_get_data_addr(clist->img.img, &clist->img.bpp,  				&clist->img.sizeline, &clist->img.endian);  	ft_castray(clist); -	ft_save_to_bmp(); +	if (ft_save_to_bmp(clist->img.img, clist) < 0) +		ft_error(FT_ERR_WR_BMP, clist);  	mlx_destroy_image(clist->wlist.wlx, clist->img.img);  } diff --git a/src/ft_map_error.c b/src/ft_error.c index b777415..b793b96 100644 --- a/src/ft_map_error.c +++ b/src/ft_error.c @@ -1,7 +1,7 @@  /* ************************************************************************** */  /*                                                                            */  /*                                                        :::      ::::::::   */ -/*   ft_map_error.c                                     :+:      :+:    :+:   */ +/*   ft_error.c                                         :+:      :+:    :+:   */  /*                                                    +:+ +:+         +:+     */  /*   By: rbousset <marvin@42.fr>                    +#+  +:+       +#+        */  /*                                                +#+#+#+#+#+   +#+           */ @@ -15,6 +15,16 @@  #include <unistd.h>  int +	ft_error(const char *errmsg, t_cub *clist) +{ +	ft_dprintf(STDERR_FILENO, "Error\n"); +	ft_dprintf(STDERR_FILENO, +				"\033[1;31m%s\033[0m\n", +				errmsg); +	return (ft_exit(FT_RET_BMP_ERR, clist)); +} + +int  	ft_map_error(const char *errmsg, t_cub *clist)  {  	ft_dprintf(STDERR_FILENO, "Error\n"); @@ -22,5 +32,5 @@ int  				"\033[1;31mMap error: line %lu: %s\033[0m\n",  				clist->mlist.line_chk,  				errmsg); -	return (ft_exit(4, clist)); +	return (ft_exit(FT_RET_MAP_ERR, clist));  } diff --git a/src/ft_save_to_bmp.c b/src/ft_save_to_bmp.c index a510d6b..1118384 100644 --- a/src/ft_save_to_bmp.c +++ b/src/ft_save_to_bmp.c @@ -12,8 +12,27 @@  #include <libft.h>  #include <cub3d.h> +#include <stdlib.h> +#include <stdint.h> -void -	ft_save_to_bmp(void) +static int8_t +	ft_convert_image_to_bmp(void *img, t_cub *cl)  { +	int32_t	filelen; +	uint8_t	*bmp; + +	(void)img; +	filelen = 54 + 3 * cl->wlist.x_size * cl->wlist.y_size; +	if (!(bmp = (uint8_t*)malloc((filelen - 54) * sizeof(uint8_t)))) +		return (-1); +	ft_memdel((void**)&bmp) +	return (0); +} + +int8_t +	ft_save_to_bmp(void *img, t_cub *cl) +{ +	if (ft_convert_image_to_bmp(img, cl) < 0) +		return (-1); +	return (0);  }  | 
