aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ft_draw_verline.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ft_draw_verline.c b/src/ft_draw_verline.c
index 4544aa0..17d754a 100644
--- a/src/ft_draw_verline.c
+++ b/src/ft_draw_verline.c
@@ -1,5 +1,30 @@
#include <cub3d.h>
+static void
+ft_draw_floor(t_cub *cl, int32_t y, int32_t x, int16_t i)
+{
+ while (i <= y)
+ {
+ *(int*)(cl->img.ptr +
+ (x * 4 + (i * cl->img.sizeline))) = ft_rgb_to_hex(cl->f_rgb);
+ i++;
+ }
+}
+
+static void
+ft_draw_ceil(t_cub *cl, int32_t y, int32_t x)
+{
+ int16_t i;
+
+ i = 0;
+ while (i <= y)
+ {
+ *(int*)(cl->img.ptr +
+ (x * 4 + (i * cl->img.sizeline))) = ft_rgb_to_hex(cl->c_rgb);
+ i++;
+ }
+}
+
int8_t
ft_draw_verline(t_cub *cl, int32_t x, int32_t y1, int32_t y2, int32_t color)
{
@@ -19,10 +44,12 @@ ft_draw_verline(t_cub *cl, int32_t x, int32_t y1, int32_t y2, int32_t color)
y2 = t;
}
y = y1;
+ ft_draw_ceil(cl, y, x);
while (y <= y2)
{
*(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = color;
y++;
}
+ ft_draw_floor(cl, x, cl->wlist->y_size, y);
return (0);
}