diff options
Diffstat (limited to 'src/ft_castray_loop.c')
-rw-r--r-- | src/ft_castray_loop.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/ft_castray_loop.c b/src/ft_castray_loop.c index 28277a7..00cb589 100644 --- a/src/ft_castray_loop.c +++ b/src/ft_castray_loop.c @@ -21,17 +21,17 @@ void { if (cl->rlist.side == 0) cl->rlist.wall_hit_x = (cl->plist.pos_x) + - cl->rlist.wall_dist * cl->rlist.y_ray_dir; + cl->rlist.wall_dist * cl->rlist.x_ray_dir; else cl->rlist.wall_hit_x = (cl->plist.pos_y) + - cl->rlist.wall_dist * cl->rlist.x_ray_dir; + cl->rlist.wall_dist * cl->rlist.y_ray_dir; cl->rlist.wall_hit_x -= floor(cl->rlist.wall_hit_x); cl->tlist[cl->w_side].tex_x = (int)(cl->rlist.wall_hit_x * (double)cl->tlist[cl->w_side].img_w); - if (cl->rlist.side == 0 && cl->rlist.x_ray_dir > 0) + if (cl->rlist.side == 0 && cl->rlist.y_ray_dir > 0) cl->tlist[cl->w_side].tex_x = cl->tlist[cl->w_side].img_w - cl->tlist[cl->w_side].tex_x - 1; - else if (cl->rlist.side == 1 && cl->rlist.y_ray_dir < 0) + else if (cl->rlist.side == 1 && cl->rlist.x_ray_dir < 0) cl->tlist[cl->w_side].tex_x = cl->tlist[cl->w_side].img_w - cl->tlist[cl->w_side].tex_x - 1; } @@ -45,24 +45,24 @@ void 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 * + cl->rlist.y_ray_pos = pl->pos_y; + cl->rlist.x_ray_pos = pl->pos_x; + cl->rlist.y_ray_dir = -pl->dir_y + pl->plane_x * pl->cam_x; - cl->rlist.y_ray_dir = pl->dir_y + pl->plane_y * + cl->rlist.x_ray_dir = pl->dir_x + 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; + cl->rlist.sqx = (int16_t)cl->rlist.x_ray_pos; ft_detect(cl); 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.sqy - cl->rlist.y_ray_pos + + (1 - cl->mlist.x_step) / 2) / cl->rlist.y_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.sqx - cl->rlist.x_ray_pos + + (1 - cl->mlist.y_step) / 2) / cl->rlist.x_ray_dir; } } |