diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ft_big_t.c | 108 | ||||
-rw-r--r-- | src/ft_draw_heals.c | 106 | ||||
-rw-r--r-- | src/ft_draw_heals_extra.c | 40 | ||||
-rw-r--r-- | src/ft_draw_sprite.c | 42 | ||||
-rw-r--r-- | src/ft_draw_sprite_extra.c | 4 | ||||
-rw-r--r-- | src/ft_draw_traps.c | 104 | ||||
-rw-r--r-- | src/ft_draw_traps_extra.c | 40 | ||||
-rw-r--r-- | src/ft_draw_weapons.c | 111 | ||||
-rw-r--r-- | src/ft_draw_weapons_extra.c | 42 | ||||
-rw-r--r-- | src/ft_get_heal_spawn.c | 45 | ||||
-rw-r--r-- | src/ft_get_weapon_spawn.c | 59 | ||||
-rw-r--r-- | src/ft_init_weaps.c | 34 | ||||
-rw-r--r-- | src/ft_raycasting.c | 3 | ||||
-rw-r--r-- | src/ft_sort_s_t.c | 110 |
14 files changed, 125 insertions, 723 deletions
diff --git a/src/ft_big_t.c b/src/ft_big_t.c new file mode 100644 index 0000000..e01bed7 --- /dev/null +++ b/src/ft_big_t.c @@ -0,0 +1,108 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_sort_s_t.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ +/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include <cub3d.h> +#include <stdlib.h> +#include <stdint.h> + +static int8_t + ft_set_current_sprite(t_cub *cl, int8_t j) +{ + const int8_t st_o = cl->mlist.st_o[j]; + + if (st_o == 0) + return (4); + else if (st_o >= 1 && st_o <= 7) + return (st_o + 7); + else if (st_o == 8) + return (15); + else if (st_o == 9) + return (17); + else if (st_o >= 10) + return (st_o + 8); + return (0); +} + +void + ft_alloc_big_t(t_cub *cl) +{ + int32_t i; + + if (!(cl->big_t = (float**)malloc((cl->big_t_val) * sizeof(float*)))) + { + ft_alloc_error(cl); + } + i = 0; + while (i < cl->big_t_val) + { + if (!(cl->big_t[i] = (float*)malloc(4 * sizeof(float)))) + { + ft_alloc_error(cl); + } + i++; + } +} + +void + ft_fill_big_t(float **dist_tab, t_cub *cl) +{ + int32_t i; + int32_t j; + int32_t k; + + i = 0; + j = 0; + k = 0; + while (i < cl->big_t_val) + { + if (dist_tab[j][k]) + { + cl->big_t[i][0] = dist_tab[j][k]; + cl->big_t[i][1] = (float)ft_set_current_sprite(cl, j); + cl->big_t[i][2] = (float)j; + cl->big_t[i][3] = (float)k; + k++; + i++; + } + else + { + k = 0; + j++; + } + } +} + +void + ft_sort_big_t(t_cub *cl) +{ + int32_t i; + int8_t j; + float tmp[4]; + + i = 0; + while (i < cl->big_t_val - 1) + { + if (cl->big_t[i][0] < cl->big_t[i + 1][0]) + { + j = -1; + while (++j < 4) + { + tmp[j] = cl->big_t[i][j]; + cl->big_t[i][j] = cl->big_t[i + 1][j]; + cl->big_t[i + 1][j] = tmp[j]; + } + i = -1; + } + i++; + } +} + diff --git a/src/ft_draw_heals.c b/src/ft_draw_heals.c deleted file mode 100644 index 0ef9590..0000000 --- a/src/ft_draw_heals.c +++ /dev/null @@ -1,106 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_draw_heals.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ -/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <libft.h> -#include <cub3d.h> -#include <stdint.h> -#include <stdlib.h> -#include <math.h> - -static void - ft_sort_heals_norme(float *dist_tab, int32_t it, t_cub *cl) -{ - uint32_t tmp; - - tmp = 0; - 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.heals_order[it]; - cl->mlist.heals_order[it] = cl->mlist.heals_order[it + 1]; - cl->mlist.heals_order[it + 1] = tmp; - it = 0; - } -} - -void - ft_sort_heals(t_cub *cl) -{ - float dist_tab[4096]; - int32_t it; - - it = 0; - while (it < cl->mlist.heals_nbr) - { - dist_tab[it] = ((cl->plist.pos_x - cl->heals[it].s_pos_x) * - (cl->plist.pos_x - cl->heals[it].s_pos_x) + - (cl->plist.pos_y - cl->heals[it].s_pos_y) * - (cl->plist.pos_y - cl->heals[it].s_pos_y)); - cl->mlist.heals_order[it] = it; - it++; - } - it = 0; - while (it < cl->mlist.heals_nbr) - { - ft_sort_heals_norme(dist_tab, it, cl); - } -} - -static void - ft_put_heal(t_sprite *sprite, t_cub *cl) -{ - float dist; - t_rgb rgb; - - if ((dist = sqrtf(powf(cl->plist.pos_x - sprite->s_pos_x, 2) - + powf(cl->plist.pos_y - sprite->s_pos_y, 2))) <= 0) - dist = 0.0001; - rgb.r = (uint8_t)cl->tlist[17].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[17].img_h * sprite->tex_y + 2]; - rgb.g = (uint8_t)cl->tlist[17].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[17].img_h * sprite->tex_y + 1]; - rgb.b = (uint8_t)cl->tlist[17].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[17].img_h * sprite->tex_y]; - *(int*)(cl->img.ptr + ((uint16_t)sprite->x * 4 + - (sprite->y * cl->img.sizeline))) = ft_rgb_to_hex(dist, rgb, cl); -} - -void - ft_draw_heals(t_cub *cl, t_sprite *sprite) -{ - int32_t d; - - sprite->x = sprite->drawstartx; - while (sprite->x < sprite->drawendx) - { - sprite->tex_x = (int32_t)((sprite->x - (-sprite->spritewidth / 2 + - sprite->spritescreenx)) - * cl->tlist[17].img_w / sprite->spritewidth); - sprite->y = sprite->drawstarty; - while (sprite->y < sprite->drawendy) - { - d = sprite->y * 256 - cl->wlist.y_size * 128 + - sprite->spriteheight * 128; - sprite->tex_y = ((d * cl->tlist[17].img_h / 2) / - sprite->spriteheight) / 128; - if (sprite->transformy > 0 - && cl->tlist[17].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[17].img_h * sprite->tex_y] - && cl->rlist.wall_dist_tab[sprite->x] > sprite->transformy) - ft_put_heal(sprite, cl); - sprite->y++; - } - sprite->x++; - } -} diff --git a/src/ft_draw_heals_extra.c b/src/ft_draw_heals_extra.c deleted file mode 100644 index 1e5a775..0000000 --- a/src/ft_draw_heals_extra.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_draw_heals_extra.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ -/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <cub3d.h> -#include <stdint.h> - -void - ft_calc_heal(t_cub *cl) -{ - t_sprite sprite; - int32_t i; - - i = 0; - while (i < cl->mlist.heals_nbr) - { - sprite = cl->heals[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); - ft_sprite_h_w(cl, &sprite); - ft_draw_heals(cl, &sprite); - i++; - } -} diff --git a/src/ft_draw_sprite.c b/src/ft_draw_sprite.c index 41daec4..e41484e 100644 --- a/src/ft_draw_sprite.c +++ b/src/ft_draw_sprite.c @@ -16,25 +16,23 @@ #include <stdlib.h> #include <math.h> -/* static void */ -/* ft_sort_sprites_norme(float *dist_tab, int16_t *i, uint16_t j, t_cub *cl) */ -/* { */ -/* uint32_t tmp; */ -/* uint32_t it; */ +static float + **ft_alloc_dist_tab(void) +{ + uint16_t i; + float **dist_tab; -/* it = *i; */ -/* tmp = 0; */ -/* 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[j][it]; */ -/* cl->mlist.sprite_order[j][it] = cl->mlist.sprite_order[j][it + 1]; */ -/* cl->mlist.sprite_order[j][it + 1] = tmp; */ -/* *i = -1; */ -/* } */ -/* } */ + if (!(dist_tab = (float **)ft_calloc((FT_TOTAL_SPRT + 1), sizeof(float*)))) + return (NULL); + i = 0; + while (i < FT_TOTAL_SPRT + 1) + { + if (!(dist_tab[i] = (float *)ft_calloc(4096, sizeof(float)))) + return (NULL); + i++; + } + return (dist_tab); +} void ft_sort_sprites(t_cub *cl, int16_t it, int16_t jt) @@ -56,18 +54,10 @@ void (cl->plist.pos_x - cl->sprites[jt][it].s_pos_x) + (cl->plist.pos_y - cl->sprites[jt][it].s_pos_y) * (cl->plist.pos_y - cl->sprites[jt][it].s_pos_y)); - /* cl->mlist.sprite_order[jt][it] = it; */ } it = -1; } } - /* jt = -1; */ - /* while (++jt < FT_TOTAL_SPRT) */ - /* { */ - /* it = -1; */ - /* while (++it < cl->mlist.sprite_nbr[jt] - 1) */ - /* ft_sort_sprites_norme(dist_tab[jt], &it, jt, cl); */ - /* } */ ft_sort_s_t(cl, dist_tab); } diff --git a/src/ft_draw_sprite_extra.c b/src/ft_draw_sprite_extra.c index ba2dac5..c201566 100644 --- a/src/ft_draw_sprite_extra.c +++ b/src/ft_draw_sprite_extra.c @@ -59,9 +59,7 @@ void ft_sort_sprites(cl, -1, -1); while (++j < cl->big_t_val) { - sprite = - cl->sprites[(int8_t)cl->big_t[j][2]] - [(int16_t)cl->big_t[j][3]]; + sprite = cl->sprites[(int8_t)cl->big_t[j][2]][(int32_t)cl->big_t[j][3]]; sprite.current_sprite = (int8_t)cl->big_t[j][1]; sprite.spritey = sprite.s_pos_x - (cl->plist.pos_x - 0.5); sprite.spritex = sprite.s_pos_y - (cl->plist.pos_y - 0.5); diff --git a/src/ft_draw_traps.c b/src/ft_draw_traps.c deleted file mode 100644 index ed53dc0..0000000 --- a/src/ft_draw_traps.c +++ /dev/null @@ -1,104 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_draw_traps.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ -/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <cub3d.h> -#include <stdint.h> -#include <math.h> - -static void - ft_sort_traps_norme(float *dist_tab, int32_t it, t_cub *cl) -{ - uint32_t tmp; - - tmp = 0; - 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.traps_order[it]; - cl->mlist.traps_order[it] = cl->mlist.traps_order[it + 1]; - cl->mlist.traps_order[it + 1] = tmp; - it = 0; - } -} - -void - ft_sort_traps(t_cub *cl) -{ - float dist_tab[4096]; - int32_t it; - - it = 0; - while (it < cl->mlist.traps_nbr) - { - dist_tab[it] = ((cl->plist.pos_x - cl->traps[it].s_pos_x) * - (cl->plist.pos_x - cl->traps[it].s_pos_x) + - (cl->plist.pos_y - cl->traps[it].s_pos_y) * - (cl->plist.pos_y - cl->traps[it].s_pos_y)); - cl->mlist.traps_order[it] = it; - it++; - } - it = 0; - while (it < cl->mlist.traps_nbr) - { - ft_sort_traps_norme(dist_tab, it, cl); - } -} - -static void - ft_put_trap(t_sprite *sprite, t_cub *cl) -{ - float dist; - t_rgb rgb; - - if ((dist = sqrtf(powf(cl->plist.pos_x - sprite->s_pos_x, 2) - + powf(cl->plist.pos_y - sprite->s_pos_y, 2))) <= 0) - dist = 0.0001; - rgb.r = (uint8_t)cl->tlist[15].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[15].img_h * sprite->tex_y + 2]; - rgb.g = (uint8_t)cl->tlist[15].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[15].img_h * sprite->tex_y + 1]; - rgb.b = (uint8_t)cl->tlist[15].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[15].img_h * sprite->tex_y]; - *(int*)(cl->img.ptr + ((uint16_t)sprite->x * 4 + - (sprite->y * cl->img.sizeline))) = ft_rgb_to_hex(dist, rgb, cl); -} - -void - ft_draw_traps(t_cub *cl, t_sprite *sprite) -{ - int32_t d; - - sprite->x = sprite->drawstartx; - while (sprite->x < sprite->drawendx) - { - sprite->tex_x = (int32_t)((sprite->x - (-sprite->spritewidth / 2 + - sprite->spritescreenx)) - * cl->tlist[15].img_w / sprite->spritewidth); - sprite->y = sprite->drawstarty; - while (sprite->y < sprite->drawendy) - { - d = sprite->y * 256 - cl->wlist.y_size * 128 + - sprite->spriteheight * 128; - sprite->tex_y = ((d * cl->tlist[15].img_h / 2) / - sprite->spriteheight) / 128; - if (sprite->transformy > 0 - && cl->tlist[15].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[15].img_h * sprite->tex_y] - && cl->rlist.wall_dist_tab[sprite->x] > sprite->transformy) - ft_put_trap(sprite, cl); - sprite->y++; - } - sprite->x++; - } -} diff --git a/src/ft_draw_traps_extra.c b/src/ft_draw_traps_extra.c deleted file mode 100644 index cbeffe1..0000000 --- a/src/ft_draw_traps_extra.c +++ /dev/null @@ -1,40 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_draw_traps_extra.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ -/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <cub3d.h> -#include <stdint.h> - -void - ft_calc_trap(t_cub *cl) -{ - t_sprite sprite; - int32_t i; - - i = 0; - while (i < cl->mlist.traps_nbr) - { - sprite = cl->traps[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); - ft_sprite_h_w(cl, &sprite); - ft_draw_traps(cl, &sprite); - i++; - } -} diff --git a/src/ft_draw_weapons.c b/src/ft_draw_weapons.c deleted file mode 100644 index c527987..0000000 --- a/src/ft_draw_weapons.c +++ /dev/null @@ -1,111 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_draw_weapons.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ -/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <cub3d.h> -#include <stdint.h> -#include <math.h> - -static void - ft_sort_weapons_norme(float *dist_tab, int16_t *i, uint16_t j, t_cub *cl) -{ - uint32_t tmp; - uint32_t it; - - it = *i; - tmp = 0; - 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.weaps_order[j][it]; - cl->mlist.weaps_order[j][it] = cl->mlist.weaps_order[j][it + 1]; - cl->mlist.weaps_order[j][it + 1] = tmp; - *i = -1; - } -} - -void - ft_sort_weapons(t_cub *cl, int16_t it, int16_t jt) -{ - float dist_tab[2][1]; - - while (++jt <= cl->mlist.weapon_var) - { - while (++it <= cl->mlist.weaps_nbr[jt]) - { - dist_tab[jt][it] = - ((cl->plist.pos_x - cl->weaps[jt][it].s_pos_x) * - (cl->plist.pos_x - cl->weaps[jt][it].s_pos_x) + - (cl->plist.pos_y - cl->weaps[jt][it].s_pos_y) * - (cl->plist.pos_y - cl->weaps[jt][it].s_pos_y)); - cl->mlist.weaps_order[jt][it] = it; - } - it = -1; - } - it = -1; - jt = -1; - while (++jt < cl->mlist.weapon_var) - { - while (++it < cl->mlist.weaps_nbr[jt] - 1) - ft_sort_weapons_norme(dist_tab[jt], &it, jt, cl); - it = -1; - } -} - -static void - ft_put_weapon(t_sprite *sprite, t_cub *cl) -{ - float dist; - t_rgb rgb; - - if ((dist = sqrtf(powf(cl->plist.pos_x - sprite->s_pos_x, 2) - + powf(cl->plist.pos_y - sprite->s_pos_y, 2))) <= 0) - dist = 0.0001; - rgb.r = (uint8_t)cl->tlist[sprite->current_sprite].ptr[sprite->tex_x - * 4 + 4 * cl->tlist[sprite->current_sprite].img_h * sprite->tex_y + 2]; - rgb.g = (uint8_t)cl->tlist[sprite->current_sprite].ptr[sprite->tex_x - * 4 + 4 * cl->tlist[sprite->current_sprite].img_h * sprite->tex_y + 1]; - rgb.b = (uint8_t)cl->tlist[sprite->current_sprite].ptr[sprite->tex_x - * 4 + 4 * cl->tlist[sprite->current_sprite].img_h * sprite->tex_y]; - *(int*)(cl->img.ptr + ((uint16_t)sprite->x * 4 + - (sprite->y * cl->img.sizeline))) = ft_rgb_to_hex(dist, rgb, cl); -} - -void - ft_draw_weapon(t_cub *cl, t_sprite *sprite) -{ - int32_t d; - - sprite->x = sprite->drawstartx; - while (sprite->x < sprite->drawendx) - { - sprite->tex_x = (int32_t)((sprite->x - (-sprite->spritewidth / 2 + - sprite->spritescreenx)) - * cl->tlist[sprite->current_sprite].img_w / sprite->spritewidth); - sprite->y = sprite->drawstarty; - while (sprite->y < sprite->drawendy) - { - d = sprite->y * 256 - cl->wlist.y_size * 128 + - sprite->spriteheight * 128; - sprite->tex_y = ((d * cl->tlist[sprite->current_sprite].img_h / 2) / - sprite->spriteheight) / 128; - if (sprite->transformy > 0 && - cl->tlist[sprite->current_sprite].ptr[sprite->tex_x * 4 + 4 * - cl->tlist[sprite->current_sprite].img_h * sprite->tex_y] - && cl->rlist.wall_dist_tab[sprite->x] > sprite->transformy) - ft_put_weapon(sprite, cl); - sprite->y++; - } - sprite->x++; - } -} diff --git a/src/ft_draw_weapons_extra.c b/src/ft_draw_weapons_extra.c deleted file mode 100644 index ed3ed53..0000000 --- a/src/ft_draw_weapons_extra.c +++ /dev/null @@ -1,42 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_draw_weapons_extra.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/24 20:22:45 by rbousset #+# #+# */ -/* Updated: 2020/03/09 18:56:01 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <cub3d.h> -#include <stdint.h> - -static void - ft_calc_weapon(uint8_t id, t_cub *cl) -{ - t_sprite sprite; - - sprite = cl->weaps[id][0]; - 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_h_w(cl, &sprite); - ft_draw_weapon(cl, &sprite); -} - -void - ft_calc_weaps(t_cub *cl) -{ - ft_calc_weapon(0, cl); - ft_calc_weapon(1, cl); - ft_calc_weapon(2, cl); -} diff --git a/src/ft_get_heal_spawn.c b/src/ft_get_heal_spawn.c deleted file mode 100644 index 142709b..0000000 --- a/src/ft_get_heal_spawn.c +++ /dev/null @@ -1,45 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_get_traps.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/28 18:24:52 by rbousset #+# #+# */ -/* Updated: 2020/02/28 18:24:56 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <libft.h> -#include <cub3d.h> -#include <stdint.h> - -void - ft_get_heal_spawn(t_cub *clist) -{ - size_t x; - size_t y; - uint8_t i; - - x = 1; - y = 1; - i = 0; - while (clist->mlist.map[y]) - { - while (clist->mlist.map[y][x]) - { - if (clist->mlist.map[y][x] == '+') - { - clist->mlist.heals_nbr++; - if (clist->mlist.heals_nbr > 64) - ft_map_error(FT_ERR_TOO_MUCH_HEALS, clist); - clist->heals[i].s_pos_x = x; - clist->heals[i].s_pos_y = y; - i++; - } - x++; - } - x = 1; - y++; - } -} diff --git a/src/ft_get_weapon_spawn.c b/src/ft_get_weapon_spawn.c deleted file mode 100644 index 1ed4c7d..0000000 --- a/src/ft_get_weapon_spawn.c +++ /dev/null @@ -1,59 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_get_weapon_spawn.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/28 20:54:28 by rbousset #+# #+# */ -/* Updated: 2020/02/28 20:54:29 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <libft.h> -#include <cub3d.h> -#include <stdint.h> - -static void - ft_get_weapon_id_spawn(uint8_t id, size_t y, size_t x, t_cub *clist) -{ - clist->mlist.weaps_nbr[id]++; - if (clist->mlist.weaps_nbr[id] > 1) - { - if (id == 0) - ft_map_error(FT_ERR_TOO_MUCH_W_ONE, clist); - else if (id == 1) - ft_map_error(FT_ERR_TOO_MUCH_W_TWO, clist); - else - ft_map_error(FT_ERR_TOO_MUCH_W_THREE, clist); - } - clist->weaps[id][0].s_pos_x = x; - clist->weaps[id][0].s_pos_y = y; - clist->weaps[id][0].current_sprite = 18 + id; - clist->mlist.weapon_var++; -} - -void - ft_get_weapon_spawn(t_cub *clist) -{ - size_t x; - size_t y; - - x = 1; - y = 1; - while (clist->mlist.map[y]) - { - while (clist->mlist.map[y][x]) - { - if (clist->mlist.map[y][x] == '!') - ft_get_weapon_id_spawn(0, y, x, clist); - else if (clist->mlist.map[y][x] == '@') - ft_get_weapon_id_spawn(1, y, x, clist); - else if (clist->mlist.map[y][x] == '#') - ft_get_weapon_id_spawn(2, y, x, clist); - x++; - } - x = 1; - y++; - } -} diff --git a/src/ft_init_weaps.c b/src/ft_init_weaps.c deleted file mode 100644 index f3f7452..0000000 --- a/src/ft_init_weaps.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* ft_init_weaps.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: rbousset <marvin@42.fr> +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2020/02/14 17:28:53 by rbousset #+# #+# */ -/* Updated: 2020/02/14 17:28:53 by rbousset ### ########lyon.fr */ -/* */ -/* ************************************************************************** */ - -#include <libft.h> -#include <cub3d.h> -#include <stddef.h> -#include <stdlib.h> -#include <stdint.h> - -int8_t - ft_init_weaps(t_sprite ***weaps) -{ - uint8_t i; - - if (!(*weaps = (t_sprite**)ft_calloc(3, sizeof(t_sprite*)))) - return (-1); - i = 0; - while (i < 3) - { - if (!(*((*weaps) + i) = (t_sprite*)ft_calloc(1, sizeof(t_sprite)))) - return (-1); - i++; - } - return (0); -} diff --git a/src/ft_raycasting.c b/src/ft_raycasting.c index 3bfd038..67c3f4e 100644 --- a/src/ft_raycasting.c +++ b/src/ft_raycasting.c @@ -107,9 +107,6 @@ void pthread_join(tid[0], 0x0); pthread_join(tid[1], 0x0); ft_calc_sprite(cl); - /* ft_calc_heal(cl); */ - /* ft_calc_trap(cl); */ - /* ft_calc_weaps(cl); */ if (cl->plist.handles_weapon > -1) ft_draw_handweap(cl); ft_del_tabs(cl); diff --git a/src/ft_sort_s_t.c b/src/ft_sort_s_t.c index 433fd07..18007dd 100644 --- a/src/ft_sort_s_t.c +++ b/src/ft_sort_s_t.c @@ -15,116 +15,6 @@ #include <stdlib.h> #include <stdint.h> -float - **ft_alloc_dist_tab(void) -{ - uint16_t i; - float **dist_tab; - - if (!(dist_tab = (float **)ft_calloc((FT_TOTAL_SPRT + 1), sizeof(float*)))) - return (NULL); - i = 0; - while (i < FT_TOTAL_SPRT + 1) - { - if (!(dist_tab[i] = (float *)ft_calloc(4096, sizeof(float)))) - return (NULL); - i++; - } - return (dist_tab); -} - -static int8_t - ft_set_current_sprite(t_cub *cl, int8_t j) -{ - const int8_t st_o = cl->mlist.st_o[j]; - - if (st_o == 0) - return (4); - else if (st_o >= 1 && st_o <= 7) - return (st_o + 7); - else if (st_o == 8) - return (15); - else if (st_o == 9) - return (17); - else if (st_o >= 10) - return (st_o + 8); - return (0); -} - -static void - ft_alloc_big_t(t_cub *cl) -{ - int32_t i; - - if (!(cl->big_t = (float**)malloc((cl->big_t_val) * sizeof(float*)))) - { - ft_alloc_error(cl); - } - i = 0; - while (i < cl->big_t_val) - { - if (!(cl->big_t[i] = (float*)malloc(4 * sizeof(float)))) - { - ft_alloc_error(cl); - } - i++; - } -} - -static void - ft_fill_big_t(float **dist_tab, t_cub *cl) -{ - int32_t i; - int32_t j; - int32_t k; - - i = 0; - j = 0; - k = 0; - while (i < cl->big_t_val) - { - if (dist_tab[j][k]) - { - cl->big_t[i][0] = dist_tab[j][k]; - cl->big_t[i][1] = (float)ft_set_current_sprite(cl, j); - cl->big_t[i][2] = (float)j; - cl->big_t[i][3] = (float)k; - k++; - i++; - } - else - { - k = 0; - j++; - } - } -} - -static void - ft_sort_big_t(t_cub *cl) -{ - int32_t i; - int8_t j; - float tmp[4]; - - i = 0; - while (i < cl->big_t_val - 1) - { - if (cl->big_t[i][0] < cl->big_t[i + 1][0]) - { - j = -1; - while (++j < 4) - { - tmp[j] = cl->big_t[i][j]; - cl->big_t[i][j] = cl->big_t[i + 1][j]; - cl->big_t[i + 1][j] = tmp[j]; - } - i = -1; - } - i++; - } -} - static void ft_init_st(int32_t *st_o) { |