aboutsummaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/cub3d_defines.h4
-rw-r--r--inc/cub3d_structs.h300
2 files changed, 166 insertions, 138 deletions
diff --git a/inc/cub3d_defines.h b/inc/cub3d_defines.h
index ed57f3e..c0d3355 100644
--- a/inc/cub3d_defines.h
+++ b/inc/cub3d_defines.h
@@ -20,6 +20,7 @@ enum
{
FT_RET_FINE,
FT_RET_BAD_ARGV,
+ FT_RET_ALLOC_ERR,
FT_RET_FAILED_STRUCTS,
FT_RET_FAILED_MLX,
FT_RET_MAP_ERR,
@@ -112,7 +113,7 @@ enum
** ====== MAP ERROR MSG ======
*/
-# define FT_ERR_ALLOCATE "allocation error"
+# define FT_ERR_ALLOCATE "Allocation error"
# define FT_ERR_READ "read error"
# define FT_ERR_ARGS "too many or to few arguments"
# define FT_ERR_RES_SMALL "resolution is too small, 50x50 minimum pls"
@@ -130,6 +131,7 @@ enum
# define FT_ERR_ILL_MAP "map contains illegal char"
# define FT_ERR_MULT_SPAWN "multiple spawn points"
# define FT_ERR_MULT_NLVL "multiple spawn new level access points"
+# define FT_ERR_NO_MAP "No map"
# define FT_ERR_MAP_WALLS "bad space or map is not surrounded by walls"
# define FT_ERR_MAP_EMPL "empty line in map"
# define FT_ERR_MAP_L_L "last line is invalid"
diff --git a/inc/cub3d_structs.h b/inc/cub3d_structs.h
index df26c26..19e211e 100644
--- a/inc/cub3d_structs.h
+++ b/inc/cub3d_structs.h
@@ -17,152 +17,178 @@
#include <stdint.h>
#include <pthread.h>
-typedef struct s_win
+typedef struct s_win
{
- void *wlx;
- void *winptr;
- uint8_t inited;
- uint16_t x_max_size;
- uint16_t y_max_size;
- uint32_t x_size;
- uint32_t y_size;
-} t_win;
-
-typedef struct s_bmp
+ void *wlx;
+ void *winptr;
+ uint8_t inited;
+ uint16_t x_max_size;
+ uint16_t y_max_size;
+ uint32_t x_size;
+ uint32_t y_size;
+} t_win;
+
+# pragma pack(push, 1)
+
+typedef struct s_bmp_info
{
- uint16_t file_type;
- uint32_t file_size;
- uint16_t reserv_one;
- uint16_t reserv_two;
- uint32_t offset_data;
-} t_bmp;
-
-typedef struct s_img
+ uint32_t size;
+ int32_t width;
+ int32_t height;
+ uint16_t planes;
+ uint16_t bit_count;
+ uint32_t compression;
+ uint32_t size_image;
+ int32_t x_pixels_per_meter;
+ int32_t y_pixels_per_meter;
+ uint32_t colors_used;
+ uint32_t colors_important;
+} t_bmp_info;
+
+typedef struct s_bmp_colors
{
- void *img;
- char *ptr;
- int bpp;
- int sizeline;
- int endian;
- int img_w;
- int img_h;
- int tex_x;
- int tex_y;
-} t_img;
-
-typedef struct s_rgb
+
+} t_bmp_color;
+
+typedef struct s_bmp_file
{
- int16_t r;
- int16_t g;
- int16_t b;
-} t_rgb;
+ uint16_t file_type;
+ uint32_t file_size;
+ uint16_t reserv_one;
+ uint16_t reserv_two;
+ uint32_t offset_data;
+ struct s_bmp_info
+} t_bmp_file_head;
-typedef struct s_sprite
+# pragma pack(pop)
+
+typedef struct s_img
{
- int32_t s_screen_x;
- int32_t s_pos_x;
- int32_t s_pos_y;
- double s_x;
- double s_y;
- int32_t s_h;
- int32_t s_w;
- int32_t s_start_x;
- int32_t s_start_y;
- int32_t s_end_x;
- int32_t s_end_y;
- int32_t s_tex_y;
- double sprite_transform_x;
- double sprite_transform_y;
- double sprite_dist;
- double inv_c_m;
-} t_sprite;
-
-typedef struct s_player
+ void *img;
+ char *ptr;
+ int bpp;
+ int sizeline;
+ int endian;
+ int img_w;
+ int img_h;
+ int tex_x;
+ int tex_y;
+} t_img;
+
+typedef struct s_rgb
{
- float pos_x;
- float pos_y;
- float start_x;
- float start_y;
- float dir_x;
- float dir_y;
- float cam_x;
- float plane_x;
- float plane_y;
-} t_player;
-
-typedef struct s_ray
+ int16_t r;
+ int16_t g;
+ int16_t b;
+} t_rgb;
+
+typedef struct s_sprite
{
- uint16_t line_h;
- float wall_dist;
- float mid_dist;
- float x_ray_pos;
- float y_ray_pos;
- float x_ray_dir;
- float y_ray_dir;
- float x_side_dist;
- float y_side_dist;
- float x_delta_dist;
- float y_delta_dist;
- int16_t wall_t;
- int16_t wall_b;
- uint8_t side;
- size_t sqx;
- size_t sqy;
- uint8_t hit;
- double wall_hit_x;
- double step_tex_v;
-} t_ray;
-
-typedef struct s_map
+ int32_t s_screen_x;
+ int32_t s_pos_x;
+ int32_t s_pos_y;
+ double s_x;
+ double s_y;
+ int32_t s_h;
+ int32_t s_w;
+ int32_t s_start_x;
+ int32_t s_start_y;
+ int32_t s_end_x;
+ int32_t s_end_y;
+ int32_t s_tex_y;
+ double sprite_transform_x;
+ double sprite_transform_y;
+ double sprite_dist;
+ double inv_c_m;
+} t_sprite;
+
+typedef struct s_player
+{
+ float pos_x;
+ float pos_y;
+ float start_x;
+ float start_y;
+ float dir_x;
+ float dir_y;
+ float cam_x;
+ float plane_x;
+ float plane_y;
+} t_player;
+
+typedef struct s_ray
{
- char *no_tex_path;
- char *so_tex_path;
- char *ea_tex_path;
- char *we_tex_path;
- char *sprite_path;
- char *nl_tex_path;
- char *nlevel_path;
- char *music_path;
- char *music_cmd;
- char *mapl;
- char **map;
- int8_t x_step;
- int8_t y_step;
- size_t map_w;
- size_t map_h;
- size_t mapl_len;
- size_t line_chk;
- size_t map_start;
- uint8_t isspawn;
- uint8_t isnlvl;
- uint8_t ismusic;
- uint8_t scale;
- uint32_t nlx;
- uint32_t nly;
-} t_map;
-
-typedef struct s_cub
+ uint16_t line_h;
+ float wall_dist;
+ float mid_dist;
+ float x_ray_pos;
+ float y_ray_pos;
+ float x_ray_dir;
+ float y_ray_dir;
+ float x_side_dist;
+ float y_side_dist;
+ float x_delta_dist;
+ float y_delta_dist;
+ int16_t wall_t;
+ int16_t wall_b;
+ uint8_t side;
+ size_t sqx;
+ size_t sqy;
+ uint8_t hit;
+ double wall_hit_x;
+ double step_tex_v;
+} t_ray;
+
+typedef struct s_map
+{
+ char *filename;
+ char *no_tex_path;
+ char *so_tex_path;
+ char *ea_tex_path;
+ char *we_tex_path;
+ char *sprite_path;
+ char *nl_tex_path;
+ char *nlevel_path;
+ char *music_path;
+ char *music_cmd;
+ char *mapl;
+ char **map;
+ int8_t x_step;
+ int8_t y_step;
+ size_t map_w;
+ size_t map_h;
+ size_t mapl_len;
+ size_t line_chk;
+ size_t map_start;
+ uint8_t isspawn;
+ uint8_t isnlvl;
+ uint8_t ismusic;
+ uint8_t scale;
+ uint32_t nlx;
+ uint32_t nly;
+} t_map;
+
+typedef struct s_cub
{
- uint8_t w_side;
- uint8_t ishud;
- uint8_t walltexgood;
- uint8_t isoldmus;
- uint16_t currlvl;
- uint16_t i;
- char errmsg[64];
- int32_t key_input[5];
- pthread_t tid;
- int (*key_ptr[6])(struct s_cub*);
- int8_t (*get_ptr[11])(char**, struct s_cub*);
- struct s_win wlist;
- struct s_player plist;
- struct s_map mlist;
- struct s_ray rlist;
- struct s_img img;
- struct s_rgb f_rgb;
- struct s_rgb c_rgb;
- struct s_img tlist[6];
- struct s_sprite sp_list;
-} t_cub;
+ uint8_t w_side;
+ uint8_t ishud;
+ uint8_t walltexgood;
+ uint8_t isoldmus;
+ uint16_t currlvl;
+ uint16_t i;
+ char errmsg[64];
+ int32_t key_input[5];
+ pthread_t tid;
+ int (*key_ptr[6])(struct s_cub*);
+ int8_t (*get_ptr[11])(char**, struct s_cub*);
+ struct s_win wlist;
+ struct s_player plist;
+ struct s_map mlist;
+ struct s_ray rlist;
+ struct s_img img;
+ struct s_rgb f_rgb;
+ struct s_rgb c_rgb;
+ struct s_img tlist[6];
+ struct s_sprite sp_list;
+} t_cub;
# endif