diff options
Diffstat (limited to '')
| -rw-r--r-- | map/map_one.cub | 2 | ||||
| -rw-r--r-- | src/ft_draw_textures.c | 26 | ||||
| -rw-r--r-- | src/ft_draw_verline.c | 12 | 
3 files changed, 29 insertions, 11 deletions
| diff --git a/map/map_one.cub b/map/map_one.cub index 34db6b6..4fa7797 100644 --- a/map/map_one.cub +++ b/map/map_one.cub @@ -7,7 +7,7 @@ WE ./map/img/segfault2.xpm  S ./map/img/segfot.xpm  C 50,100,200 -F 150,150,124 +F 50,190,124  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  1 E 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 diff --git a/src/ft_draw_textures.c b/src/ft_draw_textures.c index ec20f33..942e386 100644 --- a/src/ft_draw_textures.c +++ b/src/ft_draw_textures.c @@ -10,6 +10,7 @@  /*                                                                            */  /* ************************************************************************** */ +#include <libft.h>  #include <cub3d.h>  #include <stdint.h>  #include <stdio.h> @@ -24,16 +25,33 @@  void	ft_draw_texture(t_cub *cl, int x, int y, int tex_y)  { +	/* t_rgb	rgb; */  	/*printf("%c\n", cl->img.ptr[x * 4 + 4 * (cl->img.sizeline * y)] );*/  	/**(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = (cl->rlist.side) ? 0x2200ffaa : 0x0000ffaa;*/ -	cl->img.ptr[x * 4 + (cl->img.sizeline * y)] =  -		(char)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  +	/* ft_printf("DATA {{{{{%hd}}}}}\nW_SIDE> %d\n\n\n", */ +			  /* (int16_t)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  */ +			  /* 									 cl->tlist[cl->w_side].img_h * tex_y] */ +			  /* , cl->w_side); */ +	/* rgb.r = */ +	/* 	(int8_t)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 * */ +	/* 	cl->tlist[cl->w_side].img_h * tex_y]; */ +	/* rgb.g = */ +	/* 	(int8_t)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 * */ +	/* 	cl->tlist[cl->w_side].img_h * tex_y + 1]; */ +	/* rgb.b = */ +	/* 	(int8_t)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 * */ +	/* 	cl->tlist[cl->w_side].img_h * tex_y + 2]; */ +	/* *(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = ft_rgb_to_hex(rgb); */ + +	 +	cl->img.ptr[x * 4 + (cl->img.sizeline * y)] = +		(char)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  		cl->tlist[cl->w_side].img_h * tex_y];  	cl->img.ptr[x * 4 + (cl->img.sizeline * y) + 1] = -		(char)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  +		(char)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  		cl->tlist[cl->w_side].img_h * tex_y + 1];  	cl->img.ptr[x * 4 + (cl->img.sizeline * y) + 2] = -		(char)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  +		(char)cl->tlist[cl->w_side].ptr[cl->tlist[cl->w_side].tex_x * 4 + 4 *  		cl->tlist[cl->w_side].img_h * tex_y + 2];  	cl->img.ptr[x * 4 + cl->wlist->x_size * y + 3] = (char)0;  } diff --git a/src/ft_draw_verline.c b/src/ft_draw_verline.c index 7d24301..65958ca 100644 --- a/src/ft_draw_verline.c +++ b/src/ft_draw_verline.c @@ -60,16 +60,16 @@ int8_t  	y = y1;  	ft_draw_ceil(cl, y, x);  	ft_choose_tex(cl); -	while (y1 < y2) +	while (y < y2)  	{  		d = y * 256 - cl->wlist->y_size * 128 + cl->rlist.line_h * 128; -		printf(" y : %d\ny_size : %d\nd : %d\nline_h : %d\n", y, cl->wlist->y_size, d, cl->rlist.line_h); -		cl->tlist[cl->w_side].tex_y = ((d * cl->tlist[cl->w_side].img_w) -			/ cl->rlist.line_h) / 256; +		(d <= 0) ? (d = 1) : 0; +		/* printf("y : %d\ny_size : %d\nd : %d\nline_h : %d\n", y1, cl->wlist->y_size, d, cl->rlist.line_h); */ +		cl->tlist[cl->w_side].tex_y = ((d * cl->tlist[cl->w_side].img_w) / cl->rlist.line_h) / 256;  		/*printf("w_side : %d\nd : %d\ntex_y : %d\n", cl->w_side, d, cl->tlist[cl->w_side].tex_y);*/  		ft_draw_texture(cl, x, y, cl->tlist[cl->w_side].tex_y); -	/**(int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = (cl->rlist.side) ? 0x2200ffaa : 0x0000ffaa;*/ -		y1++; +	/* (int*)(cl->img.ptr + (x * 4 + (y * cl->img.sizeline))) = (cl->rlist.side) ? 0x2200ffaa : 0x0000ffaa; */ +		y++;  	}  	ft_draw_floor(cl, y, x);  	return (0); | 
