aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_draw_hud.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ft_draw_hud.c')
-rw-r--r--src/ft_draw_hud.c113
1 files changed, 113 insertions, 0 deletions
diff --git a/src/ft_draw_hud.c b/src/ft_draw_hud.c
new file mode 100644
index 0000000..9cb5b1c
--- /dev/null
+++ b/src/ft_draw_hud.c
@@ -0,0 +1,113 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_draw_hud.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2020/02/22 20:02:47 by rbousset #+# #+# */
+/* Updated: 2020/02/22 20:02:48 by rbousset ### ########lyon.fr */
+/* */
+/* ************************************************************************** */
+
+#include <cub3d.h>
+#include <mlx.h>
+#include <stdint.h>
+
+static void
+ ft_draw_hud_back(t_win *wl, t_cub *cl)
+{
+ 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))) = col;
+ if (!(y % 3))
+ {
+ if (col < 0x00909090)
+ col += 0x00010101;
+ }
+ y++;
+ }
+ col = 0x00404040;
+ y = wl->y_size - ((cl->mlist->map_h * scl));
+ x++;
+ }
+}
+
+static void
+ 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 = 0x00373737;
+ 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))) = col;
+ if (!(y % 3))
+ {
+ if (col < 0x00aaaaaa)
+ col += 0x00010101;
+ }
+ y++;
+ }
+ col = 0x00353535;
+ y = wl->y_size - (map_h * scl) - 20;
+ x++;
+ }
+}
+
+static void
+ 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;
+ uint32_t y;
+ int32_t col;
+
+ col = 0x00373737;
+ x = wl->x_size - (map_w * scl) + 20;
+ y = wl->y_size - (map_h * 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))) = col;
+ if (!(y % 2))
+ {
+ if (col < 0x00aaaaaa)
+ col += 0x00010101;
+ }
+ y++;
+ }
+ col = 0x00353535;
+ 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_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);
+}