diff options
Diffstat (limited to '')
-rw-r--r-- | src/ft_draw_sprite.c | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/ft_draw_sprite.c b/src/ft_draw_sprite.c index ffc2d50..1393d38 100644 --- a/src/ft_draw_sprite.c +++ b/src/ft_draw_sprite.c @@ -25,26 +25,26 @@ void int32_t it; it = 0; - while (it < cl->mlist->sprite_nbr) + while (it < cl->mlist.sprite_nbr) { - dist_tab[it] = ((cl->plist->pos_x - cl->sprites[it].s_pos_x) * - (cl->plist->pos_x - cl->sprites[it].s_pos_x) + - (cl->plist->pos_y - cl->sprites[it].s_pos_y) * - (cl->plist->pos_y - cl->sprites[it].s_pos_y)); - cl->mlist->sprite_order[it] = it; + dist_tab[it] = ((cl->plist.pos_x - cl->sprites[it].s_pos_x) * + (cl->plist.pos_x - cl->sprites[it].s_pos_x) + + (cl->plist.pos_y - cl->sprites[it].s_pos_y) * + (cl->plist.pos_y - cl->sprites[it].s_pos_y)); + cl->mlist.sprite_order[it] = it; it++; } it = 0; - while (it < cl->mlist->sprite_nbr) + while (it < cl->mlist.sprite_nbr) { if (dist_tab[it] > dist_tab[it + 1]) { tmp = dist_tab[it]; dist_tab[it] = dist_tab[it + 1]; dist_tab[it + 1] = tmp; - tmp = cl->mlist->sprite_order[it]; - cl->mlist->sprite_order[it] = cl->mlist->sprite_order[it + 1]; - cl->mlist->sprite_order[it + 1] = tmp; + tmp = cl->mlist.sprite_order[it]; + cl->mlist.sprite_order[it] = cl->mlist.sprite_order[it + 1]; + cl->mlist.sprite_order[it + 1] = tmp; it = 0; } } @@ -53,24 +53,24 @@ void void ft_sprite_height(t_cub *cl, t_sprite *sprite) { - sprite->spriteheight = abs((int)(cl->wlist->y_size / (sprite->transformy))); - sprite->drawstarty = -sprite->spriteheight / 2 + cl->wlist->y_size / 2; + sprite->spriteheight = abs((int)(cl->wlist.y_size / (sprite->transformy))); + sprite->drawstarty = -sprite->spriteheight / 2 + cl->wlist.y_size / 2; if(sprite->drawstarty < 0) sprite->drawstarty = 0; - sprite->drawendy = sprite->spriteheight / 2 + cl->wlist->y_size / 2; - if(sprite->drawendy >= (int)cl->wlist->y_size) - sprite->drawendy = cl->wlist->y_size - 1; + sprite->drawendy = sprite->spriteheight / 2 + cl->wlist.y_size / 2; + if(sprite->drawendy >= (int)cl->wlist.y_size) + sprite->drawendy = cl->wlist.y_size - 1; } void ft_sprite_width(t_cub *cl, t_sprite *sprite) { - sprite->spritewidth = abs((int)(cl->wlist->x_size / (sprite->transformy))); + sprite->spritewidth = abs((int)(cl->wlist.x_size / (sprite->transformy))); sprite->drawstartx = -sprite->spritewidth / 2 + sprite->spritescreenx; if(sprite->drawstartx < 0) sprite->drawstartx = 0; sprite->drawendx = sprite->spritewidth / 2 + sprite->spritescreenx; - if(sprite->drawendx >= (int)cl->wlist->x_size) sprite->drawendx = cl->wlist->x_size - 1; + if(sprite->drawendx >= (int)cl->wlist.x_size) sprite->drawendx = cl->wlist.x_size - 1; } void @@ -79,15 +79,15 @@ void t_sprite sprite; int i = 0; - while (i < cl->mlist->sprite_nbr) + while (i < cl->mlist.sprite_nbr) { sprite = cl->sprites[i]; - sprite.spritey = sprite.s_pos_x - (cl->plist->pos_x - 0.5); - sprite.spritex = sprite.s_pos_y - (cl->plist->pos_y - 0.5); - sprite.invdet = 1.0 / (cl->plist->plane_x * cl->plist->dir_y - cl->plist->dir_x * cl->plist->plane_y); - sprite.transformx = sprite.invdet * (cl->plist->dir_y * sprite.spritex- cl->plist->dir_x* sprite.spritey); - sprite.transformy = sprite.invdet * (-cl->plist->plane_y* sprite.spritex + cl->plist->plane_x * sprite.spritey); - sprite.spritescreenx = (int)(cl->wlist->x_size / 2) * (1 + sprite.transformx / sprite.transformy); + sprite.spritey = sprite.s_pos_x - (cl->plist.pos_x - 0.5); + sprite.spritex = sprite.s_pos_y - (cl->plist.pos_y - 0.5); + sprite.invdet = 1.0 / (cl->plist.plane_x * cl->plist.dir_y - cl->plist.dir_x * cl->plist.plane_y); + sprite.transformx = sprite.invdet * (cl->plist.dir_y * sprite.spritex- cl->plist.dir_x* sprite.spritey); + sprite.transformy = sprite.invdet * (-cl->plist.plane_y* sprite.spritex + cl->plist.plane_x * sprite.spritey); + sprite.spritescreenx = (int)(cl->wlist.x_size / 2) * (1 + sprite.transformx / sprite.transformy); ft_sprite_height(cl, &sprite); ft_sprite_width(cl, &sprite); ft_draw_sprite(cl, &sprite); @@ -108,7 +108,7 @@ void sprite->y = sprite->drawstarty; while (sprite->y < sprite->drawendy) { - d = sprite->y * 256 - cl->wlist->y_size * 128 + + d = sprite->y * 256 - cl->wlist.y_size * 128 + sprite->spriteheight * 128; sprite->tex_y = ((d * cl->tlist[4].img_h / 2) / sprite->spriteheight) / 128; |