diff options
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 1 | ||||
| -rw-r--r-- | inc/cub3d.h | 1 | ||||
| -rw-r--r-- | src/ft_draw_hud.c | 32 | ||||
| -rw-r--r-- | src/ft_draw_life_bar.c | 73 | 
4 files changed, 106 insertions, 1 deletions
| @@ -90,6 +90,7 @@ SRCS_NAME	+= ft_floor_cast_inits.c  SRCS_NAME	+= ft_suffer_animation.c  SRCS_NAME	+= ft_draw_traps.c  SRCS_NAME	+= ft_draw_traps_extra.c +SRCS_NAME	+= ft_draw_life_bar.c  #--------------------------------------------------------------------------------------------------#  SRCS		= $(addprefix ${SRCS_DIR},${SRCS_NAME})  #--------------------------------------------------------------------------------------------------# diff --git a/inc/cub3d.h b/inc/cub3d.h index 016677a..56736ac 100644 --- a/inc/cub3d.h +++ b/inc/cub3d.h @@ -82,6 +82,7 @@ void			ft_calc_trap(t_cub *cl);  void			ft_draw_traps(t_cub *cl, t_sprite *sprite);  void			ft_draw_skybox(t_cub *cl);  void			ft_suffer_animation(t_cub *cl); +void			ft_draw_life_bar(t_win *wl, t_cub *cl);  /*  ** ====== PARSING ====== diff --git a/src/ft_draw_hud.c b/src/ft_draw_hud.c index 486112d..eb329c6 100644 --- a/src/ft_draw_hud.c +++ b/src/ft_draw_hud.c @@ -11,10 +11,38 @@  /* ************************************************************************** */  #include <cub3d.h> -#include <mlx.h>  #include <stdint.h>  static void +	ft_draw_life_back(t_win *wl, t_cub *cl) +{ +	const uint16_t	scl = cl->mlist.scale; +	uint32_t		x; +	uint32_t		y; +	int32_t			col; + +	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)) +	{ +		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 - (cl->mlist.map_h * scl) - 20; +		x++; +	} +} + +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; @@ -79,6 +107,8 @@ 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)  	{  		ft_draw_stage_back(clist); diff --git a/src/ft_draw_life_bar.c b/src/ft_draw_life_bar.c new file mode 100644 index 0000000..ed270f9 --- /dev/null +++ b/src/ft_draw_life_bar.c @@ -0,0 +1,73 @@ +/* ************************************************************************** */ +/*                                                                            */ +/*                                                        :::      ::::::::   */ +/*   ft_draw_life_bar.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 <stdint.h> + + +static void +	ft_draw_green_life(uint16_t h, t_win *wl, t_cub *cl) +{ +	const uint16_t	scl = cl->mlist.scale; +	uint32_t		x; +	uint32_t		y; +	int32_t			col; + +	col = 0x0035ae35; +	x = (cl->mlist.map_w * scl) + 20 + 9; +	while (x < (cl->mlist.map_w * scl) + 20 + ((3 * scl) - 9)) +	{ +		y = (wl->y_size - (cl->mlist.map_h * scl) - 20 + 9) + ((100 - cl->plist.life) * (h / (cl->mlist.map_h * scl) - 1)); +		while (y < wl->y_size - 9) +		{ +			*(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = col; +			if (!(y % 3)) +			{ +				if (col < 0x00aaaaaa) +					col += 0x00010101; +			} +			y++; +		} +		col = 0x0035ae35; +		x++; +	} +} + +void +	ft_draw_life_bar(t_win *wl, t_cub *cl) +{ +	const uint16_t	scl = cl->mlist.scale; +	uint32_t		x; +	uint32_t		y; +	int32_t			col; + +	col = 0x00ae3535; +	x = (cl->mlist.map_w * scl) + 20 + 9; +	y = wl->y_size - (cl->mlist.map_h * scl) - 20 + 9; +	while (x < (cl->mlist.map_w * scl) + 20 + ((3 * scl) - 9)) +	{ +		while (y < wl->y_size - 9) +		{ +			*(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = col; +			if (!(y % 3)) +			{ +				if (col < 0x00aaaaaa) +					col += 0x00010101; +			} +			y++; +		} +		col = 0x00ae3535; +		y = wl->y_size - (cl->mlist.map_h * scl) - 20 + 9; +		x++; +	} +	ft_draw_green_life(y, wl, cl); +} | 
