diff options
Diffstat (limited to 'src/ft_draw_hud.c')
-rw-r--r-- | src/ft_draw_hud.c | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/src/ft_draw_hud.c b/src/ft_draw_hud.c index 1564e2e..68cdac5 100644 --- a/src/ft_draw_hud.c +++ b/src/ft_draw_hud.c @@ -12,15 +12,69 @@ #include <cub3d.h> #include <mlx.h> +#include <stdint.h> static void -ft_draw_hud_back(t_win *wl, t_cub *cl) + ft_draw_hud_back(t_win *wl, t_cub *cl) { + const uint16_t scl = cl->mlist->scale; + uint32_t x; + uint32_t y; + + 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; + y++; + } + y = wl->y_size - ((cl->mlist->map_h * scl)); + x++; + } +} + +static void + ft_draw_hud_back_top(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; + + 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; + y++; + } + y = wl->y_size - (map_h * scl) - 20; + x++; + } + x = wl->x_size - (map_w * scl) + 20; + while (x < wl->x_size) + { + while (y < wl->y_size - (map_h * scl)) + { + *(int*)(cl->img.ptr + (x * 4 + + (y * cl->img.sizeline))) = 0x00808080; + y++; + } + y = wl->y_size - (map_h * scl) - 20; + x++; + } } void ft_draw_hud(t_cub *clist) { ft_draw_hud_back(clist->wlist, clist); + ft_draw_hud_back_top(clist->mlist->map_h, + clist->mlist->map_w, clist->wlist, clist); ft_draw_map(clist->mlist->map, clist); } |