aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRudy Bousset <rbousset@z3r8p1.le-101.fr>2020-02-13 20:20:46 +0100
committerRudy Bousset <rbousset@z3r8p1.le-101.fr>2020-02-13 20:20:46 +0100
commitd8da29854eca5ae9ec806a679d0e0a68826ede2f (patch)
treedbece501d0c1cfc9a02ae233bb6389c8b80fc46b
parentMap update (diff)
download42-cub3d-d8da29854eca5ae9ec806a679d0e0a68826ede2f.tar.gz
42-cub3d-d8da29854eca5ae9ec806a679d0e0a68826ede2f.tar.bz2
42-cub3d-d8da29854eca5ae9ec806a679d0e0a68826ede2f.tar.xz
42-cub3d-d8da29854eca5ae9ec806a679d0e0a68826ede2f.tar.zst
42-cub3d-d8da29854eca5ae9ec806a679d0e0a68826ede2f.zip
In progress
-rw-r--r--map/map_one.cub2
-rw-r--r--src/ft_draw_verline.c27
2 files changed, 28 insertions, 1 deletions
diff --git a/map/map_one.cub b/map/map_one.cub
index ee83dd3..b6a98e0 100644
--- a/map/map_one.cub
+++ b/map/map_one.cub
@@ -7,7 +7,7 @@ WE ./path_to_the_west_texture
S ./path_to_the_sprite_texture
F 200,225,145
-C 225,30,0
+C 225,30,156
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
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);
}