aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_draw_hud.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ft_draw_hud.c73
1 files changed, 37 insertions, 36 deletions
diff --git a/src/ft_draw_hud.c b/src/ft_draw_hud.c
index eb329c6..121e85e 100644
--- a/src/ft_draw_hud.c
+++ b/src/ft_draw_hud.c
@@ -14,31 +14,44 @@
#include <stdint.h>
static void
- ft_draw_life_back(t_win *wl, t_cub *cl)
+ ft_put_image_back_to_ptr(uint16_t y, uint16_t x, t_cub *cl)
{
- const uint16_t scl = cl->mlist.scale;
- uint32_t x;
- uint32_t y;
- int32_t col;
+ const uint32_t col = 0x00d2d4d6;
- col = 0x00353535;
- x = (cl->mlist.map_w * scl) + 20;
- y = wl->y_size - (cl->mlist.map_h * scl) - 20;
- while (x < ((cl->mlist.map_w * scl) + 20) + (3 * scl))
+ *(cl->img.ptr + x * 4 + (cl->img.sizeline * y)) =
+ (uint8_t)*(cl->tlist[16].ptr + cl->tlist[16].tex_x * 4 + 4 *
+ cl->tlist[16].img_w * cl->tlist[16].tex_y) & col;
+ *(cl->img.ptr + x * 4 + (cl->img.sizeline * y) + 1) =
+ (uint8_t)*(cl->tlist[16].ptr + cl->tlist[16].tex_x * 4 + 4 *
+ cl->tlist[16].img_w * cl->tlist[16].tex_y + 1) & col;
+ *(cl->img.ptr + x * 4 + (cl->img.sizeline * y) + 2) =
+ (uint8_t)*(cl->tlist[16].ptr + cl->tlist[16].tex_x * 4 + 4 *
+ cl->tlist[16].img_w * cl->tlist[16].tex_y + 2) & col;
+}
+
+static void
+ ft_draw_minimap_back_image(uint16_t h, uint16_t w, t_cub *cl)
+{
+ int32_t x_ratio;
+ int32_t y_ratio;
+ int16_t x;
+ int16_t y;
+
+ x_ratio = (int)((cl->tlist[16].img_w << 16) / w) + 1;
+ y_ratio = (int)((cl->tlist[16].img_h << 16) / h) + 1;
+ y = cl->wlist.y_size - (cl->mlist.map_h * cl->mlist.scale) - 20;
+ while (y < (int32_t)cl->wlist.y_size)
{
- while (y < wl->y_size)
+ x = 0;
+ cl->tlist[16].tex_y = (y * y_ratio) >> 16;
+ while (x < (uint16_t)((cl->mlist.map_w
+ * cl->mlist.scale) + 20 + (3 * cl->mlist.scale)))
{
- *(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = col;
- if (!(y % 3))
- {
- if (col < 0x00aaaaaa)
- col += 0x00010101;
- }
- y++;
+ cl->tlist[16].tex_x = (x * x_ratio) >> 16;
+ ft_put_image_back_to_ptr(y, x, cl);
+ x++;
}
- col = 0x00353535;
- y = wl->y_size - (cl->mlist.map_h * scl) - 20;
- x++;
+ y++;
}
}
@@ -46,29 +59,18 @@ static void
ft_draw_minimap_back(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;
+ uint16_t x;
+ uint16_t y;
- col = 0x00353535;
x = 0;
y = wl->y_size - (map_h * scl) - 20;
- while (x < (map_w * scl) + 20)
+ while (x < (map_w * scl) + 20 + (3 * scl))
{
while (y < wl->y_size)
- {
- *(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++;
}
+ ft_draw_minimap_back_image(y, x, cl);
}
static void
@@ -107,7 +109,6 @@ int8_t
ft_draw_minimap_back(clist->mlist.map_h,
clist->mlist.map_w, &clist->wlist, clist);
ft_draw_map(clist->mlist.map, clist);
- ft_draw_life_back(&clist->wlist, clist);
ft_draw_life_bar(&clist->wlist, clist);
if (clist->mlist.isnlvl)
{