Browse Source

fix doors issues

master
narnaud 3 years ago
parent
commit
d138864c8f
  1. 21
      sources/render.c

21
sources/render.c

@ -6,7 +6,7 @@
/* By: narnaud <narnaud@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/05/31 09:33:02 by narnaud #+# #+# */
/* Updated: 2022/06/07 08:22:49 by narnaud ### ########.fr */
/* Updated: 2022/06/07 09:22:47 by narnaud ### ########.fr */
/* */
/* ************************************************************************** */
@ -109,7 +109,7 @@ void render_view(t_env* env)
mapVal = env->map[rc.cell[1]][rc.cell[0]];
if (mapVal > '0')
{
if (mapVal == '2' && vec_len((t_vec_d){rc.cell[0] - env->playerPos.x, rc.cell[1] - env->playerPos.y}) > 3)
if (mapVal == '2' && rc.tex != 4)
rc.tex = 4;
else if (mapVal == '1')
rc.tex = 3 - side * 2 - (rc.step[side] + 1) / 2;
@ -118,15 +118,22 @@ void render_view(t_env* env)
rc.sDist[side] += rc.dDist[side];
continue ;
}
if (!side)
rc.wallX= env->playerPos.y + rc.sDist[side] * rc.vec.y;
else
rc.wallX = env->playerPos.x + rc.sDist[side] * rc.vec.x;
rc.wallX -= floor(rc.wallX);
if (rc.tex == 4 && 2 * rc.wallX - vec_len((t_vec_d){rc.cell[0] - env->playerPos.x, rc.cell[1] - env->playerPos.y}) > -2)
{
rc.sDist[side] += rc.dDist[side];
continue;
}
break ;
}
else
rc.tex = 0;
rc.sDist[side] += rc.dDist[side];
}
if (!side)
rc.wallX= env->playerPos.y + rc.sDist[side] * rc.vec.y;
else
rc.wallX = env->playerPos.x + rc.sDist[side] * rc.vec.x;
rc.wallX -= floor(rc.wallX);
lineHeight = (int)(WIN_Y_SZ / rc.sDist[side]);
if (lineHeight < 0)
lineHeight = 0;

Loading…
Cancel
Save