diff options
author | JozanLeClerc <bousset.rudy@gmail.com> | 2020-02-23 16:07:42 +0100 |
---|---|---|
committer | JozanLeClerc <bousset.rudy@gmail.com> | 2020-02-23 16:07:42 +0100 |
commit | e67574a3e74c2f8340aa2ead168136cedb493735 (patch) | |
tree | 8dab085d7a3934673e499df572676ab11bf617d0 /src | |
parent | Less cringe name for opti flags (diff) | |
download | 42-cub3d-e67574a3e74c2f8340aa2ead168136cedb493735.tar.gz 42-cub3d-e67574a3e74c2f8340aa2ead168136cedb493735.tar.bz2 42-cub3d-e67574a3e74c2f8340aa2ead168136cedb493735.tar.xz 42-cub3d-e67574a3e74c2f8340aa2ead168136cedb493735.tar.zst 42-cub3d-e67574a3e74c2f8340aa2ead168136cedb493735.zip |
Fixed floating point exception
Diffstat (limited to 'src')
-rw-r--r-- | src/ft_draw_hud.c | 30 | ||||
-rw-r--r-- | src/ft_draw_verline.c | 3 |
2 files changed, 24 insertions, 9 deletions
diff --git a/src/ft_draw_hud.c b/src/ft_draw_hud.c index bd2bf37..d0ed81d 100644 --- a/src/ft_draw_hud.c +++ b/src/ft_draw_hud.c @@ -20,46 +20,60 @@ static void const uint16_t scl = cl->mlist->scale; uint32_t x; uint32_t y; + int32_t col; + col = 0x00404040; x = 0; y = wl->y_size - ((cl->mlist->map_h * scl)); while (x < wl->x_size) { while (y < wl->y_size) { - *(int*)(cl->img.ptr + (x * 4 + - (y * cl->img.sizeline))) = 0x00808080; + *(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = col; + if (y % 2) + { + if (col < 0x00AAAAAA) + col += 0x00010101; + } y++; } + col = 0x00404040; y = wl->y_size - ((cl->mlist->map_h * scl)); x++; } } static void - ft_draw_hud_back_top_r(size_t map_h, size_t map_w, t_win *wl, t_cub *cl) + ft_draw_hud_back_top_l(size_t map_h, size_t map_w, t_win *wl, t_cub *cl) { const uint16_t scl = cl->mlist->scale; uint32_t x; uint32_t y; + int32_t col; + col = 0x00353535; x = 0; y = wl->y_size - (map_h * scl) - 20; while (x < (map_w * scl) + 20) { while (y < wl->y_size - (map_h * scl)) { - *(int*)(cl->img.ptr + (x * 4 + - (y * cl->img.sizeline))) = 0x00808080; + *(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = col; + if (y % 2) + { + if (col < 0x00AAAAAA) + col += 0x00010101; + } y++; } + col = 0x00353535; y = wl->y_size - (map_h * scl) - 20; x++; } } static void - ft_draw_hud_back_top_l(size_t map_h, size_t map_w, t_win *wl, t_cub *cl) + ft_draw_hud_back_top_r(size_t map_h, size_t map_w, t_win *wl, t_cub *cl) { const uint16_t scl = cl->mlist->scale; uint32_t x; @@ -84,9 +98,9 @@ void ft_draw_hud(t_cub *clist) { ft_draw_hud_back(clist->wlist, clist); - ft_draw_hud_back_top_r(clist->mlist->map_h, - clist->mlist->map_w, clist->wlist, clist); ft_draw_hud_back_top_l(clist->mlist->map_h, clist->mlist->map_w, clist->wlist, clist); + ft_draw_hud_back_top_r(clist->mlist->map_h, + clist->mlist->map_w, clist->wlist, clist); ft_draw_map(clist->mlist->map, clist); } diff --git a/src/ft_draw_verline.c b/src/ft_draw_verline.c index de54a3a..1a1b2fe 100644 --- a/src/ft_draw_verline.c +++ b/src/ft_draw_verline.c @@ -46,12 +46,13 @@ int8_t (y < 0) ? (y = 0) : 0; (y2 < 0) ? (y2 = 0) : 0; ft_draw_ceil(cl, y, x); + (cl->rlist.line_h <= 0) ? (cl->rlist.line_h = 1) : 0; while (y <= y2) { d = y * 256 - cl->wlist->y_size * 128 + cl->rlist.line_h * 128; d = (d <= 0) ? (-d) : (d); tex_y = ((d * cl->tlist[cl->w_side].img_h) / cl->rlist.line_h) / 256; - (tex_y < 0) ? (tex_y = 0) : 0; + (tex_y <= 0) ? (tex_y = 1) : 0; ft_draw_texture(cl, x, y, tex_y); y++; } |