aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ft_draw_handweap.c1
-rw-r--r--src/ft_draw_life_bar.c70
2 files changed, 46 insertions, 25 deletions
diff --git a/src/ft_draw_handweap.c b/src/ft_draw_handweap.c
index f171c42..9a1a44b 100644
--- a/src/ft_draw_handweap.c
+++ b/src/ft_draw_handweap.c
@@ -55,7 +55,6 @@ static int16_t
}
}
-#include <libft.h>
void
ft_draw_handweap(t_cub *cl)
{
diff --git a/src/ft_draw_life_bar.c b/src/ft_draw_life_bar.c
index 80ec63e..b16b681 100644
--- a/src/ft_draw_life_bar.c
+++ b/src/ft_draw_life_bar.c
@@ -14,19 +14,10 @@
#include <cub3d.h>
#include <stdint.h>
-static void
- ft_draw_tnum(int8_t id, int16_t y, int16_t x, t_cub *cl)
-{
- *(cl->img.ptr + x * 4 + (cl->img.sizeline * y)) =
- (uint8_t)*(cl->tnum[id].ptr + cl->tnum[id].tex_x * 4 + 4 *
- cl->tnum[id].img_w * cl->tnum[id].tex_y);
- *(cl->img.ptr + x * 4 + (cl->img.sizeline * y) + 1) =
- (uint8_t)*(cl->tnum[id].ptr + cl->tnum[id].tex_x * 4 + 4 *
- cl->tnum[id].img_w * cl->tnum[id].tex_y + 1);
- *(cl->img.ptr + x * 4 + (cl->img.sizeline * y) + 2) =
- (uint8_t)*(cl->tnum[id].ptr + cl->tnum[id].tex_x * 4 + 4 *
- cl->tnum[id].img_w * cl->tnum[id].tex_y + 2);
-}
+/* static void */
+/* ft_draw_tnum(int8_t id, int16_t y, int16_t x, t_cub *cl) */
+/* { */
+/* } */
/* static void */
/* ft_put_image_from_number(char *num, t_cub *cl) */
@@ -34,40 +25,71 @@ static void
/* } */
static void
- ft_put_percent_image(t_cub *cl)
+ ft_put_percent_image(uint16_t h, uint16_t w, t_cub *cl)
{
int32_t x_ratio;
int32_t y_ratio;
- int32_t x;
- int32_t y;
+ int16_t x;
+ int16_t y;
- x_ratio = (int)((cl->tnum[10].img_w << 16) / (cl->mlist.map_w * cl->mlist.scale) - 10) + 1;
- y_ratio = (int)((cl->tnum[10].img_h << 16) / (cl->mlist.map_h * cl->mlist.scale) - 10) + 1;
+ x_ratio = (int)((cl->tnum[10].img_w << 16) / w) + 1;
+ y_ratio = (int)((cl->tnum[10].img_h << 16) / h) + 1;
y = cl->wlist.y_size - (cl->mlist.map_h * cl->mlist.scale) - 10;
- while (y < (int32_t)(cl->wlist.y_size - (cl->mlist.map_h * cl->mlist.scale) - 10 + (8 * cl->mlist.scale)))
+ while (y < (int32_t)(cl->wlist.y_size - 10))
{
- cl->tnum[10].tex_y = (y * y_ratio) >> 16;
- x = ((cl->mlist.map_w * cl->mlist.scale) + 20);
+ cl->tnum[10].tex_y = ((y * y_ratio) >> 16);
+ x = ((cl->mlist.map_w * cl->mlist.scale) + 20) + (32 * cl->mlist.scale) - ((32 * cl->mlist.scale) / 4);
while (x < (int32_t)((cl->mlist.map_w * cl->mlist.scale)
+ 10 + ((32 * cl->mlist.scale))))
{
- cl->tnum[10].tex_x = (x * x_ratio) >> 16;
+ cl->tnum[10].tex_x = ((x * x_ratio) >> 16);
if (cl->tnum[10].ptr[cl->tnum[10].tex_x * 4 + 4 *
cl->tnum[10].img_h * cl->tnum[10].tex_y])
- ft_draw_tnum(10, y, x, cl);
+ {
+ cl->img.ptr[x * 4 + (cl->img.sizeline * y)] =
+ (uint8_t)cl->tnum[10].ptr[cl->tnum[10].tex_x * 4 + 4 *
+ cl->tnum[10].img_w * cl->tnum[10].tex_y];
+ cl->img.ptr[x * 4 + (cl->img.sizeline * y) + 1] =
+ (uint8_t)cl->tnum[10].ptr[cl->tnum[10].tex_x * 4 + 4 *
+ cl->tnum[10].img_w * cl->tnum[10].tex_y + 1];
+ cl->img.ptr[x * 4 + (cl->img.sizeline * y) + 2] =
+ (uint8_t)cl->tnum[10].ptr[cl->tnum[10].tex_x * 4 + 4 *
+ cl->tnum[10].img_w * cl->tnum[10].tex_y + 2];
+ }
x++;
}
y++;
}
}
+static void
+ ft_get_hw(t_cub *cl)
+{
+ int16_t x;
+ int16_t y;
+ const int16_t scl = cl->mlist.scale;
+
+ y = cl->wlist.y_size - (cl->mlist.map_h * scl) - 10;
+ while (y < (int32_t)(cl->wlist.y_size - 10))
+ {
+ x = ((cl->mlist.map_w * scl) + 20) + (32 * scl) - ((32 * scl) / 4);
+ while (x < (int32_t)((cl->mlist.map_w * scl) + 10 + ((32 * scl))))
+ x++;
+ y++;
+ }
+ /* y -= cl->wlist.y_size - (cl->mlist.map_h * scl); */
+ x -= ((cl->mlist.map_w * scl) + 20) + (32 * scl) - ((32 * scl) / 4);
+ ft_printf("y %hu | x %hu\n", y, x);
+ ft_put_percent_image(y, x, cl);
+}
+
void
ft_draw_life_bar(t_cub *cl)
{
char *num;
float calc;
- ft_put_percent_image(cl);
+ ft_get_hw(cl);
calc = ((float)cl->plist.life / (float)FT_STRT_LIFE) * 100.0;
if (!(num = ft_itoa((int64_t)calc)))
ft_error(FT_RET_ALLOC_ERR, FT_ERR_ALLOCATE, cl);