aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-02-23 16:07:42 +0100
committerJozanLeClerc <bousset.rudy@gmail.com>2020-02-23 16:07:42 +0100
commite67574a3e74c2f8340aa2ead168136cedb493735 (patch)
tree8dab085d7a3934673e499df572676ab11bf617d0 /src
parentLess cringe name for opti flags (diff)
download42-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.c30
-rw-r--r--src/ft_draw_verline.c3
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++;
}