From cc8c83d66e4cfa8f3660c7fbfefc15d3b5d7aa01 Mon Sep 17 00:00:00 2001
From: JozanLeClerc <bousset.rudy@gmail.com>
Date: Mon, 23 Mar 2020 20:00:20 +0100
Subject: This is great

---
 inc/cub3d_structs.h    |  2 +-
 src/ft_draw_textures.c |  6 +++---
 src/ft_raycasting.c    | 18 +++++++++---------
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/inc/cub3d_structs.h b/inc/cub3d_structs.h
index fb690ee..1596831 100644
--- a/inc/cub3d_structs.h
+++ b/inc/cub3d_structs.h
@@ -168,8 +168,8 @@ typedef struct			s_ray
 	float				y_floor;
 	int32_t				x_cell;
 	int32_t				y_cell;
+	int32_t				*tex_x_tab;
 	int16_t				*wall_t_tab;
-	int16_t				*wall_b_tab;
 	uint8_t				*w_side_tab;
 	uint16_t			*line_h_tab;
 	float				*wall_dist_tab;
diff --git a/src/ft_draw_textures.c b/src/ft_draw_textures.c
index c7684f9..56be3ee 100644
--- a/src/ft_draw_textures.c
+++ b/src/ft_draw_textures.c
@@ -30,11 +30,11 @@ void
 
 	if ((dist = cl->rlist.wall_dist_tab[x]) <= 0)
 		dist = 0.0001;
-	rgb.r = (uint8_t)cl->tlist[cl->rlist.w_side_tab[x]].ptr[cl->tlist[cl->rlist.w_side_tab[x]].tex_x
+	rgb.r = (uint8_t)cl->tlist[cl->rlist.w_side_tab[x]].ptr[cl->rlist.tex_x_tab[x]
 		* 4 + 4 * cl->tlist[cl->rlist.w_side_tab[x]].img_h * tex_y + 2];
-	rgb.g = (uint8_t)cl->tlist[cl->rlist.w_side_tab[x]].ptr[cl->tlist[cl->rlist.w_side_tab[x]].tex_x
+	rgb.g = (uint8_t)cl->tlist[cl->rlist.w_side_tab[x]].ptr[cl->rlist.tex_x_tab[x]
 		* 4 + 4 * cl->tlist[cl->rlist.w_side_tab[x]].img_h * tex_y + 1];
-	rgb.b = (uint8_t)cl->tlist[cl->rlist.w_side_tab[x]].ptr[cl->tlist[cl->rlist.w_side_tab[x]].tex_x
+	rgb.b = (uint8_t)cl->tlist[cl->rlist.w_side_tab[x]].ptr[cl->rlist.tex_x_tab[x]
 		* 4 + 4 * cl->tlist[cl->rlist.w_side_tab[x]].img_h * tex_y];
 	*(int*)(cl->img.ptr + ((uint16_t)x * 4 +
 		(y * cl->img.sizeline))) = ft_rgb_to_hex(dist, rgb, cl);
diff --git a/src/ft_raycasting.c b/src/ft_raycasting.c
index 3429f20..99fabeb 100644
--- a/src/ft_raycasting.c
+++ b/src/ft_raycasting.c
@@ -71,17 +71,17 @@ static void
 {
 	ft_initray(i, cl);
 	cl->rlist.line_h = (int16_t)(wl->y_size / cl->rlist.wall_dist);
-	cl->rlist.line_h_tab[i] = cl->rlist.line_h;
 	cl->rlist.wall_t = -cl->rlist.line_h / 2 + wl->y_size / 2;
 	if (cl->rlist.wall_t < 0)
 		cl->rlist.wall_t = 0;
-	cl->rlist.wall_t_tab[i] = cl->rlist.wall_t;
 	cl->rlist.wall_b = cl->rlist.line_h / 2 + wl->y_size / 2;
 	if (cl->rlist.wall_b >= (int16_t)wl->y_size)
 		cl->rlist.wall_b = wl->y_size - 1;
-	cl->rlist.wall_b_tab[i] = cl->rlist.wall_b;
 	ft_choose_tex(i, cl);
 	ft_calc_tex(cl);
+	cl->rlist.tex_x_tab[i] = cl->tlist[cl->w_side].tex_x;
+	cl->rlist.line_h_tab[i] = cl->rlist.line_h;
+	cl->rlist.wall_t_tab[i] = cl->rlist.wall_t;
 	cl->rlist.wall_bz[i] = cl->rlist.wall_b;
 	cl->rlist.wall_dist_tab[i] = cl->rlist.wall_dist;
 }
@@ -97,10 +97,10 @@ void
 	if (!(cl->rlist.wall_bz =
 			(int16_t*)malloc(cl->wlist.x_size * sizeof(int16_t))))
 		return ;
-	cl->rlist.w_side_tab = (uint8_t*)ft_calloc(cl->wlist.x_size, sizeof(uint8_t));
-	cl->rlist.line_h_tab = (uint16_t*)ft_calloc(cl->wlist.x_size, sizeof(uint16_t));
-	cl->rlist.wall_t_tab = (int16_t*)ft_calloc(cl->wlist.x_size, sizeof(int16_t));
-	cl->rlist.wall_b_tab = (int16_t*)ft_calloc(cl->wlist.x_size, sizeof(int16_t));
+	cl->rlist.w_side_tab = (uint8_t*)malloc(cl->wlist.x_size * sizeof(uint8_t));
+	cl->rlist.line_h_tab = (uint16_t*)malloc(cl->wlist.x_size * sizeof(uint16_t));
+	cl->rlist.wall_t_tab = (int16_t*)malloc(cl->wlist.x_size * sizeof(int16_t));
+	cl->rlist.tex_x_tab = (int32_t*)malloc(cl->wlist.x_size * sizeof(int32_t));
 	i = 0;
 	while (i < cl->wlist.x_size)
 	{
@@ -110,7 +110,7 @@ void
 	i = 0;
 	while (i < cl->wlist.x_size)
 	{
-		ft_draw_verline(cl, i, cl->rlist.wall_t_tab[i], cl->rlist.wall_b_tab[i]);
+		ft_draw_verline(cl, i, cl->rlist.wall_t_tab[i], cl->rlist.wall_bz[i]);
 		i++;
 	}
 	ft_floor_cast(cl);
@@ -120,8 +120,8 @@ void
 	ft_calc_weaps(cl);
 	if (cl->plist.handles_weapon > -1)
 		ft_draw_handweap(cl);
+	ft_memdel((void*)&cl->rlist.tex_x_tab);
 	ft_memdel((void*)&cl->rlist.wall_t_tab);
-	ft_memdel((void*)&cl->rlist.wall_b_tab);
 	ft_memdel((void*)&cl->rlist.w_side_tab);
 	ft_memdel((void*)&cl->rlist.line_h_tab);
 	ft_memdel((void*)&cl->rlist.wall_dist_tab);
-- 
cgit v1.2.3