diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-03-03 16:14:26 +0100 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-03-03 16:14:26 +0100 |
commit | ce43b1cd1caa539af687425f58a6999a20807878 (patch) | |
tree | 34631aef16b6eb1d5d650fe9e900916f9810215d /src/ft_raycasting.c | |
parent | Makefile update (diff) | |
download | 42-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.c | 138 |
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++; } } |