aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_raycasting.c
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-03-03 16:14:26 +0100
committerJozanLeClerc <bousset.rudy@gmail.com>2020-03-03 16:14:26 +0100
commitce43b1cd1caa539af687425f58a6999a20807878 (patch)
tree34631aef16b6eb1d5d650fe9e900916f9810215d /src/ft_raycasting.c
parentMakefile update (diff)
download42-cub3d-ce43b1cd1caa539af687425f58a6999a20807878.tar.gz
42-cub3d-ce43b1cd1caa539af687425f58a6999a20807878.tar.bz2
42-cub3d-ce43b1cd1caa539af687425f58a6999a20807878.tar.xz
42-cub3d-ce43b1cd1caa539af687425f58a6999a20807878.tar.zst
42-cub3d-ce43b1cd1caa539af687425f58a6999a20807878.zip
Going full stack is bav
Diffstat (limited to 'src/ft_raycasting.c')
-rw-r--r--src/ft_raycasting.c138
1 files changed, 69 insertions, 69 deletions
diff --git a/src/ft_raycasting.c b/src/ft_raycasting.c
index c27e596..50bdbf9 100644
--- a/src/ft_raycasting.c
+++ b/src/ft_raycasting.c
@@ -19,61 +19,61 @@
/* static void */
/* ft_calc_sprite_norme(t_cub *cl) */
/* { */
-/* if (cl.sp_list.s_start_y < 0) */
-/* cl.sp_list.s_start_y = 0; */
-/* cl.sp_list.s_end_y = cl.sp_list.s_h / 2 + cl.wlist.y_size / 2; */
-/* if (cl.sp_list.s_end_y > (int)cl.wlist.y_size) */
-/* cl.sp_list.s_end_y = cl.wlist.y_size - 1; */
-/* cl.sp_list.s_w = abs((int)(cl.wlist.x_size */
-/* * cl.sp_list.sprite_transform_y)); /\*sprite width*\/ */
-/* cl.sp_list.s_start_x = -cl.sp_list.s_w / 2 + cl.sp_list.s_screen_x; */
-/* if (cl.sp_list.s_start_x < 0) */
-/* cl.sp_list.s_start_y = 0; */
-/* cl.sp_list.s_end_x = cl.sp_list.s_w / 2 + cl.wlist.x_size; */
-/* if (cl.sp_list.s_end_x < (int)cl.wlist.x_size) */
-/* cl.sp_list.s_end_x = cl.wlist.x_size - 1; */
+/* if (cl->sp_list.s_start_y < 0) */
+/* cl->sp_list.s_start_y = 0; */
+/* cl->sp_list.s_end_y = cl->sp_list.s_h / 2 + cl->wlist.y_size / 2; */
+/* if (cl->sp_list.s_end_y > (int)cl->wlist.y_size) */
+/* cl->sp_list.s_end_y = cl->wlist.y_size - 1; */
+/* cl->sp_list.s_w = abs((int)(cl->wlist.x_size */
+/* * cl->sp_list.sprite_transform_y)); /\*sprite width*\/ */
+/* cl->sp_list.s_start_x = -cl->sp_list.s_w / 2 + cl->sp_list.s_screen_x; */
+/* if (cl->sp_list.s_start_x < 0) */
+/* cl->sp_list.s_start_y = 0; */
+/* cl->sp_list.s_end_x = cl->sp_list.s_w / 2 + cl->wlist.x_size; */
+/* if (cl->sp_list.s_end_x < (int)cl->wlist.x_size) */
+/* cl->sp_list.s_end_x = cl->wlist.x_size - 1; */
/* } */
/* static void */
/* ft_calc_sprite(t_cub *cl) */
/* { */
-/* cl.sp_list.s_x = cl.sp_list.s_pos_x - cl.plist.pos_x; */
-/* cl.sp_list.s_y = cl.sp_list.s_pos_y - cl.plist.pos_y; */
-/* cl.sp_list.inv_c_m = 1.0 / (cl.plist.plane_x * cl.plist.dir_x */
-/* - cl.plist.dir_y * cl.plist.plane_y); */
-/* cl.sp_list.sprite_transform_x = cl.sp_list.inv_c_m */
-/* * (cl.plist.dir_y * cl.sp_list.s_x */
-/* - cl.plist.dir_x * cl.sp_list.s_y); */
-/* cl.sp_list.sprite_transform_y = cl.sp_list.inv_c_m */
-/* * (cl.plist.plane_y * cl.sp_list.s_x */
-/* - cl.plist.plane_x * cl.sp_list.s_y); */
-/* cl.sp_list.s_screen_x = (int)((cl.wlist.y_size / 2) */
-/* * (1 + cl.sp_list.sprite_transform_x */
-/* / cl.sp_list.sprite_transform_y)); */
-/* cl.sp_list.s_h = */
-/* abs((int)(cl.wlist.y_size * cl.sp_list.sprite_transform_y)); */
-/* cl.sp_list.s_start_y = -cl.sp_list.s_h / 2 + cl.wlist.y_size / 2; */
+/* cl->sp_list.s_x = cl->sp_list.s_pos_x - cl->plist.pos_x; */
+/* cl->sp_list.s_y = cl->sp_list.s_pos_y - cl->plist.pos_y; */
+/* cl->sp_list.inv_c_m = 1.0 / (cl->plist.plane_x * cl->plist.dir_x */
+/* - cl->plist.dir_y * cl->plist.plane_y); */
+/* cl->sp_list.sprite_transform_x = cl->sp_list.inv_c_m */
+/* * (cl->plist.dir_y * cl->sp_list.s_x */
+/* - cl->plist.dir_x * cl->sp_list.s_y); */
+/* cl->sp_list.sprite_transform_y = cl->sp_list.inv_c_m */
+/* * (cl->plist.plane_y * cl->sp_list.s_x */
+/* - cl->plist.plane_x * cl->sp_list.s_y); */
+/* cl->sp_list.s_screen_x = (int)((cl->wlist.y_size / 2) */
+/* * (1 + cl->sp_list.sprite_transform_x */
+/* / cl->sp_list.sprite_transform_y)); */
+/* cl->sp_list.s_h = */
+/* abs((int)(cl->wlist.y_size * cl->sp_list.sprite_transform_y)); */
+/* cl->sp_list.s_start_y = -cl->sp_list.s_h / 2 + cl->wlist.y_size / 2; */
/* ft_calc_sprite_norme(cl); */
/* } */
void
ft_calc_tex(t_cub *clist)
{
- if (clist.rlist.side == 0)
- clist.rlist.wall_hit_x = (clist.plist.pos_x) +
- clist.rlist.wall_dist * clist.rlist.y_ray_dir;
+ if (clist->rlist.side == 0)
+ clist->rlist.wall_hit_x = (clist->plist.pos_x) +
+ clist->rlist.wall_dist * clist->rlist.y_ray_dir;
else
- clist.rlist.wall_hit_x = (clist.plist.pos_y) +
- clist.rlist.wall_dist * clist.rlist.x_ray_dir;
- clist.rlist.wall_hit_x -= floor(clist.rlist.wall_hit_x);
- clist.tlist[clist.w_side].tex_x = (int)(clist.rlist.wall_hit_x *
- (double)clist.tlist[clist.w_side].img_w);
- if (clist.rlist.side == 0 && clist.rlist.x_ray_dir > 0)
- clist.tlist[clist.w_side].tex_x = clist.tlist[clist.w_side].img_w
- - clist.tlist[clist.w_side].tex_x - 1;
- else if (clist.rlist.side == 1 && clist.rlist.y_ray_dir < 0)
- clist.tlist[clist.w_side].tex_x = clist.tlist[clist.w_side].img_w
- - clist.tlist[clist.w_side].tex_x - 1;
+ clist->rlist.wall_hit_x = (clist->plist.pos_y) +
+ clist->rlist.wall_dist * clist->rlist.x_ray_dir;
+ clist->rlist.wall_hit_x -= floor(clist->rlist.wall_hit_x);
+ clist->tlist[clist->w_side].tex_x = (int)(clist->rlist.wall_hit_x *
+ (double)clist->tlist[clist->w_side].img_w);
+ if (clist->rlist.side == 0 && clist->rlist.x_ray_dir > 0)
+ clist->tlist[clist->w_side].tex_x = clist->tlist[clist->w_side].img_w
+ - clist->tlist[clist->w_side].tex_x - 1;
+ else if (clist->rlist.side == 1 && clist->rlist.y_ray_dir < 0)
+ clist->tlist[clist->w_side].tex_x = clist->tlist[clist->w_side].img_w
+ - clist->tlist[clist->w_side].tex_x - 1;
}
static void
@@ -82,26 +82,26 @@ static void
t_win *wl;
t_player *pl;
- wl = cl.wlist;
- pl = cl.plist;
- pl.cam_x = 2 * i / (float)(wl.x_size) - 1;
- cl.rlist.x_ray_pos = pl.pos_y;
- cl.rlist.y_ray_pos = pl.pos_x;
- cl.rlist.x_ray_dir = pl.dir_x + pl.plane_x *
- pl.cam_x;
- cl.rlist.y_ray_dir = pl.dir_y + pl.plane_y *
- pl.cam_x;
- cl.rlist.sqx = (int16_t)cl.rlist.x_ray_pos;
- cl.rlist.sqy = (int16_t)cl.rlist.y_ray_pos;
+ wl = &cl->wlist;
+ pl = &cl->plist;
+ pl->cam_x = 2 * i / (float)(wl->x_size) - 1;
+ cl->rlist.x_ray_pos = pl->pos_y;
+ cl->rlist.y_ray_pos = pl->pos_x;
+ cl->rlist.x_ray_dir = pl->dir_x + pl->plane_x *
+ pl->cam_x;
+ cl->rlist.y_ray_dir = pl->dir_y + pl->plane_y *
+ pl->cam_x;
+ cl->rlist.sqx = (int16_t)cl->rlist.x_ray_pos;
+ cl->rlist.sqy = (int16_t)cl->rlist.y_ray_pos;
ft_detect(cl);
- if (cl.rlist.side == 0)
+ if (cl->rlist.side == 0)
{
- cl.rlist.wall_dist = (cl.rlist.sqx - cl.rlist.x_ray_pos +
- (1 - cl.mlist.x_step) / 2) / cl.rlist.x_ray_dir;
+ cl->rlist.wall_dist = (cl->rlist.sqx - cl->rlist.x_ray_pos +
+ (1 - cl->mlist.x_step) / 2) / cl->rlist.x_ray_dir;
}
else
- cl.rlist.wall_dist = (cl.rlist.sqy - cl.rlist.y_ray_pos +
- (1 - cl.mlist.y_step) / 2) / cl.rlist.y_ray_dir;
+ cl->rlist.wall_dist = (cl->rlist.sqy - cl->rlist.y_ray_pos +
+ (1 - cl->mlist.y_step) / 2) / cl->rlist.y_ray_dir;
}
void
@@ -111,22 +111,22 @@ void
t_win *wl;
i = 0;
- wl = cl.wlist;
- while (i < wl.x_size)
+ wl = &cl->wlist;
+ while (i < wl->x_size)
{
ft_initray(cl, i);
- cl.rlist.line_h = (int16_t)(wl.y_size / cl.rlist.wall_dist);
- 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_b = cl.rlist.line_h / 2 + wl.y_size / 2;
- if (cl.rlist.wall_b >= (float)wl.y_size)
- cl.rlist.wall_b = wl.y_size - 1;
+ cl->rlist.line_h = (int16_t)(wl->y_size / cl->rlist.wall_dist);
+ 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_b = cl->rlist.line_h / 2 + wl->y_size / 2;
+ if (cl->rlist.wall_b >= (float)wl->y_size)
+ cl->rlist.wall_b = wl->y_size - 1;
ft_choose_tex(cl);
ft_calc_tex(cl);
/* ft_calc_sprite(cl); */
/* ft_draw_sprite(cl , i); */
- ft_draw_verline(cl, i, cl.rlist.wall_t, cl.rlist.wall_b);
+ ft_draw_verline(cl, i, cl->rlist.wall_t, cl->rlist.wall_b);
i++;
}
}