/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   structs.h                                          :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: tchampio <tchampio@student.42lehavre.fr>   +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2025/06/21 19:46:20 by tchampio          #+#    #+#             */
/*   Updated: 2025/06/25 17:52:35 by tchampio         ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#ifndef STRUCTS_H
# define STRUCTS_H

# include <stdbool.h>

typedef struct s_mlx_data
{
	void	*img;
	char	*addr;
	int		bits_per_pixel;
	int		line_length;
	int		endian;
}	t_mlx_data;

typedef enum e_direction
{
	NORTH,
	SOUTH,
	EAST,
	WEST
}	t_direction;

typedef struct s_mapdata
{
	char		*filename;
	char		*no_texture;
	char		*so_texture;
	char		*we_texture;
	char		*ea_texture;
	int			f_color;
	int			c_color;
	int			mapheight;
	char		**map;
	char		**mapflood;
	int			skipped_lines;
	bool		isvalid;
	int			startx;
	int			starty;
	t_direction	startdirection;
	char		error[1024];
}	t_mapdata;

typedef struct s_cub3d_data
{
	void		*mlx;
	void		*mlx_win;
	t_mlx_data	*mlx_data;
	t_mapdata	*map;
}	t_cub3d_data;

#endif
