diff options
| author | salaaad2 <arthurdurant263@gmail.com> | 2020-02-24 18:19:58 +0100 | 
|---|---|---|
| committer | salaaad2 <arthurdurant263@gmail.com> | 2020-02-24 18:19:58 +0100 | 
| commit | 84a92b0d2824a97c3358f8ce86290aa8a718618e (patch) | |
| tree | 47b55ae0d01c3146d9c86e9b2721efcdf40cba1f | |
| parent | tests (diff) | |
| download | 42-cub3d-84a92b0d2824a97c3358f8ce86290aa8a718618e.tar.gz 42-cub3d-84a92b0d2824a97c3358f8ce86290aa8a718618e.tar.bz2 42-cub3d-84a92b0d2824a97c3358f8ce86290aa8a718618e.tar.xz 42-cub3d-84a92b0d2824a97c3358f8ce86290aa8a718618e.tar.zst 42-cub3d-84a92b0d2824a97c3358f8ce86290aa8a718618e.zip  | |
very bad
Diffstat (limited to '')
| -rw-r--r-- | map/img/pillar.xpm | 91 | ||||
| -rw-r--r-- | map/map_one.cub | 4 | ||||
| -rw-r--r-- | src/ft_draw_sprite.c | 53 | ||||
| -rw-r--r-- | src/ft_key_loop.c | 2 | 
4 files changed, 121 insertions, 29 deletions
diff --git a/map/img/pillar.xpm b/map/img/pillar.xpm new file mode 100644 index 0000000..4a0c656 --- /dev/null +++ b/map/img/pillar.xpm @@ -0,0 +1,91 @@ +/* XPM */ +static char *_8e53538c4e441a6b69ed6027602859e[] = { +/* columns rows colors chars-per-pixel */ +"64 64 21 1 ", +"  c black", +". c #202020", +"X c #2C2C2C", +"o c gray22", +"O c gray25", +"+ c #484848", +"@ c #4C4C4C", +"# c gray33", +"$ c gray36", +"% c #646464", +"& c gray44", +"* c #7C7C7C", +"= c gray55", +"- c #989898", +"; c gray66", +": c #B4B4B4", +"> c #C0C0C0", +", c #D0D0D0", +"< c gainsboro", +"1 c #ECECEC", +"2 c gray99", +/* pixels */ +"                         ;;;;=======&&&&%                       ", +"                    ;;<<,,,>>>::;;--==*&&%#+##                  ", +"                  >22111<<<,,,>>::;-&>=*&%#+OooX                ", +"                 12222111222<<,>>::;--=**+#+Ooo.X               ", +"                <112222221<,>>::;;-=**&%%%%oOoX.XX              ", +"                <<1122211,,,>>;,;;-=**&%%#O+XX..XX              ", +"                ><<2122111<<,,>>::;-=*&%#+OXo..XXX              ", +"                 >>211221122<<,>>;;-=*&%#OoX...XX               ", +"                   :1122221<,>;:-=*&%#+OXoX....                 ", +"                    :>>2221<,>:;-=*&%#+OoXX..X                  ", +"                     ->1221<,>:;-=*&#%+OoX..X                   ", +"                     ->1221<,>:;-=*&%#+OoX..X                   ", +"                     ->2221<,>:;=;*&%#+OXo..X                   ", +"                     ->2221<,>:=-;*&%#+OoX..X                   ", +"                     ->2221<,>:;-=*&%O%OoX..X                   ", +"                     ->2221<,>:;-=*&%#%OoX..X                   ", +"                     ->11<,>:;-=*&%#+O+X....X                   ", +"                     -=;:;;==*&&%%#+OoX......                   ", +"                      <2<1221<,>:;-=*&#%+o.X                    ", +"                     ><2222<,>:;-=*&%#+#oXX.o                   ", +"                     ><2221<,,:;-*=&%#+OoX..X                   ", +"                     ->2221<:1:;-=&*%#+OoX..X                   ", +"                     ->2221<>1:;-=*&%#+OXo..X                   ", +"                     ->2221<,,:;-=*&#%+OoX .X                   ", +"                     ->2221<,>:;-=*&%#+X+X..X                   ", +"                     -;2221:2>:;-=*&%#+OoX..X                   ", +"                     -<2221<,>:;-*-&%#+oOX..X                   ", +"                     ->2221<:<:;-=*&%+#OoX..X                   ", +"                     ->2221<,>:;=-*&%#+OXo..X                   ", +"                     *-<1<,>:;-=*&%#+OoX.....                   ", +"                      *-;-==**&&%%#+OoX..                       ", +"                     ;,22222><,>:;-=*&%#+oXXo                   ", +"                     ->2221<1>:;-=*&%#+OoX..X                   ", +"                     ->2221<,>:;=-*%*#+OXO .X                   ", +"                     ->2221<:1:;-=*&%#O+oX..X                   ", +"                     ->22<2<,>:;-=*&%+#Oo.X.X                   ", +"                     ->2121<:>;:-*=&%##OoX...                   ", +"                     ->2221:2>:;-=*&%#+oOX..X                   ", +"                     ->22212,>:;-=&*%#+OoX..X                   ", +"                     ->22<2<,>:;=-*&%#O+Xo..X                   ", +"                     ->2221<,:<;-=*&#%+OoX..X                   ", +"                     ->2221,1>:;-=&*%#+OXo..X                   ", +"                     *>1211<,>:--=*&%+#OoX..o                   ", +"                      ;,<>>>:;-&-&%#+OoX....                    ", +"                     ;1:>,>-=*&#%%#+OoX......                   ", +"                     -,212221<,>:=-=*&%#+o.XX                   ", +"                     ->2221<,>:;-*-&%#+OXO..X                   ", +"                     ->222,2,>-<-=*&%#+OoX..X                   ", +"                     ->2221<,>:;-*-&%+#OoX..X                   ", +"                     ->2221<,>:;-=*&#%+OoX..X                   ", +"                     ->2221<,>->-=*%&#+OoX..X                   ", +"                     ->2221<,;<;-=*&%#O#oX..X                   ", +"                     ->122,2,>:;-=*&%#+OoX..X                   ", +"                     ->122,2,>:;-=*&%+#OoX..X                   ", +"                    :<>2221<,>:-:=*&%#+OoXo..X                  ", +"                   :1122221<,>:;-=*&%#+OXoX...XX                ", +"                 >>212221122<<,>>;;-=*&%#OoX...XXXO+@##$$%%     ", +"                ><<2122111<<,,>>::;-=*&%#+OXo..XXXooO++@##$%%   ", +"                <<1122211,,,>>::;;=;**&%%#O+XX..XXooooO++@#$$%  ", +"                <112222221<,>>::;;-=**&%%&%@@oX.XXooooO++@#$$%  ", +"                 12222111222<<,>>::;--=**&$O$oo.XoooOO+@@#$$%   ", +"                  >22111<<<,,,>:,:;--=*=&%$+OooXOOO+++@#$$%     ", +"                    ;;<<,,,>>>::;;--==*&&%#+OO+#$$$%%%%%%       ", +"                         ;;;;=======&&&&%#OO+#$%%               " +}; diff --git a/map/map_one.cub b/map/map_one.cub index 168e1e8..f47183c 100644 --- a/map/map_one.cub +++ b/map/map_one.cub @@ -4,7 +4,7 @@ NO ./map/img/BRIQUASSES.xpm  SO ./map/img/BRIQUASSE_3.xpm  EA ./map/img/BRIQUASSES_2.xpm  WE ./map/img/MURLOL.xpm -S ./map/img/segfot.xpm +S ./map/img/pillar.xpm  C 50,100,200  F 50,190,124 @@ -12,7 +12,7 @@ F 50,190,124  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1  1 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1  1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 N 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 +1 E 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1  1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1  1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1  1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 diff --git a/src/ft_draw_sprite.c b/src/ft_draw_sprite.c index e7df49b..5f7fd31 100644 --- a/src/ft_draw_sprite.c +++ b/src/ft_draw_sprite.c @@ -8,41 +8,42 @@  void  ft_draw_verline_sprite(t_cub *cl, int x, int y, int tex_y)  { -  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 * -    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 * -    cl->tlist[cl->w_side].img_h * tex_y + 2]; -	cl->img.ptr[x * 4 + cl->wlist->x_size * y + 3] = (char)0; +  if (cl->tlist[4].ptr[cl->tlist[4].tex_x * 4 + 4 * +                       cl->tlist[4].img_h * tex_y] != 0) +  { +    cl->img.ptr[x * 4 + (cl->img.sizeline * y)] = +      (char)cl->tlist[4].ptr[cl->tlist[4].tex_x * 4 + 4 * +                             cl->tlist[4].img_h * tex_y]; +    cl->img.ptr[x * 4 + (cl->img.sizeline * y) + 1] = +      (char)cl->tlist[4].ptr[cl->tlist[4].tex_x * 4 + 4 * +                             cl->tlist[4].img_h * tex_y + 1]; +    cl->img.ptr[x * 4 + (cl->img.sizeline * y) + 2] = +      (char)cl->tlist[4].ptr[cl->tlist[4].tex_x * 4 + 4 * +      cl->tlist[4].img_h * tex_y + 2]; +    cl->img.ptr[x * 4 + cl->wlist->x_size * y + 3] = (char)0; +  } +  else +    { +      cl->img.ptr[x * 4 + cl->wlist->x_size * y + 3] = (char)255; +    }  }  void -ft_draw_sprite(t_cub *cl, int x) +  ft_draw_sprite(t_cub *cl, int x)  {    int ver_it;/*stripe*/    int hor_it;/*y*/ -  int tex_x; -  int tex_y;    int d; +  int tex_y;    ver_it = cl->sp_list.s_start_x; -  ver_it = (ver_it < 0) ? -ver_it : ver_it ; -  while (ver_it < cl->sp_list.s_end_x - 1) +  hor_it = cl->sp_list.s_start_y; +  while (hor_it < cl->sp_list.s_end_y)    { -    tex_x = (int)(256 * (ver_it - (-cl->sp_list.s_w / 2 + cl->sp_list.s_screen_x)) * cl->tlist[4].img_w / cl->sp_list.s_w) / 256; -    hor_it = cl->sp_list.s_start_y; -    while (hor_it < cl->sp_list.s_end_y - 1) -    { -      d = (hor_it) * 256 - cl->wlist->y_size * 128 + cl->sp_list.s_h * 128; -      tex_y = ((d * cl->tlist[4].img_w) / cl->sp_list.s_h) / 256; -      ft_draw_verline_sprite(cl, x, hor_it,  tex_y); -      hor_it++; -      printf("hor_it : %d ver it : %d", hor_it, ver_it); -    } -    ver_it++; +    d = (hor_it) * 256 - cl->wlist->y_size * 128 + cl->rlist.line_h * 128; +		d = (d <= 0) ? (-d) : (d); +    tex_y = ((d * cl->tlist[4].img_h) / cl->rlist.line_h) / 256; +    ft_draw_verline_sprite(cl, x, hor_it, tex_y); +    hor_it++;    }  } diff --git a/src/ft_key_loop.c b/src/ft_key_loop.c index b902e33..aa7017f 100644 --- a/src/ft_key_loop.c +++ b/src/ft_key_loop.c @@ -46,8 +46,8 @@ int  	{  		(*fun_ptr[cl->key_input[i]])(cl);  		ft_collision(old_y, old_x, cl->plist, cl->mlist); -		ft_draw_scene(cl);  		i++;  	} +  ft_draw_scene(cl);  	return (0);  }  | 
